Documentation for this module may be created at Module:Wikidades/Units/doc

local wikidata_units = {
	Q11573 = {
		label = 'metre',
		ucode = 'm',
		},
	Q5151 = {
		label = 'mí',
		plural = 'míosa',
		},
	Q174728 = {
		label = 'ceintiméadar',
		plural = 'ceintiméadair',
		ucode = 'cm',
		},
	Q828224 = {
		label = 'ciliméadar',
		plural = 'ciliméadair',
		ucode = 'km',
		},
	Q253276 = {
		label = 'míle',
		plural = 'mílte',
		ucode = 'mi',
		},
	Q93318 = {
		label = 'muirmhíle',
		plural = 'muirmhílte',
		ucode = 'nm',
		},
	Q128822 = {
		label = 'muirmhíle san uair',
		plural = 'muirmhílte san uair',
		ucode = 'kn',
		},
	Q3710 = {
		label = 'troigh',
		plural = 'troithe',
		ucode = 'ft',
		},
	Q25343 = {
		label = 'méadar cearnaithe',
		plural = 'méadair cearnaithe',
		ucode = 'm²',
		},
	Q712226 = {
		label = 'ciliméadar cearnaithe',
		plural = 'ciliméadair cearnaithe',
		ucode = 'km²',
		},
	Q232291 = {
		label = 'míle cearnaithe',
		plural = 'mílte cearnaithe',
		ucode = 'mi²',
		},
	Q35852 = {
		label = 'heictiméadar',
		plural = 'heictiméadair',
		ucode = 'hm',
		},
	Q5195628 = {
		label = 'heictiméadar ciúbach',
		plural = 'heictiméadair ciúbach',
		ucode = 'hm<sup>3</sup>',
		},
	Q2029519 = {
		label = 'heictilítear',
		plural = 'heictilítir',
		ucode = 'hL',
		},
	Q160857 = {
		label = 'each-chumhacht',
		plural = 'each-chumhachta',
		ucode = 'EC',
		},
	Q3320608 = {
		label = 'cileavata',
		plural = 'cileavatanna',
		ucode = 'kw',
		},
	Q11570 = {
		label = 'cileagram',
		plural = 'cileagraim',
		ucode = 'kg',
		},
	Q100995 = {
		label = 'punt',
		plural = 'puint',
		ucode = 'lb',
		},
	Q11229 = {
		label = 'céadatán',
		plural = 'céadatáin',
		ucode = '%',
		},
	Q4917 = {
		label = 'dollar na Stát Aontaithe',
		plural = 'dollair na Stát Aontaithe',
		ucode = '$',
		},	
	Q25224 = {
		label = 'punt steirling',
		plural = 'puint steirling',
		ucode = '£',
		},	
	Q4916 = {
		label = 'euro',
		plural = 'euro',
		ucode = '€',
		},	
	Q1811 = {
		label = 'aonad réalteolaíoch',
		plural = 'aonaid réalteolaíocha',
		ucode = 'AR',
		},	
	Q28390 = {
		label = 'céim',
		plural = 'céimeanna',
		ucode = '°',
		},	
	Q573 = {
		label = 'lá',
		plural = 'laethanta',
		ucode = 'laethanta',
		},	
	Q25517 = {
		label = 'méadar ciúbach',
		plural = 'méadair ciúbach',
		ucode = 'm<sup>3</sup>',
		},
	Q794261 = {
		label = 'méadar ciúbach sa soicind',
		plural = 'méadar ciúbach sa soicind',
		ucode = 'm<sup>3</sup>/s',
		},
	Q7727 = {
		label = 'nóiméad',
		plural = 'nóiméid',
		ucode = 'nóim',
		},
	Q11574 = {
		label = 'soicind',
		plural = 'soicindí',
		ucode = 's',
		},
	Q41803 = {
		label = 'gram',
		plural = 'graim',
		ucode = 'g',
		},
	Q218593 = {
		label = 'orlach',
		plural = 'orlaigh',
		ucode = '″',
		},
	Q1063786 = {
		label = 'orlach cearnaithe',
		plural = 'orlaigh cearnaithe',
		},
	Q3710 = {
		label = 'troigh',
		plural = 'troithe',
		},
	Q209426 = {
		label = 'nóiméad',
		plural = 'nóiméid',
		ucode = '′',	
		},
	Q829073 = {
		label = 'soicind',
		plural = 'soicindí',
		ucode = '″',
		},
	Q11229 = {
		label = 'céatadán',
		plural = 'céatadáin',
		ucode = '%',
		},
	Q25267 = {
		label = 'céim Celsius',
		plural = 'céim Celsius',
		ucode = '°C',
		},
	Q13147228 = {
		label = 'gram sa centímetre cúbic',
		plural = 'graim sa 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 id_data.label or label
	end
	return unit_text
end

local convert_default = {
	Q218593 = "Q174789", -- in > mm
	Q3710 = "Q174728", -- ft > cm
	Q482798 = "Q11573", -- yd > m
	Q253276 = "Q828224", -- mi > km
Q232291 = "Q712226", -- mi² > km²
Q128822 = "Q180154", -- nus > km/h
}

return {
	getUnit = getUnit,
	convert_default = convert_default
}