Module:Zandbak/WillemBK/Zh
Documentatie voor deze module kan aangemaakt worden op de volgende pagina: Module:Zandbak/WillemBK/Zh/doc
local p = {}
-- labels
local labels = {
["c"] = "Chinees",
["t"] = "traditioneel Chinees",
["s"] = "vereenvoudigd Chinees",
["p"] = "pinyin",
["tp"] = "Tongyong pinyin",
["w"] = "Wade-Giles",
["l"] = "letterlijk",
}
-- Artikeltitels voor wikilinks naar de verschillende onderdelen
local wlinks = {
["c"] = "Chinese talen",
["t"] = "Traditionele Chinese karakters",
["s"] = "Vereenvoudigde Chinese karakters",
["p"] = "Hanyu pinyin",
["tp"] = "Tongyong pinyin",
["w"] = "Wade-Giles",
}
-- ISO 639 taalcode waar mogelijk
local ISOlang = {
["c"] = "zh",
["t"] = "zh-Hant",
["s"] = "zh-Hans",
["p"] = "zh-Latn-pinyin",
["tp"] = "zh-Latn",
["w"] = "zh-Latn-wadegile",
}
-- Romanisaties in cursief
local italic = {
["p"] = true,
["tp"] = true,
["w"] = true,
}
-- Categoriën voor verschillende soorten Chinese tekst
local cats = {
["c"] = "[[Categorie:Artikel bevat Chinese karakters]]",
["t"] = "[[Categorie:Artikel bevat Traditionele Chinese karakters]]",
["s"] = "[[Categorie:Artikel bevat Vereenvoudigde Chinese karakters]]",
}
function p.Zh(args)
local uselinks = not (args["links"] == "no") -- Wel of geen wikilinks toevoegen
local uselabels = not (args["labels"] == "no") -- Wel of geen labels toevoegen
-- Volgorelijst
local orderlist = {"c", "s", "t", "p", "tp", "w", "l"}
local body = "" -- de output string
local params -- bedoeld om HTML span elementen te maken
local label -- het label, het stukje tekst voor de ingevulde tekst
local val -- de ingevulde tekst
-- loop alle velden af en voeg het toe aan de output
for i, part in ipairs(orderlist) do
if (args[part]) then
-- Opbouw label
label = ""
if (uselabels) then
label = labels[part]
if (uselinks and part ~= "l") then
label = "[[" .. wlinks[part] .. "|" .. label .. "]]"
end
label = label .. ": "
end
-- Opbouw ingevulde waarde
val = args[part]
if (cats[part]) then
-- Voeg categorie toe waar mogelijk
val = cats[part] .. val
end
if (ISOlang[part]) then
-- Voeg span element toe voor taal waar mogelijk
params = {["lang"] = ISOlang[part], ["xml:lang"] = ISOlang[part]}
val = mw.text.tag({name="span",attrs=params, content=val})
elseif (part == "l") then
-- Zet letterlijk vertalingen tussen aanhalingstekens
val = '"' .. val .. '"'
end
if (italic[part]) then
-- Zet romanisaties in cursief
val = "''" .. val .. "''"
end
-- Voeg label en waarde toe aan body
body = body .. label .. val .. "; "
end
return ""
end
end
return p