Módulo:Wikidata/Formato magnitud
A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]
Uso
En este módulo se definen algunos de los tipos de datos de la plantilla {{propiedad}}
o equivalentemente de las funciones permitidas para el parámetro valor-función del módulo:Wikidata.
magnitud
- uso desde la plantilla propiedad
{{Propiedad|id. de la propiedad|tipo de dato=magnitud|parámetros opcionales}}
- uso desde Lua
- Ver el módulo ficha de persona.
Tipo de dato para propiedades de superficie («superficie (P2046)») o de longitud («altura (P2048)», alcance del faro (P2929)). Se muestra el área o la longitud/altura . Se muestra la cantidad redondeada a dos decimales y a la derecha la abreviatura de la unidad convirtiendo en su caso al sistema internacional de unidades. Para ello se utiliza el módulo:convertir.
Los parámetros posibles son:
enlace
: si toma el valor de "no" no se enlaza la unidadprecisión
: número de decimales que se muestran tras la coma decimal. El valor por defecto es 2.
Para la lista de los parámetros posibles véase la plantilla {{propiedad}}
o el módulo:Wikidata si se accede desde un módulo Lua.
Pueden verse ejemplos de utilización en la página de pruebas del módulo.
periodicidad
- uso desde la plantilla propiedad
{{Propiedad|id. de la propiedad|tipo de dato=periodicidad|parámetros opcionales}}
Tipo de dato para la propiedad «periodicidad (P2896)». Se muestra la periodicidad (anual, mensual, quincenal, semanal, etc). Los parámetros posibles son:
mayúscula
. Si vale "sí" se muestra el primer carácter de la periodicidad en mayúsculas.
Pueden verse ejemplos de utilización en la página de pruebas del módulo.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.
local p = {}
function p.formatoMagnitud(valor, opciones)
if not valor or not valor.amount then
return
end
local idUnidad = valor.unit:match('^.-/(Q%d+)$')
local cantidad = tonumber(valor.amount:gsub('+','') or '')
if not idUnidad or not cantidad then
return
end
return require('Módulo:convertir').mostrarValor(cantidad, idUnidad, opciones)
end
function p.formatoPeriodicidad(valor, opciones, marco)
local resultado
--if true then return require('Módulo:Tablas').tostring(valor) end
local function sinSigno(valor)
if valor and valor:sub(1,1) == '+' then
return valor:sub(2,valor:len())
else
return valor
end
end
if valor.unit == 'http://www.wikidata.org/entity/Q5151' then
if valor.amount == '+1' then
resultado = 'mensual'
elseif valor.amount == '+2' then
resultado = 'bimestral'
elseif valor.amount == '+3' then
resultado = 'trimestral'
elseif valor.amount == '+4' then
resultado = 'cuatrimestral'
elseif valor.amount == '+6' then
resultado = 'semestral'
else
resultado = 'cada ' .. sinSigno(valor.amount) .. ' meses'
end
elseif valor.unit == 'http://www.wikidata.org/entity/Q23387' then
if valor.amount == '+1' then
resultado = 'semanal'
elseif valor.amount == '+2' then
resultado = 'quincenal'
else
resultado = 'cada ' .. sinSigno(valor.amount) .. ' semanas'
end
elseif valor.unit == 'http://www.wikidata.org/entity/Q577' then
if valor.amount == '+1' then
resultado = 'anual'
else
resultado = 'cada ' .. sinSigno(valor.amount) .. ' años'
end
elseif valor.unit == 'http://www.wikidata.org/entity/Q573' then
if valor.amount == '+1' then
resultado = 'diaria'
else
resultado = 'cada ' .. sinSigno(valor.amount) .. ' días'
end
elseif valor.unit == 'http://www.wikidata.org/entity/Q3955006' then
if valor.amount == '+1' then
resultado = 'semestral'
else
resultado = 'cada ' .. sinSigno(valor.amount) .. ' semestres'
end
else
if valor.amount == '+1' then
resultado = 'cada ' .. valor.unit
else
resultado = 'cada ' .. sinSigno(valor.amount) .. ' ' .. valor.unit
end
end
if resultado and opciones and opciones['mayúscula'] == 'sí' then
return mw.language.new('es'):ucfirst(resultado)
else
return resultado
end
end
-- Alias para simplificar el uso desde la plantilla propiedad, por ejemplo:
-- {{Propiedad|P2048)|tipo de dato=altura}}
--
p['altura'] = p.formatoMagnitud
p['área'] = p.formatoMagnitud
p['magnitud'] = p.formatoMagnitud
p['periodicidad'] = p.formatoPeriodicidad
return p