বিষয়বস্তুতে চলুন

মডিউল:number list/data/eu

উইকিঅভিধান, মুক্ত অভিধান থেকে

এই মডিউলের জন্য মডিউল:number list/data/eu/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে

local export = {numbers = {}}

local numbers = export.numbers

-- Delete any number types that don't apply.
numbers[0] = {
	cardinal = { "zero", "huts" },
	ordinal = "zerogarren",
}

numbers[1] = {
	cardinal = "bat",
	ordinal = "lehen",
	multiplier = "bakoitz",
	distributive = "bana",
}

numbers[2] = {
	cardinal = "bi",
	ordinal = "bigarren",
	multiplier = "bikoitz",
	fractional = "erdi",
	collective = "bikote",
	distributive = "bina",
}

numbers[3] = {
	cardinal = "hiru",
	ordinal = "hirugarren",
	multiplier = "hirukoitz",
	fractional = "heren",
	collective = "hirukote",
	distributive = "hiruna",
}

numbers[4] = {
	cardinal = "lau",
	ordinal = "laugarren",
	multiplier = "laukoitz",
	fractional = "laurden",
	collective = "laukote",
	distributive = "launa",
}

numbers[5] = {
	cardinal = "bost",
	ordinal = "bosgarren",
	multiplier = "boskoitz",
	fractional = "bosten",
	collective = "boskote",
	distributive = "bosna",
}

numbers[6] = {
	cardinal = "sei",
	ordinal = "seigarren",
	multiplier = "seikoitz",
	fractional = "seiren",
	collective = "seikote",
	distributive = "seina",
}

numbers[7] = {
	cardinal = "zazpi",
	ordinal = "zazpigarren",
	multiplier = "zazpikoitz",
	fractional = "zazpiren",
	collective = "zazpikote",
	distributive = "zazpina",
}

numbers[8] = {
	cardinal = "zortzi",
	ordinal = "zortzigarren",
	multiplier = "zortzikoitz",
	fractional = "zortziren",
	collective = "zortzikote",
	distributive = "zortzina",
}

numbers[9] = {
	cardinal = "bederatzi",
	ordinal = "bederatzigarren",
	fractional = "bederatziren",
	distributive = "bederatzina",
}

numbers[10] = {
	cardinal = "hamar",
	ordinal = "hamargarren",
	fractional = "hamarren",
	distributive = "hamarna",
}

numbers[11] = {
	cardinal = "hamaika",
	ordinal = "hamaikagarren",
	fractional = "hamaikaren",
}

numbers[12] = {
	cardinal = "hamabi",
	ordinal = "hamabigarren",
	fractional = "hamabiren",
}

numbers[13] = {
	cardinal = "hamahiru",
	ordinal = "hamahirugarren",
	fractional = "hamahiruren",
}

numbers[14] = {
	cardinal = "hamalau",
	ordinal = "hamalaugarren",
	fractional = "hamalauren",
}

numbers[15] = {
	cardinal = "hamabost",
	ordinal = "hamabosgarren",
	fractional = "hamabosten",
}

numbers[16] = {
	cardinal = "hamasei",
	ordinal = "hamaseigarren",
	fractional = "hamaseiren",
}

numbers[17] = {
	cardinal = "hamazazpi",
	ordinal = "hamazazpigarren",
	fractional = "hamazazpiren",
}

numbers[18] = {
	cardinal = "hemezortzi",
	ordinal = "hemezortzigarren",
	fractional = "hemezortziren",
}

numbers[19] = {
	cardinal = "hemeretzi",
	ordinal = "hemeretzigarren",
	fractional = "hemeretziren",
}

numbers[20] = {
	cardinal = "hogei",
	ordinal = "hogeigarren",
	fractional = "hogeiren",
}

numbers[30] = {
	cardinal = "hogeita hamar",
	ordinal = "hogeita hamargarren",
	fractional = "hogeita hamarren",
}

numbers[40] = {
	cardinal = "berrogei",
	ordinal = "berrogeigarren",
	fractional = "berrogeiren",
}

