Modul:Ordinal
Documentația acestui modul poate fi creată la Modul:Ordinal/doc
--[[
Acest format adaugă sufixul ordinal corespunzător unui număr întreg dat.
]]
local p = {}
local yesno = require('Modul:Yesno') -- boolean value interpretation
--[[
Această funcție convertește un număr întreg într-un număr urmată de un indicator ordinal.
Șirul care este returnat poate conține etichete HTML.
Utilizare:
{{#invoke:Ordinal|ordinal|1=|sup=|gen=}}
{{#invoke:Ordinal|ordinal}} - folosește parametrii elementului care îl invocă
Parametrii
1: Orice număr sau șir de caractere.
sup: Setează ca da/nu pentru a activa sau dezactiva scrierea sufixelor ca superscript.
gen: Setează ca m/f pentru a primi rezultatul corespunzător
]]
function p.ordinal(frame)
local args = frame.args
if args[1] == nil then
args = frame:getParent().args
end
if args[1] == nil then
args[1] = "{{{1}}}"
end
return p._ordinal(args[1], yesno(args.sup), args.gen)
end
function p._ordinal(n, sup, gen)
local x = tonumber(mw.ustring.match(n, "(%d*)%W*$"))
local prefix = ""
local suffix = ""
-- If tonumber(n) worked:
if x then
if x == 1 and gen ~= "f" then
return "întâi"
elseif x == 1 and gen == "f" then
suffix = "a"
elseif x > 1 and gen == "f" then
prefix = "a "
suffix = "a"
elseif x > 1 and gen ~= "f" then
prefix = "al "
suffix = "lea"
end
end
if sup then
suffix = "<sup>" .. suffix .. "</sup>"
else
suffix = "-" .. suffix
end
return prefix .. n .. suffix
end
return p