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