Jump to content

Module:Name in various languages

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Gonnym (talk | contribs) at 01:08, 27 November 2023 (cleanup). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local lang = require('Module:Lang')
local language_names = mw.loadData('Module:Lang/data').lang_name_table.lang

local p = {}
local SEPARATOR = '|- style="border-bottom: 1px solid #aaa;"\n'
local STYLE = "border-bottom: 1px solid #aaa;"

local function make_table_start(width, font_size, name)
    return '{| class="mw-collapsible mw-collapsed" style="width: ' .. width ..
        '; font-size: ' .. font_size .. '; text-align: left; border-collapse: collapse;' .. '\n' ..
        '! colspan="2" style="text-align: center; border-top: 0px;" | ' .. name .. '\n'
end

-- todo: link to articles properly
local function make_language_wikilink(lang_code)
	local article_name = 'Main Page'
	local display = language_names[lang_code]
	return '[[' .. article_name .. '|' .. display .. ']]'
end

local function make_language_row(frame, lang_code, lang_text)
    local lang_link_wikilink = make_language_wikilink(lang_code)
    return "! style=\"padding-left: 0.5em;\" | " .. lang_link_wikilink ..
           "\n|" .. frame:expandTemplate{title = 'lang', args = {lang_code, lang_text}} 
end

function p.main(frame)
	local output = ''
	output = output .. make_table_start(
		frame.args.width,
		frame.args.font_size,
		frame.args.name) .. SEPARATOR

	for k, v in pairs(frame.args) do
		if language_names[k] then
			output = output .. make_language_row(frame, k, v) .. '\n' .. SEPARATOR
		end
	end

	return output
end

return p