This module is rated as alpha. It is ready for third-party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome. |
Usage
edit{{#invoke:Name in various languages|main}}
This is a Lua-based replacement for {{Name in official languages}}.
Example
editNames of the European Union | |
---|---|
Bulgarian | Европейски съюз |
Czech | Evropská unie |
Danish | Den Europæiske Union |
German | Europäische Union |
Greek | Ευρωπαϊκή Ένωση |
English | European Union |
Spanish | Unión Europea |
Estonian | Euroopa Liit |
Finnish | Euroopan unioni |
French | Union européenne |
Irish | An tAontas Eorpach |
Croatian | Europska unija |
Hungarian | Európai Unió |
Italian | Unione europea |
Lithuanian | Europos Sąjunga |
Latvian | Eiropas Savienība |
Maltese | Unjoni Ewropea |
Dutch | Europese Unie |
Polish | Unia Europejska |
Portuguese | União Europeia |
Romanian | Uniunea Europeană |
Slovak | Európska únia |
Slovene | Evropska unija |
Swedish | Europeiska unionen |
local lang_mod = require ('Module:Lang');
local get_args = require ('Module:Arguments').getArgs;
local yesno = require ('Module:Yesno');
local p = {};
local SEPARATOR = '|- style="border-bottom:1px solid #aaa"\n';
local STYLE = "border-bottom:1px solid #aaa";
-- Ensure that list of names is sorted by name of language.
local function sorted_pairs(t, f)
local keys = {}
for key in pairs(t) do table.insert(keys, key) end
table.sort(keys, f)
local i = 0
local iter = function ()
i = i + 1; if keys[i] == nil then return nil else return keys[i], t[keys[i]] end end
return iter
end
local function make_language_row(frame, lang_code, lang_text)
local lang_link_wikilink = lang_mod.name_from_tag({lang_code, ['link'] = 'yes'})
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 args = get_args(frame)
local output = '';
local header = {};
table.insert(header, '{| class="mw-collapsible ');
local collapse = args.collapse or true
if yesno (collapse) then table.insert (header, 'mw-collapsed') end
table.insert (header, '"');
table.insert (header, 'style="');
table.insert (header, table.concat({'width: ', args.width or '100%', ';'}));
table.insert (header, table.concat({'font-size: ', args.font_size or '88%', ';'}));
table.insert (header, 'text-align:left; border-collapse:collapse;"' ..'\n');
table.insert (header, '! colspan=2 style="text-align:center; border-top: 0px;" | ');
table.insert (header, args.name or '');
table.insert (header, '\n' .. SEPARATOR);
output = output .. table.concat(header)
for k,v in sorted_pairs(args) do
if lang_mod._is_ietf_tag(k) then
output = output .. make_language_row(frame,k,v) .. '\n' .. SEPARATOR;
end
end
output = output .. '|}';
return output;
end
return p