@lokascript/i18n 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +286 -0
  2. package/dist/browser.cjs +7669 -0
  3. package/dist/browser.cjs.map +1 -0
  4. package/dist/browser.d.cts +50 -0
  5. package/dist/browser.d.ts +50 -0
  6. package/dist/browser.js +7592 -0
  7. package/dist/browser.js.map +1 -0
  8. package/dist/hyperfixi-i18n.min.js +2 -0
  9. package/dist/hyperfixi-i18n.min.js.map +1 -0
  10. package/dist/hyperfixi-i18n.mjs +8558 -0
  11. package/dist/hyperfixi-i18n.mjs.map +1 -0
  12. package/dist/index.cjs +14205 -0
  13. package/dist/index.cjs.map +1 -0
  14. package/dist/index.d.cts +947 -0
  15. package/dist/index.d.ts +947 -0
  16. package/dist/index.js +14095 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/transformer-Ckask-yw.d.cts +1041 -0
  19. package/dist/transformer-Ckask-yw.d.ts +1041 -0
  20. package/package.json +84 -0
  21. package/src/browser.ts +122 -0
  22. package/src/compatibility/browser-tests/grammar-demo.spec.ts +169 -0
  23. package/src/constants.ts +366 -0
  24. package/src/dictionaries/ar.ts +233 -0
  25. package/src/dictionaries/bn.ts +156 -0
  26. package/src/dictionaries/de.ts +233 -0
  27. package/src/dictionaries/derive.ts +515 -0
  28. package/src/dictionaries/en.ts +237 -0
  29. package/src/dictionaries/es.ts +233 -0
  30. package/src/dictionaries/fr.ts +233 -0
  31. package/src/dictionaries/hi.ts +270 -0
  32. package/src/dictionaries/id.ts +233 -0
  33. package/src/dictionaries/index.ts +238 -0
  34. package/src/dictionaries/it.ts +233 -0
  35. package/src/dictionaries/ja.ts +233 -0
  36. package/src/dictionaries/ko.ts +233 -0
  37. package/src/dictionaries/ms.ts +276 -0
  38. package/src/dictionaries/pl.ts +239 -0
  39. package/src/dictionaries/pt.ts +237 -0
  40. package/src/dictionaries/qu.ts +233 -0
  41. package/src/dictionaries/ru.ts +270 -0
  42. package/src/dictionaries/sw.ts +233 -0
  43. package/src/dictionaries/th.ts +156 -0
  44. package/src/dictionaries/tl.ts +276 -0
  45. package/src/dictionaries/tr.ts +233 -0
  46. package/src/dictionaries/uk.ts +270 -0
  47. package/src/dictionaries/vi.ts +210 -0
  48. package/src/dictionaries/zh.ts +233 -0
  49. package/src/enhanced-i18n.test.ts +454 -0
  50. package/src/enhanced-i18n.ts +713 -0
  51. package/src/examples/new-languages.ts +326 -0
  52. package/src/formatting.test.ts +213 -0
  53. package/src/formatting.ts +416 -0
  54. package/src/grammar/direct-mappings.ts +353 -0
  55. package/src/grammar/grammar.test.ts +1053 -0
  56. package/src/grammar/index.ts +59 -0
  57. package/src/grammar/profiles/index.ts +860 -0
  58. package/src/grammar/transformer.ts +1318 -0
  59. package/src/grammar/types.ts +630 -0
  60. package/src/index.ts +202 -0
  61. package/src/new-languages.test.ts +389 -0
  62. package/src/parser/analyze-conflicts.test.ts +229 -0
  63. package/src/parser/ar.ts +40 -0
  64. package/src/parser/create-provider.ts +309 -0
  65. package/src/parser/de.ts +36 -0
  66. package/src/parser/es.ts +31 -0
  67. package/src/parser/fr.ts +31 -0
  68. package/src/parser/id.ts +34 -0
  69. package/src/parser/index.ts +50 -0
  70. package/src/parser/ja.ts +36 -0
  71. package/src/parser/ko.ts +37 -0
  72. package/src/parser/locale-manager.test.ts +198 -0
  73. package/src/parser/locale-manager.ts +197 -0
  74. package/src/parser/parser-integration.test.ts +439 -0
  75. package/src/parser/pt.ts +37 -0
  76. package/src/parser/qu.ts +37 -0
  77. package/src/parser/sw.ts +37 -0
  78. package/src/parser/tr.ts +38 -0
  79. package/src/parser/types.ts +113 -0
  80. package/src/parser/zh.ts +38 -0
  81. package/src/plugins/vite.ts +224 -0
  82. package/src/plugins/webpack.ts +124 -0
  83. package/src/pluralization.test.ts +197 -0
  84. package/src/pluralization.ts +393 -0
  85. package/src/runtime.ts +441 -0
  86. package/src/ssr-integration.ts +225 -0
  87. package/src/test-setup.ts +195 -0
  88. package/src/translation-validation.test.ts +171 -0
  89. package/src/translator.test.ts +252 -0
  90. package/src/translator.ts +297 -0
  91. package/src/types.ts +209 -0
  92. package/src/utils/locale.ts +190 -0
  93. package/src/utils/tokenizer-adapter.ts +469 -0
  94. package/src/utils/tokenizer.ts +19 -0
  95. package/src/validators/index.ts +174 -0
  96. package/src/validators/schema.ts +129 -0
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Russian Dictionary
3
+ *
4
+ * Translations for Russian language support.
5
+ * Uses infinitive verbs (common in software UIs).
6
+ */
7
+
8
+ import { Dictionary } from '../types';
9
+
10
+ export const russianDictionary: Dictionary = {
11
+ commands: {
12
+ // Event handling
13
+ on: 'при',
14
+ tell: 'сказать',
15
+ trigger: 'вызвать',
16
+ send: 'отправить',
17
+
18
+ // DOM manipulation
19
+ take: 'взять',
20
+ put: 'положить',
21
+ set: 'установить',
22
+ get: 'получить',
23
+ add: 'добавить',
24
+ remove: 'удалить',
25
+ toggle: 'переключить',
26
+ hide: 'скрыть',
27
+ show: 'показать',
28
+
29
+ // Control flow
30
+ if: 'если',
31
+ unless: 'если_не',
32
+ repeat: 'повторить',
33
+ for: 'для',
34
+ while: 'пока',
35
+ until: 'до',
36
+ continue: 'продолжить',
37
+ break: 'прервать',
38
+ halt: 'остановить',
39
+
40
+ // Async
41
+ wait: 'ждать',
42
+ fetch: 'загрузить',
43
+ call: 'вызвать',
44
+ return: 'вернуть',
45
+
46
+ // Other commands
47
+ make: 'создать',
48
+ log: 'записать',
49
+ throw: 'бросить',
50
+ catch: 'поймать',
51
+ measure: 'измерить',
52
+ transition: 'анимировать',
53
+
54
+ // Data Commands
55
+ increment: 'увеличить',
56
+ decrement: 'уменьшить',
57
+ bind: 'связать',
58
+ default: 'по_умолчанию',
59
+ persist: 'сохранить',
60
+
61
+ // Navigation Commands
62
+ go: 'перейти',
63
+ pushUrl: 'добавить_url',
64
+ replaceUrl: 'заменить_url',
65
+
66
+ // Utility Commands
67
+ copy: 'копировать',
68
+ pick: 'выбрать',
69
+ beep: 'звук',
70
+
71
+ // Advanced Commands
72
+ js: 'js',
73
+ async: 'асинхронно',
74
+ render: 'отобразить',
75
+
76
+ // Animation Commands
77
+ swap: 'поменять',
78
+ morph: 'трансформировать',
79
+ settle: 'стабилизировать',
80
+
81
+ // Content Commands
82
+ append: 'добавить_в_конец',
83
+
84
+ // Control Flow
85
+ exit: 'выйти',
86
+ else: 'иначе',
87
+
88
+ // Behaviors
89
+ install: 'установить',
90
+ init: 'инициализировать',
91
+ behavior: 'поведение',
92
+
93
+ // Focus
94
+ focus: 'сфокусировать',
95
+ blur: 'размыть',
96
+
97
+ // Clone
98
+ clone: 'клонировать',
99
+ prepend: 'добавить_в_начало',
100
+ },
101
+
102
+ modifiers: {
103
+ to: 'к',
104
+ from: 'из',
105
+ into: 'в',
106
+ with: 'с',
107
+ at: 'у',
108
+ in: 'в',
109
+ of: 'из',
110
+ as: 'как',
111
+ by: 'на',
112
+ before: 'до',
113
+ after: 'после',
114
+ over: 'над',
115
+ under: 'под',
116
+ between: 'между',
117
+ through: 'через',
118
+ without: 'без',
119
+ on: 'на',
120
+ },
121
+
122
+ events: {
123
+ click: 'клик',
124
+ dblclick: 'двойной_клик',
125
+ mousedown: 'мышь_вниз',
126
+ mouseup: 'мышь_вверх',
127
+ mouseenter: 'мышь_вход',
128
+ mouseleave: 'мышь_выход',
129
+ mouseover: 'наведение',
130
+ mouseout: 'уход',
131
+ mousemove: 'движение_мыши',
132
+
133
+ keydown: 'клавиша_вниз',
134
+ keyup: 'клавиша_вверх',
135
+ keypress: 'нажатие_клавиши',
136
+
137
+ focus: 'фокус',
138
+ blur: 'потеря_фокуса',
139
+ change: 'изменение',
140
+ input: 'ввод',
141
+ submit: 'отправка',
142
+ reset: 'сброс',
143
+
144
+ load: 'загрузка',
145
+ unload: 'выгрузка',
146
+ resize: 'изменение_размера',
147
+ scroll: 'прокрутка',
148
+
149
+ touchstart: 'касание_начало',
150
+ touchend: 'касание_конец',
151
+ touchmove: 'касание_движение',
152
+ touchcancel: 'касание_отмена',
153
+ },
154
+
155
+ logical: {
156
+ when: 'когда',
157
+ where: 'где',
158
+ and: 'и',
159
+ or: 'или',
160
+ not: 'не',
161
+ is: 'есть',
162
+ exists: 'существует',
163
+ matches: 'соответствует',
164
+ contains: 'содержит',
165
+ includes: 'включает',
166
+ equals: 'равно',
167
+ then: 'затем',
168
+ else: 'иначе',
169
+ otherwise: 'в_противном_случае',
170
+ end: 'конец',
171
+ has: 'имеет', // third-person: он/она имеет
172
+ have: 'имею', // first-person: я имею
173
+ isNot: 'не_есть',
174
+ empty: 'пустой',
175
+ },
176
+
177
+ temporal: {
178
+ seconds: 'секунд',
179
+ second: 'секунда',
180
+ milliseconds: 'миллисекунд',
181
+ millisecond: 'миллисекунда',
182
+ minutes: 'минут',
183
+ minute: 'минута',
184
+ hours: 'часов',
185
+ hour: 'час',
186
+ ms: 'мс',
187
+ s: 'с',
188
+ min: 'мин',
189
+ h: 'ч',
190
+ forever: 'всегда',
191
+ once: 'однажды',
192
+ every: 'каждый',
193
+ until: 'до',
194
+ },
195
+
196
+ values: {
197
+ true: 'истина',
198
+ false: 'ложь',
199
+ null: 'ничего',
200
+ undefined: 'неопределено',
201
+ it: 'это',
202
+ its: 'его',
203
+ me: 'я',
204
+ my: 'мой',
205
+ you: 'ты',
206
+ your: 'твой',
207
+ yourself: 'сам',
208
+ myself: 'я_сам',
209
+ element: 'элемент',
210
+ target: 'цель',
211
+ detail: 'детали',
212
+ event: 'событие',
213
+ window: 'окно',
214
+ document: 'документ',
215
+ body: 'тело',
216
+ result: 'результат',
217
+ value: 'значение',
218
+ first: 'первый',
219
+ last: 'последний',
220
+ next: 'следующий',
221
+ previous: 'предыдущий',
222
+ closest: 'ближайший',
223
+ parent: 'родитель',
224
+ },
225
+
226
+ attributes: {
227
+ class: 'класс',
228
+ classes: 'классы',
229
+ style: 'стиль',
230
+ styles: 'стили',
231
+ attribute: 'атрибут',
232
+ attributes: 'атрибуты',
233
+ property: 'свойство',
234
+ properties: 'свойства',
235
+ disabled: 'отключено',
236
+ hidden: 'скрыто',
237
+ checked: 'отмечено',
238
+ selected: 'выбрано',
239
+ readonly: 'только_чтение',
240
+ required: 'обязательно',
241
+ text: 'текст',
242
+ html: 'html',
243
+ },
244
+
245
+ expressions: {
246
+ // Positional
247
+ first: 'первый',
248
+ last: 'последний',
249
+ next: 'следующий',
250
+ previous: 'предыдущий',
251
+ prev: 'пред',
252
+ at: 'в',
253
+ random: 'случайный',
254
+
255
+ // DOM Traversal
256
+ closest: 'ближайший',
257
+ parent: 'родитель',
258
+ children: 'дети',
259
+ within: 'внутри',
260
+
261
+ // Emptiness/Existence
262
+ no: 'нет',
263
+ empty: 'пустой',
264
+ some: 'некоторые',
265
+
266
+ // String operations
267
+ 'starts with': 'начинается_с',
268
+ 'ends with': 'заканчивается_на',
269
+ },
270
+ };
@@ -0,0 +1,233 @@
1
+ // packages/i18n/src/dictionaries/sw.ts
2
+
3
+ import { Dictionary } from '../types';
4
+
5
+ export const sw: Dictionary = {
6
+ commands: {
7
+ // Event handling
8
+ on: 'kwenye',
9
+ tell: 'ambia',
10
+ trigger: 'chochea',
11
+ send: 'tuma',
12
+
13
+ // DOM manipulation
14
+ take: 'chukua',
15
+ put: 'weka',
16
+ set: 'weka',
17
+ get: 'pata',
18
+ add: 'ongeza',
19
+ remove: 'ondoa',
20
+ toggle: 'badilisha',
21
+ hide: 'ficha',
22
+ show: 'onyesha',
23
+
24
+ // Control flow
25
+ if: 'kama',
26
+ unless: 'isipokuwa',
27
+ repeat: 'rudia',
28
+ for: 'kwa',
29
+ while: 'wakati',
30
+ until: 'hadi',
31
+ continue: 'endelea',
32
+ break: 'vunja',
33
+ halt: 'simama',
34
+
35
+ // Async
36
+ wait: 'ngoja',
37
+ fetch: 'leta',
38
+ call: 'ita',
39
+ return: 'rudi',
40
+
41
+ // Other commands
42
+ make: 'fanya',
43
+ log: 'andika',
44
+ throw: 'tupa',
45
+ catch: 'shika',
46
+ measure: 'pima',
47
+ transition: 'mpito',
48
+
49
+ // Data Commands
50
+ increment: 'ongeza',
51
+ decrement: 'punguza',
52
+ bind: 'funga',
53
+ default: 'msingi',
54
+ persist: 'hifadhi',
55
+
56
+ // Navigation Commands
57
+ go: 'nenda',
58
+ pushUrl: 'sukumaUrl',
59
+ replaceUrl: 'badilishaUrl',
60
+
61
+ // Utility Commands
62
+ copy: 'nakili',
63
+ pick: 'chagua',
64
+ beep: 'lia',
65
+
66
+ // Advanced Commands
67
+ js: 'js',
68
+ async: 'sainkroni',
69
+ render: 'chora',
70
+
71
+ // Animation Commands
72
+ swap: 'badilishana',
73
+ morph: 'badilishaUmbo',
74
+ settle: 'tulia',
75
+
76
+ // Content Commands
77
+ append: 'ongezaMwisho',
78
+
79
+ // Control Flow
80
+ exit: 'toka',
81
+
82
+ // Behaviors
83
+ install: 'sakinisha',
84
+ },
85
+
86
+ modifiers: {
87
+ to: 'kwa',
88
+ from: 'kutoka',
89
+ into: 'ndani',
90
+ with: 'na',
91
+ at: 'katika',
92
+ in: 'ndani',
93
+ of: 'ya',
94
+ as: 'kama',
95
+ by: 'na',
96
+ before: 'kabla',
97
+ after: 'baada',
98
+ over: 'juu',
99
+ under: 'chini',
100
+ between: 'kati',
101
+ through: 'kupitia',
102
+ without: 'bila',
103
+ },
104
+
105
+ events: {
106
+ click: 'bonyeza',
107
+ dblclick: 'bonyeza_mara_mbili',
108
+ mousedown: 'panya_shuka',
109
+ mouseup: 'panya_juu',
110
+ mouseenter: 'panya_ingia',
111
+ mouseleave: 'panya_toka',
112
+ mouseover: 'panya_juu',
113
+ mouseout: 'panya_nje',
114
+ mousemove: 'panya_sogea',
115
+
116
+ keydown: 'kitufe_shuka',
117
+ keyup: 'kitufe_juu',
118
+ keypress: 'kitufe_bonyeza',
119
+
120
+ focus: 'zingatia',
121
+ blur: 'poteza_macho',
122
+ change: 'badilisha',
123
+ input: 'ingizo',
124
+ submit: 'wasilisha',
125
+ reset: 'weka_upya',
126
+
127
+ load: 'pakia',
128
+ unload: 'shuka',
129
+ resize: 'badilisha_ukubwa',
130
+ scroll: 'sogeza',
131
+
132
+ touchstart: 'gusa_anza',
133
+ touchend: 'gusa_mwisho',
134
+ touchmove: 'gusa_sogea',
135
+ touchcancel: 'gusa_ghairi',
136
+ },
137
+
138
+ logical: {
139
+ when: 'wakati',
140
+ where: 'wapi',
141
+ and: 'na',
142
+ or: 'au',
143
+ not: 'si',
144
+ is: 'ni',
145
+ exists: 'ipo',
146
+ matches: 'inafanana',
147
+ contains: 'ina',
148
+ includes: 'pamoja',
149
+ equals: 'sawa',
150
+ has: 'ana', // third-person: yeye ana
151
+ have: 'nina', // first-person: mimi nina
152
+ then: 'kisha',
153
+ else: 'sivyo',
154
+ otherwise: 'vinginevyo',
155
+ end: 'mwisho',
156
+ },
157
+
158
+ temporal: {
159
+ seconds: 'sekunde',
160
+ second: 'sekunde',
161
+ milliseconds: 'millisekunde',
162
+ millisecond: 'millisekunde',
163
+ minutes: 'dakika',
164
+ minute: 'dakika',
165
+ hours: 'masaa',
166
+ hour: 'saa',
167
+ ms: 'ms',
168
+ s: 's',
169
+ min: 'dk',
170
+ h: 'sa',
171
+ },
172
+
173
+ values: {
174
+ true: 'kweli',
175
+ false: 'uongo',
176
+ null: 'tupu',
177
+ undefined: 'haijafafanuliwa',
178
+ it: 'hiyo',
179
+ its: 'yake', // REVIEW: native speaker
180
+ me: 'mimi',
181
+ my: 'yangu',
182
+ myself: 'mimi mwenyewe',
183
+ you: 'wewe', // REVIEW: native speaker
184
+ your: 'yako', // REVIEW: native speaker
185
+ yourself: 'wewe mwenyewe', // REVIEW: native speaker
186
+ element: 'kipengele',
187
+ target: 'lengo',
188
+ detail: 'maelezo',
189
+ event: 'tukio',
190
+ window: 'dirisha',
191
+ document: 'hati',
192
+ body: 'mwili',
193
+ result: 'matokeo',
194
+ value: 'thamani',
195
+ },
196
+
197
+ attributes: {
198
+ class: 'darasa',
199
+ classes: 'madarasa',
200
+ style: 'mtindo',
201
+ styles: 'mitindo',
202
+ attribute: 'sifa',
203
+ attributes: 'sifa',
204
+ property: 'mali',
205
+ properties: 'mali',
206
+ },
207
+
208
+ expressions: {
209
+ // Positional
210
+ first: 'kwanza',
211
+ last: 'mwisho',
212
+ next: 'ijayo',
213
+ previous: 'iliyopita',
214
+ prev: 'awali',
215
+ at: 'katika',
216
+ random: 'nasibu',
217
+
218
+ // DOM Traversal
219
+ closest: 'karibu_zaidi',
220
+ parent: 'mzazi',
221
+ children: 'watoto',
222
+ within: 'ndani_ya',
223
+
224
+ // Emptiness/Existence
225
+ no: 'hakuna',
226
+ empty: 'tupu',
227
+ some: 'baadhi',
228
+
229
+ // String operations
230
+ 'starts with': 'huanza na',
231
+ 'ends with': 'huisha na',
232
+ },
233
+ };
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Thai Dictionary
3
+ *
4
+ * Thai translations for hyperscript keywords.
5
+ */
6
+
7
+ import { Dictionary } from '../types';
8
+
9
+ export const thaiDictionary: Dictionary = {
10
+ commands: {
11
+ on: 'เมื่อ',
12
+ toggle: 'สลับ',
13
+ add: 'เพิ่ม',
14
+ remove: 'ลบ',
15
+ set: 'ตั้ง',
16
+ get: 'รับค่า',
17
+ put: 'ใส่',
18
+ take: 'รับ',
19
+ show: 'แสดง',
20
+ hide: 'ซ่อน',
21
+ increment: 'เพิ่มค่า',
22
+ decrement: 'ลดค่า',
23
+ if: 'ถ้า',
24
+ else: 'ไม่งั้น',
25
+ repeat: 'ทำซ้ำ',
26
+ for: 'สำหรับ',
27
+ while: 'ในขณะที่',
28
+ wait: 'รอ',
29
+ fetch: 'ดึงข้อมูล',
30
+ call: 'เรียก',
31
+ return: 'คืนค่า',
32
+ log: 'บันทึก',
33
+ trigger: 'ทริกเกอร์',
34
+ send: 'ส่ง',
35
+ go: 'ไป',
36
+ halt: 'หยุด',
37
+ throw: 'โยน',
38
+ continue: 'ต่อไป',
39
+ make: 'สร้าง',
40
+ append: 'เพิ่มท้าย',
41
+ prepend: 'เพิ่มหน้า',
42
+ focus: 'โฟกัส',
43
+ blur: 'เบลอ',
44
+ transition: 'เปลี่ยน',
45
+ settle: 'คงที่',
46
+ measure: 'วัด',
47
+ async: 'อะซิงค์',
48
+ tell: 'บอก',
49
+ default: 'ค่าเริ่มต้น',
50
+ init: 'เริ่มต้น',
51
+ behavior: 'พฤติกรรม',
52
+ install: 'ติดตั้ง',
53
+ clone: 'คัดลอก',
54
+ swap: 'สลับที่',
55
+ morph: 'แปลงร่าง',
56
+ },
57
+ modifiers: {
58
+ to: 'ไปยัง',
59
+ from: 'จาก',
60
+ into: 'ใน',
61
+ on: 'เมื่อ',
62
+ with: 'ด้วย',
63
+ by: 'โดย',
64
+ as: 'เป็น',
65
+ before: 'ก่อน',
66
+ after: 'หลัง',
67
+ at: 'ที่',
68
+ in: 'ใน',
69
+ over: 'เหนือ',
70
+ then: 'แล้ว',
71
+ and: 'และ',
72
+ end: 'จบ',
73
+ until: 'จนถึง',
74
+ of: 'ของ',
75
+ },
76
+ events: {
77
+ click: 'คลิก',
78
+ change: 'เปลี่ยนแปลง',
79
+ input: 'อินพุต',
80
+ submit: 'ส่ง',
81
+ load: 'โหลด',
82
+ focus: 'โฟกัส',
83
+ blur: 'เบลอ',
84
+ keydown: 'กดคีย์',
85
+ keyup: 'ปล่อยคีย์',
86
+ mouseover: 'เมาส์เข้า',
87
+ mouseout: 'เมาส์ออก',
88
+ scroll: 'เลื่อน',
89
+ resize: 'ปรับขนาด',
90
+ every: 'ทุก',
91
+ },
92
+ logical: {
93
+ if: 'ถ้า',
94
+ when: 'เมื่อ',
95
+ where: 'ที่ไหน',
96
+ else: 'ไม่งั้น',
97
+ not: 'ไม่',
98
+ and: 'และ',
99
+ or: 'หรือ',
100
+ is: 'เป็น',
101
+ exists: 'มีอยู่',
102
+ has: 'มี', // possession verb (context-based)
103
+ have: 'มี', // same for first/third person
104
+ empty: 'ว่าง',
105
+ true: 'จริง',
106
+ false: 'เท็จ',
107
+ null: 'ว่าง',
108
+ undefined: 'ไม่กำหนด',
109
+ },
110
+ temporal: {
111
+ now: 'ตอนนี้',
112
+ seconds: 'วินาที',
113
+ milliseconds: 'มิลลิวินาที',
114
+ minutes: 'นาที',
115
+ hours: 'ชั่วโมง',
116
+ forever: 'ตลอดไป',
117
+ times: 'ครั้ง',
118
+ s: 'วิ',
119
+ ms: 'มว',
120
+ },
121
+ values: {
122
+ me: 'ฉัน',
123
+ my: 'ของฉัน',
124
+ it: 'มัน',
125
+ its: 'ของมัน',
126
+ result: 'ผลลัพธ์',
127
+ event: 'เหตุการณ์',
128
+ target: 'เป้าหมาย',
129
+ body: 'บอดี้',
130
+ },
131
+ attributes: {
132
+ class: 'คลาส',
133
+ id: 'ไอดี',
134
+ style: 'สไตล์',
135
+ value: 'ค่า',
136
+ text: 'ข้อความ',
137
+ html: 'เอชทีเอ็มแอล',
138
+ disabled: 'ปิดใช้งาน',
139
+ checked: 'เลือกแล้ว',
140
+ },
141
+ expressions: {
142
+ first: 'แรก',
143
+ last: 'สุดท้าย',
144
+ next: 'ถัดไป',
145
+ previous: 'ก่อนหน้า',
146
+ closest: 'ใกล้สุด',
147
+ parent: 'ต้นทาง',
148
+ children: 'ลูก',
149
+ random: 'สุ่ม',
150
+ length: 'ความยาว',
151
+ index: 'ดัชนี',
152
+ },
153
+ };
154
+
155
+ // Default export alias
156
+ export const th = thaiDictionary;