Saltar al contento

Modulo:Ordinal

De Wikipedia, le encyclopedia libere
Info
Info
Documentation del modulo

Iste modulo implementa Patrono:Ordinal. Vide le documentation de illo.

Pro saper como le modulo mesme functiona, lege le commentos in le codice.

Le modification de iste modulo es limitate al usatores autoconfirmate

-- 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