@lokascript/i18n 2.3.0 → 2.4.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 (71) hide show
  1. package/dist/browser.cjs +626 -473
  2. package/dist/browser.cjs.map +1 -1
  3. package/dist/browser.d.cts +25 -3
  4. package/dist/browser.d.ts +25 -3
  5. package/dist/browser.js +623 -474
  6. package/dist/browser.js.map +1 -1
  7. package/dist/dictionaries/index.cjs +489 -472
  8. package/dist/dictionaries/index.cjs.map +1 -1
  9. package/dist/dictionaries/index.d.cts +5 -3
  10. package/dist/dictionaries/index.d.ts +5 -3
  11. package/dist/dictionaries/index.js +489 -473
  12. package/dist/dictionaries/index.js.map +1 -1
  13. package/dist/index.cjs +617 -473
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +37 -37
  16. package/dist/index.d.ts +37 -37
  17. package/dist/index.js +617 -473
  18. package/dist/index.js.map +1 -1
  19. package/dist/lokascript-i18n.min.js +1 -1
  20. package/dist/lokascript-i18n.min.js.map +1 -1
  21. package/dist/lokascript-i18n.mjs +730 -478
  22. package/dist/lokascript-i18n.mjs.map +1 -1
  23. package/dist/plugins/vite.cjs +488 -472
  24. package/dist/plugins/vite.cjs.map +1 -1
  25. package/dist/plugins/vite.js +488 -472
  26. package/dist/plugins/vite.js.map +1 -1
  27. package/dist/plugins/webpack.cjs +488 -472
  28. package/dist/plugins/webpack.cjs.map +1 -1
  29. package/dist/plugins/webpack.js +488 -472
  30. package/dist/plugins/webpack.js.map +1 -1
  31. package/dist/{transformer-B0zy-kti.d.ts → transformer-BLv389qz.d.ts} +12 -47
  32. package/dist/{transformer-CzY_vHU0.d.cts → transformer-PFsYELrc.d.cts} +12 -47
  33. package/dist/{types-BYtpqGq3.d.cts → types-BcALAO6h.d.cts} +1 -1
  34. package/dist/{types-BYtpqGq3.d.ts → types-BcALAO6h.d.ts} +1 -1
  35. package/package.json +5 -5
  36. package/src/browser.ts +3 -0
  37. package/src/constants.ts +9 -0
  38. package/src/dictionaries/ar.ts +22 -43
  39. package/src/dictionaries/bn.ts +17 -0
  40. package/src/dictionaries/de.ts +19 -40
  41. package/src/dictionaries/en.ts +26 -0
  42. package/src/dictionaries/es.ts +19 -40
  43. package/src/dictionaries/fr.ts +19 -40
  44. package/src/dictionaries/he.ts +2 -0
  45. package/src/dictionaries/hi.ts +18 -48
  46. package/src/dictionaries/id.ts +22 -43
  47. package/src/dictionaries/index.ts +5 -1
  48. package/src/dictionaries/it.ts +18 -39
  49. package/src/dictionaries/ja.ts +18 -39
  50. package/src/dictionaries/ko.ts +22 -43
  51. package/src/dictionaries/ms.ts +16 -50
  52. package/src/dictionaries/pl.ts +18 -45
  53. package/src/dictionaries/pt.ts +23 -48
  54. package/src/dictionaries/qu.ts +22 -43
  55. package/src/dictionaries/ru.ts +18 -48
  56. package/src/dictionaries/sw.ts +22 -43
  57. package/src/dictionaries/th.ts +17 -0
  58. package/src/dictionaries/tl.ts +16 -50
  59. package/src/dictionaries/tr.ts +24 -45
  60. package/src/dictionaries/uk.ts +18 -48
  61. package/src/dictionaries/vi.ts +17 -0
  62. package/src/dictionaries/zh.ts +22 -43
  63. package/src/grammar/grammar.test.ts +143 -24
  64. package/src/grammar/index.ts +1 -0
  65. package/src/grammar/profiles/index.ts +31 -0
  66. package/src/grammar/transformer.ts +161 -0
  67. package/src/parser/he.ts +29 -0
  68. package/src/parser/index.ts +1 -0
  69. package/src/schema-alignment.test.ts +154 -0
  70. package/src/test-utils/complete-languages.ts +40 -0
  71. package/src/translation-validation.test.ts +1 -26
