มอดูล:number list/data/vi
- The following documentation is generated by Module:documentation. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
This module contains data on various types of numbers in เวียดนาม.
(edit)
local export = {}
local m_numutils = require("Module:number list/utils")
local power_of = m_numutils.power_of
export.additional_number_types = {
{ key = "chu_quoc_ngu", display = "[[cardinal number|Cardinal]]", before = "ordinal" },
{ key = "notes", display = "Notes", after = "ordinal" },
}
local numbers = {}
export.numbers = numbers
local ordinal_prefix = "thứ "
local tens_chu_quoc_ngu = "mười "
-- Delete any number types that don't apply.
numbers[0] = {
chu_quoc_ngu = "không",
}
numbers[1] = {
chu_quoc_ngu = "một",
ordinal = "thứ nhất",
}
numbers[2] = {
chu_quoc_ngu = "hai",
ordinal = {"thứ hai", "thứ nhì"},
}
numbers[3] = {
chu_quoc_ngu = "ba",
}
numbers[4] = {
chu_quoc_ngu = "bốn",
ordinal = "thứ tư",
}
numbers[5] = {
chu_quoc_ngu = "năm",
}
numbers[6] = {
chu_quoc_ngu = "sáu",
}
numbers[7] = {
chu_quoc_ngu = {"bảy", "bẩy<q:dialectal>"},
}
numbers[8] = {
chu_quoc_ngu = "tám",
}
numbers[9] = {
chu_quoc_ngu = "chín",
}
numbers[10] = {
chu_quoc_ngu = {"mười", "chục",}
}
numbers[20] = {
chu_quoc_ngu = "hai mươi",
}
numbers[30] = {
chu_quoc_ngu = "ba mươi",
}
numbers[40] = {
chu_quoc_ngu = "bốn mươi",
}
numbers[50] = {
chu_quoc_ngu = "năm mươi",
}
numbers[60] = {
chu_quoc_ngu = "sáu mươi",
}
numbers[70] = {
chu_quoc_ngu = "bảy mươi",
}
numbers[80] = {
chu_quoc_ngu = "tám mươi",
}
numbers[90] = {
chu_quoc_ngu = "chín mươi",
}
-- Helper function to get the first chữ quốc ngữ
local function get_first_chu_quoc_ngu(number)
local chu_quoc_ngu = numbers[number].chu_quoc_ngu
if type(chu_quoc_ngu) == "table" then
return chu_quoc_ngu[1]
else
return chu_quoc_ngu
end
end
for number = 2, 10 do
if not numbers[number].ordinal then
local first_chu_quoc_ngu = get_first_chu_quoc_ngu(number)
numbers[number].ordinal = ordinal_prefix .. first_chu_quoc_ngu
end
end
for number = 11, 19 do
local base_num = number - 10
numbers[number] = {
chu_quoc_ngu = m_numutils.map(function(unit)
if base_num == 5 then
return tens_chu_quoc_ngu .. "lăm"
else
return tens_chu_quoc_ngu .. get_first_chu_quoc_ngu(base_num)
end
end, get_first_chu_quoc_ngu(base_num)),
}
end
for tens = 20, 90, 10 do
for ones = 1, 9 do
local num = tens + ones
if ones == 1 then
numbers[num] = {
chu_quoc_ngu = m_numutils.map(function(tens_unit)
return tens_unit .. " mốt"
end, get_first_chu_quoc_ngu(tens)),
}
elseif ones == 5 then
numbers[num] = {
chu_quoc_ngu = m_numutils.map(function(tens_unit)
return tens_unit .. " lăm"
end, get_first_chu_quoc_ngu(tens)),
}
else
numbers[num] = {
chu_quoc_ngu = m_numutils.map(function(tens_unit)
return tens_unit .. " " .. get_first_chu_quoc_ngu(ones)
end, get_first_chu_quoc_ngu(tens)),
}
end
end
end
for number = 11, 99 do
local tens = math.floor(number / 10)
local ones = number % 10
if tens == 1 then
if ones == 5 then
numbers[number].ordinal = "thứ mười lăm"
else
numbers[number].ordinal = "thứ mười " .. get_first_chu_quoc_ngu(ones)
end
else
if ones == 0 then
numbers[number].ordinal = "thứ " .. get_first_chu_quoc_ngu(tens * 10)
elseif ones == 1 then
numbers[number].ordinal = "thứ " .. get_first_chu_quoc_ngu(tens * 10) .. " mốt"
elseif ones == 5 then
numbers[number].ordinal = "thứ " .. get_first_chu_quoc_ngu(tens * 10) .. " lăm"
else
numbers[number].ordinal = "thứ " .. get_first_chu_quoc_ngu(tens * 10) .. " " .. get_first_chu_quoc_ngu(ones)
end
end
end
numbers[100] = {
chu_quoc_ngu = "một trăm",
ordinal = "thứ một trăm",
}
numbers[1000] = {
chu_quoc_ngu = {"một nghìn", "một ngàn"},
ordinal = {"thứ một nghìn", "thứ một ngàn"},
}
numbers[10000] = {
chu_quoc_ngu = {"mười nghìn", "mười ngàn", "một vạn"},
ordinal = {"thứ mười nghìn", "thứ mười ngàn"},
}
numbers[100000] = {
chu_quoc_ngu = {"một trăm nghìn", "một trăm ngàn", "một ứt<q:obsolete>", "một vẹo<q:obsolete>", "mười vạn<q:literary>"},
ordinal = {"thứ một trăm nghìn", "thứ một trăm ngàn"},
}
numbers[1000000] = {
chu_quoc_ngu = {"một triệu", "một trăm vạn"},
ordinal = "thứ một triệu",
}
numbers[10000000] = {
chu_quoc_ngu = "mười triệu",
ordinal = "thứ mười triệu",
}
numbers[100000000] = {
chu_quoc_ngu = "một trăm triệu",
ordinal = "thứ một trăm triệu",
}
numbers[1000000000] = {
chu_quoc_ngu = "một tỉ",
ordinal = "thứ một tỉ",
}
numbers[10^12] = {
chu_quoc_ngu = {"một nghìn tỉ", "một ngàn tỉ"},
ordinal = {"thứ một nghìn tỉ", "thứ một ngàn tỉ"},
}
numbers[10^15] = {
chu_quoc_ngu = "một triệu tỉ",
ordinal = "thứ một triệu tỉ",
}
numbers[10^18] = {
chu_quoc_ngu = "một tỉ tỉ",
ordinal = "thứ một tỉ tỉ",
}
return export