@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,156 @@
1
+ /**
2
+ * Bengali Dictionary
3
+ *
4
+ * Bengali translations for hyperscript keywords.
5
+ */
6
+
7
+ import { Dictionary } from '../types';
8
+
9
+ export const bengaliDictionary: 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: 'আছি', // first-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 bn = bengaliDictionary;
@@ -0,0 +1,233 @@
1
+ // packages/i18n/src/dictionaries/de.ts
2
+
3
+ import { Dictionary } from '../types';
4
+
5
+ export const de: Dictionary = {
6
+ commands: {
7
+ // Event handling
8
+ on: 'bei',
9
+ tell: 'sagen',
10
+ trigger: 'auslösen',
11
+ send: 'senden',
12
+
13
+ // DOM manipulation
14
+ take: 'nehmen',
15
+ put: 'setzen',
16
+ set: 'festlegen',
17
+ get: 'erhalten',
18
+ add: 'hinzufügen',
19
+ remove: 'entfernen',
20
+ toggle: 'umschalten',
21
+ hide: 'verstecken',
22
+ show: 'zeigen',
23
+
24
+ // Control flow
25
+ if: 'wenn',
26
+ unless: 'wennnicht',
27
+ repeat: 'wiederholen',
28
+ for: 'für',
29
+ while: 'während',
30
+ until: 'bis',
31
+ continue: 'weiter',
32
+ break: 'unterbrechen',
33
+ halt: 'anhalten',
34
+
35
+ // Async
36
+ wait: 'warten',
37
+ fetch: 'holen',
38
+ call: 'aufrufen',
39
+ return: 'zurückgeben',
40
+
41
+ // Other commands
42
+ make: 'erstellen',
43
+ log: 'protokollieren',
44
+ throw: 'werfen',
45
+ catch: 'fangen',
46
+ measure: 'messen',
47
+ transition: 'übergang',
48
+
49
+ // Data Commands
50
+ increment: 'erhöhen',
51
+ decrement: 'verringern',
52
+ bind: 'binden',
53
+ default: 'standard',
54
+ persist: 'speichern',
55
+
56
+ // Navigation Commands
57
+ go: 'gehen',
58
+ pushUrl: 'urlHinzufügen',
59
+ replaceUrl: 'urlErsetzen',
60
+
61
+ // Utility Commands
62
+ copy: 'kopieren',
63
+ pick: 'auswählen',
64
+ beep: 'piepton',
65
+
66
+ // Advanced Commands
67
+ js: 'js',
68
+ async: 'asynchron',
69
+ render: 'rendern',
70
+
71
+ // Animation Commands
72
+ swap: 'tauschen',
73
+ morph: 'verwandeln',
74
+ settle: 'stabilisieren',
75
+
76
+ // Content Commands
77
+ append: 'anhängen',
78
+
79
+ // Control Flow
80
+ exit: 'beenden',
81
+
82
+ // Behaviors
83
+ install: 'installieren',
84
+ },
85
+
86
+ modifiers: {
87
+ to: 'zu',
88
+ from: 'von',
89
+ into: 'in',
90
+ with: 'mit',
91
+ at: 'bei',
92
+ in: 'in',
93
+ of: 'von',
94
+ as: 'als',
95
+ by: 'durch',
96
+ before: 'vor',
97
+ after: 'nach',
98
+ over: 'über',
99
+ under: 'unter',
100
+ between: 'zwischen',
101
+ through: 'durch',
102
+ without: 'ohne',
103
+ },
104
+
105
+ events: {
106
+ click: 'klick',
107
+ dblclick: 'doppelklick',
108
+ mousedown: 'mausunten',
109
+ mouseup: 'mausoben',
110
+ mouseenter: 'mauseintreten',
111
+ mouseleave: 'mausverlassen',
112
+ mouseover: 'mausüber',
113
+ mouseout: 'maushinaus',
114
+ mousemove: 'mausbewegen',
115
+
116
+ keydown: 'tasteunten',
117
+ keyup: 'tasteoben',
118
+ keypress: 'tastedrücken',
119
+
120
+ focus: 'fokus',
121
+ blur: 'unscharf',
122
+ change: 'ändern',
123
+ input: 'eingabe',
124
+ submit: 'absenden',
125
+ reset: 'zurücksetzen',
126
+
127
+ load: 'laden',
128
+ unload: 'entladen',
129
+ resize: 'größeändern',
130
+ scroll: 'scrollen',
131
+
132
+ touchstart: 'berührungstart',
133
+ touchend: 'berührungend',
134
+ touchmove: 'berührungbewegen',
135
+ touchcancel: 'berührungabbrechen',
136
+ },
137
+
138
+ logical: {
139
+ when: 'wenn',
140
+ where: 'wo',
141
+ and: 'und',
142
+ or: 'oder',
143
+ not: 'nicht',
144
+ is: 'ist',
145
+ exists: 'existiert',
146
+ matches: 'passt',
147
+ contains: 'enthält',
148
+ includes: 'beinhaltet',
149
+ equals: 'gleicht',
150
+ has: 'hat', // third-person: es hat
151
+ have: 'habe', // first-person: ich habe
152
+ then: 'dann',
153
+ else: 'sonst',
154
+ otherwise: 'andernfalls',
155
+ end: 'ende',
156
+ },
157
+
158
+ temporal: {
159
+ seconds: 'sekunden',
160
+ second: 'sekunde',
161
+ milliseconds: 'millisekunden',
162
+ millisecond: 'millisekunde',
163
+ minutes: 'minuten',
164
+ minute: 'minute',
165
+ hours: 'stunden',
166
+ hour: 'stunde',
167
+ ms: 'ms',
168
+ s: 's',
169
+ min: 'min',
170
+ h: 'std',
171
+ },
172
+
173
+ values: {
174
+ true: 'wahr',
175
+ false: 'falsch',
176
+ null: 'null',
177
+ undefined: 'undefiniert',
178
+ it: 'es',
179
+ its: 'sein',
180
+ me: 'ich',
181
+ my: 'mein',
182
+ you: 'du',
183
+ your: 'dein',
184
+ yourself: 'dich selbst', // REVIEW: native speaker
185
+ myself: 'ich selbst',
186
+ element: 'element',
187
+ target: 'ziel',
188
+ detail: 'detail',
189
+ event: 'ereignis',
190
+ window: 'fenster',
191
+ document: 'dokument',
192
+ body: 'körper',
193
+ result: 'ergebnis',
194
+ value: 'wert',
195
+ },
196
+
197
+ attributes: {
198
+ class: 'klasse',
199
+ classes: 'klassen',
200
+ style: 'stil',
201
+ styles: 'stile',
202
+ attribute: 'attribut',
203
+ attributes: 'attribute',
204
+ property: 'eigenschaft',
205
+ properties: 'eigenschaften',
206
+ },
207
+
208
+ expressions: {
209
+ // Positional
210
+ first: 'erste',
211
+ last: 'letzte',
212
+ next: 'nächste',
213
+ previous: 'vorherige',
214
+ prev: 'vorh',
215
+ at: 'bei',
216
+ random: 'zufällig',
217
+
218
+ // DOM Traversal
219
+ closest: 'nächste',
220
+ parent: 'elternteil',
221
+ children: 'kinder',
222
+ within: 'innerhalb',
223
+
224
+ // Emptiness/Existence
225
+ no: 'kein',
226
+ empty: 'leer',
227
+ some: 'einige',
228
+
229
+ // String operations
230
+ 'starts with': 'beginnt mit',
231
+ 'ends with': 'endet mit',
232
+ },
233
+ };