@@ -1,21 +1,14 @@
1
- /**
2
- * Hindi Dictionary
3
- *
4
- * Translations for Hindi language support.
5
- * Uses imperative verb forms (common in software UIs).
6
- */
1
+ // Generated/merged from semantic profiles — hand-written entries are preserved
2
+ // To add derived entries, update the semantic profile and run: npm run generate:language-assets
7
3
 
8
4
  import { Dictionary } from '../types';
9
5
 
10
6
  export const hindiDictionary: Dictionary = {
11
7
  commands: {
12
- // Event handling
13
8
  on: 'पर',
14
9
  tell: 'बताएं',
15
10
  trigger: 'ट्रिगर',
16
11
  send: 'भेजें',
17
-
18
- // DOM manipulation
19
12
  take: 'लें',
20
13
  put: 'रखें',
21
14
  set: 'सेट',
@@ -25,8 +18,6 @@ export const hindiDictionary: Dictionary = {
25
18
  toggle: 'टॉगल',
26
19
  hide: 'छिपाएं',
27
20
  show: 'दिखाएं',
28
-
29
- // Control flow
30
21
  if: 'अगर',
31
22
  unless: 'जब_तक_नहीं',
32
23
  repeat: 'दोहराएं',
@@ -36,65 +27,46 @@ export const hindiDictionary: Dictionary = {
36
27
  continue: 'जारी',
37
28
  break: 'रोकें',
38
29
  halt: 'रोकें',
39
-
40
- // Async
41
30
  wait: 'प्रतीक्षा',
42
31
  fetch: 'लाएं',
43
32
  call: 'कॉल',
44
33
  return: 'लौटाएं',
45
-
46
- // Other commands
47
34
  make: 'बनाएं',
48
35
  log: 'लॉग',
49
36
  throw: 'फेंकें',
50
37
  catch: 'पकड़ें',
51
38
  measure: 'मापें',
52
39
  transition: 'संक्रमण',
53
-
54
- // Data Commands
55
40
  increment: 'बढ़ाएं',
56
41
  decrement: 'घटाएं',
57
42
  default: 'डिफ़ॉल्ट',
58
-
59
- // Navigation Commands
60
43
  go: 'जाएं',
61
44
  pushUrl: 'url_जोड़ें',
62
45
  replaceUrl: 'url_बदलें',
63
-
64
- // Utility Commands
65
46
  copy: 'कॉपी',
66
47
  pick: 'चुनें',
67
48
  beep: 'बीप',
68
-
69
- // Advanced Commands
70
49
  js: 'जेएस',
71
50
  async: 'असिंक',
72
51
  render: 'रेंडर',
73
-
74
- // Animation Commands
75
52
  swap: 'बदलें',
76
53
  morph: 'रूपांतर',
77
54
  settle: 'स्थिर',
78
-
79
- // Content Commands
80
55
  append: 'जोड़ें_अंत',
81
-
82
- // Control Flow
83
56
  exit: 'बाहर',
84
57
  else: 'वरना',
85
-
86
- // Behaviors
87
58
  install: 'इंस्टॉल',
88
59
  init: 'प्रारंभ',
89
60
  behavior: 'व्यवहार',
90
-
91
- // Focus
92
61
  focus: 'फोकस',
93
62
  blur: 'धुंधला',
94
-
95
- // Clone
96
63
  clone: 'कॉपी',
97
64
  prepend: 'जोड़ें_शुरू',
65
+ breakpoint: 'ब्रेकप्वाइंट',
66
+ clear: 'साफ़-करें',
67
+ close: 'बंद-करें',
68
+ open: 'खोलें',
69
+ select: 'चुनें',
98
70
  },
99
71
 
100
72
  modifiers: {
@@ -127,23 +99,19 @@ export const hindiDictionary: Dictionary = {
127
99
  mouseover: 'माउस_ओवर',
128
100
  mouseout: 'माउस_आउट',
129
101
  mousemove: 'माउस_मूव',
130
-
131
102
  keydown: 'की_नीचे',
132
103
  keyup: 'की_ऊपर',
133
104
  keypress: 'की_प्रेस',
134
-
135
105
  focus: 'फोकस',
136
106
  blur: 'धुंधला',
137
107
  change: 'परिवर्तन',
138
108
  input: 'इनपुट',
139
109
  submit: 'जमा',
140
110
  reset: 'रीसेट',
141
-
142
111
  load: 'लोड',
143
112
  unload: 'अनलोड',
144
113
  resize: 'आकार_बदलें',
145
114
  scroll: 'स्क्रॉल',
146
-
147
115
  touchstart: 'टच_शुरू',
148
116
  touchend: 'टच_समाप्त',
149
117
  touchmove: 'टच_मूव',
@@ -166,8 +134,10 @@ export const hindiDictionary: Dictionary = {
166
134
  else: 'वरना',
167
135
  otherwise: 'अन्यथा',
168
136
  end: 'समाप्त',
169
- has: 'है', // existence verb (context-based)
170
- have: 'है', // same verb for first/third person
137
+ live: 'लाइव',
138
+ changes: 'बदलने पर',
139
+ has: 'है',
140
+ have: 'है',
171
141
  isNot: 'नहीं_है',
172
142
  empty: 'खाली',
173
143
  },
@@ -241,7 +211,6 @@ export const hindiDictionary: Dictionary = {
241
211
  },
242
212
 
243
213
  expressions: {
244
- // Positional
245
214
  first: 'पहला',
246
215
  last: 'अंतिम',
247
216
  next: 'अगला',
@@ -249,20 +218,21 @@ export const hindiDictionary: Dictionary = {
249
218
  prev: 'पिछ',
250
219
  at: 'पर',
251
220
  random: 'यादृच्छिक',
252
-
253
- // DOM Traversal
254
221
  closest: 'निकटतम',
255
222
  parent: 'मूल',
256
223
  children: 'बच्चे',
257
224
  within: 'के_अंदर',
258
-
259
- // Emptiness/Existence
260
225
  no: 'नहीं',
261
226
  empty: 'खाली',
262
227
  some: 'कुछ',
263
-
264
- // String operations
265
228
  'starts with': 'से_शुरू',
266
229
  'ends with': 'पर_समाप्त',
230
+ 'ignoring case': 'केस_अनदेखा',
231
+ 'sorted by': 'द्वारा_क्रमबद्ध',
232
+ 'mapped to': 'में_परिवर्तित',
233
+ 'split by': 'द्वारा_विभाजित',
234
+ 'joined by': 'द्वारा_जुड़ा',
267
235
  },
268
236
  };
237
+
238
+ export const hi = hindiDictionary;
@@ -1,16 +1,14 @@
1
- // packages/i18n/src/dictionaries/id.ts
1
+ // Generated/merged from semantic profiles — hand-written entries are preserved
2
+ // To add derived entries, update the semantic profile and run: npm run generate:language-assets
2
3
 
3
4
  import { Dictionary } from '../types';
4
5
 
5
6
  export const id: Dictionary = {
6
7
  commands: {
7
- // Event handling
8
8
  on: 'pada',
9
9
  tell: 'katakan',
10
10
  trigger: 'picu',
11
11
  send: 'kirim',
12
-
13
- // DOM manipulation
14
12
  take: 'ambil',
15
13
  put: 'taruh',
16
14
  set: 'atur',
@@ -20,8 +18,6 @@ export const id: Dictionary = {
20
18
  toggle: 'ganti',
21
19
  hide: 'sembunyikan',
22
20
  show: 'tampilkan',
23
-
24
- // Control flow
25
21
  if: 'jika',
26
22
  unless: 'kecuali',
27
23
  repeat: 'ulangi',
@@ -31,54 +27,41 @@ export const id: Dictionary = {
31
27
  continue: 'lanjutkan',
32
28
  break: 'hentikan',
33
29
  halt: 'berhenti',
34
-
35
- // Async
36
30
  wait: 'tunggu',
37
31
  fetch: 'ambil',
38
32
  call: 'panggil',
39
33
  return: 'kembali',
40
-
41
- // Other commands
42
34
  make: 'buat',
43
35
  log: 'catat',
44
36
  throw: 'lempar',
45
37
  catch: 'tangkap',
46
38
  measure: 'ukur',
47
39
  transition: 'transisi',
48
-
49
- // Data Commands
50
40
  increment: 'tambahkan',
51
41
  decrement: 'kurangi',
52
42
  default: 'bawaan',
53
-
54
- // Navigation Commands
55
43
  go: 'pergi',
56
44
  pushUrl: 'tambahUrl',
57
45
  replaceUrl: 'gantiUrl',
58
-
59
- // Utility Commands
60
46
  copy: 'salin',
61
47
  pick: 'pilih',
62
48
  beep: 'bunyi',
63
-
64
- // Advanced Commands
65
49
  js: 'js',
66
50
  async: 'asinkron',
67
51
  render: 'tampilkan',
68
-
69
- // Animation Commands
70
52
  swap: 'tukar',
71
53
  morph: 'ubah_bentuk',
72
54
  settle: 'stabil',
73
-
74
- // Content Commands
75
55
  append: 'tambah_akhir',
76
-
77
- // Control Flow
78
56
  exit: 'keluar',
79
-
80
- // Behaviors
81
57
  install: 'pasang',
58
+ breakpoint: 'titik-henti',
59
+ clear: 'hapus',
60
+ close: 'tutup',
61
+ open: 'buka',
62
+ select: 'pilih',
63
+ clone: 'klon',
64
+ prepend: 'awali',
82
65
  },
83
66
 
84
67
  modifiers: {
@@ -110,23 +93,19 @@ export const id: Dictionary = {
110
93
  mouseover: 'mouse_atas',
111
94
  mouseout: 'mouse_luar',
112
95
  mousemove: 'gerak_mouse',
113
-
114
96
  keydown: 'tekan_tombol',
115
97
  keyup: 'lepas_tombol',
116
98
  keypress: 'pencet_tombol',
117
-
118
99
  focus: 'fokus',
119
100
  blur: 'blur',
120
101
  change: 'ubah',
121
102
  input: 'masukan',
122
103
  submit: 'kirim',
123
104
  reset: 'reset',
124
-
125
105
  load: 'muat',
126
106
  unload: 'bongkar',
127
107
  resize: 'ubah_ukuran',
128
108
  scroll: 'gulir',
129
-
130
109
  touchstart: 'mulai_sentuh',
131
110
  touchend: 'akhir_sentuh',
132
111
  touchmove: 'gerak_sentuh',
@@ -145,12 +124,14 @@ export const id: Dictionary = {
145
124
  contains: 'berisi',
146
125
  includes: 'termasuk',
147
126
  equals: 'sama',
148
- has: 'punya', // possession verb (context-based)
149
- have: 'punya', // same for first/third person
127
+ has: 'punya',
128
+ have: 'punya',
150
129
  then: 'lalu',
151
130
  else: 'lainnya',
152
131
  otherwise: 'sebaliknya',
153
132
  end: 'akhir',
133
+ live: 'langsung',
134
+ changes: 'berubah',
154
135
  },
155
136
 
156
137
  temporal: {
@@ -174,13 +155,13 @@ export const id: Dictionary = {
174
155
  null: 'kosong',
175
156
  undefined: 'tidak_terdefinisi',
176
157
  it: 'itu',
177
- its: 'miliknya', // REVIEW: native speaker
158
+ its: 'miliknya',
178
159
  me: 'saya',
179
160
  my: 'saya punya',
180
161
  myself: 'saya sendiri',
181
- you: 'kamu', // REVIEW: native speaker - formal/informal
182
- your: 'kamu punya', // REVIEW: native speaker
183
- yourself: 'kamu sendiri', // REVIEW: native speaker
162
+ you: 'kamu',
163
+ your: 'kamu punya',
164
+ yourself: 'kamu sendiri',
184
165
  element: 'elemen',
185
166
  target: 'target',
186
167
  detail: 'detail',
@@ -204,7 +185,6 @@ export const id: Dictionary = {
204
185
  },
205
186
 
206
187
  expressions: {
207
- // Positional
208
188
  first: 'pertama',
209
189
  last: 'terakhir',
210
190
  next: 'berikutnya',
@@ -212,20 +192,19 @@ export const id: Dictionary = {
212
192
  prev: 'sblm',
213
193
  at: 'di',
214
194
  random: 'acak',
215
-
216
- // DOM Traversal
217
195
  closest: 'terdekat',
218
196
  parent: 'induk',
219
197
  children: 'anak_anak',
220
198
  within: 'dalam',
221
-
222
- // Emptiness/Existence
223
199
  no: 'tidak_ada',
224
200
  empty: 'kosong',
225
201
  some: 'beberapa',
226
-
227
- // String operations
228
202
  'starts with': 'dimulai dengan',
229
203
  'ends with': 'diakhiri dengan',
204
+ 'ignoring case': 'abaikan kapital',
205
+ 'sorted by': 'diurutkan berdasarkan',
206
+ 'mapped to': 'dipetakan ke',
207
+ 'split by': 'dipisah oleh',
208
+ 'joined by': 'digabung oleh',
230
209
  },
231
210
  };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Dictionary Index
3
3
  *
4
- * Exports dictionaries for all 22 supported languages.
4
+ * Exports dictionaries for all supported languages.
5
5
  * Each dictionary maps English canonical keywords to locale-specific translations
6
6
  * across 8 categories: commands, modifiers, events, logical, temporal, values,
7
7
  * attributes, and expressions.
@@ -36,6 +36,7 @@ import { bengaliDictionary as bnDict } from './bn';
36
36
  import { thaiDictionary as thDict } from './th';
37
37
  import { malayDictionary as msDict } from './ms';
38
38
  import { tagalogDictionary as tlDict } from './tl';
39
+ import { he as heDict } from './he';
39
40
 
40
41
  // =============================================================================
41
42
  // Dictionary Exports
@@ -87,6 +88,8 @@ export const th: Dictionary = thDict;
87
88
  export const ms: Dictionary = msDict;
88
89
  /** Tagalog dictionary */
89
90
  export const tl: Dictionary = tlDict;
91
+ /** Hebrew dictionary */
92
+ export const he: Dictionary = heDict;
90
93
 
91
94
  // =============================================================================
92
95
  // Dictionary Registry
@@ -119,6 +122,7 @@ export const dictionaries: Record<string, Dictionary> = {
119
122
  th,
120
123
  ms,
121
124
  tl,
125
+ he,
122
126
  };
123
127
 
124
128
  // =============================================================================
@@ -1,16 +1,14 @@
1
- // packages/i18n/src/dictionaries/it.ts
1
+ // Generated/merged from semantic profiles — hand-written entries are preserved
2
+ // To add derived entries, update the semantic profile and run: npm run generate:language-assets
2
3
 
3
4
  import { Dictionary } from '../types';
4
5
 
5
6
  export const it: Dictionary = {
6
7
  commands: {
7
- // Event handling
8
8
  on: 'su',
9
9
  tell: 'dire',
10
10
  trigger: 'scatenare',
11
11
  send: 'inviare',
12
-
13
- // DOM manipulation
14
12
  take: 'prendere',
15
13
  put: 'mettere',
16
14
  set: 'impostare',
@@ -20,8 +18,6 @@ export const it: Dictionary = {
20
18
  toggle: 'commutare',
21
19
  hide: 'nascondere',
22
20
  show: 'mostrare',
23
-
24
- // Control flow
25
21
  if: 'se',
26
22
  unless: 'a meno che',
27
23
  repeat: 'ripetere',
@@ -31,54 +27,41 @@ export const it: Dictionary = {
31
27
  continue: 'continuare',
32
28
  break: 'interrompere',
33
29
  halt: 'fermare',
34
-
35
- // Async
36
30
  wait: 'aspettare',
37
31
  fetch: 'recuperare',
38
32
  call: 'chiamare',
39
33
  return: 'ritornare',
40
-
41
- // Other commands
42
34
  make: 'fare',
43
35
  log: 'registrare',
44
36
  throw: 'lanciare',
45
37
  catch: 'catturare',
46
38
  measure: 'misurare',
47
39
  transition: 'transizione',
48
-
49
- // Data Commands
50
40
  increment: 'incrementare',
51
41
  decrement: 'decrementare',
52
42
  default: 'predefinito',
53
-
54
- // Navigation Commands
55
43
  go: 'andare',
56
44
  pushUrl: 'pushUrl',
57
45
  replaceUrl: 'sostituireUrl',
58
-
59
- // Utility Commands
60
46
  copy: 'copiare',
61
47
  pick: 'scegliere',
62
48
  beep: 'beep',
63
-
64
- // Advanced Commands
65
49
  js: 'js',
66
50
  async: 'asincrono',
67
51
  render: 'renderizzare',
68
-
69
- // Animation Commands
70
52
  swap: 'scambiare',
71
53
  morph: 'trasformare',
72
54
  settle: 'stabilizzare',
73
-
74
- // Content Commands
75
55
  append: 'aggiungere',
76
-
77
- // Control Flow
78
56
  exit: 'uscire',
79
-
80
- // Behaviors
81
57
  install: 'installare',
58
+ breakpoint: 'punto-interruzione',
59
+ clear: 'cancellare',
60
+ close: 'chiudere',
61
+ open: 'aprire',
62
+ select: 'selezionare',
63
+ clone: 'clonare',
64
+ prepend: 'anteporre',
82
65
  },
83
66
 
84
67
  modifiers: {
@@ -110,23 +93,19 @@ export const it: Dictionary = {
110
93
  mouseover: 'mousesopra',
111
94
  mouseout: 'mousefuori',
112
95
  mousemove: 'mousemuovi',
113
-
114
96
  keydown: 'tastogiù',
115
97
  keyup: 'tastosu',
116
98
  keypress: 'tastopremi',
117
-
118
99
  focus: 'fuoco',
119
100
  blur: 'sfuocatura',
120
101
  change: 'cambio',
121
102
  input: 'input',
122
103
  submit: 'invio',
123
104
  reset: 'reset',
124
-
125
105
  load: 'carica',
126
106
  unload: 'scarica',
127
107
  resize: 'ridimensiona',
128
108
  scroll: 'scorrimento',
129
-
130
109
  touchstart: 'toccoinizia',
131
110
  touchend: 'toccofine',
132
111
  touchmove: 'toccomuovi',
@@ -145,12 +124,14 @@ export const it: Dictionary = {
145
124
  contains: 'contiene',
146
125
  includes: 'include',
147
126
  equals: 'uguale',
148
- has: 'ha', // third-person: lui/lei ha
149
- have: 'ho', // first-person: io ho
127
+ has: 'ha',
128
+ have: 'ho',
150
129
  then: 'allora',
151
130
  else: 'altrimenti',
152
131
  otherwise: 'altrimenti',
153
132
  end: 'fine',
133
+ live: 'vivo',
134
+ changes: 'cambia',
154
135
  },
155
136
 
156
137
  temporal: {
@@ -204,7 +185,6 @@ export const it: Dictionary = {
204
185
  },
205
186
 
206
187
  expressions: {
207
- // Positional
208
188
  first: 'primo',
209
189
  last: 'ultimo',
210
190
  next: 'prossimo',
@@ -212,20 +192,19 @@ export const it: Dictionary = {
212
192
  prev: 'prec',
213
193
  at: 'a',
214
194
  random: 'casuale',
215
-
216
- // DOM Traversal
217
195
  closest: 'piùvicino',
218
196
  parent: 'genitore',
219
197
  children: 'figli',
220
198
  within: 'dentro',
221
-
222
- // Emptiness/Existence
223
199
  no: 'nessun',
224
200
  empty: 'vuoto',
225
201
  some: 'qualche',
226
-
227
- // String operations
228
202
  'starts with': 'inizia con',
229
203
  'ends with': 'finisce con',
204
+ 'ignoring case': 'ignorando maiuscole',
205
+ 'sorted by': 'ordinato per',
206
+ 'mapped to': 'trasformato in',
207
+ 'split by': 'diviso per',
208
+ 'joined by': 'unito per',
230
209
  },
231
210
  };