Módulo:Wikidata/Unidades
Módulo auxiliar para obter as unidades de medida de uma quantidade do Wikidata. O formato para cada unidade é como segue:
Qxxx = {
label = 'xxx',
plural = 'xxx',
ucode = 'xxx',
},
A inclusão nesta tabela é opcional:
Q
seguido de alguns números é o identificador da unidade de medida no Wikidata, usado como referência.label
é o rótulo da unidade no Wikidata. É obtido automaticamente a partir da consulta no Wikidata e está incluído aqui em casos de alto uso para evitar mudanças súbitas e massivas devido a modificação no Wikidata, seja de vandalismo ou não.plural
é o plural da unidade de medida, para ser usado quando a quantidade está fora do intervalo aberto (-2,2). Ele é gerado automaticamente com base nas regras da língua portuguesa.ucode
é o código ou abreviatura da unidade, para ser usado se você usar o parâmetrounidade
. Se não for passado, irá exibir a unidade de medida por extenso.
local wikidata_units = {
Q11573 = {
label = 'metro',
plural = 'metros',
ucode = 'm',
},
Q828224 = {
label = 'quilômetro',
plural = 'quilômetros',
ucode = 'km',
},
Q844338 = {
label = 'hectômetro',
plural = 'hectômetros',
ucode = 'hm',
},
Q848856 = {
label = 'decâmetro',
plural = 'decâmetros',
ucode = 'dam',
},
Q200323 = {
label = 'decímetro',
plural = 'decímetros',
ucode = 'dm',
},
Q174728 = {
label = 'centímetro',
plural = 'centímetros',
ucode = 'cm',
},
Q174789 = {
label = 'milímetro',
plural = 'milímetros',
ucode = 'mm',
},
Q175821 = {
label = 'micrometro',
plural = 'micrometros',
ucode = 'µm',
},
Q178674 = {
label = 'nanometro',
plural = 'nanometros',
ucode = 'nm',
},
Q192274 = {
label = 'picometro',
plural = 'picometros',
ucode = 'pm',
},
Q253276 = {
label = 'milha',
plural = 'milhas',
ucode = 'mi',
},
Q12129 = {
label = 'parsec',
plural = 'parsecs',
ucode = 'pc',
},
Q1811 = {
label = 'unidade astronômica',
plural = 'unidades astronômicas',
ucode = 'UA',
},
Q81292 = {
label = 'acre',
plural = 'acres',
},
Q35852 = {
label = 'hectare',
plural = 'hectares',
ucode = 'ha',
},
Q25343 = {
label = 'metro quadrado',
plural = 'metros quadrados',
ucode = 'm²',
},
Q712226 = {
label = 'quilômetro quadrado',
plural = 'quilômetros quadrados',
ucode = 'km²',
},
Q11032 = {
label = 'jornais',
plural = 'jonais',
ucode = '',
},
Q190399 = {
label = 'panfleto',
plural = 'panfletos',
ucode = '',
},
Q149757 = {
label = 'fita cassete',
plural = 'fitas cassete',
ucode = '',
},
Q7982 = {
label = 'CD-ROM',
plural = 'CDs-ROM',
ucode = '',
},
Q178588 = {
label = 'disco de vinil',
plural = 'discos de vinil',
ucode = '',
},
Q2489298 = {
label = 'centímetro quadrado',
plural = 'centímetros quadrados',
ucode = 'cm²',
},
Q2737347 = {
label = 'milímetro quadrado',
plural = 'milímetros quadrados',
ucode = 'mm²',
},
Q11582 = {
label = 'litro',
plural = 'litros',
ucode = 'L',
},
Q2332346 = {
label = 'mililitro',
plural = 'mililitros',
ucode = 'mL',
},
Q5195628 = {
label = 'hectômetro cúbico',
plural = 'hectômetros cúbicos',
ucode = 'hm³',
},
Q25517 = {
label = 'metro cúbico',
plural = 'metros cúbicos',
ucode = 'm³',
},
Q1022113 = {
label = 'centímetro cúbico',
plural = 'centímetros cúbicos',
ucode = 'cm³',
},
Q571 = {
label = 'livro',
plural = 'livros',
ucode = 'cm³',
},
Q3675550 = {
label = 'milímetro cúbico',
plural = 'milímetros cúbicos',
ucode = 'mm³',
},
Q577 = {
label = 'ano',
plural = 'anos',
ucode = 'a',
},
Q573 = {
label = 'dia',
plural = 'dias',
ucode = 'd',
},
Q25235 = {
label = 'hora',
plural = 'horas',
ucode = 'h',
},
Q7727 = {
label = 'minuto',
plural = 'minutos',
ucode = 'min',
},
Q5151 = {
label = 'mês',
plural = 'meses',
},
Q11574 = {
label = 'segundo',
plural = 'segundos',
ucode = 's',
},
Q723733 = {
label = 'milissegundo',
plural = 'milissegundos',
ucode = 'ms',
},
Q842015 = {
label = 'microsegundo',
plural = 'microsegundos',
ucode = 'µs',
},
Q838801 = {
label = 'nanosegundo',
plural = 'nanosegundos',
ucode = 'ns',
},
Q3902709 = {
label = 'picosegundo',
plural = 'picosegundos',
ucode = 'ps',
},
Q23387 = {
label = 'semana',
plural = 'semanas',
},
Q39369 = {
label = 'hertz',
plural = 'hertzs',
ucode = 'Hz',
},
Q2143992 = {
label = 'quilohertz',
plural = 'quilohertzs',
ucode = 'kHz',
},
Q732707 = {
label = 'megahertz',
plural = 'megahertzs',
ucode = 'MHz',
},
Q3276763 = {
label = 'gigahertz',
plural = 'gigahertzs',
ucode = 'GHz',
},
Q11570 = {
label = 'quilograma',
plural = 'quilogramas',
ucode = 'kg',
},
Q41803 = {
label = 'grama',
plural = 'gramas',
ucode = 'Gg',
},
Q3241121 = {
label = 'miligrama',
plural = 'miligramas',
ucode = 'mg',
},
Q100995 = {
label = 'libra',
plural = 'libras',
ucode = 'lb',
},
Q483261 = {
label = 'unidade de massa atômica',
plural = 'unidades de massa atômica',
ucode = 'u',
},
Q844211 = {
label = 'quilograma por metro cúbico',
plural = 'quilogramas por metro cúbico',
ucode = 'kg/m³',
},
Q13147228 = {
label = 'grama por centímetro cúbico',
plural = 'gramas por centímetro cúbico',
ucode = 'g/m³',
},
Q21061369 = {
label = 'grama por quilograma',
plural = 'gramas por quilograma',
ucode = 'g/kg',
},
Q834105 = {
label = 'grama por litro',
plural = 'gramas por litro',
ucode = 'g/L',
},
Q21077820 = {
label = 'miligrama por metro cúbico',
plural = 'miligramas por metro cúbico',
ucode = 'mg/m³',
},
Q21091747 = {
label = 'miligrama por quilograma',
plural = 'miligramas por quilograma',
ucode = 'mg/kg',
},
Q21075844 = {
label = 'mililitro por litro',
plural = 'mililitros por litro',
ucode = 'mL/L',
},
Q21064845 = {
label = 'mol por litro de solução',
plural = 'mols por litro de solução',
ucode = 'mol/L',
},
Q21064838 = {
label = 'mol por quilo de solvente',
plural = 'mols por quilo de solvente',
ucode = 'mol/kg',
},
Q2055118 = {
label = 'parte por bilhão',
plural = 'partes por bilhão',
ucode = 'ppb',
},
Q21006887 = {
label = 'parte por milhão',
plural = 'partes por milhão',
ucode = 'ppm',
},
Q25267 = {
label = 'grau Celsius',
plural = 'graus Celsius',
ucode = '°C',
},
Q11579 = {
label = 'Kelvin',
plural = 'Kelvin',
ucode = 'K',
},
Q42289 = {
label = 'grau Fahrenheit',
plural = 'graus Fahrenheit',
ucode = '°F',
},
Q177974 = {
label = 'atmosfera',
plural = 'atmosferas',
ucode = 'atm',
},
Q44395 = {
label = 'Pascal',
plural = 'Pascal',
ucode = 'P',
},
Q6859652 = {
label = 'milímetro de mercúrio',
plural = 'milímetros de mercúrio',
ucode = 'mmHg',
},
Q2042279 = {
label = 'metro de água',
plural = 'metros de água',
ucode = 'mH2O',
},
Q20966455 = {
label = 'joule por mol Kevin',
plural = 'joules por mol Kevin',
ucode = 'J/(mol.K)',
},
Q1463969 = {
label = 'watt por metro kelvin',
plural = 'watts por metro kelvin',
ucode = 'W/(m.K)',
},
Q180154 = {
label = 'quilômetro por hora',
plural = 'quilômetros por hora',
ucode = 'km/H',
},
Q182429 = {
label = 'metro por segundo',
plural = 'metros por segundo',
ucode = 'm/s',
},
Q4220561 = {
label = 'quilômetro por segundo',
plural = 'quilômetros por segundo',
ucode = 'km/s',
},
Q128822 = {
label = 'nó',
plural = 'nós',
ucode = 'nó',
},
Q20966435 = {
label = 'ampere por volt metro',
plural = 'amperes por volt metro',
ucode = 'A/(V.m)',
},
Q843877 = {
label = 'luminosidade solar',
ucode = 'Lsol',
},
Q13035094 = {
label = 'joule por mol',
plural = 'joule por mol',
ucode = 'J/mol',
},
Q21077849 = {
label = 'quilojoule por quilograma',
plural = 'quilojoule por quilograma',
ucode = 'kJ/kg',
},
Q4917 = {
label = 'dólar americano',
plural = 'dólares americanos',
ucode = '$',
},
Q173117 = {
label = 'real',
plural = 'reais',
ucode = 'R$',
},
Q4916 = {
label = 'euro',
plural = 'euros',
ucode = '€',
},
Q25224 = {
label = 'libra esterlina',
plural = 'libras esterlinas',
ucode = '£',
},
Q28390 = {
label = 'grau',
plural = 'graus',
ucode = '°',
},
Q11229 = {
label = 'porcentagem',
plural = 'porcentagens',
ucode = '%',
},
Q25236 = {
label = 'watt',
plural = 'watts',
ucode = 'W',
},
Q3320608 = {
label = 'quilowatt',
plural = 'quilowatts',
ucode = 'kW',
},
Q93318 = {
label = 'milha náutica',
plural = 'milhas náuticas',
ucode = 'mn',
},
Q79738 = {
label = 'gigabyte',
plural = 'gigabytes',
ucode = 'Gb',
},
Q752197 = {
label = 'quilojaule por mol',
plural = 'quilojaules por mol',
ucode = 'kJ/mol',
},
Q191118 = {
label = 'tonelada',
plural = 'toneladas',
ucode = 'ton',
},
Q319604 = {
label = 'passageiro',
plural = 'passageiros',
},
Q829073 = {
label = 'segundo de arco',
plural = 'segundos de arco',
ucode = '"',
},
Q209426 = {
label = 'minuto de arco',
plural = 'minutos de arco',
ucode = "'",
},
Q218593 = {
label = 'polegada',
plural = 'polegadas',
ucode = '"',
},
Q14787261 = {
label = 'megawatt-hora',
plural = 'megawatt-horas',
ucode = 'MWh',
},
Q2051195 = {
label = 'gigawatt-hora',
plural = 'gigawatt-horas',
ucode = 'GWh',
},
Q6982035 = {
label = 'megawatt',
plural = 'megawatts',
ucode = 'MW',
},
Q794261 = {
label = 'metro cúbico por segundo',
plural = 'metros cúbicos por segundo',
ucode = 'm³/s',
},
Q125191 = {
label = 'fotografia',
plural = 'fotografias',
ucode = '',
},
Q4006 = {
label = 'mapa',
plural = 'mapas',
ucode = '',
},
Q11424 = {
label = 'filme',
plural = 'filmes',
ucode = '',
},
Q178659 = {
label = 'ilustração',
plural = 'ilustrações',
ucode = '',
},
Q747779 = {
label = 'videoteipe',
plural = 'videoteipes',
ucode = '',
},
}
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 = ''
--Se o parâmetro code for passado, utilizar a unidade de medida
if code then
unit_text = id_data.ucode or id_data.label or label
--Senão, se o valor estiver no intervalo (-2,2) colocar a unidade no singular
elseif mw.ustring.sub(amount, 1,2) =="-0," or amount =="-1" or mw.ustring.sub(amount, 1,2) =="-1," or mw.ustring.sub(amount, 1,2) =="0," or amount =="1" or mw.ustring.sub(amount, 1,2) =="1," then
unit_text = id_data.label or label
--Senão, colocar a unidade no plural ou mostrar mensagem para inserir unidade de medida nesta página
else
unit_text = id_data.plural or "Inserir unidade de medida em [[Módulo:Wikidata/Unidades]]"
end
return unit_text
end
return {getUnit = getUnit}