diff options
26 files changed, 1188 insertions, 801 deletions
diff --git a/ext/css/display.css b/ext/css/display.css index d5b4d82d..ae1b5f8a 100644 --- a/ext/css/display.css +++ b/ext/css/display.css @@ -855,6 +855,9 @@ button.action-button:active { .inflection-source-icon[data-inflection-source='both']::after { content: '๐งฉ๐'; } +.inflection[title] { + cursor: pointer; +} /* Headwords */ diff --git a/ext/data/templates/anki-field-templates-upgrade-v38.handlebars b/ext/data/templates/anki-field-templates-upgrade-v38.handlebars new file mode 100644 index 00000000..83b6e3ac --- /dev/null +++ b/ext/data/templates/anki-field-templates-upgrade-v38.handlebars @@ -0,0 +1,43 @@ +{{<<<<<<<}} +{{#*inline "conjugation"}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 0)~}} + {{~set "multiple" false~}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 1)~}} + {{~set "multiple" true~}} + {{~/if~}} + {{~#if (get "multiple")~}}<ul>{{/if~}} + {{~#each definition.inflectionRuleChainCandidates~}} + {{~#if (op ">" inflectionRules.length 0)~}} + {{~#if (get "multiple")~}}<li>{{/if~}} + {{~#each inflectionRules~}} + {{~#if (op ">" @index 0)}} ยซ {{/if~}} + {{.}} + {{~/each~}} + {{~#if (get "multiple")~}}</li>{{/if~}} + {{~/if~}} + {{~/each~}} + {{~#if (get "multiple")~}}</ul>{{/if~}} + {{~/if~}} +{{/inline}} +{{=======}} +{{#*inline "conjugation"}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 0)~}} + {{~set "multiple" false~}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 1)~}} + {{~set "multiple" true~}} + {{~/if~}} + {{~#if (get "multiple")~}}<ul>{{/if~}} + {{~#each definition.inflectionRuleChainCandidates~}} + {{~#if (op ">" inflectionRules.length 0)~}} + {{~#if (get "multiple")~}}<li>{{/if~}} + {{~#each inflectionRules~}} + {{~#if (op ">" @index 0)}} ยซ {{/if~}} + {{name}} + {{~/each~}} + {{~#if (get "multiple")~}}</li>{{/if~}} + {{~/if~}} + {{~/each~}} + {{~#if (get "multiple")~}}</ul>{{/if~}} + {{~/if~}} +{{/inline}} +{{>>>>>>>}}
\ No newline at end of file diff --git a/ext/data/templates/default-anki-field-templates.handlebars b/ext/data/templates/default-anki-field-templates.handlebars index 7b4f3802..44741866 100644 --- a/ext/data/templates/default-anki-field-templates.handlebars +++ b/ext/data/templates/default-anki-field-templates.handlebars @@ -324,7 +324,7 @@ {{~#if (get "multiple")~}}<li>{{/if~}} {{~#each inflectionRules~}} {{~#if (op ">" @index 0)}} ยซ {{/if~}} - {{.}} + {{name}} {{~/each~}} {{~#if (get "multiple")~}}</li>{{/if~}} {{~/if~}} diff --git a/ext/js/data/options-util.js b/ext/js/data/options-util.js index 074beb4e..5ef30adb 100644 --- a/ext/js/data/options-util.js +++ b/ext/js/data/options-util.js @@ -545,6 +545,7 @@ export class OptionsUtil { this._updateVersion35, this._updateVersion36, this._updateVersion37, + this._updateVersion38, ]; /* eslint-enable @typescript-eslint/unbound-method */ if (typeof targetVersion === 'number' && targetVersion < result.length) { @@ -1305,6 +1306,14 @@ export class OptionsUtil { } /** + * - Updated `conjugation` handlebars for new inflection chain format. + * @type {import('options-util').UpdateFunction} + */ + async _updateVersion38(options) { + await this._applyAnkiFieldTemplatesPatch(options, '/data/templates/anki-field-templates-upgrade-v38.handlebars'); + } + + /** * @param {string} url * @returns {Promise<chrome.tabs.Tab>} */ diff --git a/ext/js/display/display-generator.js b/ext/js/display/display-generator.js index 6236f749..be87761b 100644 --- a/ext/js/display/display-generator.js +++ b/ext/js/display/display-generator.js @@ -401,14 +401,16 @@ export class DisplayGenerator { } /** - * @param {string} inflection + * @param {import('dictionary').InflectionRule} inflection * @returns {DocumentFragment} */ _createTermInflection(inflection) { + const {name, description} = inflection; const fragment = this._templates.instantiateFragment('inflection'); const node = this._querySelector(fragment, '.inflection'); - this._setTextContent(node, inflection); - node.dataset.reason = inflection; + this._setTextContent(node, name); + if (description) { node.title = description; } + node.dataset.reason = name; return fragment; } diff --git a/ext/js/display/display.js b/ext/js/display/display.js index dc6b4713..82d84979 100644 --- a/ext/js/display/display.js +++ b/ext/js/display/display.js @@ -162,6 +162,8 @@ export class Display extends EventDispatcher { this._contentTextScanner = null; /** @type {?import('./display-notification.js').DisplayNotification} */ this._tagNotification = null; + /** @type {?import('./display-notification.js').DisplayNotification} */ + this._inflectionNotification = null; /** @type {HTMLElement} */ this._footerNotificationContainer = querySelectorNotNull(document, '#content-footer'); /** @type {OptionToggleHotkeyHandler} */ @@ -181,6 +183,8 @@ export class Display extends EventDispatcher { /** @type {(event: MouseEvent) => void} */ this._onTagClickBind = this._onTagClick.bind(this); /** @type {(event: MouseEvent) => void} */ + this._onInflectionClickBind = this._onInflectionClick.bind(this); + /** @type {(event: MouseEvent) => void} */ this._onMenuButtonClickBind = this._onMenuButtonClick.bind(this); /** @type {(event: import('popup-menu').MenuCloseEvent) => void} */ this._onMenuButtonMenuCloseBind = this._onMenuButtonMenuClose.bind(this); @@ -1026,6 +1030,14 @@ export class Display extends EventDispatcher { /** * @param {MouseEvent} e */ + _onInflectionClick(e) { + const node = /** @type {HTMLElement} */ (e.currentTarget); + this._showInflectionNotification(node); + } + + /** + * @param {MouseEvent} e + */ _onMenuButtonClick(e) { const node = /** @type {HTMLElement} */ (e.currentTarget); @@ -1086,6 +1098,21 @@ export class Display extends EventDispatcher { } /** + * @param {HTMLSpanElement} inflectionNode + */ + _showInflectionNotification(inflectionNode) { + const description = inflectionNode.title; + if (!description || !(inflectionNode instanceof HTMLSpanElement)) { return; } + + if (this._inflectionNotification === null) { + this._inflectionNotification = this.createNotification(true); + } + + this._inflectionNotification.setContent(description); + this._inflectionNotification.open(); + } + + /** * @param {boolean} animate */ _hideTagNotification(animate) { @@ -1797,6 +1824,9 @@ export class Display extends EventDispatcher { for (const node of entry.querySelectorAll('.headword-kanji-link')) { eventListeners.addEventListener(node, 'click', this._onKanjiLookupBind); } + for (const node of entry.querySelectorAll('.inflection[data-reason]')) { + eventListeners.addEventListener(node, 'click', this._onInflectionClickBind); + } for (const node of entry.querySelectorAll('.tag-label')) { eventListeners.addEventListener(node, 'click', this._onTagClickBind); } diff --git a/ext/js/language/de/german-transforms.js b/ext/js/language/de/german-transforms.js index 27b13c6a..17ba7a44 100644 --- a/ext/js/language/de/german-transforms.js +++ b/ext/js/language/de/german-transforms.js @@ -64,8 +64,8 @@ export const germanTransforms = { isDictionaryForm: true, }, }, - transforms: [ - { + transforms: { + 'nominalization': { name: 'nominalization', description: 'Noun formed from a verb', rules: [ @@ -73,7 +73,7 @@ export const germanTransforms = { suffixInflection('lung', 'eln', [], []), ], }, - { + '-bar': { name: '-bar', description: '-able adjective from a verb', rules: [ @@ -81,26 +81,26 @@ export const germanTransforms = { suffixInflection('bar', 'n', [], ['v']), // Lieferbar ], }, - { + 'negative': { name: 'negative', description: 'Negation', rules: [ prefixInflection('un', '', [], ['adj']), ], }, - { + 'separated prefix': { name: 'separated prefix', description: 'Separable prefix', rules: [ ...separatedPrefixInflections, ], }, - { + 'zu-infinitive': { name: 'zu-infinitive', description: 'zu-infinitive', rules: [ ...zuInfinitiveInflections, ], }, - ], + }, }; diff --git a/ext/js/language/en/english-transforms.js b/ext/js/language/en/english-transforms.js index c8c9c0d9..d9af831b 100644 --- a/ext/js/language/en/english-transforms.js +++ b/ext/js/language/en/english-transforms.js @@ -148,8 +148,8 @@ export const englishTransforms = { isDictionaryForm: true, }, }, - transforms: [ - { + transforms: { + 'plural': { name: 'plural', description: 'Plural form of a noun', rules: [ @@ -160,7 +160,7 @@ export const englishTransforms = { suffixInflection('ves', 'f', ['np'], ['ns']), ], }, - { + 'possessive': { name: 'possessive', description: 'Possessive form of a noun', rules: [ @@ -168,7 +168,7 @@ export const englishTransforms = { suffixInflection('s\'', 's', ['n'], ['n']), ], }, - { + 'past': { name: 'past', description: 'Simple past tense of a verb', rules: [ @@ -176,7 +176,7 @@ export const englishTransforms = { ...createPhrasalVerbInflectionsFromSuffixInflections(pastSuffixInflections), ], }, - { + 'ing': { name: 'ing', description: 'Present participle of a verb', rules: [ @@ -184,7 +184,7 @@ export const englishTransforms = { ...createPhrasalVerbInflectionsFromSuffixInflections(ingSuffixInflections), ], }, - { + '3rd pers. sing. pres': { name: '3rd pers. sing. pres', description: 'Third person singular present tense of a verb', rules: [ @@ -192,21 +192,21 @@ export const englishTransforms = { ...createPhrasalVerbInflectionsFromSuffixInflections(thirdPersonSgPresentSuffixInflections), ], }, - { + 'interposed object': { name: 'interposed object', description: 'Phrasal verb with interposed object', rules: [ phrasalVerbInterposedObjectRule, ], }, - { + 'archaic': { name: 'archaic', description: 'Archaic form of a word', rules: [ suffixInflection('\'d', 'ed', ['v'], ['v']), ], }, - { + 'adverb': { name: 'adverb', description: 'Adverb form of an adjective', rules: [ @@ -215,7 +215,7 @@ export const englishTransforms = { suffixInflection('ly', 'le', ['adv'], ['adj']), // 'humbly' ], }, - { + 'comparative': { name: 'comparative', description: 'Comparative form of an adjective', rules: [ @@ -225,7 +225,7 @@ export const englishTransforms = { ...doubledConsonantInflection('bdgmnt', 'er', ['adj'], ['adj']), ], }, - { + 'superlative': { name: 'superlative', description: 'Superlative form of an adjective', rules: [ @@ -235,14 +235,14 @@ export const englishTransforms = { ...doubledConsonantInflection('bdgmnt', 'est', ['adj'], ['adj']), ], }, - { + 'dropped g': { name: 'dropped g', description: 'Dropped g in -ing form of a verb', rules: [ suffixInflection('in\'', 'ing', ['v'], ['v']), ], }, - { + '-y': { name: '-y', description: 'Adjective formed from a verb or noun', rules: [ @@ -251,28 +251,28 @@ export const englishTransforms = { ...doubledConsonantInflection('glmnprst', 'y', [], ['n', 'v']), // 'baggy', 'saggy' ], }, - { + 'un-': { name: 'un-', description: 'Negative form of an adjective, adverb, or verb', rules: [ prefixInflection('un', '', ['adj', 'adv', 'v'], ['adj', 'adv', 'v']), ], }, - { + 'going-to future': { name: 'going-to future', description: 'Going-to future tense of a verb', rules: [ prefixInflection('going to ', '', ['v'], ['v']), ], }, - { + 'will future': { name: 'will future', description: 'Will-future tense of a verb', rules: [ prefixInflection('will ', '', ['v'], ['v']), ], }, - { + 'imperative negative': { name: 'imperative negative', description: 'Negative imperative form of a verb', rules: [ @@ -280,5 +280,5 @@ export const englishTransforms = { prefixInflection('do not ', '', ['v'], ['v']), ], }, - ], + }, }; diff --git a/ext/js/language/es/spanish-transforms.js b/ext/js/language/es/spanish-transforms.js index f2b503a6..54022fd5 100644 --- a/ext/js/language/es/spanish-transforms.js +++ b/ext/js/language/es/spanish-transforms.js @@ -73,8 +73,8 @@ export const spanishTransforms = { isDictionaryForm: true, }, }, - transforms: [ - { + transforms: { + 'plural': { name: 'plural', description: 'Plural form of a noun', rules: [ @@ -85,14 +85,14 @@ export const spanishTransforms = { ...[...'aeiou'].map((v) => suffixInflection(`${v}nes`, `${addAccent(v)}n`, ['np'], ['ns'])), // 'canciones' -> canciรณn ], }, - { + 'feminine adjective': { name: 'feminine adjective', description: 'feminine form of an adjective', rules: [ suffixInflection('a', 'o', ['adj'], ['adj']), ], }, - { + 'present indicative': { name: 'present indicative', description: 'Present indicative form of a verb', rules: [ @@ -167,5 +167,5 @@ export const spanishTransforms = { wholeWordInflection('han', 'haber', ['v'], ['v']), ], }, - ], + }, }; diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js index d5c6fa81..c8f9f671 100644 --- a/ext/js/language/ja/japanese-transforms.js +++ b/ext/js/language/ja/japanese-transforms.js @@ -130,8 +130,8 @@ export const japaneseTransforms = { isDictionaryForm: false, }, }, - transforms: [ - { + transforms: { + '-ba': { name: '-ba', description: 'Conditional', i18n: [ @@ -154,7 +154,7 @@ export const japaneseTransforms = { suffixInflection('ใใฐ', 'ใ', ['-ba'], ['v1', 'v5', 'vk', 'vs', 'vz']), ], }, - { + '-ya': { name: '-ya', description: 'Conditional (Contraction)', i18n: [ @@ -178,7 +178,7 @@ export const japaneseTransforms = { suffixInflection('ใใ', 'ใใฐ', [], ['-ba']), ], }, - { + '-cha': { name: '-cha', description: 'Contraction of -teha', i18n: [ @@ -208,7 +208,7 @@ export const japaneseTransforms = { suffixInflection('ไพใกใ', 'ไพใ', ['v5'], ['vk']), ], }, - { + '-chau': { name: '-chau', rules: [ suffixInflection('ใกใใ', 'ใ', ['v5'], ['v1']), @@ -230,7 +230,7 @@ export const japaneseTransforms = { suffixInflection('ไพใกใใ', 'ไพใ', ['v5'], ['vk']), ], }, - { + '-chimau': { name: '-chimau', rules: [ suffixInflection('ใกใพใ', 'ใ', ['v5'], ['v1']), @@ -252,14 +252,14 @@ export const japaneseTransforms = { suffixInflection('ไพใกใพใ', 'ไพใ', ['v5'], ['vk']), ], }, - { + '-shimau': { name: '-shimau', rules: [ suffixInflection('ใฆใใพใ', 'ใฆ', ['v5'], ['-te']), suffixInflection('ใงใใพใ', 'ใง', ['v5'], ['-te']), ], }, - { + '-nasai': { name: '-nasai', rules: [ suffixInflection('ใชใใ', 'ใ', [], ['v1']), @@ -280,7 +280,7 @@ export const japaneseTransforms = { suffixInflection('ไพใชใใ', 'ไพใ', [], ['vk']), ], }, - { + '-sou': { name: '-sou', rules: [ suffixInflection('ใใ', 'ใ', [], ['adj-i']), @@ -302,7 +302,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใ', 'ไพใ', [], ['vk']), ], }, - { + '-sugiru': { name: '-sugiru', rules: [ suffixInflection('ใใใ', 'ใ', ['v1'], ['adj-i']), @@ -324,7 +324,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใใ', 'ไพใ', ['v1'], ['vk']), ], }, - { + '-tai': { name: '-tai', rules: [ suffixInflection('ใใ', 'ใ', ['adj-i'], ['v1']), @@ -345,7 +345,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใ', 'ไพใ', ['adj-i'], ['vk']), ], }, - { + '-tara': { name: '-tara', rules: [ suffixInflection('ใใฃใใ', 'ใ', [], ['adj-i']), @@ -385,7 +385,7 @@ export const japaneseTransforms = { suffixInflection('ใฎใใใใใ', 'ใฎใใพใ', [], ['v5']), ], }, - { + '-tari': { name: '-tari', rules: [ suffixInflection('ใใฃใใ', 'ใ', [], ['adj-i']), @@ -425,7 +425,7 @@ export const japaneseTransforms = { suffixInflection('ใฎใใใใใ', 'ใฎใใพใ', [], ['v5']), ], }, - { + '-te': { name: '-te', rules: [ suffixInflection('ใใฆ', 'ใ', ['-te'], ['adj-i']), @@ -466,7 +466,7 @@ export const japaneseTransforms = { suffixInflection('ใพใใฆ', 'ใพใ', [], ['v']), ], }, - { + '-zu': { name: '-zu', rules: [ suffixInflection('ใ', 'ใ', [], ['v1']), @@ -487,7 +487,7 @@ export const japaneseTransforms = { suffixInflection('ไพใ', 'ไพใ', [], ['vk']), ], }, - { + '-nu': { name: '-nu', rules: [ suffixInflection('ใฌ', 'ใ', [], ['v1']), @@ -508,7 +508,7 @@ export const japaneseTransforms = { suffixInflection('ไพใฌ', 'ไพใ', [], ['vk']), ], }, - { + '-n': { name: '-n', rules: [ suffixInflection('ใ', 'ใ', [], ['v1']), @@ -529,7 +529,7 @@ export const japaneseTransforms = { suffixInflection('ไพใ', 'ไพใ', [], ['vk']), ], }, - { + '-mu': { name: '-mu', rules: [ suffixInflection('ใ', 'ใ', [], ['v1']), @@ -550,7 +550,7 @@ export const japaneseTransforms = { suffixInflection('ไพใ', 'ไพใ', [], ['vk']), ], }, - { + '-zaru': { name: '-zaru', rules: [ suffixInflection('ใใ', 'ใ', [], ['v1']), @@ -571,7 +571,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใ', 'ไพใ', [], ['vk']), ], }, - { + '-neba': { name: '-neba', rules: [ suffixInflection('ใญใฐ', 'ใ', [], ['v1']), @@ -592,13 +592,13 @@ export const japaneseTransforms = { suffixInflection('ไพใญใฐ', 'ไพใ', [], ['vk']), ], }, - { + 'adv': { name: 'adv', rules: [ suffixInflection('ใ', 'ใ', ['adv'], ['adj-i']), ], }, - { + 'causative': { name: 'causative', rules: [ suffixInflection('ใใใ', 'ใ', ['v1'], ['v1']), @@ -622,7 +622,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใใ', 'ไพใ', ['v1'], ['vk']), ], }, - { + 'imperative': { name: 'imperative', rules: [ suffixInflection('ใ', 'ใ', [], ['v1']), @@ -647,13 +647,13 @@ export const japaneseTransforms = { suffixInflection('ไพใ', 'ไพใ', [], ['vk']), ], }, - { + 'imperative negative': { name: 'imperative negative', rules: [ suffixInflection('ใช', '', [], ['v']), ], }, - { + 'masu stem': { name: 'masu stem', rules: [ suffixInflection('ใ', 'ใใ', [], ['v1d']), @@ -693,7 +693,7 @@ export const japaneseTransforms = { suffixInflection('ไพ', 'ไพใ', [], ['vk']), ], }, - { + 'negative': { name: 'negative', rules: [ suffixInflection('ใใชใ', 'ใ', ['adj-i'], ['adj-i']), @@ -716,13 +716,13 @@ export const japaneseTransforms = { suffixInflection('ใพใใ', 'ใพใ', ['v'], ['v']), ], }, - { + 'noun': { name: 'noun', rules: [ suffixInflection('ใ', 'ใ', [], ['adj-i']), ], }, - { + 'passive': { name: 'passive', rules: [ suffixInflection('ใใใ', 'ใ', ['v1'], ['v5']), @@ -743,7 +743,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใใ', 'ไพใ', ['v1'], ['vk']), ], }, - { + 'past': { name: 'past', rules: [ suffixInflection('ใใฃใ', 'ใ', ['past'], ['adj-i']), @@ -785,7 +785,7 @@ export const japaneseTransforms = { suffixInflection('ใพใใใงใใ', 'ใพใใ', ['past'], ['v']), ], }, - { + 'polite': { name: 'polite', rules: [ suffixInflection('ใพใ', 'ใ', ['v1'], ['v1']), @@ -807,7 +807,7 @@ export const japaneseTransforms = { suffixInflection('ใใใใพใ', 'ใ', ['v'], ['adj-i']), ], }, - { + 'potential': { name: 'potential', rules: [ suffixInflection('ใใ', 'ใ', ['v1'], ['v1', 'v5']), @@ -826,7 +826,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใ', 'ไพใ', ['v1'], ['vk']), ], }, - { + 'potential or passive': { name: 'potential or passive', rules: [ suffixInflection('ใใใ', 'ใ', ['v1'], ['v1']), @@ -839,7 +839,7 @@ export const japaneseTransforms = { suffixInflection('ไพใใใ', 'ไพใ', ['v1'], ['vk']), ], }, - { + 'volitional': { name: 'volitional', rules: [ suffixInflection('ใใ', 'ใ', [], ['v1']), @@ -861,7 +861,7 @@ export const japaneseTransforms = { suffixInflection('ใพใใใ', 'ใพใ', [], ['v']), ], }, - { + 'causative passive': { name: 'causative passive', rules: [ suffixInflection('ใใใใ', 'ใ', ['v1'], ['v5']), @@ -874,7 +874,7 @@ export const japaneseTransforms = { suffixInflection('ใใใใ', 'ใ', ['v1'], ['v5']), ], }, - { + '-toku': { name: '-toku', rules: [ suffixInflection('ใจใ', 'ใ', ['v5'], ['v1']), @@ -895,7 +895,7 @@ export const japaneseTransforms = { suffixInflection('ไพใจใ', 'ไพใ', ['v5'], ['vk']), ], }, - { + 'progressive or perfect': { name: 'progressive or perfect', rules: [ suffixInflection('ใฆใใ', 'ใฆ', ['v1'], ['-te']), @@ -908,26 +908,26 @@ export const japaneseTransforms = { suffixInflection('ใชใใงใใ', 'ใชใ', ['v1'], ['adj-i']), ], }, - { + '-ki': { name: '-ki', rules: [ suffixInflection('ใ', 'ใ', [], ['adj-i']), ], }, - { + '-ge': { name: '-ge', rules: [ suffixInflection('ใ', 'ใ', [], ['adj-i']), suffixInflection('ๆฐ', 'ใ', [], ['adj-i']), ], }, - { + '-garu': { name: '-garu', rules: [ suffixInflection('ใใ', 'ใ', ['v5'], ['adj-i']), ], }, - { + '-e': { name: '-e', rules: [ suffixInflection('ใญใ', 'ใชใ', [], ['adj-i']), @@ -974,7 +974,7 @@ export const japaneseTransforms = { suffixInflection('ใฆใ', 'ใใ', [], ['adj-i']), ], }, - { + 'slang': { name: 'slang', rules: [ suffixInflection('ใฆใใฆใ', 'ใจใใจใ', [], ['adj-i']), @@ -989,7 +989,7 @@ export const japaneseTransforms = { suffixInflection('ใใใใ', 'ใใใใฟ', [], []), ], }, - { + 'kansai-ben negative': { name: 'kansai-ben', description: 'Negative form of kansai-ben verbs', rules: [ @@ -1001,7 +1001,7 @@ export const japaneseTransforms = { suffixInflection('ใใฆใธใ', 'ใฃใฆใชใ', [], ['adj-i']), ], }, - { + 'kansai-ben -te': { name: 'kansai-ben', description: '-te form of kansai-ben verbs', rules: [ @@ -1022,7 +1022,7 @@ export const japaneseTransforms = { suffixInflection('ใใใฆ', 'ใใฃใฆ', ['-te'], ['-te']), ], }, - { + 'kansai-ben past': { name: 'kansai-ben', description: 'past form of kansai-ben terms', rules: [ @@ -1043,7 +1043,7 @@ export const japaneseTransforms = { suffixInflection('ใใใ', 'ใใฃใ', ['past'], ['past']), ], }, - { + 'kansai-ben -tara': { name: 'kansai-ben', description: '-tara form of kansai-ben terms', rules: [ @@ -1064,7 +1064,7 @@ export const japaneseTransforms = { suffixInflection('ใใใใ', 'ใใฃใใ', [], []), ], }, - { + 'kansai-ben -ku': { name: 'kansai-ben', description: '-ku stem of kansai-ben adjectives', rules: [ @@ -1081,7 +1081,7 @@ export const japaneseTransforms = { suffixInflection('ใใ
ใ', 'ใใ', [], ['adv']), ], }, - { + 'kansai-ben adjective -te': { name: 'kansai-ben', description: '-te form of kansai-ben adjectives', rules: [ @@ -1098,7 +1098,7 @@ export const japaneseTransforms = { suffixInflection('ใใ
ใใฆ', 'ใใใฆ', ['-te'], ['-te']), ], }, - { + 'kansai-ben adjective negative': { name: 'kansai-ben', description: 'Negative form of kansai-ben adjectives', rules: [ @@ -1115,5 +1115,5 @@ export const japaneseTransforms = { suffixInflection('ใใ
ใใชใ', 'ใใใชใ', ['adj-i'], ['adj-i']), ], }, - ], + }, }; diff --git a/ext/js/language/ko/korean-transforms.js b/ext/js/language/ko/korean-transforms.js index bad3dc4b..4cee4e3f 100644 --- a/ext/js/language/ko/korean-transforms.js +++ b/ext/js/language/ko/korean-transforms.js @@ -100,8 +100,8 @@ export const koreanTransforms = { isDictionaryForm: false, }, }, - transforms: [ - { + transforms: { + '์ด๊ฐ': { name: '์ด๊ฐ', description: 'Stem', rules: [ @@ -140,202 +140,202 @@ export const koreanTransforms = { suffixInflection('ใ
ก', 'ใ
กใทใ
', [], ['v', 'adj']), ], }, - { + '-๊ฑฐ๋': { name: '-๊ฑฐ๋', rules: [ suffixInflection('ใฑใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใดใ
', '', [], ['p', 'f', 'euob', 'eusi']), ], }, - { + '-๊ฑฐ๋': { name: '-๊ฑฐ๋', rules: [ suffixInflection('ใฑใ
ใดใ
กใน', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใดใ
กใน', '', [], ['p', 'f', 'euob', 'eusi']), ], }, - { + '-๊ฑฐ๋': { name: '-๊ฑฐ๋', rules: [ suffixInflection('ใฑใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใดใ
ฃ', '', [], ['p', 'f', 'euob', 'eusi']), ], }, - { + '-๊ฑฐ๋์': { name: '-๊ฑฐ๋์', rules: [ suffixInflection('ใฑใ
ใดใ
ฃใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใดใ
ฃใ
ใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑฐ๋': { name: '-๊ฑฐ๋', rules: [ suffixInflection('ใฑใ
ใทใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใทใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑฐ๋๋ฉด': { name: '-๊ฑฐ๋๋ฉด', rules: [ suffixInflection('ใฑใ
ใทใ
กใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใทใ
กใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑฐ๋ ': { name: '-๊ฑฐ๋ ', rules: [ suffixInflection('ใฑใ
ใทใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใทใ
กใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑฐ๋ค๋': { name: '-๊ฑฐ๋ค๋', rules: [ suffixInflection('ใฑใ
ใทใ
กในในใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใทใ
กในในใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑฐ๋ผ': { name: '-๊ฑฐ๋ผ', rules: [ suffixInflection('ใฑใ
ในใ
', 'ใทใ
', [], ['v']), ], }, - { + '-๊ฑด': { name: '-๊ฑด', rules: [ suffixInflection('ใฑใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใด', '', [], ['p', 'f', 'euob', 'eusi']), ], }, - { + '-๊ฑด๋': { name: '-๊ฑด๋', rules: [ suffixInflection('ใฑใ
ใดใทใ
', 'ใทใ
', [], ['v']), suffixInflection('ใฑใ
ใดใทใ
', '', [], ['p', 'eusi', 'jaob']), ], }, - { + '-๊ฑด๋ง๋': { name: '-๊ฑด๋ง๋', rules: [ suffixInflection('ใฑใ
ใดใ
ใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใดใ
ใ
ใดใ
กใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑด๋ง': { name: '-๊ฑด๋ง', rules: [ suffixInflection('ใฑใ
ใดใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใดใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฑธ๋': { name: '-๊ฑธ๋', rules: [ suffixInflection('ใฑใ
ในในใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ในในใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฒ๋ค': { name: '-๊ฒ๋ค', rules: [ suffixInflection('ใฑใ
ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใทใ
', '', [], ['p', 'eusi']), ], }, - { + '-๊ฒ๋ง๋': { name: '-๊ฒ๋ง๋', rules: [ suffixInflection('ใฑใ
ใ
ใ
ใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใ
ใ
ใดใ
กใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ฒ': { name: '-๊ฒ', rules: [ suffixInflection('ใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
', '', [], ['p', 'eusi']), ], }, - { + '-๊ฒ๋': { name: '-๊ฒ๋', rules: [ suffixInflection('ใฑใ
ใฒใ
กใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใฑใ
ใฒใ
กใ
', '', [], ['eusi']), ], }, - { + '-๊ฒ๋': { name: '-๊ฒ๋', rules: [ suffixInflection('ใฑใ
ใดใ
', 'ใทใ
', [], ['v']), suffixInflection('ใฑใ
ใดใ
', '', [], ['eusi']), ], }, - { + '-๊ฒ์๋ฆฌ': { name: '-๊ฒ์๋ฆฌ', rules: [ suffixInflection('ใฑใ
ใ
ใ
ฃในใ
ฃ', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใฑใ
ใ
ใ
ฃในใ
ฃ', '', [], ['eusi']), ], }, - { + '-๊ฒ ': { name: '-๊ฒ ', rules: [ suffixInflection('ใฑใ
ใ
', 'ใทใ
', ['f'], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
', '', ['f'], ['p', 'eusi']), ], }, - { + '-๊ณ ': { name: '-๊ณ ', rules: [ suffixInflection('ใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
', '', [], ['p', 'f', 'eusi', 'saob', 'euob', 'euo', 'sab', 'jaob', 'jab']), ], }, - { + '-๊ณ ๋ ํ๋ค': { name: '-๊ณ ๋ ํ๋ค', rules: [ suffixInflection('ใฑใ
ใดใ
กใด ใ
ใ
ใทใ
', 'ใทใ
', ['v'], ['v']), suffixInflection('ใฑใ
ใดใ
กใด ใ
ใ
ใทใ
', '', ['v'], ['eusi']), ], }, - { + '-๊ณค ํ๋ค': { name: '-๊ณค ํ๋ค', rules: [ suffixInflection('ใฑใ
ใด ใ
ใ
ใทใ
', 'ใทใ
', ['v'], ['v']), suffixInflection('ใฑใ
ใด ใ
ใ
ใทใ
', '', ['v'], ['eusi']), ], }, - { + '-๊ณ ๋': { name: '-๊ณ ๋', rules: [ suffixInflection('ใฑใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใฑใ
ใดใ
กใด', '', [], ['eusi']), ], }, - { + '-๊ณค': { name: '-๊ณค', rules: [ suffixInflection('ใฑใ
ใด', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใฑใ
ใด', '', [], ['eusi']), ], }, - { + '-๊ณ ๋': { name: '-๊ณ ๋', rules: [ suffixInflection('ใฑใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใทใ
', '', [], ['eusi']), ], }, - { + '-๊ณ ๋ง๊ณ ': { name: '-๊ณ ๋ง๊ณ ', rules: [ suffixInflection('ใฑใ
ใ
ใ
ในใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใ
ในใฑใ
', '', [], ['p', 'eusi']), ], }, - { + '-๊ณ ์': { name: '-๊ณ ์', rules: [ suffixInflection('ใฑใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -343,14 +343,14 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใดใ
ฃใฑใ
ใ
ใ
', 'ใ
ใ
ใดใ
ฃใทใ
', [], ['adj']), ], }, - { + '-๊ณ ์ผ': { name: '-๊ณ ์ผ', rules: [ suffixInflection('ใฑใ
ใ
ใ
', 'ใทใ
', [], ['v']), suffixInflection('ใฑใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-๊ณ ์': { name: '-๊ณ ์', rules: [ suffixInflection('ใฑใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -359,7 +359,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใฑใ
ใ
ใ
', '์๋ค', [], []), ], }, - { + '-๊ณ ์ ': { name: '-๊ณ ์ ', rules: [ suffixInflection('ใฑใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -368,117 +368,117 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใฑใ
ใ
ใ
', '์๋ค', [], []), ], }, - { + '-๊ด๋ฐ': { name: '-๊ด๋ฐ', rules: [ suffixInflection('ใฑใ
ใ
ใดใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใดใทใ
', '', [], ['p', 'eusi']), ], }, - { + '-๊ตฌ๋': { name: '-๊ตฌ๋', rules: [ suffixInflection('ใฑใ
ใดใ
', 'ใทใ
', [], ['adj', 'ida']), suffixInflection('ใฑใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ตฌ๋ ค': { name: '-๊ตฌ๋ ค', rules: [ suffixInflection('ใฑใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ตฌ๋ฃ': { name: '-๊ตฌ๋ฃ', rules: [ suffixInflection('ใฑใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ตฌ๋ง': { name: '-๊ตฌ๋ง', rules: [ suffixInflection('ใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ตฌ๋จผ': { name: '-๊ตฌ๋จผ', rules: [ suffixInflection('ใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ตฌ๋ฉด': { name: '-๊ตฌ๋ฉด', rules: [ suffixInflection('ใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ตฐ': { name: '-๊ตฐ', rules: [ suffixInflection('ใฑใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ธฐ': { name: '-๊ธฐ', rules: [ suffixInflection('ใฑใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ธฐ๋ก': { name: '-๊ธฐ๋ก', rules: [ suffixInflection('ใฑใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), ], }, - { + '-๊ธฐ๋ก๋': { name: '-๊ธฐ๋ก๋', rules: [ suffixInflection('ใฑใ
ฃในใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), ], }, - { + '-๊ธฐ๋ก์': { name: '-๊ธฐ๋ก์', rules: [ suffixInflection('ใฑใ
ฃในใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ฃในใ
ใ
ใ
', '', [], ['p']), ], }, - { + '-๊ธฐ๋ก์๋': { name: '-๊ธฐ๋ก์๋', rules: [ suffixInflection('ใฑใ
ฃในใ
ใ
ใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ฃในใ
ใ
ใ
ใดใ
ฃ', '', [], ['p']), ], }, - { + '-๊ธฐ๋ก์ ๋ค': { name: '-๊ธฐ๋ก์ ๋ค', rules: [ suffixInflection('ใฑใ
ฃในใ
ใ
ใ
ใดใทใ
กใน', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ฃในใ
ใ
ใ
ใดใทใ
กใน', '', [], ['p']), ], }, - { + '-๊ธฐ์': { name: '-๊ธฐ์', rules: [ suffixInflection('ใฑใ
ฃใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ฃใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๊ธธ๋': { name: '-๊ธธ๋', rules: [ suffixInflection('ใฑใ
ฃในในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใฑใ
ฃในในใ
', '', [], ['p', 'eusi']), ], }, - { + '-(์ผ)ใน': { name: '-(์ผ)ใน', rules: [ suffixInflection('ใน', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -492,7 +492,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใน', '', [], ['p']), ], }, - { + '-(์ผ)ใน๊ฑฐ': { name: '-(์ผ)ใน๊ฑฐ๋', rules: [ suffixInflection('ในใฑใ
ใดใ
', 'ใทใ
', [], ['v', 'adj']), @@ -506,7 +506,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใฑใ
ใดใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)ใน๊ฑธ': { name: '-(์ผ)ใน๊ฑธ', rules: [ suffixInflection('ในใฑใ
ใน', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -520,7 +520,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใฑใ
ใน', '', [], ['p']), ], }, - { + '-(์ผ)ใน๊ฒ': { name: '-(์ผ)ใน๊ฒ', rules: [ suffixInflection('ในใฑใ
', 'ใทใ
', [], ['v']), @@ -531,7 +531,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กในใฑใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)ใน ๊ฑฐ์ผ': { name: '-(์ผ)ใน ๊ฑฐ์ผ', rules: [ suffixInflection('ใน ใฑใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -543,7 +543,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใน ใฑใ
ใ
ใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)ใน ๊ฑฐ์์': { name: '-(์ผ)ใน ๊ฑฐ์์', rules: [ suffixInflection('ใน ใฑใ
ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -555,7 +555,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใน ใฑใ
ใ
ใ
ใ
ใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)ใน ๊ฒ์ด๋ค': { name: '-(์ผ)ใน ๊ฒ์ด๋ค', rules: [ suffixInflection('ใน ใฑใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -567,7 +567,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใน ใฑใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)ใน ๊ฒ์
๋๋ค': { name: '-(์ผ)ใน ๊ฒ์
๋๋ค', rules: [ suffixInflection('ใน ใฑใ
ใ
ใ
ใ
ฃใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -579,7 +579,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใน ใฑใ
ใ
ใ
ใ
ฃใ
ใดใ
ฃใทใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)ใน ๊ฑฐ๋ค': { name: '-(์ผ)ใน ๊ฑฐ๋ค', rules: [ suffixInflection('ใน ใฑใ
ใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -591,7 +591,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใน ใฑใ
ใทใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)ใน ๊ฒ๋๋ค': { name: '-(์ผ)ใน ๊ฒ๋๋ค', rules: [ suffixInflection('ใน ใฑใ
ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -603,7 +603,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใน ใฑใ
ใ
ใดใ
ฃใทใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)ใน๊ป': { name: '-(์ผ)ใน๊ป', rules: [ suffixInflection('ในใฒใ
', 'ใทใ
', [], ['v', 'adj']), @@ -615,7 +615,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กในใฒใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ใดใ
', 'ใทใ
', [], ['v', 'adj']), @@ -629,14 +629,14 @@ export const koreanTransforms = { suffixInflection('ใดใ
', '', [], ['p', 'f', 'eusi', 'sao']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใดใ
ใดใ
ฃ', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ใดใ
ฃ', '', [], ['p', 'f', 'eusi', 'sab', 'euob']), ], }, - { + '-(์ผ)๋๋ง': { name: '-(์ผ)๋๋ง', rules: [ suffixInflection('ใดใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -650,28 +650,28 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-๋์ด๊น': { name: '-๋์ด๊น', rules: [ suffixInflection('ใดใ
ใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
ใ
ใ
ฃใฒใ
', '', [], ['p', 'f', 'eusi', 'saob', 'euob']), ], }, - { + '-๋์ด๋ค': { name: '-๋์ด๋ค', rules: [ suffixInflection('ใดใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f', 'eusi', 'saob', 'jaob', 'jab', 'euob']), ], }, - { + '-๋จ': { name: '-๋จ', rules: [ suffixInflection('ใดใ
ใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -685,7 +685,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-(์ผ)๋๊ณ ': { name: '-(์ผ)๋๊ณ ', rules: [ suffixInflection('ใดใ
ใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -699,13 +699,13 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ผ': { name: '-๋๋ผ', rules: [ suffixInflection('ใดใ
ในใ
', 'ใทใ
', [], ['v']), ], }, - { + '-๋ค': { name: '-๋ค', rules: [ suffixInflection('ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -713,39 +713,39 @@ export const koreanTransforms = { suffixInflection('ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋
ธ๋': { name: '-๋
ธ๋', rules: [ suffixInflection('ใดใ
ใดใ
ฃ', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ใดใ
ฃ', '', [], ['p', 'f', 'eusi', 'sab', 'euob']), ], }, - { + '-๋
ธ๋ผ': { name: '-๋
ธ๋ผ', rules: [ suffixInflection('ใดใ
ในใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ในใ
', '', [], ['p', 'f']), ], }, - { + '-๋
ธ๋ผ๊ณ ': { name: '-๋
ธ๋ผ๊ณ ', rules: [ suffixInflection('ใดใ
ในใ
ใฑใ
', 'ใทใ
', [], ['v']), ], }, - { + '-๋
ธ๋ผ๋': { name: '-๋
ธ๋ผ๋', rules: [ suffixInflection('ใดใ
ในใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj']), ], }, - { + '-๋
ธ๋ผ๋๊น': { name: '-๋
ธ๋ผ๋๊น', rules: [ suffixInflection('ใดใ
ในใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), ], }, - { + '-๋
ธ๋ผ๋ฉด': { name: '-๋
ธ๋ผ๋ฉด', rules: [ suffixInflection('ใดใ
ในใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), @@ -754,7 +754,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
ในใ
ใ
ใ
ใด', '์๋ค', [], []), ], }, - { + '-(์ผ)๋จ': { name: '-(์ผ)๋จ', rules: [ suffixInflection('ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -767,83 +767,83 @@ export const koreanTransforms = { suffixInflection('ใดใ
', '', [], ['eusi']), ], }, - { + '-๋': { name: '-๋', rules: [ suffixInflection('ใดใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
', '', [], ['p', 'f']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใดใ
ใดใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ใดใ
', '', [], ['eusi']), ], }, - { + '-๋๋ง': { name: '-๋๋ง', rules: [ suffixInflection('ใดใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋๋จผ': { name: '-๋๋จผ', rules: [ suffixInflection('ใดใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใดใ
กใดใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
กใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋๊ณ ': { name: '-๋๋๊ณ ', rules: [ suffixInflection('ใดใ
กใดใ
ใฑใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
กใดใ
ใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋จ': { name: '-๋๋จ', rules: [ suffixInflection('ใดใ
กใดใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
กใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใดใ
กใดใ
ฃ', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใดใ
กใดใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋๋ง': { name: '-๋๋๋ง', rules: [ suffixInflection('ใดใ
กใดใ
ฃใ
ใ
ใด ใ
ใ
ใ
ใ
ใ
ใทใ
', 'ใทใ
', ['v'], ['v', 'adj']), ], }, - { + '-๋๋ผ': { name: '-๋๋ผ', rules: [ suffixInflection('ใดใ
กในใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กในใ
', '', [], ['eusi']), ], }, - { + '-๋๋ผ๊ณ ': { name: '-๋๋ผ๊ณ ', rules: [ suffixInflection('ใดใ
กในใ
ใฑใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กในใ
ใฑใ
', '', [], ['eusi']), ], }, - { + '-๋': { name: '-๋', rules: [ suffixInflection('ใดใ
กใด', 'ใทใ
', [], ['v', 'ida']), @@ -852,7 +852,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใด', '์๋ค', [], ['adj']), ], }, - { + '-(์ผ)ใด': { name: '-(์ผ)ใด', rules: [ suffixInflection('ใด', 'ใทใ
', [], ['v', 'adj']), @@ -861,7 +861,7 @@ export const koreanTransforms = { suffixInflection('ใด', '', [], ['eusi', 'f']), ], }, - { + '-(์ผ/๋)ใด๊ฐ': { name: '-(์ผ/๋)ใด๊ฐ', rules: [ suffixInflection('ใดใฑใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -874,7 +874,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใฑใ
', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด๊ฐ': { name: '-(์ผ/๋)ใด๊ฐ', rules: [ suffixInflection('ใดใฑใ
ใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -887,7 +887,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใฑใ
ใ
', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด๊ฑธ': { name: '-(์ผ/๋)ใด๊ฑธ', rules: [ suffixInflection('ใดใฑใ
ใน', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -900,7 +900,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใฑใ
ใน', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด๊ณ ': { name: '-(์ผ/๋)ใด๊ณ ', rules: [ suffixInflection('ใดใฑใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -913,56 +913,56 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใฑใ
', '์๋ค', [], []), ], }, - { + '-๋๊ตฌ๋': { name: '-๋๊ตฌ๋', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใดใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ใดใ
', '', [], ['eusi']), ], }, - { + '-๋๊ตฌ๋ ค': { name: '-๋๊ตฌ๋ ค', rules: [ suffixInflection('ใดใ
กใดใฑใ
ในใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ในใ
', '', [], ['eusi']), ], }, - { + '-๋๊ตฌ๋ฃ': { name: '-๋๊ตฌ๋ฃ', rules: [ suffixInflection('ใดใ
กใดใฑใ
ในใ
', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ในใ
', '', [], ['eusi']), ], }, - { + '-๋๊ตฌ๋ง': { name: '-๋๊ตฌ๋ง', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋๊ตฌ๋จผ': { name: '-๋๊ตฌ๋จผ', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋๊ตฌ๋ฉด': { name: '-๋๊ตฌ๋ฉด', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋๊ตฐ': { name: '-๋๊ตฐ', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใด', 'ใทใ
', [], ['v']), suffixInflection('ใดใ
กใดใฑใ
ใด', '', [], ['eusi']), ], }, - { + '-๋๊ถ๋': { name: '-๋๊ถ๋', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใ
ใดใ
ฃ', 'ใทใ
', [], ['v']), @@ -971,7 +971,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใฑใ
ใ
ใดใ
ฃ', '์๋ค', [], []), ], }, - { + '-๋๊ณผ๋': { name: '-๋๊ณผ๋', rules: [ suffixInflection('ใดใ
กใดใฑใ
ใ
ใดใ
ฃ', 'ใทใ
', [], ['v']), @@ -980,7 +980,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใฑใ
ใ
ใดใ
ฃ', '์๋ค', [], []), ], }, - { + '-(๋)ใด๋ค': { name: '-(๋)ใด๋ค', rules: [ suffixInflection('ใดใทใ
', 'ใทใ
', [], ['v']), @@ -989,7 +989,7 @@ export const koreanTransforms = { suffixInflection('ใดใทใ
', '', [], ['eusi']), ], }, - { + '-((๋)ใด)๋ค๊ณ ': { name: '-((๋)ใด)๋ค๊ณ ', rules: [ suffixInflection('ใดใทใ
ใฑใ
', 'ใทใ
', [], ['v']), @@ -1000,7 +1000,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋': { name: '-((๋)ใด)๋ค๋', rules: [ suffixInflection('ใดใทใ
ใดใ
', 'ใทใ
', [], ['v']), @@ -1011,7 +1011,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋ค': { name: '-((๋)ใด)๋ค๋ค', rules: [ suffixInflection('ใดใทใ
ใดใ
', 'ใทใ
', [], ['v']), @@ -1022,7 +1022,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋๋': { name: '-((๋)ใด)๋ค๋๋', rules: [ suffixInflection('ใดใทใ
ใดใ
กใดใ
ฃ', 'ใทใ
', [], ['v']), @@ -1033,7 +1033,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใ
กใดใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋': { name: '-((๋)ใด)๋ค๋', rules: [ suffixInflection('ใดใทใ
ใดใ
ฃ', 'ใทใ
', [], ['v']), @@ -1044,7 +1044,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋๊น': { name: '-((๋)ใด)๋ค๋๊น', rules: [ suffixInflection('ใดใทใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v']), @@ -1055,7 +1055,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใ
ฃใฒใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋๋ผ': { name: '-((๋)ใด)๋ค๋๋ผ', rules: [ suffixInflection('ใดใทใ
ใทใ
ในใ
', 'ใทใ
', [], ['v']), @@ -1066,7 +1066,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใทใ
ในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋ง๋': { name: '-((๋)ใด)๋ค๋ง๋', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'ida']), @@ -1077,7 +1077,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ใดใ
กใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋ง': { name: '-((๋)ใด)๋ค๋ง', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'ida']), @@ -1088,7 +1088,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋ฉฐ': { name: '-((๋)ใด)๋ค๋ฉฐ', rules: [ suffixInflection('ใดใทใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -1099,7 +1099,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋ฉด': { name: '-((๋)ใด)๋ค๋ฉด', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), @@ -1110,7 +1110,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค๋ฉด์': { name: '-((๋)ใด)๋ค๋ฉด์', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใดใ
ใ
', 'ใทใ
', [], ['v']), @@ -1121,7 +1121,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ใดใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค์': { name: '-((๋)ใด)๋ค์', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), @@ -1132,7 +1132,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ใดใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค์ค': { name: '-((๋)ใด)๋ค์ค', rules: [ suffixInflection('ใดใทใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -1143,7 +1143,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ค์ง': { name: '-((๋)ใด)๋ค์ง', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ฃ', 'ใทใ
', [], ['v']), @@ -1154,7 +1154,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋จ๋ค': { name: '-((๋)ใด)๋จ๋ค', rules: [ suffixInflection('ใดใทใ
ใดใทใ
', 'ใทใ
', [], ['v']), @@ -1165,7 +1165,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ด': { name: '-((๋)ใด)๋ด', rules: [ suffixInflection('ใดใทใ
ใ
', 'ใทใ
', [], ['v']), @@ -1176,7 +1176,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ต๋๊น': { name: '-((๋)ใด)๋ต๋๊น', rules: [ suffixInflection('ใดใทใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v']), @@ -1187,7 +1187,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใดใ
ฃใฒใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ต๋๋ค': { name: '-((๋)ใด)๋ต๋๋ค', rules: [ suffixInflection('ใดใทใ
ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v']), @@ -1198,7 +1198,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใดใ
ฃใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋ต์๊ณ ': { name: '-((๋)ใด)๋ต์๊ณ ', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใ
ฃใฑใ
', 'ใทใ
', [], ['v']), @@ -1209,7 +1209,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใ
ใ
ใ
ฃใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋': { name: '-((๋)ใด)๋', rules: [ suffixInflection('ใดใทใ
', 'ใทใ
', [], ['v']), @@ -1220,7 +1220,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-((๋)ใด)๋์': { name: '-((๋)ใด)๋์', rules: [ suffixInflection('ใดใทใ
ใ
ใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1233,7 +1233,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใทใ
ใ
ใ
', '์๋ค', [], []), ], }, - { + '-((๋)ใด)๋๋ค': { name: '-((๋)ใด)๋๋ค', rules: [ suffixInflection('ใดใทใ
ใดใทใ
', 'ใทใ
', [], ['v']), @@ -1244,7 +1244,7 @@ export const koreanTransforms = { suffixInflection('ใทใ
ใดใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-(์ผ/๋)ใด๋ฐ': { name: '-(์ผ/๋)ใด๋ฐ', rules: [ suffixInflection('ใดใทใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -1257,7 +1257,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใทใ
', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด๋์ผ': { name: '-(์ผ/๋)ใด๋์ผ', rules: [ suffixInflection('ใดใทใ
ใ
ใ
ใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -1270,13 +1270,13 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใทใ
ใ
ใ
ใ
', '', [], []), ], }, - { + '-๋๋๋ค': { name: '-๋๋๋ค', rules: [ suffixInflection('ใดใ
กใดใทใ
ใทใ
', 'ใทใ
', [], ['v']), ], }, - { + '-(์ผ/๋)ใด๋ฐ': { name: '-(์ผ/๋)ใด๋ฐ', rules: [ suffixInflection('ใดใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1290,7 +1290,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใ
ใ
', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด์ง': { name: '-(์ผ/๋)ใด์ง', rules: [ suffixInflection('ใดใ
ใ
ฃ', 'ใทใ
', [], ['adj', 'ida']), @@ -1303,7 +1303,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใ
ใ
ฃ', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด์ง๊ณ ': { name: '-(์ผ/๋)ใด์ง๊ณ ', rules: [ suffixInflection('ใดใ
ใ
ฃใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1316,7 +1316,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใ
ใ
ฃใฑใ
', '์๋ค', [], []), ], }, - { + '-(์ผ/๋)ใด์ง๋ผ': { name: '-(์ผ/๋)ใด์ง๋ผ', rules: [ suffixInflection('ใดใ
ใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1329,7 +1329,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใดใ
กใดใ
ใ
ฃในใ
', '์๋ค', [], []), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1342,7 +1342,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃ', '', [], ['p', 'f', 'eusi', 'euo', 'sao', 'jao']), ], }, - { + '-(์ผ)๋๊น': { name: '-(์ผ)๋๊น', rules: [ suffixInflection('ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1356,7 +1356,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋๊น๋๋ฃจ': { name: '-(์ผ)๋๊น๋๋ฃจ', rules: [ suffixInflection('ใดใ
ฃใฒใ
ใดใ
กในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1370,7 +1370,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃใฒใ
ใดใ
กในใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋๊น๋': { name: '-(์ผ)๋๊น๋', rules: [ suffixInflection('ใดใ
ฃใฒใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1384,7 +1384,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃใฒใ
ใดใ
กใด', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋๊น': { name: '-(์ผ)๋๊น', rules: [ suffixInflection('ใดใ
ฃใฒใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1398,7 +1398,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃใฒใ
ใด', '', [], ['p', 'f']), ], }, - { + '-(์ผ/๋)๋๋ผ': { name: '-(์ผ/๋)๋๋ผ', rules: [ suffixInflection('ใดใ
ฃในใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -1409,7 +1409,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-(์ผ/๋)๋๋ง์น': { name: '-(์ผ/๋)๋๋ง์น', rules: [ suffixInflection('ใดใ
ฃใ
ใ
ใดใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1421,7 +1421,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃใ
ใ
ใดใ
ใ
ฃ', '', [], ['p', 'f']), ], }, - { + '-(์ผ/๋)๋๋งํผ': { name: '-(์ผ/๋)๋๋งํผ', rules: [ suffixInflection('ใดใ
ฃใ
ใ
ใดใ
ใ
กใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1433,41 +1433,41 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ฃใ
ใ
ใดใ
ใ
กใ
', '', [], ['p', 'f']), ], }, - { + '-๋ค': { name: '-๋ค', rules: [ suffixInflection('ใทใ
', '', [], ['p', 'f', 'eusi', 'ida']), ], }, - { + '-๋ค๊ฐ': { name: '-๋ค๊ฐ', rules: [ suffixInflection('ใทใ
ใฑใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใทใ
ใฑใ
', '', [], ['p', 'eusi']), ], }, - { + '-๋ค๊ฐ๋': { name: '-๋ค๊ฐ๋', rules: [ suffixInflection('ใทใ
ใฑใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ใดใ
กใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ค๊ฐ': { name: '-๋ค๊ฐ', rules: [ suffixInflection('ใทใ
ใฑใ
ใด', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใทใ
ใฑใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ค๋ง๋ค': { name: '-๋ค๋ง๋ค', rules: [ suffixInflection('ใทใ
ใ
ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใ
ใ
ใทใ
', '', [], ['p', 'eusi']), ], }, - { + '-๋ค์ํผ': { name: '-๋ค์ํผ', rules: [ suffixInflection('ใทใ
ใ
ใ
ฃใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj']), @@ -1476,237 +1476,237 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใทใ
ใ
ใ
ฃใ
ใ
ฃ', '์๋ค', [], []), ], }, - { + '-๋จ': { name: '-๋จ', rules: [ suffixInflection('ใทใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋': { name: '-๋', rules: [ suffixInflection('ใทใ
', 'ใทใ
', ['do'], ['v', 'adj', 'ida']), suffixInflection('ใทใ
', '', ['do'], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋': { name: '-๋๊ตฌ๋', rules: [ suffixInflection('ใทใ
ใฑใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋ ค': { name: '-๋๊ตฌ๋ ค', rules: [ suffixInflection('ใทใ
ใฑใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋ฃ': { name: '-๋๊ตฌ๋ฃ', rules: [ suffixInflection('ใทใ
ใฑใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋ง': { name: '-๋๊ตฌ๋ง', rules: [ suffixInflection('ใทใ
ใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋จผ': { name: '-๋๊ตฌ๋จผ', rules: [ suffixInflection('ใทใ
ใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋ฉด': { name: '-๋๊ตฌ๋ฉด', rules: [ suffixInflection('ใทใ
ใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฐ': { name: '-๋๊ตฐ', rules: [ suffixInflection('ใทใ
ใฑใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใฑใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใทใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋จ': { name: '-๋๋จ', rules: [ suffixInflection('ใทใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใทใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ฃ', '', [], ['p', 'f', 'eusi', 'euob', 'euo', 'sab']), ], }, - { + '-๋๋๋ผ': { name: '-๋๋๋ผ', rules: [ suffixInflection('ใทใ
ใดใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ฃในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋๋ง๋': { name: '-๋๋๋ง๋', rules: [ suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ใดใ
กใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋๋ง': { name: '-๋๋๋ง', rules: [ suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋์ด๊น': { name: '-๋๋์ด๊น', rules: [ suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ฃใฒใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋์ด๋ค': { name: '-๋๋์ด๋ค', rules: [ suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ฃใ
ใ
ฃใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ผ๋': { name: '-๋๋ผ๋', rules: [ suffixInflection('ใทใ
ในใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ในใ
ใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋์ด๊น': { name: '-๋์ด๊น', rules: [ suffixInflection('ใทใ
ใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใ
ใ
ฃใฒใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋์ด๋ค': { name: '-๋์ด๋ค', rules: [ suffixInflection('ใทใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋': { name: '-๋', rules: [ suffixInflection('ใทใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ฐ': { name: '-๋๊ฐ', rules: [ suffixInflection('ใทใ
ใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ฐ': { name: '-๋๊ฐ', rules: [ suffixInflection('ใทใ
ใดใฑใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใฑใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ฑธ': { name: '-๋๊ฑธ', rules: [ suffixInflection('ใทใ
ใดใฑใ
ใน', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใฑใ
ใน', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ณ ': { name: '-๋๊ณ ', rules: [ suffixInflection('ใทใ
ใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ฐ': { name: '-๋๋ฐ', rules: [ suffixInflection('ใทใ
ใดใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ค': { name: '-๋๋ค', rules: [ suffixInflection('ใทใ
ใดใทใ
กใน', '', [], ['p']), ], }, - { + '-๋๋ฐ': { name: '-๋๋ฐ', rules: [ suffixInflection('ใทใ
ใดใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋์ง': { name: '-๋์ง', rules: [ suffixInflection('ใทใ
ใดใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใดใ
ใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ฐ': { name: '-๋ฐ', rules: [ suffixInflection('ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ฐ์': { name: '-๋ฐ์', rules: [ suffixInflection('ใทใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ค': { name: '-๋๋ค', rules: [ suffixInflection('ใทใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ก': { name: '-๋๋ก', rules: [ suffixInflection('ใทใ
ในใ
ใฑ', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใทใ
ในใ
ใฑ', '', [], ['eusi']), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ใทใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -1715,152 +1715,152 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใทใ
ใ
ฃ', '', [], ['p', 'f']), ], }, - { + '-๋๊ตฌ๋': { name: '-๋๊ตฌ๋', rules: [ suffixInflection('ใทใ
กใฑใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใฑใ
ใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋ฃ': { name: '-๋๊ตฌ๋ฃ', rules: [ suffixInflection('ใทใ
กใฑใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใฑใ
ในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฌ๋ฉด': { name: '-๋๊ตฌ๋ฉด', rules: [ suffixInflection('ใทใ
กใฑใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใฑใ
ใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๊ตฐ': { name: '-๋๊ตฐ', rules: [ suffixInflection('ใทใ
กใฑใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใฑใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใทใ
กใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋': { name: '-๋๋', rules: [ suffixInflection('ใทใ
กใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋๋ผ': { name: '-๋๋๋ผ', rules: [ suffixInflection('ใทใ
กใดใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใ
ฃในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ผ': { name: '-๋๋ผ', rules: [ suffixInflection('ใทใ
กในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กในใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ผ๋': { name: '-๋๋ผ๋', rules: [ suffixInflection('ใทใ
กในใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กในใ
ใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋๋ผ๋ฉด': { name: '-๋๋ผ๋ฉด', rules: [ suffixInflection('ใทใ
กในใ
ใ
ใ
ใด', '', [], ['p']), ], }, - { + '-๋๋๋': { name: '-๋๋๋', rules: [ suffixInflection('ใทใ
กในใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กในใ
ใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ ': { name: '-๋ ', rules: [ suffixInflection('ใทใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใด', '', [], ['p', 'eusi']), ], }, - { + '-๋ ๊ฐ': { name: '-๋ ๊ฐ', rules: [ suffixInflection('ใทใ
กใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใฑใ
', '', [], ['p', 'eusi']), ], }, - { + '-๋ ๊ฑธ': { name: '-๋ ๊ฑธ', rules: [ suffixInflection('ใทใ
กใดใฑใ
ใน', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใฑใ
ใน', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ ๊ณ ': { name: '-๋ ๊ณ ', rules: [ suffixInflection('ใทใ
กใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใฑใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ ๋ฐ': { name: '-๋ ๋ฐ', rules: [ suffixInflection('ใทใ
กใดใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใทใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ ๋ค': { name: '-๋ ๋ค', rules: [ suffixInflection('ใทใ
กใดใทใ
กใน', '', [], ['p']), ], }, - { + '-๋ ์ง': { name: '-๋ ์ง', rules: [ suffixInflection('ใทใ
กใดใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใดใ
ใ
ฃ', '', [], ['p', 'eusi']), ], }, - { + '-๋ฏ': { name: '-๋ฏ', rules: [ suffixInflection('ใทใ
กใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋ฏ์ด': { name: '-๋ฏ์ด', rules: [ suffixInflection('ใทใ
กใ
ใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
กใ
ใ
ใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-๋': { name: '-๋', rules: [ suffixInflection('ใทใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใทใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-(์ผ)๋ผ': { name: '-(์ผ)๋ผ', rules: [ suffixInflection('ในใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1873,7 +1873,7 @@ export const koreanTransforms = { suffixInflection('ในใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๊ณ ': { name: '-(์ผ)๋ผ๊ณ ', rules: [ suffixInflection('ในใ
ใฑใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1886,7 +1886,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๊ตฌ': { name: '-(์ผ)๋ผ๊ตฌ', rules: [ suffixInflection('ในใ
ใฑใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1899,7 +1899,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋': { name: '-(์ผ)๋ผ๋', rules: [ suffixInflection('ในใ
ใดใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1912,7 +1912,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋ค': { name: '-(์ผ)๋ผ๋ค', rules: [ suffixInflection('ในใ
ใดใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1925,7 +1925,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋๋': { name: '-(์ผ)๋ผ๋๋', rules: [ suffixInflection('ในใ
ใดใ
กใดใ
ฃ', 'ใทใ
', [], ['v', 'ida']), @@ -1938,7 +1938,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
กใดใ
ฃ', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋': { name: '-(์ผ)๋ผ๋', rules: [ suffixInflection('ในใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'ida']), @@ -1951,7 +1951,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
ฃ', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋๊น': { name: '-(์ผ)๋ผ๋๊น', rules: [ suffixInflection('ในใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1964,14 +1964,14 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
ฃใฒใ
', '', [], ['eusi', 'do']), ], }, - { + '-๋ผ๋': { name: '-๋ผ๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใทใ
', '์๋๋ค', [], ['adj']), suffixInflection('ในใ
ใทใ
', 'ใทใ
', [], ['ida']), ], }, - { + '-(์ผ)๋ผ๋ฉฐ': { name: '-(์ผ)๋ผ๋ฉฐ', rules: [ suffixInflection('ในใ
ใ
ใ
', 'ใทใ
', [], ['v', 'ida']), @@ -1984,7 +1984,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋ฉด': { name: '-(์ผ)๋ผ๋ฉด', rules: [ suffixInflection('ในใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'ida']), @@ -1997,7 +1997,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ใด', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ๋ฉด์': { name: '-(์ผ)๋ผ๋ฉด์', rules: [ suffixInflection('ในใ
ใ
ใ
ใดใ
ใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2010,7 +2010,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ใดใ
ใ
', '', [], ['eusi', 'do']), ], }, - { + '-๋ผ์': { name: '-๋ผ์', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
', '์๋๋ค', [], ['adj']), @@ -2018,7 +2018,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)๋ผ์': { name: '-(์ผ)๋ผ์', rules: [ suffixInflection('ในใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'ida']), @@ -2031,7 +2031,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ใด', '', [], ['eusi', 'do']), ], }, - { + '-๋ผ์ผ': { name: '-๋ผ์ผ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
', '์๋๋ค', [], ['adj']), @@ -2039,7 +2039,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-๋ผ์ผ๋ง': { name: '-๋ผ์ผ๋ง', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
ใ
ใ
ใด', '์๋๋ค', [], ['adj']), @@ -2047,7 +2047,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-(์ผ)๋ผ์ค': { name: '-(์ผ)๋ผ์ค', rules: [ suffixInflection('ในใ
ใ
ใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2060,7 +2060,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ผ์ง': { name: '-(์ผ)๋ผ์ง', rules: [ suffixInflection('ในใ
ใ
ใ
ฃ', 'ใทใ
', [], ['v', 'ida']), @@ -2073,7 +2073,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ฃ', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋ฝ': { name: '-(์ผ)๋ฝ', rules: [ suffixInflection('ในใ
ใฑ', 'ใทใ
', [], ['v', 'adj']), @@ -2085,7 +2085,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กในใ
ใฑ', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ในใ
ใด', 'ใทใ
', [], ['v', 'ida']), @@ -2098,7 +2098,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใด', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋๋ค': { name: '-(์ผ)๋๋ค', rules: [ suffixInflection('ในใ
ใดใทใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2111,7 +2111,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใทใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ในใ
ใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2124,7 +2124,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋๋๊น': { name: '-(์ผ)๋๋๊น', rules: [ suffixInflection('ในใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2137,7 +2137,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใดใ
ฃใฒใ
', '', [], ['eusi', 'do']), ], }, - { + '-(์ผ)๋๋๋ค': { name: '-(์ผ)๋๋๋ค', rules: [ suffixInflection('ในใ
ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2150,7 +2150,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใดใ
ฃใทใ
', '', [], ['eusi']), ], }, - { + '-๋์๊ณ ': { name: '-๋์๊ณ ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
ใ
ฃใฑใ
', '์๋๋ค', [], ['adj']), @@ -2158,7 +2158,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ใ
ฃใฑใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)๋': { name: '-(์ผ)๋', rules: [ suffixInflection('ในใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2171,7 +2171,7 @@ export const koreanTransforms = { suffixInflection('ในใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)๋์': { name: '-(์ผ)๋์', rules: [ suffixInflection('ในใ
ใ
ใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2184,7 +2184,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)๋ด': { name: '-(์ผ)๋ด', rules: [ suffixInflection('ในใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2196,7 +2196,7 @@ export const koreanTransforms = { suffixInflection('ในใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)๋ฌ': { name: '-(์ผ)๋ฌ', rules: [ suffixInflection('ในใ
', 'ใทใ
', [], ['v', 'ida']), @@ -2208,7 +2208,7 @@ export const koreanTransforms = { suffixInflection('ในใ
', '', [], ['eusi']), ], }, - { + '-๋ฌ๋': { name: '-๋ฌ๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใดใ
ฃ', '์๋๋ค', [], ['adj']), @@ -2216,7 +2216,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
ฃ', '', [], ['eusi']), ], }, - { + '-๋ฌ๋๋ผ': { name: '-๋ฌ๋๋ผ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใดใ
ฃในใ
', '์๋๋ค', [], ['adj']), @@ -2224,7 +2224,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
ฃในใ
', '', [], ['eusi']), ], }, - { + '-๋ฌ๋์ด๊น': { name: '-๋ฌ๋์ด๊น', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใดใ
ฃใ
ใ
ฃใฒใ
', '์๋๋ค', [], ['adj']), @@ -2232,7 +2232,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
ฃใ
ใ
ฃใฒใ
', '', [], ['eusi']), ], }, - { + '-๋ฌ๋์ด๋ค': { name: '-๋ฌ๋์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใดใ
ฃใ
ใ
ฃใทใ
', '์๋๋ค', [], ['adj']), @@ -2240,7 +2240,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใ
ฃใ
ใ
ฃใทใ
', '', [], ['eusi']), ], }, - { + '-๋ฌ๋ผ': { name: '-๋ฌ๋ผ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ในใ
', '์๋๋ค', [], ['adj']), @@ -2248,7 +2248,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ในใ
', '', [], ['eusi']), ], }, - { + '-๋ฌ์ด๊น': { name: '-๋ฌ์ด๊น', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
ฃใฒใ
', '์๋๋ค', [], ['adj']), @@ -2256,7 +2256,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ฃใฒใ
', '', [], ['eusi']), ], }, - { + '-๋ฌ์ด๋ค': { name: '-๋ฌ์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
ฃใทใ
', '์๋๋ค', [], ['adj']), @@ -2264,7 +2264,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ฃใทใ
', '', [], ['eusi']), ], }, - { + '-๋ฐ๊ฐ': { name: '-๋ฐ๊ฐ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใดใฑใ
', '์๋๋ค', [], ['adj']), @@ -2272,7 +2272,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใฑใ
', '', [], ['eusi']), ], }, - { + '-๋ฐ๋ค': { name: '-๋ฐ๋ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใดใทใ
กใน', '์๋๋ค', [], ['adj']), @@ -2280,7 +2280,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใดใทใ
กใน', '', [], ['eusi']), ], }, - { + '-(์ผ)๋ ค': { name: '-(์ผ)๋ ค', rules: [ suffixInflection('ในใ
', 'ใทใ
', [], ['v']), @@ -2293,7 +2293,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๊ฑฐ๋ ': { name: '-(์ผ)๋ ค๊ฑฐ๋ ', rules: [ suffixInflection('ในใ
ใฑใ
ใทใ
กใด', 'ใทใ
', [], ['v']), @@ -2306,7 +2306,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใฑใ
ใทใ
กใด', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๊ณ ': { name: '-(์ผ)๋ ค๊ณ ', rules: [ suffixInflection('ในใ
ใฑใ
', 'ใทใ
', [], ['v', 'adj']), @@ -2319,7 +2319,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋': { name: '-(์ผ)๋ ค๋', rules: [ suffixInflection('ในใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2333,7 +2333,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใดใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋': { name: '-(์ผ)๋ ค๋', rules: [ suffixInflection('ในใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2347,7 +2347,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใดใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋์': { name: '-(์ผ)๋ ค๋์', rules: [ suffixInflection('ในใ
ใดใ
ฃใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2361,7 +2361,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใดใ
ฃใ
ใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋ ': { name: '-(์ผ)๋ ค๋ ', rules: [ suffixInflection('ในใ
ใทใ
กใด', 'ใทใ
', [], ['v']), @@ -2374,7 +2374,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใทใ
กใด', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋ง': { name: '-(์ผ)๋ ค๋ง', rules: [ suffixInflection('ในใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -2387,7 +2387,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋ฉด': { name: '-(์ผ)๋ ค๋ฉด', rules: [ suffixInflection('ในใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2401,7 +2401,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใ
ใด', '', [], ['p']), ], }, - { + '-(์ผ)๋ ค๋ฌด๋': { name: '-(์ผ)๋ ค๋ฌด๋', rules: [ suffixInflection('ในใ
ใ
ใ
ใดใ
', 'ใทใ
', [], ['v']), @@ -2414,7 +2414,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใ
ใดใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ จ': { name: '-(์ผ)๋ จ', rules: [ suffixInflection('ในใ
ใด', 'ใทใ
', [], ['v']), @@ -2427,7 +2427,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใด', '', [], ['p']), ], }, - { + '-(์ผ)๋ จ๋ง๋': { name: '-(์ผ)๋ จ๋ง๋', rules: [ suffixInflection('ในใ
ใดใ
ใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2441,7 +2441,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใดใ
ใ
ใดใ
กใด', '', [], ['p']), ], }, - { + '-(์ผ)๋ จ๋ง': { name: '-(์ผ)๋ จ๋ง', rules: [ suffixInflection('ในใ
ใดใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2455,7 +2455,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใดใ
ใ
ใด', '', [], ['p']), ], }, - { + '-(์ผ)๋ ด': { name: '-(์ผ)๋ ด', rules: [ suffixInflection('ในใ
ใ
', 'ใทใ
', [], ['v']), @@ -2468,7 +2468,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ต๋๊น': { name: '-(์ผ)๋ ต๋๊น', rules: [ suffixInflection('ในใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v']), @@ -2481,7 +2481,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใ
ฃใฒใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ต๋๋ค': { name: '-(์ผ)๋ ต๋๋ค', rules: [ suffixInflection('ในใ
ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v']), @@ -2494,7 +2494,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใ
ฃใทใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ ท๋ค': { name: '-(์ผ)๋ ท๋ค', rules: [ suffixInflection('ในใ
ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2508,7 +2508,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใทใ
', '', [], ['p']), ], }, - { + '-๋ก๊ณ ': { name: '-๋ก๊ณ ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
', '์๋๋ค', [], ['adj']), @@ -2516,7 +2516,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
', '', [], ['eusi']), ], }, - { + '-๋ก๊ณ ๋': { name: '-๋ก๊ณ ๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ใดใ
', '์๋๋ค', [], ['adj']), @@ -2524,7 +2524,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ใดใ
', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฌ๋': { name: '-๋ก๊ตฌ๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ใดใ
', '์๋๋ค', [], ['adj']), @@ -2532,7 +2532,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ใดใ
', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฌ๋ ค': { name: '-๋ก๊ตฌ๋ ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ในใ
', '์๋๋ค', [], ['adj']), @@ -2540,7 +2540,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ในใ
', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฌ๋ฃ': { name: '-๋ก๊ตฌ๋ฃ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ในใ
', '์๋๋ค', [], ['adj']), @@ -2548,7 +2548,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ในใ
', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฌ๋ง': { name: '-๋ก๊ตฌ๋ง', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ใ
ใ
ใด', '์๋๋ค', [], ['adj']), @@ -2556,7 +2556,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฌ๋จผ': { name: '-๋ก๊ตฌ๋จผ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ใ
ใ
ใด', '์๋๋ค', [], ['adj']), @@ -2564,7 +2564,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฌ๋ฉด': { name: '-๋ก๊ตฌ๋ฉด', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ใ
ใ
ใด', '์๋๋ค', [], ['adj']), @@ -2572,7 +2572,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-๋ก๊ตฐ': { name: '-๋ก๊ตฐ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใฑใ
ใด', '์๋๋ค', [], ['adj']), @@ -2580,7 +2580,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใฑใ
ใด', '', [], ['eusi']), ], }, - { + '-๋ก๋ค': { name: '-๋ก๋ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใทใ
', '์๋๋ค', [], ['adj']), @@ -2588,7 +2588,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใทใ
', '', [], ['eusi']), ], }, - { + '-๋ก๋': { name: '-๋ก๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใทใ
ใ
ฃ', '์๋๋ค', [], ['adj']), @@ -2596,7 +2596,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใทใ
ใ
ฃ', '', [], ['eusi']), ], }, - { + '-๋ก๋ผ': { name: '-๋ก๋ผ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ในใ
', '์๋๋ค', [], ['adj']), @@ -2604,7 +2604,7 @@ export const koreanTransforms = { suffixInflection('', '๋ค', [], ['ida']), ], }, - { + '-๋ก์๋': { name: '-๋ก์๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
ใดใ
ฃ', '์๋๋ค', [], ['adj']), @@ -2612,7 +2612,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
ใดใ
ฃ', '๋ค', [], ['ida']), ], }, - { + '-๋ก์ธ': { name: '-๋ก์ธ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃในใ
ใ
ใ
', '์๋๋ค', [], ['adj']), @@ -2620,7 +2620,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)๋ฆฌ': { name: '-(์ผ)๋ฆฌ', rules: [ suffixInflection('ในใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2634,7 +2634,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๊น': { name: '-(์ผ)๋ฆฌ๊น', rules: [ suffixInflection('ในใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2648,7 +2648,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใฒใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋': { name: '-(์ผ)๋ฆฌ๋', rules: [ suffixInflection('ในใ
ฃใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2662,7 +2662,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใดใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋๋ผ': { name: '-(์ผ)๋ฆฌ๋๋ผ', rules: [ suffixInflection('ในใ
ฃใดใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2676,7 +2676,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใดใ
ฃในใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋ค': { name: '-(์ผ)๋ฆฌ๋ค', rules: [ suffixInflection('ในใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2690,7 +2690,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใทใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋ผ': { name: '-(์ผ)๋ฆฌ๋ผ', rules: [ suffixInflection('ในใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2704,7 +2704,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃในใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋ก๋ค': { name: '-(์ผ)๋ฆฌ๋ก๋ค', rules: [ suffixInflection('ในใ
ฃในใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2718,7 +2718,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃในใ
ใทใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋ง์น': { name: '-(์ผ)๋ฆฌ๋ง์น', rules: [ suffixInflection('ในใ
ฃใ
ใ
ใดใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2732,7 +2732,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใ
ใ
ใดใ
ใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ๋งํผ': { name: '-(์ผ)๋ฆฌ๋งํผ', rules: [ suffixInflection('ในใ
ฃใ
ใ
ใดใ
ใ
กใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2746,7 +2746,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใ
ใ
ใดใ
ใ
กใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ฆฌ์ค': { name: '-(์ผ)๋ฆฌ์ค', rules: [ suffixInflection('ในใ
ฃใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2760,7 +2760,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ฃใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)๋ง': { name: '-(์ผ)๋ง', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v']), @@ -2771,7 +2771,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)๋งค': { name: '-(์ผ)๋งค', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2785,7 +2785,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋ฉฐ': { name: '-(์ผ)๋ฉฐ', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2799,7 +2799,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋ฉด': { name: '-(์ผ)๋ฉด', rules: [ suffixInflection('ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2813,7 +2813,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใด', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋ฉด์': { name: '-(์ผ)๋ฉด์', rules: [ suffixInflection('ใ
ใ
ใดใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2827,7 +2827,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใดใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)๋ฏ๋ก': { name: '-(์ผ)๋ฏ๋ก', rules: [ suffixInflection('ใ
ใ
กในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2841,7 +2841,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
กในใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ฌ': { name: '-(์ผ)์ฌ', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -2853,105 +2853,105 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ก', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { - name: '-์ฌ์ค-', + '-์ฌ์ค': { + name: '-์ฌ์ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', ['sao'], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
', '', ['sao'], ['p', 'f']), ], }, - { + '-์ฌ์ค๋๊น': { name: '-์ฌ์ค๋๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใดใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ค๋ฆฌ๊น': { name: '-์ฌ์ค๋ฆฌ๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ค๋ฆฌ๋ค': { name: '-์ฌ์ค๋ฆฌ๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ค๋ฆฌ์ด๊น': { name: '-์ฌ์ค๋ฆฌ์ด๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใ
ใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ค๋ฆฌ์ด๋ค': { name: '-์ฌ์ค๋ฆฌ์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ในใ
ฃใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ค์ด๋ค': { name: '-์ฌ์ค์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { - name: '-์ฌ์ต-', + '-์ฌ์ต': { + name: '-์ฌ์ต', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', ['saob'], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
', '', ['saob'], ['p', 'f']), ], }, - { + '-์ฌ์ต๋๊น': { name: '-์ฌ์ต๋๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ใดใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ต๋๋ค': { name: '-์ฌ์ต๋๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ใดใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ต๋๊น': { name: '-์ฌ์ต๋๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใทใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ใทใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ต๋๋ค': { name: '-์ฌ์ต๋๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใทใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ใทใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์': { name: '-์ฌ์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ธ๋ค': { name: '-์ฌ์ธ๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ฌ์ด๋ค': { name: '-(์ผ)์ฌ์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -2963,14 +2963,14 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { - name: '-์ฝ-', + '-์ฝ': { + name: '-์ฝ', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', ['sab'], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
', '', ['sab'], ['p', 'f']), ], }, - { + '-(์ผ)์ธ': { name: '-(์ผ)์ธ', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v']), @@ -2981,13 +2981,13 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-์ธ๋': { name: '-์ธ๋', rules: [ suffixInflection('ใ
ใ
ใดใ
', 'ใทใ
', [], ['v']), ], }, - { + '-(์ผ)์ธ์': { name: '-(์ผ)์ธ์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -2999,7 +2999,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
ใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)์
์': { name: '-(์ผ)์
์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3011,21 +3011,21 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
ใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-์': { name: '-์', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-์๋ค': { name: '-์๋ค', rules: [ suffixInflection('ใ
ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใทใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์์': { name: '-(์ผ)์์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3037,28 +3037,28 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
ใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-์์ด๊น': { name: '-์์ด๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ใ
ใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-์์ด๋ค': { name: '-์์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ ๋ค': { name: '-์ ๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), suffixInflection('ใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-(์ค)ใ
๋ค': { name: '-(์ค)ใ
๋ค', rules: [ suffixInflection('ใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3068,7 +3068,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใดใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
๋ฐ๋ค': { name: '-(์ค)ใ
๋ฐ๋ค', rules: [ suffixInflection('ใ
ใดใ
กใ
ฃใดใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3078,7 +3078,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใดใ
กใ
ฃใดใทใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
๋๊น': { name: '-(์ค)ใ
๋๊น', rules: [ suffixInflection('ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3088,7 +3088,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใดใ
ฃใฒใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
๋๋ค': { name: '-(์ค)ใ
๋๋ค', rules: [ suffixInflection('ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3098,7 +3098,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใดใ
ฃใทใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
๋๊น': { name: '-(์ค)ใ
๋๊น', rules: [ suffixInflection('ใ
ใทใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3108,7 +3108,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใทใ
ฃใฒใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
๋๋ค': { name: '-(์ค)ใ
๋๋ค', rules: [ suffixInflection('ใ
ใทใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3118,7 +3118,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใทใ
ฃใทใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
๋๋ค': { name: '-(์ค)ใ
๋๋ค', rules: [ suffixInflection('ใ
ใทใ
ฃใดใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3128,7 +3128,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใทใ
ฃใดใทใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
์ฃ ': { name: '-(์ค)ใ
์ฃ ', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3138,7 +3138,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-(์ค)ใ
์ง์': { name: '-(์ค)ใ
์ง์', rules: [ suffixInflection('ใ
ใ
ใ
ฃใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3148,8 +3148,8 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ฃใ
ใ
', '', [], ['eusi']), ], }, - { - name: '-(์ผ)์-', + '-(์ผ)์': { + name: '-(์ผ)์', rules: [ suffixInflection('ใ
ใ
ฃ', 'ใทใ
', ['eusi'], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
กใ
ใ
ฃ', 'ใทใ
', ['eusi'], ['v', 'adj']), @@ -3161,7 +3161,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ฃ', '', ['eusi'], ['saob', 'euob', 'jaob']), ], }, - { + '-(์ผ)์์': { name: '-(์ผ)์์', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -3172,7 +3172,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ฃใ
ใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)์์ด์': { name: '-(์ผ)์์ด์', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3184,7 +3184,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ฃใ
ใ
ใ
ใ
', 'ใทใทใ
', [], ['v', 'adj']), ], }, - { + '-(์ผ)์ญ์ฌ': { name: '-(์ผ)์ญ์ฌ', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -3195,7 +3195,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ฃใ
ใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)์ญ์๋ค': { name: '-(์ผ)์ญ์๋ค', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v']), @@ -3206,7 +3206,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ฃใ
ใ
ใ
ฃใทใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)์ญ์์ค': { name: '-(์ผ)์ญ์์ค', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใ
ฃใ
ใ
', 'ใทใ
', [], ['v']), @@ -3217,7 +3217,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ฃใ
ใ
ใ
ฃใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-์/์ด': { name: '-์/์ด', rules: [ suffixInflection('ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3248,7 +3248,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด๋ค': { name: '-์/์ด๋ค', rules: [ suffixInflection('ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3279,7 +3279,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใทใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด๋ค๊ฐ': { name: '-์/์ด๋ค๊ฐ', rules: [ suffixInflection('ใ
ใทใ
ใฑใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3313,7 +3313,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใทใ
ใฑใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด๋': { name: '-์/์ด๋', rules: [ suffixInflection('ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3347,7 +3347,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใทใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด๋ผ': { name: '-์/์ด๋ผ', rules: [ suffixInflection('ใ
ในใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3381,7 +3381,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ในใ
', '', [], ['p', 'f']), ], }, - { + '-์/์์': { name: '-์/์์', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3415,7 +3415,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด์ผ': { name: '-์/์ด์ผ', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3449,7 +3449,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด์ผ๊ฒ ': { name: '-์/์ด์ผ๊ฒ ', rules: [ suffixInflection('ใ
ใ
ใ
ใฑใ
ใ
', 'ใทใ
', ['f'], ['v', 'adj']), @@ -3482,7 +3482,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใฑใ
ใ
', 'ใ
กใทใ
', ['f'], ['v', 'adj']), ], }, - { + '-์/์ด์ผ๋ง': { name: '-์/์ด์ผ๋ง', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj']), @@ -3516,7 +3516,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
ใด', '', [], ['p', 'f']), ], }, - { + '-์/์ด์ผ์ง': { name: '-์/์ด์ผ์ง', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj']), @@ -3550,7 +3550,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
ฃ', '', [], ['p', 'f']), ], }, - { + '-์/์ด์': { name: '-์/์ด์', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3585,7 +3585,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-์/์ด์ง์ด๋ค': { name: '-์/์ด์ง์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ฃใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3618,7 +3618,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ฃใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์/์': { name: '-์/์', rules: [ suffixInflection('ใ
', 'ใทใ
', ['p'], ['v', 'adj']), @@ -3653,7 +3653,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ฃใ
ใ
ใ
', 'ใ
ใ
ฃ', ['p'], ['eusi']), ], }, - { + '-์/์์': { name: '-์/์์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', ['p'], ['v', 'adj']), @@ -3686,7 +3686,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใ
', 'ใ
กใทใ
', ['p'], ['v', 'adj']), ], }, - { + '-์/์์': { name: '-์/์์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3720,14 +3720,14 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ใ
', 'ใ
ใ
ฃ', [], ['eusi']), ], }, - { + '-์ผ': { name: '-์ผ', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃใ
ใ
', '์๋๋ค', [], ['adj']), suffixInflection('ใ
ใ
ฃใ
ใ
', '์ด๋ค', [], ['ida']), ], }, - { + '-์ธ๋ง๋': { name: '-์ธ๋ง๋', rules: [ suffixInflection('ใ
ใ
ใดใ
ใ
ใดใ
กใด', '์๋๋ค', [], ['adj']), @@ -3735,14 +3735,14 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใดใ
ใ
ใดใ
กใด', '', [], ['eusi']), ], }, - { + '-์ธ๋ง': { name: '-์ธ๋ง', rules: [ suffixInflection('ใ
ใ
ใดใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ใดใ
ใ
ใด', '', [], ['p', 'f', 'eusi']), ], }, - { + '-์ธ์ ': { name: '-์ธ์ ', rules: [ suffixInflection('ใ
ใ
ใดใ
ใ
ใ
', '์๋๋ค', [], ['adj']), @@ -3750,14 +3750,14 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใดใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-์๋ผ': { name: '-์๋ผ', rules: [ suffixInflection('ใ
ใ
ในใ
', '', [], ['p']), ], }, - { - name: '-(์ผ)์ค-', + '-(์ผ)์ค': { + name: '-(์ผ)์ค', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', ['euo'], ['v', 'adj']), suffixInflection('ใ
ใ
กใ
ใ
', 'ใทใ
', ['euo'], ['v', 'adj']), @@ -3770,7 +3770,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
', '', ['euo'], ['p', 'f']), ], }, - { + '-(์ผ)์ค๋๊น': { name: '-(์ผ)์ค๋๊น', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3784,7 +3784,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใดใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ค๋ฆฌ์ด๊น': { name: '-(์ผ)์ค๋ฆฌ์ด๊น', rules: [ suffixInflection('ใ
ใ
ในใ
ฃใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3797,7 +3797,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ในใ
ฃใ
ใ
ฃใฒใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)์ค๋ฆฌ์ด๋ค': { name: '-(์ผ)์ค๋ฆฌ์ด๋ค', rules: [ suffixInflection('ใ
ใ
ในใ
ฃใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3810,7 +3810,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ในใ
ฃใ
ใ
ฃใทใ
', '', [], ['eusi']), ], }, - { + '-์ค์ด๊น': { name: '-์ค์ด๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3818,7 +3818,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ใ
ฃใฒใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)์ค์ด๋ค': { name: '-(์ผ)์ค์ด๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj']), @@ -3832,22 +3832,22 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ฌ์ต๋๋ค': { name: '-์ฌ์ต๋๋ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃใ
ใ
ในใ
ใ
กใ
ใดใ
ฃใทใ
', '์๋๋ค', [], ['adj']), suffixInflection('ใ
ใ
ฃใ
ใ
ในใ
ใ
กใ
ใดใ
ฃใทใ
', '์ด๋ค', [], ['ida']), ], }, - { + '-์ฌ์๋ค': { name: '-์ฌ์๋ค', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃใ
ใ
ในใ
ใ
ฃใทใ
', '์๋๋ค', [], ['adj']), suffixInflection('ใ
ใ
ฃใ
ใ
ในใ
ใ
ฃใทใ
', '์ด๋ค', [], ['ida']), ], }, - { - name: '-(์ผ)์ต-', + '-(์ผ)์ต': { + name: '-(์ผ)์ต', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', ['euob'], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
กใ
ใ
ใ
', 'ใทใ
', ['euob'], ['v', 'adj']), @@ -3860,7 +3860,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
', '', ['euob'], ['p', 'f']), ], }, - { + '-(์ผ)์ต๋๊น': { name: '-(์ผ)์ต๋๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3874,7 +3874,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ใดใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ต๋๋ค': { name: '-(์ผ)์ต๋๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใดใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3888,7 +3888,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ใดใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ต๋๊น': { name: '-(์ผ)์ต๋๊น', rules: [ suffixInflection('ใ
ใ
ใ
ใทใ
ฃใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3902,7 +3902,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ใทใ
ฃใฒใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ต๋๋ค': { name: '-(์ผ)์ต๋๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ใทใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3916,7 +3916,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ใทใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ต์์': { name: '-(์ผ)์ต์์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3930,7 +3930,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ใ
ใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์': { name: '-(์ผ)์', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3944,7 +3944,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ธ๋ค': { name: '-(์ผ)์ธ๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3958,14 +3958,14 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ฃใทใ
', '', [], ['p', 'f']), ], }, - { + '-์': { name: '-์', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃใ
ใ
', '์๋๋ค', [], ['ida']), suffixInflection('ใ
ใ
', 'ใทใ
', [], ['ida']), ], }, - { + '-(์ผ)์ฐ': { name: '-(์ผ)์ฐ', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -3979,7 +3979,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)์ด': { name: '-(์ผ)์ด', rules: [ suffixInflection('ใ
ใ
ฃ', 'ใทใ
', [], ['adj']), @@ -3988,7 +3988,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ฃ', 'ใทใ
', [], ['adj']), ], }, - { + '-(์ผ)ใด๋ค': { name: '-(์ผ)ใด๋ค', rules: [ suffixInflection('ใดใทใ
กใน', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4001,7 +4001,7 @@ export const koreanTransforms = { suffixInflection('ใดใทใ
กใน', '', [], ['eusi']), ], }, - { + '-(์ผ)ใด์ฆ': { name: '-(์ผ)ใด์ฆ', rules: [ suffixInflection('ใดใ
ใ
กใฑ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4015,7 +4015,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ใ
กใฑ', '', [], ['p']), ], }, - { + '-(์ผ)ใด์ฆ์จ': { name: '-(์ผ)ใด์ฆ์จ', rules: [ suffixInflection('ใดใ
ใ
กใฑใ
ใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4029,7 +4029,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใดใ
ใ
กใฑใ
ใ
กใด', '', [], ['p']), ], }, - { + '-(์ผ)ใน๊น': { name: '-(์ผ)ใน๊น', rules: [ suffixInflection('ในใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4043,7 +4043,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใฒใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๊น์ผ': { name: '-(์ผ)ใน๊น์ผ', rules: [ suffixInflection('ในใฒใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4057,7 +4057,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใฒใ
ใ
ใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๊ผฌ': { name: '-(์ผ)ใน๊ผฌ', rules: [ suffixInflection('ในใฒใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4071,7 +4071,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใฒใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋์ง': { name: '-(์ผ)ใน๋์ง', rules: [ suffixInflection('ในใดใ
กใดใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4085,7 +4085,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใดใ
กใดใ
ใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฐ๋ผ๋': { name: '-(์ผ)ใน๋ฐ๋ผ๋', rules: [ suffixInflection('ในใทใ
ในใ
ใดใ
ฃ', 'ใทใ
', [], ['adj']), @@ -4098,7 +4098,7 @@ export const koreanTransforms = { suffixInflection('ในใทใ
ในใ
ใดใ
ฃ', '', [], ['eusi']), ], }, - { + '-(์ผ)ใน๋ผ': { name: '-(์ผ)ใน๋ผ', rules: [ suffixInflection('ในในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4112,7 +4112,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ผ๊ณ ': { name: '-(์ผ)ใน๋ผ๊ณ ', rules: [ suffixInflection('ในในใ
ใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4126,7 +4126,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ผ์น๋ฉด': { name: '-(์ผ)ใน๋ผ์น๋ฉด', rules: [ suffixInflection('ในในใ
ใ
ใ
ฃใ
ใ
ใด', 'ใทใ
', [], ['v']), @@ -4138,7 +4138,7 @@ export const koreanTransforms = { suffixInflection('ในในใ
ใ
ใ
ฃใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-(์ผ)ใน๋ฝ': { name: '-(์ผ)ใน๋ฝ', rules: [ suffixInflection('ในในใ
ใฑ ใ
ใ
ในในใ
ใฑ', 'ใทใ
', [], ['v']), @@ -4151,7 +4151,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ใฑ ใ
ใ
ในในใ
ใฑ', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋': { name: '-(์ผ)ใน๋', rules: [ suffixInflection('ในในใ
', 'ใทใ
', [], ['v']), @@ -4163,7 +4163,7 @@ export const koreanTransforms = { suffixInflection('ในในใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)ใน๋ฌ๋': { name: '-(์ผ)ใน๋ฌ๋', rules: [ suffixInflection('ในในใ
ใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4177,7 +4177,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ใดใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฌ๋ผ': { name: '-(์ผ)ใน๋ฌ๋ผ', rules: [ suffixInflection('ในในใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4191,7 +4191,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฐ๊ฐ': { name: '-(์ผ)ใน๋ฐ๊ฐ', rules: [ suffixInflection('ในในใ
ใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4205,7 +4205,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ใดใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฐ๊ณ ': { name: '-(์ผ)ใน๋ฐ๊ณ ', rules: [ suffixInflection('ในในใ
ใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4219,7 +4219,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ใดใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฐ์ง': { name: '-(์ผ)ใน๋ฐ์ง', rules: [ suffixInflection('ในในใ
ใดใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4233,7 +4233,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ใดใ
ใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ ': { name: '-(์ผ)ใน๋ ', rules: [ suffixInflection('ในในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4247,7 +4247,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ ๋ผ': { name: '-(์ผ)ใน๋ ๋ผ', rules: [ suffixInflection('ในในใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4261,7 +4261,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในในใ
ในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ ค๊ณ ': { name: '-(์ผ)ใน๋ ค๊ณ ', rules: [ suffixInflection('ในในใ
ใฑใ
', 'ใทใ
', [], ['v']), @@ -4273,7 +4273,7 @@ export const koreanTransforms = { suffixInflection('ในในใ
ใฑใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)ใน๋ง์ ': { name: '-(์ผ)ใน๋ง์ ', rules: [ suffixInflection('ในใ
ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4287,7 +4287,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใ
ใ
ใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฐ์': { name: '-(์ผ)ใน๋ฐ์', rules: [ suffixInflection('ในใ
ใ
ใฒใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4301,7 +4301,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใฒใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน๋ฟ๋๋ฌ': { name: '-(์ผ)ใน๋ฟ๋๋ฌ', rules: [ suffixInflection('ในใ
ใ
ใดใทใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4315,7 +4315,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใทใ
ในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ฌ': { name: '-(์ผ)ใน์ฌ', rules: [ suffixInflection('ในใ
ใ
', 'ใทใ
', [], ['adj']), @@ -4327,7 +4327,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กในใ
ใ
', 'ใทใทใ
', [], ['adj']), ], }, - { + '-(์ผ)ใน์': { name: '-(์ผ)ใน์', rules: [ suffixInflection('ในใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4341,7 +4341,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ธ': { name: '-(์ผ)ใน์ธ', rules: [ suffixInflection('ในใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4355,7 +4355,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ธ๋ผ': { name: '-(์ผ)ใน์ธ๋ผ', rules: [ suffixInflection('ในใ
ใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4369,7 +4369,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ธ๋ง์ด์ง': { name: '-(์ผ)ใน์ธ๋ง์ด์ง', rules: [ suffixInflection('ในใ
ใ
ใ
ใ
ในใ
ใ
ฃใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4383,7 +4383,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใ
ใ
ในใ
ใ
ฃใ
ใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน์๋': { name: '-(์ผ)ใน์๋', rules: [ suffixInflection('ในใ
ใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4397,7 +4397,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์๊ฐ': { name: '-(์ผ)ใน์๊ฐ', rules: [ suffixInflection('ในใ
ใ
ใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4411,7 +4411,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์๋ก': { name: '-(์ผ)ใน์๋ก', rules: [ suffixInflection('ในใ
ใ
ในใ
ใฑ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4425,7 +4425,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ในใ
ใฑ', '', [], ['p']), ], }, - { + '-(์ผ)ใน์': { name: '-(์ผ)ใน์', rules: [ suffixInflection('ในใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4439,7 +4439,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน์๊ณ ': { name: '-(์ผ)ใน์๊ณ ', rules: [ suffixInflection('ในใ
ใ
ฃใฑใ
', 'ใทใ
', [], ['adj', 'ida']), @@ -4453,7 +4453,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ธ๋ก': { name: '-(์ผ)ใน์ธ๋ก', rules: [ suffixInflection('ในใ
ใ
ในใ
ใฑ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4467,7 +4467,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ในใ
ใฑ', '', [], ['p']), ], }, - { + '-(์ผ)ใน์๋': { name: '-(์ผ)ใน์๋', rules: [ suffixInflection('ในใ
ใ
ใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4481,7 +4481,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์๊ฐ': { name: '-(์ผ)ใน์๊ฐ', rules: [ suffixInflection('ในใ
ใ
ใดใฑใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4495,7 +4495,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ใดใฑใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ด๋งํผ': { name: '-(์ผ)ใน์ด๋งํผ', rules: [ suffixInflection('ในใ
ใ
ฃใ
ใ
ใดใ
ใ
กใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4509,7 +4509,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใ
ใ
ใดใ
ใ
กใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์์๋ฉด': { name: '-(์ผ)ใน์์๋ฉด', rules: [ suffixInflection('ในใ
ใ
ใฑใ
ใ
ฃใ
ใ
ใด', 'ใทใ
', [], ['v']), @@ -4521,7 +4521,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ใฑใ
ใ
ฃใ
ใ
ใด', '', [], ['eusi']), ], }, - { + '-(์ผ)ใน์ง': { name: '-(์ผ)ใน์ง', rules: [ suffixInflection('ในใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4535,7 +4535,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋': { name: '-(์ผ)ใน์ง๋', rules: [ suffixInflection('ในใ
ใ
ฃใดใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4549,7 +4549,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋': { name: '-(์ผ)ใน์ง๋', rules: [ suffixInflection('ในใ
ใ
ฃใดใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4563,7 +4563,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใ
ฃ', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋๋ผ': { name: '-(์ผ)ใน์ง๋๋ผ', rules: [ suffixInflection('ในใ
ใ
ฃใดใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4577,7 +4577,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใ
ฃในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋ผ': { name: '-(์ผ)ใน์ง๋ผ', rules: [ suffixInflection('ในใ
ใ
ฃในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4591,7 +4591,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃในใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋ผ๋': { name: '-(์ผ)ใน์ง๋ผ๋', rules: [ suffixInflection('ในใ
ใ
ฃในใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4605,7 +4605,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃในใ
ใทใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋ก๋ค': { name: '-(์ผ)ใน์ง๋ก๋ค', rules: [ suffixInflection('ในใ
ใ
ฃในใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4619,7 +4619,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃในใ
ใทใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋ฉฐ': { name: '-(์ผ)ใน์ง๋ฉฐ', rules: [ suffixInflection('ในใ
ใ
ฃใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4633,7 +4633,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง์ด๋ค': { name: '-(์ผ)ใน์ง์ด๋ค', rules: [ suffixInflection('ในใ
ใ
ฃใ
ใ
ใทใ
', 'ใทใ
', [], ['v']), @@ -4645,7 +4645,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
ฃใ
ใ
ใทใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)ใน์ง์ธ์ ': { name: '-(์ผ)ใน์ง์ธ์ ', rules: [ suffixInflection('ในใ
ใ
ฃใ
ใ
ใดใ
ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4659,7 +4659,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใ
ใ
ใดใ
ใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋': { name: '-(์ผ)ใน์ง๋', rules: [ suffixInflection('ในใ
ใ
ฃใดใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4673,7 +4673,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใทใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋๋': { name: '-(์ผ)ใน์ง๋๋', rules: [ suffixInflection('ในใ
ใ
ฃใดใทใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4687,7 +4687,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใทใ
ใดใ
กใด', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง๋': { name: '-(์ผ)ใน์ง๋', rules: [ suffixInflection('ในใ
ใ
ฃใดใทใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4701,7 +4701,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใทใ
ใด', '', [], ['p']), ], }, - { + '-(์ผ)ใน์ง์ ': { name: '-(์ผ)ใน์ง์ ', rules: [ suffixInflection('ในใ
ใ
ฃใดใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4715,7 +4715,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กในใ
ใ
ฃใดใ
ใ
', '', [], ['p']), ], }, - { + '-(์ผ)ใ
': { name: '-(์ผ)ใ
', rules: [ suffixInflection('ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4729,7 +4729,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)ใ
์ธ': { name: '-(์ผ)ใ
์ธ', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -4740,7 +4740,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)ใ
๋': { name: '-(์ผ)ใ
๋', rules: [ suffixInflection('ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4754,7 +4754,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใทใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)ใ
์๋ด': { name: '-(์ผ)ใ
์๋ด', rules: [ suffixInflection('ใ
ใ
ใ
ในใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), @@ -4768,7 +4768,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
กใ
ใ
ใ
ในใ
', '', [], ['p', 'f']), ], }, - { + '-(์ผ)ใ
์ผ': { name: '-(์ผ)ใ
์ผ', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', [], ['v']), @@ -4779,7 +4779,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)ใ
์๋ค 1': { name: '-(์ผ)ใ
์๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ฃใทใ
', 'ใทใ
', [], ['v']), @@ -4790,7 +4790,7 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
ฃใทใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-(์ผ)ใ
์๋ค 2': { name: '-(์ผ)ใ
์๋ค', rules: [ suffixInflection('ใ
ใ
ใ
ฃใ
ใ
', 'ใทใ
', [], ['v']), @@ -4802,7 +4802,7 @@ export const koreanTransforms = { suffixInflection('ใ
ใ
ใ
ฃใ
ใ
', '', [], ['eusi']), ], }, - { + '-(์ผ)ใ
์์ค': { name: '-(์ผ)ใ
์์ค', rules: [ suffixInflection('ใ
ใ
ใ
ฃใ
ใ
', 'ใทใ
', [], ['v']), @@ -4813,132 +4813,132 @@ export const koreanTransforms = { suffixInflection('ในใ
ใ
กใ
ใ
ใ
ฃใ
ใ
', 'ใทใทใ
', [], ['v']), ], }, - { + '-์': { name: '-์', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'ida']), ], }, - { + '-์๊ณ ': { name: '-์๊ณ ', rules: [ suffixInflection('ใ
ใ
ใฑใ
', 'ใทใ
', [], ['v']), ], }, - { + '-์๊ตฌ': { name: '-์๊ตฌ', rules: [ suffixInflection('ใ
ใ
ใฑใ
', 'ใทใ
', [], ['v']), ], }, - { + '-์๊พธ๋': { name: '-์๊พธ๋', rules: [ suffixInflection('ใ
ใ
ใฒใ
ใดใ
', 'ใทใ
', [], ['v']), ], }, - { + '-์๋๋': { name: '-์๋๋', rules: [ suffixInflection('ใ
ใ
ใดใ
กใดใ
ฃ', 'ใทใ
', [], ['v']), ], }, - { + '-์๋๊น': { name: '-์๋๊น', rules: [ suffixInflection('ใ
ใ
ใดใ
ฃใฒใ
', 'ใทใ
', [], ['v']), ], }, - { + '-์๋ง์': { name: '-์๋ง์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v']), suffixInflection('ใ
ใ
ใ
ใ
ใ
ใ
', '', [], ['eusi']), ], }, - { + '-์๋ฉฐ': { name: '-์๋ฉฐ', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', [], ['v']), ], }, - { + '-์๋ฉด': { name: '-์๋ฉด', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), ], }, - { + '-์๋ฉด์': { name: '-์๋ฉด์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใดใ
ใ
', 'ใทใ
', [], ['v']), ], }, - { + '-์์': { name: '-์์', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใด', 'ใทใ
', [], ['v']), ], }, - { - name: '-์์ค-', + '-์์ค': { + name: '-์์ค', rules: [ suffixInflection('ใ
ใ
ใ
ใ
', 'ใทใ
', ['jao'], ['v']), ], }, - { - name: '-์์ต-', + '-์์ต': { + name: '-์์ต', rules: [ suffixInflection('ใ
ใ
ใ
ใ
ใ
', 'ใทใ
', ['jaob'], ['v']), ], }, - { - name: '-์ก-', + '-์ก': { + name: '-์ก', rules: [ suffixInflection('ใ
ใ
ใ
', 'ใทใ
', ['jab'], ['v']), ], }, - { + '-์ฃ ': { name: '-์ฃ ', rules: [ suffixInflection('ใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - { + '-์ง': { name: '-์ง', rules: [ suffixInflection('ใ
ใ
ฃ', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ฃ', '', [], ['p', 'f', 'eusi']), ], }, - { + '-์ง๋ง๋': { name: '-์ง๋ง๋', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใดใ
กใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ฃใ
ใ
ใดใ
กใด', '', [], ['p', 'f']), ], }, - { + '-์ง๋ง': { name: '-์ง๋ง', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใด', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ฃใ
ใ
ใด', '', [], ['p', 'f', 'euo', 'euob']), ], }, - { + '-์ง๋ง์๋': { name: '-์ง๋ง์๋', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
ใดใ
ใ
ใทใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ฃใ
ใ
ใดใ
ใ
ใทใ
', '', [], ['p', 'f']), ], }, - { + '-์ง์': { name: '-์ง์', rules: [ suffixInflection('ใ
ใ
ฃใ
ใ
', 'ใทใ
', [], ['v', 'adj', 'ida']), suffixInflection('ใ
ใ
ฃใ
ใ
', '', [], ['p', 'f', 'eusi']), ], }, - ], + }, }; diff --git a/ext/js/language/la/latin-transforms.js b/ext/js/language/la/latin-transforms.js index 559420d5..60a99f44 100644 --- a/ext/js/language/la/latin-transforms.js +++ b/ext/js/language/la/latin-transforms.js @@ -125,8 +125,8 @@ export const latinTransforms = { isDictionaryForm: true, }, }, - transforms: [ - { + transforms: { + plural: { name: 'plural', description: 'Plural declension', rules: [ @@ -137,26 +137,26 @@ export const latinTransforms = { suffixInflection('a', 'um', ['adj12'], ['adj12']), ], }, - { + feminine: { name: 'feminine', description: 'Adjective form', rules: [ suffixInflection('a', 'us', ['adj12'], ['adj12']), ], }, - { + neuter: { name: 'neuter', description: 'Adjective form', rules: [ suffixInflection('um', 'us', ['adj12'], ['adj12']), ], }, - { + ablative: { name: 'ablative', description: 'Ablative case', rules: [ suffixInflection('o', 'um', ['n2s'], ['n2s']), ], }, - ], + }, }; diff --git a/ext/js/language/language-transformer.js b/ext/js/language/language-transformer.js index 76a1b583..d80fa73c 100644 --- a/ext/js/language/language-transformer.js +++ b/ext/js/language/language-transformer.js @@ -50,16 +50,17 @@ export class LanguageTransformer { /** @type {import('language-transformer-internal').Transform[]} */ const transforms2 = []; - for (let i = 0, ii = transforms.length; i < ii; ++i) { - const {name, rules} = transforms[i]; + + for (const [transformId, transform] of Object.entries(transforms)) { + const {name, description, rules} = transform; /** @type {import('language-transformer-internal').Rule[]} */ const rules2 = []; for (let j = 0, jj = rules.length; j < jj; ++j) { const {type, isInflected, deinflect, conditionsIn, conditionsOut} = rules[j]; const conditionFlagsIn = this._getConditionFlagsStrict(conditionFlagsMap, conditionsIn); - if (conditionFlagsIn === null) { throw new Error(`Invalid conditionsIn for transform[${i}].rules[${j}]`); } + if (conditionFlagsIn === null) { throw new Error(`Invalid conditionsIn for transform ${transformId}.rules[${j}]`); } const conditionFlagsOut = this._getConditionFlagsStrict(conditionFlagsMap, conditionsOut); - if (conditionFlagsOut === null) { throw new Error(`Invalid conditionsOut for transform[${i}].rules[${j}]`); } + if (conditionFlagsOut === null) { throw new Error(`Invalid conditionsOut for transform ${transformId}.rules[${j}]`); } rules2.push({ type, isInflected, @@ -70,7 +71,7 @@ export class LanguageTransformer { } const isInflectedTests = rules.map((rule) => rule.isInflected); const heuristic = new RegExp(isInflectedTests.map((regExp) => regExp.source).join('|')); - transforms2.push({name, rules: rules2, heuristic}); + transforms2.push({id: transformId, name, description, rules: rules2, heuristic}); } this._nextFlagIndex = nextFlagIndex; @@ -123,14 +124,14 @@ export class LanguageTransformer { for (const transform of this._transforms) { if (!transform.heuristic.test(text)) { continue; } - const {name, rules} = transform; + const {id, rules} = transform; for (let j = 0, jj = rules.length; j < jj; ++j) { const rule = rules[j]; if (!LanguageTransformer.conditionsMatch(conditions, rule.conditionsIn)) { continue; } const {isInflected, deinflect} = rule; if (!isInflected.test(text)) { continue; } - const isCycle = trace.some((frame) => frame.transform === name && frame.ruleIndex === j && frame.text === text); + const isCycle = trace.some((frame) => frame.transform === id && frame.ruleIndex === j && frame.text === text); if (isCycle) { log.warn(new Error(`Cycle detected in transform[${name}] rule[${j}] for text: ${text}\nTrace: ${JSON.stringify(trace)}`)); continue; @@ -139,7 +140,7 @@ export class LanguageTransformer { results.push(LanguageTransformer.createTransformedText( deinflect(text), rule.conditionsOut, - this._extendTrace(trace, {transform: name, ruleIndex: j, text}), + this._extendTrace(trace, {transform: id, ruleIndex: j, text}), )); } } @@ -148,6 +149,19 @@ export class LanguageTransformer { } /** + * @param {string[]} inflectionRules + * @returns {import('dictionary').InflectionRuleChain} + */ + getUserFacingInflectionRules(inflectionRules) { + return inflectionRules.map((rule) => { + const fullRule = this._transforms.find((transform) => transform.id === rule); + if (typeof fullRule === 'undefined') { return {name: rule}; } + const {name, description} = fullRule; + return description ? {name, description} : {name}; + }); + } + + /** * @param {string} text * @param {number} conditions * @param {import('language-transformer-internal').Trace} trace diff --git a/ext/js/language/multi-language-transformer.js b/ext/js/language/multi-language-transformer.js index 4e85aa65..fec682a3 100644 --- a/ext/js/language/multi-language-transformer.js +++ b/ext/js/language/multi-language-transformer.js @@ -74,4 +74,17 @@ export class MultiLanguageTransformer { if (typeof languageTransformer === 'undefined') { return [LanguageTransformer.createTransformedText(sourceText, 0, [])]; } return languageTransformer.transform(sourceText); } + + /** + * @param {string} language + * @param {string[]} inflectionRules + * @returns {import('dictionary').InflectionRuleChain} + */ + getUserFacingInflectionRules(language, inflectionRules) { + const languageTransformer = this._languageTransformers.get(language); + if (typeof languageTransformer === 'undefined') { + return inflectionRules.map((rule) => ({name: rule})); + } + return languageTransformer.getUserFacingInflectionRules(inflectionRules); + } } diff --git a/ext/js/language/sga/old-irish-transforms.js b/ext/js/language/sga/old-irish-transforms.js index d444af1f..793c39a8 100644 --- a/ext/js/language/sga/old-irish-transforms.js +++ b/ext/js/language/sga/old-irish-transforms.js @@ -15,7 +15,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import {suffixInflection, prefixInflection} from '../language-transforms.js'; +import {prefixInflection, suffixInflection} from '../language-transforms.js'; /** * @param {boolean} notBeginning @@ -40,36 +40,36 @@ function tryAlternateOrthography(notBeginning, originalOrthography, alternateOrt export const oldIrishTransforms = { language: 'sga', conditions: {}, - transforms: [ - { + transforms: { + 'nd for nn': { name: 'nd for nn', description: 'nd for nn', rules: [ suffixInflection('nd', 'nn', [], []), ], }, - { + 'cg for c': { name: 'cg for c', description: 'cg for c', rules: [ tryAlternateOrthography(false, 'cg', 'c', [], []), ], }, - { + 'td for t': { name: 'td for t', description: 'td for t', rules: [ tryAlternateOrthography(false, 'td', 't', [], []), ], }, - { + 'pb for p': { name: 'pb for p', description: 'pb for p', rules: [ tryAlternateOrthography(false, 'pb', 'p', [], []), ], }, - { + 'วฝ/รฆ for รฉ': { name: 'วฝ/รฆ for รฉ', description: 'วฝ/รฆ for รฉ', rules: [ @@ -77,7 +77,7 @@ export const oldIrishTransforms = { tryAlternateOrthography(false, 'รฆ', 'รฉ', [], []), ], }, - { + 'doubled vowel': { name: 'doubled vowel', description: 'Doubled Vowel', rules: [ @@ -88,7 +88,7 @@ export const oldIrishTransforms = { tryAlternateOrthography(true, 'uu', 'รบ', [], []), ], }, - { + 'doubled consonant': { name: 'doubled consonant', description: 'Doubled Consonant', rules: [ @@ -105,7 +105,7 @@ export const oldIrishTransforms = { tryAlternateOrthography(true, 'ss', 's', [], []), ], }, - { + 'lenited': { name: 'lenited', description: 'Non-Beginning Lenition', rules: [ @@ -114,7 +114,7 @@ export const oldIrishTransforms = { tryAlternateOrthography(true, 'th', 't', [], []), ], }, - { + 'lenited (Middle Irish)': { name: 'lenited (Middle Irish)', description: 'Non-Beginning Lenition (Middle Irish)', rules: [ @@ -123,7 +123,7 @@ export const oldIrishTransforms = { tryAlternateOrthography(true, 'dh', 'd', [], []), ], }, - { + '[IM] nasalized': { name: '[IM] nasalized', description: 'Nasalized Word', rules: [ @@ -134,7 +134,7 @@ export const oldIrishTransforms = { prefixInflection('m-', '', [], []), ], }, - { + '[IM] nasalized (Middle Irish)': { name: '[IM] nasalized (Middle Irish)', description: 'Nasalized Word (Middle Irish)', rules: [ @@ -143,7 +143,7 @@ export const oldIrishTransforms = { prefixInflection('dt', 'd', [], []), ], }, - { + '[IM] lenited': { name: '[IM] lenited', description: 'Lenited Word', rules: [ @@ -152,7 +152,7 @@ export const oldIrishTransforms = { prefixInflection('th', 't', [], []), ], }, - { + '[IM] lenited (Middle Irish)': { name: '[IM] lenited (Middle Irish)', description: 'Lenited Word (Middle Irish)', rules: [ @@ -161,7 +161,7 @@ export const oldIrishTransforms = { prefixInflection('dh', 'd', [], []), ], }, - { + '[IM] aspirated': { name: '[IM] aspirated', description: 'Aspirated Word', rules: [ @@ -173,7 +173,7 @@ export const oldIrishTransforms = { prefixInflection('h-', '', [], []), ], }, - { + '[IM] geminated': { name: '[IM] geminated', description: 'Geminated Word', rules: [ @@ -201,5 +201,5 @@ export const oldIrishTransforms = { prefixInflection('s-s', 's', [], []), ], }, - ], + }, }; diff --git a/ext/js/language/sq/albanian-transforms.js b/ext/js/language/sq/albanian-transforms.js index 37657f49..0c6625c6 100644 --- a/ext/js/language/sq/albanian-transforms.js +++ b/ext/js/language/sq/albanian-transforms.js @@ -62,9 +62,9 @@ export const albanianTransforms = { isDictionaryForm: true, }, }, - transforms: [ + transforms: { // Nouns - { + 'definite': { name: 'definite', description: 'Definite form of a noun', rules: [ @@ -85,14 +85,14 @@ export const albanianTransforms = { suffixInflection('ja', 'e', [], ['n']), ], }, - { + 'singular definite accusative': { name: 'singular definite accusative', description: 'Singular definite accusative form of a noun', rules: [ suffixInflection('n', '', [], ['n']), ], }, - { + 'plural': { name: 'plural', description: 'Plural form of a noun', rules: [ @@ -101,7 +101,7 @@ export const albanianTransforms = { ], }, // Verbs - { + 'present indicative second-person singular': { name: 'present indicative second-person singular', description: 'Present indicative second-person singular form of a verb', rules: [ @@ -111,7 +111,7 @@ export const albanianTransforms = { suffixInflection('hesh', 'hem', [], ['v']), ], }, - { + 'present indicative third-person singular': { name: 'present indicative third-person singular', description: 'Present indicative third-person singular form of a verb', rules: [ @@ -121,7 +121,7 @@ export const albanianTransforms = { suffixInflection('het', 'hem', [], ['v']), ], }, - { + 'present indicative first-person plural': { name: 'present indicative first-person plural', description: 'Present indicative first-person plural form of a verb', rules: [ @@ -130,7 +130,7 @@ export const albanianTransforms = { suffixInflection('hemi', 'hem', [], ['v']), ], }, - { + 'present indicative second-person plural': { name: 'present indicative second-person plural', description: 'Present indicative second-person plural form of a verb', rules: [ @@ -139,7 +139,7 @@ export const albanianTransforms = { suffixInflection('heni', 'hem', [], ['v']), ], }, - { + 'present indicative third-person plural': { name: 'present indicative third-person plural', description: 'Present indicative third-person plural form of a verb', rules: [ @@ -148,7 +148,7 @@ export const albanianTransforms = { suffixInflection('hen', 'hem', [], ['v']), ], }, - { + 'imperfect first-person singular indicative': { name: 'imperfect first-person singular indicative', description: 'Imperfect first-person singular indicative form of a verb', rules: [ @@ -157,7 +157,7 @@ export const albanianTransforms = { suffixInflection('hesha', 'hem', [], ['v']), ], }, - { + 'imperfect second-person singular indicative': { name: 'imperfect second-person singular indicative', description: 'Imperfect second-person singular indicative form of a verb', rules: [ @@ -166,7 +166,7 @@ export const albanianTransforms = { suffixInflection('heshe', 'hem', [], ['v']), ], }, - { + 'imperfect third-person singular indicative': { name: 'imperfect third-person singular indicative', description: 'Imperfect third-person singular indicative form of a verb', rules: [ @@ -175,7 +175,7 @@ export const albanianTransforms = { suffixInflection('hej', 'hem', [], ['v']), ], }, - { + 'imperfect first-person plural indicative': { name: 'imperfect first-person plural indicative', description: 'Imperfect first-person plural indicative form of a verb', rules: [ @@ -184,7 +184,7 @@ export const albanianTransforms = { suffixInflection('heshim', 'hem', [], ['v']), ], }, - { + 'imperfect second-person plural indicative': { name: 'imperfect second-person plural indicative', description: 'Imperfect second-person plural indicative form of a verb', rules: [ @@ -193,7 +193,7 @@ export const albanianTransforms = { suffixInflection('heshit', 'hem', [], ['v']), ], }, - { + 'imperfect third-person plural indicative': { name: 'imperfect third-person plural indicative', description: 'Imperfect third-person plural indicative form of a verb', rules: [ @@ -202,7 +202,7 @@ export const albanianTransforms = { suffixInflection('heshin', 'hem', [], ['v']), ], }, - { + 'aorist first-person singular indicative': { name: 'aorist first-person singular indicative', description: 'Aorist first-person singular indicative form of a verb', rules: [ @@ -211,7 +211,7 @@ export const albanianTransforms = { conjugationIISuffixInflection('a', '', [], ['v']), ], }, - { + 'aorist second-person singular indicative': { name: 'aorist second-person singular indicative', description: 'Aorist second-person singular indicative form of a verb', rules: [ @@ -220,7 +220,7 @@ export const albanianTransforms = { conjugationIISuffixInflection('e', '', [], ['v']), ], }, - { + 'aorist third-person singular indicative': { name: 'aorist third-person singular indicative', description: 'Aorist third-person singular indicative form of a verb', rules: [ @@ -231,7 +231,7 @@ export const albanianTransforms = { suffixInflection('ye', 'ej', [], ['v']), ], }, - { + 'aorist first-person plural indicative': { name: 'aorist first-person plural indicative', description: 'Aorist first-person plural indicative form of a verb', rules: [ @@ -241,7 +241,7 @@ export const albanianTransforms = { conjugationIISuffixInflection('รซm', '', [], ['v']), ], }, - { + 'aorist second-person plural indicative': { name: 'aorist second-person plural indicative', description: 'Aorist second-person plural indicative form of a verb', rules: [ @@ -251,7 +251,7 @@ export const albanianTransforms = { conjugationIISuffixInflection('รซt', '', [], ['v']), ], }, - { + 'aorist third-person plural indicative': { name: 'aorist third-person plural indicative', description: 'Aorist third-person plural indicative form of a verb', rules: [ @@ -261,7 +261,7 @@ export const albanianTransforms = { conjugationIISuffixInflection('รซn', '', [], ['v']), ], }, - { + 'imperative second-person singular present': { name: 'imperative second-person singular present', description: 'Imperative second-person singular present form of a verb', rules: [ @@ -269,7 +269,7 @@ export const albanianTransforms = { suffixInflection('hu', 'hem', [], ['v']), ], }, - { + 'imperative second-person plural present': { name: 'imperative second-person plural present', description: 'Imperative second-person plural present form of a verb', rules: [ @@ -278,7 +278,7 @@ export const albanianTransforms = { suffixInflection('huni', 'hem', [], ['v']), ], }, - { + 'participle': { name: 'participle', description: 'Participle form of a verb', rules: [ @@ -288,7 +288,7 @@ export const albanianTransforms = { suffixInflection('yer', 'ej', [], ['v']), ], }, - { + 'mediopassive': { name: 'mediopassive', description: 'Mediopassive form of a verb', rules: [ @@ -296,49 +296,49 @@ export const albanianTransforms = { suffixInflection('hem', 'j', ['v'], ['v']), ], }, - { + 'optative first-person singular present': { name: 'optative first-person singular present', description: 'Optative first-person singular present form of a verb', rules: [ suffixInflection('fsha', 'j', [], ['v']), ], }, - { + 'optative second-person singular present': { name: 'optative second-person singular present', description: 'Optative second-person singular present form of a verb', rules: [ suffixInflection('fsh', 'j', [], ['v']), ], }, - { + 'optative third-person singular present': { name: 'optative third-person singular present', description: 'Optative third-person singular present form of a verb', rules: [ suffixInflection('ftรซ', 'j', [], ['v']), ], }, - { + 'optative first-person plural present': { name: 'optative first-person plural present', description: 'Optative first-person plural present form of a verb', rules: [ suffixInflection('fshim', 'j', [], ['v']), ], }, - { + 'optative second-person plural present': { name: 'optative second-person plural present', description: 'Optative second-person plural present form of a verb', rules: [ suffixInflection('fshi', 'j', [], ['v']), ], }, - { + 'optative third-person plural present': { name: 'optative third-person plural present', description: 'Optative third-person plural present form of a verb', rules: [ suffixInflection('fshin', 'j', [], ['v']), ], }, - { + 'nominalization': { name: 'nominalization', description: 'Noun form of a verb', rules: [ @@ -347,5 +347,5 @@ export const albanianTransforms = { suffixInflection('je', '', [], ['v']), ], }, - ], + }, }; diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js index e9490346..f84328d9 100644 --- a/ext/js/language/translator.js +++ b/ext/js/language/translator.js @@ -70,16 +70,16 @@ export class Translator { * @returns {Promise<{dictionaryEntries: import('dictionary').TermDictionaryEntry[], originalTextLength: number}>} An object containing dictionary entries and the length of the original source text. */ async findTerms(mode, text, options) { - const {enabledDictionaryMap, excludeDictionaryDefinitions, sortFrequencyDictionary, sortFrequencyDictionaryOrder} = options; + const {enabledDictionaryMap, excludeDictionaryDefinitions, sortFrequencyDictionary, sortFrequencyDictionaryOrder, language} = options; const tagAggregator = new TranslatorTagAggregator(); - let {dictionaryEntries, originalTextLength} = await this._findTermsInternal(text, enabledDictionaryMap, options, tagAggregator); + let {dictionaryEntries, originalTextLength} = await this._findTermsInternal(text, options, tagAggregator); switch (mode) { case 'group': dictionaryEntries = this._groupDictionaryEntriesByHeadword(dictionaryEntries, tagAggregator); break; case 'merge': - dictionaryEntries = await this._getRelatedDictionaryEntries(dictionaryEntries, options.mainDictionary, enabledDictionaryMap, tagAggregator); + dictionaryEntries = await this._getRelatedDictionaryEntries(dictionaryEntries, options, tagAggregator); break; } @@ -115,7 +115,9 @@ export class Translator { if (pronunciations.length > 1) { this._sortTermDictionaryEntrySimpleData(pronunciations); } } - return {dictionaryEntries, originalTextLength}; + const withUserFacingInflections = this._addUserFacingInflections(language, dictionaryEntries); + + return {dictionaryEntries: withUserFacingInflections, originalTextLength}; } /** @@ -206,23 +208,33 @@ export class Translator { /** * @param {string} text - * @param {Map<string, import('translation').FindTermDictionary>} enabledDictionaryMap * @param {import('translation').FindTermsOptions} options * @param {TranslatorTagAggregator} tagAggregator - * @returns {Promise<import('translator').FindTermsResult>} + * @returns {Promise<{dictionaryEntries: import('translation-internal').TermDictionaryEntry[], originalTextLength: number}>} */ - async _findTermsInternal(text, enabledDictionaryMap, options, tagAggregator) { - if (options.removeNonJapaneseCharacters) { + async _findTermsInternal(text, options, tagAggregator) { + const {removeNonJapaneseCharacters, enabledDictionaryMap} = options; + if (removeNonJapaneseCharacters) { text = this._getJapaneseOnlyText(text); } if (text.length === 0) { return {dictionaryEntries: [], originalTextLength: 0}; } - const deinflections = await this._getDeinflections(text, enabledDictionaryMap, options); + const deinflections = await this._getDeinflections(text, options); + return this._getDictionaryEntries(deinflections, enabledDictionaryMap, tagAggregator); + } + + /** + * @param {import('translation-internal').DatabaseDeinflection[]} deinflections + * @param {import('translation').TermEnabledDictionaryMap} enabledDictionaryMap + * @param {TranslatorTagAggregator} tagAggregator + * @returns {{dictionaryEntries: import('translation-internal').TermDictionaryEntry[], originalTextLength: number}} + */ + _getDictionaryEntries(deinflections, enabledDictionaryMap, tagAggregator) { let originalTextLength = 0; - /** @type {import('dictionary').TermDictionaryEntry[]} */ + /** @type {import('translation-internal').TermDictionaryEntry[]} */ const dictionaryEntries = []; const ids = new Set(); for (const {databaseEntries, originalText, transformedText, deinflectedText, inflectionRuleChainCandidates} of deinflections) { @@ -247,19 +259,20 @@ export class Translator { ids.add(id); } } - return {dictionaryEntries, originalTextLength}; } /** - * @param {import('dictionary').TermDictionaryEntry} existingEntry - * @param {import('dictionary').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates + * @param {import('translation-internal').TermDictionaryEntry} existingEntry + * @param {import('translation-internal').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates */ _mergeInflectionRuleChains(existingEntry, inflectionRuleChainCandidates) { const existingChains = existingEntry.inflectionRuleChainCandidates; for (const {source, inflectionRules} of inflectionRuleChainCandidates) { - const duplicate = existingChains.find((existingChain) => this._areArraysEqualIgnoreOrder(existingChain.inflectionRules, inflectionRules)); + const duplicate = existingChains.find((existingChain) => { + return this._areArraysEqualIgnoreOrder(existingChain.inflectionRules, inflectionRules); + }); if (!duplicate) { existingEntry.inflectionRuleChainCandidates.push({source, inflectionRules}); } else if (duplicate.source !== source) { @@ -299,11 +312,10 @@ export class Translator { /** * @param {string} text - * @param {Map<string, import('translation').FindTermDictionary>} enabledDictionaryMap * @param {import('translation').FindTermsOptions} options * @returns {Promise<import('translation-internal').DatabaseDeinflection[]>} */ - async _getDeinflections(text, enabledDictionaryMap, options) { + async _getDeinflections(text, options) { let deinflections = ( options.deinflect ? this._getAlgorithmDeinflections(text, options) : @@ -311,7 +323,7 @@ export class Translator { ); if (deinflections.length === 0) { return []; } - const {matchType, language} = options; + const {matchType, language, enabledDictionaryMap} = options; await this._addEntriesToDeinflections(language, deinflections, enabledDictionaryMap, matchType); @@ -455,7 +467,7 @@ export class Translator { const {trace, conditions} = deinflection; const postprocessedTextVariants = this._getTextVariants(deinflection.text, textPostprocessors, [null], sourceCache); for (const transformedText of postprocessedTextVariants) { - /** @type {import('dictionary').InflectionRuleChainCandidate} */ + /** @type {import('translation-internal').InflectionRuleChainCandidate} */ const inflectionRuleChainCandidate = { source: 'algorithm', inflectionRules: trace.map((frame) => frame.transform), @@ -577,7 +589,7 @@ export class Translator { * @param {string} transformedText * @param {string} deinflectedText * @param {number} conditions - * @param {import('dictionary').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates + * @param {import('translation-internal').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates * @returns {import('translation-internal').DatabaseDeinflection} */ _createDeinflection(originalText, transformedText, deinflectedText, conditions, inflectionRuleChainCandidates) { @@ -587,20 +599,20 @@ export class Translator { // Term dictionary entry grouping /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries - * @param {string} mainDictionary - * @param {import('translation').TermEnabledDictionaryMap} enabledDictionaryMap + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation').FindTermsOptions} options * @param {TranslatorTagAggregator} tagAggregator - * @returns {Promise<import('dictionary').TermDictionaryEntry[]>} + * @returns {Promise<import('translation-internal').TermDictionaryEntry[]>} */ - async _getRelatedDictionaryEntries(dictionaryEntries, mainDictionary, enabledDictionaryMap, tagAggregator) { + async _getRelatedDictionaryEntries(dictionaryEntries, options, tagAggregator) { + const {mainDictionary, enabledDictionaryMap} = options; /** @type {import('translator').SequenceQuery[]} */ const sequenceList = []; - /** @type {import('translator').DictionaryEntryGroup[]} */ + /** @type {import('translation-internal').DictionaryEntryGroup[]} */ const groupedDictionaryEntries = []; - /** @type {Map<number, import('translator').DictionaryEntryGroup>} */ + /** @type {Map<number, import('translation-internal').DictionaryEntryGroup>} */ const groupedDictionaryEntriesMap = new Map(); - /** @type {Map<number, import('dictionary').TermDictionaryEntry>} */ + /** @type {Map<number, import('translation-internal').TermDictionaryEntry>} */ const ungroupedDictionaryEntriesMap = new Map(); for (const dictionaryEntry of dictionaryEntries) { const {definitions: [{id, dictionary, sequences: [sequence]}]} = dictionaryEntry; @@ -642,8 +654,8 @@ export class Translator { } /** - * @param {import('translator').DictionaryEntryGroup[]} groupedDictionaryEntries - * @param {Map<number, import('dictionary').TermDictionaryEntry>} ungroupedDictionaryEntriesMap + * @param {import('translation-internal').DictionaryEntryGroup[]} groupedDictionaryEntries + * @param {Map<number, import('translation-internal').TermDictionaryEntry>} ungroupedDictionaryEntriesMap * @param {import('translator').SequenceQuery[]} sequenceList * @param {import('translation').TermEnabledDictionaryMap} enabledDictionaryMap * @param {TranslatorTagAggregator} tagAggregator @@ -664,8 +676,8 @@ export class Translator { } /** - * @param {import('translator').DictionaryEntryGroup[]} groupedDictionaryEntries - * @param {Map<number, import('dictionary').TermDictionaryEntry>} ungroupedDictionaryEntriesMap + * @param {import('translation-internal').DictionaryEntryGroup[]} groupedDictionaryEntries + * @param {Map<number, import('translation-internal').TermDictionaryEntry>} ungroupedDictionaryEntriesMap * @param {import('translation').TermEnabledDictionaryMap} enabledDictionaryMap * @param {import('translation').TermEnabledDictionaryMap} secondarySearchDictionaryMap * @param {TranslatorTagAggregator} tagAggregator @@ -675,7 +687,7 @@ export class Translator { /** @type {import('dictionary-database').TermExactRequest[]} */ const termList = []; const targetList = []; - /** @type {Map<string, {groups: import('translator').DictionaryEntryGroup[]}>} */ + /** @type {Map<string, {groups: import('translation-internal').DictionaryEntryGroup[]}>} */ const targetMap = new Map(); for (const group of groupedDictionaryEntries) { @@ -733,12 +745,12 @@ export class Translator { } /** - * @param {Iterable<import('dictionary').TermDictionaryEntry>} dictionaryEntries + * @param {Iterable<import('translation-internal').TermDictionaryEntry>} dictionaryEntries * @param {TranslatorTagAggregator} tagAggregator - * @returns {import('dictionary').TermDictionaryEntry[]} + * @returns {import('translation-internal').TermDictionaryEntry[]} */ _groupDictionaryEntriesByHeadword(dictionaryEntries, tagAggregator) { - /** @type {Map<string, import('dictionary').TermDictionaryEntry[]>} */ + /** @type {Map<string, import('translation-internal').TermDictionaryEntry[]>} */ const groups = new Map(); for (const dictionaryEntry of dictionaryEntries) { const {inflectionRuleChainCandidates, headwords: [{term, reading}]} = dictionaryEntry; @@ -761,7 +773,7 @@ export class Translator { // Removing data /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries * @param {Set<string>} excludeDictionaryDefinitions */ _removeExcludedDefinitions(dictionaryEntries, excludeDictionaryDefinitions) { @@ -785,7 +797,7 @@ export class Translator { } /** - * @param {import('dictionary').TermDictionaryEntry} dictionaryEntry + * @param {import('translation-internal').TermDictionaryEntry} dictionaryEntry */ _removeUnusedHeadwords(dictionaryEntry) { const {definitions, pronunciations, frequencies, headwords} = dictionaryEntry; @@ -1071,7 +1083,7 @@ export class Translator { // Metadata /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries * @param {import('translation').TermEnabledDictionaryMap} enabledDictionaryMap * @param {TranslatorTagAggregator} tagAggregator */ @@ -1543,7 +1555,7 @@ export class Translator { /** * @param {boolean} isPrimary - * @param {import('dictionary').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates + * @param {import('translation-internal').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates * @param {number} score * @param {number} dictionaryIndex * @param {number} dictionaryPriority @@ -1551,7 +1563,7 @@ export class Translator { * @param {number} maxOriginalTextLength * @param {import('dictionary').TermHeadword[]} headwords * @param {import('dictionary').TermDefinition[]} definitions - * @returns {import('dictionary').TermDictionaryEntry} + * @returns {import('translation-internal').TermDictionaryEntry} */ _createTermDictionaryEntry(isPrimary, inflectionRuleChainCandidates, score, dictionaryIndex, dictionaryPriority, sourceTermExactMatchCount, maxOriginalTextLength, headwords, definitions) { return { @@ -1576,11 +1588,11 @@ export class Translator { * @param {string} originalText * @param {string} transformedText * @param {string} deinflectedText - * @param {import('dictionary').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates + * @param {import('translation-internal').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates * @param {boolean} isPrimary * @param {Map<string, import('translation').FindTermDictionary>} enabledDictionaryMap * @param {TranslatorTagAggregator} tagAggregator - * @returns {import('dictionary').TermDictionaryEntry} + * @returns {import('translation-internal').TermDictionaryEntry} */ _createTermDictionaryEntryFromDatabaseEntry(databaseEntry, originalText, transformedText, deinflectedText, inflectionRuleChainCandidates, isPrimary, enabledDictionaryMap, tagAggregator) { const { @@ -1628,10 +1640,10 @@ export class Translator { } /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries * @param {boolean} checkDuplicateDefinitions * @param {TranslatorTagAggregator} tagAggregator - * @returns {import('dictionary').TermDictionaryEntry} + * @returns {import('translation-internal').TermDictionaryEntry} */ _createGroupedDictionaryEntry(dictionaryEntries, checkDuplicateDefinitions, tagAggregator) { // Headwords are generated before sorting, so that the order of dictionaryEntries can be maintained @@ -1864,13 +1876,13 @@ export class Translator { } /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries */ _sortTermDictionaryEntries(dictionaryEntries) { const stringComparer = this._stringComparer; /** - * @param {import('dictionary').TermDictionaryEntry} v1 - * @param {import('dictionary').TermDictionaryEntry} v2 + * @param {import('translation-internal').TermDictionaryEntry} v1 + * @param {import('translation-internal').TermDictionaryEntry} v2 * @returns {number} */ const compareFunction = (v1, v2) => { @@ -1968,7 +1980,7 @@ export class Translator { } /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries */ _sortTermDictionaryEntriesById(dictionaryEntries) { if (dictionaryEntries.length <= 1) { return; } @@ -2033,7 +2045,7 @@ export class Translator { } /** - * @param {import('dictionary').TermDictionaryEntry[]} dictionaryEntries + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries * @param {string} dictionary * @param {boolean} ascending */ @@ -2078,7 +2090,7 @@ export class Translator { } /** - * @param {import('dictionary').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates + * @param {import('translation-internal').InflectionRuleChainCandidate[]} inflectionRuleChainCandidates * @returns {number} */ _getShortestInflectionChainLength(inflectionRuleChainCandidates) { @@ -2090,6 +2102,25 @@ export class Translator { return length; } + + /** + * @param {string} language + * @param {import('translation-internal').TermDictionaryEntry[]} dictionaryEntries + * @returns {import('dictionary').TermDictionaryEntry[]} + */ + _addUserFacingInflections(language, dictionaryEntries) { + const result = []; + for (const dictionaryEntry of dictionaryEntries) { + const {inflectionRuleChainCandidates} = dictionaryEntry; + const expandedChains = inflectionRuleChainCandidates.map(({source, inflectionRules}) => ({ + source, + inflectionRules: this._multiLanguageTransformer.getUserFacingInflectionRules(language, inflectionRules), + })); + result.push({...dictionaryEntry, inflectionRuleChainCandidates: expandedChains}); + } + return result; + } + // Miscellaneous /** diff --git a/test/data/translator-test-results-note-data1.json b/test/data/translator-test-results-note-data1.json index 11c9d078..81f98a77 100644 --- a/test/data/translator-test-results-note-data1.json +++ b/test/data/translator-test-results-note-data1.json @@ -4579,7 +4579,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -4895,7 +4897,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -5211,7 +5215,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -5527,7 +5533,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -9718,7 +9726,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -10034,7 +10044,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -11199,7 +11211,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -11515,7 +11529,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -12899,7 +12915,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -13246,7 +13264,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -15003,7 +15023,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -16209,11 +16231,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -16637,11 +16669,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -17065,11 +17107,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -17493,11 +17545,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -17921,7 +17983,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -18237,7 +18301,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -18553,7 +18619,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -18869,7 +18937,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -21515,7 +21585,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -21831,7 +21903,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -22147,7 +22221,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -22463,7 +22539,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -25109,7 +25187,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -25425,7 +25505,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -25741,7 +25823,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -26057,7 +26141,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -27015,7 +27101,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -27337,8 +27425,12 @@ { "source": "algorithm", "inflectionRules": [ - "polite", - "past" + { + "name": "polite" + }, + { + "name": "past" + } ] } ], @@ -28271,7 +28363,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -30322,14 +30416,21 @@ { "source": "both", "inflectionRules": [ - "past" + { + "name": "past" + } ] }, { "source": "algorithm", "inflectionRules": [ - "past", - "kansai-ben" + { + "name": "past" + }, + { + "name": "kansai-ben", + "description": "past form of kansai-ben terms" + } ] } ], @@ -32831,8 +32932,13 @@ { "source": "algorithm", "inflectionRules": [ - "adv", - "kansai-ben" + { + "name": "adv" + }, + { + "name": "kansai-ben", + "description": "-ku stem of kansai-ben adjectives" + } ] } ], @@ -33184,7 +33290,9 @@ { "source": "algorithm", "inflectionRules": [ - "-๊ฑฐ๋" + { + "name": "-๊ฑฐ๋" + } ] } ], diff --git a/test/data/translator-test-results.json b/test/data/translator-test-results.json index ba251347..d63996c8 100644 --- a/test/data/translator-test-results.json +++ b/test/data/translator-test-results.json @@ -2461,7 +2461,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -2633,7 +2635,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -2805,7 +2809,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -2977,7 +2983,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -5231,7 +5239,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -5403,7 +5413,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -5969,7 +5981,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -6141,7 +6155,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -6695,7 +6711,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -6759,7 +6777,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -6823,7 +6843,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -6887,7 +6909,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -7565,7 +7589,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -7785,7 +7811,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -8820,7 +8848,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -9590,11 +9620,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -9790,11 +9830,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -9990,11 +10040,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -10190,11 +10250,21 @@ { "source": "algorithm", "inflectionRules": [ - "-te", - "progressive or perfect", - "polite", - "negative", - "past" + { + "name": "-te" + }, + { + "name": "progressive or perfect" + }, + { + "name": "polite" + }, + { + "name": "negative" + }, + { + "name": "past" + } ] } ], @@ -10390,7 +10460,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -10562,7 +10634,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -10734,7 +10808,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -10906,7 +10982,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -12209,7 +12287,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -12381,7 +12461,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -12553,7 +12635,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -12725,7 +12809,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -14028,7 +14114,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -14200,7 +14288,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -14372,7 +14462,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -14544,7 +14636,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -15071,7 +15165,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -15289,8 +15385,12 @@ { "source": "algorithm", "inflectionRules": [ - "polite", - "past" + { + "name": "polite" + }, + { + "name": "past" + } ] } ], @@ -15860,7 +15960,9 @@ { "source": "algorithm", "inflectionRules": [ - "masu stem" + { + "name": "masu stem" + } ] } ], @@ -17068,14 +17170,21 @@ { "source": "both", "inflectionRules": [ - "past" + { + "name": "past" + } ] }, { "source": "algorithm", "inflectionRules": [ - "past", - "kansai-ben" + { + "name": "past" + }, + { + "name": "kansai-ben", + "description": "past form of kansai-ben terms" + } ] } ], @@ -18534,8 +18643,13 @@ { "source": "algorithm", "inflectionRules": [ - "adv", - "kansai-ben" + { + "name": "adv" + }, + { + "name": "kansai-ben", + "description": "-ku stem of kansai-ben adjectives" + } ] } ], @@ -18778,7 +18892,9 @@ { "source": "algorithm", "inflectionRules": [ - "-๊ฑฐ๋" + { + "name": "-๊ฑฐ๋" + } ] } ], diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js index 64d935d5..d0ff131e 100644 --- a/test/language/japanese-transforms.test.js +++ b/test/language/japanese-transforms.test.js @@ -1108,65 +1108,65 @@ const tests = [ category: '-ku stem of kansai-ben adjectives', valid: true, tests: [ - {term: 'ๅฎใใ', source: 'ๅฎใใ
ใ', rule: null, reasons: ['adv', 'kansai-ben']}, - {term: 'ใใใใ', source: 'ใใใใ
ใ', rule: null, reasons: ['adv', 'kansai-ben']}, - {term: '่ฏใ', source: '่ฏใ', rule: null, reasons: ['adv', 'kansai-ben']}, - {term: 'ใใ', source: 'ใใ', rule: null, reasons: ['adv', 'kansai-ben']}, + {term: 'ๅฎใใ', source: 'ๅฎใใ
ใ', rule: null, reasons: ['adv', 'kansai-ben -ku']}, + {term: 'ใใใใ', source: 'ใใใใ
ใ', rule: null, reasons: ['adv', 'kansai-ben -ku']}, + {term: '่ฏใ', source: '่ฏใ', rule: null, reasons: ['adv', 'kansai-ben -ku']}, + {term: 'ใใ', source: 'ใใ', rule: null, reasons: ['adv', 'kansai-ben -ku']}, ], }, { category: '-te form of kansai-ben adjectives', valid: true, tests: [ - {term: 'ใใใใ', source: 'ใใใใ
ใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, - {term: 'ๅฎใใ', source: 'ๅฎใใ
ใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, - {term: 'ใใ', source: 'ใใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, - {term: '่ฏใ', source: '่ฏใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, + {term: 'ใใใใ', source: 'ใใใใ
ใใฆ', rule: null, reasons: ['-te', 'kansai-ben adjective -te']}, + {term: 'ๅฎใใ', source: 'ๅฎใใ
ใใฆ', rule: null, reasons: ['-te', 'kansai-ben adjective -te']}, + {term: 'ใใ', source: 'ใใใฆ', rule: null, reasons: ['-te', 'kansai-ben adjective -te']}, + {term: '่ฏใ', source: '่ฏใใฆ', rule: null, reasons: ['-te', 'kansai-ben adjective -te']}, ], }, { category: 'Negative form of kansai-ben adjectives', valid: true, tests: [ - {term: 'ใใใใ', source: 'ใใใใ
ใใชใ', rule: null, reasons: ['negative', 'kansai-ben']}, - {term: 'ๅฎใใ', source: 'ๅฎใใ
ใใชใ', rule: null, reasons: ['negative', 'kansai-ben']}, - {term: 'ใใ', source: 'ใใใชใ', rule: null, reasons: ['negative', 'kansai-ben']}, - {term: '่ฏใ', source: '่ฏใใชใ', rule: null, reasons: ['negative', 'kansai-ben']}, + {term: 'ใใใใ', source: 'ใใใใ
ใใชใ', rule: null, reasons: ['negative', 'kansai-ben adjective negative']}, + {term: 'ๅฎใใ', source: 'ๅฎใใ
ใใชใ', rule: null, reasons: ['negative', 'kansai-ben adjective negative']}, + {term: 'ใใ', source: 'ใใใชใ', rule: null, reasons: ['negative', 'kansai-ben adjective negative']}, + {term: '่ฏใ', source: '่ฏใใชใ', rule: null, reasons: ['negative', 'kansai-ben adjective negative']}, ], }, { category: 'Negative form of kansai-ben verbs', valid: true, tests: [ - {term: '้ฃในใ', source: '้ฃในใธใ', rule: null, reasons: ['negative', 'kansai-ben']}, - {term: '้ฃในใ', source: '้ฃในใธใใใฃใ', rule: null, reasons: ['negative', 'past', 'kansai-ben']}, + {term: '้ฃในใ', source: '้ฃในใธใ', rule: null, reasons: ['negative', 'kansai-ben negative']}, + {term: '้ฃในใ', source: '้ฃในใธใใใฃใ', rule: null, reasons: ['negative', 'past', 'kansai-ben negative']}, ], }, { category: '-te form of kansai-ben verbs', valid: true, tests: [ - {term: '่ฒทใ', source: '่ฒทใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, - {term: 'ใใ', source: 'ใใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, - {term: 'ใฏใ', source: 'ใปใใฆ', rule: null, reasons: ['-te', 'kansai-ben']}, + {term: '่ฒทใ', source: '่ฒทใใฆ', rule: null, reasons: ['-te', 'kansai-ben -te']}, + {term: 'ใใ', source: 'ใใใฆ', rule: null, reasons: ['-te', 'kansai-ben -te']}, + {term: 'ใฏใ', source: 'ใปใใฆ', rule: null, reasons: ['-te', 'kansai-ben -te']}, ], }, { category: 'past form of kansai-ben terms', valid: true, tests: [ - {term: '่ฒทใ', source: '่ฒทใใ', rule: null, reasons: ['past', 'kansai-ben']}, - {term: 'ใใ', source: 'ใใใ', rule: null, reasons: ['past', 'kansai-ben']}, - {term: 'ใฏใ', source: 'ใปใใ', rule: null, reasons: ['past', 'kansai-ben']}, + {term: '่ฒทใ', source: '่ฒทใใ', rule: null, reasons: ['past', 'kansai-ben past']}, + {term: 'ใใ', source: 'ใใใ', rule: null, reasons: ['past', 'kansai-ben past']}, + {term: 'ใฏใ', source: 'ใปใใ', rule: null, reasons: ['past', 'kansai-ben past']}, ], }, { category: '-tara form of kansai-ben terms', valid: true, tests: [ - {term: '่ฒทใ', source: '่ฒทใใใ', rule: null, reasons: ['-tara', 'kansai-ben']}, - {term: 'ใใ', source: 'ใใใใ', rule: null, reasons: ['-tara', 'kansai-ben']}, - {term: 'ใฏใ', source: 'ใปใใใ', rule: null, reasons: ['-tara', 'kansai-ben']}, + {term: '่ฒทใ', source: '่ฒทใใใ', rule: null, reasons: ['-tara', 'kansai-ben -tara']}, + {term: 'ใใ', source: 'ใใใใ', rule: null, reasons: ['-tara', 'kansai-ben -tara']}, + {term: 'ใฏใ', source: 'ใปใใใ', rule: null, reasons: ['-tara', 'kansai-ben -tara']}, ], }, ]; diff --git a/test/options-util.test.js b/test/options-util.test.js index a849fa32..af4daef9 100644 --- a/test/options-util.test.js +++ b/test/options-util.test.js @@ -605,7 +605,7 @@ function createOptionsUpdatedTestData1() { }, ], profileCurrent: 0, - version: 37, + version: 38, global: { database: { prefixWildcardsSupported: false, diff --git a/types/ext/dictionary.d.ts b/types/ext/dictionary.d.ts index cc53ec0a..060e6907 100644 --- a/types/ext/dictionary.d.ts +++ b/types/ext/dictionary.d.ts @@ -258,7 +258,12 @@ export type InflectionRuleChainCandidate = { inflectionRules: InflectionRuleChain; }; -export type InflectionRuleChain = string[]; +export type InflectionRuleChain = InflectionRule[]; + +export type InflectionRule = { + name: string; + description?: string; +}; export type InflectionSource = 'algorithm' | 'dictionary' | 'both'; diff --git a/types/ext/language-transformer-internal.d.ts b/types/ext/language-transformer-internal.d.ts index a2b18b35..c3ea4b7c 100644 --- a/types/ext/language-transformer-internal.d.ts +++ b/types/ext/language-transformer-internal.d.ts @@ -16,9 +16,11 @@ */ export type Transform = { + id: string; name: string; rules: Rule[]; heuristic: RegExp; + description?: string; }; export type Rule = { diff --git a/types/ext/language-transformer.d.ts b/types/ext/language-transformer.d.ts index 02457523..cf5a0041 100644 --- a/types/ext/language-transformer.d.ts +++ b/types/ext/language-transformer.d.ts @@ -18,7 +18,9 @@ export type LanguageTransformDescriptor = { language: string; conditions: ConditionMapObject; - transforms: Transform[]; + transforms: { + [name: string]: Transform; + }; }; export type ConditionMapObject = { diff --git a/types/ext/translation-internal.d.ts b/types/ext/translation-internal.d.ts index 3360ac06..0efbe54f 100644 --- a/types/ext/translation-internal.d.ts +++ b/types/ext/translation-internal.d.ts @@ -40,15 +40,29 @@ export type TextDeinflectionOptionsArrays = [ emphatic: [collapseEmphatic: boolean, collapseEmphaticFull: boolean][], ]; +export type TermDictionaryEntry = Omit<Dictionary.TermDictionaryEntry, 'inflectionRuleChainCandidates'> & { + inflectionRuleChainCandidates: InflectionRuleChainCandidate[]; +}; + +export type InflectionRuleChainCandidate = { + source: Dictionary.InflectionSource; + inflectionRules: string[]; +}; + export type DatabaseDeinflection = { originalText: string; transformedText: string; deinflectedText: string; conditions: number; - inflectionRuleChainCandidates: Dictionary.InflectionRuleChainCandidate[]; + inflectionRuleChainCandidates: InflectionRuleChainCandidate[]; databaseEntries: DictionaryDatabase.TermEntry[]; }; +export type DictionaryEntryGroup = { + ids: Set<number>; + dictionaryEntries: TermDictionaryEntry[]; +}; + export type TextProcessorMap = Map< string, { diff --git a/types/ext/translator.d.ts b/types/ext/translator.d.ts index fb8d1142..0a4053cf 100644 --- a/types/ext/translator.d.ts +++ b/types/ext/translator.d.ts @@ -63,11 +63,6 @@ export type TagTargetItem = { targets: Dictionary.Tag[][]; }; -export type DictionaryEntryGroup = { - ids: Set<number>; - dictionaryEntries: Dictionary.TermDictionaryEntry[]; -}; - export type SequenceQuery = { query: number; dictionary: string; |