From e91ba6e3a41666a1bb13c6f0e3fc59799fa27718 Mon Sep 17 00:00:00 2001 From: Khai Truong Date: Fri, 6 Sep 2024 16:09:50 +0700 Subject: [PATCH 1/2] Add volitional slang --- .../japanese-language-transformer.bench.js | 6 + ext/js/language/ja/japanese-transforms.js | 113 +++++++++++++----- test/language/japanese-transforms.test.js | 30 +++++ 3 files changed, 116 insertions(+), 33 deletions(-) diff --git a/benches/japanese-language-transformer.bench.js b/benches/japanese-language-transformer.bench.js index ce0910cbd1..4206805cf0 100644 --- a/benches/japanese-language-transformer.bench.js +++ b/benches/japanese-language-transformer.bench.js @@ -78,7 +78,9 @@ describe('japanese language transformer', () => { '食べぬ', '食べ', '食べましょう', + '食べましょっか', '食べよう', + '食べよっか', '食べるまい', '食べまい', '食べとく', @@ -145,7 +147,9 @@ describe('japanese language transformer', () => { 'こねば', 'き', 'きましょう', + 'きましょっか', 'こよう', + 'こよっか', 'くるまい', 'こまい', 'きとく', @@ -209,7 +213,9 @@ describe('japanese language transformer', () => { 'せざる', 'せねば', 'しましょう', + 'しましょっか', 'しよう', + 'しよっか', 'するまい', 'しまい', 'しとく', diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js index 7479fd3b18..52619b0cd9 100644 --- a/ext/js/language/ja/japanese-transforms.js +++ b/ext/js/language/ja/japanese-transforms.js @@ -544,6 +544,13 @@ export const japaneseTransforms = { suffixInflection('副うたら', '副う', [], ['v5']), suffixInflection('厭うたら', '厭う', [], ['v5']), suffixInflection('のたもうたら', 'のたまう', [], ['v5']), + suffixInflection('宣うたら', '宣う', [], ['v5']), + suffixInflection('曰うたら', '曰う', [], ['v5']), + suffixInflection('たもうたら', 'たまう', [], ['v5']), + suffixInflection('給うたら', '給う', [], ['v5']), + suffixInflection('賜うたら', '賜う', [], ['v5']), + suffixInflection('たゆとうたら', 'たゆたう', [], ['v5']), + suffixInflection('揺蕩うたら', '揺蕩う', [], ['v5']), suffixInflection('ましたら', 'ます', [], ['-masu']), ], }, @@ -595,6 +602,13 @@ export const japaneseTransforms = { suffixInflection('副うたり', '副う', [], ['v5']), suffixInflection('厭うたり', '厭う', [], ['v5']), suffixInflection('のたもうたり', 'のたまう', [], ['v5']), + suffixInflection('宣うたり', '宣う', [], ['v5']), + suffixInflection('曰うたり', '曰う', [], ['v5']), + suffixInflection('たもうたり', 'たまう', [], ['v5']), + suffixInflection('給うたり', '給う', [], ['v5']), + suffixInflection('賜うたり', '賜う', [], ['v5']), + suffixInflection('たゆとうたり', 'たゆたう', [], ['v5']), + suffixInflection('揺蕩うたり', '揺蕩う', [], ['v5']), ], }, '-te': { @@ -645,6 +659,13 @@ export const japaneseTransforms = { suffixInflection('副うて', '副う', ['-te'], ['v5']), suffixInflection('厭うて', '厭う', ['-te'], ['v5']), suffixInflection('のたもうて', 'のたまう', ['-te'], ['v5']), + suffixInflection('宣うて', '宣う', ['-te'], ['v5']), + suffixInflection('曰うて', '曰う', ['-te'], ['v5']), + suffixInflection('たもうて', 'たまう', ['-te'], ['v5']), + suffixInflection('給うて', '給う', ['-te'], ['v5']), + suffixInflection('賜うて', '賜う', ['-te'], ['v5']), + suffixInflection('たゆとうて', 'たゆたう', ['-te'], ['v5']), + suffixInflection('揺蕩うて', '揺蕩う', ['-te'], ['v5']), suffixInflection('まして', 'ます', [], ['-masu']), ], }, @@ -771,38 +792,6 @@ export const japaneseTransforms = { suffixInflection('來んばかり', '來る', [], ['vk']), ], }, - '-ntosuru': { - name: '-ntosuru', - description: '1. Shows the speaker\'s will or intention.\n' + - '2. Shows an action or condition is on the verge of occurring.\n' + - 'Usage: Attach んとする to the irrealis form (mizenkei) of verbs.\n' + - 'する becomes せんとする', - i18n: [ - { - language: 'ja', - name: '~んとする', - description: '…しようとする、…しようとしている', - }, - ], - rules: [ - suffixInflection('んとする', 'る', ['vs'], ['v1']), - suffixInflection('かんとする', 'く', ['vs'], ['v5']), - suffixInflection('がんとする', 'ぐ', ['vs'], ['v5']), - suffixInflection('さんとする', 'す', ['vs'], ['v5']), - suffixInflection('たんとする', 'つ', ['vs'], ['v5']), - suffixInflection('なんとする', 'ぬ', ['vs'], ['v5']), - suffixInflection('ばんとする', 'ぶ', ['vs'], ['v5']), - suffixInflection('まんとする', 'む', ['vs'], ['v5']), - suffixInflection('らんとする', 'る', ['vs'], ['v5']), - suffixInflection('わんとする', 'う', ['vs'], ['v5']), - suffixInflection('ぜんとする', 'ずる', ['vs'], ['vz']), - suffixInflection('せんとする', 'する', ['vs'], ['vs']), - suffixInflection('為んとする', '為る', ['vs'], ['vs']), - suffixInflection('こんとする', 'くる', ['vs'], ['vk']), - suffixInflection('来んとする', '来る', ['vs'], ['vk']), - suffixInflection('來んとする', '來る', ['vs'], ['vk']), - ], - }, '-mu': { name: '-mu', description: 'Archaic.\n' + @@ -1198,6 +1187,13 @@ export const japaneseTransforms = { suffixInflection('副うた', '副う', ['past'], ['v5']), suffixInflection('厭うた', '厭う', ['past'], ['v5']), suffixInflection('のたもうた', 'のたまう', ['past'], ['v5']), + suffixInflection('宣うた', '宣う', ['past'], ['v5']), + suffixInflection('曰うた', '曰う', ['past'], ['v5']), + suffixInflection('たもうた', 'たまう', ['past'], ['v5']), + suffixInflection('給うた', '給う', ['past'], ['v5']), + suffixInflection('賜うた', '賜う', ['past'], ['v5']), + suffixInflection('たゆとうた', 'たゆたう', ['past'], ['v5']), + suffixInflection('揺蕩うた', '揺蕩う', ['past'], ['v5']), suffixInflection('ました', 'ます', ['past'], ['-masu']), suffixInflection('でした', '', ['past'], ['-masen']), suffixInflection('かった', '', ['past'], ['-masen', '-n']), @@ -1293,7 +1289,9 @@ export const japaneseTransforms = { '4. Indicates an inference of a matter.\n' + 'Usage: Attach よう to the irrealis form (mizenkei) of ichidan verbs.\n' + 'Attach う to the irrealis form (mizenkei) of godan verbs after -o euphonic change form.\n' + - 'Attach かろう to the stem of i-adjectives (4th meaning only).', + 'Attach かろう to the stem of i-adjectives (4th meaning only).\n' + + '(Slang) Volitional form + か, can be contracted be replacing the う with っ.\n' + + 'For example, 行こうか can be contracted to 行こっか.', i18n: [ { language: 'ja', @@ -1319,9 +1317,37 @@ export const japaneseTransforms = { suffixInflection('来よう', '来る', [], ['vk']), suffixInflection('來よう', '來る', [], ['vk']), suffixInflection('ましょう', 'ます', [], ['-masu']), + suffixInflection('かろう', 'い', [], ['adj-i']), ], }, + 'volitional slang': { + name: 'volitional slang', + description: 'Contractive form of the volitional form + か\n' + + '1. Expresses speaker\'s will or intention; volitional form.\n' + + '2. Expresses an invitation to the other party.\n' + + 'Usage: Replace final う with っ of the volitional form then add か.\n' + + 'For example: 行こうか -> 行こっか.', + rules: [ + suffixInflection('よっか', 'る', [], ['v1']), + suffixInflection('おっか', 'う', [], ['v5']), + suffixInflection('こっか', 'く', [], ['v5']), + suffixInflection('ごっか', 'ぐ', [], ['v5']), + suffixInflection('そっか', 'す', [], ['v5']), + suffixInflection('とうか', 'つ', [], ['v5']), + suffixInflection('のっか', 'ぬ', [], ['v5']), + suffixInflection('ぼっか', 'ぶ', [], ['v5']), + suffixInflection('もっか', 'む', [], ['v5']), + suffixInflection('ろっか', 'る', [], ['v5']), + suffixInflection('じよっか', 'ずる', [], ['vz']), + suffixInflection('しよっか', 'する', [], ['vs']), + suffixInflection('為よっか', '為る', [], ['vs']), + suffixInflection('こよっか', 'くる', [], ['vk']), + suffixInflection('来よっか', '来る', [], ['vk']), + suffixInflection('來よっか', '來る', [], ['vk']), + suffixInflection('ましょっか', 'ます', [], ['-masu']), + ], + }, '-mai': { name: '-mai', description: 'Negative volitional form of verbs.\n' + @@ -1634,6 +1660,27 @@ export const japaneseTransforms = { suffixInflection('ゆうたら', 'いったら', [], []), ], }, + 'kansai-ben -tari': { + name: 'kansai-ben', + description: '-tari form of kansai-ben terms', + rules: [ + suffixInflection('うたり', 'ったり', [], []), + suffixInflection('おうたり', 'あったり', [], []), + suffixInflection('こうたり', 'かったり', [], []), + suffixInflection('ごうたり', 'がったり', [], []), + suffixInflection('そうたり', 'さったり', [], []), + suffixInflection('ぞうたり', 'ざったり', [], []), + suffixInflection('とうたり', 'たったり', [], []), + suffixInflection('どうたり', 'だったり', [], []), + suffixInflection('のうたり', 'なったり', [], []), + suffixInflection('ほうたり', 'はったり', [], []), + suffixInflection('ぼうたり', 'ばったり', [], []), + suffixInflection('もうたり', 'まったり', [], []), + suffixInflection('ろうたり', 'らったり', [], []), + suffixInflection('ようたり', 'やったり', [], []), + suffixInflection('ゆうたり', 'いったり', [], []), + ], + }, 'kansai-ben -ku': { name: 'kansai-ben', description: '-ku stem of kansai-ben adjectives', diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js index a506c4c1e4..428e0f4b9b 100644 --- a/test/language/japanese-transforms.test.js +++ b/test/language/japanese-transforms.test.js @@ -99,7 +99,9 @@ const tests = [ {term: '食べる', source: '食べにゃ', rule: 'v1', reasons: ['-neba', '-ya']}, {term: '食べる', source: '食べ', rule: 'v1d', reasons: ['continuative']}, {term: '食べる', source: '食べましょう', rule: 'v1', reasons: ['-masu', 'volitional']}, + {term: '食べる', source: '食べましょっか', rule: 'v1', reasons: ['-masu', 'volitional slang']}, {term: '食べる', source: '食べよう', rule: 'v1', reasons: ['volitional']}, + {term: '食べる', source: '食べよっか', rule: 'v1', reasons: ['volitional slang']}, {term: '食べる', source: '食べるまい', rule: 'v1', reasons: ['-mai']}, {term: '食べる', source: '食べまい', rule: 'v1', reasons: ['-mai']}, // ['causative-passive'] @@ -164,7 +166,9 @@ const tests = [ {term: '買う', source: '買わにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '買う', source: '買い', rule: 'v5', reasons: ['continuative']}, {term: '買う', source: '買いましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '買う', source: '買いましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '買う', source: '買おう', rule: 'v5', reasons: ['volitional']}, + {term: '買う', source: '買おっか', rule: 'v5', reasons: ['volitional slang']}, {term: '買う', source: '買うまい', rule: 'v5', reasons: ['-mai']}, {term: '買う', source: '買わされる', rule: 'v5', reasons: ['causative-passive']}, {term: '買う', source: '買っとく', rule: 'v5', reasons: ['-toku']}, @@ -233,7 +237,9 @@ const tests = [ {term: '行く', source: '行かにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '行く', source: '行き', rule: 'v5', reasons: ['continuative']}, {term: '行く', source: '行きましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '行く', source: '行きましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '行く', source: '行こう', rule: 'v5', reasons: ['volitional']}, + {term: '行く', source: '行こっか', rule: 'v5', reasons: ['volitional slang']}, {term: '行く', source: '行くまい', rule: 'v5', reasons: ['-mai']}, {term: '行く', source: '行かされる', rule: 'v5', reasons: ['causative-passive']}, {term: '行く', source: '行いとく', rule: 'v5', reasons: ['-toku']}, @@ -302,7 +308,9 @@ const tests = [ {term: '泳ぐ', source: '泳がにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '泳ぐ', source: '泳ぎ', rule: 'v5', reasons: ['continuative']}, {term: '泳ぐ', source: '泳ぎましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '泳ぐ', source: '泳ぎましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '泳ぐ', source: '泳ごう', rule: 'v5', reasons: ['volitional']}, + {term: '泳ぐ', source: '泳ごっか', rule: 'v5', reasons: ['volitional slang']}, {term: '泳ぐ', source: '泳ぐまい', rule: 'v5', reasons: ['-mai']}, {term: '泳ぐ', source: '泳がされる', rule: 'v5', reasons: ['causative-passive']}, {term: '泳ぐ', source: '泳いどく', rule: 'v5', reasons: ['-toku']}, @@ -370,7 +378,9 @@ const tests = [ {term: '話す', source: '話さにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '話す', source: '話し', rule: 'v5', reasons: ['continuative']}, {term: '話す', source: '話しましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '話す', source: '話しましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '話す', source: '話そう', rule: 'v5', reasons: ['volitional']}, + {term: '話す', source: '話そっか', rule: 'v5', reasons: ['volitional slang']}, {term: '話す', source: '話すまい', rule: 'v5', reasons: ['-mai']}, // ['causative-passive'] {term: '話す', source: '話しとく', rule: 'v5', reasons: ['-toku']}, @@ -444,7 +454,9 @@ const tests = [ {term: '待つ', source: '待たにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '待つ', source: '待ち', rule: 'v5', reasons: ['continuative']}, {term: '待つ', source: '待ちましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '待つ', source: '待ちましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '待つ', source: '待とう', rule: 'v5', reasons: ['volitional']}, + {term: '待つ', source: '待とっか', rule: 'v5', reasons: ['volitional slang']}, {term: '待つ', source: '待つまい', rule: 'v5', reasons: ['-mai']}, {term: '待つ', source: '待たされる', rule: 'v5', reasons: ['causative-passive']}, {term: '待つ', source: '待っとく', rule: 'v5', reasons: ['-toku']}, @@ -513,7 +525,9 @@ const tests = [ {term: '死ぬ', source: '死なにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '死ぬ', source: '死に', rule: 'v5', reasons: ['continuative']}, {term: '死ぬ', source: '死にましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '死ぬ', source: '死にましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '死ぬ', source: '死のう', rule: 'v5', reasons: ['volitional']}, + {term: '死ぬ', source: '死のっか', rule: 'v5', reasons: ['volitional slang']}, {term: '死ぬ', source: '死ぬまい', rule: 'v5', reasons: ['-mai']}, {term: '死ぬ', source: '死なされる', rule: 'v5', reasons: ['causative-passive']}, {term: '死ぬ', source: '死んどく', rule: 'v5', reasons: ['-toku']}, @@ -581,7 +595,9 @@ const tests = [ {term: '遊ぶ', source: '遊ばにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '遊ぶ', source: '遊び', rule: 'v5', reasons: ['continuative']}, {term: '遊ぶ', source: '遊びましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '遊ぶ', source: '遊びましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '遊ぶ', source: '遊ぼう', rule: 'v5', reasons: ['volitional']}, + {term: '遊ぶ', source: '遊ぼっか', rule: 'v5', reasons: ['volitional slang']}, {term: '遊ぶ', source: '遊ぶまい', rule: 'v5', reasons: ['-mai']}, {term: '遊ぶ', source: '遊ばされる', rule: 'v5', reasons: ['causative-passive']}, {term: '遊ぶ', source: '遊んどく', rule: 'v5', reasons: ['-toku']}, @@ -649,7 +665,9 @@ const tests = [ {term: '飲む', source: '飲まにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '飲む', source: '飲み', rule: 'v5', reasons: ['continuative']}, {term: '飲む', source: '飲みましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '飲む', source: '飲みましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '飲む', source: '飲もう', rule: 'v5', reasons: ['volitional']}, + {term: '飲む', source: '飲もっか', rule: 'v5', reasons: ['volitional slang']}, {term: '飲む', source: '飲むまい', rule: 'v5', reasons: ['-mai']}, {term: '飲む', source: '飲まされる', rule: 'v5', reasons: ['causative-passive']}, {term: '飲む', source: '飲んどく', rule: 'v5', reasons: ['-toku']}, @@ -715,7 +733,9 @@ const tests = [ {term: '作る', source: '作らにゃ', rule: 'v5', reasons: ['-neba', '-ya']}, {term: '作る', source: '作り', rule: 'v5', reasons: ['continuative']}, {term: '作る', source: '作りましょう', rule: 'v5', reasons: ['-masu', 'volitional']}, + {term: '作る', source: '作りましょっか', rule: 'v5', reasons: ['-masu', 'volitional slang']}, {term: '作る', source: '作ろう', rule: 'v5', reasons: ['volitional']}, + {term: '作る', source: '作ろっか', rule: 'v5', reasons: ['volitional slang']}, {term: '作る', source: '作るまい', rule: 'v5', reasons: ['-mai']}, {term: '作る', source: '作らされる', rule: 'v5', reasons: ['causative-passive']}, {term: '作る', source: '作っとく', rule: 'v5', reasons: ['-toku']}, @@ -788,7 +808,9 @@ const tests = [ {term: '為る', source: '為にゃ', rule: 'vs', reasons: ['-neba', '-ya']}, // ['continuative'] {term: '為る', source: '為ましょう', rule: 'vs', reasons: ['-masu', 'volitional']}, + {term: '為る', source: '為ましょっか', rule: 'vs', reasons: ['-masu', 'volitional slang']}, {term: '為る', source: '為よう', rule: 'vs', reasons: ['volitional']}, + {term: '為る', source: '為よっか', rule: 'vs', reasons: ['volitional slang']}, {term: '為る', source: '為るまい', rule: 'vs', reasons: ['-mai']}, {term: '為る', source: '為まい', rule: 'vs', reasons: ['-mai']}, // ['causative-passive'] @@ -859,7 +881,9 @@ const tests = [ {term: 'する', source: 'せにゃ', rule: 'vs', reasons: ['-neba', '-ya']}, {term: 'する', source: 'し', rule: 'vs', reasons: ['continuative']}, {term: 'する', source: 'しましょう', rule: 'vs', reasons: ['-masu', 'volitional']}, + {term: 'する', source: 'しましょっか', rule: 'vs', reasons: ['-masu', 'volitional slang']}, {term: 'する', source: 'しよう', rule: 'vs', reasons: ['volitional']}, + {term: 'する', source: 'しよっか', rule: 'vs', reasons: ['volitional slang']}, {term: 'する', source: 'するまい', rule: 'vs', reasons: ['-mai']}, {term: 'する', source: 'しまい', rule: 'vs', reasons: ['-mai']}, {term: 'する', source: 'しなきゃ', rule: 'vs', reasons: ['negative', '-ba', '-ya']}, @@ -925,7 +949,9 @@ const tests = [ {term: '来る', source: '来にゃ', rule: 'vk', reasons: ['-neba', '-ya']}, {term: '来る', source: '来', rule: 'vk', reasons: ['continuative']}, {term: '来る', source: '来ましょう', rule: 'vk', reasons: ['-masu', 'volitional']}, + {term: '来る', source: '来ましょっか', rule: 'vk', reasons: ['-masu', 'volitional slang']}, {term: '来る', source: '来よう', rule: 'vk', reasons: ['volitional']}, + {term: '来る', source: '来よっか', rule: 'vk', reasons: ['volitional slang']}, {term: '来る', source: '来るまい', rule: 'vk', reasons: ['-mai']}, {term: '来る', source: '来まい', rule: 'vk', reasons: ['-mai']}, // ['causative-passive'] @@ -990,7 +1016,9 @@ const tests = [ {term: '來る', source: '來にゃ', rule: 'vk', reasons: ['-neba', '-ya']}, {term: '來る', source: '來', rule: 'vk', reasons: ['continuative']}, {term: '來る', source: '來ましょう', rule: 'vk', reasons: ['-masu', 'volitional']}, + {term: '來る', source: '來ましょっか', rule: 'vk', reasons: ['-masu', 'volitional slang']}, {term: '來る', source: '來よう', rule: 'vk', reasons: ['volitional']}, + {term: '來る', source: '來よっか', rule: 'vk', reasons: ['volitional slang']}, {term: '來る', source: '來るまい', rule: 'vk', reasons: ['-mai']}, {term: '來る', source: '來まい', rule: 'vk', reasons: ['-mai']}, // ['causative-passive'] @@ -1055,7 +1083,9 @@ const tests = [ {term: 'くる', source: 'こにゃ', rule: 'vk', reasons: ['-neba', '-ya']}, {term: 'くる', source: 'き', rule: 'vk', reasons: ['continuative']}, {term: 'くる', source: 'きましょう', rule: 'vk', reasons: ['-masu', 'volitional']}, + {term: 'くる', source: 'きましょっか', rule: 'vk', reasons: ['-masu', 'volitional slang']}, {term: 'くる', source: 'こよう', rule: 'vk', reasons: ['volitional']}, + {term: 'くる', source: 'こよっか', rule: 'vk', reasons: ['volitional slang']}, {term: 'くる', source: 'くるまい', rule: 'vk', reasons: ['-mai']}, {term: 'くる', source: 'こまい', rule: 'vk', reasons: ['-mai']}, // ['causative-passive'] From 8f7cb534127fddee7df4712611bb32168b0c7e61 Mon Sep 17 00:00:00 2001 From: Khai Truong Date: Fri, 6 Sep 2024 16:10:53 +0700 Subject: [PATCH 2/2] why ntosuru is deleted --- ext/js/language/ja/japanese-transforms.js | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js index 52619b0cd9..052a0b7f7b 100644 --- a/ext/js/language/ja/japanese-transforms.js +++ b/ext/js/language/ja/japanese-transforms.js @@ -792,6 +792,38 @@ export const japaneseTransforms = { suffixInflection('來んばかり', '來る', [], ['vk']), ], }, + '-ntosuru': { + name: '-ntosuru', + description: '1. Shows the speaker\'s will or intention.\n' + + '2. Shows an action or condition is on the verge of occurring.\n' + + 'Usage: Attach んとする to the irrealis form (mizenkei) of verbs.\n' + + 'する becomes せんとする', + i18n: [ + { + language: 'ja', + name: '~んとする', + description: '…しようとする、…しようとしている', + }, + ], + rules: [ + suffixInflection('んとする', 'る', ['vs'], ['v1']), + suffixInflection('かんとする', 'く', ['vs'], ['v5']), + suffixInflection('がんとする', 'ぐ', ['vs'], ['v5']), + suffixInflection('さんとする', 'す', ['vs'], ['v5']), + suffixInflection('たんとする', 'つ', ['vs'], ['v5']), + suffixInflection('なんとする', 'ぬ', ['vs'], ['v5']), + suffixInflection('ばんとする', 'ぶ', ['vs'], ['v5']), + suffixInflection('まんとする', 'む', ['vs'], ['v5']), + suffixInflection('らんとする', 'る', ['vs'], ['v5']), + suffixInflection('わんとする', 'う', ['vs'], ['v5']), + suffixInflection('ぜんとする', 'ずる', ['vs'], ['vz']), + suffixInflection('せんとする', 'する', ['vs'], ['vs']), + suffixInflection('為んとする', '為る', ['vs'], ['vs']), + suffixInflection('こんとする', 'くる', ['vs'], ['vk']), + suffixInflection('来んとする', '来る', ['vs'], ['vk']), + suffixInflection('來んとする', '來る', ['vs'], ['vk']), + ], + }, '-mu': { name: '-mu', description: 'Archaic.\n' +