diff options
author | StefanVukovic99 <stefanvukovic44@gmail.com> | 2024-06-10 21:57:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-10 19:57:08 +0000 |
commit | ee2b425ffea94c069d48b6cebcc68352f05c3d50 (patch) | |
tree | f58e40b1d0d992ebef8fb83214a46bdc99fe80b2 | |
parent | e24075e1a91ab8b58bb5836cf7abcefae5cbf8c3 (diff) |
fix -masen verbs being deinflected as negative potential polite (#1046)
* test
* fix
* positive test
-rw-r--r-- | ext/js/language/ja/japanese-transforms.js | 51 | ||||
-rw-r--r-- | test/language/japanese-transforms.test.js | 6 |
2 files changed, 38 insertions, 19 deletions
diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js index c8f9f671..8e7ba243 100644 --- a/ext/js/language/ja/japanese-transforms.js +++ b/ext/js/language/ja/japanese-transforms.js @@ -72,6 +72,21 @@ export const japaneseTransforms = { }, ], isDictionaryForm: true, + subConditions: ['v5d', 'v5m'], + }, + 'v5d': { + name: 'Godan verb, dictionary form', + i18n: [ + { + language: 'ja', + name: '五段動詞、辞書形', + }, + ], + isDictionaryForm: false, + }, + 'v5m': { + name: 'Godan verb, polite (masu) form', + isDictionaryForm: false, }, 'vk': { name: 'Kuru verb', @@ -789,15 +804,15 @@ export const japaneseTransforms = { name: 'polite', rules: [ suffixInflection('ます', 'る', ['v1'], ['v1']), - suffixInflection('います', 'う', ['v5'], ['v5']), - suffixInflection('きます', 'く', ['v5'], ['v5']), - suffixInflection('ぎます', 'ぐ', ['v5'], ['v5']), - suffixInflection('します', 'す', ['v5'], ['v5']), - suffixInflection('ちます', 'つ', ['v5'], ['v5']), - suffixInflection('にます', 'ぬ', ['v5'], ['v5']), - suffixInflection('びます', 'ぶ', ['v5'], ['v5']), - suffixInflection('みます', 'む', ['v5'], ['v5']), - suffixInflection('ります', 'る', ['v5'], ['v5']), + suffixInflection('います', 'う', ['v5m'], ['v5d']), + suffixInflection('きます', 'く', ['v5m'], ['v5d']), + suffixInflection('ぎます', 'ぐ', ['v5m'], ['v5d']), + suffixInflection('します', 'す', ['v5m'], ['v5d']), + suffixInflection('ちます', 'つ', ['v5m'], ['v5d']), + suffixInflection('にます', 'ぬ', ['v5m'], ['v5d']), + suffixInflection('びます', 'ぶ', ['v5m'], ['v5d']), + suffixInflection('みます', 'む', ['v5m'], ['v5d']), + suffixInflection('ります', 'る', ['v5m'], ['v5d']), suffixInflection('じます', 'ずる', ['vz'], ['vz']), suffixInflection('します', 'する', ['vs'], ['vs']), suffixInflection('為ます', '為る', ['vs'], ['vs']), @@ -810,15 +825,15 @@ export const japaneseTransforms = { 'potential': { name: 'potential', rules: [ - suffixInflection('れる', 'る', ['v1'], ['v1', 'v5']), - suffixInflection('える', 'う', ['v1'], ['v5']), - suffixInflection('ける', 'く', ['v1'], ['v5']), - suffixInflection('げる', 'ぐ', ['v1'], ['v5']), - suffixInflection('せる', 'す', ['v1'], ['v5']), - suffixInflection('てる', 'つ', ['v1'], ['v5']), - suffixInflection('ねる', 'ぬ', ['v1'], ['v5']), - suffixInflection('べる', 'ぶ', ['v1'], ['v5']), - suffixInflection('める', 'む', ['v1'], ['v5']), + suffixInflection('れる', 'る', ['v1'], ['v1', 'v5d']), + suffixInflection('える', 'う', ['v1'], ['v5d']), + suffixInflection('ける', 'く', ['v1'], ['v5d']), + suffixInflection('げる', 'ぐ', ['v1'], ['v5d']), + suffixInflection('せる', 'す', ['v1'], ['v5d']), + suffixInflection('てる', 'つ', ['v1'], ['v5d']), + suffixInflection('ねる', 'ぬ', ['v1'], ['v5d']), + suffixInflection('べる', 'ぶ', ['v1'], ['v5d']), + suffixInflection('める', 'む', ['v1'], ['v5d']), suffixInflection('できる', 'する', ['v1'], ['vs']), suffixInflection('出来る', 'する', ['v1'], ['vs']), suffixInflection('これる', 'くる', ['v1'], ['vk']), diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js index d0ff131e..f62eef0f 100644 --- a/test/language/japanese-transforms.test.js +++ b/test/language/japanese-transforms.test.js @@ -316,6 +316,8 @@ const tests = [ {term: '話す', source: '話してる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, {term: '話す', source: '話しとる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, {term: '話す', source: '話してしまう', rule: 'v5', reasons: ['-te', '-shimau']}, + + {term: '増す', source: '増せん', rule: 'v5', reasons: ['potential', '-n']}, ], }, { @@ -1097,10 +1099,12 @@ const tests = [ ], }, { - category: 'incorrect -te rule chain', + category: 'incorrect chains', valid: false, tests: [ {term: '食べる', source: '食べて', rule: null, reasons: ['-te', 'progressive or perfect', 'masu stem']}, + + {term: 'なる', source: 'なりません', rule: null, reasons: ['polite', 'potential', '-n']}, ], }, // Kansai-ben |