Jump to content

Module:Name in various languages

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by A diehard editor (talk | contribs) at 17:00, 26 November 2023 (Start writing Lua-based replacement for Template:Name in official languages). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

local lang = require('Module:Lang')

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

local function str_split(inputstr, sep)
    local t = {}
    if sep == nil then sep = "%s" end
    for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
            table.insert(t, str)
    end
    return t
end

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

local function make_language_row(lang_code, lang_text)
    local lang_link_wikitext = str_split(
        lang.lang_xx_inherit(
            {
                code=lang_code,
                text=lang_text
            }),':')[1]..':'
    return "! style=\"padding-left:0.5em\" | "..lang_link_wikitext..
           "\n| {{lang|"..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

    frame.args.width = nil
    frame.args.font_size = nil
    frame.args.name = nil

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

    output = output .. '|}'

    return output
end

return p