This module contains data on various types of numbers in Icelandic.
local export = {numbers = {}}
local m_numutils = require("Module:number list/utils")
local power_of = m_numutils.power_of
local numbers = export.numbers
local function make_number(num, number)
local numstr = m_numutils.format_fixed(num)
--number.wplink = number.wplink or type(num) == "number" and num < 1000 and number.cardinal or nil
number.ordinal_abbr = number.ordinal_abbr or #numstr < 10 and m_numutils.add_thousands_separator(numstr, ",") .. "." or nil
numbers = number
end
local function make_simple_number(num, cardinal, ordinal, fractional, wplink)
make_number(num, {
cardinal = cardinal,
ordinal = ordinal,
fractional = fractional or ordinal,
wplink = wplink,
})
end
make_number(0, {
cardinal = "núll",
})
make_number(1, {
cardinal = "einn",
ordinal = "fyrsti",
multiplier = "einfaldur",
})
make_number(2, {
cardinal = "tveir",
ordinal = "annar",
adverbial = {"tvisvar", "tvívegis"},
multiplier = "tvöfaldur",
fractional = "hálfur",
collective = "báðir",
})
make_number(3, {
cardinal = "þrír",
ordinal = "þriðji",
adverbial = {"þrisvar", "þrívegis"},
multiplier = "þrjúfaldur",
})
make_number(4, {
cardinal = "fjórir",
ordinal = "fjórði",
multiplier = "fjögurfaldur",
fractional = {"fjórði", "fjórðungur"},
})
make_number(5, {
cardinal = "fimm",
ordinal = "fimmti",
--multiplier = "quíntuple",
})
make_number(6, {
cardinal = "sex",
ordinal = "sjötti",
--multiplier = "séxtuple",
})
make_number(7, {
cardinal = "sjö",
ordinal = "sjöundi",
--multiplier = "séptuple",
})
make_number(8, {
cardinal = "átta",
ordinal = "áttundi",
--multiplier = "óctuple",
})
make_number(9, {
cardinal = "níu",
ordinal = "níundi",
--multiplier = "nónuple",
})
make_number(10, {
cardinal = "tíu",
ordinal = "tíundi",
--multiplier = "décuplo",
})
make_simple_number(11, "ellefu", "ellefti")
make_simple_number(12, "tólf", "tólfti")
make_simple_number(13, "þrettán", "þrettándi")
make_simple_number(14, "fjórtán", "fjórtándi")
make_simple_number(15, "fimmtán", "fimmtándi")
make_simple_number(16, "sextán", "sextándi")
make_simple_number(17, "sautján", "sautjándi")
make_simple_number(18, "átján", "átjándi")
make_simple_number(19, "nítján", "nítjándi")
-- Do 20 through 99.
for i, cardinal_and_ordinal in ipairs {
{ "tuttugu", "tuttugasti" },
{ "þrjátíu", "þrítugasti" },
{ "fjörutíu", "fertugasti" },
{ "fimmtíu", "fimmtugasti" },
{ "sextíu", "sextugasti" },
{ "sjötíu", "sjötugasti" },
{ "áttatíu", "áttugasti" },
{ "níutíu", "níutugasti" },
} do
local tens_cardinal, tens_ordinal = unpack(cardinal_and_ordinal)
local tens = (i + 1) * 10
make_simple_number(tens, tens_cardinal, tens_ordinal)
for ones = 1, 9 do
local ones_cardinal = numbers.cardinal
local ones_ordinal = numbers.ordinal
local cardinal = tens_cardinal .. " og " .. ones_cardinal
local ordinal = tens_ordinal .. " og " .. ones_ordinal
make_simple_number(tens + ones, cardinal, ordinal)
end
end
make_number(100, {
cardinal = {"hundrað", "] ]"},
ordinal = "hundraðasti",
multiplier = "hunraðfaldur",
})
make_simple_number(101, "] ] ]", "] ] ]")
-- Generate 200 through 900 by 100.
for i, neuter_single_cardinal in ipairs { "tvö", "þrjú", "fjögur", "fimm", "sex", "sjö", "átta", "níu" } do
local hundred_cardinal = neuter_single_cardinal .. " hundruð"
local hundred_ordinal = neuter_single_cardinal .. "hundraðasti"
local thousand_cardinal = neuter_single_cardinal .. " þúsund"
local thousand_ordinal = neuter_single_cardinal .. "þúsundasti"
make_simple_number((i + 1) * 100, hundred_cardinal, hundred_ordinal)
make_simple_number((i + 1) * 1000, thousand_cardinal, thousand_ordinal)
end
make_simple_number(1000, {"þúsund", "] ]"}, "þúsundasti")
make_simple_number(100000, "] ]", "] ]")
make_simple_number(1000000, "milljón", "milljónasti")
make_simple_number(power_of(9), {"miljarður", "milljarður"}, "] ]")
make_simple_number(power_of(12), "billjón", "billjónasti")
make_simple_number(power_of(18), "trilljón", "trilljónasti")
return export