Modulo:Lingvonomo
Aspekto
[antaŭrigardi] [redakti] [historio] [renovigi]
Dokumentado
Ŝablona programado | Diskutoj | Lua | Testoj | Subpaĝoj | |||
---|---|---|---|---|---|---|---|
Modulo | Esperanto | English
|
Modulo: | Dokumentado |
Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.) |
|
-- modulo lingvonomo -- 2024-08-27
-- main functions:
-- language -- creates a link to a language article and an adverb like text
-- flag -- creates a flag and a link to a language article and an adverb like text
-- lang - creates a link to a language article and an adverb like text followed by a parsed {{Lang}} template.
-- exist -- returs true, if a code is a language code, else false
-- list -- returns a table with the ordered language codes and their rilated names in esperanto
-- (partly translated only :-()
-- the functions "language" and "flag" have one needed parameter only
-- all functons have the optional parameters:
-- "koloro" (color), that defines the color of the text
-- "fono" (background), that defines the background color of the text
-- "grando" (size), that defines the size of the text
-- "pezo" (weight), that defines the font-weight
-- error handling:
-- factory
-- message
-- analyze
-- message2
-- analyze2
-- helping function:
-- getLanguages
-- getAccusative
-- getFlags
-- template
-- image
-- testweight
local messagePrefix = "lua-module-Lingvonomo-"
local l10nDef = {}
l10nDef[ "en" ] = {
noLanguage = "Error in language - in the function",
emptyLanguage = "Language is empty - in the function",
noText = "Error in the text - in the function",
emptyText = "Text is empty - in the function",
noFlag = "The page [[Modulo:Lingvonomo/listo/flagoj]] doesnt have a suitable flag."
}
l10nDef[ "de" ] = {
noLanguage = "Fehler bei Sprache - in der Funktion",
emptyLanguage = "Sprache ist leer - in der Funktion",
noText = "Fehler im Text - in der Funktion",
emptyText = "Text ist leer - in der Funktion",
noFlag = "Auf der Seite [[Modulo:Lingvonomo/listo/flagoj]] gibt es keine geeignete Fahne."
}
l10nDef[ "eo" ] = {
noLanguage = "Eraro en la lingvo - en la funkcio",
emptyLanguage = "Lingvo estas malplena - en la funkcio",
noText = "Eraro en la teksto - en la funkcio",
emptyText = "Teksto estas malplena - en la funkcio",
noFlag = "La paĝo [[Modulo:Lingvonomo/listo/flagoj]] ne enhavas taŭgan flagon."
}
-- error handling
local function factory( say )
-- Retrieve localized message string in content language
-- Precondition:
-- say -- string; message ID
-- Postcondition:
-- Return some message string
-- Uses:
-- > messagePrefix
-- > l10nDef
-- mw.language.getContentLanguage()
-- mw.message.new()
local c = mw.language.getContentLanguage():getCode()
local m = mw.message.new( messagePrefix .. say )
local r = false
if m:isBlank() then
local l10n = l10nDef[ c ]
if not l10n then
l10n = l10nDef[ "en" ]
end
r = l10n[ say ]
else
m:inLanguage( c )
r = m:plain()
end
if not r then
r = "(((".. say .. ")))"
end
return r
end -- factory()
-- for one needed parameter only
local function message (first, f)
-- first - the first required parameter in the main function is wrong
-- f - in which function it occurs
local r = ""
if (first ~="") then
r = factory (first) .. ": " .. f .. "()"
end
-- error (r, 0)
r = "<span class='error'>" .. r .. "</span>"
return r
end -- message ()
local function analyze (first, f)
-- first - the first required parameter has to be analyzed
-- f - in which function it occurs
-- r - message text
local r =""
if (first ==nil) or (first =="") then
local param1 =""
local r =""
if (first == nil) then
param1= "noLanguage"
end
if (first=="") then
param1= "emptyLanguage"
end
r=message (param1, f)
return r
end
return r
end -- analyze ()
-- for two needed parameters
local function message2 (first, second, f)
-- first - the first required parameter in the main function is wrong
-- second - the second required parameter in the main function is wrong
-- f - in which function it occurs
local r = ""
if (first ~="") then
r = factory (first) .. ": " .. f .. "()"
end
if (second ~="") then
if (r ~="") then
r = r .. "<br />" .. factory (second) .. ": " .. f .. "()"
else r = factory (second) .. ": " .. f .. "()"
end
end
-- error (r, 0)
r = "<span class='error'>" .. r .. "</span>"
return r
end -- message2 ()
local function analyze2 (first, second, f)
-- first - the first required parameter has to be analyzed
-- second - the second required parameter has to be analyzed
-- f - in which function it occurs
-- r - message text
local r =""
if (first ==nil) or (first =="") or (second ==nil) or (second=="") then
local param1 =""
local param2 =""
local r =""
if (first == nil) then
param1= "noLanguage"
end
if (first=="") then
param1= "emptyLanguage"
end
if (second == nil) then
param2 ="noText"
end
if (second=="") then
param2 ="emptyText"
end
r=message2 (param1, param2, f)
return r
end
-- local lenfirst=mw.ustring.len(first)
-- local lensecond=mw.ustring.len(second)
-- if the first (language) is longer than the second (text), then it returns a text, which
-- in the main function exchanges the values of the variables
-- if (lenfirst>lensecond) then
-- r="change"
-- return r
-- end
return r
end -- analyze2 ()
-- gets the adverb and name according to a language code using mw.language.fetchLanguageName
local function getLanguages(s)
-- Gets an adverb and name using the Lua function mw.language.fetchLanguageName.
local r1, r2
if s == "ady" then
r1, r2 = "adigee", "adigea lingvo"
elseif s == "aib" then
r1, r2 = "ejnue", "ejnua lingvo"
elseif s == "ale" then
r1, r2 = "aleute", "aleuta lingvo"
elseif s == "an" then
r1, r2 = "aragone", "aragona lingvo"
elseif s == "ang" then
-- r1, r2 = "malnov-angle", "malnov-angla lingvo"
r1, r2 = "anglosakse", "anglosaksa lingvo"
elseif s == "arc" then
r1, r2 = "aramee", "aramea lingvo"
elseif s == "ast" then
r1, r2 = "asture", "astura lingvo"
elseif s == "av" then
r1, r2 = "avare", "avara lingvo"
elseif s == "bal" then
r1, r2 = "baluĉe", "baluĉa lingvo"
elseif s == "bar" then
r1, r2 = "bavare", "bavara lingvo"
-- ie en la Vikio estas fuŝa ĉikaze maltaŭga traduko
elseif s == "be-tarask" then
r1, r2 = "beloruse (Taraŝkevica)", "belorusa lingvo (Taraŝkevica)"
elseif s == "bi" then
r1, r2 = "bislame", "bislama lingvo"
elseif s == "bs" then
r1, r2 = "bosne", "bosna lingvo"
elseif s == "bua" then
r1, r2 = "burjate", "burjata lingvo"
elseif s == "my" then
r1,r2 = "birme", "birma lingvo"
elseif s == "ce" then
r1, r2 = "ĉeĉene", "ĉeĉena lingvo"
elseif s == "ceb" then
r1, r2 = "cebue", "cebuo"
elseif s == "ch" then
r1, r2 = "ĉamore", "ĉamora lingvo"
elseif s == "chg" then
r1, r2 = "ĉagataje", "ĉagataja lingvo"
elseif s == "chm" then
r1, r2 = "marie", "maria lingvo"
elseif s == "ckt" then
r1, r2 = "ĉukĉe", "ĉukĉa lingvo"
elseif s == "cnr" then
r1, r2 = "montenegre", "montenegra lingvo"
elseif s == "cop" then
r1, r2 = "kopte", "kopta lingvo"
elseif s == "crh" then
r1, r2 = "krime-tatare", "krime-tatara lingvo"
elseif s == "csb" then
r1, r2 = "kaŝube", "kaŝuba lingvo"
elseif s == "cv" then
r1, r2 = "ĉuvaŝe", "ĉuvaŝa lingvo"
elseif s == "din" then
r1, r2 = "dinke", "dinka lingvo"
elseif s == "dz" then
r1, r2 = "dzonke", "dzonka lingvo"
elseif s == "egy" then
r1, r2 = "egipte", "egipta lingvo"
elseif s == "ell" then
r1, r2 = "novgreke", "novgreka lingvo"
elseif s == "eo" then
r1, r2 = "esperante", "Esperanto"
elseif s == "ett" then
r1, r2 = "etruske", "etruska lingvo"
elseif s == "evn" then
r1, r2 = "evenke", "evenka lingvo"
elseif s == "fa" then
r1, r2 = "perse", "persa lingvo"
elseif s == "ff" then
r1, r2 = "fulane", "fulana lingvo"
elseif s == "fit" then
r1, r2 = "tornival-finne", "tornival-finna lingvo"
elseif s == "fon" then
r1, r2 = "fonue", "fonua lingvo"
elseif s == "frp" then
r1, r2 = "arpitane", "arpitana lingvo"
elseif s == "frr" then
r1, r2 = "nordfrise", "nordfrisa lingvo"
elseif s == "fur" then
r1, r2 = "friule", "friula lingvo"
elseif s == "fy" then
r1, r2 = "okcidentfrise", "okcidentfrisa lingvo"
elseif s == "gag" then
r1, r2 = "gagauze", "gagauza lingvo"
elseif s == "gd" then
r1, r2 = "skotgaele", "skotgaela lingvo"
elseif s == "gil" then
r1, r2 = "kiribate", "kiribata lingvo"
elseif s == "grc" then
r1, r2 = "antikve-greke", "antikva greka lingvo"
elseif s == "gsw-FR" or s == "gsw-fr" then
r1, r2 = "alzace", "alzaca lingvo"
elseif s == "gv" then
r1, r2 = "mankse", "manksa lingvo"
elseif s == "hi" then
r1, r2 = "hindie", "hindia lingvo"
elseif s == "hit" then
r1, r2 = "hitite", "hitita lingvo"
elseif s == "hsb" then
r1, r2 = "suprasorabe", "suprasoraba lingvo"
elseif s == "ik" then
r1, r2 = "inupiake", "inupiaka lingvo"
elseif s == "inh" then
r1, r2 = "inguŝe", "inguŝa lingvo"
elseif s == "io" then
r1, r2 = "ide", "ido (lingvo)"
elseif s == "iu" then
r1, r2 = "inuktitute", "inuktituta lingvo"
elseif s == "jbo" then
r1, r2 = "loĵbane", "loĵbano"
elseif s == "kaa" then
r1, r2 = "karakalpake", "karakalpaka lingvo"
elseif s == "kab" then
r1, r2 = "kabile", "kabila lingvo"
elseif s == "kbd" then
r1, r2 = "kabarde", "kabarda lingvo"
elseif s == "kg" then
r1, r2 = "konge", "konga lingvo"
elseif s == "kjh" then
r1, r2 = "ĥakase", "ĥakasa lingvo"
elseif s == "ko-kp" then
r1, r2 = "nordkoree", "korea lingvo"
elseif s == "ko-kr" then
r1, r2 = "sudkoree", "korea lingvo"
elseif s == "krc" then
r1, r2 = "balkare", "karaĉaja-balkara lingvo"
elseif s == "krl" then
r1, r2 = "karele", "karela lingvo"
elseif s == "ksh" then
r1, r2 = "kolonje", "kolonja lingvo"
elseif s == "kv" then
r1, r2 = "komie", "komia lingvo"
elseif s == "kw" then
r1, r2 = "kornvale", "kornvala lingvo"
elseif s == "kyh" then
r1, r2 = "karuke", "karuka lingvo"
elseif s == "la" then
r1, r2 = "latine", "Latino"
elseif s == "lbe" then
r1, r2 = "lake", "laka lingvo"
elseif s == "lez" then
r1, r2 = "lezge", "lezga lingvo"
elseif s == "lld" then
r1, r2 = "ladine", "ladina lingvo"
elseif s == "lmo" then
r1, r2 = "lombarde", "lombarda lingvo"
elseif s == "lua" then
r1, r2 = "lube", "luba lingvo"
elseif s == "mdf" then
r1, r2 = "mokŝe", "mokŝa lingvo"
elseif s == "mhr" then
r1, r2 = "herbej-marie", "herbeja maria lingvo"
elseif s == "mic" then
r1, r2 = "mikmake", "mikmaka lingvo"
elseif s == "ml" then
r1, r2 = "malajale", "malajala lingvo"
elseif s == "mnc" then
r1, r2 = "manĉure", "manĉura lingvo"
elseif s == "mni" then
r1, r2 = "manipure", "manipura lingvo"
elseif s == "mos" then
r1, r2 = "mosie", "mosia lingvo"
elseif s == "mrj" then
r1, r2 = "montar-marie", "montara maria lingvo"
elseif s == "myv" then
r1, r2 = "erzje", "erzja lingvo"
elseif s == "nah" then
r1, r2 = "naŭatle", "naŭatla lingvo"
elseif s == "nb" then
r1, r2 = "bukmole", "bukmola lingvo"
elseif s == "non" then
r1, r2 = "norene", "norena lingvo"
elseif s == "nr" then
r1, r2 = "sud-ndebele", "sud-ndebela lingvo"
elseif s == "nso" then
r1, r2 = "pede", "peda lingvo"
elseif s == "os" then
r1, r2 = "osete", "oseta lingvo"
elseif s == "ota" then
r1, r2 = "osmanid-turke", "osmanida turka lingvo"
elseif s == "pag" then
r1, r2 = "pangasine", "pangasina lingvo"
elseif s == "pap" then
r1, r2 = "papiamente", "Papiamento"
elseif s == "pdc" then
r1, r2 = "pensilvanigermane", "pensilvanigermana dialekto"
elseif s == "pi" then
r1, r2 = "palie", "palia lingvo"
elseif s == "pms" then
r1, r2 = "piemonte", "piemonta lingvo"
elseif s == "ps" then
r1, r2 = "paŝtune", "paŝtuna lingvo"
elseif s == "pt-br" then
r1, r2 = "brazilportugale", "Brazila portugala"
-- eble korektenda post alinomado
elseif s == "rom" then
r1, r2 = "cigane", "cigana lingvo"
elseif s == "rue" then
r1, r2 = "rusine", "rusina lingvo"
elseif s == "rup" then
r1, r2 = "arumane", "arumana lingvo"
elseif s == "sa" or s == "san" then
r1, r2 = "sanskrite", "sanskrito"
elseif s == "sah" then
r1, r2 = "jakute", "jakuta lingvo"
elseif s == "sc" then
r1, r2 = "sarde", "sarda lingvo"
elseif s == "scn" then
r1, r2 = "sicilie", "sicilia lingvo"
elseif s == "sco" then
r1, r2 = "skote", "skota lingvo"
elseif s == "se" then
r1, r2 = "nord-samee", "nord-samea lingvo"
elseif s == "sli" then
r1, r2 = "silezia-germane", "silezia-germana lingvo"
elseif s == "slo" then
r1, r2 = "interslave", "interslava lingvo"
elseif s == "sju" then
r1, r2 = "ume-samee", "ume-samea lingvo"
elseif s == "sma" then
r1, r2 = "sud-samee", "sud-samea lingvo"
elseif s == "smj" then
r1, r2 = "lule-samee", "lule-samea lingvo"
elseif s == "smn" then
r1, r2 = "anar-samee", "anar-samea lingvo"
elseif s == "sms" then
r1, r2 = "skolt-samee", "skolt-samea lingvo"
elseif s == "sqt" then
r1, r2 = "sokotrie", "sokotria lingvo"
elseif s == "stq" then
r1, r2 = "saterfrise", "saterfrisa lingvo"
elseif s == "sty" then
r1, r2 = "siberitatare", "siberitatara lingvo"
elseif s == "sux" then
r1, r2 = "sumere", "sumera lingvo"
elseif s == "sw" then
r1, r2 = "svahile", "svahila lingvo"
elseif s == "szl" then
r1, r2 = "silezia-pole", "silezia-pola lingvo"
elseif s == "tet" then
r1, r2 = "tetune", "tetuna lingvo"
elseif s == "tlh" then
r1, r2 = "klingone", "klingona lingvo"
elseif s == "tli" then
r1, r2 = "tlingite", "tlingita lingvo"
elseif s == "tok" then
r1, r2 = "tokipone", "Tokipono"
elseif s == "tpi" then
r1, r2 = "tokpisine", "Tokpisino"
elseif s == "ty" then
r1, r2 = "tahitie", "tahitia lingvo"
elseif s == "tyv" then
r1, r2 = "tuve", "tuva lingvo"
elseif s == "tzl" then
r1, r2 = "talose", "talosa lingvo"
elseif s == "uby" then
r1, r2 = "ubiĥe", "ubiĥa lingvo"
elseif s == "udm" then
r1, r2 = "udmurte", "udmurta lingvo"
elseif s == "ur" then
r1, r2 = "urdue", "Urduo"
elseif s == "vec" then
r1, r2 = "venecie", "venecia lingvo"
elseif s == "vo" then
r1, r2 = "volapuke", "Volapuko"
elseif s == "vot" then
r1, r2 = "vote", "vota lingvo"
elseif s == "wa" then
r1, r2 = "valone", "valona lingvo"
elseif s == "wen" then
r1, r2 = "sorabe", "soraba lingvo"
elseif s == "xal" then
r1, r2 = "kalmuke", "kalmuka lingvo"
elseif s == "xcu" then
r1, r2 = "kurone", "kurona lingvo"
elseif s == "xh" then
r1, r2 = "kose", "kosa lingvo"
elseif s == "xpu" then
r1, r2 = "punike", "punika lingvo"
elseif s == "xvn" then
r1, r2 = "vandale", "vandala lingvo"
elseif s == "yur" then
r1, r2 = "juroke", "juroka lingvo"
else
r1 = mw.language.fetchLanguageName( s, "eo" )
if r1 then
r1 = r1:gsub( "a$", "e")
r2 = r1:gsub( "e$", "a lingvo" )
end
end
return r1, r2
end
-- gets the accusative and name according to a language code using mw.language.fetchLanguageName
local function getAccusative(s)
-- Gets an accusative and name using the Lua function mw.language.fetchLanguageName.
local r1, r2
if s == "ady" then
r1, r2 = "adigean lingvon", "adigea lingvo"
elseif s == "aib" then
r1, r2 = "ejnuan lingvon", "ejnua lingvo"
elseif s == "ale" then
r1, r2 = "aleutan lingvon", "aleuta lingvo"
elseif s == "ang" then
-- r1, r2 = "malnov-anglan lingvon", "malnov-angla lingvo"
r1, r2 = "anglosaksan lingvon", "anglosaksa lingvo"
elseif s == "arc" then
r1, r2 = "aramean lingvon", "aramea lingvo"
elseif s == "ast" then
r1, r2 = "asturan lingvon", "astura lingvo"
elseif s == "av" then
r1, r2 = "avaran lingvon", "avara lingvo"
elseif s == "bal" then
r1, r2 = "baluĉan lingvon", "baluĉa lingvo"
-- ie en la Vikio estas fuŝa ĉikaze maltaŭga traduko
elseif s == "bi" then
r1, r2 = "bislaman lingvon", "bislama lingvo"
elseif s == "bar" then
r1, r2 = "bavaran lingvon", "bavara lingvo"
elseif s == "be-tarask" then
r1, r2 = "belorusan lingvon (Taraŝkevican)", "belorusa lingvo (Taraŝkevica)"
elseif s == "bs" then
r1, r2 = "bosnan lingvon", "bosna lingvo"
elseif s == "bua" then
r1, r2 = "burjatan lingvon", "burjata lingvo"
elseif s == "my" then
r1, r2 = "birman lingvon", "birma lingvo"
elseif s == "ce" then
r1, r2 = "ĉeĉenan lingvon", "ĉeĉena lingvo"
elseif s == "ceb" then
r1, r2 = "Cebuon", "cebua lingvo"
elseif s == "ch" then
r1, r2 = "ĉamoran lingvon", "ĉamora lingvo"
elseif s == "chg" then
r1, r2 = "ĉagatajan lingvon", "ĉagataja lingvo"
elseif s == "chm" then
r1, r2 = "marian lingvon", "maria lingvo"
elseif s == "ckt" then
r1, r2 = "ĉukĉan lingvon", "ĉukĉa lingvo"
elseif s == "cnr" then
r1, r2 = "montenegran lingvon", "montenegra lingvo"
elseif s == "cop" then
r1, r2 = "koptan lingvon", "kopta lingvo"
elseif s == "crh" then
r1, r2 = "krime-tataran lingvon", "krime-tatara lingvo"
elseif s == "csb" then
r1, r2 = "kaŝuban lingvon", "kaŝuba lingvo"
elseif s == "cv" then
r1, r2 = "ĉuvaŝan lingvon", "ĉuvaŝa lingvo"
elseif s == "din" then
r1, r2 = "dinkan lingvon", "dinka lingvo"
elseif s == "dz" then
r1, r2 = "dzonkan lingvon", "dzonka lingvo"
elseif s == "egy" then
r1, r2 = "egiptan lingvon", "egipta lingvo"
elseif s == "ell" then
r1, r2 = "novgrekan lingvon", "novgreka lingvo"
elseif s == "eo" then
r1, r2 = "Esperanton", "Esperanto"
elseif s == "ett" then
r1, r2 = "etruskan lingvon", "etruska lingvo"
elseif s == "evn" then
r1, r2 = "evenkan lingvon", "evenka lingvo"
elseif s == "ff" then
r1, r2 = "fulanan lingvon", "fulana lingvo"
elseif s == "fit" then
r1, r2 = "tornival-finnan lingvon", "tornival-finna lingvo"
elseif s == "fon" then
r1, r2 = "fonuan lingvon", "fonua lingvo"
elseif s == "frp" then
r1, r2 = "arpitanan lingvon", "arpitana lingvo"
elseif s == "frr" then
r1, r2 = "nordfrisan lingvon", "nordfrisa lingvo"
elseif s == "fur" then
r1, r2 = "friulan lingvon", "friula lingvo"
elseif s == "fy" then
r1, r2 = "okcidentfrisan lingvon", "okcidentfrisa lingvo"
elseif s == "gag" then
r1, r2 = "gagauzan lingvon", "gagauza lingvo"
elseif s == "gd" then
r1, r2 = "skotgaelan lingvon", "skotgaela lingvo"
elseif s == "gil" then
r1, r2 = "kiribatan lingvon", "kiribata lingvo"
elseif s == "grc" then
r1, r2 = "antikvan grekan lingvon", "antikva greka lingvo"
elseif s == "gsw-FR" or s == "gsw-fr" then
r1, r2 = "alzacan lingvon", "alzaca lingvo"
elseif s == "gv" then
r1, r2 = "manksan lingvon", "manksa lingvo"
elseif s == "hi" then
r1, r2 = "hindian lingvon", "hindia lingvo"
elseif s == "hit" then
r1, r2 = "hititan lingvon", "hitita lingvo"
elseif s == "hsb" then
r1, r2 = "suprasoraban lingvon", "suprasoraba lingvo"
elseif s == "ik" then
r1, r2 = "inupiakan lingvon", "inupiaka lingvo"
elseif s == "inh" then
r1, r2 = "inguŝan lingvon", "inguŝa lingvo"
elseif s == "io" then
r1, r2 = "Idon", "Ido (lingvo)"
elseif s == "iu" then
r1, r2 = "inuktitutan lingvon", "inuktituta lingvo"
elseif s == "jbo" then
r1, r2 = "Loĵbanon", "Loĵbano"
elseif s == "kaa" then
r1, r2 = "karakalpakan lingvon", "karakalpaka lingvo"
elseif s == "kab" then
r1, r2 = "kabilan lingvon", "kabila lingvo"
elseif s == "kbd" then
r1, r2 = "kabardan lingvon", "kabarda lingvo"
elseif s == "kg" then
r1, r2 = "kongan lingvon", "konga lingvo"
elseif s == "kjh" then
r1, r2 = "ĥakasan lingvon", "ĥakasa lingvo"
elseif s == "ko-kp" then
r1, r2 = "nordkorean lingvon", "korea lingvo"
elseif s == "ko-kr" then
r1, r2 = "sudkorean lingvon", "korea lingvo"
elseif s == "krc" then
r1, r2 = "balkaran lingvon", "karaĉaja-balkara lingvo"
elseif s == "krl" then
r1, r2 = "karelan lingvon", "karela lingvo"
elseif s == "ksh" then
r1, r2 = "kolonjan lingvon", "kolonja lingvo"
elseif s == "kv" then
r1, r2 = "komian lingvon", "komia lingvo"
elseif s == "kw" then
r1, r2 = "kornvalan lingvon", "kornvala lingvo"
elseif s == "kyh" then
r1, r2 = "karukan lingvon", "karuka lingvo"
elseif s == "la" then
r1, r2 = "Latinon", "Latino"
elseif s == "lbe" then
r1, r2 = "lakan lingvon", "laka lingvo"
elseif s == "lez" then
r1, r2 = "lezgan lingvon", "lezga lingvo"
elseif s == "lld" then
r1, r2 = "ladinan lingvon", "ladina lingvo"
elseif s == "lmo" then
r1, r2 = "lombardan lingvon", "lombarda lingvo"
elseif s == "lua" then
r1, r2 = "luban lingvon", "luba lingvo"
elseif s == "mdf" then
r1, r2 = "mokŝan lingvon", "mokŝa lingvo"
elseif s == "mhr" then
r1, r2 = "herbejan marian lingvon", "herbeja maria lingvo"
elseif s == "mic" then
r1, r2 = "mikmakan lingvon", "mikmaka lingvo"
elseif s == "ml" then
r1, r2 = "malajalan lingvon", "malajala lingvo"
elseif s == "mnc" then
r1, r2 = "manĉuran lingvon", "manĉura lingvo"
elseif s == "mni" then
r1, r2 = "manipuran lingvon", "manipura lingvo"
elseif s == "mos" then
r1, r2 = "mosian lingvon", "mosia lingvo"
elseif s == "mrj" then
r1, r2 = "montaran marian lingvon", "montara maria lingvo"
elseif s == "myv" then
r1, r2 = "erzjan lingvon", "erzja lingvo"
elseif s == "nah" then
r1, r2 = "naŭatlan lingvon", "naŭatla lingvo"
elseif s == "nb" then
r1, r2 = "bukmolan lingvon", "bukmola lingvo"
elseif s == "non" then
r1, r2 = "norenan lingvon", "norena lingvo"
elseif s == "nr" then
r1, r2 = "sud-ndebelan lingvon", "sud-ndebela lingvo"
elseif s == "nso" then
r1, r2 = "pedan lingvon", "peda lingvo"
elseif s == "os" then
r1, r2 = "osetan lingvon", "oseta lingvo"
elseif s == "ota" then
r1, r2 = "osmanidan turkan lingvon", "osmanida turka lingvo"
elseif s == "pag" then
r1, r2 = "pangasinan lingvon", "pangasina lingvo"
elseif s == "pap" then
r1, r2 = "Papiamenton", "Papiamento"
elseif s == "pdc" then
r1, r2 = "pensilvanigermanan dialekton", "pensilvanigermana dialekto"
elseif s == "pi" then
r1, r2 = "palian lingvon", "palia lingvo"
elseif s == "pms" then
r1, r2 = "piemontan lingvon", "piemonta lingvo"
elseif s == "ps" then
r1, r2 = "paŝtunan lingvon", "paŝtuna lingvo"
elseif s == "pt-br" then
r1, r2 = "brazilan portugalan lingvon", "Brazila portugala"
-- eble korektenda post alinomado
elseif s == "rom" then
r1, r2 = "ciganan lingvon", "cigana lingvo"
elseif s == "rue" then
r1, r2 = "rusinan lingvon", "rusina lingvo"
elseif s == "rup" then
r1, r2 = "arumanan lingvon", "arumana lingvo"
elseif s == "sa" or s == "san" then
r1, r2 = "Sanskriton", "sanskrito"
elseif s == "sah" then
r1, r2 = "jakutan lingvon", "jakuta lingvo"
elseif s == "sc" then
r1, r2 = "sardan lingvon", "sarda lingvo"
elseif s == "scn" then
r1, r2 = "sicilian lingvon", "sicilia lingvo"
elseif s == "sco" then
r1, r2 = "skotan lingvon", "skota lingvo"
elseif s == "se" then
r1, r2 = "nordsamean lingvon", "nordsamea lingvo"
elseif s == "sli" then
r1, r2 = "silezia-germanan lingvon", "sSilezia-germana lingvo"
elseif s == "slo" then
r1, r2 = "slovianskan lingvon", "slovianska lingvo"
elseif s == "sju" then
r1, r2 = "ume-samean lingvon", "ume-samea lingvo"
elseif s == "sma" then
r1, r2 = "sud-samean lingvon", "sud-samea lingvo"
elseif s == "smj" then
r1, r2 = "lule-samean lingvon", "lule-samea lingvo"
elseif s == "smn" then
r1, r2 = "anar-samean lingvon", "anar-samea lingvo"
elseif s == "sms" then
r1, r2 = "skolt-samean lingvon", "skolt-samea lingvo"
elseif s == "sqt" then
r1, r2 = "sokotrian lingvon", "sokotria lingvo"
elseif s == "stq" then
r1, r2 = "saterfrisan lingvon", "saterfrisa lingvo"
elseif s == "sty" then
r1, r2 = "siberitataran lingvon", "siberitatara lingvo"
elseif s == "sux" then
r1, r2 = "sumeran lingvon", "sumera lingvo"
elseif s == "sw" then
r1, r2 = "svahilan lingvon", "svahila lingvo"
elseif s == "szl" then
r1, r2 = "silezia-polan lingvon", "silezia-pola lingvo"
elseif s == "tet" then
r1, r2 = "tetunan lingvon", "tetuna lingvo"
elseif s == "tlh" then
r1, r2 = "klingonan lingvon", "klingona lingvo"
elseif s == "tli" then
r1, r2 = "tlingitan lingvon", "tlingita lingvo"
elseif s == "tok" then
r1, r2 = "Tokiponon", "Tokipono"
elseif s == "tpi" then
r1, r2 = "Tokpisinon", "Tokpisino"
elseif s == "ty" then
r1, r2 = "tahitian lingvon", "tahitia lingvo"
elseif s == "tyv" then
r1, r2 = "tuvan lingvon", "tuva lingvo"
elseif s == "tzl" then
r1, r2 = "talosan lingvon", "talosa lingvo"
elseif s == "uby" then
r1, r2 = "ubiĥan lingvon", "ubiĥa lingvo"
elseif s == "udm" then
r1, r2 = "udmurtan lingvon", "udmurta lingvo"
elseif s == "ur" then
r1, r2 = "Urduon", "Urduo"
elseif s == "vec" then
r1, r2 = "venecian lingvon", "venecia lingvo"
elseif s == "vo" then
r1, r2 = "Volapukon", "Volapuko"
elseif s == "vot" then
r1, r2 = "votan lingvon", "vota lingvo"
elseif s == "wa" then
r1, r2 = "valonan lingvon", "valona lingvo"
elseif s == "wen" then
r1, r2 = "soraban lingvon", "soraba lingvo"
elseif s == "xal" then
r1, r2 = "kalmukan lingvon", "kalmuka lingvo"
elseif s == "xcu" then
r1, r2 = "kuronan lingvon", "kurona lingvo"
elseif s == "xh" then
r1, r2 = "kosan lingvon", "kosa lingvo"
elseif s == "xpu" then
r1, r2 = "punikan lingvon", "punika lingvo"
elseif s == "xvn" then
r1, r2 = "vandalan lingvon", "vandala lingvo"
elseif s == "yur" then
r1, r2 = "jurokan lingvon", "juroka lingvo"
else
local r = mw.language.fetchLanguageName( s, "eo" )
if r then
r1 = r:gsub( "a$", "an lingvon")
r2 = r:gsub( "a$", "a lingvo" )
end
end
return r1, r2
end
-- gets the flag according to a language code from [[Modulo:Lingvonomo/listo/flagoj]]
local function getFlags(s)
-- Gets a flag from the flag data page.
local languageData = mw.loadData('Modulo:Lingvonomo/listo/flagoj')
for language, aliases in pairs(languageData) do
if (s==language) then
local adverb = aliases[1]
-- local name = aliases[2]
return adverb, name
end
end
end
-- template - parses the {{Lang}} template with two parameters:
-- l - language code and t - text
local function template (l, t)
local frame = mw.getCurrentFrame()
local r = frame:expandTemplate{
title = 'Lang',
args = {
l,
t
}
}
return r
end
-- image tests, if a text could be the name of an image
local function image (t)
local text = mw.ustring.lower(t) -- it changes letters into lower case letters
local ending = mw.ustring.sub(text,-4,-1)
if (ending ==".gif") or (ending == ".jpg") or (ending == ".png") or (ending == ".svg") then
local error = false
return t, error
else
local ending = mw.ustring.sub(text,-5,-1)
if (ending==".jpeg") then
local error = false
return t, error
else
local r = message("noFlag","flag")
local error = true
return r, error
end
end
local r = message("noFlag","flag")
local error = true
return r, error
end
-- testweight analyzes if the given value in w is a valid value of the CSS feature font-weight
local function testweight (w)
local text = mw.ustring.lower(w) .. ""
if (text=="normal") or (text=="bold") or (text=="bolder") or (text=="lighter")
or (text=="100") or (text=="200") or (text=="300") or (text=="400") or (text=="500")
or (text=="600") or (text=="700") or (text=="800") or (text=="900") then
return w
else
return "normal"
end
end
-- Export
local p = {}
-- main functions:
-- language - creates a link to a language article and an adverb like text
-- has only one needed parameter, the code of the language
-- it is used for the templates {{Ar}} until {{Zh}}
function p.language (frame)
-- This function builds the infobox used by the {{informkesto}} template.
if not getArgs then
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
-- post modifo de {{ŝanĝu ŝablonon}} la sekva estos denove ŝanĝenda!
local args = getArgs(frame, {removeBlanks = false})
code = args[1]
-- it analyzes, if the required parameter is wrong or not
r=analyze (code, "language")
if (r~="") then return r -- if r is some other than an empty string, it returns the message
-- and finishes the function
end
-- optional parameters
color = args['koloro'] or args['color']
background = args['fono'] or args['background']
size = args['grando'] or args['size']
weight = args['pezo'] or args['weight']
accusative = args['akuzativo'] or args['accusative'] -- it is in this function only
if (color ==nil) or (color == "") then
c = "color:var(--color-subtle, #54595d);"
elseif (color == "defaŭlta") or (color == "normala" ) then
c = ""
else
c = "color:" .. color .. ";"
end
if (background~=nil) and (background~="") then
b = "background-color:" .. background .. ";"
else
b = ""
end
if (size~=nil) and (size~="") then
s = "font-size:" .. size .. ";"
else
s = ""
end
if (weight~=nil) and (weight~="") then
w = "font-weight:" .. testweight(weight) .. ";"
else
w = ""
end
code = mw.ustring.lower(code)
-- if accusative has one of the following values, get the accusative. else the adverb
if (accusative == "jes") or (accusative=="yes") then
text, name = getAccusative(code)
else
text, name = getLanguages(code)
end
if (text ~= "") and (name ~="") then
-- if (adverb~=nil) and (name ~=nil) then
local linktext = text
if (c~="") or (b~="") or (s~="") or (w~="") then
r = "[[" .. name .. '|<span style="' .. c .. b .. s .. w .. '">' .. linktext .. "</span>]]"
else
r = "[[" .. name .. '|' .. linktext .. "]]"
end
else r = "<span class='error'>La lingva kodo '".. code .. "' ne estas subtenata de la Lua-funkcio 'mw.language.fetchLanguageName'. - en la funkcio: language()</span>"
end
return r
end
-- flag - puts an image and creates a link to a language article and an adverb like text
-- has only one needed parameter, the code of the language
-- it is used for the templates {{Flag-ar}} until {{Flag-zh}}
function p.flag (frame)
-- This function builds the infobox used by the {{informkesto}} template.
if not getArgs then
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
-- post modifo de {{ŝanĝu ŝablonon}} la sekva estos denove ŝanĝenda!
local args = getArgs(frame, {removeBlanks = false})
code = args[1]
-- it analyzes, if the required parameter is wrong or not
r=analyze (code, "flag")
if (r~="") then return r -- if r is some other than an empty string, it returns the message
-- and finishes the function
end
-- optional parameter
color = args['koloro'] or args['color']
background = args['fono'] or args['background']
size = args['grando'] or args['size']
weight = args['pezo'] or args['weight']
if (color ~=nil) and (color ~= "") then
c = "color:" .. color .. ";"
else
c = ""
end
if (background~=nil) and (background~="") then
b = "background-color:" .. background .. ";"
else
b = ""
end
if (size~=nil) and (size~="") then
s = "font-size:" .. size .. ";"
else
s = ""
end
if (weight~=nil) and (weight~="") then
w = "font-weight:" .. testweight(weight) .. ";"
else
w = ""
end
code = mw.ustring.lower(code)
local adverb, name = getLanguages(code)
local flag = getFlags(code)
if (adverb ~= "") and (name ~="") then
-- if (adverb~=nil) and (name ~=nil) then
if (flag~=nil) then
local i, error = image(flag) -- test if the text from the page [[Modulo:Lingvonomo/listo/flagoj]] is an image or not
if (error == false) then
r = "[[Dosiero:" .. flag .. "|20px|border]] "
elseif (error == true) then
r = i
end
else
r = message("noFlag","flag") -- '<span class="error">La paĝo [[Modulo:Lingvonomo/listo/flagoj]] ne enhavas taŭgan flagon.</span>'
end
local linktext = adverb
local l = name:gsub( " lingvo", "" )
r = r .. '<span style="cursor:help;font-family:monospace;font-weight:bold;font-size:small" title="Lingvo: ' .. l .. '">'
if (c~="") or (b~="") or (s~="") or (w~="") then
r = r .. "[[" .. name .. '|<span style="' .. c .. b .. s .. w .. '">' .. linktext .. "</span>]]"
else
r = r .. "[[" .. name .. '|' .. linktext .. "]]"
end
r = r .. "</span>"
else r = "<span class='error'>La lingva kodo '".. code .. "' ne estas subtenata de la Lua-funkcio 'mw.language.fetchLanguageName'. - en la funkcio: flag()</span>"
end
return r
end
-- lang - creates a link to a language article and an adverb like text
-- has two needed parameters, the code of the language and the text
function p.lang (frame)
-- This function builds the infobox used by the {{informkesto}} template.
if not getArgs then
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
-- post modifo de {{ŝanĝu ŝablonon}} la sekva estos denove ŝanĝenda!
local args = getArgs(frame, {removeBlanks = false})
code = args[1]
text = args[2]
-- it analyzes, if the required parameters are wrong or not
r=analyze2 (code, text, "lang")
if (r~="") then return r -- if r is some other than an empty string, it returns the message
-- and finishes the function
end
-- optional parameter
color = args['koloro'] or args['color']
background = args['fono'] or args['background']
lcolor = args['l-koloro'] or args['l-color']
size = args['grando'] or args['size']
weight = args['pezo'] or args['weight']
italic = args['kursiva'] or args['italic'] or ""
link = args['ligilo'] or args['link'] or ""
short = args["mallonge"]
adjective = args["adjektivo"] or args["adjective"] or "" -- aktivigas la eligon de adjektivo anstataŭ la kutima adverbo
-- for alternative text
au = args['aŭ'] or args['or']
kaj = args['kaj'] or args['and']
antaue = args['antaŭe'] or args['before']
if (color ~=nil) and (color ~= "") then
c = "color:" .. color .. ";"
else
c = ""
end
if (background~=nil) and (background~="") then
b = "background-color:" .. background .. ";"
else
b = ""
end
if (size~=nil) and (size~="") then
s = "font-size:" .. size .. ";"
else
s = ""
end
if (weight~=nil) and (weight~="") and (s~="") then
w = "font-weight:" .. testweight(weight) .. ";"
elseif (weight==nil) or (weight=="") and (s~="") then
w = "font-weight: normal;"
else
w = ""
end
-- html tags for the font-size, because this is used for both links
if (s~="") or (w~="") then
link1 = '<b style="'
link2 = '">'
link3 = "</b>"
else
link1 = ""
link2 = ""
link3 = ""
end
code = mw.ustring.lower(code)
local adverb, name = getLanguages(code)
if (adverb ~= "") and (name ~="") then
-- if (adverb~=nil) and (name ~=nil) then
local linktext = adverb
if adjective == "1" or adjective == "yes" or adjective == "jes" then
linktext = mw.ustring.gsub( name, " lingvo", "" )
-- esceptoj
if code == "ceb" then
linktext = "cebua"
elseif code == "jbo" then
linktext = "loĵbana"
elseif code == "la" then
linktext = "latina"
elseif code == "pdc" then
linktext = mw.ustring.gsub( name, " dialekto", "" )
-- varianto sen fina "lingvo"
elseif code == "pt-br" then
linktext = name
-- daŭrigo de esceptoj
elseif code == "sa" or code == "san" then
linktext = "sanskrita"
elseif code == "tok" then
linktext = "tokipona"
elseif code == "tpi" then
linktext = "tokpisina"
elseif code == "ur" then
linktext = "urdua"
elseif code == "vo" then
linktext = "volapuka"
end
end
local i = ""
if italic == "yes" or italic == "jes" or italic == "" then
i = "''"
end
-- esceptaj lingvokodoj, kie kursiveco ne taŭgas
if code == "am" or code == "ar" or code == "arc" or code == "bal" or code == "bm" or code == "bn" or code == "bo" or code == "cop" or code == "dv" or code == "dz" or code == "egy" or code == "fa" or code == "ff" or code == "gu" or code == "he" or
code == "hi" or code == "hit" or code == "hy" or code == "ja" or code == "ka" or code == "kab" or code == "km" or code == "kn" or code == "ko" or code == "ko-kp" or code == "ko-kr" or code == "lo" or code == "ml" or code == "mnc" or
code == "mni" or code == "mnw" or code == "mr" or code == "my" or code == "ne" or code == "ota" or code == "pa" or code == "pi" or code == "ps" or code == "sa" or code == "san" or code == "sd" or code == "si" or code == "sqt" or code == "sux" or
code == "ta" or code == "te" or code == "th" or code == "ur" or code == "xpu" or code == "yi" or code == "zh" then
i = ""
end
-- truko por la ĉina
local simple
if code == "zh" then
simple = args["s"] or args['sh']
if simple ~= "" and simple ~= nil then
code = "zh-Hant"
end
end
l = template (code, text) -- invoke the {{Lang}} template
local l2 = ""
local vorto = ""
if au ~= "" and au ~=nil then
l2 = template(code, au)
vorto = " aŭ "
elseif kaj ~= "" and kaj ~=nil then
l2 = template(code, kaj)
vorto = " kaj "
elseif antaue ~= "" and antaue ~=nil then
l2 = template(code, antaue)
vorto = ", antaŭe "
end
local krampo1 = "[["
local krampo2 = "]]"
local streko = "|"
if short == "1" or short == "jes" or short == "yes" then
name = ""
linktext = ""
krampo1 = ""
krampo2 = ""
streko = ""
elseif lcolor ~= "" and lcolor ~= nil then
linktext = '<span style="color:' .. lcolor .. '">' .. linktext .. '</span>'
end
if text ~= " " then
if (c~="") or (b~="") or (s~="") then
if link ~= "no" and link ~= "ne" then
r = link1 .. s .. w .. link2 .. krampo1 .. name .. streko .. linktext .. krampo2 .. ' <span style="' .. c .. b .. '">' .. i .. l .. i .. "</span>" .. link3
if l2 ~= "" then
r = r .. vorto .. '<span style="' .. c .. b .. '">' .. i .. l2 .. i .. "</span>" .. link3
end
else
r = link1 .. s .. w .. link2 .. linktext .. ' <span style="' .. c .. b .. '">' .. i .. l .. i .. "</span>" .. link3
if l2 ~= "" then
r = r .. vorto .. '<span style="' .. c .. b .. '">' .. i .. l2 .. i .. "</span>" .. link3
end
end
else
if link ~= "no" and link ~="ne" then
r = krampo1 .. name .. streko .. linktext .. krampo2 .. " " .. i .. l .. i
if l2 ~= "" then
r = r .. vorto .. i .. l2 .. i
end
else
r = linktext .. " " .. i .. l .. i
if l2 ~= "" then
r = r .. vorto .. i .. l2 .. i
end
end
end
else
if (c~="") or (b~="") or (s~="") then
if link ~= "no" and link ~= "ne" then
r = link1 .. s .. w .. link2 .. krampo1 .. name .. streko .. linktext .. krampo2 .. ' ' .. link3
else
r = link1 .. s .. w .. link2 .. linktext .. ' ' .. link3
end
else
if link ~= "no" and link ~="ne" then
r = krampo1 .. name .. streko .. linktext .. krampo2 .. " "
else
r = linktext .. " "
end
end
end
-- translitaracioj por kelkaj lingvoj. aldonoj eblas.
if code == "zh" or code == "zh-Hant" then
if simple ~= "" and simple ~= nil then
r = r .. '/<span lang="zh-Hans">' ..simple .. '</span>'
end
local pinjin = args['p'] or args['pinjino']
local p = ""
if pinjin ~= "" and pinjin ~= nil then
r = r .. ', [[pinjino|pinjine]]: <span lang="zh-Latn">' .. pinjin .. '</span>'
p = "(alia transskribo) "
end
local wg = args['Wade-Giles'] or args['wg']
if wg ~= "" and wg ~= nil then
r = r .. ', [[Wade-Giles]]: <span lang="zh-Latn">' .. wg .. '</span>'
end
local j = args['j'] or args['kj'] or args['jyutping']
if j ~= "" and j ~= nil then
r = r .. ', [[Jyutping]]: <span lang="zh-Latn">' .. j .. '</span>'
end
local t = args['t']
if t ~= "" and t ~= nil then
-- se pinjino antaŭas alian transskribon la supre difinita teksto estas antaŭmetata, alie nenio
r = r .. ", " .. p .. t
end
elseif code == "ja" then
local h = args['h']
if h ~= "" and h ~= nil then
if text == " " then
r = r .. h
else
r = r .. ', latinliterigo laŭ [[sistemo Hepburn]] <span lang="ja-Latn">' .. h .. '</span>'
end
end
local t = args['t']
if t ~= "" and t ~= nil then
if text == " " then
r = r .. t
else
r = r .. ", " .. t
end
end
elseif code == "ko" or code == "ko-kp" or code == "ko-kr" then
local r2 = args['r'] or args['rtk']
if r2 ~= "" and r2 ~= nil then
if text == " " then
r = r .. r2
else
r = r .. ', latinliterigo laŭ [[Revizia latinliteriga transskribo de la korea lingvo|reviziita transskribo]] <span lang="ko-Latn">' .. r2 .. '</span>'
end
end
local mr2 = args['mr']
if mr2 ~= "" and mr2 ~= nil then
if text == " " then
r = r .. mr2
else
r = r .. ', latinliterigo laŭ [[transskribo de McCune-Reischauer]] <span lang="ko-Latn">' .. mr2 .. '</span>'
end
end
local t = args['t']
if t ~= "" and t ~= nil then
if text == " " then
r = r .. t
else
r = r .. ", " .. t
end
end
elseif code == "ar" or code == "fa" or code == "ps" or code == "ur" then
local d = args['d']
if d ~= "" and d ~= nil then
if text == " " then
r = r .. d
else
r = r .. ", [[DIN 31635|DMG]] " .. '<span lang="' .. code .. '-Latn">' .. d .. '</span>'
end
end
local t = args['t']
if t ~= "" and t ~= nil then
if text == " " then
r = r .. t
else
r = r .. ", " .. t
end
end
elseif code == "sa" or code == "san" then
local i = args['i'] or args['iast']
if i ~= "" and i ~= nil then
r = r .. ' [[IAST]]: ' .. '<span lang="' .. code .. '-Latn">' .. i .. '</span>'
end
elseif code ~= "eo" then
local t = args['t']
if t ~= "" and t ~= nil then
if text == " " then
r = r .. t
else
r = r .. ", " .. t
end
end
end
else r = "<span class='error'>La lingva kodo '".. code .. "' ne estas subtenata de la Lua-funkcio 'mw.language.fetchLanguageName'. - en la funkcio: lang()</span>"
end
return r
end
-- exist analyzes if a code is a language code in mw.language.fetchLanguageName
function p.exist (frame)
-- This function builds the infobox used by the {{informkesto}} template.
if not getArgs then
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
-- post modifo de {{ŝanĝu ŝablonon}} la sekva estos denove ŝanĝenda!
local args = getArgs(frame, {removeBlanks = false})
code = args[1]
-- it analyzes, if the required parameter is wrong or not
r=analyze (code, "exist")
if (r~="") then return r -- if r is some other than an empty string, it returns the message
-- and finishes the function
end
local text, name = getLanguages(code)
if (text~="") and (name~="") then
return true
else
return false
end
end
-- list returns all langugage from the function mw.language.fetchLanguageNames in a wikitable
function p.list (frame)
-- This function builds the infobox used by the {{informkesto}} template.
if not getArgs then
getArgs = require("Module:Arguments").getArgs
end
--local args = getArgs(frame, {wrappers = "Template:Babel"})
-- post modifo de {{ŝanĝu ŝablonon}} la sekva estos denove ŝanĝenda!
local args = getArgs(frame, {removeBlanks = false})
local r = '{| class="wikitable sortable"\n'
r = r .. "|-\n" .. "! Kodo !! Nomo\n" -- head of the table
local languages = mw.language.fetchLanguageNames("eo","all")
local a = {}
local number = 0
for n in pairs(languages) do
a[#a 1] = n
end
number = #a
table.sort(a)
r = r .. "|-\n" .. '! colspan="2" | nombro: ' .. number .. "\n"
for index, code in pairs(a) do
local name = ""
for c, n in pairs(languages) do
if (c == code) then
name = n
break
end
end
r = r .. "|-\n" .. "| " .. code .. " || " .. name .. "\n"
end
r = r .. "|}\n"
r = r .. "nombro: " .. number
return r
end
return p