local export = {}
local m_numutils = require("Module:number list/utils")
local power_of = m_numutils.power_of
export.additional_number_types = {
{ key = "isol", display = "Native [[isolation|isol.]]", before = "ordinal" },
{ key = "attr", display = " Native [[attributive|attr.]]", before = "ordinal" },
{ key = "sino", display = "[[Sino-Korean|Sino-Korean]]", before = "ordinal" },
{ key = "hanja", display = "[[hanja|Hanja]]", before = "ordinal" },
{ key = "notes", display = "Notes", after = "ordinal" },
}
local numbers = {}
export.numbers = numbers
local ordinal_suffix = "째"
local tens_native = "열"
local tens_sino = "십"
local tens_hanja = "十"
-- Delete any number types that don't apply.
numbers[0] = {
isol = "빵<q:từ lónlóng>",
sino = { "영", "령", "공<q:dưới dạng chữ số, không phải số>"},
hanja = {"零", "空"},
}
numbers[1] = {
isol = "하나",
attr = "한",
sino = "일",
hanja = "一",
ordinal = "첫째",
}
numbers[2] = {
isol = "둘",
attr = "두",
sino = "이",
hanja = "二",
}
numbers[3] = {
isol = {"셋" },
attr = {"세", "석<q:dated>", "서<q:archaic>"},
sino = "삼",
hanja = "三",
}
numbers[4] = {
isol = {"넷" },
attr = {"네", "넉<q:dated>", "너<q:archaic>"},
sino = "사",
hanja = "四",
}
numbers[5] = {
isol = "다섯",
attr = {"다섯", "닷<q:archaic>"},
sino = "오",
hanja = "五",
}
numbers[6] = {
isol = "여섯",
attr = {"여섯", "엿<q:archaic>"},
sino = {"육", "륙"},
hanja = "六",
}
numbers[7] = {
isol = "일곱",
attr = "일곱",
sino = "칠",
hanja = "七",
}
numbers[8] = {
isol = "여덟",
attr = "여덟",
sino = "팔",
hanja = "八",
}
numbers[9] = {
isol = "아홉",
attr = "아홉",
sino = "구",
hanja = "九",
}
numbers[10] = {
isol = "열",
attr = "열",
sino = "십",
hanja = "十",
}
numbers[20] = {
isol = "스물",
attr = "스무",
}
numbers[30] = {
isol = "서른",
attr = "서른",
}
numbers[40] = {
isol = "마흔",
attr = "마흔",
}
numbers[50] = {
isol = "쉰",
attr = "쉰",
}
numbers[60] = {
isol = "예순",
attr = "예순",
}
numbers[70] = {
isol = "일흔",
attr = "일흔",
}
numbers[80] = {
isol = "여든",
attr = "여든",
}
numbers[90] = {
isol = "아흔",
attr = "아흔",
}
for number = 2, 2 do
numbers[number].ordinal = numbers[number].isol .. ordinal_suffix
end
for number = 3, 4 do
numbers[number].ordinal = numbers[number].isol[1] .. ordinal_suffix
end
for number = 5, 10 do
numbers[number].ordinal = numbers[number].isol .. ordinal_suffix
end
for number = 11, 12 do
base_num = number - 10
numbers[number] = {
isol = tens_native .. numbers[base_num].isol,
attr = tens_native .. numbers[base_num].attr,
sino = tens_sino .. numbers[base_num].sino,
hanja = tens_hanja .. numbers[base_num].hanja,
}
end
for number = 13, 14 do
base_num = number - 10
numbers[number] = {
isol = tens_native .. numbers[base_num].isol[1],
attr = tens_native .. numbers[base_num].attr[1],
sino = tens_sino .. numbers[base_num].sino,
hanja = tens_hanja .. numbers[base_num].hanja,
}
end
for number = 15, 15 do
base_num = number - 10
numbers[number] = {
isol = tens_native .. numbers[base_num].isol,
attr = tens_native .. numbers[base_num].attr[1],
sino = tens_sino .. numbers[base_num].sino,
hanja = tens_hanja .. numbers[base_num].hanja,
}
end
for number = 16, 16 do
base_num = number - 10
numbers[number] = {
isol = tens_native .. numbers[base_num].isol,
attr = tens_native .. numbers[base_num].attr[1],
sino = {tens_sino .. numbers[base_num].sino[1], tens_sino .. numbers[base_num].sino[2]},
hanja = tens_hanja .. numbers[base_num].hanja,
}
end
for number = 17, 19 do
base_num = number - 10
numbers[number] = {
isol = tens_native .. numbers[base_num].isol,
attr = tens_native .. numbers[base_num].attr,
sino = tens_sino .. numbers[base_num].sino,
hanja = tens_hanja .. numbers[base_num].hanja,
}
end
for number = 2, 9 do
num = number * 10
if number ~= 6 then
numbers[num].sino = numbers[number].sino .. tens_sino
else
numbers[num].sino = {numbers[number].sino[1] .. tens_sino, numbers[number].sino[2] .. tens_sino}
end
numbers[num].hanja = numbers[number].hanja .. tens_hanja
end
numbers[100] = {
sino = "백",
hanja = "百",
}
numbers[1000] = {
sino = "천",
hanja = "千",
}
numbers[10000] = {
sino = "만",
hanja = "萬",
}
local ten_thousand_sino = "만"
local ten_thousand_hanja = "萬"
for number = 1, 3 do
num = 10 ^ number
numbers[10000 * num] = {
sino = numbers[num].sino .. ten_thousand_sino,
hanja = numbers[num].hanja .. ten_thousand_hanja,
}
end
numbers[10^8] = {
sino = "억",
hanja = "億",
}
local eok_sino = "억"
local eok_hanja = "億"
for number = 1, 3 do
num = 10 ^ number
base = 10 ^ 8
numbers[100000000 * num] = {
sino = numbers[num].sino .. eok_sino,
hanja = numbers[num].hanja .. eok_hanja,
}
end
numbers[10^12] = {
sino = "조",
hanja = "兆",
}
--[[local jo_sino = "조"
local jo_hanja = "兆"
for number = 1, 3 do
num = 10 ^ number
base = 10 ^ 12
numbers[base * num].sino = numbers[num].sino .. jo_sino
numbers[base * num].hanja = numbers[num].hanja .. jo_hanja
end]]--
numbers[10^16] = {
sino = "경",
hanja = "京",
}
--[[local gyeong_sino = "경"
local gyeong_hanja = "京"
for number = 1, 3 do
num = 10 ^ number
base = 10 ^ 16
numbers[base * num].sino = numbers[num].sino .. gyeong_sino
numbers[base * num].hanja = numbers[num].hanja .. gyeong_hanja
end]]--
numbers[power_of(20)] = {
sino = "해",
hanja = "垓",
}
numbers[power_of(24)] = {
sino = "자",
hanja = "秭",
}
numbers[power_of(28)] = {
sino = "양",
hanja = "穰",
}
numbers[power_of(32)] = {
sino = "구",
hanja = "溝",
}
numbers[power_of(36)] = {
sino = "간",
hanja = "澗",
}
numbers[power_of(40)] = {
sino = "정",
hanja = "正",
}
numbers[power_of(44)] = {
sino = "재",
hanja = "載",
}
numbers[power_of(48)] = {
sino = "극",
hanja = "極",
}
numbers[power_of(52)] = {
sino = "항하사",
hanja = "恒河沙",
}
numbers[power_of(56)] = {
sino = "아승기",
hanja = "阿僧祇",
}
numbers[power_of(60)] = {
sino = "나유타",
hanja = "那由他",
}
numbers[power_of(64)] = {
sino = "불가사의",
hanja = "不可思議",
}
numbers[power_of(68)] = {
sino = {"무량대수", "무량수"},
hanja = {"無量大數", "無量數"},
}
return export