Module:number list/data/rgn

This module contains data on various types of numbers in Romagnol.

Number Cardinal Ordinal Multiplier Collective Fractional
0 ẓéro intsôn, insôn, inciôn
1 un, ũ prèm
2 du șgónd dópi mëẓ
3 tri, trẹ térz
4 quàtar, cvàtar
5 zénc, zéncv
6 si sëst
7 sët sëtim, sëtom, sëtum
8 òt utêv
9 növ nòn
10 dìș decimo decuplo
11 undici undézom, undézum, undșéșum, undșézom
12 dodici dodicesimo
13 tredici tredicesimo
14 quattordici quattordicesimo
15 quindici quindicesimo
16 sedici sedicesimo
17 diciassette diciassettesimo
18 diciotto diciottesimo
19 diciannove diciannovesimo
20 venti ventéșom
21 ventun ventunéșom
22 ventidu ventidéșom
23 ventitré ventitreéșom
24 ventiquàtar ventiquàtaréșom
25 ventizénc ventizéncéșom
26 ventisi ventiséșom
27 ventisët ventisëtéșom
28 ventiòt ventiòtéșom
29 ventinöv ventinövéșom
30 trenta trentéșom
31 trentun trentunéșom
32 trentadu trentadéșom
33 trentatré trentatreéșom
34 trentaquàtar trentaquàtaréșom
35 trentazénc trentazéncéșom
36 trentasi trentaséșom
37 trentasët trentasëtéșom
38 trentaòt trentaòtéșom
39 trentanöv trentanövéșom
40 quarânta quarântéșom
41 quarântun quarântunéșom
42 quarântadu quarântadéșom
43 quarântatré quarântatreéșom
44 quarântaquàtar quarântaquàtaréșom
45 quarântazénc quarântazéncéșom
46 quarântasi quarântaséșom
47 quarântasët quarântasëtéșom
48 quarântaòt quarântaòtéșom
49 quarântanöv quarântanövéșom
50 zinquânta zinquântéșom
51 zinquântun zinquântunéșom
52 zinquântadu zinquântadéșom
53 zinquântatré zinquântatreéșom
54 zinquântaquàtar zinquântaquàtaréșom
55 zinquântazénc zinquântazéncéșom
56 zinquântasi zinquântaséșom
57 zinquântasët zinquântasëtéșom
58 zinquântaòt zinquântaòtéșom
59 zinquântanöv zinquântanövéșom
60 sessanta sessantéșom
61 sessantun sessantunéșom
62 sessantadu sessantadéșom
63 sessantatré sessantatreéșom
64 sessantaquàtar sessantaquàtaréșom
65 sessantazénc sessantazéncéșom
66 sessantasi sessantaséșom
67 sessantasët sessantasëtéșom
68 sessantaòt sessantaòtéșom
69 sessantanöv sessantanövéșom
70 settanta settantéșom
71 settantun settantunéșom
72 settantadu settantadéșom
73 settantatré settantatreéșom
74 settantaquàtar settantaquàtaréșom
75 settantazénc settantazéncéșom
76 settantasi settantaséșom
77 settantasët settantasëtéșom
78 settantaòt settantaòtéșom
79 settantanöv settantanövéșom
80 ottanta ottantéșom
81 ottantun ottantunéșom
82 ottantadu ottantadéșom
83 ottantatré ottantatreéșom
84 ottantaquàtar ottantaquàtaréșom
85 ottantazénc ottantazéncéșom
86 ottantasi ottantaséșom
87 ottantasët ottantasëtéșom
88 ottantaòt ottantaòtéșom
89 ottantanöv ottantanövéșom
90 nuvânta nuvântéșom
91 nuvântun nuvântunéșom
92 nuvântadu nuvântadéșom
93 nuvântatré nuvântatreéșom
94 nuvântaquàtar nuvântaquàtaréșom
95 nuvântazénc nuvântazéncéșom
96 nuvântasi nuvântaséșom
97 nuvântasët nuvântasëtéșom
98 nuvântaòt nuvântaòtéșom
99 nuvântanöv nuvântanövéșom
100 zènt zantéșom, zantéșum, zentéșom
101 zénteôn
110 zèntedìș
111 centoundici centoundicesimo
200 duecento duecentesimo
1,000 mèl, mẹll, mèll miléșom, miléșum

local export = {numbers = {}}