numbers[50] = {
	cardinal = "berrogeita hamar",
	ordinal = "berrogeita hamargarren",
	fractional = "berrogeita hamarren",
}

numbers[60] = {
	cardinal = "hirurogei",
	ordinal = "hirurogeigarren",
	fractional = "hirurogeiren",
}

numbers[70] = {
	cardinal = "hirurogeita hamar",
	ordinal = "hirurogeita hamargarren",
	fractional = "hirurogeita hamarren",
}

numbers[80] = {
	cardinal = "laurogei",
	ordinal = "laurogeigarren",
	fractional = "laurogeiren",
}

numbers[90] = {
	cardinal = "laurogeita hamar",
	ordinal = "laurogeita hamargarren",
	fractional = "laurogeita hamarren",
}


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 31-39, 51-59, 71-79 and 91-99
-- by adding "teens" numerals for these "twenties".
local twenties_numerals = {
	[20] = "hogei",
	[40] = "berrogei",
	[60] = "hirurogei",
	[80] = "laurogei",
}
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)
		insert_into_subtable(number, "cardinal", twenties_cardinal .. "ta " .. teens_numeral.cardinal)
		insert_into_subtable(number, "ordinal", twenties_cardinal .. "ta " .. teens_numeral.ordinal)
		insert_into_subtable(number, "fractional", twenties_cardinal .. "ta " .. teens_numeral.fractional)
	end
end

local function tableify(val)
	if type(val) ~= "table" then
		return {val}
	else
		return val
	end
end

-- Add the decimal numerals for 21-29, 41-49, 61-69 and 81-89,
-- 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 "%hamar$" then
			for ones = 1, 9 do
				local number = add_subtable(numbers, tens + ones)
				if ones == 5  then
					insert_into_subtable(number, "cardinal", tens_cardinal .. "ta bost")
					insert_into_subtable(number, "ordinal", tens_cardinal .. "ta bosgarren")
					insert_into_subtable(number, "fractional", tens_cardinal .. "ta bosten")
				elseif ones == 1  then
					insert_into_subtable(number, "cardinal", tens_cardinal .. "ta bat")
					insert_into_subtable(number, "ordinal", tens_cardinal .. "ta batgarren")
					insert_into_subtable(number, "fractional", tens_cardinal .. "ta baten")
				else
					local ones_numerals = numbers[ones]
					insert_into_subtable(number, "cardinal", tens_cardinal .. "ta " .. ones_numerals.cardinal)
					insert_into_subtable(number, "ordinal", tens_cardinal .. "ta " .. ones_numerals.cardinal .. "garren")
					insert_into_subtable(number, "fractional", tens_cardinal .. "ta " .. ones_numerals.cardinal .. "ren")
				end
			end
		end
	end
end

numbers[100] = {
	cardinal = "ehun",
	ordinal = "ehungarren",
	fractional = "ehunen",
}

numbers[200] = {
	cardinal = "berrehun",
	ordinal = "berrehungarren",
	fractional = "berrehunen",
}

numbers[300] = {
	cardinal = "hirurehun",
	ordinal = "hirureungarren",
	fractional = "hirureunen",
}

numbers[400] = {
	cardinal = "laurehun",
	ordinal = "laurehungarren",
	fractional = "laurehunen",
}

numbers[500] = {
	cardinal = "bostehun",
	ordinal = "bostehungarren",
	fractional = "bostehunen",
}

numbers[600] = {
	cardinal = "seiehun",
	ordinal = "seiehungarren",
	fractional = "seiehunen",
}

numbers[700] = {
	cardinal = "zazpiehun",
	ordinal = "zazpiehungarren",
	fractional = "zazpiehunen",
}

numbers[800] = {
	cardinal = "zortziehun",
	ordinal = "zortziehungarren",
	fractional = "zortziehunen",
}

numbers[900] = {
	cardinal = "bederatziehun",
	ordinal = "bederatziehungarren",
	fractional = "bederatziehunen",
}

numbers[1000] = {
	cardinal = "mila",
	ordinal = "milagarren",
	fractional = "milaren",
}

return export