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

จำนวน เลข เชิงการนับ เชิงอันดับที่ เชิงกริยาวิเศษณ์
0 pagh
1 wa' wa'DIch wa'logh
2 cha' cha'DIch cha'logh
3 wej wejDIch wejlogh
4 loS loSDIch loSlogh
5 vagh vaghDIch vaghlogh
6 jav javDIch javlogh
7 Soch SochDIch Sochlogh
8 chorgh chorghDIch chorghlogh
9 Hut HutDIch Hutlogh
10  maH maHDIch maHlogh
11  maH wa'
12  maH cha'
13  maH wej
14  maH loS
15  maH vagh
16  maH jav
17  maH Soch
18  maH chorgh
19  maH Hut
20  cha'maH
21  cha'maH wa'
22  cha'maH cha'
23  cha'maH wej
24  cha'maH loS
25  cha'maH vagh
26  cha'maH jav
27  cha'maH Soch
28  cha'maH chorgh
29  cha'maH Hut
30  wejmaH
31  wejmaH wa'
32  wejmaH cha'
33  wejmaH wej
34  wejmaH loS
35  wejmaH vagh
36  wejmaH jav
37  wejmaH Soch
38  wejmaH chorgh
39  wejmaH Hut
40  loSmaH
41  loSmaH wa'
42  loSmaH cha'
43  loSmaH wej
44  loSmaH loS
45  loSmaH vagh
46  loSmaH jav
47  loSmaH Soch
48  loSmaH chorgh
49  loSmaH Hut
50  vaghmaH
51  vaghmaH wa'
52  vaghmaH cha'
53  vaghmaH wej
54  vaghmaH loS
55  vaghmaH vagh
56  vaghmaH jav
57  vaghmaH Soch
58  vaghmaH chorgh
59  vaghmaH Hut
60  javmaH
61  javmaH wa'
62  javmaH cha'
63  javmaH wej
64  javmaH loS
65  javmaH vagh
66  javmaH jav
67  javmaH Soch
68  javmaH chorgh
69  javmaH Hut
70  SochmaH
71  SochmaH wa'
72  SochmaH cha'
73  SochmaH wej
74  SochmaH loS
75  SochmaH vagh
76  SochmaH jav
77  SochmaH Soch
78  SochmaH chorgh
79  SochmaH Hut
80  chorghmaH
81  chorghmaH wa'
82  chorghmaH cha'
83  chorghmaH wej
84  chorghmaH loS
85  chorghmaH vagh
86  chorghmaH jav
87  chorghmaH Soch
88  chorghmaH chorgh
89  chorghmaH Hut
90  HutmaH
91  HutmaH wa'
92  HutmaH cha'
93  HutmaH wej
94  HutmaH loS
95  HutmaH vagh
96  HutmaH jav
97  HutmaH Soch
98  HutmaH chorgh
99  HutmaH Hut
100  vatlh
1,000  SaD, SanID
10,000  netlh
100,000  bIp
1,000,000 (106)  'uy'

local export = {}

local numbers = {}
export.numbers = numbers

numbers[0] = {cardinal = "pagh"}
numbers[1] = {cardinal = "wa'"}
numbers[2] = {cardinal = "cha'"}
numbers[3] = {cardinal = "wej"}
numbers[4] = {cardinal = "loS"}
numbers[5] = {cardinal = "vagh"}
numbers[6] = {cardinal = "jav"}
numbers[7] = {cardinal = "Soch"}
numbers[8] = {cardinal = "chorgh"}
numbers[9] = {cardinal = "Hut"}
numbers[10] = {cardinal = "maH"}


local function unpack_ipairs(t)
	local i = 0
	return function()
		i = i + 1
		if t[i] then
			return i, unpack(t[i])
		end
	end
end

for i = 1, 10 do
	numbers[i].ordinal = numbers[i].cardinal .. 'DIch'
	numbers[i].adverbial = numbers[i].cardinal .. 'logh'
end
for i = 1, 9 do
	local tens = i * 10
	if i > 1 then
		numbers[tens] = { cardinal = numbers[i].cardinal .. 'maH' }
	end
	for ones = 1, 9 do
		numbers[tens + ones] = { cardinal = numbers[tens].cardinal .. ' ' .. numbers[ones].cardinal }
	end
end


numbers[100] = {cardinal = "vatlh"}
numbers[1000] = {cardinal = {"SaD", "SanID"}}
numbers[10000] = {cardinal = "netlh"}
numbers[100000] = {cardinal = "bIp"}
numbers[1000000] = {cardinal = "'uy'"}

local piqdstyle = "font-family: pIqaD, Constructium, 'Klingon pIqaD HaSta', Code2000, Horta, 'Unifont CSUR', 'Kurinto Text Aux', 'Kurinto Book Aux', 'Kurinto Sans Aux'"

local digits = {'', '', '', '', '', '', '', '', ''}
digits[0] = ''
for key,value in pairs(numbers) do
	if key < 10 then
		numbers[key].numeral = '<span style="'..piqdstyle..'">'..digits[key]..'</span>'
	else
		local inp = tostring(key)
		local outp = {}
		for i = 0, #inp do
	    	table.insert(outp, digits[tonumber(string.sub(inp, i, i))])
		end
		numbers[key].numeral = '<span style="'..piqdstyle..'">'..table.concat(outp)..'</span>'
	end
end

return export