Mòdul auxiliar per obtenir les unitats d'un valor de Wikidata. El format per a cada unitat és:

	Qxxx = {
		label = 'xxx',
		plural = 'xxx',
		ucode = 'xxx',
		},

La inclusió en aquesta taula és opcional:

  • Q seguit d'uns números és el qualificador de la unitat a Wikidata, usat com a referència.
  • label és l'etiqueta de la unitat a Wikidata. S'obté automàticament de la consulta a Wikidata i s'inclou aquí en casos d'alta utilització per evitar canvis sobtats i massius deguts a una modificació a Wikidata, sigui vandàlica o no.
  • plural és el plural de l'etiqueta d'unitat, a utilitzar quan la quantitat sigui diferent d'1. Es genera automàticament a partir d'unes regles (vegeu Mòdul:ca-flexió) i només caldrà incloure'l en casos estranys no regulars.
  • ucode és el codi o l'abreviatura de la unitat, a utilitzar en cas d'usar el paràmetre formatting=unitcode. Si no existeix traurà l'etiqueta en singular. Cal recordar que les abreviatures van amb punt final i els codis no.

local wikidata_units = {
	Q11573 = {
		label = 'metre',
		ucode = 'm',
		},
	Q5151 = {
		label = 'mes',
		plural = 'mesos',
		},
	Q174728 = {
		label = 'centímetre',
		plural = 'centímetres',
		ucode = 'cm',
		},
	Q828224 = {
		label = 'quilòmetre',
		plural = 'quilòmetres',
		ucode = 'km',
		},
	Q253276 = {
		label = 'milla',
		plural = 'milles',
		ucode = 'mi',
		},
	Q3710 = {
		label = 'peu',
		plural = 'peus',
		ucode = 'ft',
		},
	Q25343 = {
		label = 'metre quadrat',
		plural = 'metres quadrats',
		ucode = 'm²',
		},
	Q712226 = {
		label = 'quilòmetre quadrat',
		plural = 'quilòmetres quadrats',
		ucode = 'km²',
		},
	Q232291 = {
		label = 'milla quadrada',
		plural = 'milles quadrades',
		ucode = 'mi²',
		},
	Q35852 = {
		label = 'hectàrea',
		plural = 'hectàrees',
		ucode = 'ha',
		},
	Q5195628 = {
		label = 'hectòmetre cúbic',
		plural = 'hectòmetres cúbics',
		ucode = 'hm<sup>3</sup>',
		},
	Q160857 = {
		label = 'cavall de vapor',
		plural = 'cavalls de vapor',
		ucode = 'CV',
		},
	Q3320608 = {
		label = 'kilowatt',
		plural = 'kilowatts',
		ucode = 'kw',
		},
	Q11570 = {
		label = 'quilogram',
		plural = 'quilograms',
		ucode = 'kg',
		},
	Q11229 = {
		label = 'percentatge',
		plural = 'percentatges',
		ucode = '%',
		},
	Q4917 = {
		label = 'dòlar dels Estats Units',
		plural = 'dòlars dels Estats Units',
		ucode = '$',
		},	
	Q25224 = {
		label = 'lliura esterlina',
		plural = 'lliures esterlines',
		ucode = '£',
		},	
	Q4916 = {
		label = 'euro',
		plural = 'euros',
		ucode = '€',
		},	
	Q1811 = {
		label = 'unitat astronòmica',
		plural = 'unitats astronòmiques',
		ucode = 'UA',
		},	
	Q28390 = {
		label = 'grau sexagesimal',
		plural = 'graus sexagesimals',
		ucode = '°',
		},	
	Q573 = {
		label = 'dia',
		plural = 'dies',
		ucode = 'dies',
		},	
	Q25517 = {
		label = 'metre cúbic',
		plural = 'metres cúbics',
		ucode = 'm<sup>3</sup>',
		},
	Q794261 = {
		label = 'metre cúbic per segon',
		plural = 'metres cúbics per segon',
		ucode = 'm<sup>3</sup>/seg',
		},
	Q7727 = {
		label = 'minut',
		plural = 'minuts',
		ucode = 'min',
		},
	Q11574 = {
		label = 'segon',
		plural = 'segons',
		ucode = 's',
		},
	Q41803 = {
		label = 'gram',
		plural = 'grams',
		ucode = 'g',
		},
	Q218593 = {
		label = 'polzada',
		plural = 'polzades',
		ucode = '″',
		},
	Q1063786 = {
		label = 'polzada quadrada',
		plural = 'polzades quadrades',
		},
	Q3710 = {
		label = 'peu',
		plural = 'peus',
		},
	Q209426 = {
		label = 'minut',
		plural = 'minuts',
		ucode = '′',	
		},
	Q829073 = {
		label = 'segon',
		plural = 'segons',
		ucode = '″',
		},
	Q11229 = {
		label = 'percentatge',
		plural = 'percentatge',
		ucode = '%',
		},
	Q25267 = {
		label = 'grau Celsius',
		plural = 'graus Celsius',
		ucode = '°C',
		},
	Q13147228 = {
		label = 'gram per centímetre cúbic',
		plural = 'grams per centímetre cúbic',
		ucode = 'g/cm<sup>3</sup>',
		},
	}

local function getUnit(amount, label, unitID, code)
	if label == nil or label == '' then return unitID end
	local id_data = wikidata_units[unitID] or {}
	local unit_text = ''
	if code then
		unit_text = id_data.ucode or id_data.label or label
	elseif amount == "1" then
		unit_text = id_data.label or label
	else
		unit_text = id_data.plural or require("Module:ca-flexió").plural(id_data.label or label)
	end
	return unit_text
end

return {getUnit = getUnit}