yomitan-core 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +8 -1
  2. package/dist/anki-connect-B2UXtiUS.js +6 -0
  3. package/dist/anki-connect-BXvjYYm0.cjs +6 -0
  4. package/dist/{anki-connect-B_YpChhu.cjs → anki-connect-DGx7Gr0H.cjs} +3 -3
  5. package/dist/{anki-connect-B_YpChhu.cjs.map → anki-connect-DGx7Gr0H.cjs.map} +1 -1
  6. package/dist/{anki-connect-697E04LF.js → anki-connect-Dau8nAXZ.js} +3 -3
  7. package/dist/{anki-connect-697E04LF.js.map → anki-connect-Dau8nAXZ.js.map} +1 -1
  8. package/dist/anki.cjs +6 -6
  9. package/dist/anki.d.cts.map +1 -1
  10. package/dist/anki.d.ts +2 -2
  11. package/dist/anki.d.ts.map +1 -1
  12. package/dist/anki.js +6 -6
  13. package/dist/{audio-ZuaDkaUZ.d.ts → audio-DN-FhZ5k.d.ts} +1 -1
  14. package/dist/{audio-ZuaDkaUZ.d.ts.map → audio-DN-FhZ5k.d.ts.map} +1 -1
  15. package/dist/{audio-url-generator-CgTMaTM2.js → audio-url-generator-C7mkxYeq.js} +2 -2
  16. package/dist/{audio-url-generator-CfXaxZ47.cjs → audio-url-generator-CZECihX-.cjs} +2 -2
  17. package/dist/{audio-url-generator-C23AXVj1.cjs → audio-url-generator-CorFRyBU.cjs} +2 -2
  18. package/dist/{audio-url-generator-C23AXVj1.cjs.map → audio-url-generator-CorFRyBU.cjs.map} +1 -1
  19. package/dist/{audio-url-generator-DykdzZJu.js → audio-url-generator-_6Qk0i3T.js} +2 -2
  20. package/dist/{audio-url-generator-DykdzZJu.js.map → audio-url-generator-_6Qk0i3T.js.map} +1 -1
  21. package/dist/audio.cjs +2 -2
  22. package/dist/audio.d.ts +2 -2
  23. package/dist/audio.js +2 -2
  24. package/dist/{batch-processor-CXZZhx5t.js → batch-processor-BR-gB3H3.js} +1 -1
  25. package/dist/{batch-processor-CXZZhx5t.js.map → batch-processor-BR-gB3H3.js.map} +1 -1
  26. package/dist/batch-processor-CSF1acTw.cjs +3 -0
  27. package/dist/{batch-processor-C8pSzqRE.cjs → batch-processor-DFqM_L-_.cjs} +1 -1
  28. package/dist/{batch-processor-C8pSzqRE.cjs.map → batch-processor-DFqM_L-_.cjs.map} +1 -1
  29. package/dist/batch-processor-Quo9jUyf.js +3 -0
  30. package/dist/{core-C_0QjRBI.d.ts → core-CRjMTF7c.d.ts} +1 -1
  31. package/dist/{core-C_0QjRBI.d.ts.map → core-CRjMTF7c.d.ts.map} +1 -1
  32. package/dist/database.d.ts +3 -3
  33. package/dist/debug-I2dyAd2e.cjs +51 -0
  34. package/dist/debug-I2dyAd2e.cjs.map +1 -0
  35. package/dist/debug-hF63AFkq.js +38 -0
  36. package/dist/debug-hF63AFkq.js.map +1 -0
  37. package/dist/{dictionary-CfzEFbXZ.d.ts → dictionary-DdxghSJP.d.ts} +1 -1
  38. package/dist/{dictionary-CfzEFbXZ.d.ts.map → dictionary-DdxghSJP.d.ts.map} +1 -1
  39. package/dist/{dictionary-data-util-BY_72f3u.cjs → dictionary-data-util-DmLJMtGc.cjs} +1 -1
  40. package/dist/{dictionary-data-util-BY_72f3u.cjs.map → dictionary-data-util-DmLJMtGc.cjs.map} +1 -1
  41. package/dist/{dictionary-data-util-CKDT7n2t.js → dictionary-data-util-gUUD9ElK.js} +1 -1
  42. package/dist/{dictionary-data-util-CKDT7n2t.js.map → dictionary-data-util-gUUD9ElK.js.map} +1 -1
  43. package/dist/{dictionary-database-BRAqOF_M.d.ts → dictionary-database-D0lvK2n3.d.ts} +2 -2
  44. package/dist/{dictionary-database-BRAqOF_M.d.ts.map → dictionary-database-D0lvK2n3.d.ts.map} +1 -1
  45. package/dist/{dictionary-importer-C7mNL5CJ.js → dictionary-importer-BPlLeF5R.js} +5 -5
  46. package/dist/{dictionary-importer-C7mNL5CJ.js.map → dictionary-importer-BPlLeF5R.js.map} +1 -1
  47. package/dist/{dictionary-importer-CbMwsqEX.cjs → dictionary-importer-BvgP1Fs9.cjs} +5 -5
  48. package/dist/{dictionary-importer-CbMwsqEX.cjs.map → dictionary-importer-BvgP1Fs9.cjs.map} +1 -1
  49. package/dist/{dictionary-importer-C-AlWsIN.d.ts → dictionary-importer-CDbCAbwG.d.ts} +2 -2
  50. package/dist/{dictionary-importer-C-AlWsIN.d.ts.map → dictionary-importer-CDbCAbwG.d.ts.map} +1 -1
  51. package/dist/dictionary-importer-DEMVqTjR.js +8 -0
  52. package/dist/dictionary-importer-Luz6usUQ.cjs +8 -0
  53. package/dist/{dictionary-update-checker-DE2ymYcs.js → dictionary-update-checker-CLbtQ48X.js} +2 -2
  54. package/dist/{dictionary-update-checker-DE2ymYcs.js.map → dictionary-update-checker-CLbtQ48X.js.map} +1 -1
  55. package/dist/dictionary-update-checker-CsS7MxK_.js +4 -0
  56. package/dist/{dictionary-update-checker-CU3q0aoP.cjs → dictionary-update-checker-DgjPsURI.cjs} +2 -2
  57. package/dist/{dictionary-update-checker-xIwF77-R.cjs → dictionary-update-checker-DmiIUoKw.cjs} +2 -2
  58. package/dist/{dictionary-update-checker-xIwF77-R.cjs.map → dictionary-update-checker-DmiIUoKw.cjs.map} +1 -1
  59. package/dist/{display-generator-vjbG05fn.js → display-generator-BAEJDrHT.js} +9 -7
  60. package/dist/display-generator-BAEJDrHT.js.map +1 -0
  61. package/dist/display-generator-D5fkD0JI.cjs +10 -0
  62. package/dist/display-generator-DZLMaVuP.js +10 -0
  63. package/dist/{display-generator-BhV_MOD1.cjs → display-generator-D_0chBzj.cjs} +9 -7
  64. package/dist/display-generator-D_0chBzj.cjs.map +1 -0
  65. package/dist/{errors-ZI2FcGUl.cjs → errors-0pIJI6N2.cjs} +1 -1
  66. package/dist/{errors-ZI2FcGUl.cjs.map → errors-0pIJI6N2.cjs.map} +1 -1
  67. package/dist/{errors-D2JfYV-C.js → errors-DvKlMRXC.js} +1 -1
  68. package/dist/{errors-D2JfYV-C.js.map → errors-DvKlMRXC.js.map} +1 -1
  69. package/dist/frequency-ranking-BXjfhhUQ.js +3 -0
  70. package/dist/{frequency-ranking-DmNIoxut.cjs → frequency-ranking-Cx1kkIrw.cjs} +1 -1
  71. package/dist/{frequency-ranking-DzbdZghE.js → frequency-ranking-DEJMTMdg.js} +1 -1
  72. package/dist/{frequency-ranking-DzbdZghE.js.map → frequency-ranking-DEJMTMdg.js.map} +1 -1
  73. package/dist/{frequency-ranking-Dm6xCMkY.cjs → frequency-ranking-DVYxTXN-.cjs} +1 -1
  74. package/dist/{frequency-ranking-Dm6xCMkY.cjs.map → frequency-ranking-DVYxTXN-.cjs.map} +1 -1
  75. package/dist/furigana-MU_j_m5i.cjs +5 -0
  76. package/dist/{furigana-BnY7-dJ-.cjs → furigana-SZuBaUyl.cjs} +2 -2
  77. package/dist/{furigana-BnY7-dJ-.cjs.map → furigana-SZuBaUyl.cjs.map} +1 -1
  78. package/dist/furigana-ZCs0Xs0b.js +5 -0
  79. package/dist/{furigana-CI6LUA-6.js → furigana-h18vaQ7a.js} +2 -2
  80. package/dist/{furigana-CI6LUA-6.js.map → furigana-h18vaQ7a.js.map} +1 -1
  81. package/dist/import.cjs +6 -6
  82. package/dist/import.d.ts +3 -3
  83. package/dist/import.js +6 -6
  84. package/dist/index.cjs +44 -18
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.d.cts +3 -3
  87. package/dist/index.d.cts.map +1 -1
  88. package/dist/index.d.ts +10 -10
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +44 -18
  91. package/dist/index.js.map +1 -1
  92. package/dist/{japanese-BVV1Ctk-.cjs → japanese-C83fmEfb.cjs} +1 -1
  93. package/dist/{japanese-BVV1Ctk-.cjs.map → japanese-C83fmEfb.cjs.map} +1 -1
  94. package/dist/{japanese-DhmmW35J.js → japanese-OKEGf_i4.js} +2 -2
  95. package/dist/{japanese-DhmmW35J.js.map → japanese-OKEGf_i4.js.map} +1 -1
  96. package/dist/{json-CyQBn52D.cjs → json-Cdj6aIOQ.cjs} +1 -1
  97. package/dist/{json-CyQBn52D.cjs.map → json-Cdj6aIOQ.cjs.map} +1 -1
  98. package/dist/{json-DTq_IXXF.js → json-rIgOFqVY.js} +1 -1
  99. package/dist/{json-DTq_IXXF.js.map → json-rIgOFqVY.js.map} +1 -1
  100. package/dist/{language-DFFp_7nc.d.ts → language-DMwuc2-C.d.ts} +1 -1
  101. package/dist/{language-DFFp_7nc.d.ts.map → language-DMwuc2-C.d.ts.map} +1 -1
  102. package/dist/language.cjs +12 -12
  103. package/dist/language.d.cts +41 -3
  104. package/dist/language.d.cts.map +1 -1
  105. package/dist/language.d.ts +44 -6
  106. package/dist/language.d.ts.map +1 -1
  107. package/dist/language.js +5 -5
  108. package/dist/lookup.cjs +7 -6
  109. package/dist/lookup.d.cts +5 -78
  110. package/dist/lookup.d.cts.map +1 -1
  111. package/dist/lookup.d.ts +8 -81
  112. package/dist/lookup.d.ts.map +1 -1
  113. package/dist/lookup.js +7 -6
  114. package/dist/{media-loader-CMEuD0fn.js → media-loader-C1WZVVaA.js} +1 -1
  115. package/dist/{media-loader-CMEuD0fn.js.map → media-loader-C1WZVVaA.js.map} +1 -1
  116. package/dist/media-loader-CWNb22gc.cjs +3 -0
  117. package/dist/media-loader-CrQnDnSp.js +3 -0
  118. package/dist/{media-loader-DS2ZXpSI.cjs → media-loader-RE32nGs3.cjs} +1 -1
  119. package/dist/{media-loader-DS2ZXpSI.cjs.map → media-loader-RE32nGs3.cjs.map} +1 -1
  120. package/dist/{multi-language-transformer-CjLO0S8V.d.ts → multi-language-transformer-CFu0CVWY.d.ts} +3 -3
  121. package/dist/{multi-language-transformer-CjLO0S8V.d.ts.map → multi-language-transformer-CFu0CVWY.d.ts.map} +1 -1
  122. package/dist/multi-language-transformer-Dk8S4W6j.js +12503 -0
  123. package/dist/multi-language-transformer-Dk8S4W6j.js.map +1 -0
  124. package/dist/{multi-language-transformer-B2133Zg_.cjs → multi-language-transformer-N66Mmb2E.cjs} +9614 -5
  125. package/dist/multi-language-transformer-N66Mmb2E.cjs.map +1 -0
  126. package/dist/{pronunciation-generator-cNtAQi5s.js → pronunciation-generator-BXcwS3By.js} +2 -2
  127. package/dist/{pronunciation-generator-cNtAQi5s.js.map → pronunciation-generator-BXcwS3By.js.map} +1 -1
  128. package/dist/{pronunciation-generator-CPwnr43z.cjs → pronunciation-generator-CP1kjYje.cjs} +1 -1
  129. package/dist/{pronunciation-generator-B8y__W7I.cjs → pronunciation-generator-CeC3LFPU.cjs} +1 -1
  130. package/dist/{pronunciation-generator-B8y__W7I.cjs.map → pronunciation-generator-CeC3LFPU.cjs.map} +1 -1
  131. package/dist/{pronunciation-generator-BvTbUlOy.js → pronunciation-generator-I1xpdJu0.js} +1 -1
  132. package/dist/render.cjs +96 -8
  133. package/dist/render.cjs.map +1 -1
  134. package/dist/render.d.cts +33 -3
  135. package/dist/render.d.cts.map +1 -1
  136. package/dist/render.d.ts +35 -5
  137. package/dist/render.d.ts.map +1 -1
  138. package/dist/render.js +95 -9
  139. package/dist/render.js.map +1 -1
  140. package/dist/{sentence-parser-DUQJ3cTT.cjs → sentence-parser-8i1Y_OGS.cjs} +74 -46
  141. package/dist/sentence-parser-8i1Y_OGS.cjs.map +1 -0
  142. package/dist/{translator-TiTDVbmS.d.cts → sentence-parser-BQpu2oSA.d.cts} +80 -4
  143. package/dist/sentence-parser-BQpu2oSA.d.cts.map +1 -0
  144. package/dist/{sentence-parser-sx7y6Oyh.js → sentence-parser-CXDs4R_c.js} +74 -46
  145. package/dist/sentence-parser-CXDs4R_c.js.map +1 -0
  146. package/dist/{translator-CYvGmODX.d.ts → sentence-parser-CmsHUc_p.d.ts} +81 -5
  147. package/dist/sentence-parser-CmsHUc_p.d.ts.map +1 -0
  148. package/dist/sentence-parser-DQccqSpq.cjs +6 -0
  149. package/dist/sentence-parser-DsleseSI.js +6 -0
  150. package/dist/structured-content-generator-BhEkwa0T.js +4 -0
  151. package/dist/{structured-content-generator-C5Hhaurz.cjs → structured-content-generator-CokLKgrb.cjs} +2 -2
  152. package/dist/{structured-content-generator-C5Hhaurz.cjs.map → structured-content-generator-CokLKgrb.cjs.map} +1 -1
  153. package/dist/{structured-content-generator-D48bLhPA.cjs → structured-content-generator-_z5dJECG.cjs} +2 -2
  154. package/dist/{structured-content-generator-aJieXElq.js → structured-content-generator-gnjtdBcC.js} +2 -2
  155. package/dist/{structured-content-generator-aJieXElq.js.map → structured-content-generator-gnjtdBcC.js.map} +1 -1
  156. package/dist/{text-utilities-CFDC9Bkr.cjs → text-utilities-CTsN1Bq8.cjs} +1 -1
  157. package/dist/{text-utilities-CFDC9Bkr.cjs.map → text-utilities-CTsN1Bq8.cjs.map} +1 -1
  158. package/dist/{text-utilities-D5eno9GK.js → text-utilities-DjLdStjv.js} +1 -1
  159. package/dist/{text-utilities-D5eno9GK.js.map → text-utilities-DjLdStjv.js.map} +1 -1
  160. package/dist/translator-BGI37WRC.js +7 -0
  161. package/dist/translator-Cd1ECBM1.cjs +7 -0
  162. package/dist/{translator-B1uTusjx.cjs → translator-ClzybVmi.cjs} +2 -2
  163. package/dist/{translator-B1uTusjx.cjs.map → translator-ClzybVmi.cjs.map} +1 -1
  164. package/dist/{translator-CrDE1UJW.js → translator-jFVzLjEs.js} +2 -2
  165. package/dist/{translator-CrDE1UJW.js.map → translator-jFVzLjEs.js.map} +1 -1
  166. package/package.json +1 -1
  167. package/dist/anki-connect-D-02BbHi.cjs +0 -6
  168. package/dist/anki-connect-Vn-cnxs8.js +0 -6
  169. package/dist/batch-processor-DItpL6Pp.js +0 -3
  170. package/dist/batch-processor-fiLvFS2_.cjs +0 -3
  171. package/dist/dictionary-importer-B9M3SD2y.js +0 -8
  172. package/dist/dictionary-importer-DnR8Bsai.cjs +0 -8
  173. package/dist/dictionary-update-checker-Cnjz4tQD.js +0 -4
  174. package/dist/display-generator-BhV_MOD1.cjs.map +0 -1
  175. package/dist/display-generator-Cn4vCiSI.js +0 -10
  176. package/dist/display-generator-G2e03o0R.cjs +0 -10
  177. package/dist/display-generator-vjbG05fn.js.map +0 -1
  178. package/dist/frequency-ranking-B-kvnxro.js +0 -3
  179. package/dist/furigana-cpPhFnBv.cjs +0 -5
  180. package/dist/furigana-kZjqnnFC.js +0 -5
  181. package/dist/japanese-DdsS8rT1.d.ts +0 -41
  182. package/dist/japanese-DdsS8rT1.d.ts.map +0 -1
  183. package/dist/japanese-DgmP3i76.d.cts +0 -41
  184. package/dist/japanese-DgmP3i76.d.cts.map +0 -1
  185. package/dist/media-loader-BBTESZXn.cjs +0 -3
  186. package/dist/media-loader-CNKoAjQs.js +0 -3
  187. package/dist/multi-language-transformer-B2133Zg_.cjs.map +0 -1
  188. package/dist/multi-language-transformer-BkwMTV2g.js +0 -2893
  189. package/dist/multi-language-transformer-BkwMTV2g.js.map +0 -1
  190. package/dist/sentence-parser-B-gM8mKk.js +0 -5
  191. package/dist/sentence-parser-Cp3cm_QU.cjs +0 -5
  192. package/dist/sentence-parser-DUQJ3cTT.cjs.map +0 -1
  193. package/dist/sentence-parser-sx7y6Oyh.js.map +0 -1
  194. package/dist/structured-content-generator-Dww8IT7Y.js +0 -4
  195. package/dist/translator-BiTHo9Nm.js +0 -7
  196. package/dist/translator-CYvGmODX.d.ts.map +0 -1
  197. package/dist/translator-TiTDVbmS.d.cts.map +0 -1
  198. package/dist/translator-Y7Haj_qJ.cjs +0 -7