local numbers = export.numbers

-- Delete any number types that don't apply.
numbers[0] = {
	cardinal = "ẓéro",
	collective = {"intsôn", "insôn", "inciôn"},
}

numbers[1] = {
	cardinal = {"un", "ũ"},
	ordinal = "prèm",
	fractional = ordinal,
}

numbers[2] = {
	cardinal = "du",
	ordinal = "șgónd",
	multiplier = "dópi",
	fractional = "mëẓ",
}

numbers[3] = {
	cardinal = {"tri", "trẹ"},
	ordinal = "térz",
	fractional = ordinal,
}

numbers[4] = {
cardinal = {"quàtar", "cvàtar"}	
}

numbers[5] = {
	cardinal = {"zénc", "zéncv"},
}

numbers[6] = {
	cardinal = "si",
	ordinal = "sëst",
	fractional = ordinal,
}

numbers[7] = {
	cardinal = "sët",
	ordinal = {"sëtim", "sëtom", "sëtum"},
	fractional = ordinal,
}

numbers[8] = {
	cardinal = "òt",
	ordinal = "utêv",
	fractional = ordinal,
}

numbers[9] = {
	cardinal = "növ",
	ordinal = "nòn",
	fractional = ordinal,
}

numbers[10] = {
	cardinal = "dìș",
	ordinal = "decimo",
	multiplier = "decuplo",
	fractional = ordinal,
}

numbers[11] = {
	cardinal = "undici",
	ordinal = {"undézom", "undézum", "undșéșum", "undșézom"},
	fractional = ordinal,
}

numbers[12] = {
	cardinal = "dodici",
	ordinal = "dodicesimo",
}

numbers[13] = {
	cardinal = "tredici",
	ordinal = "tredicesimo",
}

numbers[14] = {
	cardinal = "quattordici",
	ordinal = "quattordicesimo",
}

numbers[15] = {
	cardinal = "quindici",
	ordinal = "quindicesimo",
}

numbers[16] = {
	cardinal = "sedici",
	ordinal = "sedicesimo",
}

numbers[17] = {
	cardinal = "diciassette",
	ordinal = "diciassettesimo",
}

numbers[18] = {
	cardinal = "diciotto",
	ordinal = "diciottesimo",
}

numbers[19] = {
	cardinal = "diciannove",
	ordinal = "diciannovesimo",
}

local function first_element_if_table(t)
	if type(t) == "table" then
		return t[1]
	else
		return t
	end
end

local function add_ordinal_suffix(word)
	return mw.ustring.gsub(word, "()(.)$", function(pos, vowel)
		if vowel == "é" then
			return "e"
		elseif ("aeiou"):find(vowel)
		and not ("aeio"):find(mw.ustring.sub(word, pos - 1, pos - 1)) then
			return ""
		end
	end) .. "éșom"
end

for i, tens_cardinal in ipairs {
	"venti", "trenta", "quarânta", "zinquânta", "sessanta",
	"settanta", "ottanta", "nuvânta",
} do
	local tens = (i + 1) * 10
	local tens_ordinal = add_ordinal_suffix(tens_cardinal)
	local tens_number = numbers[tens]
	numbers[tens] = {
		cardinal = tens_cardinal,
		ordinal = tens_ordinal,
	}
	for ones = 1, 9 do
		local suffix = ones == 3 and "tré" or first_element_if_table(numbers[ones].cardinal)
		local cardinal =
			(suffix:find "^[aeiou]" and tens_cardinal:gsub("%f[aeiou][aeiou]$", "")
				or tens_cardinal)
			.. suffix
		numbers[tens + ones] = {
			cardinal = cardinal,
			ordinal = add_ordinal_suffix(cardinal),
		}
	end
end

numbers[100] = {
	cardinal = "zènt",
	ordinal = {"zantéșom", "zantéșum", "zentéșom"},
}

numbers[101] = {
	cardinal = "zénteôn",
}

numbers[110] = {
	cardinal = "zèntedìș",
}

numbers[111] = {
	cardinal = "centoundici",
	ordinal = "centoundicesimo",
}

numbers[200] = {
	cardinal = "duecento",
	ordinal = "duecentesimo",
}

numbers[1000] = {
	cardinal = {"mèl", "mẹll", "mèll"},
	ordinal = {"miléșom", "miléșum"},
}

return export