@lokascript/i18n 2.5.1 → 2.6.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.
- package/dist/browser.cjs +1274 -154
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +3 -3
- package/dist/browser.d.ts +3 -3
- package/dist/browser.js +1274 -155
- package/dist/browser.js.map +1 -1
- package/dist/dictionaries/index.cjs +364 -133
- package/dist/dictionaries/index.cjs.map +1 -1
- package/dist/dictionaries/index.d.cts +1 -1
- package/dist/dictionaries/index.d.ts +1 -1
- package/dist/dictionaries/index.js +364 -133
- package/dist/dictionaries/index.js.map +1 -1
- package/dist/index.cjs +8860 -7740
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -37
- package/dist/index.d.ts +37 -37
- package/dist/index.js +8860 -7741
- package/dist/index.js.map +1 -1
- package/dist/lokascript-i18n.min.js +1 -1
- package/dist/lokascript-i18n.min.js.map +1 -1
- package/dist/lokascript-i18n.mjs +1697 -146
- package/dist/lokascript-i18n.mjs.map +1 -1
- package/dist/plugins/vite.cjs +359 -132
- package/dist/plugins/vite.cjs.map +1 -1
- package/dist/plugins/vite.js +359 -132
- package/dist/plugins/vite.js.map +1 -1
- package/dist/plugins/webpack.cjs +359 -132
- package/dist/plugins/webpack.cjs.map +1 -1
- package/dist/plugins/webpack.js +359 -132
- package/dist/plugins/webpack.js.map +1 -1
- package/dist/{transformer-BLv389qz.d.ts → transformer-BA8YX9u1.d.ts} +120 -2
- package/dist/{transformer-PFsYELrc.d.cts → transformer-DM7iplCU.d.cts} +120 -2
- package/dist/{types-BcALAO6h.d.cts → types-BYtpqGq3.d.cts} +1 -1
- package/dist/{types-BcALAO6h.d.ts → types-BYtpqGq3.d.ts} +1 -1
- package/package.json +6 -6
- package/src/browser.ts +1 -0
- package/src/command-primary-roles.test.ts +59 -0
- package/src/constants.ts +51 -0
- package/src/dictionaries/ar.ts +8 -3
- package/src/dictionaries/bn.ts +3 -1
- package/src/dictionaries/de.ts +19 -4
- package/src/dictionaries/derive.ts +4 -0
- package/src/dictionaries/en.ts +9 -0
- package/src/dictionaries/es.ts +2 -2
- package/src/dictionaries/fr.ts +6 -2
- package/src/dictionaries/he.ts +7 -1
- package/src/dictionaries/hi.ts +17 -10
- package/src/dictionaries/id.ts +15 -8
- package/src/dictionaries/it.ts +6 -3
- package/src/dictionaries/ja.ts +10 -4
- package/src/dictionaries/ko.ts +9 -4
- package/src/dictionaries/ms.ts +2 -1
- package/src/dictionaries/pl.ts +11 -3
- package/src/dictionaries/pt.ts +10 -4
- package/src/dictionaries/qu.ts +46 -22
- package/src/dictionaries/ru.ts +14 -7
- package/src/dictionaries/sw.ts +37 -10
- package/src/dictionaries/th.ts +3 -1
- package/src/dictionaries/tl.ts +14 -7
- package/src/dictionaries/tr.ts +22 -9
- package/src/dictionaries/uk.ts +13 -7
- package/src/dictionaries/vi.ts +3 -3
- package/src/dictionaries/zh.ts +10 -2
- package/src/examples/new-languages.ts +1 -1
- package/src/grammar/grammar.test.ts +1242 -1
- package/src/grammar/index.ts +1 -0
- package/src/grammar/profiles/index.ts +358 -12
- package/src/grammar/transformer.ts +1053 -16
- package/src/grammar/types.ts +22 -1
- package/src/index.ts +1 -0
- package/src/new-languages.test.ts +7 -3
- package/src/parser/parser-integration.test.ts +5 -1
- package/src/positional-keyword-drift.test.ts +138 -0
|
@@ -42,6 +42,13 @@ var en = {
|
|
|
42
42
|
increment: "increment",
|
|
43
43
|
decrement: "decrement",
|
|
44
44
|
default: "default",
|
|
45
|
+
// Reactivity Commands
|
|
46
|
+
bind: "bind",
|
|
47
|
+
// Realtime / service-worker Commands
|
|
48
|
+
eventsource: "eventsource",
|
|
49
|
+
socket: "socket",
|
|
50
|
+
worker: "worker",
|
|
51
|
+
intercept: "intercept",
|
|
45
52
|
// Navigation Commands
|
|
46
53
|
go: "go",
|
|
47
54
|
pushUrl: "pushUrl",
|
|
@@ -276,7 +283,8 @@ var es = {
|
|
|
276
283
|
swap: "intercambiar",
|
|
277
284
|
morph: "transformar",
|
|
278
285
|
settle: "estabilizar",
|
|
279
|
-
append: "
|
|
286
|
+
append: "anexar",
|
|
287
|
+
// profile primary; 'añadir' is add's word (parsed as add)
|
|
280
288
|
exit: "salir",
|
|
281
289
|
install: "instalar",
|
|
282
290
|
breakpoint: "punto-interrupci\xF3n",
|
|
@@ -409,7 +417,7 @@ var es = {
|
|
|
409
417
|
prev: "ant",
|
|
410
418
|
at: "en",
|
|
411
419
|
random: "aleatorio",
|
|
412
|
-
closest: "
|
|
420
|
+
closest: "cercano",
|
|
413
421
|
parent: "padre",
|
|
414
422
|
children: "hijos",
|
|
415
423
|
within: "dentro",
|
|
@@ -443,9 +451,11 @@ var ko = {
|
|
|
443
451
|
hide: "\uC228\uAE30\uB2E4",
|
|
444
452
|
show: "\uBCF4\uC774\uB2E4",
|
|
445
453
|
if: "\uB9CC\uC57D",
|
|
446
|
-
unless: "\uC544\uB2C8\uBA74",
|
|
454
|
+
unless: "\uC544\uB2C8\uB77C\uBA74",
|
|
455
|
+
// distinct from else `아니면` (line ~131) — was a homonym
|
|
447
456
|
repeat: "\uBC18\uBCF5",
|
|
448
|
-
for: "\
|
|
457
|
+
for: "\uAC01\uAC01",
|
|
458
|
+
// profile's for word — 동안 is while (collision)
|
|
449
459
|
while: "\uB3D9\uC548",
|
|
450
460
|
until: "\uAE4C\uC9C0",
|
|
451
461
|
continue: "\uACC4\uC18D",
|
|
@@ -476,8 +486,12 @@ var ko = {
|
|
|
476
486
|
swap: "\uAD50\uD658",
|
|
477
487
|
morph: "\uBCC0\uD615",
|
|
478
488
|
settle: "\uC548\uC815",
|
|
479
|
-
append: "\
|
|
480
|
-
|
|
489
|
+
append: "\uB367\uBD99\uC774\uB2E4",
|
|
490
|
+
// profile primary; '추가' is add's word (parsed as add)
|
|
491
|
+
// 종료 → 나가기: realigned to the semantic profile primary (ko.ts `exit: 나가기`,
|
|
492
|
+
// whose comment already flags the 종료 end-collision). Rendered as 종료 it
|
|
493
|
+
// tokenized as a plain identifier, so a guard-clause `exit` never parsed.
|
|
494
|
+
exit: "\uB098\uAC00\uAE30",
|
|
481
495
|
install: "\uC124\uCE58",
|
|
482
496
|
breakpoint: "\uC911\uB2E8\uC810",
|
|
483
497
|
clear: "\uC9C0\uC6B0\uAE30",
|
|
@@ -485,7 +499,8 @@ var ko = {
|
|
|
485
499
|
open: "\uC5F4\uAE30",
|
|
486
500
|
select: "\uC120\uD0DD",
|
|
487
501
|
clone: "\uBCF5\uC81C",
|
|
488
|
-
prepend: "\uC55E\uC5D0\uCD94\uAC00"
|
|
502
|
+
prepend: "\uC55E\uC5D0\uCD94\uAC00",
|
|
503
|
+
socket: "\uC18C\uCF13"
|
|
489
504
|
},
|
|
490
505
|
modifiers: {
|
|
491
506
|
to: "\uC5D0",
|
|
@@ -552,6 +567,7 @@ var ko = {
|
|
|
552
567
|
otherwise: "\uADF8\uB807\uC9C0\uC54A\uC73C\uBA74",
|
|
553
568
|
end: "\uB05D",
|
|
554
569
|
live: "\uB77C\uC774\uBE0C",
|
|
570
|
+
bind: "\uBC14\uC778\uB4DC",
|
|
555
571
|
changes: "\uBCC0\uACBD\uB418\uBA74"
|
|
556
572
|
},
|
|
557
573
|
temporal: {
|
|
@@ -633,7 +649,11 @@ var zh = {
|
|
|
633
649
|
tell: "\u544A\u8BC9",
|
|
634
650
|
trigger: "\u89E6\u53D1",
|
|
635
651
|
send: "\u53D1\u9001",
|
|
636
|
-
take
|
|
652
|
+
// `拿取` (the semantic zh profile's take primary), not `获取` — `获取` is the
|
|
653
|
+
// profile's GET primary, so emitting it for take made `take …` parse as get
|
|
654
|
+
// (take-class-from-siblings: phantom get, take dropped). Exposed by the get-zh-ba
|
|
655
|
+
// pattern; same dict↔profile homonym family as pl get/fetch.
|
|
656
|
+
take: "\u62FF\u53D6",
|
|
637
657
|
put: "\u653E\u7F6E",
|
|
638
658
|
set: "\u8BBE\u7F6E",
|
|
639
659
|
get: "\u83B7\u5F97",
|
|
@@ -652,7 +672,10 @@ var zh = {
|
|
|
652
672
|
break: "\u4E2D\u65AD",
|
|
653
673
|
halt: "\u505C\u6B62",
|
|
654
674
|
wait: "\u7B49\u5F85",
|
|
655
|
-
|
|
675
|
+
// 抓取 (zhuāqǔ, "grab/scrape") is the semantic zh profile's `fetch` primary;
|
|
676
|
+
// 获取 (huòqǔ) is its `get` primary, so emitting 获取 here made the semantic
|
|
677
|
+
// parser read a transformed `fetch` as `get`. See ZH_BLOCK_BODY_SCOPE.md #3.
|
|
678
|
+
fetch: "\u6293\u53D6",
|
|
656
679
|
call: "\u8C03\u7528",
|
|
657
680
|
return: "\u8FD4\u56DE",
|
|
658
681
|
make: "\u5236\u4F5C",
|
|
@@ -752,6 +775,7 @@ var zh = {
|
|
|
752
775
|
otherwise: "\u8981\u4E0D\u7136",
|
|
753
776
|
end: "\u7ED3\u675F",
|
|
754
777
|
live: "\u5B9E\u65F6",
|
|
778
|
+
bind: "\u7ED1\u5B9A",
|
|
755
779
|
changes: "\u6539\u53D8\u65F6"
|
|
756
780
|
},
|
|
757
781
|
temporal: {
|
|
@@ -840,6 +864,9 @@ var fr = {
|
|
|
840
864
|
add: "ajouter",
|
|
841
865
|
remove: "supprimer",
|
|
842
866
|
toggle: "basculer",
|
|
867
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
868
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
869
|
+
blur: "d\xE9focaliser",
|
|
843
870
|
hide: "cacher",
|
|
844
871
|
show: "montrer",
|
|
845
872
|
if: "si",
|
|
@@ -876,7 +903,8 @@ var fr = {
|
|
|
876
903
|
swap: "\xE9changer",
|
|
877
904
|
morph: "transformer",
|
|
878
905
|
settle: "stabiliser",
|
|
879
|
-
append: "
|
|
906
|
+
append: "annexer",
|
|
907
|
+
// profile primary; 'ajouter' is add's word (parsed as add)
|
|
880
908
|
exit: "sortir",
|
|
881
909
|
install: "installer",
|
|
882
910
|
breakpoint: "point-arr\xEAt",
|
|
@@ -885,7 +913,8 @@ var fr = {
|
|
|
885
913
|
open: "ouvrir",
|
|
886
914
|
select: "s\xE9lectionner",
|
|
887
915
|
clone: "cloner",
|
|
888
|
-
prepend: "pr\xE9fixer"
|
|
916
|
+
prepend: "pr\xE9fixer",
|
|
917
|
+
focus: "focaliser"
|
|
889
918
|
},
|
|
890
919
|
modifiers: {
|
|
891
920
|
to: "\xE0",
|
|
@@ -1009,7 +1038,7 @@ var fr = {
|
|
|
1009
1038
|
prev: "pr\xE9c",
|
|
1010
1039
|
at: "\xE0",
|
|
1011
1040
|
random: "al\xE9atoire",
|
|
1012
|
-
closest: "
|
|
1041
|
+
closest: "proche",
|
|
1013
1042
|
parent: "parent",
|
|
1014
1043
|
children: "enfants",
|
|
1015
1044
|
within: "dans",
|
|
@@ -1040,9 +1069,17 @@ var de = {
|
|
|
1040
1069
|
add: "hinzuf\xFCgen",
|
|
1041
1070
|
remove: "entfernen",
|
|
1042
1071
|
toggle: "umschalten",
|
|
1072
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
1073
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
1074
|
+
blur: "defokussieren",
|
|
1043
1075
|
hide: "verstecken",
|
|
1044
1076
|
show: "zeigen",
|
|
1045
|
-
if
|
|
1077
|
+
// Align with the semantic German profile's `if` primary (`falls`). The previous
|
|
1078
|
+
// `wenn` collides with the profile's `when` keyword (German `wenn` = both
|
|
1079
|
+
// "if" and "when"), so a transformed `if` resolved to `when` and the conditional
|
|
1080
|
+
// wrapper never formed (`if`/`put` dropped). Same dict↔profile alignment as id
|
|
1081
|
+
// `toggle` / get-value. `when` is unaffected (separate dict entry).
|
|
1082
|
+
if: "falls",
|
|
1046
1083
|
unless: "wennnicht",
|
|
1047
1084
|
repeat: "wiederholen",
|
|
1048
1085
|
for: "f\xFCr",
|
|
@@ -1052,7 +1089,7 @@ var de = {
|
|
|
1052
1089
|
break: "unterbrechen",
|
|
1053
1090
|
halt: "anhalten",
|
|
1054
1091
|
wait: "warten",
|
|
1055
|
-
fetch: "
|
|
1092
|
+
fetch: "abrufen",
|
|
1056
1093
|
call: "aufrufen",
|
|
1057
1094
|
return: "zur\xFCckgeben",
|
|
1058
1095
|
make: "erstellen",
|
|
@@ -1080,12 +1117,14 @@ var de = {
|
|
|
1080
1117
|
exit: "beenden",
|
|
1081
1118
|
install: "installieren",
|
|
1082
1119
|
breakpoint: "haltepunkt",
|
|
1083
|
-
clear: "
|
|
1120
|
+
clear: "bereinigen",
|
|
1121
|
+
// löschen is a remove alternative in the profile
|
|
1084
1122
|
close: "schlie\xDFen",
|
|
1085
1123
|
open: "\xF6ffnen",
|
|
1086
1124
|
select: "ausw\xE4hlen",
|
|
1087
1125
|
clone: "klonen",
|
|
1088
|
-
prepend: "voranstellen"
|
|
1126
|
+
prepend: "voranstellen",
|
|
1127
|
+
focus: "fokussieren"
|
|
1089
1128
|
},
|
|
1090
1129
|
modifiers: {
|
|
1091
1130
|
to: "zu",
|
|
@@ -1209,7 +1248,13 @@ var de = {
|
|
|
1209
1248
|
prev: "vorh",
|
|
1210
1249
|
at: "bei",
|
|
1211
1250
|
random: "zuf\xE4llig",
|
|
1212
|
-
|
|
1251
|
+
// `nächste` already serves `next` (line above). German `nächste` is
|
|
1252
|
+
// genuinely ambiguous (next/nearest), so emitting it for `closest` too
|
|
1253
|
+
// collided: the semantic tokenizer normalizes `nächste`→next (a deliberate
|
|
1254
|
+
// last-wins choice — see german.ts), and a closest reading is impossible to
|
|
1255
|
+
// recover. Use the unambiguous `nächstgelegene` ("nearest-located") for
|
|
1256
|
+
// closest so the two readings stay distinct end-to-end.
|
|
1257
|
+
closest: "n\xE4chstgelegene",
|
|
1213
1258
|
parent: "elternteil",
|
|
1214
1259
|
children: "kinder",
|
|
1215
1260
|
within: "innerhalb",
|
|
@@ -1243,7 +1288,8 @@ var ja = {
|
|
|
1243
1288
|
hide: "\u96A0\u3059",
|
|
1244
1289
|
show: "\u8868\u793A",
|
|
1245
1290
|
if: "\u3082\u3057",
|
|
1246
|
-
unless: "\
|
|
1291
|
+
unless: "\u306A\u3044\u9650\u308A",
|
|
1292
|
+
// not でなければ — leading で particle shatters the marker
|
|
1247
1293
|
repeat: "\u7E70\u308A\u8FD4\u3057",
|
|
1248
1294
|
for: "\u305F\u3081\u306B",
|
|
1249
1295
|
while: "\u306E\u9593",
|
|
@@ -1252,7 +1298,7 @@ var ja = {
|
|
|
1252
1298
|
break: "\u4E2D\u65AD",
|
|
1253
1299
|
halt: "\u505C\u6B62",
|
|
1254
1300
|
wait: "\u5F85\u3064",
|
|
1255
|
-
fetch: "\
|
|
1301
|
+
fetch: "\u30D5\u30A7\u30C3\u30C1",
|
|
1256
1302
|
call: "\u547C\u3073\u51FA\u3057",
|
|
1257
1303
|
return: "\u623B\u308B",
|
|
1258
1304
|
make: "\u4F5C\u308B",
|
|
@@ -1277,7 +1323,11 @@ var ja = {
|
|
|
1277
1323
|
morph: "\u5909\u5F62",
|
|
1278
1324
|
settle: "\u5B89\u5B9A",
|
|
1279
1325
|
append: "\u672B\u5C3E\u8FFD\u52A0",
|
|
1280
|
-
exit:
|
|
1326
|
+
// 終了 → 退出: realigned to the semantic profile primary (ja.ts `exit: 退出`).
|
|
1327
|
+
// 終了 was the historic exit/end collision word (see isEndKeyword's ja note);
|
|
1328
|
+
// rendered as 終了 it tokenized as a plain identifier, so a guard-clause
|
|
1329
|
+
// `exit` inside `if … end` never parsed (behavior-sortable ja).
|
|
1330
|
+
exit: "\u9000\u51FA",
|
|
1281
1331
|
install: "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",
|
|
1282
1332
|
breakpoint: "\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8",
|
|
1283
1333
|
clear: "\u30AF\u30EA\u30A2",
|
|
@@ -1285,7 +1335,8 @@ var ja = {
|
|
|
1285
1335
|
open: "\u958B\u304F",
|
|
1286
1336
|
select: "\u9078\u629E",
|
|
1287
1337
|
clone: "\u8907\u88FD",
|
|
1288
|
-
prepend: "\u5148\u982D\u8FFD\u52A0"
|
|
1338
|
+
prepend: "\u5148\u982D\u8FFD\u52A0",
|
|
1339
|
+
socket: "\u30BD\u30B1\u30C3\u30C8"
|
|
1289
1340
|
},
|
|
1290
1341
|
modifiers: {
|
|
1291
1342
|
to: "\u306B",
|
|
@@ -1334,7 +1385,7 @@ var ja = {
|
|
|
1334
1385
|
touchcancel: "\u30BF\u30C3\u30C1\u30AD\u30E3\u30F3\u30BB\u30EB"
|
|
1335
1386
|
},
|
|
1336
1387
|
logical: {
|
|
1337
|
-
when: "\
|
|
1388
|
+
when: "\u6642",
|
|
1338
1389
|
where: "\u3069\u3053",
|
|
1339
1390
|
and: "\u305D\u3057\u3066",
|
|
1340
1391
|
or: "\u307E\u305F\u306F",
|
|
@@ -1352,6 +1403,7 @@ var ja = {
|
|
|
1352
1403
|
otherwise: "\u305D\u3046\u3067\u306A\u3051\u308C\u3070",
|
|
1353
1404
|
end: "\u7D42\u308F\u308A",
|
|
1354
1405
|
live: "\u30E9\u30A4\u30D6",
|
|
1406
|
+
bind: "\u30D0\u30A4\u30F3\u30C9",
|
|
1355
1407
|
changes: "\u5909\u308F\u3063\u305F\u3089"
|
|
1356
1408
|
},
|
|
1357
1409
|
temporal: {
|
|
@@ -1443,7 +1495,10 @@ var ar = {
|
|
|
1443
1495
|
hide: "\u0627\u062E\u0641",
|
|
1444
1496
|
show: "\u0627\u0638\u0647\u0631",
|
|
1445
1497
|
if: "\u0625\u0630\u0627",
|
|
1446
|
-
|
|
1498
|
+
// Single-token form: the semantic ar tokenizer splits the two-word `إلا إذا`
|
|
1499
|
+
// into `إلا` + `إذا`(if), which derails the `unless` block. `إلا` alone is the
|
|
1500
|
+
// conventional Arabic shorthand and matches the ar profile's unless keyword.
|
|
1501
|
+
unless: "\u0625\u0644\u0627",
|
|
1447
1502
|
repeat: "\u0643\u0631\u0631",
|
|
1448
1503
|
for: "\u0644\u0643\u0644",
|
|
1449
1504
|
while: "\u0628\u064A\u0646\u0645\u0627",
|
|
@@ -1473,19 +1528,22 @@ var ar = {
|
|
|
1473
1528
|
js: "\u062C\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062A",
|
|
1474
1529
|
async: "\u0645\u062A\u0632\u0627\u0645\u0646",
|
|
1475
1530
|
render: "\u0627\u0631\u0633\u0645",
|
|
1476
|
-
swap: "\u0628\u062F\
|
|
1531
|
+
swap: "\u0627\u0633\u062A\u0628\u062F\u0644",
|
|
1532
|
+
// profile primary; 'بدّل' is toggle's word (parsed as toggle)
|
|
1477
1533
|
morph: "\u062D\u0648\u0651\u0644",
|
|
1478
1534
|
settle: "\u0627\u0633\u062A\u0642\u0631",
|
|
1479
1535
|
append: "\u0623\u0644\u062D\u0642",
|
|
1480
1536
|
exit: "\u0627\u062E\u0631\u062C",
|
|
1481
1537
|
install: "\u062B\u0628\u0651\u062A",
|
|
1482
1538
|
breakpoint: "\u0646\u0642\u0637\u0629-\u062A\u0648\u0642\u0641",
|
|
1483
|
-
clear: "\
|
|
1539
|
+
clear: "\u0646\u0638\u0651\u0641",
|
|
1540
|
+
// امسح is a remove alternative in the profile
|
|
1484
1541
|
close: "\u0623\u063A\u0644\u0642",
|
|
1485
1542
|
open: "\u0627\u0641\u062A\u062D",
|
|
1486
1543
|
select: "\u0627\u062E\u062A\u0631",
|
|
1487
1544
|
clone: "\u0627\u0633\u062A\u0646\u0633\u062E",
|
|
1488
|
-
prepend: "\u0633\u0628\u0642"
|
|
1545
|
+
prepend: "\u0633\u0628\u0642",
|
|
1546
|
+
socket: "\u0645\u0642\u0628\u0633"
|
|
1489
1547
|
},
|
|
1490
1548
|
modifiers: {
|
|
1491
1549
|
to: "\u0625\u0644\u0649",
|
|
@@ -1552,6 +1610,7 @@ var ar = {
|
|
|
1552
1610
|
otherwise: "\u062E\u0644\u0627\u0641 \u0630\u0644\u0643",
|
|
1553
1611
|
end: "\u0627\u0644\u0646\u0647\u0627\u064A\u0629",
|
|
1554
1612
|
live: "\u062D\u064A",
|
|
1613
|
+
bind: "\u0627\u0631\u0628\u0637",
|
|
1555
1614
|
changes: "\u064A\u062A\u063A\u064A\u0631"
|
|
1556
1615
|
},
|
|
1557
1616
|
temporal: {
|
|
@@ -1633,7 +1692,8 @@ var tr = {
|
|
|
1633
1692
|
tell: "s\xF6yle",
|
|
1634
1693
|
trigger: "tetikle",
|
|
1635
1694
|
send: "g\xF6nder",
|
|
1636
|
-
take: "
|
|
1695
|
+
take: "tut",
|
|
1696
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1637
1697
|
put: "koy",
|
|
1638
1698
|
set: "ayarla",
|
|
1639
1699
|
get: "al",
|
|
@@ -1646,7 +1706,11 @@ var tr = {
|
|
|
1646
1706
|
unless: "de\u011Filse",
|
|
1647
1707
|
repeat: "tekrarla",
|
|
1648
1708
|
for: "i\xE7in",
|
|
1649
|
-
while
|
|
1709
|
+
// `süresince` (the semantic tr profile's while primary), not `iken`: `iken`
|
|
1710
|
+
// is the profile's WHEN primary (logical.when below also emits it), so a
|
|
1711
|
+
// fronted repeat-while head tokenized as `when` and the condition dropped
|
|
1712
|
+
// wholesale. Same dict↔profile homonym disambiguation as pl get/pobierz.
|
|
1713
|
+
while: "s\xFCresince",
|
|
1650
1714
|
until: "kadar",
|
|
1651
1715
|
continue: "devam",
|
|
1652
1716
|
break: "dur",
|
|
@@ -1676,7 +1740,8 @@ var tr = {
|
|
|
1676
1740
|
swap: "takas",
|
|
1677
1741
|
morph: "d\xF6n\xFC\u015Ft\xFCr",
|
|
1678
1742
|
settle: "sabitlen",
|
|
1679
|
-
append: "
|
|
1743
|
+
append: "ili\u015Ftir",
|
|
1744
|
+
// profile primary; 'ekle' is add's word (parsed as add)
|
|
1680
1745
|
exit: "\xE7\u0131k",
|
|
1681
1746
|
install: "kur",
|
|
1682
1747
|
breakpoint: "kesme-noktas\u0131",
|
|
@@ -1685,7 +1750,8 @@ var tr = {
|
|
|
1685
1750
|
open: "a\xE7",
|
|
1686
1751
|
select: "se\xE7",
|
|
1687
1752
|
clone: "klonla",
|
|
1688
|
-
prepend: "ba\u015F\u0131naekle"
|
|
1753
|
+
prepend: "ba\u015F\u0131naekle",
|
|
1754
|
+
socket: "soket"
|
|
1689
1755
|
},
|
|
1690
1756
|
modifiers: {
|
|
1691
1757
|
to: "e",
|
|
@@ -1708,8 +1774,11 @@ var tr = {
|
|
|
1708
1774
|
events: {
|
|
1709
1775
|
click: "t\u0131klama",
|
|
1710
1776
|
dblclick: "\xE7ift_t\u0131klama",
|
|
1711
|
-
|
|
1712
|
-
|
|
1777
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, breaking event
|
|
1778
|
+
// recognition (mousedown → "bas" / mouseup mis-captured). Mirrors the #535
|
|
1779
|
+
// ru/uk fuse + #510 resize fix.
|
|
1780
|
+
mousedown: "farebas",
|
|
1781
|
+
mouseup: "fareb\u0131rak",
|
|
1713
1782
|
mouseenter: "fare_gir",
|
|
1714
1783
|
mouseleave: "fare_\xE7\u0131k",
|
|
1715
1784
|
mouseover: "fare_\xFCst\xFC",
|
|
@@ -1726,7 +1795,7 @@ var tr = {
|
|
|
1726
1795
|
reset: "s\u0131f\u0131rla",
|
|
1727
1796
|
load: "y\xFCkle",
|
|
1728
1797
|
unload: "y\xFCkle_kald\u0131r",
|
|
1729
|
-
resize: "
|
|
1798
|
+
resize: "boyutland\u0131rma",
|
|
1730
1799
|
scroll: "kayd\u0131r",
|
|
1731
1800
|
touchstart: "dokunma_ba\u015Fla",
|
|
1732
1801
|
touchend: "dokunma_bitir",
|
|
@@ -1747,7 +1816,7 @@ var tr = {
|
|
|
1747
1816
|
equals: "e\u015Fittir",
|
|
1748
1817
|
has: "var",
|
|
1749
1818
|
have: "var",
|
|
1750
|
-
then: "
|
|
1819
|
+
then: "ard\u0131ndan",
|
|
1751
1820
|
else: "yoksa",
|
|
1752
1821
|
otherwise: "aksi_halde",
|
|
1753
1822
|
end: "son",
|
|
@@ -1803,13 +1872,18 @@ var tr = {
|
|
|
1803
1872
|
},
|
|
1804
1873
|
expressions: {
|
|
1805
1874
|
first: "ilk",
|
|
1806
|
-
|
|
1875
|
+
// 'son' is also the END keyword emission (block terminator), and the
|
|
1876
|
+
// parser's end-recognizers match it by value — so a positional `last`
|
|
1877
|
+
// emission of 'son' terminated the enclosing block mid-condition
|
|
1878
|
+
// (focus-trap's `eşleşir son <button/>` dropped the branch body; the sw
|
|
1879
|
+
// mwisho class). 'sonuncu' ("the last one") is unambiguous.
|
|
1880
|
+
last: "sonuncu",
|
|
1807
1881
|
next: "sonraki",
|
|
1808
1882
|
previous: "\xF6nceki",
|
|
1809
1883
|
prev: "\xF6nc",
|
|
1810
1884
|
at: "de",
|
|
1811
1885
|
random: "rastgele",
|
|
1812
|
-
closest: "
|
|
1886
|
+
closest: "enyak\u0131n",
|
|
1813
1887
|
parent: "ebeveyn",
|
|
1814
1888
|
children: "\xE7ocuklar",
|
|
1815
1889
|
within: "i\xE7inde",
|
|
@@ -1839,7 +1913,7 @@ var id = {
|
|
|
1839
1913
|
get: "dapatkan",
|
|
1840
1914
|
add: "tambah",
|
|
1841
1915
|
remove: "hapus",
|
|
1842
|
-
toggle: "
|
|
1916
|
+
toggle: "alihkan",
|
|
1843
1917
|
hide: "sembunyikan",
|
|
1844
1918
|
show: "tampilkan",
|
|
1845
1919
|
if: "jika",
|
|
@@ -1852,7 +1926,10 @@ var id = {
|
|
|
1852
1926
|
break: "hentikan",
|
|
1853
1927
|
halt: "berhenti",
|
|
1854
1928
|
wait: "tunggu",
|
|
1855
|
-
fetch
|
|
1929
|
+
// profile primary; 'ambil' is take's word — emitting it for fetch made every
|
|
1930
|
+
// fetch parse as take once the fused take-event pattern came alive (the de
|
|
1931
|
+
// holen/abrufen bug class)
|
|
1932
|
+
fetch: "muat",
|
|
1856
1933
|
call: "panggil",
|
|
1857
1934
|
return: "kembali",
|
|
1858
1935
|
make: "buat",
|
|
@@ -1861,7 +1938,11 @@ var id = {
|
|
|
1861
1938
|
catch: "tangkap",
|
|
1862
1939
|
measure: "ukur",
|
|
1863
1940
|
transition: "transisi",
|
|
1864
|
-
|
|
1941
|
+
// naikkan (raise), not tambahkan — tambahkan is the semantic profile's
|
|
1942
|
+
// `add` alternative, so emitting it made increment-counter parse as ADD
|
|
1943
|
+
// (the #373 collision family). naikkan is the profile's increment
|
|
1944
|
+
// alternative, pairing naturally with the decrement side.
|
|
1945
|
+
increment: "naikkan",
|
|
1865
1946
|
decrement: "kurangi",
|
|
1866
1947
|
default: "bawaan",
|
|
1867
1948
|
go: "pergi",
|
|
@@ -1872,15 +1953,20 @@ var id = {
|
|
|
1872
1953
|
beep: "bunyi",
|
|
1873
1954
|
js: "js",
|
|
1874
1955
|
async: "asinkron",
|
|
1875
|
-
render: "
|
|
1956
|
+
render: "olah",
|
|
1957
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1876
1958
|
swap: "tukar",
|
|
1877
|
-
morph: "
|
|
1878
|
-
|
|
1879
|
-
|
|
1959
|
+
morph: "ubah",
|
|
1960
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1961
|
+
settle: "stabilkan",
|
|
1962
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1963
|
+
append: "sisipkan",
|
|
1964
|
+
// profile primary; 'tambah_akhir' splits and is unrecognized
|
|
1880
1965
|
exit: "keluar",
|
|
1881
1966
|
install: "pasang",
|
|
1882
1967
|
breakpoint: "titik-henti",
|
|
1883
|
-
clear: "
|
|
1968
|
+
clear: "bersihkan",
|
|
1969
|
+
// hapus is the remove PRIMARY in the profile
|
|
1884
1970
|
close: "tutup",
|
|
1885
1971
|
open: "buka",
|
|
1886
1972
|
select: "pilih",
|
|
@@ -2033,20 +2119,34 @@ var qu = {
|
|
|
2033
2119
|
tell: "niy",
|
|
2034
2120
|
trigger: "kichay",
|
|
2035
2121
|
send: "kachay",
|
|
2036
|
-
take: "
|
|
2122
|
+
take: "hapiy",
|
|
2123
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2037
2124
|
put: "churay",
|
|
2038
|
-
set
|
|
2039
|
-
|
|
2125
|
+
// churay is the semantic qu profile's `put` primary; `set` is churanay. Emitting
|
|
2126
|
+
// churay for set made the semantic parser read a transformed `set` as `put`.
|
|
2127
|
+
// See ZH_BLOCK_BODY_SCOPE.md (#2 sweep — keyword realignment, cf. zh fetch).
|
|
2128
|
+
set: "churanay",
|
|
2129
|
+
// Align with the semantic quechua profile's `get` primary (`taripay`); the
|
|
2130
|
+
// previous `chaskiy` had no profile entry, so the transformed `get` dropped
|
|
2131
|
+
// (get-value parsed degenerate). Same dict↔profile alignment as id `toggle`.
|
|
2132
|
+
get: "taripay",
|
|
2040
2133
|
add: "yapay",
|
|
2041
2134
|
remove: "qichuy",
|
|
2042
2135
|
toggle: "tikray",
|
|
2043
2136
|
hide: "pakay",
|
|
2044
2137
|
show: "rikuchiy",
|
|
2045
2138
|
if: "sichus",
|
|
2046
|
-
unless: "
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2139
|
+
unless: "mana sichus",
|
|
2140
|
+
// spaced phrase ("if not"); `_` form split to `mana`+`sichus`(=if) at parse time
|
|
2141
|
+
repeat: "kutipay",
|
|
2142
|
+
for: "sapankaq",
|
|
2143
|
+
// profile's for word — rayku doubles as `by`
|
|
2144
|
+
// `kaykamaqa` (the semantic qu profile's while primary), not `kay_kaq`: the
|
|
2145
|
+
// `_` form is unknown to the profile (and `_` words split at parse time, cf.
|
|
2146
|
+
// qhipaman_yapay), so the fronted repeat-while head never formed a `while`
|
|
2147
|
+
// node — the condition dropped wholesale. Same dict↔profile alignment as
|
|
2148
|
+
// vi render / de abrufen.
|
|
2149
|
+
while: "kaykamaqa",
|
|
2050
2150
|
until: "hayk_akama",
|
|
2051
2151
|
continue: "purichiy",
|
|
2052
2152
|
break: "p_akiy",
|
|
@@ -2056,12 +2156,18 @@ var qu = {
|
|
|
2056
2156
|
call: "qayay",
|
|
2057
2157
|
return: "kutimuy",
|
|
2058
2158
|
make: "ruray",
|
|
2059
|
-
log
|
|
2159
|
+
// qillqay is the semantic qu profile's `copy` primary; `log` is qillqakuy.
|
|
2160
|
+
// Emitting qillqay for log made the parser read every transformed log as
|
|
2161
|
+
// copy (log-value/log-element/get-value lossy) — same realign as set above.
|
|
2162
|
+
log: "qillqakuy",
|
|
2060
2163
|
throw: "wikchuy",
|
|
2061
2164
|
catch: "hapsiy",
|
|
2062
2165
|
measure: "tupuy",
|
|
2063
|
-
|
|
2064
|
-
|
|
2166
|
+
// pasay, not tikray: the semantic qu profile's toggle keyword is
|
|
2167
|
+
// t'ikray/tikray, so a tikray render collided with toggle and the
|
|
2168
|
+
// transition command never anchored (sw kama precedent, #569).
|
|
2169
|
+
transition: "pasay",
|
|
2170
|
+
increment: "yapachiy",
|
|
2065
2171
|
decrement: "pisiyachiy",
|
|
2066
2172
|
default: "\xF1awpaq_kaq",
|
|
2067
2173
|
go: "riy",
|
|
@@ -2072,20 +2178,26 @@ var qu = {
|
|
|
2072
2178
|
beep: "waqay",
|
|
2073
2179
|
js: "js",
|
|
2074
2180
|
async: "mana_suyaspa",
|
|
2075
|
-
render: "
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2181
|
+
render: "rikurichiy",
|
|
2182
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2183
|
+
swap: "t'inkuy",
|
|
2184
|
+
// profile primary; 'rantin_tikray' splits, 'tikray' is toggle's word
|
|
2185
|
+
morph: "tukunay",
|
|
2186
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2187
|
+
settle: "tiyakuy",
|
|
2188
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2189
|
+
append: "qatichiy",
|
|
2190
|
+
// profile's append primary (single token); `qhipaman_yapay` `_`-split to qhipaman+yapay(=add) at parse time
|
|
2080
2191
|
exit: "lluqsiy",
|
|
2081
|
-
install: "
|
|
2192
|
+
install: "tarpuy",
|
|
2082
2193
|
breakpoint: "sayachinay",
|
|
2083
2194
|
clear: "pichay",
|
|
2084
2195
|
close: "wichqay",
|
|
2085
2196
|
open: "kichay",
|
|
2086
2197
|
select: "akllay",
|
|
2087
2198
|
clone: "kikinchay",
|
|
2088
|
-
prepend: "\xF1awpachiy"
|
|
2199
|
+
prepend: "\xF1awpachiy",
|
|
2200
|
+
socket: "tinkina"
|
|
2089
2201
|
},
|
|
2090
2202
|
modifiers: {
|
|
2091
2203
|
to: "man",
|
|
@@ -2108,8 +2220,10 @@ var qu = {
|
|
|
2108
2220
|
events: {
|
|
2109
2221
|
click: "\xF1itiy",
|
|
2110
2222
|
dblclick: "iskay_\xF1itiy",
|
|
2111
|
-
|
|
2112
|
-
|
|
2223
|
+
// Fused (no `_`): the semantic tokenizer splits on `_` — and `rat_ñitiy` then
|
|
2224
|
+
// mis-captured as the `click` event (ñitiy→click). Mirrors the #535 ru/uk fuse.
|
|
2225
|
+
mousedown: "rat\xF1itiy",
|
|
2226
|
+
mouseup: "rathuqariy",
|
|
2113
2227
|
mouseenter: "rat_yaykuy",
|
|
2114
2228
|
mouseleave: "rat_lluqsiy",
|
|
2115
2229
|
mouseover: "rat_hawapi",
|
|
@@ -2148,7 +2262,11 @@ var qu = {
|
|
|
2148
2262
|
has: "kachkan",
|
|
2149
2263
|
have: "kachkani",
|
|
2150
2264
|
then: "chayqa",
|
|
2151
|
-
else
|
|
2265
|
+
// Align to the semantic profile's else word `manachus`. The old `mana_chayqa`
|
|
2266
|
+
// tokenized as `mana`(false) + `_` + `chayqa`(then) — no else keyword formed,
|
|
2267
|
+
// so qu conditionals never split their else branch. `manachus` is a single
|
|
2268
|
+
// token the profile-derived keyword map reads as `else` (dict↔profile align).
|
|
2269
|
+
else: "manachus",
|
|
2152
2270
|
otherwise: "huk_kaqpi",
|
|
2153
2271
|
end: "tukuy",
|
|
2154
2272
|
live: "kawsay",
|
|
@@ -2171,7 +2289,7 @@ var qu = {
|
|
|
2171
2289
|
values: {
|
|
2172
2290
|
true: "cheqaq",
|
|
2173
2291
|
false: "llulla",
|
|
2174
|
-
null: "
|
|
2292
|
+
null: "chusaq",
|
|
2175
2293
|
undefined: "mana_riqsisqa",
|
|
2176
2294
|
it: "chay",
|
|
2177
2295
|
its: "chaypaq",
|
|
@@ -2209,12 +2327,12 @@ var qu = {
|
|
|
2209
2327
|
prev: "\xF1awpaq",
|
|
2210
2328
|
at: "pi",
|
|
2211
2329
|
random: "imaymanata",
|
|
2212
|
-
closest: "
|
|
2330
|
+
closest: "kaylla",
|
|
2213
2331
|
parent: "mama_tayta",
|
|
2214
2332
|
children: "wawakuna",
|
|
2215
2333
|
within: "ukupi",
|
|
2216
2334
|
no: "mana_kanchu",
|
|
2217
|
-
empty: "
|
|
2335
|
+
empty: "chusaq",
|
|
2218
2336
|
some: "wakin",
|
|
2219
2337
|
"starts with": "qallarisqa wan",
|
|
2220
2338
|
"ends with": "tukusqa wan",
|
|
@@ -2235,11 +2353,17 @@ var sw = {
|
|
|
2235
2353
|
send: "tuma",
|
|
2236
2354
|
take: "chukua",
|
|
2237
2355
|
put: "weka",
|
|
2238
|
-
set
|
|
2356
|
+
// weka is the semantic sw profile's `put` primary; `set` is seti. Emitting weka
|
|
2357
|
+
// for set made the semantic parser read a transformed `set` as `put`.
|
|
2358
|
+
// See ZH_BLOCK_BODY_SCOPE.md (#2 sweep — keyword realignment, cf. zh fetch).
|
|
2359
|
+
set: "seti",
|
|
2239
2360
|
get: "pata",
|
|
2240
2361
|
add: "ongeza",
|
|
2241
2362
|
remove: "ondoa",
|
|
2242
2363
|
toggle: "badilisha",
|
|
2364
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
2365
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
2366
|
+
blur: "blur",
|
|
2243
2367
|
hide: "ficha",
|
|
2244
2368
|
show: "onyesha",
|
|
2245
2369
|
if: "kama",
|
|
@@ -2255,13 +2379,14 @@ var sw = {
|
|
|
2255
2379
|
fetch: "leta",
|
|
2256
2380
|
call: "ita",
|
|
2257
2381
|
return: "rudi",
|
|
2258
|
-
make: "
|
|
2382
|
+
make: "tengeneza",
|
|
2383
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2259
2384
|
log: "andika",
|
|
2260
2385
|
throw: "tupa",
|
|
2261
2386
|
catch: "shika",
|
|
2262
2387
|
measure: "pima",
|
|
2263
2388
|
transition: "mpito",
|
|
2264
|
-
increment: "
|
|
2389
|
+
increment: "ongezeko",
|
|
2265
2390
|
decrement: "punguza",
|
|
2266
2391
|
default: "msingi",
|
|
2267
2392
|
go: "nenda",
|
|
@@ -2274,18 +2399,23 @@ var sw = {
|
|
|
2274
2399
|
async: "sainkroni",
|
|
2275
2400
|
render: "chora",
|
|
2276
2401
|
swap: "badilishana",
|
|
2277
|
-
morph: "
|
|
2402
|
+
morph: "geuza",
|
|
2403
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2278
2404
|
settle: "tulia",
|
|
2279
|
-
append: "
|
|
2405
|
+
append: "ambatanisha",
|
|
2406
|
+
// profile primary; 'ongezaMwisho' is unrecognized
|
|
2280
2407
|
exit: "toka",
|
|
2281
2408
|
install: "sakinisha",
|
|
2282
2409
|
breakpoint: "nukta-simama",
|
|
2283
|
-
clear: "
|
|
2410
|
+
clear: "safisha",
|
|
2411
|
+
// futa is a remove alternative in the profile
|
|
2284
2412
|
close: "funga",
|
|
2285
2413
|
open: "fungua",
|
|
2286
2414
|
select: "chagua",
|
|
2287
2415
|
clone: "nakili",
|
|
2288
|
-
prepend: "tanguliza"
|
|
2416
|
+
prepend: "tanguliza",
|
|
2417
|
+
focus: "lenga",
|
|
2418
|
+
socket: "soketi"
|
|
2289
2419
|
},
|
|
2290
2420
|
modifiers: {
|
|
2291
2421
|
to: "kwa",
|
|
@@ -2295,7 +2425,14 @@ var sw = {
|
|
|
2295
2425
|
at: "katika",
|
|
2296
2426
|
in: "ndani",
|
|
2297
2427
|
of: "ya",
|
|
2298
|
-
|
|
2428
|
+
// `kuwa` ("to be/become" — the conversion sense, cf. `badilisha kuwa`), not
|
|
2429
|
+
// `kama`: sw `kama` is the IF keyword (commands.if above and the semantic sw
|
|
2430
|
+
// profile's if primary), so emitting it for `as` grew a phantom `if` command
|
|
2431
|
+
// out of every transformed `as <Type>` tail (`kama JSON`, `kama Number`) when
|
|
2432
|
+
// the semantic parser split event-body statements. Same dict↔profile homonym
|
|
2433
|
+
// disambiguation as pl get/pobierz. The semantic fetch-sw pattern still
|
|
2434
|
+
// tolerates hand-written `kama` in as-marker position.
|
|
2435
|
+
as: "kuwa",
|
|
2299
2436
|
by: "na",
|
|
2300
2437
|
before: "kabla",
|
|
2301
2438
|
after: "baada",
|
|
@@ -2351,7 +2488,7 @@ var sw = {
|
|
|
2351
2488
|
else: "sivyo",
|
|
2352
2489
|
otherwise: "vinginevyo",
|
|
2353
2490
|
end: "mwisho",
|
|
2354
|
-
live: "
|
|
2491
|
+
live: "mubashara",
|
|
2355
2492
|
changes: "inabadilika"
|
|
2356
2493
|
},
|
|
2357
2494
|
temporal: {
|
|
@@ -2403,13 +2540,25 @@ var sw = {
|
|
|
2403
2540
|
},
|
|
2404
2541
|
expressions: {
|
|
2405
2542
|
first: "kwanza",
|
|
2406
|
-
|
|
2543
|
+
// 'mwisho' is the END keyword (block terminator) — the tokenizer's keyword
|
|
2544
|
+
// map is last-wins, so a positional `last` emission of 'mwisho' reads as
|
|
2545
|
+
// `end` and terminates the enclosing block mid-condition (focus-trap's
|
|
2546
|
+
// `… inafanana mwisho <button/>` dropped the whole branch body). Emit the
|
|
2547
|
+
// concatenated adjective form instead (wa mwisho — the saufsi/wennnicht/
|
|
2548
|
+
// enyakın single-token class); the tokenizer reads it as `last`.
|
|
2549
|
+
last: "wamwisho",
|
|
2407
2550
|
next: "ijayo",
|
|
2408
2551
|
previous: "iliyopita",
|
|
2409
2552
|
prev: "awali",
|
|
2410
2553
|
at: "katika",
|
|
2411
2554
|
random: "nasibu",
|
|
2412
|
-
|
|
2555
|
+
// Natural Swahili: `karibu` ("near/close") is the ordinary word and already
|
|
2556
|
+
// maps to closest. The earlier `karibu_zaidi` ("nearer") underscore-split to
|
|
2557
|
+
// karibu/_/zaidi (the stray `_ zaidi` broke positional capture); the fused
|
|
2558
|
+
// `karibuzaidi` parsed but isn't real Swahili. `karibu` alone is both natural
|
|
2559
|
+
// and correct (the sw tokenizer is single-word-only, so a spaced `karibu
|
|
2560
|
+
// zaidi` would strand `zaidi` regardless).
|
|
2561
|
+
closest: "karibu",
|
|
2413
2562
|
parent: "mzazi",
|
|
2414
2563
|
children: "watoto",
|
|
2415
2564
|
within: "ndani_ya",
|
|
@@ -2440,17 +2589,22 @@ var pt = {
|
|
|
2440
2589
|
add: "adicionar",
|
|
2441
2590
|
remove: "remover",
|
|
2442
2591
|
toggle: "alternar",
|
|
2592
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
2593
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
2594
|
+
blur: "desfocar",
|
|
2443
2595
|
hide: "esconder",
|
|
2444
2596
|
show: "mostrar",
|
|
2445
2597
|
if: "se",
|
|
2446
|
-
unless: "
|
|
2598
|
+
unless: "salvo",
|
|
2599
|
+
// a_menos splits at _ in the pt extractor (see profile)
|
|
2447
2600
|
repeat: "repetir",
|
|
2448
2601
|
for: "para",
|
|
2449
2602
|
while: "enquanto",
|
|
2450
2603
|
until: "at\xE9",
|
|
2451
2604
|
continue: "continuar",
|
|
2452
|
-
|
|
2453
|
-
|
|
2605
|
+
// un-crossed: the profile/tokenizer read parar=halt, interromper=break
|
|
2606
|
+
break: "interromper",
|
|
2607
|
+
halt: "parar",
|
|
2454
2608
|
wait: "esperar",
|
|
2455
2609
|
fetch: "buscar",
|
|
2456
2610
|
call: "chamar",
|
|
@@ -2485,7 +2639,9 @@ var pt = {
|
|
|
2485
2639
|
open: "abrir",
|
|
2486
2640
|
select: "selecionar",
|
|
2487
2641
|
clone: "clonar",
|
|
2488
|
-
prepend: "preceder"
|
|
2642
|
+
prepend: "preceder",
|
|
2643
|
+
focus: "focar",
|
|
2644
|
+
socket: "soquete"
|
|
2489
2645
|
},
|
|
2490
2646
|
modifiers: {
|
|
2491
2647
|
to: "para",
|
|
@@ -2609,7 +2765,7 @@ var pt = {
|
|
|
2609
2765
|
prev: "ant",
|
|
2610
2766
|
at: "em",
|
|
2611
2767
|
random: "aleat\xF3rio",
|
|
2612
|
-
closest: "
|
|
2768
|
+
closest: "maispr\xF3ximo",
|
|
2613
2769
|
parent: "pai",
|
|
2614
2770
|
children: "filhos",
|
|
2615
2771
|
within: "dentro",
|
|
@@ -2643,7 +2799,7 @@ var it = {
|
|
|
2643
2799
|
hide: "nascondere",
|
|
2644
2800
|
show: "mostrare",
|
|
2645
2801
|
if: "se",
|
|
2646
|
-
unless: "
|
|
2802
|
+
unless: "salvo",
|
|
2647
2803
|
repeat: "ripetere",
|
|
2648
2804
|
for: "per",
|
|
2649
2805
|
while: "mentre",
|
|
@@ -2676,7 +2832,8 @@ var it = {
|
|
|
2676
2832
|
swap: "scambiare",
|
|
2677
2833
|
morph: "trasformare",
|
|
2678
2834
|
settle: "stabilizzare",
|
|
2679
|
-
append: "
|
|
2835
|
+
append: "accodare",
|
|
2836
|
+
// profile primary; 'aggiungere' is add's word (parsed as add)
|
|
2680
2837
|
exit: "uscire",
|
|
2681
2838
|
install: "installare",
|
|
2682
2839
|
breakpoint: "punto-interruzione",
|
|
@@ -2685,7 +2842,10 @@ var it = {
|
|
|
2685
2842
|
open: "aprire",
|
|
2686
2843
|
select: "selezionare",
|
|
2687
2844
|
clone: "clonare",
|
|
2688
|
-
prepend: "anteporre"
|
|
2845
|
+
prepend: "anteporre",
|
|
2846
|
+
// profile primary; without a commands entry the transformer fell back to
|
|
2847
|
+
// the EVENTS noun 'fuoco', which generated focus patterns can't match
|
|
2848
|
+
focus: "focalizzare"
|
|
2689
2849
|
},
|
|
2690
2850
|
modifiers: {
|
|
2691
2851
|
to: "a",
|
|
@@ -2809,7 +2969,7 @@ var it = {
|
|
|
2809
2969
|
prev: "prec",
|
|
2810
2970
|
at: "a",
|
|
2811
2971
|
random: "casuale",
|
|
2812
|
-
closest: "
|
|
2972
|
+
closest: "vicino",
|
|
2813
2973
|
parent: "genitore",
|
|
2814
2974
|
children: "figli",
|
|
2815
2975
|
within: "dentro",
|
|
@@ -2872,7 +3032,8 @@ var vi = {
|
|
|
2872
3032
|
beep: "beep",
|
|
2873
3033
|
js: "js",
|
|
2874
3034
|
async: "b\u1EA5t \u0111\u1ED3ng b\u1ED9",
|
|
2875
|
-
render: "
|
|
3035
|
+
render: "k\u1EBFt xu\u1EA5t",
|
|
3036
|
+
// distinct from `show` (was `hiển thị`, which collides with show: the semantic profile reads `hiển thị` as show, `kết xuất` as render)
|
|
2876
3037
|
swap: "ho\xE1n \u0111\u1ED5i",
|
|
2877
3038
|
morph: "bi\u1EBFn \u0111\u1ED5i",
|
|
2878
3039
|
settle: "\u1ED5n \u0111\u1ECBnh",
|
|
@@ -2887,7 +3048,8 @@ var vi = {
|
|
|
2887
3048
|
prepend: "th\xEAm \u0111\u1EA7u",
|
|
2888
3049
|
else: "kh\xF4ng th\xEC",
|
|
2889
3050
|
breakpoint: "\u0111i\u1EC3m-d\u1EEBng",
|
|
2890
|
-
clear: "
|
|
3051
|
+
clear: "t\u1EA9y",
|
|
3052
|
+
// xóa is the remove PRIMARY in the profile
|
|
2891
3053
|
close: "\u0111\xF3ng",
|
|
2892
3054
|
open: "m\u1EDF",
|
|
2893
3055
|
select: "ch\u1ECDn"
|
|
@@ -2951,7 +3113,7 @@ var vi = {
|
|
|
2951
3113
|
else: "kh\xF4ng th\xEC",
|
|
2952
3114
|
end: "k\u1EBFt th\xFAc",
|
|
2953
3115
|
then: "r\u1ED3i",
|
|
2954
|
-
live: "
|
|
3116
|
+
live: "live",
|
|
2955
3117
|
changes: "thay \u0111\u1ED5i"
|
|
2956
3118
|
},
|
|
2957
3119
|
temporal: {
|
|
@@ -3033,15 +3195,23 @@ var pl = {
|
|
|
3033
3195
|
commands: {
|
|
3034
3196
|
on: "gdy",
|
|
3035
3197
|
tell: "powiedz",
|
|
3036
|
-
trigger: "
|
|
3198
|
+
trigger: "wyzw\xF3l",
|
|
3199
|
+
// auditor: dict emitted a word the profile reads differently
|
|
3037
3200
|
send: "wy\u015Blij",
|
|
3038
3201
|
take: "we\u017A",
|
|
3039
3202
|
put: "umie\u015B\u0107",
|
|
3040
3203
|
set: "ustaw",
|
|
3041
|
-
get
|
|
3204
|
+
// `uzyskaj` (the semantic pl profile's get primary), not `pobierz`: pl `pobierz`
|
|
3205
|
+
// ("download") is the profile's FETCH primary, so emitting it for get made the
|
|
3206
|
+
// parser read every transformed get as fetch (get-value lossy + a phantom fetch).
|
|
3207
|
+
// Same dict↔profile homonym disambiguation as tr load/install, qu get.
|
|
3208
|
+
get: "uzyskaj",
|
|
3042
3209
|
add: "dodaj",
|
|
3043
3210
|
remove: "usu\u0144",
|
|
3044
3211
|
toggle: "prze\u0142\u0105cz",
|
|
3212
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
3213
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
3214
|
+
blur: "rozmyj",
|
|
3045
3215
|
hide: "ukryj",
|
|
3046
3216
|
show: "poka\u017C",
|
|
3047
3217
|
if: "je\u015Bli",
|
|
@@ -3082,12 +3252,14 @@ var pl = {
|
|
|
3082
3252
|
exit: "wyjd\u017A",
|
|
3083
3253
|
install: "zainstaluj",
|
|
3084
3254
|
breakpoint: "punkt-przerwania",
|
|
3085
|
-
clear: "
|
|
3255
|
+
clear: "zeruj",
|
|
3256
|
+
// wyczyść is a remove alternative in the profile
|
|
3086
3257
|
close: "zamknij",
|
|
3087
3258
|
open: "otw\xF3rz",
|
|
3088
3259
|
select: "wybierz",
|
|
3089
3260
|
clone: "sklonuj",
|
|
3090
|
-
prepend: "poprzed\u017A"
|
|
3261
|
+
prepend: "poprzed\u017A",
|
|
3262
|
+
focus: "skup"
|
|
3091
3263
|
},
|
|
3092
3264
|
modifiers: {
|
|
3093
3265
|
to: "do",
|
|
@@ -3233,7 +3405,8 @@ var russianDictionary = {
|
|
|
3233
3405
|
commands: {
|
|
3234
3406
|
on: "\u043F\u0440\u0438",
|
|
3235
3407
|
tell: "\u0441\u043A\u0430\u0437\u0430\u0442\u044C",
|
|
3236
|
-
trigger: "\
|
|
3408
|
+
trigger: "\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C",
|
|
3409
|
+
// auditor: dict emitted a word the profile reads differently
|
|
3237
3410
|
send: "\u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
|
|
3238
3411
|
take: "\u0432\u0437\u044F\u0442\u044C",
|
|
3239
3412
|
put: "\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C",
|
|
@@ -3244,8 +3417,12 @@ var russianDictionary = {
|
|
|
3244
3417
|
toggle: "\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C",
|
|
3245
3418
|
hide: "\u0441\u043A\u0440\u044B\u0442\u044C",
|
|
3246
3419
|
show: "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C",
|
|
3420
|
+
// command verb; the events section keeps the noun прокрутка for `on scroll`.
|
|
3421
|
+
// Without this entry the transformer fell back to the event noun, which the
|
|
3422
|
+
// parser doesn't read as the scroll command (#321 focus family).
|
|
3423
|
+
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C",
|
|
3247
3424
|
if: "\u0435\u0441\u043B\u0438",
|
|
3248
|
-
unless: "\
|
|
3425
|
+
unless: "\u043A\u0440\u043E\u043C\u0435",
|
|
3249
3426
|
repeat: "\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",
|
|
3250
3427
|
for: "\u0434\u043B\u044F",
|
|
3251
3428
|
while: "\u043F\u043E\u043A\u0430",
|
|
@@ -3278,10 +3455,12 @@ var russianDictionary = {
|
|
|
3278
3455
|
swap: "\u043F\u043E\u043C\u0435\u043D\u044F\u0442\u044C",
|
|
3279
3456
|
morph: "\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3280
3457
|
settle: "\u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3281
|
-
append: "\u0434\u043E\
|
|
3458
|
+
append: "\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C",
|
|
3459
|
+
// profile alternative; the compound splits and добавить parses as add
|
|
3282
3460
|
exit: "\u0432\u044B\u0439\u0442\u0438",
|
|
3283
3461
|
else: "\u0438\u043D\u0430\u0447\u0435",
|
|
3284
|
-
install: "\
|
|
3462
|
+
install: "\u0438\u043D\u0441\u0442\u0430\u043B\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3463
|
+
// loanword — `установить` is `set` (homonym); see russian profile
|
|
3285
3464
|
init: "\u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3286
3465
|
behavior: "\u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435",
|
|
3287
3466
|
focus: "\u0441\u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
@@ -3316,8 +3495,11 @@ var russianDictionary = {
|
|
|
3316
3495
|
events: {
|
|
3317
3496
|
click: "\u043A\u043B\u0438\u043A",
|
|
3318
3497
|
dblclick: "\u0434\u0432\u043E\u0439\u043D\u043E\u0439_\u043A\u043B\u0438\u043A",
|
|
3319
|
-
|
|
3320
|
-
|
|
3498
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, so an underscore form
|
|
3499
|
+
// breaks event recognition (mousedown → bare expression). Mirrors the #510 tr
|
|
3500
|
+
// resize fix (boyut_değiştir → boyutlandırma) and the enyakın superlative.
|
|
3501
|
+
mousedown: "\u043C\u044B\u0448\u044C\u0432\u043D\u0438\u0437",
|
|
3502
|
+
mouseup: "\u043C\u044B\u0448\u044C\u0432\u0432\u0435\u0440\u0445",
|
|
3321
3503
|
mouseenter: "\u043C\u044B\u0448\u044C_\u0432\u0445\u043E\u0434",
|
|
3322
3504
|
mouseleave: "\u043C\u044B\u0448\u044C_\u0432\u044B\u0445\u043E\u0434",
|
|
3323
3505
|
mouseover: "\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435",
|
|
@@ -3334,7 +3516,8 @@ var russianDictionary = {
|
|
|
3334
3516
|
reset: "\u0441\u0431\u0440\u043E\u0441",
|
|
3335
3517
|
load: "\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430",
|
|
3336
3518
|
unload: "\u0432\u044B\u0433\u0440\u0443\u0437\u043A\u0430",
|
|
3337
|
-
resize: "\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\
|
|
3519
|
+
resize: "\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0440\u0430",
|
|
3520
|
+
// fused (no `_`) — see mousedown note above
|
|
3338
3521
|
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430",
|
|
3339
3522
|
touchstart: "\u043A\u0430\u0441\u0430\u043D\u0438\u0435_\u043D\u0430\u0447\u0430\u043B\u043E",
|
|
3340
3523
|
touchend: "\u043A\u0430\u0441\u0430\u043D\u0438\u0435_\u043A\u043E\u043D\u0435\u0446",
|
|
@@ -3459,7 +3642,8 @@ var ukrainianDictionary = {
|
|
|
3459
3642
|
commands: {
|
|
3460
3643
|
on: "\u043F\u0440\u0438",
|
|
3461
3644
|
tell: "\u0441\u043A\u0430\u0437\u0430\u0442\u0438",
|
|
3462
|
-
trigger: "\
|
|
3645
|
+
trigger: "\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0438",
|
|
3646
|
+
// auditor: dict emitted a word the profile reads differently
|
|
3463
3647
|
send: "\u043D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438",
|
|
3464
3648
|
take: "\u0432\u0437\u044F\u0442\u0438",
|
|
3465
3649
|
put: "\u043F\u043E\u043A\u043B\u0430\u0441\u0442\u0438",
|
|
@@ -3470,8 +3654,12 @@ var ukrainianDictionary = {
|
|
|
3470
3654
|
toggle: "\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0443\u0442\u0438",
|
|
3471
3655
|
hide: "\u0441\u0445\u043E\u0432\u0430\u0442\u0438",
|
|
3472
3656
|
show: "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u0438",
|
|
3657
|
+
// command verb; the events section keeps the noun прокрутка for `on scroll`.
|
|
3658
|
+
// Without this entry the transformer fell back to the event noun, which the
|
|
3659
|
+
// parser doesn't read as the scroll command (#321 focus family).
|
|
3660
|
+
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0438",
|
|
3473
3661
|
if: "\u044F\u043A\u0449\u043E",
|
|
3474
|
-
unless: "\
|
|
3662
|
+
unless: "\u043A\u0440\u0456\u043C",
|
|
3475
3663
|
repeat: "\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",
|
|
3476
3664
|
for: "\u0434\u043B\u044F",
|
|
3477
3665
|
while: "\u043F\u043E\u043A\u0438",
|
|
@@ -3504,10 +3692,12 @@ var ukrainianDictionary = {
|
|
|
3504
3692
|
swap: "\u043F\u043E\u043C\u0456\u043D\u044F\u0442\u0438",
|
|
3505
3693
|
morph: "\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0432\u0430\u0442\u0438",
|
|
3506
3694
|
settle: "\u0441\u0442\u0430\u0431\u0456\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",
|
|
3507
|
-
append: "\u0434\u043E\
|
|
3695
|
+
append: "\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u0438",
|
|
3696
|
+
// profile alternative; the compound splits and додати parses as add
|
|
3508
3697
|
exit: "\u0432\u0438\u0439\u0442\u0438",
|
|
3509
3698
|
else: "\u0456\u043D\u0430\u043A\u0448\u0435",
|
|
3510
|
-
install: "\
|
|
3699
|
+
install: "\u0456\u043D\u0441\u0442\u0430\u043B\u044E\u0432\u0430\u0442\u0438",
|
|
3700
|
+
// loanword — `встановити` is `set` (homonym); see ukrainian profile
|
|
3511
3701
|
init: "\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",
|
|
3512
3702
|
behavior: "\u043F\u043E\u0432\u0435\u0434\u0456\u043D\u043A\u0430",
|
|
3513
3703
|
focus: "\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438",
|
|
@@ -3542,8 +3732,10 @@ var ukrainianDictionary = {
|
|
|
3542
3732
|
events: {
|
|
3543
3733
|
click: "\u043A\u043B\u0456\u043A",
|
|
3544
3734
|
dblclick: "\u043F\u043E\u0434\u0432\u0456\u0439\u043D\u0438\u0439_\u043A\u043B\u0456\u043A",
|
|
3545
|
-
|
|
3546
|
-
|
|
3735
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, so an underscore form
|
|
3736
|
+
// breaks event recognition. Mirrors the #510 tr resize fix + enyakın.
|
|
3737
|
+
mousedown: "\u043C\u0438\u0448\u0430\u0432\u043D\u0438\u0437",
|
|
3738
|
+
mouseup: "\u043C\u0438\u0448\u0430\u0432\u0433\u043E\u0440\u0443",
|
|
3547
3739
|
mouseenter: "\u043C\u0438\u0448\u0430_\u0432\u0445\u0456\u0434",
|
|
3548
3740
|
mouseleave: "\u043C\u0438\u0448\u0430_\u0432\u0438\u0445\u0456\u0434",
|
|
3549
3741
|
mouseover: "\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u043D\u044F",
|
|
@@ -3560,7 +3752,8 @@ var ukrainianDictionary = {
|
|
|
3560
3752
|
reset: "\u0441\u043A\u0438\u0434\u0430\u043D\u043D\u044F",
|
|
3561
3753
|
load: "\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",
|
|
3562
3754
|
unload: "\u0432\u0438\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",
|
|
3563
|
-
resize: "\u0437\u043C\u0456\u043D\
|
|
3755
|
+
resize: "\u0437\u043C\u0456\u043D\u0430\u0440\u043E\u0437\u043C\u0456\u0440\u0443",
|
|
3756
|
+
// fused (no `_`) — see mousedown note above
|
|
3564
3757
|
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430",
|
|
3565
3758
|
touchstart: "\u0434\u043E\u0442\u0438\u043A_\u043F\u043E\u0447\u0430\u0442\u043E\u043A",
|
|
3566
3759
|
touchend: "\u0434\u043E\u0442\u0438\u043A_\u043A\u0456\u043D\u0435\u0446\u044C",
|
|
@@ -3697,10 +3890,12 @@ var hindiDictionary = {
|
|
|
3697
3890
|
hide: "\u091B\u093F\u092A\u093E\u090F\u0902",
|
|
3698
3891
|
show: "\u0926\u093F\u0916\u093E\u090F\u0902",
|
|
3699
3892
|
if: "\u0905\u0917\u0930",
|
|
3700
|
-
unless: "\u091C\
|
|
3893
|
+
unless: "\u091C\u092C \u0924\u0915 \u0928\u0939\u0940\u0902",
|
|
3894
|
+
// spaced (not जब_तक_नहीं) → one multi-word `unless` token
|
|
3701
3895
|
repeat: "\u0926\u094B\u0939\u0930\u093E\u090F\u0902",
|
|
3702
|
-
for: "\
|
|
3703
|
-
|
|
3896
|
+
for: "\u0939\u0947\u0924\u0941",
|
|
3897
|
+
// single token — के_लिए splits at _ in the hi extractor
|
|
3898
|
+
while: "\u091C\u092C \u0924\u0915",
|
|
3704
3899
|
until: "\u0924\u0915",
|
|
3705
3900
|
continue: "\u091C\u093E\u0930\u0940",
|
|
3706
3901
|
break: "\u0930\u094B\u0915\u0947\u0902",
|
|
@@ -3727,10 +3922,10 @@ var hindiDictionary = {
|
|
|
3727
3922
|
js: "\u091C\u0947\u090F\u0938",
|
|
3728
3923
|
async: "\u0905\u0938\u093F\u0902\u0915",
|
|
3729
3924
|
render: "\u0930\u0947\u0902\u0921\u0930",
|
|
3730
|
-
swap: "\
|
|
3925
|
+
swap: "\u0935\u093F\u0928\u093F\u092E\u092F",
|
|
3731
3926
|
morph: "\u0930\u0942\u092A\u093E\u0902\u0924\u0930",
|
|
3732
3927
|
settle: "\u0938\u094D\u0925\u093F\u0930",
|
|
3733
|
-
append: "\
|
|
3928
|
+
append: "\u0938\u0902\u0932\u0917\u094D\u0928",
|
|
3734
3929
|
exit: "\u092C\u093E\u0939\u0930",
|
|
3735
3930
|
else: "\u0935\u0930\u0928\u093E",
|
|
3736
3931
|
install: "\u0907\u0902\u0938\u094D\u091F\u0949\u0932",
|
|
@@ -3744,7 +3939,8 @@ var hindiDictionary = {
|
|
|
3744
3939
|
clear: "\u0938\u093E\u092B\u093C-\u0915\u0930\u0947\u0902",
|
|
3745
3940
|
close: "\u092C\u0902\u0926-\u0915\u0930\u0947\u0902",
|
|
3746
3941
|
open: "\u0916\u094B\u0932\u0947\u0902",
|
|
3747
|
-
select: "\u091A\u0941\u0928\u0947\u0902"
|
|
3942
|
+
select: "\u091A\u0941\u0928\u0947\u0902",
|
|
3943
|
+
socket: "\u0938\u0949\u0915\u0947\u091F"
|
|
3748
3944
|
},
|
|
3749
3945
|
modifiers: {
|
|
3750
3946
|
to: "\u0915\u094B",
|
|
@@ -3756,8 +3952,8 @@ var hindiDictionary = {
|
|
|
3756
3952
|
of: "\u0915\u093E",
|
|
3757
3953
|
as: "\u0915\u0947_\u0930\u0942\u092A_\u092E\u0947\u0902",
|
|
3758
3954
|
by: "\u0926\u094D\u0935\u093E\u0930\u093E",
|
|
3759
|
-
before: "\u0938\
|
|
3760
|
-
after: "\u0915\
|
|
3955
|
+
before: "\u0938\u0947 \u092A\u0939\u0932\u0947",
|
|
3956
|
+
after: "\u0915\u0947 \u092C\u093E\u0926",
|
|
3761
3957
|
over: "\u0915\u0947_\u090A\u092A\u0930",
|
|
3762
3958
|
under: "\u0915\u0947_\u0928\u0940\u091A\u0947",
|
|
3763
3959
|
between: "\u0915\u0947_\u092C\u0940\u091A",
|
|
@@ -3768,8 +3964,10 @@ var hindiDictionary = {
|
|
|
3768
3964
|
events: {
|
|
3769
3965
|
click: "\u0915\u094D\u0932\u093F\u0915",
|
|
3770
3966
|
dblclick: "\u0921\u092C\u0932_\u0915\u094D\u0932\u093F\u0915",
|
|
3771
|
-
|
|
3772
|
-
|
|
3967
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, breaking event
|
|
3968
|
+
// recognition (mousedown → "नीचे"). Mirrors the #535 ru/uk fuse.
|
|
3969
|
+
mousedown: "\u092E\u093E\u0909\u0938\u0928\u0940\u091A\u0947",
|
|
3970
|
+
mouseup: "\u092E\u093E\u0909\u0938\u090A\u092A\u0930",
|
|
3773
3971
|
mouseenter: "\u092E\u093E\u0909\u0938_\u092A\u094D\u0930\u0935\u0947\u0936",
|
|
3774
3972
|
mouseleave: "\u092E\u093E\u0909\u0938_\u092C\u093E\u0939\u0930",
|
|
3775
3973
|
mouseover: "\u092E\u093E\u0909\u0938_\u0913\u0935\u0930",
|
|
@@ -3801,7 +3999,11 @@ var hindiDictionary = {
|
|
|
3801
3999
|
not: "\u0928\u0939\u0940\u0902",
|
|
3802
4000
|
is: "\u0939\u0948",
|
|
3803
4001
|
exists: "\u092E\u094C\u091C\u0942\u0926",
|
|
3804
|
-
|
|
4002
|
+
// Natural spaced phrase `मेल खाता` ("matches") — how Hindi writes it. The base
|
|
4003
|
+
// tokenizer now matches multi-word profile keywords, so the hindi profile maps
|
|
4004
|
+
// `मेल खाता`→matches without the underscore (`मेल_खाता` split) or the
|
|
4005
|
+
// concatenated `मेलखाता` (parsed, but unnatural) workarounds.
|
|
4006
|
+
matches: "\u092E\u0947\u0932 \u0916\u093E\u0924\u093E",
|
|
3805
4007
|
contains: "\u0936\u093E\u092E\u093F\u0932",
|
|
3806
4008
|
includes: "\u092E\u0947\u0902_\u0939\u0948",
|
|
3807
4009
|
equals: "\u092C\u0930\u093E\u092C\u0930",
|
|
@@ -3938,7 +4140,7 @@ var bengaliDictionary = {
|
|
|
3938
4140
|
throw: "\u09A8\u09BF\u0995\u09CD\u09B7\u09C7\u09AA",
|
|
3939
4141
|
continue: "\u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8",
|
|
3940
4142
|
make: "\u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",
|
|
3941
|
-
append: "\
|
|
4143
|
+
append: "\u099C\u09C1\u09A1\u09BC\u09C1\u09A8",
|
|
3942
4144
|
prepend: "\u09B6\u09C1\u09B0\u09C1\u09A4\u09C7 \u09AF\u09CB\u0997",
|
|
3943
4145
|
focus: "\u09AB\u09CB\u0995\u09BE\u09B8",
|
|
3944
4146
|
blur: "\u099D\u09BE\u09AA\u09B8\u09BE",
|
|
@@ -3966,7 +4168,8 @@ var bengaliDictionary = {
|
|
|
3966
4168
|
clear: "\u09AA\u09B0\u09BF\u09B7\u09CD\u0995\u09BE\u09B0",
|
|
3967
4169
|
close: "\u09AC\u09A8\u09CD\u09A7",
|
|
3968
4170
|
open: "\u0996\u09C1\u09B2\u09C1\u09A8",
|
|
3969
|
-
select: "\u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09A8"
|
|
4171
|
+
select: "\u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09A8",
|
|
4172
|
+
socket: "\u09B8\u0995\u09C7\u099F"
|
|
3970
4173
|
},
|
|
3971
4174
|
modifiers: {
|
|
3972
4175
|
to: "\u0995\u09C7",
|
|
@@ -4025,6 +4228,7 @@ var bengaliDictionary = {
|
|
|
4025
4228
|
end: "\u09B6\u09C7\u09B7",
|
|
4026
4229
|
then: "\u09A4\u09BE\u09B0\u09AA\u09B0",
|
|
4027
4230
|
live: "\u09B2\u09BE\u0987\u09AD",
|
|
4231
|
+
bind: "\u09AC\u09BE\u0987\u09A8\u09CD\u09A1",
|
|
4028
4232
|
changes: "\u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09BF\u09A4 \u09B9\u09B2\u09C7"
|
|
4029
4233
|
},
|
|
4030
4234
|
temporal: {
|
|
@@ -4118,7 +4322,9 @@ var thaiDictionary = {
|
|
|
4118
4322
|
prepend: "\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2B\u0E19\u0E49\u0E32",
|
|
4119
4323
|
focus: "\u0E42\u0E1F\u0E01\u0E31\u0E2A",
|
|
4120
4324
|
blur: "\u0E40\u0E1A\u0E25\u0E2D",
|
|
4121
|
-
|
|
4325
|
+
// เปลี่ยนผ่าน, not เปลี่ยน: the semantic th profile's `change` keyword is
|
|
4326
|
+
// เปลี่ยน, so a เปลี่ยน render could never anchor a transition command.
|
|
4327
|
+
transition: "\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E1C\u0E48\u0E32\u0E19",
|
|
4122
4328
|
settle: "\u0E04\u0E07\u0E17\u0E35\u0E48",
|
|
4123
4329
|
measure: "\u0E27\u0E31\u0E14",
|
|
4124
4330
|
async: "\u0E2D\u0E30\u0E0B\u0E34\u0E07\u0E04\u0E4C",
|
|
@@ -4319,10 +4525,13 @@ var malayDictionary = {
|
|
|
4319
4525
|
init: "mula",
|
|
4320
4526
|
clone: "klon",
|
|
4321
4527
|
breakpoint: "titik-henti",
|
|
4322
|
-
clear: "
|
|
4528
|
+
clear: "bersihkan",
|
|
4529
|
+
// padam is a remove alternative in the profile
|
|
4323
4530
|
close: "tutup",
|
|
4324
4531
|
open: "buka",
|
|
4325
|
-
select: "pilih"
|
|
4532
|
+
select: "pilih",
|
|
4533
|
+
socket: "soket"
|
|
4534
|
+
// derived from the ms profile (socket.primary); see generate-i18n-dictionaries
|
|
4326
4535
|
},
|
|
4327
4536
|
modifiers: {
|
|
4328
4537
|
to: "ke",
|
|
@@ -4493,10 +4702,14 @@ var tagalogDictionary = {
|
|
|
4493
4702
|
tell: "sabihin",
|
|
4494
4703
|
trigger: "palitawin",
|
|
4495
4704
|
send: "ipadala",
|
|
4496
|
-
take: "
|
|
4705
|
+
take: "kumuha",
|
|
4706
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4497
4707
|
put: "ilagay",
|
|
4498
4708
|
set: "itakda",
|
|
4499
|
-
get
|
|
4709
|
+
// Align with the semantic tl profile's `get` primary (`kunin`); the previous
|
|
4710
|
+
// `kuhanin` is the base of fetch's `kuhanin_mula`, so the transformed `get`
|
|
4711
|
+
// dropped (get-value parsed degenerate). Same dict↔profile alignment as id `toggle`.
|
|
4712
|
+
get: "kunin",
|
|
4500
4713
|
add: "idagdag",
|
|
4501
4714
|
remove: "alisin",
|
|
4502
4715
|
toggle: "palitan",
|
|
@@ -4520,7 +4733,7 @@ var tagalogDictionary = {
|
|
|
4520
4733
|
throw: "ihagis",
|
|
4521
4734
|
catch: "hulihin",
|
|
4522
4735
|
measure: "sukatin",
|
|
4523
|
-
transition: "
|
|
4736
|
+
transition: "lumipat",
|
|
4524
4737
|
increment: "dagdagan",
|
|
4525
4738
|
decrement: "bawasan",
|
|
4526
4739
|
default: "pamantayan",
|
|
@@ -4532,10 +4745,13 @@ var tagalogDictionary = {
|
|
|
4532
4745
|
beep: "tunog",
|
|
4533
4746
|
js: "js",
|
|
4534
4747
|
async: "sabay",
|
|
4535
|
-
render: "
|
|
4748
|
+
render: "irender",
|
|
4749
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4536
4750
|
swap: "palitan_pwesto",
|
|
4537
|
-
morph: "
|
|
4538
|
-
|
|
4751
|
+
morph: "baguhin",
|
|
4752
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4753
|
+
settle: "magpatahimik",
|
|
4754
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4539
4755
|
append: "idagdag_sa_dulo",
|
|
4540
4756
|
prepend: "idagdag_sa_simula",
|
|
4541
4757
|
exit: "lumabas",
|
|
@@ -4563,7 +4779,11 @@ var tagalogDictionary = {
|
|
|
4563
4779
|
as: "bilang",
|
|
4564
4780
|
by: "sa_pamamagitan_ng",
|
|
4565
4781
|
before: "bago",
|
|
4566
|
-
after:
|
|
4782
|
+
// `matapos` (not `pagkatapos`) for the positional "after": `pagkatapos` is
|
|
4783
|
+
// also Tagalog "then", so emitting it for the position modifier collides with
|
|
4784
|
+
// the sequence connector. `matapos` is the unambiguous positional form and
|
|
4785
|
+
// matches the semantic tl profile's `after`.
|
|
4786
|
+
after: "matapos",
|
|
4567
4787
|
over: "sa_ibabaw",
|
|
4568
4788
|
under: "sa_ilalim",
|
|
4569
4789
|
between: "sa_pagitan",
|
|
@@ -4723,6 +4943,8 @@ var he = {
|
|
|
4723
4943
|
beep: "\u05D1\u05D9\u05E4",
|
|
4724
4944
|
break: "\u05E9\u05D1\u05D5\u05E8",
|
|
4725
4945
|
call: "\u05E7\u05E8\u05D0",
|
|
4946
|
+
clear: "\u05E0\u05E7\u05D4",
|
|
4947
|
+
// profile's clear word — was untranslated (parsed as nothing)
|
|
4726
4948
|
continue: "\u05D4\u05DE\u05E9\u05DA",
|
|
4727
4949
|
copy: "\u05D4\u05E2\u05EA\u05E7",
|
|
4728
4950
|
decrement: "\u05D4\u05E7\u05D8\u05DF",
|
|
@@ -4735,6 +4957,7 @@ var he = {
|
|
|
4735
4957
|
halt: "\u05E2\u05E6\u05D5\u05E8",
|
|
4736
4958
|
hide: "\u05D4\u05E1\u05EA\u05E8",
|
|
4737
4959
|
if: "\u05D0\u05DD",
|
|
4960
|
+
unless: "\u05D0\u05DC\u05D0",
|
|
4738
4961
|
increment: "\u05D4\u05D2\u05D3\u05DC",
|
|
4739
4962
|
install: "\u05D4\u05EA\u05E7\u05DF",
|
|
4740
4963
|
js: "js",
|
|
@@ -4749,6 +4972,7 @@ var he = {
|
|
|
4749
4972
|
render: "\u05E8\u05E0\u05D3\u05E8",
|
|
4750
4973
|
repeat: "\u05D7\u05D6\u05D5\u05E8",
|
|
4751
4974
|
return: "\u05D4\u05D7\u05D6\u05E8",
|
|
4975
|
+
scroll: "\u05D2\u05DC\u05D5\u05DC",
|
|
4752
4976
|
send: "\u05E9\u05DC\u05D7",
|
|
4753
4977
|
set: "\u05E7\u05D1\u05E2",
|
|
4754
4978
|
settle: "\u05D4\u05EA\u05D9\u05D9\u05E6\u05D1",
|
|
@@ -4786,6 +5010,7 @@ var he = {
|
|
|
4786
5010
|
end: "\u05E1\u05D5\u05E3",
|
|
4787
5011
|
then: "\u05D0\u05D6",
|
|
4788
5012
|
live: "\u05D7\u05D9",
|
|
5013
|
+
bind: "\u05E7\u05E9\u05D5\u05E8",
|
|
4789
5014
|
changes: "\u05DE\u05E9\u05EA\u05E0\u05D4",
|
|
4790
5015
|
when: "\u05DB\u05D0\u05E9\u05E8",
|
|
4791
5016
|
where: "\u05D0\u05D9\u05E4\u05D4"
|
|
@@ -4804,7 +5029,9 @@ var he = {
|
|
|
4804
5029
|
your: "\u05E9\u05DC\u05DA"
|
|
4805
5030
|
},
|
|
4806
5031
|
attributes: {},
|
|
4807
|
-
expressions: {
|
|
5032
|
+
expressions: {
|
|
5033
|
+
last: "\u05D0\u05D7\u05E8\u05D5\u05DF"
|
|
5034
|
+
}
|
|
4808
5035
|
};
|
|
4809
5036
|
|
|
4810
5037
|
// src/dictionaries/derive.ts
|
|
@@ -4878,7 +5105,11 @@ var COMMAND_KEYWORDS = [
|
|
|
4878
5105
|
"init",
|
|
4879
5106
|
// Focus
|
|
4880
5107
|
"focus",
|
|
4881
|
-
"blur"
|
|
5108
|
+
"blur",
|
|
5109
|
+
// Streaming / concurrency (postdated the original list — keep in sync with profiles)
|
|
5110
|
+
"socket",
|
|
5111
|
+
"eventsource",
|
|
5112
|
+
"worker"
|
|
4882
5113
|
];
|
|
4883
5114
|
var MODIFIER_KEYWORDS = [
|
|
4884
5115
|
"to",
|