Module:Sandbox/Batternut/Ordinal
Appearance
-- vim: set noexpandtab ft=lua ts=4 sw=4:
require('strict')
local o = {}
local debug = false
--[[
makeOrdinal
This function returns an ordinal string for the target number.
Usage:
{{#invoke:Ordinal|makeOrdinal|target_num|}}
Parameters
1: The string whose length to report
2: the language code
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function o.makeOrdinal( target_num, langcode )
if langcode == 'fr' then
if target_num == 1 then
return target_num .. 'er'
else
return target_num .. 'e'
end
elseif langcode == 'en' then
if target_num == 11 or target_num == 12 or target_num == 13 then
return target_num .. 'th'
elseif target_num % 10 == 1 then
return target_num .. 'st'
elseif target_num % 10 == 2 then
return target_num .. 'nd'
elseif target_num % 10 == 3 then
return target_num .. 'rd'
else
return target_num .. 'th'
end
else
return target_num .. '.'
end
end
return o