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