@@ -1,2893 +0,0 @@
1
- import { log } from "./log-hgSll-dS.js";
2
- import { basicTextProcessorOptions, capitalizeFirstLetter, decapitalize, normalizeRadicalCharacters, removeAlphabeticDiacritics } from "./cjk-util-DubXBGDG.js";
3
- import { collapseEmphaticSequences$1 as collapseEmphaticSequences, convertAlphanumericToFullWidth, convertFullWidthAlphanumericToNormal, convertHalfWidthKanaToFullWidth, convertHiraganaToKatakana$1 as convertHiraganaToKatakana, convertKatakanaToHiragana, isStringPartiallyJapanese, normalizeCJKCompatibilityCharacters$1 as normalizeCJKCompatibilityCharacters, normalizeCombiningCharacters$1 as normalizeCombiningCharacters } from "./japanese-DhmmW35J.js";
4
-
5
- //#region src/language/ja/japanese-kana-romaji-dicts.ts
6
- const ROMAJI_TO_HIRAGANA = {
7
- qq: "っq",
8
- vv: "っv",
9
- ll: "っl",
10
- xx: "っx",
11
- kk: "っk",
12
- gg: "っg",
13
- ss: "っs",
14
- zz: "っz",
15
- jj: "っj",
16
- tt: "っt",
17
- dd: "っd",
18
- hh: "っh",
19
- ff: "っf",
20
- bb: "っb",
21
- pp: "っp",
22
- mm: "っm",
23
- yy: "っy",
24
- rr: "っr",
25
- ww: "っw",
26
- cc: "っc",
27
- hwyu: "ふゅ",
28
- xtsu: "っ",
29
- ltsu: "っ",
30
- vya: "ゔゃ",
31
- vyi: "ゔぃ",
32
- vyu: "ゔゅ",
33
- vye: "ゔぇ",
34
- vyo: "ゔょ",
35
- kya: "きゃ",
36
- kyi: "きぃ",
37
- kyu: "きゅ",
38
- kye: "きぇ",
39
- kyo: "きょ",
40
- gya: "ぎゃ",
41
- gyi: "ぎぃ",
42
- gyu: "ぎゅ",
43
- gye: "ぎぇ",
44
- gyo: "ぎょ",
45
- sya: "しゃ",
46
- syi: "しぃ",
47
- syu: "しゅ",
48
- sye: "しぇ",
49
- syo: "しょ",
50
- sha: "しゃ",
51
- shi: "し",
52
- shu: "しゅ",
53
- she: "しぇ",
54
- sho: "しょ",
55
- zya: "じゃ",
56
- zyi: "じぃ",
57
- zyu: "じゅ",
58
- zye: "じぇ",
59
- zyo: "じょ",
60
- tya: "ちゃ",
61
- tyi: "ちぃ",
62
- tyu: "ちゅ",
63
- tye: "ちぇ",
64
- tyo: "ちょ",
65
- cha: "ちゃ",
66
- chi: "ち",
67
- chu: "ちゅ",
68
- che: "ちぇ",
69
- cho: "ちょ",
70
- cya: "ちゃ",
71
- cyi: "ちぃ",
72
- cyu: "ちゅ",
73
- cye: "ちぇ",
74
- cyo: "ちょ",
75
- dya: "ぢゃ",
76
- dyi: "ぢぃ",
77
- dyu: "ぢゅ",
78
- dye: "ぢぇ",
79
- dyo: "ぢょ",
80
- tsa: "つぁ",
81
- tsi: "つぃ",
82
- tse: "つぇ",
83
- tso: "つぉ",
84
- tha: "てゃ",
85
- thi: "てぃ",
86
- thu: "てゅ",
87
- the: "てぇ",
88
- tho: "てょ",
89
- dha: "でゃ",
90
- dhi: "でぃ",
91
- dhu: "でゅ",
92
- dhe: "でぇ",
93
- dho: "でょ",
94
- twa: "とぁ",
95
- twi: "とぃ",
96
- twu: "とぅ",
97
- twe: "とぇ",
98
- two: "とぉ",
99
- dwa: "どぁ",
100
- dwi: "どぃ",
101
- dwu: "どぅ",
102
- dwe: "どぇ",
103
- dwo: "どぉ",
104
- nya: "にゃ",
105
- nyi: "にぃ",
106
- nyu: "にゅ",
107
- nye: "にぇ",
108
- nyo: "にょ",
109
- hya: "ひゃ",
110
- hyi: "ひぃ",
111
- hyu: "ひゅ",
112
- hye: "ひぇ",
113
- hyo: "ひょ",
114
- bya: "びゃ",
115
- byi: "びぃ",
116
- byu: "びゅ",
117
- bye: "びぇ",
118
- byo: "びょ",
119
- pya: "ぴゃ",
120
- pyi: "ぴぃ",
121
- pyu: "ぴゅ",
122
- pye: "ぴぇ",
123
- pyo: "ぴょ",
124
- fya: "ふゃ",
125
- fyu: "ふゅ",
126
- fyo: "ふょ",
127
- hwa: "ふぁ",
128
- hwi: "ふぃ",
129
- hwe: "ふぇ",
130
- hwo: "ふぉ",
131
- mya: "みゃ",
132
- myi: "みぃ",
133
- myu: "みゅ",
134
- mye: "みぇ",
135
- myo: "みょ",
136
- rya: "りゃ",
137
- ryi: "りぃ",
138
- ryu: "りゅ",
139
- rye: "りぇ",
140
- ryo: "りょ",
141
- lyi: "ぃ",
142
- xyi: "ぃ",
143
- lye: "ぇ",
144
- xye: "ぇ",
145
- xka: "ヵ",
146
- xke: "ヶ",
147
- lka: "ヵ",
148
- lke: "ヶ",
149
- kwa: "くぁ",
150
- kwi: "くぃ",
151
- kwu: "くぅ",
152
- kwe: "くぇ",
153
- kwo: "くぉ",
154
- gwa: "ぐぁ",
155
- gwi: "ぐぃ",
156
- gwu: "ぐぅ",
157
- gwe: "ぐぇ",
158
- gwo: "ぐぉ",
159
- swa: "すぁ",
160
- swi: "すぃ",
161
- swu: "すぅ",
162
- swe: "すぇ",
163
- swo: "すぉ",
164
- zwa: "ずぁ",
165
- zwi: "ずぃ",
166
- zwu: "ずぅ",
167
- zwe: "ずぇ",
168
- zwo: "ずぉ",
169
- jya: "じゃ",
170
- jyi: "じぃ",
171
- jyu: "じゅ",
172
- jye: "じぇ",
173
- jyo: "じょ",
174
- tsu: "つ",
175
- xtu: "っ",
176
- ltu: "っ",
177
- xya: "ゃ",
178
- lya: "ゃ",
179
- wyi: "ゐ",
180
- xyu: "ゅ",
181
- lyu: "ゅ",
182
- wye: "ゑ",
183
- xyo: "ょ",
184
- lyo: "ょ",
185
- xwa: "ゎ",
186
- lwa: "ゎ",
187
- wha: "うぁ",
188
- whi: "うぃ",
189
- whu: "う",
190
- whe: "うぇ",
191
- who: "うぉ",
192
- nn: "ん",
193
- "n'": "ん",
194
- va: "ゔぁ",
195
- vi: "ゔぃ",
196
- vu: "ゔ",
197
- ve: "ゔぇ",
198
- vo: "ゔぉ",
199
- fa: "ふぁ",
200
- fi: "ふぃ",
201
- fe: "ふぇ",
202
- fo: "ふぉ",
203
- xn: "ん",
204
- wu: "う",
205
- xa: "ぁ",
206
- xi: "ぃ",
207
- xu: "ぅ",
208
- xe: "ぇ",
209
- xo: "ぉ",
210
- la: "ぁ",
211
- li: "ぃ",
212
- lu: "ぅ",
213
- le: "ぇ",
214
- lo: "ぉ",
215
- ye: "いぇ",
216
- ka: "か",
217
- ki: "き",
218
- ku: "く",
219
- ke: "け",
220
- ko: "こ",
221
- ga: "が",
222
- gi: "ぎ",
223
- gu: "ぐ",
224
- ge: "げ",
225
- go: "ご",
226
- sa: "さ",
227
- si: "し",
228
- su: "す",
229
- se: "せ",
230
- so: "そ",
231
- ca: "か",
232
- ci: "し",
233
- cu: "く",
234
- ce: "せ",
235
- co: "こ",
236
- qa: "くぁ",
237
- qi: "くぃ",
238
- qu: "く",
239
- qe: "くぇ",
240
- qo: "くぉ",
241
- za: "ざ",
242
- zi: "じ",
243
- zu: "ず",
244
- ze: "ぜ",
245
- zo: "ぞ",
246
- ja: "じゃ",
247
- ji: "じ",
248
- ju: "じゅ",
249
- je: "じぇ",
250
- jo: "じょ",
251
- ta: "た",
252
- ti: "ち",
253
- tu: "つ",
254
- te: "て",
255
- to: "と",
256
- da: "だ",
257
- di: "ぢ",
258
- du: "づ",
259
- de: "で",
260
- do: "ど",
261
- na: "な",
262
- ni: "に",
263
- nu: "ぬ",
264
- ne: "ね",
265
- no: "の",
266
- ha: "は",
267
- hi: "ひ",
268
- hu: "ふ",
269
- fu: "ふ",
270
- he: "へ",
271
- ho: "ほ",
272
- ba: "ば",
273
- bi: "び",
274
- bu: "ぶ",
275
- be: "べ",
276
- bo: "ぼ",
277
- pa: "ぱ",
278
- pi: "ぴ",
279
- pu: "ぷ",
280
- pe: "ぺ",
281
- po: "ぽ",
282
- ma: "ま",
283
- mi: "み",
284
- mu: "む",
285
- me: "め",
286
- mo: "も",
287
- ya: "や",
288
- yu: "ゆ",
289
- yo: "よ",
290
- ra: "ら",
291
- ri: "り",
292
- ru: "る",
293
- re: "れ",
294
- ro: "ろ",
295
- wa: "わ",
296
- wi: "うぃ",
297
- we: "うぇ",
298
- wo: "を",
299
- a: "あ",
300
- i: "い",
301
- u: "う",
302
- e: "え",
303
- o: "お",
304
- ".": "。",
305
- ",": "、",
306
- ":": ":",
307
- "/": "・",
308
- "!": "!",
309
- "?": "?",
310
- "~": "〜",
311
- "-": "ー",
312
- "‘": "「",
313
- "’": "」",
314
- "“": "『",
315
- "”": "』",
316
- "[": "[",
317
- "]": "]",
318
- "(": "(",
319
- ")": ")",
320
- "{": "{",
321
- "}": "}",
322
- " ": " ",
323
- n: "ん"
324
- };
325
- const HIRAGANA_TO_ROMAJI = {
326
- んい: "n'i",
327
- ゔぁ: "va",
328
- ゔぃ: "vi",
329
- ゔぉ: "vo",
330
- ゔゃ: "vya",
331
- ゔゅ: "vyu",
332
- ゔぇ: "ve",
333
- ゔょ: "vyo",
334
- きゃ: "kya",
335
- きぃ: "kyi",
336
- きゅ: "kyu",
337
- きぇ: "kye",
338
- きょ: "kyo",
339
- ぎゃ: "gya",
340
- ぎぃ: "gyi",
341
- ぎゅ: "gyu",
342
- ぎぇ: "gye",
343
- ぎょ: "gyo",
344
- しゃ: "sha",
345
- しぃ: "syi",
346
- しゅ: "shu",
347
- しぇ: "she",
348
- しょ: "sho",
349
- ちゃ: "cya",
350
- ちゅ: "chu",
351
- ちぇ: "che",
352
- ちょ: "cho",
353
- ちぃ: "cyi",
354
- ぢゃ: "dya",
355
- ぢぃ: "dyi",
356
- ぢゅ: "dyu",
357
- ぢぇ: "dye",
358
- ぢょ: "dyo",
359
- つぁ: "tsa",
360
- つぃ: "tsi",
361
- つぇ: "tse",
362
- つぉ: "tso",
363
- てゃ: "tha",
364
- てぃ: "thi",
365
- てゅ: "thu",
366
- てぇ: "the",
367
- てょ: "tho",
368
- でゃ: "dha",
369
- でぃ: "dhi",
370
- でゅ: "dhu",
371
- でぇ: "dhe",
372
- でょ: "dho",
373
- とぁ: "twa",
374
- とぃ: "twi",
375
- とぅ: "twu",
376
- とぇ: "twe",
377
- とぉ: "two",
378
- どぁ: "dwa",
379
- どぃ: "dwi",
380
- どぅ: "dwu",
381
- どぇ: "dwe",
382
- どぉ: "dwo",
383
- にゃ: "nya",
384
- にぃ: "nyi",
385
- にゅ: "nyu",
386
- にぇ: "nye",
387
- にょ: "nyo",
388
- ひゃ: "hya",
389
- ひぃ: "hyi",
390
- ひゅ: "hyu",
391
- ひぇ: "hye",
392
- ひょ: "hyo",
393
- びゃ: "bya",
394
- びぃ: "byi",
395
- びゅ: "byu",
396
- びぇ: "bye",
397
- びょ: "byo",
398
- ぴゃ: "pya",
399
- ぴぃ: "pyi",
400
- ぴゅ: "pyu",
401
- ぴぇ: "pye",
402
- ぴょ: "pyo",
403
- ふゃ: "fya",
404
- ふょ: "fyo",
405
- ふぁ: "fa",
406
- ふゅ: "fyu",
407
- ふぃ: "fi",
408
- ふぇ: "fe",
409
- ふぉ: "fo",
410
- みゃ: "mya",
411
- みぃ: "myi",
412
- みゅ: "myu",
413
- みぇ: "mye",
414
- みょ: "myo",
415
- りゃ: "rya",
416
- りぃ: "ryi",
417
- りゅ: "ryu",
418
- りぇ: "rye",
419
- りょ: "ryo",
420
- くぁ: "kwa",
421
- くぃ: "kwi",
422
- くぅ: "kwu",
423
- くぇ: "kwe",
424
- くぉ: "kwo",
425
- ぐぁ: "gwa",
426
- ぐぃ: "gwi",
427
- ぐぅ: "gwu",
428
- ぐぇ: "gwe",
429
- ぐぉ: "gwo",
430
- すぁ: "swa",
431
- すぃ: "swi",
432
- すぅ: "swu",
433
- すぇ: "swe",
434
- すぉ: "swo",
435
- ずぁ: "zwa",
436
- ずぃ: "zwi",
437
- ずぅ: "zwu",
438
- ずぇ: "zwe",
439
- ずぉ: "zwo",
440
- じゃ: "ja",
441
- じぃ: "jyi",
442
- じゅ: "ju",
443
- じぇ: "je",
444
- じょ: "jo",
445
- うぁ: "wha",
446
- うぃ: "wi",
447
- うぇ: "we",
448
- うぉ: "who",
449
- いぇ: "ye",
450
- ん: "n",
451
- あ: "a",
452
- い: "i",
453
- う: "u",
454
- え: "e",
455
- お: "o",
456
- ゔ: "vu",
457
- か: "ka",
458
- き: "ki",
459
- く: "ku",
460
- け: "ke",
461
- こ: "ko",
462
- が: "ga",
463
- ぎ: "gi",
464
- ぐ: "gu",
465
- げ: "ge",
466
- ご: "go",
467
- さ: "sa",
468
- し: "shi",
469
- す: "su",
470
- せ: "se",
471
- そ: "so",
472
- ざ: "za",
473
- じ: "ji",
474
- ず: "zu",
475
- ぜ: "ze",
476
- ぞ: "zo",
477
- た: "ta",
478
- ち: "chi",
479
- つ: "tsu",
480
- て: "te",
481
- と: "to",
482
- だ: "da",
483
- ぢ: "di",
484
- づ: "du",
485
- で: "de",
486
- ど: "do",
487
- な: "na",
488
- に: "ni",
489
- ぬ: "nu",
490
- ね: "ne",
491
- の: "no",
492
- は: "ha",
493
- ひ: "hi",
494
- ふ: "fu",
495
- へ: "he",
496
- ほ: "ho",
497
- ば: "ba",
498
- び: "bi",
499
- ぶ: "bu",
500
- べ: "be",
501
- ぼ: "bo",
502
- ぱ: "pa",
503
- ぴ: "pi",
504
- ぷ: "pu",
505
- ぺ: "pe",
506
- ぽ: "po",
507
- ま: "ma",
508
- み: "mi",
509
- む: "mu",
510
- め: "me",
511
- も: "mo",
512
- や: "ya",
513
- ゆ: "yu",
514
- よ: "yo",
515
- ら: "ra",
516
- り: "ri",
517
- る: "ru",
518
- れ: "re",
519
- ろ: "ro",
520
- わ: "wa",
521
- ゐ: "wi",
522
- ゑ: "we",
523
- を: "wo",
524
- "。": ".",
525
- "、": ",",
526
- ":": ":",
527
- "・": "/",
528
- "!": "!",
529
- "?": "?",
530
- "〜": "~",
531
- ー: "-",
532
- "「": "‘",
533
- "」": "’",
534
- "『": "“",
535
- "』": "”",
536
- "[": "[",
537
- "]": "]",
538
- "(": "(",
539
- ")": ")",
540
- "{": "{",
541
- "}": "}",
542
- " ": " ",
543
- ゃ: "ya",
544
- ゅ: "yu",
545
- ょ: "yo",
546
- ゎ: "wa",
547
- ぁ: "a",
548
- ぃ: "i",
549
- ぅ: "u",
550
- ぇ: "e",
551
- ぉ: "o",
552
- ヵ: "ka",
553
- ヶ: "ke",
554
- っq: "qq",
555
- っv: "vv",
556
- っx: "xx",
557
- っk: "kk",
558
- っg: "gg",
559
- っs: "ss",
560
- っz: "zz",
561
- っj: "jj",
562
- っt: "tt",
563
- っd: "dd",
564
- っh: "hh",
565
- っf: "ff",
566
- っb: "bb",
567
- っp: "pp",
568
- っm: "mm",
569
- っy: "yy",
570
- っr: "rr",
571
- っw: "ww",
572
- っc: "cc",
573
- っn: "n",
574
- っ: ""
575
- };
576
-
577
- //#endregion
578
- //#region src/language/ja/japanese-wanakana.ts
579
- function convertToHiragana(text) {
580
- let newText = text.toLowerCase();
581
- for (const [romaji, kana] of Object.entries(ROMAJI_TO_HIRAGANA)) newText = newText.replaceAll(romaji, kana);
582
- return fillSokuonGaps(newText);
583
- }
584
- function convertToKanaIME(text, selectionStart) {
585
- const prevSelectionStart = selectionStart;
586
- const prevLength = text.length;
587
- let kanaString = "";
588
- const textLowered = text.toLowerCase();
589
- if (textLowered[prevSelectionStart - 1] === "n" && textLowered.slice(0, prevSelectionStart - 1).replaceAll("nn", "").at(-1) !== "n") {
590
- const n = text.slice(prevSelectionStart - 1, prevSelectionStart);
591
- const beforeN = text.slice(0, prevSelectionStart - 1);
592
- const afterN = text.slice(prevSelectionStart);
593
- kanaString = convertToKana(beforeN) + n + convertToKana(afterN);
594
- } else if (textLowered.slice(prevSelectionStart - 2, prevSelectionStart) === "ny") {
595
- const ny = text.slice(prevSelectionStart - 2, prevSelectionStart);
596
- const beforeN = text.slice(0, prevSelectionStart - 2);
597
- const afterN = text.slice(prevSelectionStart);
598
- kanaString = convertToKana(beforeN) + ny + convertToKana(afterN);
599
- } else kanaString = convertToKana(text);
600
- const selectionOffset = kanaString.length - prevLength;
601
- return {
602
- kanaString,
603
- newSelectionStart: prevSelectionStart + selectionOffset
604
- };
605
- }
606
- function convertToKana(text) {
607
- let newText = text;
608
- for (const [romaji, kana] of Object.entries(ROMAJI_TO_HIRAGANA)) {
609
- newText = newText.replaceAll(romaji, kana);
610
- newText = newText.replaceAll(romaji.toUpperCase(), convertHiraganaToKatakana(kana).toUpperCase());
611
- }
612
- return fillSokuonGaps(newText);
613
- }
614
- function fillSokuonGaps(text) {
615
- return text.replaceAll(/っ[a-z](?=っ)/g, "っっ").replaceAll(/ッ[A-Z](?=ッ)/g, "ッッ");
616
- }
617
- function convertToRomaji(text) {
618
- let newText = text;
619
- for (const [kana, romaji] of Object.entries(HIRAGANA_TO_ROMAJI)) {
620
- newText = newText.replaceAll(kana, romaji);
621
- newText = newText.replaceAll(convertHiraganaToKatakana(kana), romaji);
622
- }
623
- return newText;
624
- }
625
- function convertAlphabeticToKana(text) {
626
- let part = "";
627
- let result = "";
628
- for (const char of text) {
629
- let c = char.codePointAt(0);
630
- if (c >= 65 && c <= 90) c += 32;
631
- else if (c >= 97 && c <= 122) {} else if (c >= 65313 && c <= 65338) c += -65216;
632
- else if (c >= 65345 && c <= 65370) c += -65248;
633
- else if (c === 45 || c === 65293) c = 45;
634
- else {
635
- if (part.length > 0) {
636
- result += convertToHiragana(part);
637
- part = "";
638
- }
639
- result += char;
640
- continue;
641
- }
642
- part += String.fromCodePoint(c);
643
- }
644
- if (part.length > 0) result += convertToHiragana(part);
645
- return result;
646
- }
647
-
648
- //#endregion
649
- //#region src/language/ja/japanese-text-preprocessors.ts
650
- const convertHalfWidthCharacters = {
651
- name: "Convert half width characters to full width",
652
- description: "ヨミチャン → ヨミチャン",
653
- options: basicTextProcessorOptions,
654
- process: (str, setting) => setting ? convertHalfWidthKanaToFullWidth(str) : str
655
- };
656
- const alphabeticToHiragana = {
657
- name: "Convert alphabetic characters to hiragana",
658
- description: "yomichan → よみちゃん",
659
- options: basicTextProcessorOptions,
660
- process: (str, setting) => setting ? convertAlphabeticToKana(str) : str
661
- };
662
- const alphanumericWidthVariants = {
663
- name: "Convert between alphabetic width variants",
664
- description: "yomitan → yomitan and vice versa",
665
- options: [
666
- "off",
667
- "direct",
668
- "inverse"
669
- ],
670
- process: (str, setting) => {
671
- switch (setting) {
672
- case "off": return str;
673
- case "direct": return convertFullWidthAlphanumericToNormal(str);
674
- case "inverse": return convertAlphanumericToFullWidth(str);
675
- }
676
- }
677
- };
678
- const convertHiraganaToKatakana$1 = {
679
- name: "Convert hiragana to katakana",
680
- description: "よみちゃん → ヨミチャン and vice versa",
681
- options: [
682
- "off",
683
- "direct",
684
- "inverse"
685
- ],
686
- process: (str, setting) => {
687
- switch (setting) {
688
- case "off": return str;
689
- case "direct": return convertHiraganaToKatakana(str);
690
- case "inverse": return convertKatakanaToHiragana(str);
691
- }
692
- }
693
- };
694
- const collapseEmphaticSequences$1 = {
695
- name: "Collapse emphatic character sequences",
696
- description: "すっっごーーい → すっごーい / すごい",
697
- options: [
698
- [false, false],
699
- [true, false],
700
- [true, true]
701
- ],
702
- process: (str, setting) => {
703
- const [collapseEmphatic, collapseEmphaticFull] = setting;
704
- if (collapseEmphatic) str = collapseEmphaticSequences(str, collapseEmphaticFull);
705
- return str;
706
- }
707
- };
708
- const normalizeCombiningCharacters$1 = {
709
- name: "Normalize combining characters",
710
- description: "ド → ド (U+30C8 U+3099 → U+30C9)",
711
- options: basicTextProcessorOptions,
712
- process: (str, setting) => setting ? normalizeCombiningCharacters(str) : str
713
- };
714
- const normalizeCJKCompatibilityCharacters$1 = {
715
- name: "Normalize CJK Compatibility Characters",
716
- description: "㌀ → アパート",
717
- options: basicTextProcessorOptions,
718
- process: (str, setting) => setting ? normalizeCJKCompatibilityCharacters(str) : str
719
- };
720
-
721
- //#endregion
722
- //#region src/language/language-transforms.ts
723
- function suffixInflection(inflectedSuffix, deinflectedSuffix, conditionsIn, conditionsOut) {
724
- const suffixRegExp = new RegExp(`${inflectedSuffix}$`);
725
- return {
726
- type: "suffix",
727
- isInflected: suffixRegExp,
728
- deinflected: deinflectedSuffix,
729
- deinflect: (text) => text.slice(0, -inflectedSuffix.length) + deinflectedSuffix,
730
- conditionsIn,
731
- conditionsOut
732
- };
733
- }
734
- function prefixInflection(inflectedPrefix, deinflectedPrefix, conditionsIn, conditionsOut) {
735
- const prefixRegExp = new RegExp(`^${inflectedPrefix}`);
736
- return {
737
- type: "prefix",
738
- isInflected: prefixRegExp,
739
- deinflect: (text) => deinflectedPrefix + text.slice(inflectedPrefix.length),
740
- conditionsIn,
741
- conditionsOut
742
- };
743
- }
744
- function wholeWordInflection(inflectedWord, deinflectedWord, conditionsIn, conditionsOut) {
745
- const regex = new RegExp(`^${inflectedWord}$`);
746
- return {
747
- type: "wholeWord",
748
- isInflected: regex,
749
- deinflect: () => deinflectedWord,
750
- conditionsIn,
751
- conditionsOut
752
- };
753
- }
754
-
755
- //#endregion
756
- //#region src/language/ja/japanese-transforms.ts
757
- const shimauEnglishDescription = "1. Shows a sense of regret/surprise when you did have volition in doing something, but it turned out to be bad to do.\n2. Shows perfective/punctual achievement. This shows that an action has been completed.\n3. Shows unintentional action–“accidentally”.\n";
758
- const passiveEnglishDescription = "1. Indicates an action received from an action performer.\n2. Expresses respect for the subject of action performer.\n";
759
- const ikuVerbs = [
760
- "いく",
761
- "行く",
762
- "逝く",
763
- "往く"
764
- ];
765
- const godanUSpecialVerbs = [
766
- "こう",
767
- "とう",
768
- "請う",
769
- "乞う",
770
- "恋う",
771
- "問う",
772
- "訪う",
773
- "宣う",
774
- "曰う",
775
- "給う",
776
- "賜う",
777
- "揺蕩う"
778
- ];
779
- const fuVerbTeConjugations = [
780
- ["のたまう", "のたもう"],
781
- ["たまう", "たもう"],
782
- ["たゆたう", "たゆとう"]
783
- ];
784
- function irregularVerbSuffixInflections(suffix, conditionsIn, conditionsOut) {
785
- const inflections = [];
786
- for (const verb of ikuVerbs) inflections.push(suffixInflection(`${verb[0]}っ${suffix}`, verb, conditionsIn, conditionsOut));
787
- for (const verb of godanUSpecialVerbs) inflections.push(suffixInflection(`${verb}${suffix}`, verb, conditionsIn, conditionsOut));
788
- for (const [verb, teRoot] of fuVerbTeConjugations) inflections.push(suffixInflection(`${teRoot}${suffix}`, verb, conditionsIn, conditionsOut));
789
- return inflections;
790
- }
791
- const conditions = {
792
- v: {
793
- name: "Verb",
794
- i18n: [{
795
- language: "ja",
796
- name: "動詞"
797
- }],
798
- isDictionaryForm: false,
799
- subConditions: [
800
- "v1",
801
- "v5",
802
- "vk",
803
- "vs",
804
- "vz"
805
- ]
806
- },
807
- v1: {
808
- name: "Ichidan verb",
809
- i18n: [{
810
- language: "ja",
811
- name: "一段動詞"
812
- }],
813
- isDictionaryForm: true,
814
- subConditions: ["v1d", "v1p"]
815
- },
816
- v1d: {
817
- name: "Ichidan verb, dictionary form",
818
- i18n: [{
819
- language: "ja",
820
- name: "一段動詞、終止形"
821
- }],
822
- isDictionaryForm: false
823
- },
824
- v1p: {
825
- name: "Ichidan verb, progressive or perfect form",
826
- i18n: [{
827
- language: "ja",
828
- name: "一段動詞、~てる・でる"
829
- }],
830
- isDictionaryForm: false
831
- },
832
- v5: {
833
- name: "Godan verb",
834
- i18n: [{
835
- language: "ja",
836
- name: "五段動詞"
837
- }],
838
- isDictionaryForm: true,
839
- subConditions: ["v5d", "v5s"]
840
- },
841
- v5d: {
842
- name: "Godan verb, dictionary form",
843
- i18n: [{
844
- language: "ja",
845
- name: "五段動詞、終止形"
846
- }],
847
- isDictionaryForm: false
848
- },
849
- v5s: {
850
- name: "Godan verb, short causative form",
851
- i18n: [{
852
- language: "ja",
853
- name: "五段動詞、~す・さす"
854
- }],
855
- isDictionaryForm: false,
856
- subConditions: ["v5ss", "v5sp"]
857
- },
858
- v5ss: {
859
- name: "Godan verb, short causative form having さす ending (cannot conjugate with passive form)",
860
- i18n: [{
861
- language: "ja",
862
- name: "五段動詞、~さす"
863
- }],
864
- isDictionaryForm: false
865
- },
866
- v5sp: {
867
- name: "Godan verb, short causative form not having さす ending (can conjugate with passive form)",
868
- i18n: [{
869
- language: "ja",
870
- name: "五段動詞、~す"
871
- }],
872
- isDictionaryForm: false
873
- },
874
- vk: {
875
- name: "Kuru verb",
876
- i18n: [{
877
- language: "ja",
878
- name: "来る動詞"
879
- }],
880
- isDictionaryForm: true
881
- },
882
- vs: {
883
- name: "Suru verb",
884
- i18n: [{
885
- language: "ja",
886
- name: "する動詞"
887
- }],
888
- isDictionaryForm: true
889
- },
890
- vz: {
891
- name: "Zuru verb",
892
- i18n: [{
893
- language: "ja",
894
- name: "ずる動詞"
895
- }],
896
- isDictionaryForm: true
897
- },
898
- "adj-i": {
899
- name: "Adjective with i ending",
900
- i18n: [{
901
- language: "ja",
902
- name: "形容詞"
903
- }],
904
- isDictionaryForm: true
905
- },
906
- "-ます": {
907
- name: "Polite -ます ending",
908
- isDictionaryForm: false
909
- },
910
- "-ません": {
911
- name: "Polite negative -ません ending",
912
- isDictionaryForm: false
913
- },
914
- "-て": {
915
- name: "Intermediate -て endings for progressive or perfect tense",
916
- isDictionaryForm: false
917
- },
918
- "-ば": {
919
- name: "Intermediate -ば endings for conditional contraction",
920
- isDictionaryForm: false
921
- },
922
- "-く": {
923
- name: "Intermediate -く endings for adverbs",
924
- isDictionaryForm: false
925
- },
926
- "-た": {
927
- name: "-た form ending",
928
- isDictionaryForm: false
929
- },
930
- "-ん": {
931
- name: "-ん negative ending",
932
- isDictionaryForm: false
933
- },
934
- "-なさい": {
935
- name: "Intermediate -なさい ending (polite imperative)",
936
- isDictionaryForm: false
937
- },
938
- "-ゃ": {
939
- name: "Intermediate -や ending (conditional contraction)",
940
- isDictionaryForm: false
941
- }
942
- };
943
- const japaneseTransforms = {
944
- language: "ja",
945
- conditions,
946
- transforms: {
947
- "-ば": {
948
- name: "-ば",
949
- description: "1. Conditional form; shows that the previous stated condition's establishment is the condition for the latter stated condition to occur.\n2. Shows a trigger for a latter stated perception or judgment.\nUsage: Attach ば to the hypothetical form (仮定形) of verbs and i-adjectives.",
950
- i18n: [{
951
- language: "ja",
952
- name: "~ば"
953
- }],
954
- rules: [
955
- suffixInflection("ければ", "い", ["-ば"], ["adj-i"]),
956
- suffixInflection("えば", "う", ["-ば"], ["v5"]),
957
- suffixInflection("けば", "く", ["-ば"], ["v5"]),
958
- suffixInflection("げば", "ぐ", ["-ば"], ["v5"]),
959
- suffixInflection("せば", "す", ["-ば"], ["v5"]),
960
- suffixInflection("てば", "つ", ["-ば"], ["v5"]),
961
- suffixInflection("ねば", "ぬ", ["-ば"], ["v5"]),
962
- suffixInflection("べば", "ぶ", ["-ば"], ["v5"]),
963
- suffixInflection("めば", "む", ["-ば"], ["v5"]),
964
- suffixInflection("れば", "る", ["-ば"], [
965
- "v1",
966
- "v5",
967
- "vk",
968
- "vs",
969
- "vz"
970
- ]),
971
- suffixInflection("れば", "", ["-ば"], ["-ます"])
972
- ]
973
- },
974
- "-ゃ": {
975
- name: "-ゃ",
976
- description: "Contraction of -ば.",
977
- i18n: [{
978
- language: "ja",
979
- name: "~ゃ",
980
- description: "「~ば」の短縮"
981
- }],
982
- rules: [
983
- suffixInflection("けりゃ", "ければ", ["-ゃ"], ["-ば"]),
984
- suffixInflection("きゃ", "ければ", ["-ゃ"], ["-ば"]),
985
- suffixInflection("や", "えば", ["-ゃ"], ["-ば"]),
986
- suffixInflection("きゃ", "けば", ["-ゃ"], ["-ば"]),
987
- suffixInflection("ぎゃ", "げば", ["-ゃ"], ["-ば"]),
988
- suffixInflection("しゃ", "せば", ["-ゃ"], ["-ば"]),
989
- suffixInflection("ちゃ", "てば", ["-ゃ"], ["-ば"]),
990
- suffixInflection("にゃ", "ねば", ["-ゃ"], ["-ば"]),
991
- suffixInflection("びゃ", "べば", ["-ゃ"], ["-ば"]),
992
- suffixInflection("みゃ", "めば", ["-ゃ"], ["-ば"]),
993
- suffixInflection("りゃ", "れば", ["-ゃ"], ["-ば"])
994
- ]
995
- },
996
- "-ちゃ": {
997
- name: "-ちゃ",
998
- description: "Contraction of ~ては.\n1. Explains how something always happens under the condition that it marks.\n2. Expresses the repetition (of a series of) actions.\n3. Indicates a hypothetical situation in which the speaker gives a (negative) evaluation about the other party's intentions.\n4. Used in \"Must Not\" patterns like ~てはいけない.\nUsage: Attach は after the て-form of verbs, contract ては into ちゃ.",
999
- i18n: [{
1000
- language: "ja",
1001
- name: "~ちゃ",
1002
- description: "「~ては」の短縮"
1003
- }],
1004
- rules: [
1005
- suffixInflection("ちゃ", "る", ["v5"], ["v1"]),
1006
- suffixInflection("いじゃ", "ぐ", ["v5"], ["v5"]),
1007
- suffixInflection("いちゃ", "く", ["v5"], ["v5"]),
1008
- suffixInflection("しちゃ", "す", ["v5"], ["v5"]),
1009
- suffixInflection("っちゃ", "う", ["v5"], ["v5"]),
1010
- suffixInflection("っちゃ", "く", ["v5"], ["v5"]),
1011
- suffixInflection("っちゃ", "つ", ["v5"], ["v5"]),
1012
- suffixInflection("っちゃ", "る", ["v5"], ["v5"]),
1013
- suffixInflection("んじゃ", "ぬ", ["v5"], ["v5"]),
1014
- suffixInflection("んじゃ", "ぶ", ["v5"], ["v5"]),
1015
- suffixInflection("んじゃ", "む", ["v5"], ["v5"]),
1016
- suffixInflection("じちゃ", "ずる", ["v5"], ["vz"]),
1017
- suffixInflection("しちゃ", "する", ["v5"], ["vs"]),
1018
- suffixInflection("為ちゃ", "為る", ["v5"], ["vs"]),
1019
- suffixInflection("きちゃ", "くる", ["v5"], ["vk"]),
1020
- suffixInflection("来ちゃ", "来る", ["v5"], ["vk"]),
1021
- suffixInflection("來ちゃ", "來る", ["v5"], ["vk"])
1022
- ]
1023
- },
1024
- "-ちゃう": {
1025
- name: "-ちゃう",
1026
- description: `Contraction of -しまう.\n${shimauEnglishDescription}Usage: Attach しまう after the て-form of verbs, contract てしまう into ちゃう.`,
1027
- i18n: [{
1028
- language: "ja",
1029
- name: "~ちゃう",
1030
- description: "「~てしまう」のややくだけた口頭語的表現"
1031
- }],
1032
- rules: [
1033
- suffixInflection("ちゃう", "る", ["v5"], ["v1"]),
1034
- suffixInflection("いじゃう", "ぐ", ["v5"], ["v5"]),
1035
- suffixInflection("いちゃう", "く", ["v5"], ["v5"]),
1036
- suffixInflection("しちゃう", "す", ["v5"], ["v5"]),
1037
- suffixInflection("っちゃう", "う", ["v5"], ["v5"]),
1038
- suffixInflection("っちゃう", "く", ["v5"], ["v5"]),
1039
- suffixInflection("っちゃう", "つ", ["v5"], ["v5"]),
1040
- suffixInflection("っちゃう", "る", ["v5"], ["v5"]),
1041
- suffixInflection("んじゃう", "ぬ", ["v5"], ["v5"]),
1042
- suffixInflection("んじゃう", "ぶ", ["v5"], ["v5"]),
1043
- suffixInflection("んじゃう", "む", ["v5"], ["v5"]),
1044
- suffixInflection("じちゃう", "ずる", ["v5"], ["vz"]),
1045
- suffixInflection("しちゃう", "する", ["v5"], ["vs"]),
1046
- suffixInflection("為ちゃう", "為る", ["v5"], ["vs"]),
1047
- suffixInflection("きちゃう", "くる", ["v5"], ["vk"]),
1048
- suffixInflection("来ちゃう", "来る", ["v5"], ["vk"]),
1049
- suffixInflection("來ちゃう", "來る", ["v5"], ["vk"])
1050
- ]
1051
- },
1052
- "-ちまう": {
1053
- name: "-ちまう",
1054
- description: `Contraction of -しまう.\n${shimauEnglishDescription}Usage: Attach しまう after the て-form of verbs, contract てしまう into ちまう.`,
1055
- i18n: [{
1056
- language: "ja",
1057
- name: "~ちまう",
1058
- description: "「~てしまう」の音変化"
1059
- }],
1060
- rules: [
1061
- suffixInflection("ちまう", "る", ["v5"], ["v1"]),
1062
- suffixInflection("いじまう", "ぐ", ["v5"], ["v5"]),
1063
- suffixInflection("いちまう", "く", ["v5"], ["v5"]),
1064
- suffixInflection("しちまう", "す", ["v5"], ["v5"]),
1065
- suffixInflection("っちまう", "う", ["v5"], ["v5"]),
1066
- suffixInflection("っちまう", "く", ["v5"], ["v5"]),
1067
- suffixInflection("っちまう", "つ", ["v5"], ["v5"]),
1068
- suffixInflection("っちまう", "る", ["v5"], ["v5"]),
1069
- suffixInflection("んじまう", "ぬ", ["v5"], ["v5"]),
1070
- suffixInflection("んじまう", "ぶ", ["v5"], ["v5"]),
1071
- suffixInflection("んじまう", "む", ["v5"], ["v5"]),
1072
- suffixInflection("じちまう", "ずる", ["v5"], ["vz"]),
1073
- suffixInflection("しちまう", "する", ["v5"], ["vs"]),
1074
- suffixInflection("為ちまう", "為る", ["v5"], ["vs"]),
1075
- suffixInflection("きちまう", "くる", ["v5"], ["vk"]),
1076
- suffixInflection("来ちまう", "来る", ["v5"], ["vk"]),
1077
- suffixInflection("來ちまう", "來る", ["v5"], ["vk"])
1078
- ]
1079
- },
1080
- "-しまう": {
1081
- name: "-しまう",
1082
- description: `${shimauEnglishDescription}Usage: Attach しまう after the て-form of verbs.`,
1083
- i18n: [{
1084
- language: "ja",
1085
- name: "~しまう",
1086
- description: "その動作がすっかり終わる、その状態が完成することを表す。終わったことを強調したり、不本意である、困ったことになった、などの気持ちを添えたりすることもある。"
1087
- }],
1088
- rules: [suffixInflection("てしまう", "て", ["v5"], ["-て"]), suffixInflection("でしまう", "で", ["v5"], ["-て"])]
1089
- },
1090
- "-なさい": {
1091
- name: "-なさい",
1092
- description: "Polite imperative suffix.\nUsage: Attach なさい after the continuative form (連用形) of verbs.",
1093
- i18n: [{
1094
- language: "ja",
1095
- name: "~なさい",
1096
- description: "動詞「なさる」の命令形"
1097
- }],
1098
- rules: [
1099
- suffixInflection("なさい", "る", ["-なさい"], ["v1"]),
1100
- suffixInflection("いなさい", "う", ["-なさい"], ["v5"]),
1101
- suffixInflection("きなさい", "く", ["-なさい"], ["v5"]),
1102
- suffixInflection("ぎなさい", "ぐ", ["-なさい"], ["v5"]),
1103
- suffixInflection("しなさい", "す", ["-なさい"], ["v5"]),
1104
- suffixInflection("ちなさい", "つ", ["-なさい"], ["v5"]),
1105
- suffixInflection("になさい", "ぬ", ["-なさい"], ["v5"]),
1106
- suffixInflection("びなさい", "ぶ", ["-なさい"], ["v5"]),
1107
- suffixInflection("みなさい", "む", ["-なさい"], ["v5"]),
1108
- suffixInflection("りなさい", "る", ["-なさい"], ["v5"]),
1109
- suffixInflection("じなさい", "ずる", ["-なさい"], ["vz"]),
1110
- suffixInflection("しなさい", "する", ["-なさい"], ["vs"]),
1111
- suffixInflection("為なさい", "為る", ["-なさい"], ["vs"]),
1112
- suffixInflection("きなさい", "くる", ["-なさい"], ["vk"]),
1113
- suffixInflection("来なさい", "来る", ["-なさい"], ["vk"]),
1114
- suffixInflection("來なさい", "來る", ["-なさい"], ["vk"])
1115
- ]
1116
- },
1117
- "-そう": {
1118
- name: "-そう",
1119
- description: "Appearing that; looking like.\nUsage: Attach そう to the continuative form (連用形) of verbs, or to the stem of adjectives.",
1120
- i18n: [{
1121
- language: "ja",
1122
- name: "~そう",
1123
- description: "そういう様子だ、そうなる様子だということ、すなわち様態を表す助動詞。"
1124
- }],
1125
- rules: [
1126
- suffixInflection("そう", "い", [], ["adj-i"]),
1127
- suffixInflection("そう", "る", [], ["v1"]),
1128
- suffixInflection("いそう", "う", [], ["v5"]),
1129
- suffixInflection("きそう", "く", [], ["v5"]),
1130
- suffixInflection("ぎそう", "ぐ", [], ["v5"]),
1131
- suffixInflection("しそう", "す", [], ["v5"]),
1132
- suffixInflection("ちそう", "つ", [], ["v5"]),
1133
- suffixInflection("にそう", "ぬ", [], ["v5"]),
1134
- suffixInflection("びそう", "ぶ", [], ["v5"]),
1135
- suffixInflection("みそう", "む", [], ["v5"]),
1136
- suffixInflection("りそう", "る", [], ["v5"]),
1137
- suffixInflection("じそう", "ずる", [], ["vz"]),
1138
- suffixInflection("しそう", "する", [], ["vs"]),
1139
- suffixInflection("為そう", "為る", [], ["vs"]),
1140
- suffixInflection("きそう", "くる", [], ["vk"]),
1141
- suffixInflection("来そう", "来る", [], ["vk"]),
1142
- suffixInflection("來そう", "來る", [], ["vk"])
1143
- ]
1144
- },
1145
- "-すぎる": {
1146
- name: "-すぎる",
1147
- description: "Shows something \"is too...\" or someone is doing something \"too much\".\nUsage: Attach すぎる to the continuative form (連用形) of verbs, or to the stem of adjectives.",
1148
- i18n: [{
1149
- language: "ja",
1150
- name: "~すぎる",
1151
- description: "程度や限度を超える"
1152
- }],
1153
- rules: [
1154
- suffixInflection("すぎる", "い", ["v1"], ["adj-i"]),
1155
- suffixInflection("すぎる", "る", ["v1"], ["v1"]),
1156
- suffixInflection("いすぎる", "う", ["v1"], ["v5"]),
1157
- suffixInflection("きすぎる", "く", ["v1"], ["v5"]),
1158
- suffixInflection("ぎすぎる", "ぐ", ["v1"], ["v5"]),
1159
- suffixInflection("しすぎる", "す", ["v1"], ["v5"]),
1160
- suffixInflection("ちすぎる", "つ", ["v1"], ["v5"]),
1161
- suffixInflection("にすぎる", "ぬ", ["v1"], ["v5"]),
1162
- suffixInflection("びすぎる", "ぶ", ["v1"], ["v5"]),
1163
- suffixInflection("みすぎる", "む", ["v1"], ["v5"]),
1164
- suffixInflection("りすぎる", "る", ["v1"], ["v5"]),
1165
- suffixInflection("じすぎる", "ずる", ["v1"], ["vz"]),
1166
- suffixInflection("しすぎる", "する", ["v1"], ["vs"]),
1167
- suffixInflection("為すぎる", "為る", ["v1"], ["vs"]),
1168
- suffixInflection("きすぎる", "くる", ["v1"], ["vk"]),
1169
- suffixInflection("来すぎる", "来る", ["v1"], ["vk"]),
1170
- suffixInflection("來すぎる", "來る", ["v1"], ["vk"])
1171
- ]
1172
- },
1173
- "-過ぎる": {
1174
- name: "-過ぎる",
1175
- description: "Shows something \"is too...\" or someone is doing something \"too much\".\nUsage: Attach 過ぎる to the continuative form (連用形) of verbs, or to the stem of adjectives.",
1176
- i18n: [{
1177
- language: "ja",
1178
- name: "~過ぎる",
1179
- description: "程度や限度を超える"
1180
- }],
1181
- rules: [
1182
- suffixInflection("過ぎる", "い", ["v1"], ["adj-i"]),
1183
- suffixInflection("過ぎる", "る", ["v1"], ["v1"]),
1184
- suffixInflection("い過ぎる", "う", ["v1"], ["v5"]),
1185
- suffixInflection("き過ぎる", "く", ["v1"], ["v5"]),
1186
- suffixInflection("ぎ過ぎる", "ぐ", ["v1"], ["v5"]),
1187
- suffixInflection("し過ぎる", "す", ["v1"], ["v5"]),
1188
- suffixInflection("ち過ぎる", "つ", ["v1"], ["v5"]),
1189
- suffixInflection("に過ぎる", "ぬ", ["v1"], ["v5"]),
1190
- suffixInflection("び過ぎる", "ぶ", ["v1"], ["v5"]),
1191
- suffixInflection("み過ぎる", "む", ["v1"], ["v5"]),
1192
- suffixInflection("り過ぎる", "る", ["v1"], ["v5"]),
1193
- suffixInflection("じ過ぎる", "ずる", ["v1"], ["vz"]),
1194
- suffixInflection("し過ぎる", "する", ["v1"], ["vs"]),
1195
- suffixInflection("為過ぎる", "為る", ["v1"], ["vs"]),
1196
- suffixInflection("き過ぎる", "くる", ["v1"], ["vk"]),
1197
- suffixInflection("来過ぎる", "来る", ["v1"], ["vk"]),
1198
- suffixInflection("來過ぎる", "來る", ["v1"], ["vk"])
1199
- ]
1200
- },
1201
- "-たい": {
1202
- name: "-たい",
1203
- description: "1. Expresses the feeling of desire or hope.\n2. Used in ...たいと思います, an indirect way of saying what the speaker intends to do.\nUsage: Attach たい to the continuative form (連用形) of verbs. たい itself conjugates as i-adjective.",
1204
- i18n: [{
1205
- language: "ja",
1206
- name: "~たい",
1207
- description: "することをのぞんでいる、という、希望や願望の気持ちをあらわす。"
1208
- }],
1209
- rules: [
1210
- suffixInflection("たい", "る", ["adj-i"], ["v1"]),
1211
- suffixInflection("いたい", "う", ["adj-i"], ["v5"]),
1212
- suffixInflection("きたい", "く", ["adj-i"], ["v5"]),
1213
- suffixInflection("ぎたい", "ぐ", ["adj-i"], ["v5"]),
1214
- suffixInflection("したい", "す", ["adj-i"], ["v5"]),
1215
- suffixInflection("ちたい", "つ", ["adj-i"], ["v5"]),
1216
- suffixInflection("にたい", "ぬ", ["adj-i"], ["v5"]),
1217
- suffixInflection("びたい", "ぶ", ["adj-i"], ["v5"]),
1218
- suffixInflection("みたい", "む", ["adj-i"], ["v5"]),
1219
- suffixInflection("りたい", "る", ["adj-i"], ["v5"]),
1220
- suffixInflection("じたい", "ずる", ["adj-i"], ["vz"]),
1221
- suffixInflection("したい", "する", ["adj-i"], ["vs"]),
1222
- suffixInflection("為たい", "為る", ["adj-i"], ["vs"]),
1223
- suffixInflection("きたい", "くる", ["adj-i"], ["vk"]),
1224
- suffixInflection("来たい", "来る", ["adj-i"], ["vk"]),
1225
- suffixInflection("來たい", "來る", ["adj-i"], ["vk"])
1226
- ]
1227
- },
1228
- "-たら": {
1229
- name: "-たら",
1230
- description: "1. Denotes the latter stated event is a continuation of the previous stated event.\n2. Assumes that a matter has been completed or concluded.\nUsage: Attach たら to the continuative form (連用形) of verbs after euphonic change form, かったら to the stem of i-adjectives.",
1231
- i18n: [{
1232
- language: "ja",
1233
- name: "~たら",
1234
- description: "仮定をあらわす・…すると・したあとに"
1235
- }],
1236
- rules: [
1237
- suffixInflection("かったら", "い", [], ["adj-i"]),
1238
- suffixInflection("たら", "る", [], ["v1"]),
1239
- suffixInflection("いたら", "く", [], ["v5"]),
1240
- suffixInflection("いだら", "ぐ", [], ["v5"]),
1241
- suffixInflection("したら", "す", [], ["v5"]),
1242
- suffixInflection("ったら", "う", [], ["v5"]),
1243
- suffixInflection("ったら", "つ", [], ["v5"]),
1244
- suffixInflection("ったら", "る", [], ["v5"]),
1245
- suffixInflection("んだら", "ぬ", [], ["v5"]),
1246
- suffixInflection("んだら", "ぶ", [], ["v5"]),
1247
- suffixInflection("んだら", "む", [], ["v5"]),
1248
- suffixInflection("じたら", "ずる", [], ["vz"]),
1249
- suffixInflection("したら", "する", [], ["vs"]),
1250
- suffixInflection("為たら", "為る", [], ["vs"]),
1251
- suffixInflection("きたら", "くる", [], ["vk"]),
1252
- suffixInflection("来たら", "来る", [], ["vk"]),
1253
- suffixInflection("來たら", "來る", [], ["vk"]),
1254
- ...irregularVerbSuffixInflections("たら", [], ["v5"]),
1255
- suffixInflection("ましたら", "ます", [], ["-ます"])
1256
- ]
1257
- },
1258
- "-たり": {
1259
- name: "-たり",
1260
- description: "1. Shows two actions occurring back and forth (when used with two verbs).\n2. Shows examples of actions and states (when used with multiple verbs and adjectives).\nUsage: Attach たり to the continuative form (連用形) of verbs after euphonic change form, かったり to the stem of i-adjectives",
1261
- i18n: [{
1262
- language: "ja",
1263
- name: "~たり",
1264
- description: "ある動作を例示的にあげることを表わす。"
1265
- }],
1266
- rules: [
1267
- suffixInflection("かったり", "い", [], ["adj-i"]),
1268
- suffixInflection("たり", "る", [], ["v1"]),
1269
- suffixInflection("いたり", "く", [], ["v5"]),
1270
- suffixInflection("いだり", "ぐ", [], ["v5"]),
1271
- suffixInflection("したり", "す", [], ["v5"]),
1272
- suffixInflection("ったり", "う", [], ["v5"]),
1273
- suffixInflection("ったり", "つ", [], ["v5"]),
1274
- suffixInflection("ったり", "る", [], ["v5"]),
1275
- suffixInflection("んだり", "ぬ", [], ["v5"]),
1276
- suffixInflection("んだり", "ぶ", [], ["v5"]),
1277
- suffixInflection("んだり", "む", [], ["v5"]),
1278
- suffixInflection("じたり", "ずる", [], ["vz"]),
1279
- suffixInflection("したり", "する", [], ["vs"]),
1280
- suffixInflection("為たり", "為る", [], ["vs"]),
1281
- suffixInflection("きたり", "くる", [], ["vk"]),
1282
- suffixInflection("来たり", "来る", [], ["vk"]),
1283
- suffixInflection("來たり", "來る", [], ["vk"]),
1284
- ...irregularVerbSuffixInflections("たり", [], ["v5"])
1285
- ]
1286
- },
1287
- "-て": {
1288
- name: "-て",
1289
- description: "て-form.\nIt has a myriad of meanings. Primarily, it is a conjunctive particle that connects two clauses together.\nUsage: Attach て to the continuative form (連用形) of verbs after euphonic change form, くて to the stem of i-adjectives.",
1290
- i18n: [{
1291
- language: "ja",
1292
- name: "~て"
1293
- }],
1294
- rules: [
1295
- suffixInflection("くて", "い", ["-て"], ["adj-i"]),
1296
- suffixInflection("て", "る", ["-て"], ["v1"]),
1297
- suffixInflection("いて", "く", ["-て"], ["v5"]),
1298
- suffixInflection("いで", "ぐ", ["-て"], ["v5"]),
1299
- suffixInflection("して", "す", ["-て"], ["v5"]),
1300
- suffixInflection("って", "う", ["-て"], ["v5"]),
1301
- suffixInflection("って", "つ", ["-て"], ["v5"]),
1302
- suffixInflection("って", "る", ["-て"], ["v5"]),
1303
- suffixInflection("んで", "ぬ", ["-て"], ["v5"]),
1304
- suffixInflection("んで", "ぶ", ["-て"], ["v5"]),
1305
- suffixInflection("んで", "む", ["-て"], ["v5"]),
1306
- suffixInflection("じて", "ずる", ["-て"], ["vz"]),
1307
- suffixInflection("して", "する", ["-て"], ["vs"]),
1308
- suffixInflection("為て", "為る", ["-て"], ["vs"]),
1309
- suffixInflection("きて", "くる", ["-て"], ["vk"]),
1310
- suffixInflection("来て", "来る", ["-て"], ["vk"]),
1311
- suffixInflection("來て", "來る", ["-て"], ["vk"]),
1312
- ...irregularVerbSuffixInflections("て", ["-て"], ["v5"]),
1313
- suffixInflection("まして", "ます", [], ["-ます"])
1314
- ]
1315
- },
1316
- "-ず": {
1317
- name: "-ず",
1318
- description: "1. Negative form of verbs.\n2. Continuative form (連用形) of the particle ぬ (nu).\nUsage: Attach ず to the irrealis form (未然形) of verbs.",
1319
- i18n: [{
1320
- language: "ja",
1321
- name: "~ず",
1322
- description: "~ない"
1323
- }],
1324
- rules: [
1325
- suffixInflection("ず", "る", [], ["v1"]),
1326
- suffixInflection("かず", "く", [], ["v5"]),
1327
- suffixInflection("がず", "ぐ", [], ["v5"]),
1328
- suffixInflection("さず", "す", [], ["v5"]),
1329
- suffixInflection("たず", "つ", [], ["v5"]),
1330
- suffixInflection("なず", "ぬ", [], ["v5"]),
1331
- suffixInflection("ばず", "ぶ", [], ["v5"]),
1332
- suffixInflection("まず", "む", [], ["v5"]),
1333
- suffixInflection("らず", "る", [], ["v5"]),
1334
- suffixInflection("わず", "う", [], ["v5"]),
1335
- suffixInflection("ぜず", "ずる", [], ["vz"]),
1336
- suffixInflection("せず", "する", [], ["vs"]),
1337
- suffixInflection("為ず", "為る", [], ["vs"]),
1338
- suffixInflection("こず", "くる", [], ["vk"]),
1339
- suffixInflection("来ず", "来る", [], ["vk"]),
1340
- suffixInflection("來ず", "來る", [], ["vk"])
1341
- ]
1342
- },
1343
- "-ぬ": {
1344
- name: "-ぬ",
1345
- description: "Negative form of verbs.\nUsage: Attach ぬ to the irrealis form (未然形) of verbs.\nする becomes せぬ",
1346
- i18n: [{
1347
- language: "ja",
1348
- name: "~ぬ",
1349
- description: "~ない"
1350
- }],
1351
- rules: [
1352
- suffixInflection("ぬ", "る", [], ["v1"]),
1353
- suffixInflection("かぬ", "く", [], ["v5"]),
1354
- suffixInflection("がぬ", "ぐ", [], ["v5"]),
1355
- suffixInflection("さぬ", "す", [], ["v5"]),
1356
- suffixInflection("たぬ", "つ", [], ["v5"]),
1357
- suffixInflection("なぬ", "ぬ", [], ["v5"]),
1358
- suffixInflection("ばぬ", "ぶ", [], ["v5"]),
1359
- suffixInflection("まぬ", "む", [], ["v5"]),
1360
- suffixInflection("らぬ", "る", [], ["v5"]),
1361
- suffixInflection("わぬ", "う", [], ["v5"]),
1362
- suffixInflection("ぜぬ", "ずる", [], ["vz"]),
1363
- suffixInflection("せぬ", "する", [], ["vs"]),
1364
- suffixInflection("為ぬ", "為る", [], ["vs"]),
1365
- suffixInflection("こぬ", "くる", [], ["vk"]),
1366
- suffixInflection("来ぬ", "来る", [], ["vk"]),
1367
- suffixInflection("來ぬ", "來る", [], ["vk"])
1368
- ]
1369
- },
1370
- "-ん": {
1371
- name: "-ん",
1372
- description: "Negative form of verbs; a sound change of ぬ.\nUsage: Attach ん to the irrealis form (未然形) of verbs.\nする becomes せん",
1373
- i18n: [{
1374
- language: "ja",
1375
- name: "~ん",
1376
- description: "~ない"
1377
- }],
1378
- rules: [
1379
- suffixInflection("ん", "る", ["-ん"], ["v1"]),
1380
- suffixInflection("かん", "く", ["-ん"], ["v5"]),
1381
- suffixInflection("がん", "ぐ", ["-ん"], ["v5"]),
1382
- suffixInflection("さん", "す", ["-ん"], ["v5"]),
1383
- suffixInflection("たん", "つ", ["-ん"], ["v5"]),
1384
- suffixInflection("なん", "ぬ", ["-ん"], ["v5"]),
1385
- suffixInflection("ばん", "ぶ", ["-ん"], ["v5"]),
1386
- suffixInflection("まん", "む", ["-ん"], ["v5"]),
1387
- suffixInflection("らん", "る", ["-ん"], ["v5"]),
1388
- suffixInflection("わん", "う", ["-ん"], ["v5"]),
1389
- suffixInflection("ぜん", "ずる", ["-ん"], ["vz"]),
1390
- suffixInflection("せん", "する", ["-ん"], ["vs"]),
1391
- suffixInflection("為ん", "為る", ["-ん"], ["vs"]),
1392
- suffixInflection("こん", "くる", ["-ん"], ["vk"]),
1393
- suffixInflection("来ん", "来る", ["-ん"], ["vk"]),
1394
- suffixInflection("來ん", "來る", ["-ん"], ["vk"])
1395
- ]
1396
- },
1397
- "-んばかり": {
1398
- name: "-んばかり",
1399
- description: "Shows an action or condition is on the verge of occurring, or an excessive/extreme degree.\nUsage: Attach んばかり to the irrealis form (未然形) of verbs.\nする becomes せんばかり",
1400
- i18n: [{
1401
- language: "ja",
1402
- name: "~んばかり",
1403
- description: "今にもそうなりそうな、しかし辛うじてそうなっていないようなさまを指す表現"
1404
- }],
1405
- rules: [
1406
- suffixInflection("んばかり", "る", [], ["v1"]),
1407
- suffixInflection("かんばかり", "く", [], ["v5"]),
1408
- suffixInflection("がんばかり", "ぐ", [], ["v5"]),
1409
- suffixInflection("さんばかり", "す", [], ["v5"]),
1410
- suffixInflection("たんばかり", "つ", [], ["v5"]),
1411
- suffixInflection("なんばかり", "ぬ", [], ["v5"]),
1412
- suffixInflection("ばんばかり", "ぶ", [], ["v5"]),
1413
- suffixInflection("まんばかり", "む", [], ["v5"]),
1414
- suffixInflection("らんばかり", "る", [], ["v5"]),
1415
- suffixInflection("わんばかり", "う", [], ["v5"]),
1416
- suffixInflection("ぜんばかり", "ずる", [], ["vz"]),
1417
- suffixInflection("せんばかり", "する", [], ["vs"]),
1418
- suffixInflection("為んばかり", "為る", [], ["vs"]),
1419
- suffixInflection("こんばかり", "くる", [], ["vk"]),
1420
- suffixInflection("来んばかり", "来る", [], ["vk"]),
1421
- suffixInflection("來んばかり", "來る", [], ["vk"])
1422
- ]
1423
- },
1424
- "-んとする": {
1425
- name: "-んとする",
1426
- description: "1. Shows the speaker's will or intention.\n2. Shows an action or condition is on the verge of occurring.\nUsage: Attach んとする to the irrealis form (未然形) of verbs.\nする becomes せんとする",
1427
- i18n: [{
1428
- language: "ja",
1429
- name: "~んとする",
1430
- description: "…しようとする、…しようとしている"
1431
- }],
1432
- rules: [
1433
- suffixInflection("んとする", "る", ["vs"], ["v1"]),
1434
- suffixInflection("かんとする", "く", ["vs"], ["v5"]),
1435
- suffixInflection("がんとする", "ぐ", ["vs"], ["v5"]),
1436
- suffixInflection("さんとする", "す", ["vs"], ["v5"]),
1437
- suffixInflection("たんとする", "つ", ["vs"], ["v5"]),
1438
- suffixInflection("なんとする", "ぬ", ["vs"], ["v5"]),
1439
- suffixInflection("ばんとする", "ぶ", ["vs"], ["v5"]),
1440
- suffixInflection("まんとする", "む", ["vs"], ["v5"]),
1441
- suffixInflection("らんとする", "る", ["vs"], ["v5"]),
1442
- suffixInflection("わんとする", "う", ["vs"], ["v5"]),
1443
- suffixInflection("ぜんとする", "ずる", ["vs"], ["vz"]),
1444
- suffixInflection("せんとする", "する", ["vs"], ["vs"]),
1445
- suffixInflection("為んとする", "為る", ["vs"], ["vs"]),
1446
- suffixInflection("こんとする", "くる", ["vs"], ["vk"]),
1447
- suffixInflection("来んとする", "来る", ["vs"], ["vk"]),
1448
- suffixInflection("來んとする", "來る", ["vs"], ["vk"])
1449
- ]
1450
- },
1451
- "-む": {
1452
- name: "-む",
1453
- description: "Archaic.\n1. Shows an inference of a certain matter.\n2. Shows speaker's intention.\nUsage: Attach む to the irrealis form (未然形) of verbs.\nする becomes せむ",
1454
- i18n: [{
1455
- language: "ja",
1456
- name: "~む",
1457
- description: "…だろう"
1458
- }],
1459
- rules: [
1460
- suffixInflection("む", "る", [], ["v1"]),
1461
- suffixInflection("かむ", "く", [], ["v5"]),
1462
- suffixInflection("がむ", "ぐ", [], ["v5"]),
1463
- suffixInflection("さむ", "す", [], ["v5"]),
1464
- suffixInflection("たむ", "つ", [], ["v5"]),
1465
- suffixInflection("なむ", "ぬ", [], ["v5"]),
1466
- suffixInflection("ばむ", "ぶ", [], ["v5"]),
1467
- suffixInflection("まむ", "む", [], ["v5"]),
1468
- suffixInflection("らむ", "る", [], ["v5"]),
1469
- suffixInflection("わむ", "う", [], ["v5"]),
1470
- suffixInflection("ぜむ", "ずる", [], ["vz"]),
1471
- suffixInflection("せむ", "する", [], ["vs"]),
1472
- suffixInflection("為む", "為る", [], ["vs"]),
1473
- suffixInflection("こむ", "くる", [], ["vk"]),
1474
- suffixInflection("来む", "来る", [], ["vk"]),
1475
- suffixInflection("來む", "來る", [], ["vk"])
1476
- ]
1477
- },
1478
- "-ざる": {
1479
- name: "-ざる",
1480
- description: "Negative form of verbs.\nUsage: Attach ざる to the irrealis form (未然形) of verbs.\nする becomes せざる",
1481
- i18n: [{
1482
- language: "ja",
1483
- name: "~ざる",
1484
- description: "…ない…"
1485
- }],
1486
- rules: [
1487
- suffixInflection("ざる", "る", [], ["v1"]),
1488
- suffixInflection("かざる", "く", [], ["v5"]),
1489
- suffixInflection("がざる", "ぐ", [], ["v5"]),
1490
- suffixInflection("さざる", "す", [], ["v5"]),
1491
- suffixInflection("たざる", "つ", [], ["v5"]),
1492
- suffixInflection("なざる", "ぬ", [], ["v5"]),
1493
- suffixInflection("ばざる", "ぶ", [], ["v5"]),
1494
- suffixInflection("まざる", "む", [], ["v5"]),
1495
- suffixInflection("らざる", "る", [], ["v5"]),
1496
- suffixInflection("わざる", "う", [], ["v5"]),
1497
- suffixInflection("ぜざる", "ずる", [], ["vz"]),
1498
- suffixInflection("せざる", "する", [], ["vs"]),
1499
- suffixInflection("為ざる", "為る", [], ["vs"]),
1500
- suffixInflection("こざる", "くる", [], ["vk"]),
1501
- suffixInflection("来ざる", "来る", [], ["vk"]),
1502
- suffixInflection("來ざる", "來る", [], ["vk"])
1503
- ]
1504
- },
1505
- "-ねば": {
1506
- name: "-ねば",
1507
- description: "1. Shows a hypothetical negation; if not ...\n2. Shows a must. Used with or without ならぬ.\nUsage: Attach ねば to the irrealis form (未然形) of verbs.\nする becomes せねば",
1508
- i18n: [{
1509
- language: "ja",
1510
- name: "~ねば",
1511
- description: "もし…ないなら。…なければならない。"
1512
- }],
1513
- rules: [
1514
- suffixInflection("ねば", "る", ["-ば"], ["v1"]),
1515
- suffixInflection("かねば", "く", ["-ば"], ["v5"]),
1516
- suffixInflection("がねば", "ぐ", ["-ば"], ["v5"]),
1517
- suffixInflection("さねば", "す", ["-ば"], ["v5"]),
1518
- suffixInflection("たねば", "つ", ["-ば"], ["v5"]),
1519
- suffixInflection("なねば", "ぬ", ["-ば"], ["v5"]),
1520
- suffixInflection("ばねば", "ぶ", ["-ば"], ["v5"]),
1521
- suffixInflection("まねば", "む", ["-ば"], ["v5"]),
1522
- suffixInflection("らねば", "る", ["-ば"], ["v5"]),
1523
- suffixInflection("わねば", "う", ["-ば"], ["v5"]),
1524
- suffixInflection("ぜねば", "ずる", ["-ば"], ["vz"]),
1525
- suffixInflection("せねば", "する", ["-ば"], ["vs"]),
1526
- suffixInflection("為ねば", "為る", ["-ば"], ["vs"]),
1527
- suffixInflection("こねば", "くる", ["-ば"], ["vk"]),
1528
- suffixInflection("来ねば", "来る", ["-ば"], ["vk"]),
1529
- suffixInflection("來ねば", "來る", ["-ば"], ["vk"])
1530
- ]
1531
- },
1532
- "-く": {
1533
- name: "-く",
1534
- description: "Adverbial form of i-adjectives.\n",
1535
- i18n: [{
1536
- language: "ja",
1537
- name: "~く",
1538
- description: "〔形容詞で〕用言へ続く。例、「大きく育つ」の「大きく」。"
1539
- }],
1540
- rules: [suffixInflection("く", "い", ["-く"], ["adj-i"])]
1541
- },
1542
- causative: {
1543
- name: "causative",
1544
- description: "Describes the intention to make someone do something.\nUsage: Attach させる to the irrealis form (未然形) of ichidan verbs and くる.\nAttach せる to the irrealis form (未然形) of godan verbs and する.\nIt itself conjugates as an ichidan verb.",
1545
- i18n: [{
1546
- language: "ja",
1547
- name: "~せる・させる",
1548
- description: "だれかにある行為をさせる意を表わす時の言い方。例、「行かせる」の「せる」。"
1549
- }],
1550
- rules: [
1551
- suffixInflection("させる", "る", ["v1"], ["v1"]),
1552
- suffixInflection("かせる", "く", ["v1"], ["v5"]),
1553
- suffixInflection("がせる", "ぐ", ["v1"], ["v5"]),
1554
- suffixInflection("させる", "す", ["v1"], ["v5"]),
1555
- suffixInflection("たせる", "つ", ["v1"], ["v5"]),
1556
- suffixInflection("なせる", "ぬ", ["v1"], ["v5"]),
1557
- suffixInflection("ばせる", "ぶ", ["v1"], ["v5"]),
1558
- suffixInflection("ませる", "む", ["v1"], ["v5"]),
1559
- suffixInflection("らせる", "る", ["v1"], ["v5"]),
1560
- suffixInflection("わせる", "う", ["v1"], ["v5"]),
1561
- suffixInflection("じさせる", "ずる", ["v1"], ["vz"]),
1562
- suffixInflection("ぜさせる", "ずる", ["v1"], ["vz"]),
1563
- suffixInflection("させる", "する", ["v1"], ["vs"]),
1564
- suffixInflection("為せる", "為る", ["v1"], ["vs"]),
1565
- suffixInflection("せさせる", "する", ["v1"], ["vs"]),
1566
- suffixInflection("為させる", "為る", ["v1"], ["vs"]),
1567
- suffixInflection("こさせる", "くる", ["v1"], ["vk"]),
1568
- suffixInflection("来させる", "来る", ["v1"], ["vk"]),
1569
- suffixInflection("來させる", "來る", ["v1"], ["vk"])
1570
- ]
1571
- },
1572
- "short causative": {
1573
- name: "short causative",
1574
- description: "Contraction of the causative form.\nDescribes the intention to make someone do something.\nUsage: Attach す to the irrealis form (未然形) of godan verbs.\nAttach さす to the dictionary form (終止形) of ichidan verbs.\nする becomes さす, くる becomes こさす.\nIt itself conjugates as an godan verb.",
1575
- i18n: [{
1576
- language: "ja",
1577
- name: "~す・さす",
1578
- description: "だれかにある行為をさせる意を表わす時の言い方。例、「食べさす」の「さす」。"
1579
- }],
1580
- rules: [
1581
- suffixInflection("さす", "る", ["v5ss"], ["v1"]),
1582
- suffixInflection("かす", "く", ["v5sp"], ["v5"]),
1583
- suffixInflection("がす", "ぐ", ["v5sp"], ["v5"]),
1584
- suffixInflection("さす", "す", ["v5ss"], ["v5"]),
1585
- suffixInflection("たす", "つ", ["v5sp"], ["v5"]),
1586
- suffixInflection("なす", "ぬ", ["v5sp"], ["v5"]),
1587
- suffixInflection("ばす", "ぶ", ["v5sp"], ["v5"]),
1588
- suffixInflection("ます", "む", ["v5sp"], ["v5"]),
1589
- suffixInflection("らす", "る", ["v5sp"], ["v5"]),
1590
- suffixInflection("わす", "う", ["v5sp"], ["v5"]),
1591
- suffixInflection("じさす", "ずる", ["v5ss"], ["vz"]),
1592
- suffixInflection("ぜさす", "ずる", ["v5ss"], ["vz"]),
1593
- suffixInflection("さす", "する", ["v5ss"], ["vs"]),
1594
- suffixInflection("為す", "為る", ["v5ss"], ["vs"]),
1595
- suffixInflection("こさす", "くる", ["v5ss"], ["vk"]),
1596
- suffixInflection("来さす", "来る", ["v5ss"], ["vk"]),
1597
- suffixInflection("來さす", "來る", ["v5ss"], ["vk"])
1598
- ]
1599
- },
1600
- imperative: {
1601
- name: "imperative",
1602
- description: "1. To give orders.\n2. (As あれ) Represents the fact that it will never change no matter the circumstances.\n3. Express a feeling of hope.",
1603
- i18n: [{
1604
- language: "ja",
1605
- name: "命令形",
1606
- description: "命令の意味を表わすときの形。例、「行け」。"
1607
- }],
1608
- rules: [
1609
- suffixInflection("ろ", "る", [], ["v1"]),
1610
- suffixInflection("よ", "る", [], ["v1"]),
1611
- suffixInflection("え", "う", [], ["v5"]),
1612
- suffixInflection("け", "く", [], ["v5"]),
1613
- suffixInflection("げ", "ぐ", [], ["v5"]),
1614
- suffixInflection("せ", "す", [], ["v5"]),
1615
- suffixInflection("て", "つ", [], ["v5"]),
1616
- suffixInflection("ね", "ぬ", [], ["v5"]),
1617
- suffixInflection("べ", "ぶ", [], ["v5"]),
1618
- suffixInflection("め", "む", [], ["v5"]),
1619
- suffixInflection("れ", "る", [], ["v5"]),
1620
- suffixInflection("じろ", "ずる", [], ["vz"]),
1621
- suffixInflection("ぜよ", "ずる", [], ["vz"]),
1622
- suffixInflection("しろ", "する", [], ["vs"]),
1623
- suffixInflection("せよ", "する", [], ["vs"]),
1624
- suffixInflection("為ろ", "為る", [], ["vs"]),
1625
- suffixInflection("為よ", "為る", [], ["vs"]),
1626
- suffixInflection("こい", "くる", [], ["vk"]),
1627
- suffixInflection("来い", "来る", [], ["vk"]),
1628
- suffixInflection("來い", "來る", [], ["vk"])
1629
- ]
1630
- },
1631
- continuative: {
1632
- name: "continuative",
1633
- description: "Used to indicate actions that are (being) carried out.\nRefers to 連用形, the part of the verb after conjugating with -ます and dropping ます.",
1634
- i18n: [{
1635
- language: "ja",
1636
- name: "連用形",
1637
- description: "〔動詞などで〕「ます」などに続く。例、「バスを降りて歩きます」の「降り」「歩き」。"
1638
- }],
1639
- rules: [
1640
- suffixInflection("い", "いる", [], ["v1d"]),
1641
- suffixInflection("え", "える", [], ["v1d"]),
1642
- suffixInflection("き", "きる", [], ["v1d"]),
1643
- suffixInflection("ぎ", "ぎる", [], ["v1d"]),
1644
- suffixInflection("け", "ける", [], ["v1d"]),
1645
- suffixInflection("げ", "げる", [], ["v1d"]),
1646
- suffixInflection("じ", "じる", [], ["v1d"]),
1647
- suffixInflection("せ", "せる", [], ["v1d"]),
1648
- suffixInflection("ぜ", "ぜる", [], ["v1d"]),
1649
- suffixInflection("ち", "ちる", [], ["v1d"]),
1650
- suffixInflection("て", "てる", [], ["v1d"]),
1651
- suffixInflection("で", "でる", [], ["v1d"]),
1652
- suffixInflection("に", "にる", [], ["v1d"]),
1653
- suffixInflection("ね", "ねる", [], ["v1d"]),
1654
- suffixInflection("ひ", "ひる", [], ["v1d"]),
1655
- suffixInflection("び", "びる", [], ["v1d"]),
1656
- suffixInflection("へ", "へる", [], ["v1d"]),
1657
- suffixInflection("べ", "べる", [], ["v1d"]),
1658
- suffixInflection("み", "みる", [], ["v1d"]),
1659
- suffixInflection("め", "める", [], ["v1d"]),
1660
- suffixInflection("り", "りる", [], ["v1d"]),
1661
- suffixInflection("れ", "れる", [], ["v1d"]),
1662
- suffixInflection("い", "う", [], ["v5"]),
1663
- suffixInflection("き", "く", [], ["v5"]),
1664
- suffixInflection("ぎ", "ぐ", [], ["v5"]),
1665
- suffixInflection("し", "す", [], ["v5"]),
1666
- suffixInflection("ち", "つ", [], ["v5"]),
1667
- suffixInflection("に", "ぬ", [], ["v5"]),
1668
- suffixInflection("び", "ぶ", [], ["v5"]),
1669
- suffixInflection("み", "む", [], ["v5"]),
1670
- suffixInflection("り", "る", [], ["v5"]),
1671
- suffixInflection("き", "くる", [], ["vk"]),
1672
- suffixInflection("し", "する", [], ["vs"]),
1673
- suffixInflection("来", "来る", [], ["vk"]),
1674
- suffixInflection("來", "來る", [], ["vk"])
1675
- ]
1676
- },
1677
- negative: {
1678
- name: "negative",
1679
- description: "1. Negative form of verbs.\n2. Expresses a feeling of solicitation to the other party.\nUsage: Attach ない to the irrealis form (未然形) of verbs, くない to the stem of i-adjectives. ない itself conjugates as i-adjective. ます becomes ません.",
1680
- i18n: [{
1681
- language: "ja",
1682
- name: "~ない",
1683
- description: "その動作・作用・状態の成立を否定することを表わす。"
1684
- }],
1685
- rules: [
1686
- suffixInflection("くない", "い", ["adj-i"], ["adj-i"]),
1687
- suffixInflection("ない", "る", ["adj-i"], ["v1"]),
1688
- suffixInflection("かない", "く", ["adj-i"], ["v5"]),
1689
- suffixInflection("がない", "ぐ", ["adj-i"], ["v5"]),
1690
- suffixInflection("さない", "す", ["adj-i"], ["v5"]),
1691
- suffixInflection("たない", "つ", ["adj-i"], ["v5"]),
1692
- suffixInflection("なない", "ぬ", ["adj-i"], ["v5"]),
1693
- suffixInflection("ばない", "ぶ", ["adj-i"], ["v5"]),
1694
- suffixInflection("まない", "む", ["adj-i"], ["v5"]),
1695
- suffixInflection("らない", "る", ["adj-i"], ["v5"]),
1696
- suffixInflection("わない", "う", ["adj-i"], ["v5"]),
1697
- suffixInflection("じない", "ずる", ["adj-i"], ["vz"]),
1698
- suffixInflection("しない", "する", ["adj-i"], ["vs"]),
1699
- suffixInflection("為ない", "為る", ["adj-i"], ["vs"]),
1700
- suffixInflection("こない", "くる", ["adj-i"], ["vk"]),
1701
- suffixInflection("来ない", "来る", ["adj-i"], ["vk"]),
1702
- suffixInflection("來ない", "來る", ["adj-i"], ["vk"]),
1703
- suffixInflection("ません", "ます", ["-ません"], ["-ます"])
1704
- ]
1705
- },
1706
- "-さ": {
1707
- name: "-さ",
1708
- description: "Nominalizing suffix of i-adjectives indicating nature, state, mind or degree.\nUsage: Attach さ to the stem of i-adjectives.",
1709
- i18n: [{
1710
- language: "ja",
1711
- name: "~さ",
1712
- description: "こと。程度。"
1713
- }],
1714
- rules: [suffixInflection("さ", "い", [], ["adj-i"])]
1715
- },
1716
- passive: {
1717
- name: "passive",
1718
- description: `${passiveEnglishDescription}Usage: Attach れる to the irrealis form (未然形) of godan verbs.`,
1719
- i18n: [{
1720
- language: "ja",
1721
- name: "~れる"
1722
- }],
1723
- rules: [
1724
- suffixInflection("かれる", "く", ["v1"], ["v5"]),
1725
- suffixInflection("がれる", "ぐ", ["v1"], ["v5"]),
1726
- suffixInflection("される", "す", ["v1"], ["v5d", "v5sp"]),
1727
- suffixInflection("たれる", "つ", ["v1"], ["v5"]),
1728
- suffixInflection("なれる", "ぬ", ["v1"], ["v5"]),
1729
- suffixInflection("ばれる", "ぶ", ["v1"], ["v5"]),
1730
- suffixInflection("まれる", "む", ["v1"], ["v5"]),
1731
- suffixInflection("われる", "う", ["v1"], ["v5"]),
1732
- suffixInflection("られる", "る", ["v1"], ["v5"]),
1733
- suffixInflection("じされる", "ずる", ["v1"], ["vz"]),
1734
- suffixInflection("ぜされる", "ずる", ["v1"], ["vz"]),
1735
- suffixInflection("される", "する", ["v1"], ["vs"]),
1736
- suffixInflection("為れる", "為る", ["v1"], ["vs"]),
1737
- suffixInflection("こられる", "くる", ["v1"], ["vk"]),
1738
- suffixInflection("来られる", "来る", ["v1"], ["vk"]),
1739
- suffixInflection("來られる", "來る", ["v1"], ["vk"])
1740
- ]
1741
- },
1742
- "-た": {
1743
- name: "-た",
1744
- description: "1. Indicates a reality that has happened in the past.\n2. Indicates the completion of an action.\n3. Indicates the confirmation of a matter.\n4. Indicates the speaker's confidence that the action will definitely be fulfilled.\n5. Indicates the events that occur before the main clause are represented as relative past.\n6. Indicates a mild imperative/command.\nUsage: Attach た to the continuative form (連用形) of verbs after euphonic change form, かった to the stem of i-adjectives.",
1745
- i18n: [{
1746
- language: "ja",
1747
- name: "~た"
1748
- }],
1749
- rules: [
1750
- suffixInflection("かった", "い", ["-た"], ["adj-i"]),
1751
- suffixInflection("た", "る", ["-た"], ["v1"]),
1752
- suffixInflection("いた", "く", ["-た"], ["v5"]),
1753
- suffixInflection("いだ", "ぐ", ["-た"], ["v5"]),
1754
- suffixInflection("した", "す", ["-た"], ["v5"]),
1755
- suffixInflection("った", "う", ["-た"], ["v5"]),
1756
- suffixInflection("った", "つ", ["-た"], ["v5"]),
1757
- suffixInflection("った", "る", ["-た"], ["v5"]),
1758
- suffixInflection("んだ", "ぬ", ["-た"], ["v5"]),
1759
- suffixInflection("んだ", "ぶ", ["-た"], ["v5"]),
1760
- suffixInflection("んだ", "む", ["-た"], ["v5"]),
1761
- suffixInflection("じた", "ずる", ["-た"], ["vz"]),
1762
- suffixInflection("した", "する", ["-た"], ["vs"]),
1763
- suffixInflection("為た", "為る", ["-た"], ["vs"]),
1764
- suffixInflection("きた", "くる", ["-た"], ["vk"]),
1765
- suffixInflection("来た", "来る", ["-た"], ["vk"]),
1766
- suffixInflection("來た", "來る", ["-た"], ["vk"]),
1767
- ...irregularVerbSuffixInflections("た", ["-た"], ["v5"]),
1768
- suffixInflection("ました", "ます", ["-た"], ["-ます"]),
1769
- suffixInflection("でした", "", ["-た"], ["-ません"]),
1770
- suffixInflection("かった", "", ["-た"], ["-ません", "-ん"])
1771
- ]
1772
- },
1773
- "-ます": {
1774
- name: "-ます",
1775
- description: "Polite conjugation of verbs and adjectives.\nUsage: Attach ます to the continuative form (連用形) of verbs.",
1776
- i18n: [{
1777
- language: "ja",
1778
- name: "~ます"
1779
- }],
1780
- rules: [
1781
- suffixInflection("ます", "る", ["-ます"], ["v1"]),
1782
- suffixInflection("います", "う", ["-ます"], ["v5d"]),
1783
- suffixInflection("きます", "く", ["-ます"], ["v5d"]),
1784
- suffixInflection("ぎます", "ぐ", ["-ます"], ["v5d"]),
1785
- suffixInflection("します", "す", ["-ます"], ["v5d", "v5s"]),
1786
- suffixInflection("ちます", "つ", ["-ます"], ["v5d"]),
1787
- suffixInflection("にます", "ぬ", ["-ます"], ["v5d"]),
1788
- suffixInflection("びます", "ぶ", ["-ます"], ["v5d"]),
1789
- suffixInflection("みます", "む", ["-ます"], ["v5d"]),
1790
- suffixInflection("ります", "る", ["-ます"], ["v5d"]),
1791
- suffixInflection("じます", "ずる", ["-ます"], ["vz"]),
1792
- suffixInflection("します", "する", ["-ます"], ["vs"]),
1793
- suffixInflection("為ます", "為る", ["-ます"], ["vs"]),
1794
- suffixInflection("きます", "くる", ["-ます"], ["vk"]),
1795
- suffixInflection("来ます", "来る", ["-ます"], ["vk"]),
1796
- suffixInflection("來ます", "來る", ["-ます"], ["vk"]),
1797
- suffixInflection("くあります", "い", ["-ます"], ["adj-i"])
1798
- ]
1799
- },
1800
- potential: {
1801
- name: "potential",
1802
- description: "Indicates a state of being (naturally) capable of doing an action.\nUsage: Attach (ら)れる to the irrealis form (未然形) of ichidan verbs.\nAttach る to the imperative form (命令形) of godan verbs.\nする becomes できる, くる becomes こ(ら)れる",
1803
- i18n: [{
1804
- language: "ja",
1805
- name: "~(ら)れる"
1806
- }],
1807
- rules: [
1808
- suffixInflection("れる", "る", ["v1"], ["v1", "v5d"]),
1809
- suffixInflection("える", "う", ["v1"], ["v5d"]),
1810
- suffixInflection("ける", "く", ["v1"], ["v5d"]),
1811
- suffixInflection("げる", "ぐ", ["v1"], ["v5d"]),
1812
- suffixInflection("せる", "す", ["v1"], ["v5d"]),
1813
- suffixInflection("てる", "つ", ["v1"], ["v5d"]),
1814
- suffixInflection("ねる", "ぬ", ["v1"], ["v5d"]),
1815
- suffixInflection("べる", "ぶ", ["v1"], ["v5d"]),
1816
- suffixInflection("める", "む", ["v1"], ["v5d"]),
1817
- suffixInflection("できる", "する", ["v1"], ["vs"]),
1818
- suffixInflection("出来る", "する", ["v1"], ["vs"]),
1819
- suffixInflection("これる", "くる", ["v1"], ["vk"]),
1820
- suffixInflection("来れる", "来る", ["v1"], ["vk"]),
1821
- suffixInflection("來れる", "來る", ["v1"], ["vk"])
1822
- ]
1823
- },
1824
- "potential or passive": {
1825
- name: "potential or passive",
1826
- description: `${passiveEnglishDescription}3. Indicates a state of being (naturally) capable of doing an action.\nUsage: Attach られる to the irrealis form (未然形) of ichidan verbs.\nする becomes せられる, くる becomes こられる`,
1827
- i18n: [{
1828
- language: "ja",
1829
- name: "~られる"
1830
- }],
1831
- rules: [
1832
- suffixInflection("られる", "る", ["v1"], ["v1"]),
1833
- suffixInflection("ざれる", "ずる", ["v1"], ["vz"]),
1834
- suffixInflection("ぜられる", "ずる", ["v1"], ["vz"]),
1835
- suffixInflection("せられる", "する", ["v1"], ["vs"]),
1836
- suffixInflection("為られる", "為る", ["v1"], ["vs"]),
1837
- suffixInflection("こられる", "くる", ["v1"], ["vk"]),
1838
- suffixInflection("来られる", "来る", ["v1"], ["vk"]),
1839
- suffixInflection("來られる", "來る", ["v1"], ["vk"])
1840
- ]
1841
- },
1842
- volitional: {
1843
- name: "volitional",
1844
- description: "1. Expresses speaker's will or intention.\n2. Expresses an invitation to the other party.\n3. (Used in …ようとする) Indicates being on the verge of initiating an action or transforming a state.\n4. Indicates an inference of a matter.\nUsage: Attach よう to the irrealis form (未然形) of ichidan verbs.\nAttach う to the irrealis form (未然形) of godan verbs after -o euphonic change form.\nAttach かろう to the stem of i-adjectives (4th meaning only).",
1845
- i18n: [{
1846
- language: "ja",
1847
- name: "~う・よう",
1848
- description: "主体の意志を表わす"
1849
- }],
1850
- rules: [
1851
- suffixInflection("よう", "る", [], ["v1"]),
1852
- suffixInflection("おう", "う", [], ["v5"]),
1853
- suffixInflection("こう", "く", [], ["v5"]),
1854
- suffixInflection("ごう", "ぐ", [], ["v5"]),
1855
- suffixInflection("そう", "す", [], ["v5"]),
1856
- suffixInflection("とう", "つ", [], ["v5"]),
1857
- suffixInflection("のう", "ぬ", [], ["v5"]),
1858
- suffixInflection("ぼう", "ぶ", [], ["v5"]),
1859
- suffixInflection("もう", "む", [], ["v5"]),
1860
- suffixInflection("ろう", "る", [], ["v5"]),
1861
- suffixInflection("じよう", "ずる", [], ["vz"]),
1862
- suffixInflection("しよう", "する", [], ["vs"]),
1863
- suffixInflection("為よう", "為る", [], ["vs"]),
1864
- suffixInflection("こよう", "くる", [], ["vk"]),
1865
- suffixInflection("来よう", "来る", [], ["vk"]),
1866
- suffixInflection("來よう", "來る", [], ["vk"]),
1867
- suffixInflection("ましょう", "ます", [], ["-ます"]),
1868
- suffixInflection("かろう", "い", [], ["adj-i"])
1869
- ]
1870
- },
1871
- "volitional slang": {
1872
- name: "volitional slang",
1873
- description: "Contraction of volitional form + か\n1. Expresses speaker's will or intention.\n2. Expresses an invitation to the other party.\nUsage: Replace final う with っ of volitional form then add か.\nFor example: 行こうか -> 行こっか.",
1874
- i18n: [{
1875
- language: "ja",
1876
- name: "~っか・よっか",
1877
- description: "「うか・ようか」の短縮"
1878
- }],
1879
- rules: [
1880
- suffixInflection("よっか", "る", [], ["v1"]),
1881
- suffixInflection("おっか", "う", [], ["v5"]),
1882
- suffixInflection("こっか", "く", [], ["v5"]),
1883
- suffixInflection("ごっか", "ぐ", [], ["v5"]),
1884
- suffixInflection("そっか", "す", [], ["v5"]),
1885
- suffixInflection("とっか", "つ", [], ["v5"]),
1886
- suffixInflection("のっか", "ぬ", [], ["v5"]),
1887
- suffixInflection("ぼっか", "ぶ", [], ["v5"]),
1888
- suffixInflection("もっか", "む", [], ["v5"]),
1889
- suffixInflection("ろっか", "る", [], ["v5"]),
1890
- suffixInflection("じよっか", "ずる", [], ["vz"]),
1891
- suffixInflection("しよっか", "する", [], ["vs"]),
1892
- suffixInflection("為よっか", "為る", [], ["vs"]),
1893
- suffixInflection("こよっか", "くる", [], ["vk"]),
1894
- suffixInflection("来よっか", "来る", [], ["vk"]),
1895
- suffixInflection("來よっか", "來る", [], ["vk"]),
1896
- suffixInflection("ましょっか", "ます", [], ["-ます"])
1897
- ]
1898
- },
1899
- "-まい": {
1900
- name: "-まい",
1901
- description: "Negative volitional form of verbs.\n1. Expresses speaker's assumption that something is likely not true.\n2. Expresses speaker's will or intention not to do something.\nUsage: Attach まい to the dictionary form (終止形) of verbs.\nAttach まい to the irrealis form (未然形) of ichidan verbs.\nする becomes しまい, くる becomes こまい",
1902
- i18n: [{
1903
- language: "ja",
1904
- name: "~まい",
1905
- description: "1. 打うち消けしの推量すいりょう 「~ないだろう」と想像する\n2. 打うち消けしの意志いし「~ないつもりだ」という気持ち"
1906
- }],
1907
- rules: [
1908
- suffixInflection("まい", "", [], ["v"]),
1909
- suffixInflection("まい", "る", [], ["v1"]),
1910
- suffixInflection("じまい", "ずる", [], ["vz"]),
1911
- suffixInflection("しまい", "する", [], ["vs"]),
1912
- suffixInflection("為まい", "為る", [], ["vs"]),
1913
- suffixInflection("こまい", "くる", [], ["vk"]),
1914
- suffixInflection("来まい", "来る", [], ["vk"]),
1915
- suffixInflection("來まい", "來る", [], ["vk"]),
1916
- suffixInflection("まい", "", [], ["-ます"])
1917
- ]
1918
- },
1919
- "-おく": {
1920
- name: "-おく",
1921
- description: "To do certain things in advance in preparation (or in anticipation) of latter needs.\nUsage: Attach おく to the て-form of verbs.\nAttach でおく after ない negative form of verbs.\nContracts to とく・どく in speech.",
1922
- i18n: [{
1923
- language: "ja",
1924
- name: "~おく"
1925
- }],
1926
- rules: [
1927
- suffixInflection("ておく", "て", ["v5"], ["-て"]),
1928
- suffixInflection("でおく", "で", ["v5"], ["-て"]),
1929
- suffixInflection("とく", "て", ["v5"], ["-て"]),
1930
- suffixInflection("どく", "で", ["v5"], ["-て"]),
1931
- suffixInflection("ないでおく", "ない", ["v5"], ["adj-i"]),
1932
- suffixInflection("ないどく", "ない", ["v5"], ["adj-i"])
1933
- ]
1934
- },
1935
- "-いる": {
1936
- name: "-いる",
1937
- description: "1. Indicates an action continues or progresses to a point in time.\n2. Indicates an action is completed and remains as is.\n3. Indicates a state or condition that can be taken to be the result of undergoing some change.\nUsage: Attach いる to the て-form of verbs. い can be dropped in speech.\nAttach でいる after ない negative form of verbs.\n(Slang) Attach おる to the て-form of verbs. Contracts to とる・でる in speech.",
1938
- i18n: [{
1939
- language: "ja",
1940
- name: "~いる"
1941
- }],
1942
- rules: [
1943
- suffixInflection("ている", "て", ["v1"], ["-て"]),
1944
- suffixInflection("ておる", "て", ["v5"], ["-て"]),
1945
- suffixInflection("てる", "て", ["v1p"], ["-て"]),
1946
- suffixInflection("でいる", "で", ["v1"], ["-て"]),
1947
- suffixInflection("でおる", "で", ["v5"], ["-て"]),
1948
- suffixInflection("でる", "で", ["v1p"], ["-て"]),
1949
- suffixInflection("とる", "て", ["v5"], ["-て"]),
1950
- suffixInflection("ないでいる", "ない", ["v1"], ["adj-i"])
1951
- ]
1952
- },
1953
- "-き": {
1954
- name: "-き",
1955
- description: "Attributive form (連体形) of i-adjectives. An archaic form that remains in modern Japanese.",
1956
- i18n: [{
1957
- language: "ja",
1958
- name: "~き",
1959
- description: "連体形"
1960
- }],
1961
- rules: [suffixInflection("き", "い", [], ["adj-i"])]
1962
- },
1963
- "-げ": {
1964
- name: "-げ",
1965
- description: "Describes a person's appearance. Shows feelings of the person.\nUsage: Attach げ or 気 to the stem of i-adjectives",
1966
- i18n: [{
1967
- language: "ja",
1968
- name: "~げ",
1969
- description: "…でありそうな様子。いかにも…らしいさま。"
1970
- }],
1971
- rules: [suffixInflection("げ", "い", [], ["adj-i"]), suffixInflection("気", "い", [], ["adj-i"])]
1972
- },
1973
- "-がる": {
1974
- name: "-がる",
1975
- description: "1. Shows subject’s feelings contrast with what is thought/known about them.\n2. Indicates subject's behavior (stands out).\nUsage: Attach がる to the stem of i-adjectives. It itself conjugates as a godan verb.",
1976
- i18n: [{
1977
- language: "ja",
1978
- name: "~がる",
1979
- description: "いかにもその状態にあるという印象を相手に与えるような言動をする。"
1980
- }],
1981
- rules: [suffixInflection("がる", "い", ["v5"], ["adj-i"])]
1982
- },
1983
- "-え": {
1984
- name: "-え",
1985
- description: "Slang. A sound change of i-adjectives.\nai:やばい → やべぇ\nui:さむい → さみぃ/さめぇ\noi:すごい → すげぇ",
1986
- i18n: [{
1987
- language: "ja",
1988
- name: "~え"
1989
- }],
1990
- rules: [
1991
- suffixInflection("ねえ", "ない", [], ["adj-i"]),
1992
- suffixInflection("めえ", "むい", [], ["adj-i"]),
1993
- suffixInflection("みい", "むい", [], ["adj-i"]),
1994
- suffixInflection("ちぇえ", "つい", [], ["adj-i"]),
1995
- suffixInflection("ちい", "つい", [], ["adj-i"]),
1996
- suffixInflection("せえ", "すい", [], ["adj-i"]),
1997
- suffixInflection("ええ", "いい", [], ["adj-i"]),
1998
- suffixInflection("ええ", "わい", [], ["adj-i"]),
1999
- suffixInflection("ええ", "よい", [], ["adj-i"]),
2000
- suffixInflection("いぇえ", "よい", [], ["adj-i"]),
2001
- suffixInflection("うぇえ", "わい", [], ["adj-i"]),
2002
- suffixInflection("けえ", "かい", [], ["adj-i"]),
2003
- suffixInflection("げえ", "がい", [], ["adj-i"]),
2004
- suffixInflection("げえ", "ごい", [], ["adj-i"]),
2005
- suffixInflection("せえ", "さい", [], ["adj-i"]),
2006
- suffixInflection("めえ", "まい", [], ["adj-i"]),
2007
- suffixInflection("ぜえ", "ずい", [], ["adj-i"]),
2008
- suffixInflection("っぜえ", "ずい", [], ["adj-i"]),
2009
- suffixInflection("れえ", "らい", [], ["adj-i"]),
2010
- suffixInflection("れえ", "らい", [], ["adj-i"]),
2011
- suffixInflection("ちぇえ", "ちゃい", [], ["adj-i"]),
2012
- suffixInflection("でえ", "どい", [], ["adj-i"]),
2013
- suffixInflection("れえ", "れい", [], ["adj-i"]),
2014
- suffixInflection("べえ", "ばい", [], ["adj-i"]),
2015
- suffixInflection("てえ", "たい", [], ["adj-i"]),
2016
- suffixInflection("ねぇ", "ない", [], ["adj-i"]),
2017
- suffixInflection("めぇ", "むい", [], ["adj-i"]),
2018
- suffixInflection("みぃ", "むい", [], ["adj-i"]),
2019
- suffixInflection("ちぃ", "つい", [], ["adj-i"]),
2020
- suffixInflection("せぇ", "すい", [], ["adj-i"]),
2021
- suffixInflection("けぇ", "かい", [], ["adj-i"]),
2022
- suffixInflection("げぇ", "がい", [], ["adj-i"]),
2023
- suffixInflection("げぇ", "ごい", [], ["adj-i"]),
2024
- suffixInflection("せぇ", "さい", [], ["adj-i"]),
2025
- suffixInflection("めぇ", "まい", [], ["adj-i"]),
2026
- suffixInflection("ぜぇ", "ずい", [], ["adj-i"]),
2027
- suffixInflection("っぜぇ", "ずい", [], ["adj-i"]),
2028
- suffixInflection("れぇ", "らい", [], ["adj-i"]),
2029
- suffixInflection("でぇ", "どい", [], ["adj-i"]),
2030
- suffixInflection("れぇ", "れい", [], ["adj-i"]),
2031
- suffixInflection("べぇ", "ばい", [], ["adj-i"]),
2032
- suffixInflection("てぇ", "たい", [], ["adj-i"])
2033
- ]
2034
- },
2035
- "n-slang": {
2036
- name: "n-slang",
2037
- i18n: [{
2038
- language: "ja",
2039
- name: "~んな"
2040
- }],
2041
- description: "Slang sound change of r-column syllables to n (when before an n-sound, usually の or な)",
2042
- rules: [
2043
- suffixInflection("んなさい", "りなさい", [], ["-なさい"]),
2044
- suffixInflection("らんない", "られない", ["adj-i"], ["adj-i"]),
2045
- suffixInflection("んない", "らない", ["adj-i"], ["adj-i"]),
2046
- suffixInflection("んなきゃ", "らなきゃ", [], ["-ゃ"]),
2047
- suffixInflection("んなきゃ", "れなきゃ", [], ["-ゃ"])
2048
- ]
2049
- },
2050
- "imperative negative slang": {
2051
- name: "imperative negative slang",
2052
- i18n: [{
2053
- language: "ja",
2054
- name: "~んな"
2055
- }],
2056
- rules: [suffixInflection("んな", "る", [], ["v"])]
2057
- },
2058
- "kansai-ben negative": {
2059
- name: "kansai-ben",
2060
- description: "Negative form of kansai-ben verbs",
2061
- i18n: [{
2062
- language: "ja",
2063
- name: "関西弁",
2064
- description: "~ない (関西弁)"
2065
- }],
2066
- rules: [
2067
- suffixInflection("へん", "ない", [], ["adj-i"]),
2068
- suffixInflection("ひん", "ない", [], ["adj-i"]),
2069
- suffixInflection("せえへん", "しない", [], ["adj-i"]),
2070
- suffixInflection("へんかった", "なかった", ["-た"], ["-た"]),
2071
- suffixInflection("ひんかった", "なかった", ["-た"], ["-た"]),
2072
- suffixInflection("うてへん", "ってない", [], ["adj-i"])
2073
- ]
2074
- },
2075
- "kansai-ben -て": {
2076
- name: "kansai-ben",
2077
- description: "-て form of kansai-ben verbs",
2078
- i18n: [{
2079
- language: "ja",
2080
- name: "関西弁",
2081
- description: "~て (関西弁)"
2082
- }],
2083
- rules: [
2084
- suffixInflection("うて", "って", ["-て"], ["-て"]),
2085
- suffixInflection("おうて", "あって", ["-て"], ["-て"]),
2086
- suffixInflection("こうて", "かって", ["-て"], ["-て"]),
2087
- suffixInflection("ごうて", "がって", ["-て"], ["-て"]),
2088
- suffixInflection("そうて", "さって", ["-て"], ["-て"]),
2089
- suffixInflection("ぞうて", "ざって", ["-て"], ["-て"]),
2090
- suffixInflection("とうて", "たって", ["-て"], ["-て"]),
2091
- suffixInflection("どうて", "だって", ["-て"], ["-て"]),
2092
- suffixInflection("のうて", "なって", ["-て"], ["-て"]),
2093
- suffixInflection("ほうて", "はって", ["-て"], ["-て"]),
2094
- suffixInflection("ぼうて", "ばって", ["-て"], ["-て"]),
2095
- suffixInflection("もうて", "まって", ["-て"], ["-て"]),
2096
- suffixInflection("ろうて", "らって", ["-て"], ["-て"]),
2097
- suffixInflection("ようて", "やって", ["-て"], ["-て"]),
2098
- suffixInflection("ゆうて", "いって", ["-て"], ["-て"])
2099
- ]
2100
- },
2101
- "kansai-ben -た": {
2102
- name: "kansai-ben",
2103
- description: "-た form of kansai-ben terms",
2104
- i18n: [{
2105
- language: "ja",
2106
- name: "関西弁",
2107
- description: "~た (関西弁)"
2108
- }],
2109
- rules: [
2110
- suffixInflection("うた", "った", ["-た"], ["-た"]),
2111
- suffixInflection("おうた", "あった", ["-た"], ["-た"]),
2112
- suffixInflection("こうた", "かった", ["-た"], ["-た"]),
2113
- suffixInflection("ごうた", "がった", ["-た"], ["-た"]),
2114
- suffixInflection("そうた", "さった", ["-た"], ["-た"]),
2115
- suffixInflection("ぞうた", "ざった", ["-た"], ["-た"]),
2116
- suffixInflection("とうた", "たった", ["-た"], ["-た"]),
2117
- suffixInflection("どうた", "だった", ["-た"], ["-た"]),
2118
- suffixInflection("のうた", "なった", ["-た"], ["-た"]),
2119
- suffixInflection("ほうた", "はった", ["-た"], ["-た"]),
2120
- suffixInflection("ぼうた", "ばった", ["-た"], ["-た"]),
2121
- suffixInflection("もうた", "まった", ["-た"], ["-た"]),
2122
- suffixInflection("ろうた", "らった", ["-た"], ["-た"]),
2123
- suffixInflection("ようた", "やった", ["-た"], ["-た"]),
2124
- suffixInflection("ゆうた", "いった", ["-た"], ["-た"])
2125
- ]
2126
- },
2127
- "kansai-ben -たら": {
2128
- name: "kansai-ben",
2129
- description: "-たら form of kansai-ben terms",
2130
- i18n: [{
2131
- language: "ja",
2132
- name: "関西弁",
2133
- description: "~たら (関西弁)"
2134
- }],
2135
- rules: [
2136
- suffixInflection("うたら", "ったら", [], []),
2137
- suffixInflection("おうたら", "あったら", [], []),
2138
- suffixInflection("こうたら", "かったら", [], []),
2139
- suffixInflection("ごうたら", "がったら", [], []),
2140
- suffixInflection("そうたら", "さったら", [], []),
2141
- suffixInflection("ぞうたら", "ざったら", [], []),
2142
- suffixInflection("とうたら", "たったら", [], []),
2143
- suffixInflection("どうたら", "だったら", [], []),
2144
- suffixInflection("のうたら", "なったら", [], []),
2145
- suffixInflection("ほうたら", "はったら", [], []),
2146
- suffixInflection("ぼうたら", "ばったら", [], []),
2147
- suffixInflection("もうたら", "まったら", [], []),
2148
- suffixInflection("ろうたら", "らったら", [], []),
2149
- suffixInflection("ようたら", "やったら", [], []),
2150
- suffixInflection("ゆうたら", "いったら", [], [])
2151
- ]
2152
- },
2153
- "kansai-ben -たり": {
2154
- name: "kansai-ben",
2155
- description: "-たり form of kansai-ben terms",
2156
- i18n: [{
2157
- language: "ja",
2158
- name: "関西弁",
2159
- description: "~たり (関西弁)"
2160
- }],
2161
- rules: [
2162
- suffixInflection("うたり", "ったり", [], []),
2163
- suffixInflection("おうたり", "あったり", [], []),
2164
- suffixInflection("こうたり", "かったり", [], []),
2165
- suffixInflection("ごうたり", "がったり", [], []),
2166
- suffixInflection("そうたり", "さったり", [], []),
2167
- suffixInflection("ぞうたり", "ざったり", [], []),
2168
- suffixInflection("とうたり", "たったり", [], []),
2169
- suffixInflection("どうたり", "だったり", [], []),
2170
- suffixInflection("のうたり", "なったり", [], []),
2171
- suffixInflection("ほうたり", "はったり", [], []),
2172
- suffixInflection("ぼうたり", "ばったり", [], []),
2173
- suffixInflection("もうたり", "まったり", [], []),
2174
- suffixInflection("ろうたり", "らったり", [], []),
2175
- suffixInflection("ようたり", "やったり", [], []),
2176
- suffixInflection("ゆうたり", "いったり", [], [])
2177
- ]
2178
- },
2179
- "kansai-ben -く": {
2180
- name: "kansai-ben",
2181
- description: "-く stem of kansai-ben adjectives",
2182
- i18n: [{
2183
- language: "ja",
2184
- name: "関西弁",
2185
- description: "連用形 (関西弁)"
2186
- }],
2187
- rules: [
2188
- suffixInflection("う", "く", [], ["-く"]),
2189
- suffixInflection("こう", "かく", [], ["-く"]),
2190
- suffixInflection("ごう", "がく", [], ["-く"]),
2191
- suffixInflection("そう", "さく", [], ["-く"]),
2192
- suffixInflection("とう", "たく", [], ["-く"]),
2193
- suffixInflection("のう", "なく", [], ["-く"]),
2194
- suffixInflection("ぼう", "ばく", [], ["-く"]),
2195
- suffixInflection("もう", "まく", [], ["-く"]),
2196
- suffixInflection("ろう", "らく", [], ["-く"]),
2197
- suffixInflection("よう", "よく", [], ["-く"]),
2198
- suffixInflection("しゅう", "しく", [], ["-く"])
2199
- ]
2200
- },
2201
- "kansai-ben adjective -て": {
2202
- name: "kansai-ben",
2203
- description: "-て form of kansai-ben adjectives",
2204
- i18n: [{
2205
- language: "ja",
2206
- name: "関西弁",
2207
- description: "~て (関西弁)"
2208
- }],
2209
- rules: [
2210
- suffixInflection("うて", "くて", ["-て"], ["-て"]),
2211
- suffixInflection("こうて", "かくて", ["-て"], ["-て"]),
2212
- suffixInflection("ごうて", "がくて", ["-て"], ["-て"]),
2213
- suffixInflection("そうて", "さくて", ["-て"], ["-て"]),
2214
- suffixInflection("とうて", "たくて", ["-て"], ["-て"]),
2215
- suffixInflection("のうて", "なくて", ["-て"], ["-て"]),
2216
- suffixInflection("ぼうて", "ばくて", ["-て"], ["-て"]),
2217
- suffixInflection("もうて", "まくて", ["-て"], ["-て"]),
2218
- suffixInflection("ろうて", "らくて", ["-て"], ["-て"]),
2219
- suffixInflection("ようて", "よくて", ["-て"], ["-て"]),
2220
- suffixInflection("しゅうて", "しくて", ["-て"], ["-て"])
2221
- ]
2222
- },
2223
- "kansai-ben adjective negative": {
2224
- name: "kansai-ben",
2225
- description: "Negative form of kansai-ben adjectives",
2226
- i18n: [{
2227
- language: "ja",
2228
- name: "関西弁",
2229
- description: "~ない (関西弁)"
2230
- }],
2231
- rules: [
2232
- suffixInflection("うない", "くない", ["adj-i"], ["adj-i"]),
2233
- suffixInflection("こうない", "かくない", ["adj-i"], ["adj-i"]),
2234
- suffixInflection("ごうない", "がくない", ["adj-i"], ["adj-i"]),
2235
- suffixInflection("そうない", "さくない", ["adj-i"], ["adj-i"]),
2236
- suffixInflection("とうない", "たくない", ["adj-i"], ["adj-i"]),
2237
- suffixInflection("のうない", "なくない", ["adj-i"], ["adj-i"]),
2238
- suffixInflection("ぼうない", "ばくない", ["adj-i"], ["adj-i"]),
2239
- suffixInflection("もうない", "まくない", ["adj-i"], ["adj-i"]),
2240
- suffixInflection("ろうない", "らくない", ["adj-i"], ["adj-i"]),
2241
- suffixInflection("ようない", "よくない", ["adj-i"], ["adj-i"]),
2242
- suffixInflection("しゅうない", "しくない", ["adj-i"], ["adj-i"])
2243
- ]
2244
- }
2245
- }
2246
- };
2247
-
2248
- //#endregion
2249
- //#region src/language/language-descriptors.ts
2250
- const capitalizationPreprocessors = {
2251
- decapitalize,
2252
- capitalizeFirstLetter
2253
- };
2254
- const languageDescriptors = [
2255
- {
2256
- iso: "bg",
2257
- iso639_3: "bul",
2258
- name: "Bulgarian",
2259
- exampleText: "чета",
2260
- textPreprocessors: capitalizationPreprocessors
2261
- },
2262
- {
2263
- iso: "cs",
2264
- iso639_3: "ces",
2265
- name: "Czech",
2266
- exampleText: "číst",
2267
- textPreprocessors: capitalizationPreprocessors
2268
- },
2269
- {
2270
- iso: "da",
2271
- iso639_3: "dan",
2272
- name: "Danish",
2273
- exampleText: "læse",
2274
- textPreprocessors: { ...capitalizationPreprocessors }
2275
- },
2276
- {
2277
- iso: "de",
2278
- iso639_3: "deu",
2279
- name: "German",
2280
- exampleText: "lesen",
2281
- textPreprocessors: { ...capitalizationPreprocessors }
2282
- },
2283
- {
2284
- iso: "el",
2285
- iso639_3: "ell",
2286
- name: "Greek",
2287
- exampleText: "διαβάζω",
2288
- textPreprocessors: { ...capitalizationPreprocessors }
2289
- },
2290
- {
2291
- iso: "en",
2292
- iso639_3: "eng",
2293
- name: "English",
2294
- exampleText: "read",
2295
- textPreprocessors: capitalizationPreprocessors
2296
- },
2297
- {
2298
- iso: "eo",
2299
- iso639_3: "epo",
2300
- name: "Esperanto",
2301
- exampleText: "legi",
2302
- textPreprocessors: capitalizationPreprocessors
2303
- },
2304
- {
2305
- iso: "es",
2306
- iso639_3: "spa",
2307
- name: "Spanish",
2308
- exampleText: "leer",
2309
- textPreprocessors: capitalizationPreprocessors
2310
- },
2311
- {
2312
- iso: "et",
2313
- iso639_3: "est",
2314
- name: "Estonian",
2315
- exampleText: "lugema",
2316
- textPreprocessors: capitalizationPreprocessors
2317
- },
2318
- {
2319
- iso: "fi",
2320
- iso639_3: "fin",
2321
- name: "Finnish",
2322
- exampleText: "lukea",
2323
- textPreprocessors: capitalizationPreprocessors
2324
- },
2325
- {
2326
- iso: "fr",
2327
- iso639_3: "fra",
2328
- name: "French",
2329
- exampleText: "lire",
2330
- textPreprocessors: { ...capitalizationPreprocessors }
2331
- },
2332
- {
2333
- iso: "ga",
2334
- iso639_3: "gle",
2335
- name: "Irish",
2336
- exampleText: "léigh",
2337
- textPreprocessors: capitalizationPreprocessors
2338
- },
2339
- {
2340
- iso: "grc",
2341
- iso639_3: "grc",
2342
- name: "Ancient Greek",
2343
- exampleText: "γράφω",
2344
- textPreprocessors: {
2345
- ...capitalizationPreprocessors,
2346
- removeAlphabeticDiacritics
2347
- }
2348
- },
2349
- {
2350
- iso: "he",
2351
- iso639_3: "heb",
2352
- name: "Hebrew",
2353
- exampleText: "קריאה"
2354
- },
2355
- {
2356
- iso: "hi",
2357
- iso639_3: "hin",
2358
- name: "Hindi",
2359
- exampleText: "पढ़ने के लिए"
2360
- },
2361
- {
2362
- iso: "hu",
2363
- iso639_3: "hun",
2364
- name: "Hungarian",
2365
- exampleText: "olvasni",
2366
- textPreprocessors: capitalizationPreprocessors
2367
- },
2368
- {
2369
- iso: "id",
2370
- iso639_3: "ind",
2371
- name: "Indonesian",
2372
- exampleText: "baca",
2373
- textPreprocessors: {
2374
- ...capitalizationPreprocessors,
2375
- removeAlphabeticDiacritics
2376
- }
2377
- },
2378
- {
2379
- iso: "it",
2380
- iso639_3: "ita",
2381
- name: "Italian",
2382
- exampleText: "leggere",
2383
- textPreprocessors: {
2384
- ...capitalizationPreprocessors,
2385
- removeAlphabeticDiacritics
2386
- }
2387
- },
2388
- {
2389
- iso: "la",
2390
- iso639_3: "lat",
2391
- name: "Latin",
2392
- exampleText: "legō",
2393
- textPreprocessors: {
2394
- ...capitalizationPreprocessors,
2395
- removeAlphabeticDiacritics
2396
- }
2397
- },
2398
- {
2399
- iso: "lo",
2400
- iso639_3: "lao",
2401
- name: "Lao",
2402
- exampleText: "ອ່ານ"
2403
- },
2404
- {
2405
- iso: "lv",
2406
- iso639_3: "lav",
2407
- name: "Latvian",
2408
- exampleText: "lasīt",
2409
- textPreprocessors: capitalizationPreprocessors
2410
- },
2411
- {
2412
- iso: "ja",
2413
- iso639_3: "jpn",
2414
- name: "Japanese",
2415
- exampleText: "読め",
2416
- textPreprocessors: {
2417
- convertHalfWidthCharacters,
2418
- alphabeticToHiragana,
2419
- alphanumericWidthVariants,
2420
- convertHiraganaToKatakana: convertHiraganaToKatakana$1,
2421
- collapseEmphaticSequences: collapseEmphaticSequences$1,
2422
- normalizeCombiningCharacters: normalizeCombiningCharacters$1,
2423
- normalizeCJKCompatibilityCharacters: normalizeCJKCompatibilityCharacters$1
2424
- },
2425
- languageTransforms: japaneseTransforms,
2426
- isTextLookupWorthy: isStringPartiallyJapanese
2427
- },
2428
- {
2429
- iso: "ka",
2430
- iso639_3: "kat",
2431
- name: "Georgian",
2432
- exampleText: "კითხვა"
2433
- },
2434
- {
2435
- iso: "kn",
2436
- iso639_3: "kan",
2437
- name: "Kannada",
2438
- exampleText: "ಓದು"
2439
- },
2440
- {
2441
- iso: "km",
2442
- iso639_3: "khm",
2443
- name: "Khmer",
2444
- exampleText: "អាន"
2445
- },
2446
- {
2447
- iso: "ko",
2448
- iso639_3: "kor",
2449
- name: "Korean",
2450
- exampleText: "읽어"
2451
- },
2452
- {
2453
- iso: "mn",
2454
- iso639_3: "mon",
2455
- name: "Mongolian",
2456
- exampleText: "унших",
2457
- textPreprocessors: capitalizationPreprocessors
2458
- },
2459
- {
2460
- iso: "mt",
2461
- iso639_3: "mlt",
2462
- name: "Maltese",
2463
- exampleText: "kiteb",
2464
- textPreprocessors: capitalizationPreprocessors
2465
- },
2466
- {
2467
- iso: "nl",
2468
- iso639_3: "nld",
2469
- name: "Dutch",
2470
- exampleText: "lezen",
2471
- textPreprocessors: capitalizationPreprocessors
2472
- },
2473
- {
2474
- iso: "no",
2475
- iso639_3: "nor",
2476
- name: "Norwegian",
2477
- exampleText: "lese",
2478
- textPreprocessors: { ...capitalizationPreprocessors }
2479
- },
2480
- {
2481
- iso: "pl",
2482
- iso639_3: "pol",
2483
- name: "Polish",
2484
- exampleText: "czytać",
2485
- textPreprocessors: capitalizationPreprocessors
2486
- },
2487
- {
2488
- iso: "pt",
2489
- iso639_3: "por",
2490
- name: "Portuguese",
2491
- exampleText: "ler",
2492
- textPreprocessors: capitalizationPreprocessors
2493
- },
2494
- {
2495
- iso: "ro",
2496
- iso639_3: "ron",
2497
- name: "Romanian",
2498
- exampleText: "citi",
2499
- textPreprocessors: {
2500
- ...capitalizationPreprocessors,
2501
- removeAlphabeticDiacritics
2502
- }
2503
- },
2504
- {
2505
- iso: "ru",
2506
- iso639_3: "rus",
2507
- name: "Russian",
2508
- exampleText: "читать",
2509
- textPreprocessors: { ...capitalizationPreprocessors }
2510
- },
2511
- {
2512
- iso: "sga",
2513
- iso639_3: "sga",
2514
- name: "Old Irish",
2515
- exampleText: "légaid",
2516
- textPreprocessors: {
2517
- ...capitalizationPreprocessors,
2518
- removeAlphabeticDiacritics
2519
- }
2520
- },
2521
- {
2522
- iso: "sh",
2523
- iso639_3: "hbs",
2524
- name: "Serbo-Croatian",
2525
- exampleText: "čìtati",
2526
- textPreprocessors: { ...capitalizationPreprocessors }
2527
- },
2528
- {
2529
- iso: "sq",
2530
- iso639_3: "sqi",
2531
- name: "Albanian",
2532
- exampleText: "ndihmoj",
2533
- textPreprocessors: capitalizationPreprocessors
2534
- },
2535
- {
2536
- iso: "sv",
2537
- iso639_3: "swe",
2538
- name: "Swedish",
2539
- exampleText: "läsa",
2540
- textPreprocessors: capitalizationPreprocessors
2541
- },
2542
- {
2543
- iso: "th",
2544
- iso639_3: "tha",
2545
- name: "Thai",
2546
- exampleText: "อ่าน"
2547
- },
2548
- {
2549
- iso: "tl",
2550
- iso639_3: "tgl",
2551
- name: "Tagalog",
2552
- exampleText: "basahin",
2553
- textPreprocessors: {
2554
- ...capitalizationPreprocessors,
2555
- removeAlphabeticDiacritics
2556
- }
2557
- },
2558
- {
2559
- iso: "tr",
2560
- iso639_3: "tur",
2561
- name: "Turkish",
2562
- exampleText: "okumak",
2563
- textPreprocessors: capitalizationPreprocessors
2564
- },
2565
- {
2566
- iso: "tok",
2567
- iso639_3: "tok",
2568
- name: "Toki Pona",
2569
- exampleText: "wile",
2570
- textPreprocessors: capitalizationPreprocessors
2571
- },
2572
- {
2573
- iso: "uk",
2574
- iso639_3: "ukr",
2575
- name: "Ukrainian",
2576
- exampleText: "читати",
2577
- textPreprocessors: capitalizationPreprocessors
2578
- },
2579
- {
2580
- iso: "vi",
2581
- iso639_3: "vie",
2582
- name: "Vietnamese",
2583
- exampleText: "đọc",
2584
- textPreprocessors: { ...capitalizationPreprocessors }
2585
- },
2586
- {
2587
- iso: "cy",
2588
- iso639_3: "cym",
2589
- name: "Welsh",
2590
- exampleText: "ddarllen",
2591
- textPreprocessors: capitalizationPreprocessors
2592
- },
2593
- {
2594
- iso: "yi",
2595
- iso639_3: "yid",
2596
- name: "Yiddish",
2597
- exampleText: "באַשאַפֿן"
2598
- },
2599
- {
2600
- iso: "yue",
2601
- iso639_3: "yue",
2602
- name: "Cantonese",
2603
- exampleText: "讀",
2604
- textPreprocessors: { normalizeRadicalCharacters }
2605
- },
2606
- {
2607
- iso: "zh",
2608
- iso639_3: "zho",
2609
- name: "Chinese",
2610
- exampleText: "读",
2611
- textPreprocessors: { normalizeRadicalCharacters }
2612
- }
2613
- ];
2614
- const languageDescriptorMap = new Map();
2615
- for (const languageDescriptor of languageDescriptors) languageDescriptorMap.set(languageDescriptor.iso, languageDescriptor);
2616
-
2617
- //#endregion
2618
- //#region src/language/languages.ts
2619
- function getLanguageSummaries() {
2620
- const results = [];
2621
- for (const { name, iso, iso639_3, exampleText } of languageDescriptorMap.values()) results.push({
2622
- name,
2623
- iso,
2624
- iso639_3,
2625
- exampleText
2626
- });
2627
- return results;
2628
- }
2629
- function getAllLanguageReadingNormalizers() {
2630
- const results = [];
2631
- for (const { iso, readingNormalizer } of languageDescriptorMap.values()) {
2632
- if (typeof readingNormalizer === "undefined") continue;
2633
- results.push({
2634
- iso,
2635
- readingNormalizer
2636
- });
2637
- }
2638
- return results;
2639
- }
2640
- function getAllLanguageTextProcessors() {
2641
- const results = [];
2642
- for (const { iso, textPreprocessors = {}, textPostprocessors = {} } of languageDescriptorMap.values()) {
2643
- const textPreprocessorsArray = [];
2644
- for (const [id, textPreprocessor] of Object.entries(textPreprocessors)) textPreprocessorsArray.push({
2645
- id,
2646
- textProcessor: textPreprocessor
2647
- });
2648
- const textPostprocessorsArray = [];
2649
- for (const [id, textPostprocessor] of Object.entries(textPostprocessors)) textPostprocessorsArray.push({
2650
- id,
2651
- textProcessor: textPostprocessor
2652
- });
2653
- results.push({
2654
- iso,
2655
- textPreprocessors: textPreprocessorsArray,
2656
- textPostprocessors: textPostprocessorsArray
2657
- });
2658
- }
2659
- return results;
2660
- }
2661
- function isTextLookupWorthy(text, language) {
2662
- const descriptor = languageDescriptorMap.get(language);
2663
- if (typeof descriptor === "undefined") return false;
2664
- return typeof descriptor.isTextLookupWorthy === "undefined" || descriptor.isTextLookupWorthy(text);
2665
- }
2666
- function getAllLanguageTransformDescriptors() {
2667
- const results = [];
2668
- for (const { iso, languageTransforms } of languageDescriptorMap.values()) if (languageTransforms) results.push({
2669
- iso,
2670
- languageTransforms
2671
- });
2672
- return results;
2673
- }
2674
-
2675
- //#endregion
2676
- //#region src/language/language-transformer.ts
2677
- var LanguageTransformer = class LanguageTransformer {
2678
- _nextFlagIndex;
2679
- _transforms;
2680
- _conditionTypeToConditionFlagsMap;
2681
- _partOfSpeechToConditionFlagsMap;
2682
- constructor() {
2683
- this._nextFlagIndex = 0;
2684
- this._transforms = [];
2685
- this._conditionTypeToConditionFlagsMap = new Map();
2686
- this._partOfSpeechToConditionFlagsMap = new Map();
2687
- }
2688
- clear() {
2689
- this._nextFlagIndex = 0;
2690
- this._transforms = [];
2691
- this._conditionTypeToConditionFlagsMap.clear();
2692
- this._partOfSpeechToConditionFlagsMap.clear();
2693
- }
2694
- addDescriptor(descriptor) {
2695
- const { conditions: conditions$1, transforms } = descriptor;
2696
- const conditionEntries = Object.entries(conditions$1);
2697
- const { conditionFlagsMap, nextFlagIndex } = this._getConditionFlagsMap(conditionEntries, this._nextFlagIndex);
2698
- const transforms2 = [];
2699
- for (const [transformId, transform] of Object.entries(transforms)) {
2700
- const { name, description, rules } = transform;
2701
- const rules2 = [];
2702
- for (let j = 0, jj = rules.length; j < jj; ++j) {
2703
- const { type, isInflected, deinflect, conditionsIn, conditionsOut } = rules[j];
2704
- const conditionFlagsIn = this._getConditionFlagsStrict(conditionFlagsMap, conditionsIn);
2705
- if (conditionFlagsIn === null) throw new Error(`Invalid conditionsIn for transform ${transformId}.rules[${j}]`);
2706
- const conditionFlagsOut = this._getConditionFlagsStrict(conditionFlagsMap, conditionsOut);
2707
- if (conditionFlagsOut === null) throw new Error(`Invalid conditionsOut for transform ${transformId}.rules[${j}]`);
2708
- rules2.push({
2709
- type,
2710
- isInflected,
2711
- deinflect,
2712
- conditionsIn: conditionFlagsIn,
2713
- conditionsOut: conditionFlagsOut
2714
- });
2715
- }
2716
- const isInflectedTests = rules.map((rule) => rule.isInflected);
2717
- const heuristic = new RegExp(isInflectedTests.map((regExp) => regExp.source).join("|"));
2718
- transforms2.push({
2719
- id: transformId,
2720
- name,
2721
- description,
2722
- rules: rules2,
2723
- heuristic
2724
- });
2725
- }
2726
- this._nextFlagIndex = nextFlagIndex;
2727
- for (const transform of transforms2) this._transforms.push(transform);
2728
- for (const [type, { isDictionaryForm }] of conditionEntries) {
2729
- const flags = conditionFlagsMap.get(type);
2730
- if (typeof flags === "undefined") continue;
2731
- this._conditionTypeToConditionFlagsMap.set(type, flags);
2732
- if (isDictionaryForm) this._partOfSpeechToConditionFlagsMap.set(type, flags);
2733
- }
2734
- }
2735
- getConditionFlagsFromPartsOfSpeech(partsOfSpeech) {
2736
- return this._getConditionFlags(this._partOfSpeechToConditionFlagsMap, partsOfSpeech);
2737
- }
2738
- getConditionFlagsFromConditionTypes(conditionTypes) {
2739
- return this._getConditionFlags(this._conditionTypeToConditionFlagsMap, conditionTypes);
2740
- }
2741
- getConditionFlagsFromConditionType(conditionType) {
2742
- return this._getConditionFlags(this._conditionTypeToConditionFlagsMap, [conditionType]);
2743
- }
2744
- transform(sourceText) {
2745
- const results = [LanguageTransformer.createTransformedText(sourceText, 0, [])];
2746
- for (let i = 0; i < results.length; ++i) {
2747
- const { text, conditions: conditions$1, trace } = results[i];
2748
- for (const transform of this._transforms) {
2749
- if (!transform.heuristic.test(text)) continue;
2750
- const { id, rules } = transform;
2751
- for (let j = 0, jj = rules.length; j < jj; ++j) {
2752
- const rule = rules[j];
2753
- if (!LanguageTransformer.conditionsMatch(conditions$1, rule.conditionsIn)) continue;
2754
- const { isInflected, deinflect } = rule;
2755
- if (!isInflected.test(text)) continue;
2756
- const isCycle = trace.some((frame) => frame.transform === id && frame.ruleIndex === j && frame.text === text);
2757
- if (isCycle) {
2758
- log.warn(new Error(`Cycle detected in transform[${id}] rule[${j}] for text: ${text}\nTrace: ${JSON.stringify(trace)}`));
2759
- continue;
2760
- }
2761
- results.push(LanguageTransformer.createTransformedText(deinflect(text), rule.conditionsOut, this._extendTrace(trace, {
2762
- transform: id,
2763
- ruleIndex: j,
2764
- text
2765
- })));
2766
- }
2767
- }
2768
- }
2769
- return results;
2770
- }
2771
- getUserFacingInflectionRules(inflectionRules) {
2772
- return inflectionRules.map((rule) => {
2773
- const fullRule = this._transforms.find((transform) => transform.id === rule);
2774
- if (typeof fullRule === "undefined") return { name: rule };
2775
- const { name, description } = fullRule;
2776
- return description ? {
2777
- name,
2778
- description
2779
- } : { name };
2780
- });
2781
- }
2782
- static createTransformedText(text, conditions$1, trace) {
2783
- return {
2784
- text,
2785
- conditions: conditions$1,
2786
- trace
2787
- };
2788
- }
2789
- static conditionsMatch(currentConditions, nextConditions) {
2790
- return currentConditions === 0 || (currentConditions & nextConditions) !== 0;
2791
- }
2792
- _getConditionFlagsMap(conditions$1, nextFlagIndex) {
2793
- const conditionFlagsMap = new Map();
2794
- let targets = conditions$1;
2795
- while (targets.length > 0) {
2796
- const nextTargets = [];
2797
- for (const target of targets) {
2798
- const [type, condition] = target;
2799
- const { subConditions } = condition;
2800
- let flags = 0;
2801
- if (typeof subConditions === "undefined") {
2802
- if (nextFlagIndex >= 32) throw new Error("Maximum number of conditions was exceeded");
2803
- flags = 1 << nextFlagIndex;
2804
- ++nextFlagIndex;
2805
- } else {
2806
- const multiFlags = this._getConditionFlagsStrict(conditionFlagsMap, subConditions);
2807
- if (multiFlags === null) {
2808
- nextTargets.push(target);
2809
- continue;
2810
- }
2811
- flags = multiFlags;
2812
- }
2813
- conditionFlagsMap.set(type, flags);
2814
- }
2815
- if (nextTargets.length === targets.length) throw new Error("Maximum number of conditions was exceeded");
2816
- targets = nextTargets;
2817
- }
2818
- return {
2819
- conditionFlagsMap,
2820
- nextFlagIndex
2821
- };
2822
- }
2823
- _getConditionFlagsStrict(conditionFlagsMap, conditionTypes) {
2824
- let flags = 0;
2825
- for (const conditionType of conditionTypes) {
2826
- const flags2 = conditionFlagsMap.get(conditionType);
2827
- if (typeof flags2 === "undefined") return null;
2828
- flags |= flags2;
2829
- }
2830
- return flags;
2831
- }
2832
- _getConditionFlags(conditionFlagsMap, conditionTypes) {
2833
- let flags = 0;
2834
- for (const conditionType of conditionTypes) {
2835
- let flags2 = conditionFlagsMap.get(conditionType);
2836
- if (typeof flags2 === "undefined") flags2 = 0;
2837
- flags |= flags2;
2838
- }
2839
- return flags;
2840
- }
2841
- _extendTrace(trace, newFrame) {
2842
- const newTrace = [newFrame];
2843
- for (const { transform, ruleIndex, text } of trace) newTrace.push({
2844
- transform,
2845
- ruleIndex,
2846
- text
2847
- });
2848
- return newTrace;
2849
- }
2850
- };
2851
-
2852
- //#endregion
2853
- //#region src/language/multi-language-transformer.ts
2854
- var MultiLanguageTransformer = class {
2855
- _languageTransformers;
2856
- constructor() {
2857
- this._languageTransformers = new Map();
2858
- }
2859
- prepare() {
2860
- const languagesWithTransforms = getAllLanguageTransformDescriptors();
2861
- for (const { languageTransforms: descriptor } of languagesWithTransforms) {
2862
- const languageTransformer = new LanguageTransformer();
2863
- languageTransformer.addDescriptor(descriptor);
2864
- this._languageTransformers.set(descriptor.language, languageTransformer);
2865
- }
2866
- }
2867
- getConditionFlagsFromPartsOfSpeech(language, partsOfSpeech) {
2868
- const languageTransformer = this._languageTransformers.get(language);
2869
- return typeof languageTransformer !== "undefined" ? languageTransformer.getConditionFlagsFromPartsOfSpeech(partsOfSpeech) : 0;
2870
- }
2871
- getConditionFlagsFromConditionTypes(language, conditionTypes) {
2872
- const languageTransformer = this._languageTransformers.get(language);
2873
- return typeof languageTransformer !== "undefined" ? languageTransformer.getConditionFlagsFromConditionTypes(conditionTypes) : 0;
2874
- }
2875
- getConditionFlagsFromConditionType(language, conditionType) {
2876
- const languageTransformer = this._languageTransformers.get(language);
2877
- return typeof languageTransformer !== "undefined" ? languageTransformer.getConditionFlagsFromConditionType(conditionType) : 0;
2878
- }
2879
- transform(language, sourceText) {
2880
- const languageTransformer = this._languageTransformers.get(language);
2881
- if (typeof languageTransformer === "undefined") return [LanguageTransformer.createTransformedText(sourceText, 0, [])];
2882
- return languageTransformer.transform(sourceText);
2883
- }
2884
- getUserFacingInflectionRules(language, inflectionRules) {
2885
- const languageTransformer = this._languageTransformers.get(language);
2886
- if (typeof languageTransformer === "undefined") return inflectionRules.map((rule) => ({ name: rule }));
2887
- return languageTransformer.getUserFacingInflectionRules(inflectionRules);
2888
- }
2889
- };
2890
-
2891
- //#endregion
2892
- export { HIRAGANA_TO_ROMAJI, LanguageTransformer, MultiLanguageTransformer, ROMAJI_TO_HIRAGANA, alphabeticToHiragana, alphanumericWidthVariants, collapseEmphaticSequences$1 as collapseEmphaticSequences, convertAlphabeticToKana, convertHalfWidthCharacters, convertHiraganaToKatakana$1 as convertHiraganaToKatakana, convertToHiragana, convertToKana, convertToKanaIME, convertToRomaji, getAllLanguageReadingNormalizers, getAllLanguageTextProcessors, getAllLanguageTransformDescriptors, getLanguageSummaries, isTextLookupWorthy, japaneseTransforms, languageDescriptorMap, normalizeCJKCompatibilityCharacters$1 as normalizeCJKCompatibilityCharacters, normalizeCombiningCharacters$1 as normalizeCombiningCharacters, prefixInflection, suffixInflection, wholeWordInflection };
2893
- //# sourceMappingURL=multi-language-transformer-BkwMTV2g.js.map