aboutsummaryrefslogtreecommitdiff
path: root/ext/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js')
-rw-r--r--ext/js/data/options-util.js9
-rw-r--r--ext/js/display/display-generator.js8
-rw-r--r--ext/js/display/display.js30
-rw-r--r--ext/js/language/de/german-transforms.js14
-rw-r--r--ext/js/language/en/english-transforms.js36
-rw-r--r--ext/js/language/es/spanish-transforms.js10
-rw-r--r--ext/js/language/ja/japanese-transforms.js98
-rw-r--r--ext/js/language/ko/korean-transforms.js922
-rw-r--r--ext/js/language/la/latin-transforms.js12
-rw-r--r--ext/js/language/language-transformer.js30
-rw-r--r--ext/js/language/multi-language-transformer.js13
-rw-r--r--ext/js/language/sga/old-irish-transforms.js36
-rw-r--r--ext/js/language/sq/albanian-transforms.js66
-rw-r--r--ext/js/language/translator.js131
14 files changed, 757 insertions, 658 deletions
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
/**