Modul:Ordinal: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
kTidak ada ringkasan suntingan |
kTidak ada ringkasan suntingan |
||
Baris 1:
--[[
Modul ini akan menambahkan akhiran ordinal yang sesuai ke bilangan bulat tertentu.
Harap jangan mengubah kode ini tanpa menerapkan perubahan terlebih dahulu di
Module:Ordinal/sandbox
]]
local p = {}
local yesno = require('Modul:Yesno') -- interpretasi nilai boolean
--[[
Fungsi ini mengubah nilai bilangan bulat menjadi angka diikuti indikator ordinal.
Penggunaan:
{{#invoke:Ordinal|ordinal|1=|2=|sup=}}
{{#invoke:Ordinal|ordinal}} -
Parameter:
1:
2: Atur menjadi "d" jika modul harus menampilkan "d" alih-alih "nd" dan "rd".
sup: Atur menjadi ya/tidak untuk mengaktifkan/mematikan akhiran ordinal superskrip.
]]
function p.ordinal(frame)
Baris 30 ⟶ 33:
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
-- Jika tonumber(n) berhasil:
return prefix .. n▼
if x then
local mod10 = math.abs(x) % 10
local mod100 = math.abs(x) % 100
if mod10 == 1 and mod100 ~= 11 then
suffix = "ke-1"
elseif mod10 == 2 and mod100 ~= 12 then
if d then suffix = "ke-2" else suffix = "ke-2" end
elseif mod10 == 3 and mod100 ~= 13 then
if d then suffix = "ke-3" else suffix = "ke-3" end
else
suffix = "ke-" .. x
end
end
if sup then
suffix = "<sup>" .. suffix .. "</sup>"
end
end
|