Модул:number list/data/fr
Документацију овог модула можете да направите на страници Модул:number list/data/fr/док
local export = {numbers = {}}
local numbers = export.numbers
-- Delete any number types that don't apply.
--[[ template
numbers[1] = {
cardinal = "",
ordinal = "",
adverbial = "",
multiplier = "",
distributive = "",
collective = "",
fractional = "",
}
]]
numbers[0] = {
cardinal = "zéro",
ordinal = "zéroième",
}
numbers[1] = {
cardinal = "un",
ordinal = "premier",
multiplier = "simple",
}
numbers[2] = {
cardinal = "deux",
ordinal = {"deuxième", "second"},
fractional = {"demi", "moitié"},
multiplier = "double",
}
numbers[3] = {
cardinal = "trois",
ordinal = "troisième",
fractional = "tiers",
multiplier = "triple",
}
numbers[4] = {
cardinal = "quatre",
ordinal = "quatrième",
fractional = "quart",
multiplier = "quadruple",
}
numbers[5] = {
cardinal = "cinq",
ordinal = "cinquième",
multiplier = "quintuple",
}
numbers[6] = {
cardinal = "six",
ordinal = "sixième",
multiplier = "sextuple",
}
numbers[7] = {
cardinal = "sept",
ordinal = "septième",
multiplier = "septuple",
}
numbers[8] = {
cardinal = "huit",
ordinal = "huitième",
multiplier = "octuple",
}
numbers[9] = {
cardinal = "neuf",
ordinal = "neuvième",
multiplier = "nonuple",
}
numbers[10] = {
cardinal = "dix",
ordinal = "dixième",
multiplier = "décuple",
}
numbers[11] = {
cardinal = "onze",
ordinal = "onzième",
}
numbers[12] = {
cardinal = "douze",
ordinal = "douzième",
}
numbers[13] = {
cardinal = "treize",
ordinal = "treizième",
}
numbers[14] = {
cardinal = "quatorze",
ordinal = "quatorzième",
}
numbers[15] = {
cardinal = "quinze",
ordinal = "quinzième",
}
numbers[16] = {
cardinal = "seize",
ordinal = "seizième",
}
numbers[17] = {
cardinal = "dix-sept",
ordinal = "dix-septième",
}
numbers[18] = {
cardinal = "dix-huit",
ordinal = "dix-huitième",
}
numbers[19] = {
cardinal = "dix-neuf",
ordinal = "dix-neuvième",
}
numbers[20] = {
cardinal = "vingt",
ordinal = "vingtième",
}
numbers[30] = {
cardinal = "trente",
ordinal = "trentième",
}
numbers[40] = {
cardinal = "quarante",
ordinal = "quarantième",
}
numbers[50] = {
cardinal = "cinquante",
ordinal = "cinquantième",
}
numbers[60] = {
cardinal = "soixante",
ordinal = "soixantième",
}
numbers[70] = {
cardinal = {"soixante-dix", "septante"},
ordinal = {"soixante-dixième", "septantième"},
}
numbers[71] = {
cardinal = {"soixante-et-onze", "septante-et-un"},
ordinal = {"soixante-et-onzième", "septante-et-unième"},
}
numbers[80] = {
cardinal = {"quatre-vingts", "huitante", "octante"},
ordinal = {"quatre-vingtième", "huitantième", "octantième"},
}
numbers[81] = {
cardinal = {"quatre-vingt-un", "huitante-et-un", "octante-et-un"},
ordinal = {"quatre-vingt-unième", "huitante-et-unième", "octante-et-unième"},
}
numbers[90] = {
cardinal = {"quatre-vingt-dix", "nonante"},
ordinal = {"quatre-vingt-dixième", "nonantième"},
}
local function first_element_if_table(t)
if type(t) == "table" then
return t[1]
else
return t
end
end
local function add_subtable(t, key)
local subtable = t[key]
if not subtable then
subtable = {}
t[key] = subtable
end
return subtable
end
-- Insert val into subtable indexed by key, creating subtable if necessary.
local function insert_into_subtable(t, key, val)
local subtable = add_subtable(t, key)
table.insert(subtable, val)
end
-- Generate the vigesimal numerals for 71-79 and 91-99
-- by adding "teens" numerals for these "twenties".
local twenties_numerals = {
[60] = "soixante",
[80] = "quatre-vingt",
}
for twenties, twenties_cardinal in pairs(twenties_numerals) do
for teens = 11, 19 do
local teens_numeral = numbers[teens]
local number = add_subtable(numbers, twenties + teens)
if teens == 11 and twenties_cardinal ~= "quatre-vingt" then
insert_into_subtable(number, "cardinal", twenties_cardinal .. "-et-onze")
else
insert_into_subtable(number, "cardinal", twenties_cardinal .. "-" .. first_element_if_table(teens_numeral.cardinal))
end
insert_into_subtable(number, "ordinal", twenties_cardinal .. "-" .. first_element_if_table(teens_numeral.ordinal))
end
end
local function tableify(val)
if type(val) ~= "table" then
return {val}
else
return val
end
end
-- Add the decimal numerals for 21-99,
-- inserting them after the vigesimal numerals if those are present.
for tens = 20, 90, 10 do
for _, tens_cardinal in ipairs(tableify(numbers[tens].cardinal)) do
if not tens_cardinal:find "%-dix$" then
if tens_cardinal == "quatre-vingts" then
tens_cardinal = "quatre-vingt"
end
for ones = 1, 9 do
local number = add_subtable(numbers, tens + ones)
if ones == 1 and tens_cardinal ~= "quatre-vingt" then
insert_into_subtable(number, "cardinal", tens_cardinal .. "-et-un")
insert_into_subtable(number, "ordinal", tens_cardinal .. "-et-unième")
else
local ones_numerals = numbers[ones]
local ordinal = first_element_if_table(ones_numerals.ordinal)
insert_into_subtable(number, "cardinal", tens_cardinal .. "-" .. ones_numerals.cardinal)
insert_into_subtable(number, "ordinal", tens_cardinal .. "-" .. ordinal)
end
end
end
end
end
numbers[100] = {
cardinal = "cent",
ordinal = "centième",
multiplier = "centuple",
}
for hundreds = 2, 9 do
numbers[hundreds * 100] = {
cardinal = numbers[hundreds].cardinal .. " cents",
}
end
numbers[1000] = {
cardinal = "mille",
ordinal = "millième",
}
numbers[1000000] = {
cardinal = "million",
ordinal = "millionième",
}
return export