Modulo:Ordinal
Apparentia
Iste modulo implementa Patrono:Ordinal. Vide le documentation de illo.
Pro saper como le modulo mesme functiona, lege le commentos in le codice.
-- Derivate de [[:en:Special:Permalink/888228748]]. Licentia: CC BY-SA 4.0.
-- Rescribite pro interlingua.
-- Iste version genera un error pro un numero non valide.
local p = {}
local bool = require('Module:Yesno') -- interpretation de valores booleanesc
-- Iste tabella es declarate in le ambito del modulo pro motivos de efficientia.
local suffixos = {
[0] = 'me',
[1] = 'me',
[2] = 'nde',
[3] = 'tie',
[4] = 'te',
[5] = 'te',
[6] = 'te',
[7] = 'me',
[8] = 've',
[9] = 'ne'
}
-- Function interne que face le conversion in numero ordinal.
local function ordinal(n, sup)
if not (n ~= nil and n ~= '') then
error('necun numero fornite')
end
local x = tonumber(n)
if not (x and x % 1 == 0) then
error('le valor fornite, ‘' .. n .. '’, non es un numero integre')
end
local s = suffixos[math.abs(x) % 10]
if sup then
return x .. "<sup>" .. s .. "</sup>"
end
return x .. s
end
-- Iste function converte un valor integre a un numero sequite per un indicator ordinal.
-- Le catena de sortita pote continer etiquettas HTML.
-- Uso:
-- {{#invoke:Ordinal|ordinal|1=|sup=}}
-- {{#invoke:Ordinal|ordinal}} - usa le parametros del appellante
-- Parametros:
-- 1: Le numero. Debe esser un numero integre valide.
-- sup: Mitte a si/no pro (non) poner le suffixo ordinal in superscripto.
function p.ordinal(quadro)
local args = quadro.args
if args[1] == nil then
args = quadro:getParent().args
end
return ordinal(args[1], bool(args.sup,true))
end
-- Pro compatibilitate con le modulo anglese, le secunde
-- argumento del interfacie Lua public es ignorate.
function p._ordinal(n, _d, sup)
return ordinal(n, sup)
end
return p
