Bu modulun sənədləşdirmə səhifəsi Modul:Possessive numeral/doc səhifəsində yaradıla bilər
local p = {}
local yesno = require('Module:Yesno')
local suffixes = {
[0] = "ı", [1] = "i", [2] = "si", [3] = "ü", [4] = "ü",
[5] = "i", [6] = "sı", [7] = "si", [8] = "i", [9] = "u",
[10] = "u", [20] = "si", [30] = "u", [40] = "ı", [50] = "si",
[60] = "ı", [70] = "i", [80] = "i", [90] = "ı"
}
local function getNumber(n)
return tonumber(mw.ustring.match(n, "(%d+)"))
end
function p.Possessive(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._possessive(args[1], yesno(args.sup))
end
function p._possessive(n, sup)
local x = getNumber(n)
local suffix = "i"
if x ~= nil then
if x == 0 then
suffix = "ı"
elseif x % 1000 == 0 then
suffix = "i"
elseif x % 100 == 0 then
suffix = "ü"
elseif x % 10 == 0 then
suffix = suffixes[x % 100] or "i"
else
suffix = suffixes[x % 10] or "i"
end
end
if sup then suffix = "<sup>" .. suffix .. "</sup>" end
return n .. "-" .. suffix
end
return p