Módulo:Unidades/doc
Esta é uma subpágina de documentação para o Módulo:Unidades. Ela contém informações sobre o seu uso, categorias, bem como todo o conteúdo que não faz parte do módulo original. |
Descrição
[editar código-fonte]Este módulo tem uma tabela de dados de unidades de medida, cada unidade tem os dados de nome, plural, grandeza física, símbolo da unidade, nome do artigo na Wikipédia e a relação matemática entre a unidade e a unidade de mesma grandeza no Sistema Internacional de Unidades (SI). A tabela contém os diferentes nomes das unidades, incluindo os Qid dessas unidades no Wikidata.
Uso
[editar código-fonte]Este módulo é uma tabela de dados para ser usado com mw.loadData('Módulo:Unidades')
, isso faz com que o módulo seja carregado somente uma vez mesmo que for chamado por vários módulos na página.
Devido ao uso do mw.loadData este módulo não pode conter funções, e portanto só pode ser usado dentro de outros módulos. Para carregar os dados de uma unidade em um outro módulo use o código abaixo:
unidades = mw.loadData('Módulo:Unidades')
u = type(unidades[nome]) == 'string' and unidades[unidades[nome]] or unidades[nome]
Veja um exemplo do uso deste módulo em uma função para converter unidades:
converter = function(num1, nome1, nome2, link)
-- num1 é o número, nome1 a unidade, nome2 a unidade a ser convertida
-- e link deve ser true para colocar ligação na unidade
if not (num1 and nome1 and nome2) then
return -- um dos três primeiros argumentos não foi passado
end
local unidades = mw.loadData('Módulo:Unidades')
local u1 = type(unidades[nome1]) == 'string' and unidades[unidades[nome1]] or unidades[nome1]
local u2 = type(unidades[nome2]) == 'string' and unidades[unidades[nome2]] or unidades[nome2]
if not u1 or not u2 or u1['grandeza'] ~= u2['grandeza'] then
return -- uma das unidades não foi encontrada ou está tentando converter grandezas diferentes
end
local num2 = num1 * u1['si'] / u2['si'] -- convertendo
num2 = (math.floor(num2 * 100) / 100) -- deixando 2 campos decimais
num2 = string.gsub(num2, '%.', ',') -- trocando ponto por vírgula
local unidade = u2['unidade'] or n ~= 1 and u2['plural'] or u2['nome']
if link and u2['artigo'] then
return num2 .. ' [[' .. u['artigo'] .. '|' .. unidade .. ']]'
elseif unidade then
return num2 .. ' ' .. unidade
else
return -- unidade não possui os dados de unidade e nome
end
end
Cada módulo pode usar uma função diferente, dependendo de como pretende exibir a conversão, quantas casas decimais ou algarismos significativos pretende usar, se quer exibir o simbolo da unidade ou o nome por extenso, etc.
Ver também
[editar código-fonte]- {{Unidade}}