@lokascript/semantic 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +686 -0
- package/dist/browser-ar.ar.global.js +2 -0
- package/dist/browser-core.core.global.js +2 -0
- package/dist/browser-de.de.global.js +2 -0
- package/dist/browser-east-asian.east-asian.global.js +2 -0
- package/dist/browser-en-tr.en-tr.global.js +2 -0
- package/dist/browser-en.en.global.js +2 -0
- package/dist/browser-es-en.es-en.global.js +2 -0
- package/dist/browser-es.es.global.js +2 -0
- package/dist/browser-fr.fr.global.js +2 -0
- package/dist/browser-id.id.global.js +2 -0
- package/dist/browser-ja.ja.global.js +2 -0
- package/dist/browser-ko.ko.global.js +2 -0
- package/dist/browser-lazy.lazy.global.js +2 -0
- package/dist/browser-priority.priority.global.js +2 -0
- package/dist/browser-pt.pt.global.js +2 -0
- package/dist/browser-qu.qu.global.js +2 -0
- package/dist/browser-sw.sw.global.js +2 -0
- package/dist/browser-tr.tr.global.js +2 -0
- package/dist/browser-western.western.global.js +2 -0
- package/dist/browser-zh.zh.global.js +2 -0
- package/dist/browser.global.js +3 -0
- package/dist/browser.global.js.map +1 -0
- package/dist/index.cjs +35051 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3426 -0
- package/dist/index.d.ts +3426 -0
- package/dist/index.js +34890 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/ar.d.ts +78 -0
- package/dist/languages/ar.js +1622 -0
- package/dist/languages/ar.js.map +1 -0
- package/dist/languages/de.d.ts +38 -0
- package/dist/languages/de.js +1168 -0
- package/dist/languages/de.js.map +1 -0
- package/dist/languages/en.d.ts +44 -0
- package/dist/languages/en.js +3491 -0
- package/dist/languages/en.js.map +1 -0
- package/dist/languages/es.d.ts +52 -0
- package/dist/languages/es.js +1493 -0
- package/dist/languages/es.js.map +1 -0
- package/dist/languages/fr.d.ts +37 -0
- package/dist/languages/fr.js +1159 -0
- package/dist/languages/fr.js.map +1 -0
- package/dist/languages/id.d.ts +35 -0
- package/dist/languages/id.js +1152 -0
- package/dist/languages/id.js.map +1 -0
- package/dist/languages/ja.d.ts +53 -0
- package/dist/languages/ja.js +1430 -0
- package/dist/languages/ja.js.map +1 -0
- package/dist/languages/ko.d.ts +51 -0
- package/dist/languages/ko.js +1729 -0
- package/dist/languages/ko.js.map +1 -0
- package/dist/languages/pt.d.ts +37 -0
- package/dist/languages/pt.js +1127 -0
- package/dist/languages/pt.js.map +1 -0
- package/dist/languages/qu.d.ts +36 -0
- package/dist/languages/qu.js +1143 -0
- package/dist/languages/qu.js.map +1 -0
- package/dist/languages/sw.d.ts +35 -0
- package/dist/languages/sw.js +1147 -0
- package/dist/languages/sw.js.map +1 -0
- package/dist/languages/tr.d.ts +45 -0
- package/dist/languages/tr.js +1529 -0
- package/dist/languages/tr.js.map +1 -0
- package/dist/languages/zh.d.ts +58 -0
- package/dist/languages/zh.js +1257 -0
- package/dist/languages/zh.js.map +1 -0
- package/dist/types-C4dcj53L.d.ts +600 -0
- package/package.json +202 -0
- package/src/__test-utils__/index.ts +7 -0
- package/src/__test-utils__/test-helpers.ts +8 -0
- package/src/__types__/test-helpers.ts +122 -0
- package/src/analysis/index.ts +479 -0
- package/src/ast-builder/command-mappers.ts +1133 -0
- package/src/ast-builder/expression-parser/index.ts +41 -0
- package/src/ast-builder/expression-parser/parser.ts +563 -0
- package/src/ast-builder/expression-parser/tokenizer.ts +394 -0
- package/src/ast-builder/expression-parser/types.ts +208 -0
- package/src/ast-builder/index.ts +536 -0
- package/src/ast-builder/value-converters.ts +172 -0
- package/src/bridge.ts +275 -0
- package/src/browser-ar.ts +162 -0
- package/src/browser-core.ts +231 -0
- package/src/browser-de.ts +162 -0
- package/src/browser-east-asian.ts +173 -0
- package/src/browser-en-tr.ts +165 -0
- package/src/browser-en.ts +157 -0
- package/src/browser-es-en.ts +200 -0
- package/src/browser-es.ts +170 -0
- package/src/browser-fr.ts +162 -0
- package/src/browser-id.ts +162 -0
- package/src/browser-ja.ts +162 -0
- package/src/browser-ko.ts +162 -0
- package/src/browser-lazy.ts +189 -0
- package/src/browser-priority.ts +214 -0
- package/src/browser-pt.ts +162 -0
- package/src/browser-qu.ts +162 -0
- package/src/browser-sw.ts +162 -0
- package/src/browser-tr.ts +162 -0
- package/src/browser-western.ts +181 -0
- package/src/browser-zh.ts +162 -0
- package/src/browser.ts +268 -0
- package/src/cache/index.ts +14 -0
- package/src/cache/semantic-cache.ts +344 -0
- package/src/core-bridge.ts +372 -0
- package/src/explicit/converter.ts +258 -0
- package/src/explicit/index.ts +18 -0
- package/src/explicit/parser.ts +236 -0
- package/src/explicit/renderer.ts +424 -0
- package/src/generators/command-schemas.ts +1636 -0
- package/src/generators/event-handler-generator.ts +109 -0
- package/src/generators/index.ts +117 -0
- package/src/generators/language-profiles.ts +139 -0
- package/src/generators/pattern-generator.ts +537 -0
- package/src/generators/profiles/arabic.ts +131 -0
- package/src/generators/profiles/bengali.ts +132 -0
- package/src/generators/profiles/chinese.ts +124 -0
- package/src/generators/profiles/english.ts +113 -0
- package/src/generators/profiles/french.ts +125 -0
- package/src/generators/profiles/german.ts +126 -0
- package/src/generators/profiles/hindi.ts +146 -0
- package/src/generators/profiles/index.ts +46 -0
- package/src/generators/profiles/indonesian.ts +125 -0
- package/src/generators/profiles/italian.ts +139 -0
- package/src/generators/profiles/japanese.ts +149 -0
- package/src/generators/profiles/korean.ts +127 -0
- package/src/generators/profiles/marker-templates.ts +288 -0
- package/src/generators/profiles/ms.ts +130 -0
- package/src/generators/profiles/polish.ts +249 -0
- package/src/generators/profiles/portuguese.ts +115 -0
- package/src/generators/profiles/quechua.ts +113 -0
- package/src/generators/profiles/russian.ts +260 -0
- package/src/generators/profiles/spanish.ts +130 -0
- package/src/generators/profiles/swahili.ts +129 -0
- package/src/generators/profiles/thai.ts +132 -0
- package/src/generators/profiles/tl.ts +128 -0
- package/src/generators/profiles/turkish.ts +124 -0
- package/src/generators/profiles/types.ts +165 -0
- package/src/generators/profiles/ukrainian.ts +270 -0
- package/src/generators/profiles/vietnamese.ts +133 -0
- package/src/generators/schema-error-codes.ts +160 -0
- package/src/generators/schema-validator.ts +391 -0
- package/src/index.ts +429 -0
- package/src/language-building-schema.ts +3170 -0
- package/src/language-loader.ts +394 -0
- package/src/languages/_all.ts +65 -0
- package/src/languages/ar.ts +15 -0
- package/src/languages/bn.ts +16 -0
- package/src/languages/de.ts +15 -0
- package/src/languages/en.ts +29 -0
- package/src/languages/es.ts +15 -0
- package/src/languages/fr.ts +15 -0
- package/src/languages/hi.ts +26 -0
- package/src/languages/id.ts +15 -0
- package/src/languages/index.ts +18 -0
- package/src/languages/it.ts +15 -0
- package/src/languages/ja.ts +15 -0
- package/src/languages/ko.ts +15 -0
- package/src/languages/ms.ts +16 -0
- package/src/languages/pl.ts +18 -0
- package/src/languages/pt.ts +15 -0
- package/src/languages/qu.ts +15 -0
- package/src/languages/ru.ts +26 -0
- package/src/languages/sw.ts +15 -0
- package/src/languages/th.ts +16 -0
- package/src/languages/tl.ts +16 -0
- package/src/languages/tr.ts +15 -0
- package/src/languages/uk.ts +26 -0
- package/src/languages/vi.ts +16 -0
- package/src/languages/zh.ts +15 -0
- package/src/parser/index.ts +15 -0
- package/src/parser/pattern-matcher.ts +1181 -0
- package/src/parser/semantic-parser.ts +573 -0
- package/src/parser/utils/index.ts +35 -0
- package/src/parser/utils/marker-resolution.ts +111 -0
- package/src/parser/utils/possessive-keywords.ts +43 -0
- package/src/parser/utils/role-positioning.ts +70 -0
- package/src/parser/utils/type-validation.ts +134 -0
- package/src/patterns/add/ar.ts +71 -0
- package/src/patterns/add/bn.ts +70 -0
- package/src/patterns/add/hi.ts +69 -0
- package/src/patterns/add/index.ts +87 -0
- package/src/patterns/add/it.ts +61 -0
- package/src/patterns/add/ja.ts +93 -0
- package/src/patterns/add/ko.ts +74 -0
- package/src/patterns/add/ms.ts +30 -0
- package/src/patterns/add/pl.ts +62 -0
- package/src/patterns/add/ru.ts +62 -0
- package/src/patterns/add/th.ts +49 -0
- package/src/patterns/add/tl.ts +30 -0
- package/src/patterns/add/tr.ts +71 -0
- package/src/patterns/add/uk.ts +62 -0
- package/src/patterns/add/vi.ts +61 -0
- package/src/patterns/add/zh.ts +71 -0
- package/src/patterns/builders.ts +207 -0
- package/src/patterns/decrement/bn.ts +70 -0
- package/src/patterns/decrement/de.ts +42 -0
- package/src/patterns/decrement/hi.ts +68 -0
- package/src/patterns/decrement/index.ts +79 -0
- package/src/patterns/decrement/it.ts +69 -0
- package/src/patterns/decrement/ms.ts +30 -0
- package/src/patterns/decrement/pl.ts +58 -0
- package/src/patterns/decrement/ru.ts +58 -0
- package/src/patterns/decrement/th.ts +49 -0
- package/src/patterns/decrement/tl.ts +30 -0
- package/src/patterns/decrement/tr.ts +48 -0
- package/src/patterns/decrement/uk.ts +58 -0
- package/src/patterns/decrement/vi.ts +61 -0
- package/src/patterns/decrement/zh.ts +32 -0
- package/src/patterns/en.ts +302 -0
- package/src/patterns/event-handler/ar.ts +151 -0
- package/src/patterns/event-handler/bn.ts +72 -0
- package/src/patterns/event-handler/de.ts +117 -0
- package/src/patterns/event-handler/en.ts +117 -0
- package/src/patterns/event-handler/es.ts +136 -0
- package/src/patterns/event-handler/fr.ts +117 -0
- package/src/patterns/event-handler/hi.ts +64 -0
- package/src/patterns/event-handler/id.ts +117 -0
- package/src/patterns/event-handler/index.ts +119 -0
- package/src/patterns/event-handler/it.ts +54 -0
- package/src/patterns/event-handler/ja.ts +118 -0
- package/src/patterns/event-handler/ko.ts +133 -0
- package/src/patterns/event-handler/ms.ts +30 -0
- package/src/patterns/event-handler/pl.ts +62 -0
- package/src/patterns/event-handler/pt.ts +117 -0
- package/src/patterns/event-handler/qu.ts +66 -0
- package/src/patterns/event-handler/ru.ts +62 -0
- package/src/patterns/event-handler/shared.ts +270 -0
- package/src/patterns/event-handler/sw.ts +117 -0
- package/src/patterns/event-handler/th.ts +53 -0
- package/src/patterns/event-handler/tl.ts +30 -0
- package/src/patterns/event-handler/tr.ts +170 -0
- package/src/patterns/event-handler/uk.ts +62 -0
- package/src/patterns/event-handler/vi.ts +61 -0
- package/src/patterns/event-handler/zh.ts +150 -0
- package/src/patterns/get/ar.ts +49 -0
- package/src/patterns/get/bn.ts +47 -0
- package/src/patterns/get/de.ts +32 -0
- package/src/patterns/get/hi.ts +52 -0
- package/src/patterns/get/index.ts +83 -0
- package/src/patterns/get/it.ts +56 -0
- package/src/patterns/get/ja.ts +53 -0
- package/src/patterns/get/ko.ts +53 -0
- package/src/patterns/get/ms.ts +30 -0
- package/src/patterns/get/pl.ts +57 -0
- package/src/patterns/get/ru.ts +57 -0
- package/src/patterns/get/th.ts +29 -0
- package/src/patterns/get/tl.ts +30 -0
- package/src/patterns/get/uk.ts +57 -0
- package/src/patterns/get/vi.ts +48 -0
- package/src/patterns/grammar-transformed/index.ts +39 -0
- package/src/patterns/grammar-transformed/ja.ts +1713 -0
- package/src/patterns/grammar-transformed/ko.ts +1311 -0
- package/src/patterns/grammar-transformed/tr.ts +1067 -0
- package/src/patterns/hide/ar.ts +67 -0
- package/src/patterns/hide/bn.ts +47 -0
- package/src/patterns/hide/de.ts +36 -0
- package/src/patterns/hide/hi.ts +61 -0
- package/src/patterns/hide/index.ts +91 -0
- package/src/patterns/hide/it.ts +56 -0
- package/src/patterns/hide/ja.ts +69 -0
- package/src/patterns/hide/ko.ts +69 -0
- package/src/patterns/hide/ms.ts +30 -0
- package/src/patterns/hide/pl.ts +57 -0
- package/src/patterns/hide/ru.ts +57 -0
- package/src/patterns/hide/th.ts +29 -0
- package/src/patterns/hide/tl.ts +30 -0
- package/src/patterns/hide/tr.ts +65 -0
- package/src/patterns/hide/uk.ts +57 -0
- package/src/patterns/hide/vi.ts +56 -0
- package/src/patterns/hide/zh.ts +68 -0
- package/src/patterns/increment/bn.ts +70 -0
- package/src/patterns/increment/de.ts +36 -0
- package/src/patterns/increment/hi.ts +68 -0
- package/src/patterns/increment/index.ts +79 -0
- package/src/patterns/increment/it.ts +69 -0
- package/src/patterns/increment/ms.ts +30 -0
- package/src/patterns/increment/pl.ts +58 -0
- package/src/patterns/increment/ru.ts +58 -0
- package/src/patterns/increment/th.ts +49 -0
- package/src/patterns/increment/tl.ts +30 -0
- package/src/patterns/increment/tr.ts +52 -0
- package/src/patterns/increment/uk.ts +58 -0
- package/src/patterns/increment/vi.ts +61 -0
- package/src/patterns/increment/zh.ts +32 -0
- package/src/patterns/index.ts +84 -0
- package/src/patterns/languages/en/control-flow.ts +93 -0
- package/src/patterns/languages/en/fetch.ts +62 -0
- package/src/patterns/languages/en/index.ts +42 -0
- package/src/patterns/languages/en/repeat.ts +67 -0
- package/src/patterns/languages/en/set.ts +48 -0
- package/src/patterns/languages/en/swap.ts +38 -0
- package/src/patterns/languages/en/temporal.ts +57 -0
- package/src/patterns/put/ar.ts +74 -0
- package/src/patterns/put/bn.ts +53 -0
- package/src/patterns/put/en.ts +74 -0
- package/src/patterns/put/es.ts +74 -0
- package/src/patterns/put/hi.ts +69 -0
- package/src/patterns/put/id.ts +96 -0
- package/src/patterns/put/index.ts +99 -0
- package/src/patterns/put/it.ts +56 -0
- package/src/patterns/put/ja.ts +75 -0
- package/src/patterns/put/ko.ts +67 -0
- package/src/patterns/put/ms.ts +30 -0
- package/src/patterns/put/pl.ts +81 -0
- package/src/patterns/put/ru.ts +85 -0
- package/src/patterns/put/th.ts +32 -0
- package/src/patterns/put/tl.ts +30 -0
- package/src/patterns/put/tr.ts +67 -0
- package/src/patterns/put/uk.ts +85 -0
- package/src/patterns/put/vi.ts +72 -0
- package/src/patterns/put/zh.ts +62 -0
- package/src/patterns/registry.ts +163 -0
- package/src/patterns/remove/ar.ts +71 -0
- package/src/patterns/remove/bn.ts +68 -0
- package/src/patterns/remove/hi.ts +69 -0
- package/src/patterns/remove/index.ts +87 -0
- package/src/patterns/remove/it.ts +69 -0
- package/src/patterns/remove/ja.ts +74 -0
- package/src/patterns/remove/ko.ts +78 -0
- package/src/patterns/remove/ms.ts +30 -0
- package/src/patterns/remove/pl.ts +62 -0
- package/src/patterns/remove/ru.ts +62 -0
- package/src/patterns/remove/th.ts +49 -0
- package/src/patterns/remove/tl.ts +30 -0
- package/src/patterns/remove/tr.ts +78 -0
- package/src/patterns/remove/uk.ts +62 -0
- package/src/patterns/remove/vi.ts +61 -0
- package/src/patterns/remove/zh.ts +72 -0
- package/src/patterns/set/ar.ts +84 -0
- package/src/patterns/set/bn.ts +53 -0
- package/src/patterns/set/de.ts +84 -0
- package/src/patterns/set/es.ts +92 -0
- package/src/patterns/set/fr.ts +88 -0
- package/src/patterns/set/hi.ts +56 -0
- package/src/patterns/set/id.ts +84 -0
- package/src/patterns/set/index.ts +107 -0
- package/src/patterns/set/it.ts +56 -0
- package/src/patterns/set/ja.ts +86 -0
- package/src/patterns/set/ko.ts +85 -0
- package/src/patterns/set/ms.ts +30 -0
- package/src/patterns/set/pl.ts +57 -0
- package/src/patterns/set/pt.ts +84 -0
- package/src/patterns/set/ru.ts +57 -0
- package/src/patterns/set/th.ts +31 -0
- package/src/patterns/set/tl.ts +30 -0
- package/src/patterns/set/tr.ts +107 -0
- package/src/patterns/set/uk.ts +57 -0
- package/src/patterns/set/vi.ts +53 -0
- package/src/patterns/set/zh.ts +84 -0
- package/src/patterns/show/ar.ts +67 -0
- package/src/patterns/show/bn.ts +47 -0
- package/src/patterns/show/de.ts +32 -0
- package/src/patterns/show/fr.ts +32 -0
- package/src/patterns/show/hi.ts +61 -0
- package/src/patterns/show/index.ts +95 -0
- package/src/patterns/show/it.ts +56 -0
- package/src/patterns/show/ja.ts +69 -0
- package/src/patterns/show/ko.ts +73 -0
- package/src/patterns/show/ms.ts +30 -0
- package/src/patterns/show/pl.ts +57 -0
- package/src/patterns/show/ru.ts +57 -0
- package/src/patterns/show/th.ts +29 -0
- package/src/patterns/show/tl.ts +30 -0
- package/src/patterns/show/tr.ts +65 -0
- package/src/patterns/show/uk.ts +57 -0
- package/src/patterns/show/vi.ts +56 -0
- package/src/patterns/show/zh.ts +68 -0
- package/src/patterns/take/ar.ts +51 -0
- package/src/patterns/take/index.ts +31 -0
- package/src/patterns/toggle/ar.ts +61 -0
- package/src/patterns/toggle/bn.ts +70 -0
- package/src/patterns/toggle/en.ts +61 -0
- package/src/patterns/toggle/es.ts +61 -0
- package/src/patterns/toggle/hi.ts +80 -0
- package/src/patterns/toggle/index.ts +95 -0
- package/src/patterns/toggle/it.ts +69 -0
- package/src/patterns/toggle/ja.ts +156 -0
- package/src/patterns/toggle/ko.ts +113 -0
- package/src/patterns/toggle/ms.ts +30 -0
- package/src/patterns/toggle/pl.ts +62 -0
- package/src/patterns/toggle/ru.ts +62 -0
- package/src/patterns/toggle/th.ts +50 -0
- package/src/patterns/toggle/tl.ts +30 -0
- package/src/patterns/toggle/tr.ts +88 -0
- package/src/patterns/toggle/uk.ts +62 -0
- package/src/patterns/toggle/vi.ts +61 -0
- package/src/patterns/toggle/zh.ts +99 -0
- package/src/public-api.ts +286 -0
- package/src/registry.ts +441 -0
- package/src/tokenizers/arabic.ts +723 -0
- package/src/tokenizers/base.ts +1300 -0
- package/src/tokenizers/bengali.ts +289 -0
- package/src/tokenizers/chinese.ts +481 -0
- package/src/tokenizers/english.ts +416 -0
- package/src/tokenizers/french.ts +326 -0
- package/src/tokenizers/german.ts +324 -0
- package/src/tokenizers/hindi.ts +319 -0
- package/src/tokenizers/index.ts +127 -0
- package/src/tokenizers/indonesian.ts +306 -0
- package/src/tokenizers/italian.ts +458 -0
- package/src/tokenizers/japanese.ts +447 -0
- package/src/tokenizers/korean.ts +642 -0
- package/src/tokenizers/morphology/arabic-normalizer.ts +242 -0
- package/src/tokenizers/morphology/french-normalizer.ts +268 -0
- package/src/tokenizers/morphology/german-normalizer.ts +256 -0
- package/src/tokenizers/morphology/index.ts +46 -0
- package/src/tokenizers/morphology/italian-normalizer.ts +329 -0
- package/src/tokenizers/morphology/japanese-normalizer.ts +288 -0
- package/src/tokenizers/morphology/korean-normalizer.ts +428 -0
- package/src/tokenizers/morphology/polish-normalizer.ts +264 -0
- package/src/tokenizers/morphology/portuguese-normalizer.ts +310 -0
- package/src/tokenizers/morphology/spanish-normalizer.ts +327 -0
- package/src/tokenizers/morphology/turkish-normalizer.ts +412 -0
- package/src/tokenizers/morphology/types.ts +211 -0
- package/src/tokenizers/ms.ts +198 -0
- package/src/tokenizers/polish.ts +354 -0
- package/src/tokenizers/portuguese.ts +304 -0
- package/src/tokenizers/quechua.ts +339 -0
- package/src/tokenizers/russian.ts +375 -0
- package/src/tokenizers/spanish.ts +403 -0
- package/src/tokenizers/swahili.ts +303 -0
- package/src/tokenizers/thai.ts +236 -0
- package/src/tokenizers/tl.ts +198 -0
- package/src/tokenizers/turkish.ts +411 -0
- package/src/tokenizers/ukrainian.ts +369 -0
- package/src/tokenizers/vietnamese.ts +410 -0
- package/src/types/grammar-types.ts +617 -0
- package/src/types/unified-profile.ts +267 -0
- package/src/types.ts +709 -0
- package/src/utils/confidence-calculator.ts +147 -0
- package/src/validators/command-validator.ts +380 -0
- package/src/validators/index.ts +15 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tagalog Language Profile
|
|
3
|
+
*
|
|
4
|
+
* VSO word order, prepositions, space-separated.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LanguageProfile } from './types';
|
|
8
|
+
|
|
9
|
+
export const tagalogProfile: LanguageProfile = {
|
|
10
|
+
code: 'tl',
|
|
11
|
+
name: 'Tagalog',
|
|
12
|
+
nativeName: 'Tagalog',
|
|
13
|
+
direction: 'ltr',
|
|
14
|
+
wordOrder: 'VSO',
|
|
15
|
+
markingStrategy: 'preposition',
|
|
16
|
+
usesSpaces: true,
|
|
17
|
+
defaultVerbForm: 'base',
|
|
18
|
+
verb: {
|
|
19
|
+
position: 'start',
|
|
20
|
+
subjectDrop: true,
|
|
21
|
+
},
|
|
22
|
+
references: {
|
|
23
|
+
me: 'ako', // "I/me"
|
|
24
|
+
it: 'ito', // "it"
|
|
25
|
+
you: 'ikaw', // "you"
|
|
26
|
+
result: 'resulta', // "result"
|
|
27
|
+
event: 'pangyayari', // "event"
|
|
28
|
+
target: 'target', // "target"
|
|
29
|
+
body: 'body',
|
|
30
|
+
},
|
|
31
|
+
possessive: {
|
|
32
|
+
marker: 'ng', // Linker used in possessive constructions
|
|
33
|
+
markerPosition: 'between',
|
|
34
|
+
keywords: {
|
|
35
|
+
// Tagalog uses postposed possessive pronouns
|
|
36
|
+
// "my" - ko (clitic), akin (emphatic)
|
|
37
|
+
ko: 'me',
|
|
38
|
+
akin: 'me',
|
|
39
|
+
// "your" - mo (clitic), iyo (emphatic)
|
|
40
|
+
mo: 'you',
|
|
41
|
+
iyo: 'you',
|
|
42
|
+
// "its/his/her" - niya (clitic), kaniya (emphatic)
|
|
43
|
+
niya: 'it',
|
|
44
|
+
kaniya: 'it',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
roleMarkers: {
|
|
48
|
+
destination: { primary: 'sa', position: 'before' }, // "to/into"
|
|
49
|
+
source: { primary: 'mula_sa', position: 'before' }, // "from"
|
|
50
|
+
patient: { primary: '', position: 'before' },
|
|
51
|
+
style: { primary: 'nang', position: 'before' }, // manner marker
|
|
52
|
+
},
|
|
53
|
+
keywords: {
|
|
54
|
+
// Class/Attribute operations
|
|
55
|
+
toggle: { primary: 'palitan', alternatives: ['itoggle'], normalized: 'toggle' },
|
|
56
|
+
add: { primary: 'idagdag', alternatives: ['magdagdag'], normalized: 'add' },
|
|
57
|
+
remove: { primary: 'alisin', alternatives: ['tanggalin'], normalized: 'remove' },
|
|
58
|
+
// Content operations
|
|
59
|
+
put: { primary: 'ilagay', alternatives: ['maglagay'], normalized: 'put' },
|
|
60
|
+
append: { primary: 'idagdag_sa_dulo', normalized: 'append' },
|
|
61
|
+
prepend: { primary: 'idagdag_sa_simula', normalized: 'prepend' },
|
|
62
|
+
take: { primary: 'kumuha', normalized: 'take' },
|
|
63
|
+
make: { primary: 'gumawa', alternatives: ['lumikha'], normalized: 'make' },
|
|
64
|
+
clone: { primary: 'kopyahin', normalized: 'clone' },
|
|
65
|
+
swap: { primary: 'magpalit', normalized: 'swap' },
|
|
66
|
+
morph: { primary: 'baguhin', normalized: 'morph' },
|
|
67
|
+
// Variable operations
|
|
68
|
+
set: { primary: 'itakda', alternatives: ['magtakda'], normalized: 'set' },
|
|
69
|
+
get: { primary: 'kumuha', alternatives: ['kunin'], normalized: 'get' },
|
|
70
|
+
increment: { primary: 'dagdagan', alternatives: ['taasan'], normalized: 'increment' },
|
|
71
|
+
decrement: { primary: 'bawasan', alternatives: ['ibaba'], normalized: 'decrement' },
|
|
72
|
+
log: { primary: 'itala', normalized: 'log' },
|
|
73
|
+
// Visibility
|
|
74
|
+
show: { primary: 'ipakita', alternatives: ['magpakita'], normalized: 'show' },
|
|
75
|
+
hide: { primary: 'itago', alternatives: ['magtago'], normalized: 'hide' },
|
|
76
|
+
transition: { primary: 'lumipat', normalized: 'transition' },
|
|
77
|
+
// Events
|
|
78
|
+
on: { primary: 'kapag', alternatives: ['kung', 'sa'], normalized: 'on' },
|
|
79
|
+
trigger: { primary: 'magpatugtog', normalized: 'trigger' },
|
|
80
|
+
send: { primary: 'ipadala', alternatives: ['magpadala'], normalized: 'send' },
|
|
81
|
+
// DOM focus
|
|
82
|
+
focus: { primary: 'ituon', normalized: 'focus' },
|
|
83
|
+
blur: { primary: 'alisin_tuon', normalized: 'blur' },
|
|
84
|
+
// Navigation
|
|
85
|
+
go: { primary: 'pumunta', alternatives: ['punta'], normalized: 'go' },
|
|
86
|
+
// Async
|
|
87
|
+
wait: { primary: 'maghintay', alternatives: ['hintay'], normalized: 'wait' },
|
|
88
|
+
fetch: { primary: 'kunin', normalized: 'fetch' },
|
|
89
|
+
settle: { primary: 'magpatahimik', normalized: 'settle' },
|
|
90
|
+
// Control flow
|
|
91
|
+
if: { primary: 'kung', alternatives: ['kapag'], normalized: 'if' },
|
|
92
|
+
when: { primary: 'kapag', normalized: 'when' },
|
|
93
|
+
where: { primary: 'kung_saan', normalized: 'where' },
|
|
94
|
+
else: { primary: 'kung_hindi', alternatives: ['kundi'], normalized: 'else' },
|
|
95
|
+
repeat: { primary: 'ulitin', alternatives: ['paulit-ulit'], normalized: 'repeat' },
|
|
96
|
+
for: { primary: 'para_sa', normalized: 'for' },
|
|
97
|
+
while: { primary: 'habang', normalized: 'while' },
|
|
98
|
+
continue: { primary: 'magpatuloy', normalized: 'continue' },
|
|
99
|
+
halt: { primary: 'itigil', alternatives: ['huminto'], normalized: 'halt' },
|
|
100
|
+
throw: { primary: 'ihagis', alternatives: ['itapon'], normalized: 'throw' },
|
|
101
|
+
call: { primary: 'tawagan', alternatives: ['tumawag'], normalized: 'call' },
|
|
102
|
+
return: { primary: 'ibalik', alternatives: ['bumalik'], normalized: 'return' },
|
|
103
|
+
then: { primary: 'pagkatapos', alternatives: ['saka'], normalized: 'then' },
|
|
104
|
+
and: { primary: 'at', normalized: 'and' },
|
|
105
|
+
end: { primary: 'wakas', alternatives: ['tapos'], normalized: 'end' },
|
|
106
|
+
// Advanced
|
|
107
|
+
js: { primary: 'js', normalized: 'js' },
|
|
108
|
+
async: { primary: 'async', normalized: 'async' },
|
|
109
|
+
tell: { primary: 'sabihin', alternatives: ['magsabi'], normalized: 'tell' },
|
|
110
|
+
default: { primary: 'default', alternatives: ['unang_halaga'], normalized: 'default' },
|
|
111
|
+
init: { primary: 'simulan', alternatives: ['magsimula'], normalized: 'init' },
|
|
112
|
+
behavior: { primary: 'ugali', alternatives: ['kilos'], normalized: 'behavior' },
|
|
113
|
+
install: { primary: 'ikabit', alternatives: ['mag-install'], normalized: 'install' },
|
|
114
|
+
measure: { primary: 'sukatin', normalized: 'measure' },
|
|
115
|
+
// Modifiers
|
|
116
|
+
into: { primary: 'sa', normalized: 'into' },
|
|
117
|
+
before: { primary: 'bago', normalized: 'before' },
|
|
118
|
+
after: { primary: 'matapos', alternatives: ['pagkatapos'], normalized: 'after' },
|
|
119
|
+
// Event modifiers
|
|
120
|
+
until: { primary: 'hanggang', normalized: 'until' },
|
|
121
|
+
event: { primary: 'pangyayari', normalized: 'event' },
|
|
122
|
+
from: { primary: 'mula', alternatives: ['galing'], normalized: 'from' },
|
|
123
|
+
},
|
|
124
|
+
eventHandler: {
|
|
125
|
+
keyword: { primary: 'kapag', normalized: 'on' },
|
|
126
|
+
sourceMarker: { primary: 'mula_sa', alternatives: ['galing_sa'], position: 'before' },
|
|
127
|
+
},
|
|
128
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turkish Language Profile
|
|
3
|
+
*
|
|
4
|
+
* SOV word order, case suffixes (agglutinative), space-separated.
|
|
5
|
+
* Features vowel harmony and extensive suffixation.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { LanguageProfile } from './types';
|
|
9
|
+
|
|
10
|
+
export const turkishProfile: LanguageProfile = {
|
|
11
|
+
code: 'tr',
|
|
12
|
+
name: 'Turkish',
|
|
13
|
+
nativeName: 'Türkçe',
|
|
14
|
+
direction: 'ltr',
|
|
15
|
+
wordOrder: 'SOV',
|
|
16
|
+
markingStrategy: 'case-suffix',
|
|
17
|
+
usesSpaces: true,
|
|
18
|
+
verb: {
|
|
19
|
+
position: 'end',
|
|
20
|
+
suffixes: ['mek', 'mak', 'yor', 'di', 'miş'],
|
|
21
|
+
subjectDrop: true,
|
|
22
|
+
},
|
|
23
|
+
references: {
|
|
24
|
+
me: 'ben', // "I/me"
|
|
25
|
+
it: 'o', // "it"
|
|
26
|
+
you: 'sen', // "you"
|
|
27
|
+
result: 'sonuç',
|
|
28
|
+
event: 'olay',
|
|
29
|
+
target: 'hedef',
|
|
30
|
+
body: 'gövde',
|
|
31
|
+
},
|
|
32
|
+
possessive: {
|
|
33
|
+
marker: '', // Turkish uses genitive suffix -in/-ın + possessive suffix
|
|
34
|
+
markerPosition: 'after-object',
|
|
35
|
+
usePossessiveAdjectives: true,
|
|
36
|
+
specialForms: {
|
|
37
|
+
me: 'benim', // "my" (genitive of "ben")
|
|
38
|
+
it: 'onun', // "its"
|
|
39
|
+
you: 'senin', // "your"
|
|
40
|
+
},
|
|
41
|
+
keywords: {
|
|
42
|
+
benim: 'me', // my
|
|
43
|
+
senin: 'you', // your
|
|
44
|
+
onun: 'it', // its
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
roleMarkers: {
|
|
48
|
+
patient: { primary: 'i', alternatives: ['ı', 'u', 'ü'], position: 'after' }, // Accusative
|
|
49
|
+
destination: { primary: 'e', alternatives: ['a', 'de', 'da', 'te', 'ta'], position: 'after' }, // Dative/Locative
|
|
50
|
+
source: { primary: 'den', alternatives: ['dan', 'ten', 'tan'], position: 'after' }, // Ablative
|
|
51
|
+
style: { primary: 'le', alternatives: ['la', 'yle', 'yla'], position: 'after' }, // Instrumental
|
|
52
|
+
event: { primary: 'i', alternatives: ['ı', 'u', 'ü'], position: 'after' }, // Event as accusative
|
|
53
|
+
},
|
|
54
|
+
keywords: {
|
|
55
|
+
// Class/Attribute operations
|
|
56
|
+
toggle: { primary: 'değiştir', alternatives: ['aç/kapat'], normalized: 'toggle' },
|
|
57
|
+
add: { primary: 'ekle', normalized: 'add' },
|
|
58
|
+
remove: { primary: 'kaldır', alternatives: ['sil'], normalized: 'remove' },
|
|
59
|
+
// Content operations
|
|
60
|
+
put: { primary: 'koy', normalized: 'put' },
|
|
61
|
+
append: { primary: 'ekle', normalized: 'append' },
|
|
62
|
+
take: { primary: 'al', normalized: 'take' },
|
|
63
|
+
make: { primary: 'yap', normalized: 'make' },
|
|
64
|
+
clone: { primary: 'kopyala', normalized: 'clone' },
|
|
65
|
+
swap: { primary: 'değiştir', alternatives: ['takas'], normalized: 'swap' },
|
|
66
|
+
morph: { primary: 'dönüştür', alternatives: ['şekil değiştir'], normalized: 'morph' },
|
|
67
|
+
// Variable operations
|
|
68
|
+
set: { primary: 'ayarla', alternatives: ['yap', 'belirle'], normalized: 'set' },
|
|
69
|
+
get: { primary: 'al', normalized: 'get' },
|
|
70
|
+
increment: { primary: 'artır', normalized: 'increment' },
|
|
71
|
+
decrement: { primary: 'azalt', normalized: 'decrement' },
|
|
72
|
+
log: { primary: 'kaydet', normalized: 'log' },
|
|
73
|
+
// Visibility
|
|
74
|
+
show: { primary: 'göster', normalized: 'show' },
|
|
75
|
+
hide: { primary: 'gizle', normalized: 'hide' },
|
|
76
|
+
transition: { primary: 'geçiş', normalized: 'transition' },
|
|
77
|
+
// Events
|
|
78
|
+
on: { primary: 'üzerinde', alternatives: ['olduğunda', 'zaman'], normalized: 'on' },
|
|
79
|
+
trigger: { primary: 'tetikle', normalized: 'trigger' },
|
|
80
|
+
send: { primary: 'gönder', normalized: 'send' },
|
|
81
|
+
// DOM focus
|
|
82
|
+
focus: { primary: 'odak', normalized: 'focus' },
|
|
83
|
+
blur: { primary: 'bulanık', normalized: 'blur' },
|
|
84
|
+
// Navigation
|
|
85
|
+
go: { primary: 'git', normalized: 'go' },
|
|
86
|
+
// Async
|
|
87
|
+
wait: { primary: 'bekle', normalized: 'wait' },
|
|
88
|
+
fetch: { primary: 'getir', normalized: 'fetch' },
|
|
89
|
+
settle: { primary: 'sabitlen', normalized: 'settle' },
|
|
90
|
+
// Control flow
|
|
91
|
+
if: { primary: 'eğer', normalized: 'if' },
|
|
92
|
+
when: { primary: 'iken', alternatives: ['durumunda', 'olduğunda'], normalized: 'when' },
|
|
93
|
+
where: { primary: 'nerede', normalized: 'where' },
|
|
94
|
+
else: { primary: 'yoksa', normalized: 'else' },
|
|
95
|
+
repeat: { primary: 'tekrarla', normalized: 'repeat' },
|
|
96
|
+
for: { primary: 'için', normalized: 'for' },
|
|
97
|
+
while: { primary: 'iken', normalized: 'while' },
|
|
98
|
+
continue: { primary: 'devam', normalized: 'continue' },
|
|
99
|
+
halt: { primary: 'durdur', normalized: 'halt' },
|
|
100
|
+
throw: { primary: 'fırlat', normalized: 'throw' },
|
|
101
|
+
call: { primary: 'çağır', normalized: 'call' },
|
|
102
|
+
return: { primary: 'dön', normalized: 'return' },
|
|
103
|
+
then: { primary: 'sonra', alternatives: ['ardından', 'daha sonra'], normalized: 'then' },
|
|
104
|
+
and: { primary: 've', alternatives: ['ayrıca', 'hem de'], normalized: 'and' },
|
|
105
|
+
end: { primary: 'son', alternatives: ['bitiş', 'bitti'], normalized: 'end' },
|
|
106
|
+
// Advanced
|
|
107
|
+
js: { primary: 'js', normalized: 'js' },
|
|
108
|
+
async: { primary: 'asenkron', normalized: 'async' },
|
|
109
|
+
tell: { primary: 'söyle', normalized: 'tell' },
|
|
110
|
+
default: { primary: 'varsayılan', normalized: 'default' },
|
|
111
|
+
init: { primary: 'başlat', normalized: 'init' },
|
|
112
|
+
behavior: { primary: 'davranış', normalized: 'behavior' },
|
|
113
|
+
install: { primary: 'yükle', normalized: 'install' },
|
|
114
|
+
measure: { primary: 'ölç', normalized: 'measure' },
|
|
115
|
+
// Modifiers
|
|
116
|
+
into: { primary: 'içine', normalized: 'into' },
|
|
117
|
+
before: { primary: 'önce', normalized: 'before' },
|
|
118
|
+
after: { primary: 'sonra', normalized: 'after' },
|
|
119
|
+
// Event modifiers (for repeat until event)
|
|
120
|
+
until: { primary: 'kadar', normalized: 'until' },
|
|
121
|
+
event: { primary: 'olay', normalized: 'event' },
|
|
122
|
+
from: { primary: '-den', alternatives: ['-dan'], normalized: 'from' },
|
|
123
|
+
},
|
|
124
|
+
};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Profile Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for language profiles, separated for tree-shaking.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { SemanticRole } from '../../types';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Word order in a language (for declarative statements).
|
|
11
|
+
*/
|
|
12
|
+
export type WordOrder = 'SVO' | 'SOV' | 'VSO' | 'VOS' | 'OSV' | 'OVS';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* How grammatical relationships are marked.
|
|
16
|
+
*/
|
|
17
|
+
export type MarkingStrategy = 'preposition' | 'postposition' | 'particle' | 'case-suffix';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A grammatical marker (preposition, particle, etc.) for a semantic role.
|
|
21
|
+
*/
|
|
22
|
+
export interface RoleMarker {
|
|
23
|
+
/** Primary marker for this role */
|
|
24
|
+
readonly primary: string;
|
|
25
|
+
/** Alternative markers that also work */
|
|
26
|
+
readonly alternatives?: string[];
|
|
27
|
+
/** Position relative to the role value */
|
|
28
|
+
readonly position: 'before' | 'after';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Verb form configuration for a language.
|
|
33
|
+
*/
|
|
34
|
+
export interface VerbConfig {
|
|
35
|
+
/** Position of verb in the sentence */
|
|
36
|
+
readonly position: 'start' | 'end' | 'second';
|
|
37
|
+
/** Common verb suffixes/conjugations to recognize */
|
|
38
|
+
readonly suffixes?: string[];
|
|
39
|
+
/** Whether the language commonly drops subjects */
|
|
40
|
+
readonly subjectDrop?: boolean;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Configuration for possessive expression construction.
|
|
45
|
+
* Defines how "X's property" is expressed in a language.
|
|
46
|
+
*/
|
|
47
|
+
export interface PossessiveConfig {
|
|
48
|
+
/** Possessive marker (e.g., "'s" in English, "の" in Japanese) */
|
|
49
|
+
readonly marker: string;
|
|
50
|
+
/** Position of marker: 'after-object' (X's Y), 'between' (X の Y), 'before-property' */
|
|
51
|
+
readonly markerPosition: 'after-object' | 'between' | 'before-property';
|
|
52
|
+
/** Special possessive forms (e.g., 'me' → 'my' in English) */
|
|
53
|
+
readonly specialForms?: Record<string, string>;
|
|
54
|
+
/** Whether to use possessive adjectives instead of marker (e.g., Spanish mi/tu/su) */
|
|
55
|
+
readonly usePossessiveAdjectives?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Possessive keywords mapped to their corresponding reference.
|
|
58
|
+
* Used by pattern-matcher to recognize possessive expressions.
|
|
59
|
+
* Example: { my: 'me', your: 'you', its: 'it' }
|
|
60
|
+
*/
|
|
61
|
+
readonly keywords?: Record<string, string>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Complete language profile for pattern generation.
|
|
66
|
+
*/
|
|
67
|
+
export interface LanguageProfile {
|
|
68
|
+
/** ISO 639-1 language code */
|
|
69
|
+
readonly code: string;
|
|
70
|
+
/** Human-readable language name */
|
|
71
|
+
readonly name: string;
|
|
72
|
+
/** Native name */
|
|
73
|
+
readonly nativeName: string;
|
|
74
|
+
/** Text direction */
|
|
75
|
+
readonly direction: 'ltr' | 'rtl';
|
|
76
|
+
/** Primary word order */
|
|
77
|
+
readonly wordOrder: WordOrder;
|
|
78
|
+
/** How this language marks grammatical roles */
|
|
79
|
+
readonly markingStrategy: MarkingStrategy;
|
|
80
|
+
/** Markers for each semantic role */
|
|
81
|
+
readonly roleMarkers: Partial<Record<SemanticRole, RoleMarker>>;
|
|
82
|
+
/** Verb configuration */
|
|
83
|
+
readonly verb: VerbConfig;
|
|
84
|
+
/** Command keyword translations */
|
|
85
|
+
readonly keywords: Record<string, KeywordTranslation>;
|
|
86
|
+
/** Whether the language uses spaces between words */
|
|
87
|
+
readonly usesSpaces: boolean;
|
|
88
|
+
/** Special tokenization notes */
|
|
89
|
+
readonly tokenization?: TokenizationConfig;
|
|
90
|
+
/** Reference translations (me, it, you, etc.) */
|
|
91
|
+
readonly references?: Record<string, string>;
|
|
92
|
+
/** Possessive expression configuration */
|
|
93
|
+
readonly possessive?: PossessiveConfig;
|
|
94
|
+
/** Event handler pattern configuration (for simple SVO languages) */
|
|
95
|
+
readonly eventHandler?: EventHandlerConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Default verb form for command keywords. Defaults to 'infinitive'.
|
|
98
|
+
*
|
|
99
|
+
* Based on software UI localization research:
|
|
100
|
+
* - 'infinitive': Spanish, French, German, Portuguese, Russian (industry standard)
|
|
101
|
+
* - 'imperative': Polish
|
|
102
|
+
* - 'base': English, Japanese, Korean (no distinction or same form)
|
|
103
|
+
*
|
|
104
|
+
* Individual keywords can override this via KeywordTranslation.form
|
|
105
|
+
*/
|
|
106
|
+
readonly defaultVerbForm?: VerbForm;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Configuration for event handler pattern generation.
|
|
111
|
+
* Used by simple SVO languages that don't need hand-crafted patterns.
|
|
112
|
+
*/
|
|
113
|
+
export interface EventHandlerConfig {
|
|
114
|
+
/** Primary event keyword (e.g., 'on', 'bei', 'sur') */
|
|
115
|
+
readonly keyword: KeywordTranslation;
|
|
116
|
+
/** Source filter marker (e.g., 'from', 'von', 'de') */
|
|
117
|
+
readonly sourceMarker: RoleMarker;
|
|
118
|
+
/** Conditional keyword (e.g., 'when', 'wenn', 'quand') */
|
|
119
|
+
readonly conditionalKeyword?: KeywordTranslation;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Verb form used for command keywords.
|
|
124
|
+
*
|
|
125
|
+
* Based on software localization research:
|
|
126
|
+
* - 'infinitive': Standard for most languages (Spanish, French, German, Russian)
|
|
127
|
+
* Example: "Guardar", "Enregistrer", "Speichern"
|
|
128
|
+
* - 'imperative': Used by some languages (Polish)
|
|
129
|
+
* Example: "Zapisz", "Otwórz"
|
|
130
|
+
* - 'base': For languages where forms are identical (English, Japanese, Korean)
|
|
131
|
+
* or where the distinction doesn't apply
|
|
132
|
+
*/
|
|
133
|
+
export type VerbForm = 'infinitive' | 'imperative' | 'base';
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Translation of a command keyword.
|
|
137
|
+
*/
|
|
138
|
+
export interface KeywordTranslation {
|
|
139
|
+
/** Primary translation (used for output/rendering) */
|
|
140
|
+
readonly primary: string;
|
|
141
|
+
/** Alternative forms for parsing (conjugations, synonyms, informal variants) */
|
|
142
|
+
readonly alternatives?: string[];
|
|
143
|
+
/** Normalized English form for internal matching */
|
|
144
|
+
readonly normalized?: string;
|
|
145
|
+
/**
|
|
146
|
+
* The grammatical form of 'primary'. Defaults to 'infinitive'.
|
|
147
|
+
* This documents the form used and enables future form-switching features.
|
|
148
|
+
* - 'infinitive': Dictionary form (alternar, basculer) - industry standard
|
|
149
|
+
* - 'imperative': Command form (alterna, bascule) - for Polish, etc.
|
|
150
|
+
* - 'base': Same form for both (toggle, トグル) - English, Japanese, Korean
|
|
151
|
+
*/
|
|
152
|
+
readonly form?: VerbForm;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Special tokenization configuration.
|
|
157
|
+
*/
|
|
158
|
+
export interface TokenizationConfig {
|
|
159
|
+
/** Particles to recognize (for particle languages) */
|
|
160
|
+
readonly particles?: string[];
|
|
161
|
+
/** Prefixes to recognize (for prefixing languages) */
|
|
162
|
+
readonly prefixes?: string[];
|
|
163
|
+
/** Word boundary detection strategy */
|
|
164
|
+
readonly boundaryStrategy?: 'space' | 'particle' | 'character';
|
|
165
|
+
}
|