"Module:Ordinal" səhifəsinin versiyaları arasındakı fərqlər
Jump to navigation
Jump to search
(Səhifəni '-- Ordinals for Azerbaijani by RexxS -- Takes a number and returns its ordinal. local suffixes = { "ci", "ci", "cü", "cü", "ci", "cı", "ci", "ci", "cu", [0] = "cu", [...' ilə yarat) |
|||
Sətir 1: | Sətir 1: | ||
− | + | local p = {} | |
− | + | ||
+ | local yesno = require('Module:Yesno') | ||
local suffixes = { | local suffixes = { | ||
Sətir 7: | Sətir 8: | ||
} | } | ||
− | function | + | function p.Ordinal(frame) |
− | local suffix | + | local args = frame.args |
− | if | + | if args[1] == nil then |
− | + | args = frame:getParent().args | |
− | + | end | |
− | + | if args[1] == nil then | |
− | + | args[1] = "{{{1}}}" | |
− | + | end | |
− | + | return p._ordinal(args[1], (args[2] == 'd'), yesno(args.sup)) | |
− | + | end | |
− | + | ||
− | + | function p._ordinal(n, d, sup) | |
+ | local x = tonumber(mw.ustring.match(n, "(%d*)%W*$")) | ||
+ | local suffix = "ci" | ||
+ | if x then | ||
+ | local mod10 = math.abs(x) % 10 | ||
+ | local mod100 = math.abs(x) % 100 | ||
+ | local mod1000 = math.abs(x) % 1000 | ||
+ | if x == 0 then | ||
+ | suffix = "cı" | ||
+ | elseif mod1000 == 0 then | ||
+ | suffix = "ci" | ||
+ | elseif mod100 == 0 then | ||
+ | suffix = "cü" | ||
+ | elseif mod10 == 0 then | ||
+ | suffix = suffixes[x % 100] | ||
+ | else | ||
+ | suffix = suffixes[x %10] or "" | ||
+ | end | ||
+ | end | ||
+ | if sup then | ||
+ | suffix = "<sup>" .. suffix .. "</sup>" | ||
end | end | ||
− | return | + | return n .. '-' .. suffix |
end | end | ||
Sətir 26: | Sətir 47: | ||
function inYear( year ) | function inYear( year ) | ||
if year >= 0 then | if year >= 0 then | ||
− | return | + | return p._ordinal(year) |
else | else | ||
year = -year | year = -year | ||
− | return 'e.ə. ' .. | + | return 'e.ə. ' .. p._ordinal(year) |
end | end | ||
+ | end | ||
+ | |||
+ | function makeOrdinal( year ) | ||
+ | return p._ordinal(year) | ||
end | end | ||
Sətir 40: | Sətir 65: | ||
return displaySuffixMonth .. 'da' | return displaySuffixMonth .. 'da' | ||
end | end | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
return p | return p |
01:26, 25 dekabr 2023 versiyası
Bu modulun təlimatı üçün bu səhifə yaradıla bilər: Module:Ordinal/doc
local p = {} local yesno = require('Module:Yesno') local suffixes = { "ci", "ci", "cü", "cü", "ci", "cı", "ci", "ci", "cu", [0] = "cu", [10] = "cu", [20] = "ci", [30] = "cu", [40] = "cı", [50] = "ci", [60] = "cı", [70] = "ci", [80] = "ci", [90] = "cı" } 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], (args[2] == 'd'), yesno(args.sup)) end function p._ordinal(n, d, sup) local x = tonumber(mw.ustring.match(n, "(%d*)%W*$")) local suffix = "ci" if x then local mod10 = math.abs(x) % 10 local mod100 = math.abs(x) % 100 local mod1000 = math.abs(x) % 1000 if x == 0 then suffix = "cı" elseif mod1000 == 0 then suffix = "ci" elseif mod100 == 0 then suffix = "cü" elseif mod10 == 0 then suffix = suffixes[x % 100] else suffix = suffixes[x %10] or "" end end if sup then suffix = "<sup>" .. suffix .. "</sup>" end return n .. '-' .. suffix end -- Global inYear function function inYear( year ) if year >= 0 then return p._ordinal(year) else year = -year return 'e.ə. ' .. p._ordinal(year) end end function makeOrdinal( year ) return p._ordinal(year) end -- Global checkApril function function checkApril(elseThanApril, displaySuffixMonth) if (elseThanApril == 4 or elseThanApril == '[Aa]prel') then return displaySuffixMonth .. 'də' else return displaySuffixMonth .. 'da' end end return p