Documentation for this module may be created at Module:Convert/extra/doc

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',
		},
	Q93318 = {
		label = 'milla nàutica',
		plural = 'milles nàutiques',
		ucode = 'mn',
		},
	Q128822 = {
		label = 'nus',
		plural = 'nusos',
		ucode = 'kn',
		},
	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>',
		},
	Q2029519 = {
		label = 'hectolitre',
		plural = 'hectolitres',
		ucode = 'hL',
		},
	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',
		},
	Q100995 = {
		label = 'lliura',
		plural = 'lliures',
		ucode = 'lb',
		},
	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>',
		},
	Q2719498 = {
		label = 'arqueig brut',
		ucode = 'GT',
		},
	Q1781855 = {
		label = 'arqueig net',
		ucode = 'NT',
		},
	Q550207 = {
		label = 'dòlar Geary-Khamis',
		plural = 'dòlars Geary-Khamis',
		ucode = '$',
		},
	Q79738 = {
		label = 'gigabyte',
		plural = 'gigabytes',
		ucode = 'GB',
		},
	Q483261 = {
		label = 'unitat de massa atòmica',
		plural = 'unitats de massa atòmica',
		ucode = 'uma',
		},
	Q42289 = {
		label = 'grau Fahrenheit',
		plural = 'graus Fahrenheit',
		ucode = '°F',
		},
	Q6859652 = {
		label = 'mil·límetre de mercuri',
		plural = 'mil·límetres de mercuri',
		ucode = 'mm Hg',		
		},
	Q21077820 = {
		label = 'mil·ligram per metre cúbic',
		plural = 'mil·ligrams per metre cúbic',
		ucode = 'mg/m<sup>3</sup>',		
		},
	Q752197 = {
		label = 'quilojoule per mol',
		plural = 'quilojoules per mol',
		ucode = 'KJ/mol',		
		},
	Q83327 = {
		label = 'electró-volt',
		plural = 'electrons-volt',
		ucode = 'eV',		
		},
	Q191118 = {
		label = 'tona',
		plural = 'tones',
		ucode = 't',
		},
	Q182429 = {
		label = 'metre per segon',
		plural = 'metres per segon',
		ucode = 'm/s',
		},
	Q177974 = {
		label = 'atmosfera',
		plural = 'atmosferes',
		ucode = 'atm',
		},
	Q2080811 = {
		label = 'percentatge en volum',
		plural = 'percentatge en volum',
		ucode = '%',
		},
	Q21127659 = {
		label = 'gram per 100 grams de dissolvent',
		plural = 'grams per 100 grams de dissolvent',
		ucode = 'g/100 g dissolvent',
		},
	Q20966455 = {
		label = 'joule per mol-kelvin',
		plural = 'joules per mol-kelvin',
		ucode = 'J/mol·K',
		},
	Q3085309 = {
		label = 'joule per quilogram-kelvin',
		plural = 'joules per quilogram-kelvin',
		ucode = 'J/Kg·K',
		},
	Q21061369 = {
		label = 'gram per quilogram',
		plural = 'grams per quilogram',
		ucode = 'g/Kg',
		},
	Q174789 = {
		label = 'mil·límetre',
		plural = 'mil·límetres',
		ucode = 'mm',
		},
	Q25235 = {
		label = 'hora',
		plural = 'hores',
		ucode = 'h',
		},
	Q21091747 = {
		label = 'mil·ligram per quilogram',
		plural = 'mil·ligrams per quilogram',
		ucode = 'mg/Kg',
		},
	Q21006887 = {
		label = 'part per milió',
		plural = 'parts per milió',
		ucode = 'ppm',
		},
	Q26162545 = {
		label = 'centímetre quadrat per segon',
		plural = 'centímetres quadrats per segon',
		ucode = 'cm<sup>2</sup>/s',
		},
	Q21604951 = {
		label = 'gram per metre cúbic',
		plural = 'grams per metre cúbic',
		ucode = 'g/m<sup>3</sup>',
		},
	Q26156132 = {
		label = 'mil·linewton per metre',
		plural = 'mil·linewtons per metre',
		ucode = 'mN/m',
		},
	Q21064807 = {
		label = 'quilopascal',
		plural = 'quilopascals',
		ucode = 'kPa',
		},
	Q751310 = {
		label = 'poiseuille',
		plural = 'poiseuilles',
		ucode = 'PI',
		},
	Q44395 = {
		label = 'pascal',
		plural = 'pascals',
		ucode = 'Pa',
		},
	Q1463969 = {
		label = 'watt per metre-kelvin',
		plural = 'watts per metre-kelvin',
		ucode = 'W/(m·K)',
		},
	Q40603 = {
		label = 'debye',
		plural = 'debyes',
		ucode = 'D',
		},
	Q20966435 = {
		label = 'amper per volt-metre',
		plural = 'amper per volt-metre',
		ucode = 'A/Vm',
		},
	Q319604 = {
		label = 'passatger',
		plural = 'passatgers',
		},
	Q155009 = {
		label = 'Reichsmark',
		ucode = 'ℛℳ',
		},
	Q1332978 = {
		label = 'tonatge de pes mort',
		ucode = 'DWT',
		},
	Q6998519 = {
		label = 'arqueig de registre net',
		ucode = 'NRT',
		},
	Q752079 = {
		label = 'arqueig de registre brut',
		ucode = 'GRT',
		},
	Q1394540 = {
		label = "Builder's Old Measurement",
		ucode = 'BOM',
		},
	Q26158194 = {
		label = "mil·lipascal-segon",
		ucode = 'mPa·s',
		},
	Q28739766 = {
		label = "coulomb-metre",
		ucode = 'C·m',
		},	
	Q743895 = {
		label = "pulsacions per minut",
		plural = 'pulsacions per minut',
		ucode = 'ppm',
		},
        Q531    = {
		label = "any llum",
		plural = 'anys llum',
		ucode = 'a.l.',
		},
        Q4220561  = {
		label = "quilòmetre per segon",
		plural = 'quilòmetres per segon',
		ucode = 'Km/s',
		},
        Q11579  = {
		label = "kelvin",
		plural = 'kelvins',
		ucode = 'K',
		},
        Q55627  = {
		label = "anys de vida ajustats per discapacitat",
		plural = 'anys de vida ajustats per discapacitat',
		ucode = 'AVAD',
		},
	    Q79735 = {
		label = 'megabyte',
		ucode = 'MB',
		},
	    Q3858002  = {
		label = "milliampere",
		ucode = 'mAh',
		},
	}

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}