@lokascript/i18n 2.5.0 → 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 +3 -3
- package/dist/index.d.ts +3 -3
- 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
package/dist/plugins/webpack.cjs
CHANGED
|
@@ -63,6 +63,13 @@ var en = {
|
|
|
63
63
|
increment: "increment",
|
|
64
64
|
decrement: "decrement",
|
|
65
65
|
default: "default",
|
|
66
|
+
// Reactivity Commands
|
|
67
|
+
bind: "bind",
|
|
68
|
+
// Realtime / service-worker Commands
|
|
69
|
+
eventsource: "eventsource",
|
|
70
|
+
socket: "socket",
|
|
71
|
+
worker: "worker",
|
|
72
|
+
intercept: "intercept",
|
|
66
73
|
// Navigation Commands
|
|
67
74
|
go: "go",
|
|
68
75
|
pushUrl: "pushUrl",
|
|
@@ -297,7 +304,8 @@ var es = {
|
|
|
297
304
|
swap: "intercambiar",
|
|
298
305
|
morph: "transformar",
|
|
299
306
|
settle: "estabilizar",
|
|
300
|
-
append: "
|
|
307
|
+
append: "anexar",
|
|
308
|
+
// profile primary; 'añadir' is add's word (parsed as add)
|
|
301
309
|
exit: "salir",
|
|
302
310
|
install: "instalar",
|
|
303
311
|
breakpoint: "punto-interrupci\xF3n",
|
|
@@ -430,7 +438,7 @@ var es = {
|
|
|
430
438
|
prev: "ant",
|
|
431
439
|
at: "en",
|
|
432
440
|
random: "aleatorio",
|
|
433
|
-
closest: "
|
|
441
|
+
closest: "cercano",
|
|
434
442
|
parent: "padre",
|
|
435
443
|
children: "hijos",
|
|
436
444
|
within: "dentro",
|
|
@@ -464,9 +472,11 @@ var ko = {
|
|
|
464
472
|
hide: "\uC228\uAE30\uB2E4",
|
|
465
473
|
show: "\uBCF4\uC774\uB2E4",
|
|
466
474
|
if: "\uB9CC\uC57D",
|
|
467
|
-
unless: "\uC544\uB2C8\uBA74",
|
|
475
|
+
unless: "\uC544\uB2C8\uB77C\uBA74",
|
|
476
|
+
// distinct from else `아니면` (line ~131) — was a homonym
|
|
468
477
|
repeat: "\uBC18\uBCF5",
|
|
469
|
-
for: "\
|
|
478
|
+
for: "\uAC01\uAC01",
|
|
479
|
+
// profile's for word — 동안 is while (collision)
|
|
470
480
|
while: "\uB3D9\uC548",
|
|
471
481
|
until: "\uAE4C\uC9C0",
|
|
472
482
|
continue: "\uACC4\uC18D",
|
|
@@ -497,8 +507,12 @@ var ko = {
|
|
|
497
507
|
swap: "\uAD50\uD658",
|
|
498
508
|
morph: "\uBCC0\uD615",
|
|
499
509
|
settle: "\uC548\uC815",
|
|
500
|
-
append: "\
|
|
501
|
-
|
|
510
|
+
append: "\uB367\uBD99\uC774\uB2E4",
|
|
511
|
+
// profile primary; '추가' is add's word (parsed as add)
|
|
512
|
+
// 종료 → 나가기: realigned to the semantic profile primary (ko.ts `exit: 나가기`,
|
|
513
|
+
// whose comment already flags the 종료 end-collision). Rendered as 종료 it
|
|
514
|
+
// tokenized as a plain identifier, so a guard-clause `exit` never parsed.
|
|
515
|
+
exit: "\uB098\uAC00\uAE30",
|
|
502
516
|
install: "\uC124\uCE58",
|
|
503
517
|
breakpoint: "\uC911\uB2E8\uC810",
|
|
504
518
|
clear: "\uC9C0\uC6B0\uAE30",
|
|
@@ -506,7 +520,8 @@ var ko = {
|
|
|
506
520
|
open: "\uC5F4\uAE30",
|
|
507
521
|
select: "\uC120\uD0DD",
|
|
508
522
|
clone: "\uBCF5\uC81C",
|
|
509
|
-
prepend: "\uC55E\uC5D0\uCD94\uAC00"
|
|
523
|
+
prepend: "\uC55E\uC5D0\uCD94\uAC00",
|
|
524
|
+
socket: "\uC18C\uCF13"
|
|
510
525
|
},
|
|
511
526
|
modifiers: {
|
|
512
527
|
to: "\uC5D0",
|
|
@@ -573,6 +588,7 @@ var ko = {
|
|
|
573
588
|
otherwise: "\uADF8\uB807\uC9C0\uC54A\uC73C\uBA74",
|
|
574
589
|
end: "\uB05D",
|
|
575
590
|
live: "\uB77C\uC774\uBE0C",
|
|
591
|
+
bind: "\uBC14\uC778\uB4DC",
|
|
576
592
|
changes: "\uBCC0\uACBD\uB418\uBA74"
|
|
577
593
|
},
|
|
578
594
|
temporal: {
|
|
@@ -654,7 +670,11 @@ var zh = {
|
|
|
654
670
|
tell: "\u544A\u8BC9",
|
|
655
671
|
trigger: "\u89E6\u53D1",
|
|
656
672
|
send: "\u53D1\u9001",
|
|
657
|
-
take
|
|
673
|
+
// `拿取` (the semantic zh profile's take primary), not `获取` — `获取` is the
|
|
674
|
+
// profile's GET primary, so emitting it for take made `take …` parse as get
|
|
675
|
+
// (take-class-from-siblings: phantom get, take dropped). Exposed by the get-zh-ba
|
|
676
|
+
// pattern; same dict↔profile homonym family as pl get/fetch.
|
|
677
|
+
take: "\u62FF\u53D6",
|
|
658
678
|
put: "\u653E\u7F6E",
|
|
659
679
|
set: "\u8BBE\u7F6E",
|
|
660
680
|
get: "\u83B7\u5F97",
|
|
@@ -673,7 +693,10 @@ var zh = {
|
|
|
673
693
|
break: "\u4E2D\u65AD",
|
|
674
694
|
halt: "\u505C\u6B62",
|
|
675
695
|
wait: "\u7B49\u5F85",
|
|
676
|
-
|
|
696
|
+
// 抓取 (zhuāqǔ, "grab/scrape") is the semantic zh profile's `fetch` primary;
|
|
697
|
+
// 获取 (huòqǔ) is its `get` primary, so emitting 获取 here made the semantic
|
|
698
|
+
// parser read a transformed `fetch` as `get`. See ZH_BLOCK_BODY_SCOPE.md #3.
|
|
699
|
+
fetch: "\u6293\u53D6",
|
|
677
700
|
call: "\u8C03\u7528",
|
|
678
701
|
return: "\u8FD4\u56DE",
|
|
679
702
|
make: "\u5236\u4F5C",
|
|
@@ -773,6 +796,7 @@ var zh = {
|
|
|
773
796
|
otherwise: "\u8981\u4E0D\u7136",
|
|
774
797
|
end: "\u7ED3\u675F",
|
|
775
798
|
live: "\u5B9E\u65F6",
|
|
799
|
+
bind: "\u7ED1\u5B9A",
|
|
776
800
|
changes: "\u6539\u53D8\u65F6"
|
|
777
801
|
},
|
|
778
802
|
temporal: {
|
|
@@ -861,6 +885,9 @@ var fr = {
|
|
|
861
885
|
add: "ajouter",
|
|
862
886
|
remove: "supprimer",
|
|
863
887
|
toggle: "basculer",
|
|
888
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
889
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
890
|
+
blur: "d\xE9focaliser",
|
|
864
891
|
hide: "cacher",
|
|
865
892
|
show: "montrer",
|
|
866
893
|
if: "si",
|
|
@@ -897,7 +924,8 @@ var fr = {
|
|
|
897
924
|
swap: "\xE9changer",
|
|
898
925
|
morph: "transformer",
|
|
899
926
|
settle: "stabiliser",
|
|
900
|
-
append: "
|
|
927
|
+
append: "annexer",
|
|
928
|
+
// profile primary; 'ajouter' is add's word (parsed as add)
|
|
901
929
|
exit: "sortir",
|
|
902
930
|
install: "installer",
|
|
903
931
|
breakpoint: "point-arr\xEAt",
|
|
@@ -906,7 +934,8 @@ var fr = {
|
|
|
906
934
|
open: "ouvrir",
|
|
907
935
|
select: "s\xE9lectionner",
|
|
908
936
|
clone: "cloner",
|
|
909
|
-
prepend: "pr\xE9fixer"
|
|
937
|
+
prepend: "pr\xE9fixer",
|
|
938
|
+
focus: "focaliser"
|
|
910
939
|
},
|
|
911
940
|
modifiers: {
|
|
912
941
|
to: "\xE0",
|
|
@@ -1030,7 +1059,7 @@ var fr = {
|
|
|
1030
1059
|
prev: "pr\xE9c",
|
|
1031
1060
|
at: "\xE0",
|
|
1032
1061
|
random: "al\xE9atoire",
|
|
1033
|
-
closest: "
|
|
1062
|
+
closest: "proche",
|
|
1034
1063
|
parent: "parent",
|
|
1035
1064
|
children: "enfants",
|
|
1036
1065
|
within: "dans",
|
|
@@ -1061,9 +1090,17 @@ var de = {
|
|
|
1061
1090
|
add: "hinzuf\xFCgen",
|
|
1062
1091
|
remove: "entfernen",
|
|
1063
1092
|
toggle: "umschalten",
|
|
1093
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
1094
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
1095
|
+
blur: "defokussieren",
|
|
1064
1096
|
hide: "verstecken",
|
|
1065
1097
|
show: "zeigen",
|
|
1066
|
-
if
|
|
1098
|
+
// Align with the semantic German profile's `if` primary (`falls`). The previous
|
|
1099
|
+
// `wenn` collides with the profile's `when` keyword (German `wenn` = both
|
|
1100
|
+
// "if" and "when"), so a transformed `if` resolved to `when` and the conditional
|
|
1101
|
+
// wrapper never formed (`if`/`put` dropped). Same dict↔profile alignment as id
|
|
1102
|
+
// `toggle` / get-value. `when` is unaffected (separate dict entry).
|
|
1103
|
+
if: "falls",
|
|
1067
1104
|
unless: "wennnicht",
|
|
1068
1105
|
repeat: "wiederholen",
|
|
1069
1106
|
for: "f\xFCr",
|
|
@@ -1073,7 +1110,7 @@ var de = {
|
|
|
1073
1110
|
break: "unterbrechen",
|
|
1074
1111
|
halt: "anhalten",
|
|
1075
1112
|
wait: "warten",
|
|
1076
|
-
fetch: "
|
|
1113
|
+
fetch: "abrufen",
|
|
1077
1114
|
call: "aufrufen",
|
|
1078
1115
|
return: "zur\xFCckgeben",
|
|
1079
1116
|
make: "erstellen",
|
|
@@ -1101,12 +1138,14 @@ var de = {
|
|
|
1101
1138
|
exit: "beenden",
|
|
1102
1139
|
install: "installieren",
|
|
1103
1140
|
breakpoint: "haltepunkt",
|
|
1104
|
-
clear: "
|
|
1141
|
+
clear: "bereinigen",
|
|
1142
|
+
// löschen is a remove alternative in the profile
|
|
1105
1143
|
close: "schlie\xDFen",
|
|
1106
1144
|
open: "\xF6ffnen",
|
|
1107
1145
|
select: "ausw\xE4hlen",
|
|
1108
1146
|
clone: "klonen",
|
|
1109
|
-
prepend: "voranstellen"
|
|
1147
|
+
prepend: "voranstellen",
|
|
1148
|
+
focus: "fokussieren"
|
|
1110
1149
|
},
|
|
1111
1150
|
modifiers: {
|
|
1112
1151
|
to: "zu",
|
|
@@ -1230,7 +1269,13 @@ var de = {
|
|
|
1230
1269
|
prev: "vorh",
|
|
1231
1270
|
at: "bei",
|
|
1232
1271
|
random: "zuf\xE4llig",
|
|
1233
|
-
|
|
1272
|
+
// `nächste` already serves `next` (line above). German `nächste` is
|
|
1273
|
+
// genuinely ambiguous (next/nearest), so emitting it for `closest` too
|
|
1274
|
+
// collided: the semantic tokenizer normalizes `nächste`→next (a deliberate
|
|
1275
|
+
// last-wins choice — see german.ts), and a closest reading is impossible to
|
|
1276
|
+
// recover. Use the unambiguous `nächstgelegene` ("nearest-located") for
|
|
1277
|
+
// closest so the two readings stay distinct end-to-end.
|
|
1278
|
+
closest: "n\xE4chstgelegene",
|
|
1234
1279
|
parent: "elternteil",
|
|
1235
1280
|
children: "kinder",
|
|
1236
1281
|
within: "innerhalb",
|
|
@@ -1264,7 +1309,8 @@ var ja = {
|
|
|
1264
1309
|
hide: "\u96A0\u3059",
|
|
1265
1310
|
show: "\u8868\u793A",
|
|
1266
1311
|
if: "\u3082\u3057",
|
|
1267
|
-
unless: "\
|
|
1312
|
+
unless: "\u306A\u3044\u9650\u308A",
|
|
1313
|
+
// not でなければ — leading で particle shatters the marker
|
|
1268
1314
|
repeat: "\u7E70\u308A\u8FD4\u3057",
|
|
1269
1315
|
for: "\u305F\u3081\u306B",
|
|
1270
1316
|
while: "\u306E\u9593",
|
|
@@ -1273,7 +1319,7 @@ var ja = {
|
|
|
1273
1319
|
break: "\u4E2D\u65AD",
|
|
1274
1320
|
halt: "\u505C\u6B62",
|
|
1275
1321
|
wait: "\u5F85\u3064",
|
|
1276
|
-
fetch: "\
|
|
1322
|
+
fetch: "\u30D5\u30A7\u30C3\u30C1",
|
|
1277
1323
|
call: "\u547C\u3073\u51FA\u3057",
|
|
1278
1324
|
return: "\u623B\u308B",
|
|
1279
1325
|
make: "\u4F5C\u308B",
|
|
@@ -1298,7 +1344,11 @@ var ja = {
|
|
|
1298
1344
|
morph: "\u5909\u5F62",
|
|
1299
1345
|
settle: "\u5B89\u5B9A",
|
|
1300
1346
|
append: "\u672B\u5C3E\u8FFD\u52A0",
|
|
1301
|
-
exit:
|
|
1347
|
+
// 終了 → 退出: realigned to the semantic profile primary (ja.ts `exit: 退出`).
|
|
1348
|
+
// 終了 was the historic exit/end collision word (see isEndKeyword's ja note);
|
|
1349
|
+
// rendered as 終了 it tokenized as a plain identifier, so a guard-clause
|
|
1350
|
+
// `exit` inside `if … end` never parsed (behavior-sortable ja).
|
|
1351
|
+
exit: "\u9000\u51FA",
|
|
1302
1352
|
install: "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",
|
|
1303
1353
|
breakpoint: "\u30D6\u30EC\u30FC\u30AF\u30DD\u30A4\u30F3\u30C8",
|
|
1304
1354
|
clear: "\u30AF\u30EA\u30A2",
|
|
@@ -1306,7 +1356,8 @@ var ja = {
|
|
|
1306
1356
|
open: "\u958B\u304F",
|
|
1307
1357
|
select: "\u9078\u629E",
|
|
1308
1358
|
clone: "\u8907\u88FD",
|
|
1309
|
-
prepend: "\u5148\u982D\u8FFD\u52A0"
|
|
1359
|
+
prepend: "\u5148\u982D\u8FFD\u52A0",
|
|
1360
|
+
socket: "\u30BD\u30B1\u30C3\u30C8"
|
|
1310
1361
|
},
|
|
1311
1362
|
modifiers: {
|
|
1312
1363
|
to: "\u306B",
|
|
@@ -1355,7 +1406,7 @@ var ja = {
|
|
|
1355
1406
|
touchcancel: "\u30BF\u30C3\u30C1\u30AD\u30E3\u30F3\u30BB\u30EB"
|
|
1356
1407
|
},
|
|
1357
1408
|
logical: {
|
|
1358
|
-
when: "\
|
|
1409
|
+
when: "\u6642",
|
|
1359
1410
|
where: "\u3069\u3053",
|
|
1360
1411
|
and: "\u305D\u3057\u3066",
|
|
1361
1412
|
or: "\u307E\u305F\u306F",
|
|
@@ -1373,6 +1424,7 @@ var ja = {
|
|
|
1373
1424
|
otherwise: "\u305D\u3046\u3067\u306A\u3051\u308C\u3070",
|
|
1374
1425
|
end: "\u7D42\u308F\u308A",
|
|
1375
1426
|
live: "\u30E9\u30A4\u30D6",
|
|
1427
|
+
bind: "\u30D0\u30A4\u30F3\u30C9",
|
|
1376
1428
|
changes: "\u5909\u308F\u3063\u305F\u3089"
|
|
1377
1429
|
},
|
|
1378
1430
|
temporal: {
|
|
@@ -1464,7 +1516,10 @@ var ar = {
|
|
|
1464
1516
|
hide: "\u0627\u062E\u0641",
|
|
1465
1517
|
show: "\u0627\u0638\u0647\u0631",
|
|
1466
1518
|
if: "\u0625\u0630\u0627",
|
|
1467
|
-
|
|
1519
|
+
// Single-token form: the semantic ar tokenizer splits the two-word `إلا إذا`
|
|
1520
|
+
// into `إلا` + `إذا`(if), which derails the `unless` block. `إلا` alone is the
|
|
1521
|
+
// conventional Arabic shorthand and matches the ar profile's unless keyword.
|
|
1522
|
+
unless: "\u0625\u0644\u0627",
|
|
1468
1523
|
repeat: "\u0643\u0631\u0631",
|
|
1469
1524
|
for: "\u0644\u0643\u0644",
|
|
1470
1525
|
while: "\u0628\u064A\u0646\u0645\u0627",
|
|
@@ -1494,19 +1549,22 @@ var ar = {
|
|
|
1494
1549
|
js: "\u062C\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062A",
|
|
1495
1550
|
async: "\u0645\u062A\u0632\u0627\u0645\u0646",
|
|
1496
1551
|
render: "\u0627\u0631\u0633\u0645",
|
|
1497
|
-
swap: "\u0628\u062F\
|
|
1552
|
+
swap: "\u0627\u0633\u062A\u0628\u062F\u0644",
|
|
1553
|
+
// profile primary; 'بدّل' is toggle's word (parsed as toggle)
|
|
1498
1554
|
morph: "\u062D\u0648\u0651\u0644",
|
|
1499
1555
|
settle: "\u0627\u0633\u062A\u0642\u0631",
|
|
1500
1556
|
append: "\u0623\u0644\u062D\u0642",
|
|
1501
1557
|
exit: "\u0627\u062E\u0631\u062C",
|
|
1502
1558
|
install: "\u062B\u0628\u0651\u062A",
|
|
1503
1559
|
breakpoint: "\u0646\u0642\u0637\u0629-\u062A\u0648\u0642\u0641",
|
|
1504
|
-
clear: "\
|
|
1560
|
+
clear: "\u0646\u0638\u0651\u0641",
|
|
1561
|
+
// امسح is a remove alternative in the profile
|
|
1505
1562
|
close: "\u0623\u063A\u0644\u0642",
|
|
1506
1563
|
open: "\u0627\u0641\u062A\u062D",
|
|
1507
1564
|
select: "\u0627\u062E\u062A\u0631",
|
|
1508
1565
|
clone: "\u0627\u0633\u062A\u0646\u0633\u062E",
|
|
1509
|
-
prepend: "\u0633\u0628\u0642"
|
|
1566
|
+
prepend: "\u0633\u0628\u0642",
|
|
1567
|
+
socket: "\u0645\u0642\u0628\u0633"
|
|
1510
1568
|
},
|
|
1511
1569
|
modifiers: {
|
|
1512
1570
|
to: "\u0625\u0644\u0649",
|
|
@@ -1573,6 +1631,7 @@ var ar = {
|
|
|
1573
1631
|
otherwise: "\u062E\u0644\u0627\u0641 \u0630\u0644\u0643",
|
|
1574
1632
|
end: "\u0627\u0644\u0646\u0647\u0627\u064A\u0629",
|
|
1575
1633
|
live: "\u062D\u064A",
|
|
1634
|
+
bind: "\u0627\u0631\u0628\u0637",
|
|
1576
1635
|
changes: "\u064A\u062A\u063A\u064A\u0631"
|
|
1577
1636
|
},
|
|
1578
1637
|
temporal: {
|
|
@@ -1654,7 +1713,8 @@ var tr = {
|
|
|
1654
1713
|
tell: "s\xF6yle",
|
|
1655
1714
|
trigger: "tetikle",
|
|
1656
1715
|
send: "g\xF6nder",
|
|
1657
|
-
take: "
|
|
1716
|
+
take: "tut",
|
|
1717
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1658
1718
|
put: "koy",
|
|
1659
1719
|
set: "ayarla",
|
|
1660
1720
|
get: "al",
|
|
@@ -1667,7 +1727,11 @@ var tr = {
|
|
|
1667
1727
|
unless: "de\u011Filse",
|
|
1668
1728
|
repeat: "tekrarla",
|
|
1669
1729
|
for: "i\xE7in",
|
|
1670
|
-
while
|
|
1730
|
+
// `süresince` (the semantic tr profile's while primary), not `iken`: `iken`
|
|
1731
|
+
// is the profile's WHEN primary (logical.when below also emits it), so a
|
|
1732
|
+
// fronted repeat-while head tokenized as `when` and the condition dropped
|
|
1733
|
+
// wholesale. Same dict↔profile homonym disambiguation as pl get/pobierz.
|
|
1734
|
+
while: "s\xFCresince",
|
|
1671
1735
|
until: "kadar",
|
|
1672
1736
|
continue: "devam",
|
|
1673
1737
|
break: "dur",
|
|
@@ -1697,7 +1761,8 @@ var tr = {
|
|
|
1697
1761
|
swap: "takas",
|
|
1698
1762
|
morph: "d\xF6n\xFC\u015Ft\xFCr",
|
|
1699
1763
|
settle: "sabitlen",
|
|
1700
|
-
append: "
|
|
1764
|
+
append: "ili\u015Ftir",
|
|
1765
|
+
// profile primary; 'ekle' is add's word (parsed as add)
|
|
1701
1766
|
exit: "\xE7\u0131k",
|
|
1702
1767
|
install: "kur",
|
|
1703
1768
|
breakpoint: "kesme-noktas\u0131",
|
|
@@ -1706,7 +1771,8 @@ var tr = {
|
|
|
1706
1771
|
open: "a\xE7",
|
|
1707
1772
|
select: "se\xE7",
|
|
1708
1773
|
clone: "klonla",
|
|
1709
|
-
prepend: "ba\u015F\u0131naekle"
|
|
1774
|
+
prepend: "ba\u015F\u0131naekle",
|
|
1775
|
+
socket: "soket"
|
|
1710
1776
|
},
|
|
1711
1777
|
modifiers: {
|
|
1712
1778
|
to: "e",
|
|
@@ -1729,8 +1795,11 @@ var tr = {
|
|
|
1729
1795
|
events: {
|
|
1730
1796
|
click: "t\u0131klama",
|
|
1731
1797
|
dblclick: "\xE7ift_t\u0131klama",
|
|
1732
|
-
|
|
1733
|
-
|
|
1798
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, breaking event
|
|
1799
|
+
// recognition (mousedown → "bas" / mouseup mis-captured). Mirrors the #535
|
|
1800
|
+
// ru/uk fuse + #510 resize fix.
|
|
1801
|
+
mousedown: "farebas",
|
|
1802
|
+
mouseup: "fareb\u0131rak",
|
|
1734
1803
|
mouseenter: "fare_gir",
|
|
1735
1804
|
mouseleave: "fare_\xE7\u0131k",
|
|
1736
1805
|
mouseover: "fare_\xFCst\xFC",
|
|
@@ -1747,7 +1816,7 @@ var tr = {
|
|
|
1747
1816
|
reset: "s\u0131f\u0131rla",
|
|
1748
1817
|
load: "y\xFCkle",
|
|
1749
1818
|
unload: "y\xFCkle_kald\u0131r",
|
|
1750
|
-
resize: "
|
|
1819
|
+
resize: "boyutland\u0131rma",
|
|
1751
1820
|
scroll: "kayd\u0131r",
|
|
1752
1821
|
touchstart: "dokunma_ba\u015Fla",
|
|
1753
1822
|
touchend: "dokunma_bitir",
|
|
@@ -1768,7 +1837,7 @@ var tr = {
|
|
|
1768
1837
|
equals: "e\u015Fittir",
|
|
1769
1838
|
has: "var",
|
|
1770
1839
|
have: "var",
|
|
1771
|
-
then: "
|
|
1840
|
+
then: "ard\u0131ndan",
|
|
1772
1841
|
else: "yoksa",
|
|
1773
1842
|
otherwise: "aksi_halde",
|
|
1774
1843
|
end: "son",
|
|
@@ -1824,13 +1893,18 @@ var tr = {
|
|
|
1824
1893
|
},
|
|
1825
1894
|
expressions: {
|
|
1826
1895
|
first: "ilk",
|
|
1827
|
-
|
|
1896
|
+
// 'son' is also the END keyword emission (block terminator), and the
|
|
1897
|
+
// parser's end-recognizers match it by value — so a positional `last`
|
|
1898
|
+
// emission of 'son' terminated the enclosing block mid-condition
|
|
1899
|
+
// (focus-trap's `eşleşir son <button/>` dropped the branch body; the sw
|
|
1900
|
+
// mwisho class). 'sonuncu' ("the last one") is unambiguous.
|
|
1901
|
+
last: "sonuncu",
|
|
1828
1902
|
next: "sonraki",
|
|
1829
1903
|
previous: "\xF6nceki",
|
|
1830
1904
|
prev: "\xF6nc",
|
|
1831
1905
|
at: "de",
|
|
1832
1906
|
random: "rastgele",
|
|
1833
|
-
closest: "
|
|
1907
|
+
closest: "enyak\u0131n",
|
|
1834
1908
|
parent: "ebeveyn",
|
|
1835
1909
|
children: "\xE7ocuklar",
|
|
1836
1910
|
within: "i\xE7inde",
|
|
@@ -1860,7 +1934,7 @@ var id = {
|
|
|
1860
1934
|
get: "dapatkan",
|
|
1861
1935
|
add: "tambah",
|
|
1862
1936
|
remove: "hapus",
|
|
1863
|
-
toggle: "
|
|
1937
|
+
toggle: "alihkan",
|
|
1864
1938
|
hide: "sembunyikan",
|
|
1865
1939
|
show: "tampilkan",
|
|
1866
1940
|
if: "jika",
|
|
@@ -1873,7 +1947,10 @@ var id = {
|
|
|
1873
1947
|
break: "hentikan",
|
|
1874
1948
|
halt: "berhenti",
|
|
1875
1949
|
wait: "tunggu",
|
|
1876
|
-
fetch
|
|
1950
|
+
// profile primary; 'ambil' is take's word — emitting it for fetch made every
|
|
1951
|
+
// fetch parse as take once the fused take-event pattern came alive (the de
|
|
1952
|
+
// holen/abrufen bug class)
|
|
1953
|
+
fetch: "muat",
|
|
1877
1954
|
call: "panggil",
|
|
1878
1955
|
return: "kembali",
|
|
1879
1956
|
make: "buat",
|
|
@@ -1882,7 +1959,11 @@ var id = {
|
|
|
1882
1959
|
catch: "tangkap",
|
|
1883
1960
|
measure: "ukur",
|
|
1884
1961
|
transition: "transisi",
|
|
1885
|
-
|
|
1962
|
+
// naikkan (raise), not tambahkan — tambahkan is the semantic profile's
|
|
1963
|
+
// `add` alternative, so emitting it made increment-counter parse as ADD
|
|
1964
|
+
// (the #373 collision family). naikkan is the profile's increment
|
|
1965
|
+
// alternative, pairing naturally with the decrement side.
|
|
1966
|
+
increment: "naikkan",
|
|
1886
1967
|
decrement: "kurangi",
|
|
1887
1968
|
default: "bawaan",
|
|
1888
1969
|
go: "pergi",
|
|
@@ -1893,15 +1974,20 @@ var id = {
|
|
|
1893
1974
|
beep: "bunyi",
|
|
1894
1975
|
js: "js",
|
|
1895
1976
|
async: "asinkron",
|
|
1896
|
-
render: "
|
|
1977
|
+
render: "olah",
|
|
1978
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1897
1979
|
swap: "tukar",
|
|
1898
|
-
morph: "
|
|
1899
|
-
|
|
1900
|
-
|
|
1980
|
+
morph: "ubah",
|
|
1981
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1982
|
+
settle: "stabilkan",
|
|
1983
|
+
// auditor: dict emitted a word the profile reads differently
|
|
1984
|
+
append: "sisipkan",
|
|
1985
|
+
// profile primary; 'tambah_akhir' splits and is unrecognized
|
|
1901
1986
|
exit: "keluar",
|
|
1902
1987
|
install: "pasang",
|
|
1903
1988
|
breakpoint: "titik-henti",
|
|
1904
|
-
clear: "
|
|
1989
|
+
clear: "bersihkan",
|
|
1990
|
+
// hapus is the remove PRIMARY in the profile
|
|
1905
1991
|
close: "tutup",
|
|
1906
1992
|
open: "buka",
|
|
1907
1993
|
select: "pilih",
|
|
@@ -2054,20 +2140,34 @@ var qu = {
|
|
|
2054
2140
|
tell: "niy",
|
|
2055
2141
|
trigger: "kichay",
|
|
2056
2142
|
send: "kachay",
|
|
2057
|
-
take: "
|
|
2143
|
+
take: "hapiy",
|
|
2144
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2058
2145
|
put: "churay",
|
|
2059
|
-
set
|
|
2060
|
-
|
|
2146
|
+
// churay is the semantic qu profile's `put` primary; `set` is churanay. Emitting
|
|
2147
|
+
// churay for set made the semantic parser read a transformed `set` as `put`.
|
|
2148
|
+
// See ZH_BLOCK_BODY_SCOPE.md (#2 sweep — keyword realignment, cf. zh fetch).
|
|
2149
|
+
set: "churanay",
|
|
2150
|
+
// Align with the semantic quechua profile's `get` primary (`taripay`); the
|
|
2151
|
+
// previous `chaskiy` had no profile entry, so the transformed `get` dropped
|
|
2152
|
+
// (get-value parsed degenerate). Same dict↔profile alignment as id `toggle`.
|
|
2153
|
+
get: "taripay",
|
|
2061
2154
|
add: "yapay",
|
|
2062
2155
|
remove: "qichuy",
|
|
2063
2156
|
toggle: "tikray",
|
|
2064
2157
|
hide: "pakay",
|
|
2065
2158
|
show: "rikuchiy",
|
|
2066
2159
|
if: "sichus",
|
|
2067
|
-
unless: "
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2160
|
+
unless: "mana sichus",
|
|
2161
|
+
// spaced phrase ("if not"); `_` form split to `mana`+`sichus`(=if) at parse time
|
|
2162
|
+
repeat: "kutipay",
|
|
2163
|
+
for: "sapankaq",
|
|
2164
|
+
// profile's for word — rayku doubles as `by`
|
|
2165
|
+
// `kaykamaqa` (the semantic qu profile's while primary), not `kay_kaq`: the
|
|
2166
|
+
// `_` form is unknown to the profile (and `_` words split at parse time, cf.
|
|
2167
|
+
// qhipaman_yapay), so the fronted repeat-while head never formed a `while`
|
|
2168
|
+
// node — the condition dropped wholesale. Same dict↔profile alignment as
|
|
2169
|
+
// vi render / de abrufen.
|
|
2170
|
+
while: "kaykamaqa",
|
|
2071
2171
|
until: "hayk_akama",
|
|
2072
2172
|
continue: "purichiy",
|
|
2073
2173
|
break: "p_akiy",
|
|
@@ -2077,12 +2177,18 @@ var qu = {
|
|
|
2077
2177
|
call: "qayay",
|
|
2078
2178
|
return: "kutimuy",
|
|
2079
2179
|
make: "ruray",
|
|
2080
|
-
log
|
|
2180
|
+
// qillqay is the semantic qu profile's `copy` primary; `log` is qillqakuy.
|
|
2181
|
+
// Emitting qillqay for log made the parser read every transformed log as
|
|
2182
|
+
// copy (log-value/log-element/get-value lossy) — same realign as set above.
|
|
2183
|
+
log: "qillqakuy",
|
|
2081
2184
|
throw: "wikchuy",
|
|
2082
2185
|
catch: "hapsiy",
|
|
2083
2186
|
measure: "tupuy",
|
|
2084
|
-
|
|
2085
|
-
|
|
2187
|
+
// pasay, not tikray: the semantic qu profile's toggle keyword is
|
|
2188
|
+
// t'ikray/tikray, so a tikray render collided with toggle and the
|
|
2189
|
+
// transition command never anchored (sw kama precedent, #569).
|
|
2190
|
+
transition: "pasay",
|
|
2191
|
+
increment: "yapachiy",
|
|
2086
2192
|
decrement: "pisiyachiy",
|
|
2087
2193
|
default: "\xF1awpaq_kaq",
|
|
2088
2194
|
go: "riy",
|
|
@@ -2093,20 +2199,26 @@ var qu = {
|
|
|
2093
2199
|
beep: "waqay",
|
|
2094
2200
|
js: "js",
|
|
2095
2201
|
async: "mana_suyaspa",
|
|
2096
|
-
render: "
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2202
|
+
render: "rikurichiy",
|
|
2203
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2204
|
+
swap: "t'inkuy",
|
|
2205
|
+
// profile primary; 'rantin_tikray' splits, 'tikray' is toggle's word
|
|
2206
|
+
morph: "tukunay",
|
|
2207
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2208
|
+
settle: "tiyakuy",
|
|
2209
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2210
|
+
append: "qatichiy",
|
|
2211
|
+
// profile's append primary (single token); `qhipaman_yapay` `_`-split to qhipaman+yapay(=add) at parse time
|
|
2101
2212
|
exit: "lluqsiy",
|
|
2102
|
-
install: "
|
|
2213
|
+
install: "tarpuy",
|
|
2103
2214
|
breakpoint: "sayachinay",
|
|
2104
2215
|
clear: "pichay",
|
|
2105
2216
|
close: "wichqay",
|
|
2106
2217
|
open: "kichay",
|
|
2107
2218
|
select: "akllay",
|
|
2108
2219
|
clone: "kikinchay",
|
|
2109
|
-
prepend: "\xF1awpachiy"
|
|
2220
|
+
prepend: "\xF1awpachiy",
|
|
2221
|
+
socket: "tinkina"
|
|
2110
2222
|
},
|
|
2111
2223
|
modifiers: {
|
|
2112
2224
|
to: "man",
|
|
@@ -2129,8 +2241,10 @@ var qu = {
|
|
|
2129
2241
|
events: {
|
|
2130
2242
|
click: "\xF1itiy",
|
|
2131
2243
|
dblclick: "iskay_\xF1itiy",
|
|
2132
|
-
|
|
2133
|
-
|
|
2244
|
+
// Fused (no `_`): the semantic tokenizer splits on `_` — and `rat_ñitiy` then
|
|
2245
|
+
// mis-captured as the `click` event (ñitiy→click). Mirrors the #535 ru/uk fuse.
|
|
2246
|
+
mousedown: "rat\xF1itiy",
|
|
2247
|
+
mouseup: "rathuqariy",
|
|
2134
2248
|
mouseenter: "rat_yaykuy",
|
|
2135
2249
|
mouseleave: "rat_lluqsiy",
|
|
2136
2250
|
mouseover: "rat_hawapi",
|
|
@@ -2169,7 +2283,11 @@ var qu = {
|
|
|
2169
2283
|
has: "kachkan",
|
|
2170
2284
|
have: "kachkani",
|
|
2171
2285
|
then: "chayqa",
|
|
2172
|
-
else
|
|
2286
|
+
// Align to the semantic profile's else word `manachus`. The old `mana_chayqa`
|
|
2287
|
+
// tokenized as `mana`(false) + `_` + `chayqa`(then) — no else keyword formed,
|
|
2288
|
+
// so qu conditionals never split their else branch. `manachus` is a single
|
|
2289
|
+
// token the profile-derived keyword map reads as `else` (dict↔profile align).
|
|
2290
|
+
else: "manachus",
|
|
2173
2291
|
otherwise: "huk_kaqpi",
|
|
2174
2292
|
end: "tukuy",
|
|
2175
2293
|
live: "kawsay",
|
|
@@ -2192,7 +2310,7 @@ var qu = {
|
|
|
2192
2310
|
values: {
|
|
2193
2311
|
true: "cheqaq",
|
|
2194
2312
|
false: "llulla",
|
|
2195
|
-
null: "
|
|
2313
|
+
null: "chusaq",
|
|
2196
2314
|
undefined: "mana_riqsisqa",
|
|
2197
2315
|
it: "chay",
|
|
2198
2316
|
its: "chaypaq",
|
|
@@ -2230,12 +2348,12 @@ var qu = {
|
|
|
2230
2348
|
prev: "\xF1awpaq",
|
|
2231
2349
|
at: "pi",
|
|
2232
2350
|
random: "imaymanata",
|
|
2233
|
-
closest: "
|
|
2351
|
+
closest: "kaylla",
|
|
2234
2352
|
parent: "mama_tayta",
|
|
2235
2353
|
children: "wawakuna",
|
|
2236
2354
|
within: "ukupi",
|
|
2237
2355
|
no: "mana_kanchu",
|
|
2238
|
-
empty: "
|
|
2356
|
+
empty: "chusaq",
|
|
2239
2357
|
some: "wakin",
|
|
2240
2358
|
"starts with": "qallarisqa wan",
|
|
2241
2359
|
"ends with": "tukusqa wan",
|
|
@@ -2256,11 +2374,17 @@ var sw = {
|
|
|
2256
2374
|
send: "tuma",
|
|
2257
2375
|
take: "chukua",
|
|
2258
2376
|
put: "weka",
|
|
2259
|
-
set
|
|
2377
|
+
// weka is the semantic sw profile's `put` primary; `set` is seti. Emitting weka
|
|
2378
|
+
// for set made the semantic parser read a transformed `set` as `put`.
|
|
2379
|
+
// See ZH_BLOCK_BODY_SCOPE.md (#2 sweep — keyword realignment, cf. zh fetch).
|
|
2380
|
+
set: "seti",
|
|
2260
2381
|
get: "pata",
|
|
2261
2382
|
add: "ongeza",
|
|
2262
2383
|
remove: "ondoa",
|
|
2263
2384
|
toggle: "badilisha",
|
|
2385
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
2386
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
2387
|
+
blur: "blur",
|
|
2264
2388
|
hide: "ficha",
|
|
2265
2389
|
show: "onyesha",
|
|
2266
2390
|
if: "kama",
|
|
@@ -2276,13 +2400,14 @@ var sw = {
|
|
|
2276
2400
|
fetch: "leta",
|
|
2277
2401
|
call: "ita",
|
|
2278
2402
|
return: "rudi",
|
|
2279
|
-
make: "
|
|
2403
|
+
make: "tengeneza",
|
|
2404
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2280
2405
|
log: "andika",
|
|
2281
2406
|
throw: "tupa",
|
|
2282
2407
|
catch: "shika",
|
|
2283
2408
|
measure: "pima",
|
|
2284
2409
|
transition: "mpito",
|
|
2285
|
-
increment: "
|
|
2410
|
+
increment: "ongezeko",
|
|
2286
2411
|
decrement: "punguza",
|
|
2287
2412
|
default: "msingi",
|
|
2288
2413
|
go: "nenda",
|
|
@@ -2295,18 +2420,23 @@ var sw = {
|
|
|
2295
2420
|
async: "sainkroni",
|
|
2296
2421
|
render: "chora",
|
|
2297
2422
|
swap: "badilishana",
|
|
2298
|
-
morph: "
|
|
2423
|
+
morph: "geuza",
|
|
2424
|
+
// auditor: dict emitted a word the profile reads differently
|
|
2299
2425
|
settle: "tulia",
|
|
2300
|
-
append: "
|
|
2426
|
+
append: "ambatanisha",
|
|
2427
|
+
// profile primary; 'ongezaMwisho' is unrecognized
|
|
2301
2428
|
exit: "toka",
|
|
2302
2429
|
install: "sakinisha",
|
|
2303
2430
|
breakpoint: "nukta-simama",
|
|
2304
|
-
clear: "
|
|
2431
|
+
clear: "safisha",
|
|
2432
|
+
// futa is a remove alternative in the profile
|
|
2305
2433
|
close: "funga",
|
|
2306
2434
|
open: "fungua",
|
|
2307
2435
|
select: "chagua",
|
|
2308
2436
|
clone: "nakili",
|
|
2309
|
-
prepend: "tanguliza"
|
|
2437
|
+
prepend: "tanguliza",
|
|
2438
|
+
focus: "lenga",
|
|
2439
|
+
socket: "soketi"
|
|
2310
2440
|
},
|
|
2311
2441
|
modifiers: {
|
|
2312
2442
|
to: "kwa",
|
|
@@ -2316,7 +2446,14 @@ var sw = {
|
|
|
2316
2446
|
at: "katika",
|
|
2317
2447
|
in: "ndani",
|
|
2318
2448
|
of: "ya",
|
|
2319
|
-
|
|
2449
|
+
// `kuwa` ("to be/become" — the conversion sense, cf. `badilisha kuwa`), not
|
|
2450
|
+
// `kama`: sw `kama` is the IF keyword (commands.if above and the semantic sw
|
|
2451
|
+
// profile's if primary), so emitting it for `as` grew a phantom `if` command
|
|
2452
|
+
// out of every transformed `as <Type>` tail (`kama JSON`, `kama Number`) when
|
|
2453
|
+
// the semantic parser split event-body statements. Same dict↔profile homonym
|
|
2454
|
+
// disambiguation as pl get/pobierz. The semantic fetch-sw pattern still
|
|
2455
|
+
// tolerates hand-written `kama` in as-marker position.
|
|
2456
|
+
as: "kuwa",
|
|
2320
2457
|
by: "na",
|
|
2321
2458
|
before: "kabla",
|
|
2322
2459
|
after: "baada",
|
|
@@ -2372,7 +2509,7 @@ var sw = {
|
|
|
2372
2509
|
else: "sivyo",
|
|
2373
2510
|
otherwise: "vinginevyo",
|
|
2374
2511
|
end: "mwisho",
|
|
2375
|
-
live: "
|
|
2512
|
+
live: "mubashara",
|
|
2376
2513
|
changes: "inabadilika"
|
|
2377
2514
|
},
|
|
2378
2515
|
temporal: {
|
|
@@ -2424,13 +2561,25 @@ var sw = {
|
|
|
2424
2561
|
},
|
|
2425
2562
|
expressions: {
|
|
2426
2563
|
first: "kwanza",
|
|
2427
|
-
|
|
2564
|
+
// 'mwisho' is the END keyword (block terminator) — the tokenizer's keyword
|
|
2565
|
+
// map is last-wins, so a positional `last` emission of 'mwisho' reads as
|
|
2566
|
+
// `end` and terminates the enclosing block mid-condition (focus-trap's
|
|
2567
|
+
// `… inafanana mwisho <button/>` dropped the whole branch body). Emit the
|
|
2568
|
+
// concatenated adjective form instead (wa mwisho — the saufsi/wennnicht/
|
|
2569
|
+
// enyakın single-token class); the tokenizer reads it as `last`.
|
|
2570
|
+
last: "wamwisho",
|
|
2428
2571
|
next: "ijayo",
|
|
2429
2572
|
previous: "iliyopita",
|
|
2430
2573
|
prev: "awali",
|
|
2431
2574
|
at: "katika",
|
|
2432
2575
|
random: "nasibu",
|
|
2433
|
-
|
|
2576
|
+
// Natural Swahili: `karibu` ("near/close") is the ordinary word and already
|
|
2577
|
+
// maps to closest. The earlier `karibu_zaidi` ("nearer") underscore-split to
|
|
2578
|
+
// karibu/_/zaidi (the stray `_ zaidi` broke positional capture); the fused
|
|
2579
|
+
// `karibuzaidi` parsed but isn't real Swahili. `karibu` alone is both natural
|
|
2580
|
+
// and correct (the sw tokenizer is single-word-only, so a spaced `karibu
|
|
2581
|
+
// zaidi` would strand `zaidi` regardless).
|
|
2582
|
+
closest: "karibu",
|
|
2434
2583
|
parent: "mzazi",
|
|
2435
2584
|
children: "watoto",
|
|
2436
2585
|
within: "ndani_ya",
|
|
@@ -2461,17 +2610,22 @@ var pt = {
|
|
|
2461
2610
|
add: "adicionar",
|
|
2462
2611
|
remove: "remover",
|
|
2463
2612
|
toggle: "alternar",
|
|
2613
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
2614
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
2615
|
+
blur: "desfocar",
|
|
2464
2616
|
hide: "esconder",
|
|
2465
2617
|
show: "mostrar",
|
|
2466
2618
|
if: "se",
|
|
2467
|
-
unless: "
|
|
2619
|
+
unless: "salvo",
|
|
2620
|
+
// a_menos splits at _ in the pt extractor (see profile)
|
|
2468
2621
|
repeat: "repetir",
|
|
2469
2622
|
for: "para",
|
|
2470
2623
|
while: "enquanto",
|
|
2471
2624
|
until: "at\xE9",
|
|
2472
2625
|
continue: "continuar",
|
|
2473
|
-
|
|
2474
|
-
|
|
2626
|
+
// un-crossed: the profile/tokenizer read parar=halt, interromper=break
|
|
2627
|
+
break: "interromper",
|
|
2628
|
+
halt: "parar",
|
|
2475
2629
|
wait: "esperar",
|
|
2476
2630
|
fetch: "buscar",
|
|
2477
2631
|
call: "chamar",
|
|
@@ -2506,7 +2660,9 @@ var pt = {
|
|
|
2506
2660
|
open: "abrir",
|
|
2507
2661
|
select: "selecionar",
|
|
2508
2662
|
clone: "clonar",
|
|
2509
|
-
prepend: "preceder"
|
|
2663
|
+
prepend: "preceder",
|
|
2664
|
+
focus: "focar",
|
|
2665
|
+
socket: "soquete"
|
|
2510
2666
|
},
|
|
2511
2667
|
modifiers: {
|
|
2512
2668
|
to: "para",
|
|
@@ -2630,7 +2786,7 @@ var pt = {
|
|
|
2630
2786
|
prev: "ant",
|
|
2631
2787
|
at: "em",
|
|
2632
2788
|
random: "aleat\xF3rio",
|
|
2633
|
-
closest: "
|
|
2789
|
+
closest: "maispr\xF3ximo",
|
|
2634
2790
|
parent: "pai",
|
|
2635
2791
|
children: "filhos",
|
|
2636
2792
|
within: "dentro",
|
|
@@ -2664,7 +2820,7 @@ var it = {
|
|
|
2664
2820
|
hide: "nascondere",
|
|
2665
2821
|
show: "mostrare",
|
|
2666
2822
|
if: "se",
|
|
2667
|
-
unless: "
|
|
2823
|
+
unless: "salvo",
|
|
2668
2824
|
repeat: "ripetere",
|
|
2669
2825
|
for: "per",
|
|
2670
2826
|
while: "mentre",
|
|
@@ -2697,7 +2853,8 @@ var it = {
|
|
|
2697
2853
|
swap: "scambiare",
|
|
2698
2854
|
morph: "trasformare",
|
|
2699
2855
|
settle: "stabilizzare",
|
|
2700
|
-
append: "
|
|
2856
|
+
append: "accodare",
|
|
2857
|
+
// profile primary; 'aggiungere' is add's word (parsed as add)
|
|
2701
2858
|
exit: "uscire",
|
|
2702
2859
|
install: "installare",
|
|
2703
2860
|
breakpoint: "punto-interruzione",
|
|
@@ -2706,7 +2863,10 @@ var it = {
|
|
|
2706
2863
|
open: "aprire",
|
|
2707
2864
|
select: "selezionare",
|
|
2708
2865
|
clone: "clonare",
|
|
2709
|
-
prepend: "anteporre"
|
|
2866
|
+
prepend: "anteporre",
|
|
2867
|
+
// profile primary; without a commands entry the transformer fell back to
|
|
2868
|
+
// the EVENTS noun 'fuoco', which generated focus patterns can't match
|
|
2869
|
+
focus: "focalizzare"
|
|
2710
2870
|
},
|
|
2711
2871
|
modifiers: {
|
|
2712
2872
|
to: "a",
|
|
@@ -2830,7 +2990,7 @@ var it = {
|
|
|
2830
2990
|
prev: "prec",
|
|
2831
2991
|
at: "a",
|
|
2832
2992
|
random: "casuale",
|
|
2833
|
-
closest: "
|
|
2993
|
+
closest: "vicino",
|
|
2834
2994
|
parent: "genitore",
|
|
2835
2995
|
children: "figli",
|
|
2836
2996
|
within: "dentro",
|
|
@@ -2893,7 +3053,8 @@ var vi = {
|
|
|
2893
3053
|
beep: "beep",
|
|
2894
3054
|
js: "js",
|
|
2895
3055
|
async: "b\u1EA5t \u0111\u1ED3ng b\u1ED9",
|
|
2896
|
-
render: "
|
|
3056
|
+
render: "k\u1EBFt xu\u1EA5t",
|
|
3057
|
+
// 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)
|
|
2897
3058
|
swap: "ho\xE1n \u0111\u1ED5i",
|
|
2898
3059
|
morph: "bi\u1EBFn \u0111\u1ED5i",
|
|
2899
3060
|
settle: "\u1ED5n \u0111\u1ECBnh",
|
|
@@ -2908,7 +3069,8 @@ var vi = {
|
|
|
2908
3069
|
prepend: "th\xEAm \u0111\u1EA7u",
|
|
2909
3070
|
else: "kh\xF4ng th\xEC",
|
|
2910
3071
|
breakpoint: "\u0111i\u1EC3m-d\u1EEBng",
|
|
2911
|
-
clear: "
|
|
3072
|
+
clear: "t\u1EA9y",
|
|
3073
|
+
// xóa is the remove PRIMARY in the profile
|
|
2912
3074
|
close: "\u0111\xF3ng",
|
|
2913
3075
|
open: "m\u1EDF",
|
|
2914
3076
|
select: "ch\u1ECDn"
|
|
@@ -2972,7 +3134,7 @@ var vi = {
|
|
|
2972
3134
|
else: "kh\xF4ng th\xEC",
|
|
2973
3135
|
end: "k\u1EBFt th\xFAc",
|
|
2974
3136
|
then: "r\u1ED3i",
|
|
2975
|
-
live: "
|
|
3137
|
+
live: "live",
|
|
2976
3138
|
changes: "thay \u0111\u1ED5i"
|
|
2977
3139
|
},
|
|
2978
3140
|
temporal: {
|
|
@@ -3054,15 +3216,23 @@ var pl = {
|
|
|
3054
3216
|
commands: {
|
|
3055
3217
|
on: "gdy",
|
|
3056
3218
|
tell: "powiedz",
|
|
3057
|
-
trigger: "
|
|
3219
|
+
trigger: "wyzw\xF3l",
|
|
3220
|
+
// auditor: dict emitted a word the profile reads differently
|
|
3058
3221
|
send: "wy\u015Blij",
|
|
3059
3222
|
take: "we\u017A",
|
|
3060
3223
|
put: "umie\u015B\u0107",
|
|
3061
3224
|
set: "ustaw",
|
|
3062
|
-
get
|
|
3225
|
+
// `uzyskaj` (the semantic pl profile's get primary), not `pobierz`: pl `pobierz`
|
|
3226
|
+
// ("download") is the profile's FETCH primary, so emitting it for get made the
|
|
3227
|
+
// parser read every transformed get as fetch (get-value lossy + a phantom fetch).
|
|
3228
|
+
// Same dict↔profile homonym disambiguation as tr load/install, qu get.
|
|
3229
|
+
get: "uzyskaj",
|
|
3063
3230
|
add: "dodaj",
|
|
3064
3231
|
remove: "usu\u0144",
|
|
3065
3232
|
toggle: "prze\u0142\u0105cz",
|
|
3233
|
+
// command blur (the events section has the blur EVENT word; without this
|
|
3234
|
+
// entry the transformer fell back to it and no profile read it as the verb)
|
|
3235
|
+
blur: "rozmyj",
|
|
3066
3236
|
hide: "ukryj",
|
|
3067
3237
|
show: "poka\u017C",
|
|
3068
3238
|
if: "je\u015Bli",
|
|
@@ -3103,12 +3273,14 @@ var pl = {
|
|
|
3103
3273
|
exit: "wyjd\u017A",
|
|
3104
3274
|
install: "zainstaluj",
|
|
3105
3275
|
breakpoint: "punkt-przerwania",
|
|
3106
|
-
clear: "
|
|
3276
|
+
clear: "zeruj",
|
|
3277
|
+
// wyczyść is a remove alternative in the profile
|
|
3107
3278
|
close: "zamknij",
|
|
3108
3279
|
open: "otw\xF3rz",
|
|
3109
3280
|
select: "wybierz",
|
|
3110
3281
|
clone: "sklonuj",
|
|
3111
|
-
prepend: "poprzed\u017A"
|
|
3282
|
+
prepend: "poprzed\u017A",
|
|
3283
|
+
focus: "skup"
|
|
3112
3284
|
},
|
|
3113
3285
|
modifiers: {
|
|
3114
3286
|
to: "do",
|
|
@@ -3254,7 +3426,8 @@ var russianDictionary = {
|
|
|
3254
3426
|
commands: {
|
|
3255
3427
|
on: "\u043F\u0440\u0438",
|
|
3256
3428
|
tell: "\u0441\u043A\u0430\u0437\u0430\u0442\u044C",
|
|
3257
|
-
trigger: "\
|
|
3429
|
+
trigger: "\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C",
|
|
3430
|
+
// auditor: dict emitted a word the profile reads differently
|
|
3258
3431
|
send: "\u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
|
|
3259
3432
|
take: "\u0432\u0437\u044F\u0442\u044C",
|
|
3260
3433
|
put: "\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C",
|
|
@@ -3265,8 +3438,12 @@ var russianDictionary = {
|
|
|
3265
3438
|
toggle: "\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C",
|
|
3266
3439
|
hide: "\u0441\u043A\u0440\u044B\u0442\u044C",
|
|
3267
3440
|
show: "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C",
|
|
3441
|
+
// command verb; the events section keeps the noun прокрутка for `on scroll`.
|
|
3442
|
+
// Without this entry the transformer fell back to the event noun, which the
|
|
3443
|
+
// parser doesn't read as the scroll command (#321 focus family).
|
|
3444
|
+
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u044C",
|
|
3268
3445
|
if: "\u0435\u0441\u043B\u0438",
|
|
3269
|
-
unless: "\
|
|
3446
|
+
unless: "\u043A\u0440\u043E\u043C\u0435",
|
|
3270
3447
|
repeat: "\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",
|
|
3271
3448
|
for: "\u0434\u043B\u044F",
|
|
3272
3449
|
while: "\u043F\u043E\u043A\u0430",
|
|
@@ -3299,10 +3476,12 @@ var russianDictionary = {
|
|
|
3299
3476
|
swap: "\u043F\u043E\u043C\u0435\u043D\u044F\u0442\u044C",
|
|
3300
3477
|
morph: "\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3301
3478
|
settle: "\u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3302
|
-
append: "\u0434\u043E\
|
|
3479
|
+
append: "\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C",
|
|
3480
|
+
// profile alternative; the compound splits and добавить parses as add
|
|
3303
3481
|
exit: "\u0432\u044B\u0439\u0442\u0438",
|
|
3304
3482
|
else: "\u0438\u043D\u0430\u0447\u0435",
|
|
3305
|
-
install: "\
|
|
3483
|
+
install: "\u0438\u043D\u0441\u0442\u0430\u043B\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3484
|
+
// loanword — `установить` is `set` (homonym); see russian profile
|
|
3306
3485
|
init: "\u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
3307
3486
|
behavior: "\u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435",
|
|
3308
3487
|
focus: "\u0441\u0444\u043E\u043A\u0443\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
@@ -3337,8 +3516,11 @@ var russianDictionary = {
|
|
|
3337
3516
|
events: {
|
|
3338
3517
|
click: "\u043A\u043B\u0438\u043A",
|
|
3339
3518
|
dblclick: "\u0434\u0432\u043E\u0439\u043D\u043E\u0439_\u043A\u043B\u0438\u043A",
|
|
3340
|
-
|
|
3341
|
-
|
|
3519
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, so an underscore form
|
|
3520
|
+
// breaks event recognition (mousedown → bare expression). Mirrors the #510 tr
|
|
3521
|
+
// resize fix (boyut_değiştir → boyutlandırma) and the enyakın superlative.
|
|
3522
|
+
mousedown: "\u043C\u044B\u0448\u044C\u0432\u043D\u0438\u0437",
|
|
3523
|
+
mouseup: "\u043C\u044B\u0448\u044C\u0432\u0432\u0435\u0440\u0445",
|
|
3342
3524
|
mouseenter: "\u043C\u044B\u0448\u044C_\u0432\u0445\u043E\u0434",
|
|
3343
3525
|
mouseleave: "\u043C\u044B\u0448\u044C_\u0432\u044B\u0445\u043E\u0434",
|
|
3344
3526
|
mouseover: "\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0435",
|
|
@@ -3355,7 +3537,8 @@ var russianDictionary = {
|
|
|
3355
3537
|
reset: "\u0441\u0431\u0440\u043E\u0441",
|
|
3356
3538
|
load: "\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430",
|
|
3357
3539
|
unload: "\u0432\u044B\u0433\u0440\u0443\u0437\u043A\u0430",
|
|
3358
|
-
resize: "\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\
|
|
3540
|
+
resize: "\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0440\u0430",
|
|
3541
|
+
// fused (no `_`) — see mousedown note above
|
|
3359
3542
|
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430",
|
|
3360
3543
|
touchstart: "\u043A\u0430\u0441\u0430\u043D\u0438\u0435_\u043D\u0430\u0447\u0430\u043B\u043E",
|
|
3361
3544
|
touchend: "\u043A\u0430\u0441\u0430\u043D\u0438\u0435_\u043A\u043E\u043D\u0435\u0446",
|
|
@@ -3480,7 +3663,8 @@ var ukrainianDictionary = {
|
|
|
3480
3663
|
commands: {
|
|
3481
3664
|
on: "\u043F\u0440\u0438",
|
|
3482
3665
|
tell: "\u0441\u043A\u0430\u0437\u0430\u0442\u0438",
|
|
3483
|
-
trigger: "\
|
|
3666
|
+
trigger: "\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0438",
|
|
3667
|
+
// auditor: dict emitted a word the profile reads differently
|
|
3484
3668
|
send: "\u043D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438",
|
|
3485
3669
|
take: "\u0432\u0437\u044F\u0442\u0438",
|
|
3486
3670
|
put: "\u043F\u043E\u043A\u043B\u0430\u0441\u0442\u0438",
|
|
@@ -3491,8 +3675,12 @@ var ukrainianDictionary = {
|
|
|
3491
3675
|
toggle: "\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0443\u0442\u0438",
|
|
3492
3676
|
hide: "\u0441\u0445\u043E\u0432\u0430\u0442\u0438",
|
|
3493
3677
|
show: "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u0438",
|
|
3678
|
+
// command verb; the events section keeps the noun прокрутка for `on scroll`.
|
|
3679
|
+
// Without this entry the transformer fell back to the event noun, which the
|
|
3680
|
+
// parser doesn't read as the scroll command (#321 focus family).
|
|
3681
|
+
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u0438\u0442\u0438",
|
|
3494
3682
|
if: "\u044F\u043A\u0449\u043E",
|
|
3495
|
-
unless: "\
|
|
3683
|
+
unless: "\u043A\u0440\u0456\u043C",
|
|
3496
3684
|
repeat: "\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",
|
|
3497
3685
|
for: "\u0434\u043B\u044F",
|
|
3498
3686
|
while: "\u043F\u043E\u043A\u0438",
|
|
@@ -3525,10 +3713,12 @@ var ukrainianDictionary = {
|
|
|
3525
3713
|
swap: "\u043F\u043E\u043C\u0456\u043D\u044F\u0442\u0438",
|
|
3526
3714
|
morph: "\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0432\u0430\u0442\u0438",
|
|
3527
3715
|
settle: "\u0441\u0442\u0430\u0431\u0456\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",
|
|
3528
|
-
append: "\u0434\u043E\
|
|
3716
|
+
append: "\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u0438",
|
|
3717
|
+
// profile alternative; the compound splits and додати parses as add
|
|
3529
3718
|
exit: "\u0432\u0438\u0439\u0442\u0438",
|
|
3530
3719
|
else: "\u0456\u043D\u0430\u043A\u0448\u0435",
|
|
3531
|
-
install: "\
|
|
3720
|
+
install: "\u0456\u043D\u0441\u0442\u0430\u043B\u044E\u0432\u0430\u0442\u0438",
|
|
3721
|
+
// loanword — `встановити` is `set` (homonym); see ukrainian profile
|
|
3532
3722
|
init: "\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",
|
|
3533
3723
|
behavior: "\u043F\u043E\u0432\u0435\u0434\u0456\u043D\u043A\u0430",
|
|
3534
3724
|
focus: "\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438",
|
|
@@ -3563,8 +3753,10 @@ var ukrainianDictionary = {
|
|
|
3563
3753
|
events: {
|
|
3564
3754
|
click: "\u043A\u043B\u0456\u043A",
|
|
3565
3755
|
dblclick: "\u043F\u043E\u0434\u0432\u0456\u0439\u043D\u0438\u0439_\u043A\u043B\u0456\u043A",
|
|
3566
|
-
|
|
3567
|
-
|
|
3756
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, so an underscore form
|
|
3757
|
+
// breaks event recognition. Mirrors the #510 tr resize fix + enyakın.
|
|
3758
|
+
mousedown: "\u043C\u0438\u0448\u0430\u0432\u043D\u0438\u0437",
|
|
3759
|
+
mouseup: "\u043C\u0438\u0448\u0430\u0432\u0433\u043E\u0440\u0443",
|
|
3568
3760
|
mouseenter: "\u043C\u0438\u0448\u0430_\u0432\u0445\u0456\u0434",
|
|
3569
3761
|
mouseleave: "\u043C\u0438\u0448\u0430_\u0432\u0438\u0445\u0456\u0434",
|
|
3570
3762
|
mouseover: "\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u043D\u044F",
|
|
@@ -3581,7 +3773,8 @@ var ukrainianDictionary = {
|
|
|
3581
3773
|
reset: "\u0441\u043A\u0438\u0434\u0430\u043D\u043D\u044F",
|
|
3582
3774
|
load: "\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",
|
|
3583
3775
|
unload: "\u0432\u0438\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",
|
|
3584
|
-
resize: "\u0437\u043C\u0456\u043D\
|
|
3776
|
+
resize: "\u0437\u043C\u0456\u043D\u0430\u0440\u043E\u0437\u043C\u0456\u0440\u0443",
|
|
3777
|
+
// fused (no `_`) — see mousedown note above
|
|
3585
3778
|
scroll: "\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430",
|
|
3586
3779
|
touchstart: "\u0434\u043E\u0442\u0438\u043A_\u043F\u043E\u0447\u0430\u0442\u043E\u043A",
|
|
3587
3780
|
touchend: "\u0434\u043E\u0442\u0438\u043A_\u043A\u0456\u043D\u0435\u0446\u044C",
|
|
@@ -3718,10 +3911,12 @@ var hindiDictionary = {
|
|
|
3718
3911
|
hide: "\u091B\u093F\u092A\u093E\u090F\u0902",
|
|
3719
3912
|
show: "\u0926\u093F\u0916\u093E\u090F\u0902",
|
|
3720
3913
|
if: "\u0905\u0917\u0930",
|
|
3721
|
-
unless: "\u091C\
|
|
3914
|
+
unless: "\u091C\u092C \u0924\u0915 \u0928\u0939\u0940\u0902",
|
|
3915
|
+
// spaced (not जब_तक_नहीं) → one multi-word `unless` token
|
|
3722
3916
|
repeat: "\u0926\u094B\u0939\u0930\u093E\u090F\u0902",
|
|
3723
|
-
for: "\
|
|
3724
|
-
|
|
3917
|
+
for: "\u0939\u0947\u0924\u0941",
|
|
3918
|
+
// single token — के_लिए splits at _ in the hi extractor
|
|
3919
|
+
while: "\u091C\u092C \u0924\u0915",
|
|
3725
3920
|
until: "\u0924\u0915",
|
|
3726
3921
|
continue: "\u091C\u093E\u0930\u0940",
|
|
3727
3922
|
break: "\u0930\u094B\u0915\u0947\u0902",
|
|
@@ -3748,10 +3943,10 @@ var hindiDictionary = {
|
|
|
3748
3943
|
js: "\u091C\u0947\u090F\u0938",
|
|
3749
3944
|
async: "\u0905\u0938\u093F\u0902\u0915",
|
|
3750
3945
|
render: "\u0930\u0947\u0902\u0921\u0930",
|
|
3751
|
-
swap: "\
|
|
3946
|
+
swap: "\u0935\u093F\u0928\u093F\u092E\u092F",
|
|
3752
3947
|
morph: "\u0930\u0942\u092A\u093E\u0902\u0924\u0930",
|
|
3753
3948
|
settle: "\u0938\u094D\u0925\u093F\u0930",
|
|
3754
|
-
append: "\
|
|
3949
|
+
append: "\u0938\u0902\u0932\u0917\u094D\u0928",
|
|
3755
3950
|
exit: "\u092C\u093E\u0939\u0930",
|
|
3756
3951
|
else: "\u0935\u0930\u0928\u093E",
|
|
3757
3952
|
install: "\u0907\u0902\u0938\u094D\u091F\u0949\u0932",
|
|
@@ -3765,7 +3960,8 @@ var hindiDictionary = {
|
|
|
3765
3960
|
clear: "\u0938\u093E\u092B\u093C-\u0915\u0930\u0947\u0902",
|
|
3766
3961
|
close: "\u092C\u0902\u0926-\u0915\u0930\u0947\u0902",
|
|
3767
3962
|
open: "\u0916\u094B\u0932\u0947\u0902",
|
|
3768
|
-
select: "\u091A\u0941\u0928\u0947\u0902"
|
|
3963
|
+
select: "\u091A\u0941\u0928\u0947\u0902",
|
|
3964
|
+
socket: "\u0938\u0949\u0915\u0947\u091F"
|
|
3769
3965
|
},
|
|
3770
3966
|
modifiers: {
|
|
3771
3967
|
to: "\u0915\u094B",
|
|
@@ -3777,8 +3973,8 @@ var hindiDictionary = {
|
|
|
3777
3973
|
of: "\u0915\u093E",
|
|
3778
3974
|
as: "\u0915\u0947_\u0930\u0942\u092A_\u092E\u0947\u0902",
|
|
3779
3975
|
by: "\u0926\u094D\u0935\u093E\u0930\u093E",
|
|
3780
|
-
before: "\u0938\
|
|
3781
|
-
after: "\u0915\
|
|
3976
|
+
before: "\u0938\u0947 \u092A\u0939\u0932\u0947",
|
|
3977
|
+
after: "\u0915\u0947 \u092C\u093E\u0926",
|
|
3782
3978
|
over: "\u0915\u0947_\u090A\u092A\u0930",
|
|
3783
3979
|
under: "\u0915\u0947_\u0928\u0940\u091A\u0947",
|
|
3784
3980
|
between: "\u0915\u0947_\u092C\u0940\u091A",
|
|
@@ -3789,8 +3985,10 @@ var hindiDictionary = {
|
|
|
3789
3985
|
events: {
|
|
3790
3986
|
click: "\u0915\u094D\u0932\u093F\u0915",
|
|
3791
3987
|
dblclick: "\u0921\u092C\u0932_\u0915\u094D\u0932\u093F\u0915",
|
|
3792
|
-
|
|
3793
|
-
|
|
3988
|
+
// Fused (no `_`): the semantic tokenizer splits on `_`, breaking event
|
|
3989
|
+
// recognition (mousedown → "नीचे"). Mirrors the #535 ru/uk fuse.
|
|
3990
|
+
mousedown: "\u092E\u093E\u0909\u0938\u0928\u0940\u091A\u0947",
|
|
3991
|
+
mouseup: "\u092E\u093E\u0909\u0938\u090A\u092A\u0930",
|
|
3794
3992
|
mouseenter: "\u092E\u093E\u0909\u0938_\u092A\u094D\u0930\u0935\u0947\u0936",
|
|
3795
3993
|
mouseleave: "\u092E\u093E\u0909\u0938_\u092C\u093E\u0939\u0930",
|
|
3796
3994
|
mouseover: "\u092E\u093E\u0909\u0938_\u0913\u0935\u0930",
|
|
@@ -3822,7 +4020,11 @@ var hindiDictionary = {
|
|
|
3822
4020
|
not: "\u0928\u0939\u0940\u0902",
|
|
3823
4021
|
is: "\u0939\u0948",
|
|
3824
4022
|
exists: "\u092E\u094C\u091C\u0942\u0926",
|
|
3825
|
-
|
|
4023
|
+
// Natural spaced phrase `मेल खाता` ("matches") — how Hindi writes it. The base
|
|
4024
|
+
// tokenizer now matches multi-word profile keywords, so the hindi profile maps
|
|
4025
|
+
// `मेल खाता`→matches without the underscore (`मेल_खाता` split) or the
|
|
4026
|
+
// concatenated `मेलखाता` (parsed, but unnatural) workarounds.
|
|
4027
|
+
matches: "\u092E\u0947\u0932 \u0916\u093E\u0924\u093E",
|
|
3826
4028
|
contains: "\u0936\u093E\u092E\u093F\u0932",
|
|
3827
4029
|
includes: "\u092E\u0947\u0902_\u0939\u0948",
|
|
3828
4030
|
equals: "\u092C\u0930\u093E\u092C\u0930",
|
|
@@ -3959,7 +4161,7 @@ var bengaliDictionary = {
|
|
|
3959
4161
|
throw: "\u09A8\u09BF\u0995\u09CD\u09B7\u09C7\u09AA",
|
|
3960
4162
|
continue: "\u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8",
|
|
3961
4163
|
make: "\u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09C1\u09A8",
|
|
3962
|
-
append: "\
|
|
4164
|
+
append: "\u099C\u09C1\u09A1\u09BC\u09C1\u09A8",
|
|
3963
4165
|
prepend: "\u09B6\u09C1\u09B0\u09C1\u09A4\u09C7 \u09AF\u09CB\u0997",
|
|
3964
4166
|
focus: "\u09AB\u09CB\u0995\u09BE\u09B8",
|
|
3965
4167
|
blur: "\u099D\u09BE\u09AA\u09B8\u09BE",
|
|
@@ -3987,7 +4189,8 @@ var bengaliDictionary = {
|
|
|
3987
4189
|
clear: "\u09AA\u09B0\u09BF\u09B7\u09CD\u0995\u09BE\u09B0",
|
|
3988
4190
|
close: "\u09AC\u09A8\u09CD\u09A7",
|
|
3989
4191
|
open: "\u0996\u09C1\u09B2\u09C1\u09A8",
|
|
3990
|
-
select: "\u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09A8"
|
|
4192
|
+
select: "\u09A8\u09BF\u09B0\u09CD\u09AC\u09BE\u099A\u09A8",
|
|
4193
|
+
socket: "\u09B8\u0995\u09C7\u099F"
|
|
3991
4194
|
},
|
|
3992
4195
|
modifiers: {
|
|
3993
4196
|
to: "\u0995\u09C7",
|
|
@@ -4046,6 +4249,7 @@ var bengaliDictionary = {
|
|
|
4046
4249
|
end: "\u09B6\u09C7\u09B7",
|
|
4047
4250
|
then: "\u09A4\u09BE\u09B0\u09AA\u09B0",
|
|
4048
4251
|
live: "\u09B2\u09BE\u0987\u09AD",
|
|
4252
|
+
bind: "\u09AC\u09BE\u0987\u09A8\u09CD\u09A1",
|
|
4049
4253
|
changes: "\u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09BF\u09A4 \u09B9\u09B2\u09C7"
|
|
4050
4254
|
},
|
|
4051
4255
|
temporal: {
|
|
@@ -4139,7 +4343,9 @@ var thaiDictionary = {
|
|
|
4139
4343
|
prepend: "\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2B\u0E19\u0E49\u0E32",
|
|
4140
4344
|
focus: "\u0E42\u0E1F\u0E01\u0E31\u0E2A",
|
|
4141
4345
|
blur: "\u0E40\u0E1A\u0E25\u0E2D",
|
|
4142
|
-
|
|
4346
|
+
// เปลี่ยนผ่าน, not เปลี่ยน: the semantic th profile's `change` keyword is
|
|
4347
|
+
// เปลี่ยน, so a เปลี่ยน render could never anchor a transition command.
|
|
4348
|
+
transition: "\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E1C\u0E48\u0E32\u0E19",
|
|
4143
4349
|
settle: "\u0E04\u0E07\u0E17\u0E35\u0E48",
|
|
4144
4350
|
measure: "\u0E27\u0E31\u0E14",
|
|
4145
4351
|
async: "\u0E2D\u0E30\u0E0B\u0E34\u0E07\u0E04\u0E4C",
|
|
@@ -4340,10 +4546,13 @@ var malayDictionary = {
|
|
|
4340
4546
|
init: "mula",
|
|
4341
4547
|
clone: "klon",
|
|
4342
4548
|
breakpoint: "titik-henti",
|
|
4343
|
-
clear: "
|
|
4549
|
+
clear: "bersihkan",
|
|
4550
|
+
// padam is a remove alternative in the profile
|
|
4344
4551
|
close: "tutup",
|
|
4345
4552
|
open: "buka",
|
|
4346
|
-
select: "pilih"
|
|
4553
|
+
select: "pilih",
|
|
4554
|
+
socket: "soket"
|
|
4555
|
+
// derived from the ms profile (socket.primary); see generate-i18n-dictionaries
|
|
4347
4556
|
},
|
|
4348
4557
|
modifiers: {
|
|
4349
4558
|
to: "ke",
|
|
@@ -4514,10 +4723,14 @@ var tagalogDictionary = {
|
|
|
4514
4723
|
tell: "sabihin",
|
|
4515
4724
|
trigger: "palitawin",
|
|
4516
4725
|
send: "ipadala",
|
|
4517
|
-
take: "
|
|
4726
|
+
take: "kumuha",
|
|
4727
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4518
4728
|
put: "ilagay",
|
|
4519
4729
|
set: "itakda",
|
|
4520
|
-
get
|
|
4730
|
+
// Align with the semantic tl profile's `get` primary (`kunin`); the previous
|
|
4731
|
+
// `kuhanin` is the base of fetch's `kuhanin_mula`, so the transformed `get`
|
|
4732
|
+
// dropped (get-value parsed degenerate). Same dict↔profile alignment as id `toggle`.
|
|
4733
|
+
get: "kunin",
|
|
4521
4734
|
add: "idagdag",
|
|
4522
4735
|
remove: "alisin",
|
|
4523
4736
|
toggle: "palitan",
|
|
@@ -4541,7 +4754,7 @@ var tagalogDictionary = {
|
|
|
4541
4754
|
throw: "ihagis",
|
|
4542
4755
|
catch: "hulihin",
|
|
4543
4756
|
measure: "sukatin",
|
|
4544
|
-
transition: "
|
|
4757
|
+
transition: "lumipat",
|
|
4545
4758
|
increment: "dagdagan",
|
|
4546
4759
|
decrement: "bawasan",
|
|
4547
4760
|
default: "pamantayan",
|
|
@@ -4553,10 +4766,13 @@ var tagalogDictionary = {
|
|
|
4553
4766
|
beep: "tunog",
|
|
4554
4767
|
js: "js",
|
|
4555
4768
|
async: "sabay",
|
|
4556
|
-
render: "
|
|
4769
|
+
render: "irender",
|
|
4770
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4557
4771
|
swap: "palitan_pwesto",
|
|
4558
|
-
morph: "
|
|
4559
|
-
|
|
4772
|
+
morph: "baguhin",
|
|
4773
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4774
|
+
settle: "magpatahimik",
|
|
4775
|
+
// auditor: dict emitted a word the profile reads differently
|
|
4560
4776
|
append: "idagdag_sa_dulo",
|
|
4561
4777
|
prepend: "idagdag_sa_simula",
|
|
4562
4778
|
exit: "lumabas",
|
|
@@ -4584,7 +4800,11 @@ var tagalogDictionary = {
|
|
|
4584
4800
|
as: "bilang",
|
|
4585
4801
|
by: "sa_pamamagitan_ng",
|
|
4586
4802
|
before: "bago",
|
|
4587
|
-
after:
|
|
4803
|
+
// `matapos` (not `pagkatapos`) for the positional "after": `pagkatapos` is
|
|
4804
|
+
// also Tagalog "then", so emitting it for the position modifier collides with
|
|
4805
|
+
// the sequence connector. `matapos` is the unambiguous positional form and
|
|
4806
|
+
// matches the semantic tl profile's `after`.
|
|
4807
|
+
after: "matapos",
|
|
4588
4808
|
over: "sa_ibabaw",
|
|
4589
4809
|
under: "sa_ilalim",
|
|
4590
4810
|
between: "sa_pagitan",
|
|
@@ -4744,6 +4964,8 @@ var he = {
|
|
|
4744
4964
|
beep: "\u05D1\u05D9\u05E4",
|
|
4745
4965
|
break: "\u05E9\u05D1\u05D5\u05E8",
|
|
4746
4966
|
call: "\u05E7\u05E8\u05D0",
|
|
4967
|
+
clear: "\u05E0\u05E7\u05D4",
|
|
4968
|
+
// profile's clear word — was untranslated (parsed as nothing)
|
|
4747
4969
|
continue: "\u05D4\u05DE\u05E9\u05DA",
|
|
4748
4970
|
copy: "\u05D4\u05E2\u05EA\u05E7",
|
|
4749
4971
|
decrement: "\u05D4\u05E7\u05D8\u05DF",
|
|
@@ -4756,6 +4978,7 @@ var he = {
|
|
|
4756
4978
|
halt: "\u05E2\u05E6\u05D5\u05E8",
|
|
4757
4979
|
hide: "\u05D4\u05E1\u05EA\u05E8",
|
|
4758
4980
|
if: "\u05D0\u05DD",
|
|
4981
|
+
unless: "\u05D0\u05DC\u05D0",
|
|
4759
4982
|
increment: "\u05D4\u05D2\u05D3\u05DC",
|
|
4760
4983
|
install: "\u05D4\u05EA\u05E7\u05DF",
|
|
4761
4984
|
js: "js",
|
|
@@ -4770,6 +4993,7 @@ var he = {
|
|
|
4770
4993
|
render: "\u05E8\u05E0\u05D3\u05E8",
|
|
4771
4994
|
repeat: "\u05D7\u05D6\u05D5\u05E8",
|
|
4772
4995
|
return: "\u05D4\u05D7\u05D6\u05E8",
|
|
4996
|
+
scroll: "\u05D2\u05DC\u05D5\u05DC",
|
|
4773
4997
|
send: "\u05E9\u05DC\u05D7",
|
|
4774
4998
|
set: "\u05E7\u05D1\u05E2",
|
|
4775
4999
|
settle: "\u05D4\u05EA\u05D9\u05D9\u05E6\u05D1",
|
|
@@ -4807,6 +5031,7 @@ var he = {
|
|
|
4807
5031
|
end: "\u05E1\u05D5\u05E3",
|
|
4808
5032
|
then: "\u05D0\u05D6",
|
|
4809
5033
|
live: "\u05D7\u05D9",
|
|
5034
|
+
bind: "\u05E7\u05E9\u05D5\u05E8",
|
|
4810
5035
|
changes: "\u05DE\u05E9\u05EA\u05E0\u05D4",
|
|
4811
5036
|
when: "\u05DB\u05D0\u05E9\u05E8",
|
|
4812
5037
|
where: "\u05D0\u05D9\u05E4\u05D4"
|
|
@@ -4825,7 +5050,9 @@ var he = {
|
|
|
4825
5050
|
your: "\u05E9\u05DC\u05DA"
|
|
4826
5051
|
},
|
|
4827
5052
|
attributes: {},
|
|
4828
|
-
expressions: {
|
|
5053
|
+
expressions: {
|
|
5054
|
+
last: "\u05D0\u05D7\u05E8\u05D5\u05DF"
|
|
5055
|
+
}
|
|
4829
5056
|
};
|
|
4830
5057
|
|
|
4831
5058
|
// src/dictionaries/index.ts
|