Documentation for this module may be created at Modulu:Wikidata/labels/dok

-- Tables with labels fixed for infoboxes

-- Fixes for function getLabel
local infoboxLabelsFromId = {
}

-- Fixes for case=infoboxlabel
local infoboxlabels = {
	["hiriburu"] = "hiria",
	["hiri handi"] = "hiria",
	["autonomia erkidego"] = "autonomia",
	["Espainiako probintzia"] = "probintzia",
	["Kataluniako eskualdeak"] = "eskualdea",
	["Euskal Autonomia Erkidegoko eskualdea"] = "eskualdea",
	["Espainiako udalerria"] = "udalerria",	
	["Frantziako departamendu"] = "departamendua",
	["Frantziako eskualdeak"] = "eskualdea",
	["Estatu subiranoa"] = "herrialdea",
	["errepublika"] = "herrialdea",
	["herrialde"] = "herrialdea",
	["zona de govern local d'Austràlia"] = "govern local",
	["Greziaren banaketa administratiboa"] = "eskualdea",
	["Unitate periferiko"] = "unitatea",
	["Voivoderri"] = "voivoderria",
	["Esloveniako hiri udalerria"] = "hiri-udalerria",
	["Commonwealtheko monarkia"] = "estatua",
	["Galesko area nagusi"] = "eskualdea",
	["Erresuma Batuko herrialde"] = "herrialdea",
	["Metropoli"] = "hiria",
	["Ameriketako Estatu Batuetako estatu"] = "estatua",
	["Iranen banaketa administratiboa"] = "probintzia",
	["Danimarkako udalerria"] = "udalerria",
	["Danimarkaren banaketa administratiboa"] = "eskualdea",
	["Europar Batasuneko estatu kideak"] = "herrialdea",
	["monarkia konstituzional"] = "herrialdea",
	["Ipar-Renania Westphaliako eskualde administratiboa"] = "eskualdea",
	["Marokoko prefektura"] = "prefektura",
	["Marokoko probintzia"] = "probintzia",
	["Marokoko eskualdea"] = "eskualdea",
	["Txileko probintziak"] = "probintzia",
	["Txileko eskualdeak"] = "eskualdea",
	["Burkina Fasoko eskualdea"] = "eskualdea",
	["uharte-estatu"] = "herrialdea",
	["hiri"] = "hiria",
	["unitate periferiko"] = "unitate periferikoa",
	["Greziako udalerri"] = "udalerria",
	["Britainiar Inperioaren dominio"] = "herrialdea",
	["Kanadako probintzia"] = "probintzia",
	["Quebeceko eskualde administratiboak"] = "eskualdea",
	["Lurralde ekibalente"] = "udalerria",
	["Montenegroren banaketa administratiboa"] = "administrazioa",
	["estatutu berezia duen eskualdea"] = "eskualdea",
	["Italiako probintzia"] = "probintzia",
	["Italiako eskualdea"] = "eskualdea",
	["neighborhood of historical district of Moscow"] = "auzoa",
	["Txekiar Errepublikaren banaketa administratiboa"] = "eskualdea",
	["Txekiar Errepublikako barrutia"] = "barrutia",
	["Ameriketako Estatu Batuetako lurraldea"] = "lurraldea",
	["Ukrainako oblast"] = "oblast",
	["Ukrainako eskualde garrantziko hiria"] = "hiria",
	["Herbehereetako Erresumako herrialde"] = "herrialdea",
	["Herbehereetako udalerria"] = "udalerria",
	["Herbehereetako probintzia"] = "probintzia",
-- izaki bizidunak
	["superdomeinu"] = "superdomeinua",
	["domeinu"] = "domeinua",
	["goierreinu"] = "goierreinua",
	["azpidomeinu"] = "azpidomeinua",
	["erreinu"] = "erreinua",
	["azpierreinu"] = "azpierreinua",
	["goifilum"] = "goifiluma",
	["filum"] = "filuma",
	["azpifilum"] = "azpifiluma",
	["goiklase"] = "goiklasea",
	["klase"] = "klasea",
	["azpiklase"] = "azpiklasea",
	["leinu"] = "leinua",
	["genero"] = "generoa",
	["espezie"] = "espeziea",
	["azpiespezie"] = "azpiespeziea"
}

-- Fixes for case=infoboxdata
local infoboxdata = {
	["Urakan haizeen Saffir-Simpson eskala"] = "SSHS",
	["JMA tifoiaren sailkapena"] = "JAM",
	["IMD zikloi sailkapena"] = "IMD",
	["MF zikloien sailkapena"] = "MFR",
	["BOM/FMS zikloi sailkapena"] = "BOM/FMS"
}

-- Support functions

local function fixInfoboxLabel(label)
	if infoboxlabels[label] then
		label = infoboxlabels[label]
	else
		label = string.gsub(label, " de .+", "")
		label = string.gsub(label, " dels? .+", "")
		label = string.gsub(label, " d'.+", "")
		label = string.gsub(label, " %(.+", "")
		if label == 'estatua' then
			label = 'estatu federatua'
		end
	end
	
	return mw.text.trim(mw.ustring.upper(mw.ustring.sub(label, 1, 1)) .. mw.ustring.sub(label, 2))
end

local function fixInfoboxData(label)
	if infoboxdata[label] then
		label = infoboxdata[label]
	end
	
	return label
end

-- Return exported functions
return {
	infoboxLabelsFromId = infoboxLabelsFromId,
	fixInfoboxLabel = fixInfoboxLabel,
	fixInfoboxData = fixInfoboxData,
	}