axyseo 2.0.0-alpha.0.0.20 → 2.0.0-alpha.0.0.4

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 (946) hide show
  1. package/.browserslistrc +1 -0
  2. package/.gitattributes +1 -0
  3. package/babel.config.js +3 -0
  4. package/build/index.js +0 -8
  5. package/build/index.js.map +1 -1
  6. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -1
  7. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -1
  8. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -1
  9. package/build/languageProcessing/languages/_default/Researcher.js +1 -1
  10. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -1
  11. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +1 -1
  12. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -1
  13. package/build/languageProcessing/languages/ar/Researcher.js +1 -1
  14. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -1
  15. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +1 -1
  16. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -1
  17. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +1 -1
  18. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -1
  19. package/build/languageProcessing/languages/ca/Researcher.js +1 -1
  20. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -1
  21. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +1 -1
  22. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -1
  23. package/build/languageProcessing/languages/cs/Researcher.js +1 -1
  24. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -1
  25. package/build/languageProcessing/languages/cs/helpers/getClauses.js +1 -1
  26. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -1
  27. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +1 -1
  28. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -1
  29. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +1 -1
  30. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -1
  31. package/build/languageProcessing/languages/cs/values/Clause.js +1 -1
  32. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -1
  33. package/build/languageProcessing/languages/de/Researcher.js +1 -1
  34. package/build/languageProcessing/languages/de/Researcher.js.map +1 -1
  35. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +1 -1
  36. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -1
  37. package/build/languageProcessing/languages/de/helpers/getClauses.js +1 -1
  38. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -1
  39. package/build/languageProcessing/languages/de/helpers/getStemmer.js +1 -1
  40. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -1
  41. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +1 -1
  42. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -1
  43. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +1 -1
  44. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -1
  45. package/build/languageProcessing/languages/de/values/Clause.js +1 -1
  46. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -1
  47. package/build/languageProcessing/languages/el/Researcher.js +1 -1
  48. package/build/languageProcessing/languages/el/Researcher.js.map +1 -1
  49. package/build/languageProcessing/languages/el/helpers/getClauses.js +1 -1
  50. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -1
  51. package/build/languageProcessing/languages/el/helpers/getStemmer.js +1 -1
  52. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -1
  53. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +1 -1
  54. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -1
  55. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +1 -1
  56. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -1
  57. package/build/languageProcessing/languages/el/values/Clause.js +1 -1
  58. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -1
  59. package/build/languageProcessing/languages/en/Researcher.js +1 -1
  60. package/build/languageProcessing/languages/en/Researcher.js.map +1 -1
  61. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +1 -1
  62. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -1
  63. package/build/languageProcessing/languages/en/helpers/getClauses.js +1 -1
  64. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -1
  65. package/build/languageProcessing/languages/en/helpers/getStemmer.js +1 -1
  66. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -1
  67. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +1 -1
  68. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -1
  69. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +1 -1
  70. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -1
  71. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +1 -1
  72. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -1
  73. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +1 -1
  74. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -1
  75. package/build/languageProcessing/languages/en/values/Clause.js +1 -1
  76. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -1
  77. package/build/languageProcessing/languages/es/Researcher.js +1 -1
  78. package/build/languageProcessing/languages/es/Researcher.js.map +1 -1
  79. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +1 -1
  80. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -1
  81. package/build/languageProcessing/languages/es/helpers/getClauses.js +1 -1
  82. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -1
  83. package/build/languageProcessing/languages/es/helpers/getStemmer.js +1 -1
  84. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -1
  85. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +3 -3
  86. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -1
  87. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +1 -1
  88. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -1
  89. package/build/languageProcessing/languages/es/helpers/internal/stem.js +1 -1
  90. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -1
  91. package/build/languageProcessing/languages/es/values/Clause.js +1 -1
  92. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -1
  93. package/build/languageProcessing/languages/fa/Researcher.js +1 -1
  94. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -1
  95. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +1 -1
  96. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -1
  97. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +1 -1
  98. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -1
  99. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +1 -1
  100. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -1
  101. package/build/languageProcessing/languages/fr/Researcher.js +1 -1
  102. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -1
  103. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +1 -1
  104. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -1
  105. package/build/languageProcessing/languages/fr/helpers/getClauses.js +1 -1
  106. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -1
  107. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +1 -1
  108. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -1
  109. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +1 -1
  110. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -1
  111. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +1 -1
  112. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -1
  113. package/build/languageProcessing/languages/fr/values/Clause.js +1 -1
  114. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -1
  115. package/build/languageProcessing/languages/he/Researcher.js +1 -1
  116. package/build/languageProcessing/languages/he/Researcher.js.map +1 -1
  117. package/build/languageProcessing/languages/he/helpers/getStemmer.js +1 -1
  118. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -1
  119. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +1 -1
  120. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -1
  121. package/build/languageProcessing/languages/hu/Researcher.js +1 -1
  122. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -1
  123. package/build/languageProcessing/languages/hu/helpers/getClauses.js +1 -1
  124. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -1
  125. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +1 -1
  126. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -1
  127. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +1 -1
  128. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -1
  129. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +1 -1
  130. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -1
  131. package/build/languageProcessing/languages/hu/values/Clause.js +1 -1
  132. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -1
  133. package/build/languageProcessing/languages/id/Researcher.js +1 -1
  134. package/build/languageProcessing/languages/id/Researcher.js.map +1 -1
  135. package/build/languageProcessing/languages/id/helpers/getStemmer.js +1 -1
  136. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -1
  137. package/build/languageProcessing/languages/id/helpers/internal/stem.js +1 -1
  138. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -1
  139. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +1 -1
  140. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -1
  141. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +1 -1
  142. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -1
  143. package/build/languageProcessing/languages/it/Researcher.js +1 -1
  144. package/build/languageProcessing/languages/it/Researcher.js.map +1 -1
  145. package/build/languageProcessing/languages/it/helpers/getClauses.js +1 -1
  146. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -1
  147. package/build/languageProcessing/languages/it/helpers/getStemmer.js +1 -1
  148. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -1
  149. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +1 -1
  150. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -1
  151. package/build/languageProcessing/languages/it/helpers/internal/stem.js +1 -1
  152. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -1
  153. package/build/languageProcessing/languages/it/values/Clause.js +1 -1
  154. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -1
  155. package/build/languageProcessing/languages/ja/Researcher.js +1 -1
  156. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -1
  157. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +1 -1
  158. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -1
  159. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +1 -1
  160. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -1
  161. package/build/languageProcessing/languages/ja/helpers/getWords.js +1 -1
  162. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -1
  163. package/build/languageProcessing/languages/nb/Researcher.js +1 -1
  164. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -1
  165. package/build/languageProcessing/languages/nb/helpers/getClauses.js +1 -1
  166. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -1
  167. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +1 -1
  168. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -1
  169. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +1 -1
  170. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -1
  171. package/build/languageProcessing/languages/nb/values/Clause.js +1 -1
  172. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -1
  173. package/build/languageProcessing/languages/nl/Researcher.js +1 -1
  174. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -1
  175. package/build/languageProcessing/languages/nl/helpers/getClauses.js +1 -1
  176. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -1
  177. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +1 -1
  178. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -1
  179. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +1 -1
  180. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -1
  181. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +1 -1
  182. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  183. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +1 -1
  184. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -1
  185. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +1 -1
  186. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -1
  187. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +1 -1
  188. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -1
  189. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +1 -1
  190. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -1
  191. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +1 -1
  192. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -1
  193. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +1 -1
  194. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -1
  195. package/build/languageProcessing/languages/nl/values/Clause.js +1 -1
  196. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -1
  197. package/build/languageProcessing/languages/pl/Researcher.js +1 -1
  198. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -1
  199. package/build/languageProcessing/languages/pl/helpers/getClauses.js +1 -1
  200. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -1
  201. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +1 -1
  202. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -1
  203. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +1 -1
  204. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -1
  205. package/build/languageProcessing/languages/pl/values/Clause.js +1 -1
  206. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -1
  207. package/build/languageProcessing/languages/pt/Researcher.js +1 -1
  208. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -1
  209. package/build/languageProcessing/languages/pt/helpers/getClauses.js +1 -1
  210. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -1
  211. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +1 -1
  212. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -1
  213. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +1 -1
  214. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -1
  215. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +1 -1
  216. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -1
  217. package/build/languageProcessing/languages/pt/values/Clause.js +1 -1
  218. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -1
  219. package/build/languageProcessing/languages/ru/Researcher.js +1 -1
  220. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -1
  221. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +1 -1
  222. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -1
  223. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +1 -1
  224. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -1
  225. package/build/languageProcessing/languages/sk/Researcher.js +1 -1
  226. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -1
  227. package/build/languageProcessing/languages/sk/helpers/getClauses.js +1 -1
  228. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -1
  229. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +1 -1
  230. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -1
  231. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +1 -1
  232. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -1
  233. package/build/languageProcessing/languages/sk/values/Clause.js +1 -1
  234. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -1
  235. package/build/languageProcessing/languages/sv/Researcher.js +1 -1
  236. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -1
  237. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +1 -1
  238. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -1
  239. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +1 -1
  240. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -1
  241. package/build/languageProcessing/languages/tr/Researcher.js +1 -1
  242. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -1
  243. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +1 -1
  244. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -1
  245. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +1 -1
  246. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -1
  247. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +1 -1
  248. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -1
  249. package/build/parsedPaper/assess/assessments/Assessment.js +2 -14
  250. package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -1
  251. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -1
  252. package/build/parsedPaper/build/tree/metadata/buildTree.js +1 -1
  253. package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -1
  254. package/build/scoring/assessments/assessment.js +2 -6
  255. package/build/scoring/assessments/assessment.js.map +1 -1
  256. package/build/scoring/assessments/index.js +5 -5
  257. package/build/scoring/assessments/index.js.map +1 -1
  258. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +1 -5
  259. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -1
  260. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +1 -5
  261. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -1
  262. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +1 -5
  263. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -1
  264. package/build/scoring/assessments/readability/TransitionWordsAssessment.js +1 -5
  265. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -1
  266. package/build/scoring/assessments/seo/ImageCountAssessment.js +1 -5
  267. package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -1
  268. package/build/scoring/assessments/seo/InternalLinksAssessment.js +1 -5
  269. package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -1
  270. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +1 -5
  271. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -1
  272. package/build/scoring/assessments/seo/KeyphraseAssessment.js +1 -5
  273. package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -1
  274. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +1 -5
  275. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -1
  276. package/build/scoring/assessments/seo/KeywordDensityAssessment.js +2 -6
  277. package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -1
  278. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +1 -5
  279. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -1
  280. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +1 -5
  281. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -1
  282. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +1 -5
  283. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -1
  284. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +3 -8
  285. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -1
  286. package/build/scoring/assessments/seo/OutboundLinksAssessment.js +1 -5
  287. package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -1
  288. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +3 -8
  289. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -1
  290. package/build/scoring/assessments/seo/SingleH1Assessment.js +1 -5
  291. package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -1
  292. package/build/scoring/assessments/seo/SingleTitleAssessment.js +1 -5
  293. package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -1
  294. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +1 -5
  295. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -1
  296. package/build/scoring/assessments/seo/TextImagesAssessment.js +1 -5
  297. package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -1
  298. package/build/scoring/assessments/seo/TextLengthAssessment.js +1 -5
  299. package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -1
  300. package/build/scoring/assessments/seo/UrlKeywordAssessment.js +1 -5
  301. package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -1
  302. package/build/scoring/assessments/seo/UrlLengthAssessment.js +1 -5
  303. package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -1
  304. package/build/scoring/assessors/assessor.js +7 -20
  305. package/build/scoring/assessors/assessor.js.map +1 -1
  306. package/build/scoring/assessors/avadaAssessor.js +5 -6
  307. package/build/scoring/assessors/avadaAssessor.js.map +1 -1
  308. package/build/scoring/assessors/contentAssessor.js +3 -3
  309. package/build/scoring/assessors/contentAssessor.js.map +1 -1
  310. package/build/scoring/assessors/seoAssessor.js +3 -3
  311. package/build/scoring/assessors/seoAssessor.js.map +1 -1
  312. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -1
  313. package/eslint.config.mjs +119 -0
  314. package/package.json +2 -13
  315. package/src/bundledPlugins/index.js +5 -0
  316. package/src/bundledPlugins/previouslyUsedKeywords.js +192 -0
  317. package/src/config/diacritics.js +106 -0
  318. package/src/config/getTransliterations.js +1447 -0
  319. package/src/config/transliterationsWPstyle.js +774 -0
  320. package/src/config/wordBoundaries.js +23 -0
  321. package/src/config/wordBoundariesWithoutPunctuation.js +9 -0
  322. package/src/const/analysis.js +41 -0
  323. package/src/errors/invalidType.js +14 -0
  324. package/src/errors/missingArgument.js +14 -0
  325. package/src/helpers/createMeasurementElement.js +40 -0
  326. package/src/helpers/domManipulation.js +65 -0
  327. package/src/helpers/errors.js +26 -0
  328. package/src/helpers/factory.js +219 -0
  329. package/src/helpers/formatNumber.js +12 -0
  330. package/src/helpers/formatString.js +33 -0
  331. package/src/helpers/getLanguagesWithWordComplexity.js +8 -0
  332. package/src/helpers/getLanguagesWithWordFormSupport.js +11 -0
  333. package/src/helpers/getWordComplexityConfig.js +20 -0
  334. package/src/helpers/getWordComplexityHelper.js +20 -0
  335. package/src/helpers/htmlEntities.js +41 -0
  336. package/src/helpers/includesAny.js +19 -0
  337. package/src/helpers/index.js +127 -0
  338. package/src/helpers/shortlinker/Shortlinker.js +75 -0
  339. package/src/helpers/shortlinker/index.js +1 -0
  340. package/src/helpers/shortlinker/singleton.js +68 -0
  341. package/src/helpers/types.js +34 -0
  342. package/src/index.js +60 -0
  343. package/src/languageProcessing/AbstractResearcher.js +366 -0
  344. package/src/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +125 -0
  345. package/src/languageProcessing/helpers/html/getFieldsToMark.js +29 -0
  346. package/src/languageProcessing/helpers/html/getSubheadingTexts.js +47 -0
  347. package/src/languageProcessing/helpers/html/getSubheadings.js +95 -0
  348. package/src/languageProcessing/helpers/html/html.js +176 -0
  349. package/src/languageProcessing/helpers/html/htmlParser.js +145 -0
  350. package/src/languageProcessing/helpers/html/matchParagraphs.js +62 -0
  351. package/src/languageProcessing/helpers/html/normalizeHTML.js +16 -0
  352. package/src/languageProcessing/helpers/image/getAltAttribute.js +20 -0
  353. package/src/languageProcessing/helpers/image/getImagesInTree.js +16 -0
  354. package/src/languageProcessing/helpers/image/imageInText.js +19 -0
  355. package/src/languageProcessing/helpers/index.js +12 -0
  356. package/src/languageProcessing/helpers/language/getLanguage.js +9 -0
  357. package/src/languageProcessing/helpers/link/checkNofollow.js +38 -0
  358. package/src/languageProcessing/helpers/link/getAnchorsFromText.js +32 -0
  359. package/src/languageProcessing/helpers/link/getLinkType.js +32 -0
  360. package/src/languageProcessing/helpers/match/findKeywordFormsInString.js +101 -0
  361. package/src/languageProcessing/helpers/match/isDoubleQuoted.js +13 -0
  362. package/src/languageProcessing/helpers/match/matchTextWithArray.js +36 -0
  363. package/src/languageProcessing/helpers/match/matchTextWithTransliteration.js +58 -0
  364. package/src/languageProcessing/helpers/match/matchTextWithWord.js +45 -0
  365. package/src/languageProcessing/helpers/match/matchWordFormsWithSentence.js +164 -0
  366. package/src/languageProcessing/helpers/match/processExactMatchRequest.js +20 -0
  367. package/src/languageProcessing/helpers/morphology/baseStemmer.js +11 -0
  368. package/src/languageProcessing/helpers/morphology/buildFormRule.js +19 -0
  369. package/src/languageProcessing/helpers/morphology/buildTopicStems.js +169 -0
  370. package/src/languageProcessing/helpers/morphology/createRulesFromArrays.js +45 -0
  371. package/src/languageProcessing/helpers/morphology/exceptionListHelpers.js +65 -0
  372. package/src/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +24 -0
  373. package/src/languageProcessing/helpers/morphology/flattenSortLength.js +14 -0
  374. package/src/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +39 -0
  375. package/src/languageProcessing/helpers/morphology/regexHelpers.js +44 -0
  376. package/src/languageProcessing/helpers/morphology/stemHelpers.js +38 -0
  377. package/src/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +31 -0
  378. package/src/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +36 -0
  379. package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +113 -0
  380. package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +45 -0
  381. package/src/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +231 -0
  382. package/src/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +20 -0
  383. package/src/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +23 -0
  384. package/src/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +40 -0
  385. package/src/languageProcessing/helpers/prominentWords/determineProminentWords.js +238 -0
  386. package/src/languageProcessing/helpers/regex/createRegexFromArray.js +35 -0
  387. package/src/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +34 -0
  388. package/src/languageProcessing/helpers/regex/createWordRegex.js +30 -0
  389. package/src/languageProcessing/helpers/regex/matchStringWithRegex.js +19 -0
  390. package/src/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +14 -0
  391. package/src/languageProcessing/helpers/sanitize/doubleQuotes.js +12 -0
  392. package/src/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +131 -0
  393. package/src/languageProcessing/helpers/sanitize/mergeListItems.js +24 -0
  394. package/src/languageProcessing/helpers/sanitize/parseSynonyms.js +20 -0
  395. package/src/languageProcessing/helpers/sanitize/quotes.js +46 -0
  396. package/src/languageProcessing/helpers/sanitize/removeEmailAddresses.js +12 -0
  397. package/src/languageProcessing/helpers/sanitize/removePunctuation.js +64 -0
  398. package/src/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +18 -0
  399. package/src/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +13 -0
  400. package/src/languageProcessing/helpers/sanitize/removeURLs.js +13 -0
  401. package/src/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +11 -0
  402. package/src/languageProcessing/helpers/sanitize/sanitizeString.js +18 -0
  403. package/src/languageProcessing/helpers/sanitize/stripHTMLTags.js +57 -0
  404. package/src/languageProcessing/helpers/sanitize/stripNonTextTags.js +15 -0
  405. package/src/languageProcessing/helpers/sanitize/stripNumbers.js +21 -0
  406. package/src/languageProcessing/helpers/sanitize/stripSpaces.js +23 -0
  407. package/src/languageProcessing/helpers/sanitize/stripWordBoundaries.js +65 -0
  408. package/src/languageProcessing/helpers/sanitize/unifyWhitespace.js +61 -0
  409. package/src/languageProcessing/helpers/sentence/SentenceTokenizer.js +640 -0
  410. package/src/languageProcessing/helpers/sentence/countSentences.js +20 -0
  411. package/src/languageProcessing/helpers/sentence/getSentences.js +65 -0
  412. package/src/languageProcessing/helpers/sentence/getSentencesFromTree.js +55 -0
  413. package/src/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +28 -0
  414. package/src/languageProcessing/helpers/sentence/sentencesLength.js +31 -0
  415. package/src/languageProcessing/helpers/syllables/DeviationFragment.js +112 -0
  416. package/src/languageProcessing/helpers/syllables/countSyllables.js +182 -0
  417. package/src/languageProcessing/helpers/syllables/syllableCountIterator.js +56 -0
  418. package/src/languageProcessing/helpers/syllables/syllableCountStep.js +68 -0
  419. package/src/languageProcessing/helpers/transform/transformWordsWithHyphens.js +17 -0
  420. package/src/languageProcessing/helpers/transliterate/replaceDiacritics.js +22 -0
  421. package/src/languageProcessing/helpers/transliterate/specialCharacterMappings.js +214 -0
  422. package/src/languageProcessing/helpers/transliterate/transliterate.js +20 -0
  423. package/src/languageProcessing/helpers/transliterate/transliterateWPstyle.js +21 -0
  424. package/src/languageProcessing/helpers/url/parseSlug.js +10 -0
  425. package/src/languageProcessing/helpers/url/url.js +172 -0
  426. package/src/languageProcessing/helpers/word/addWordboundary.js +37 -0
  427. package/src/languageProcessing/helpers/word/areWordsInSentence.js +16 -0
  428. package/src/languageProcessing/helpers/word/countMetaDescriptionLength.js +18 -0
  429. package/src/languageProcessing/helpers/word/countWords.js +14 -0
  430. package/src/languageProcessing/helpers/word/createPunctuationTokens.js +42 -0
  431. package/src/languageProcessing/helpers/word/filterWordsFromArray.js +15 -0
  432. package/src/languageProcessing/helpers/word/followsIndex.js +25 -0
  433. package/src/languageProcessing/helpers/word/getAllWordsFromTree.js +23 -0
  434. package/src/languageProcessing/helpers/word/getWords.js +43 -0
  435. package/src/languageProcessing/helpers/word/includesIndex.js +30 -0
  436. package/src/languageProcessing/helpers/word/indices.js +146 -0
  437. package/src/languageProcessing/helpers/word/markWordsInSentences.js +173 -0
  438. package/src/languageProcessing/helpers/word/matchWordInSentence.js +61 -0
  439. package/src/languageProcessing/helpers/word/splitIntoTokens.js +46 -0
  440. package/src/languageProcessing/index.js +91 -0
  441. package/src/languageProcessing/languages/_default/Researcher.js +34 -0
  442. package/src/languageProcessing/languages/_default/helpers/getStemmer.js +11 -0
  443. package/src/languageProcessing/languages/ar/Researcher.js +46 -0
  444. package/src/languageProcessing/languages/ar/config/firstWordExceptions.js +14 -0
  445. package/src/languageProcessing/languages/ar/config/functionWords.js +329 -0
  446. package/src/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +570 -0
  447. package/src/languageProcessing/languages/ar/config/prefixedFunctionWords.js +5 -0
  448. package/src/languageProcessing/languages/ar/config/transitionWords.js +19 -0
  449. package/src/languageProcessing/languages/ar/config/twoPartTransitionWords.js +7 -0
  450. package/src/languageProcessing/languages/ar/helpers/createBasicWordForms.js +32 -0
  451. package/src/languageProcessing/languages/ar/helpers/getStemmer.js +22 -0
  452. package/src/languageProcessing/languages/ar/helpers/internal/stem.js +632 -0
  453. package/src/languageProcessing/languages/ar/helpers/isPassiveSentence.js +33 -0
  454. package/src/languageProcessing/languages/ca/Researcher.js +43 -0
  455. package/src/languageProcessing/languages/ca/config/sentenceLength.js +3 -0
  456. package/src/languageProcessing/languages/ca/config/transitionWords.js +31 -0
  457. package/src/languageProcessing/languages/ca/config/twoPartTransitionWords.js +7 -0
  458. package/src/languageProcessing/languages/ca/helpers/getStemmer.js +11 -0
  459. package/src/languageProcessing/languages/cs/Researcher.js +44 -0
  460. package/src/languageProcessing/languages/cs/config/firstWordExceptions.js +15 -0
  461. package/src/languageProcessing/languages/cs/config/functionWords.js +121 -0
  462. package/src/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +38 -0
  463. package/src/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +54 -0
  464. package/src/languageProcessing/languages/cs/config/stopWords.js +42 -0
  465. package/src/languageProcessing/languages/cs/config/transitionWords.js +26 -0
  466. package/src/languageProcessing/languages/cs/config/twoPartTransitionWords.js +8 -0
  467. package/src/languageProcessing/languages/cs/helpers/getClauses.js +26 -0
  468. package/src/languageProcessing/languages/cs/helpers/getStemmer.js +22 -0
  469. package/src/languageProcessing/languages/cs/helpers/internal/getParticiples.js +16 -0
  470. package/src/languageProcessing/languages/cs/helpers/internal/stem.js +499 -0
  471. package/src/languageProcessing/languages/cs/values/Clause.js +34 -0
  472. package/src/languageProcessing/languages/de/Researcher.js +52 -0
  473. package/src/languageProcessing/languages/de/config/firstWordExceptions.js +17 -0
  474. package/src/languageProcessing/languages/de/config/functionWords.js +303 -0
  475. package/src/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +2231 -0
  476. package/src/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +96 -0
  477. package/src/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +368 -0
  478. package/src/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +72 -0
  479. package/src/languageProcessing/languages/de/config/keyphraseLength.js +11 -0
  480. package/src/languageProcessing/languages/de/config/stopWords.js +67 -0
  481. package/src/languageProcessing/languages/de/config/syllables.json +460 -0
  482. package/src/languageProcessing/languages/de/config/transitionWords.js +31 -0
  483. package/src/languageProcessing/languages/de/config/twoPartTransitionWords.js +12 -0
  484. package/src/languageProcessing/languages/de/config/wordComplexity.js +4 -0
  485. package/src/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +18 -0
  486. package/src/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +40 -0
  487. package/src/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +15 -0
  488. package/src/languageProcessing/languages/de/helpers/getClauses.js +25 -0
  489. package/src/languageProcessing/languages/de/helpers/getStemmer.js +22 -0
  490. package/src/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +31 -0
  491. package/src/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +128 -0
  492. package/src/languageProcessing/languages/de/helpers/internal/determineStem.js +128 -0
  493. package/src/languageProcessing/languages/de/helpers/internal/getParticiples.js +40 -0
  494. package/src/languageProcessing/languages/de/helpers/internal/stem.js +215 -0
  495. package/src/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +28 -0
  496. package/src/languageProcessing/languages/de/values/Clause.js +85 -0
  497. package/src/languageProcessing/languages/el/Researcher.js +46 -0
  498. package/src/languageProcessing/languages/el/config/firstWordExceptions.js +47 -0
  499. package/src/languageProcessing/languages/el/config/functionWords.js +116 -0
  500. package/src/languageProcessing/languages/el/config/internal/auxiliaries.js +19 -0
  501. package/src/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +87 -0
  502. package/src/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +138 -0
  503. package/src/languageProcessing/languages/el/config/stopWords.js +854 -0
  504. package/src/languageProcessing/languages/el/config/transitionWords.js +26 -0
  505. package/src/languageProcessing/languages/el/config/twoPartTransitionWords.js +10 -0
  506. package/src/languageProcessing/languages/el/helpers/getClauses.js +25 -0
  507. package/src/languageProcessing/languages/el/helpers/getStemmer.js +21 -0
  508. package/src/languageProcessing/languages/el/helpers/internal/getParticiples.js +20 -0
  509. package/src/languageProcessing/languages/el/helpers/internal/stem.js +368 -0
  510. package/src/languageProcessing/languages/el/helpers/isPassiveSentence.js +38 -0
  511. package/src/languageProcessing/languages/el/values/Clause.js +37 -0
  512. package/src/languageProcessing/languages/en/Researcher.js +46 -0
  513. package/src/languageProcessing/languages/en/config/abbreviations.js +55 -0
  514. package/src/languageProcessing/languages/en/config/firstWordExceptions.js +14 -0
  515. package/src/languageProcessing/languages/en/config/functionWords.js +186 -0
  516. package/src/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +44 -0
  517. package/src/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +354 -0
  518. package/src/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +3047 -0
  519. package/src/languageProcessing/languages/en/config/regularParticiplesRegex.js +5 -0
  520. package/src/languageProcessing/languages/en/config/stopWords.js +52 -0
  521. package/src/languageProcessing/languages/en/config/syllables.json +86 -0
  522. package/src/languageProcessing/languages/en/config/transitionWords.js +48 -0
  523. package/src/languageProcessing/languages/en/config/twoPartTransitionWords.js +7 -0
  524. package/src/languageProcessing/languages/en/config/wordComplexity.js +5 -0
  525. package/src/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +18 -0
  526. package/src/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +43 -0
  527. package/src/languageProcessing/languages/en/helpers/getClauses.js +49 -0
  528. package/src/languageProcessing/languages/en/helpers/getStemmer.js +22 -0
  529. package/src/languageProcessing/languages/en/helpers/internal/determineStem.js +178 -0
  530. package/src/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +162 -0
  531. package/src/languageProcessing/languages/en/helpers/internal/getParticiples.js +25 -0
  532. package/src/languageProcessing/languages/en/helpers/internal/getVerbStem.js +237 -0
  533. package/src/languageProcessing/languages/en/values/Clause.js +68 -0
  534. package/src/languageProcessing/languages/es/Researcher.js +48 -0
  535. package/src/languageProcessing/languages/es/config/firstWordExceptions.js +16 -0
  536. package/src/languageProcessing/languages/es/config/functionWords.js +321 -0
  537. package/src/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +60 -0
  538. package/src/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +7327 -0
  539. package/src/languageProcessing/languages/es/config/sentenceLength.js +3 -0
  540. package/src/languageProcessing/languages/es/config/stopWords.js +33 -0
  541. package/src/languageProcessing/languages/es/config/syllables.json +176 -0
  542. package/src/languageProcessing/languages/es/config/transitionWords.js +40 -0
  543. package/src/languageProcessing/languages/es/config/twoPartTransitionWords.js +10 -0
  544. package/src/languageProcessing/languages/es/config/wordComplexity.js +4 -0
  545. package/src/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +18 -0
  546. package/src/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +56 -0
  547. package/src/languageProcessing/languages/es/helpers/getClauses.js +29 -0
  548. package/src/languageProcessing/languages/es/helpers/getStemmer.js +22 -0
  549. package/src/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +41 -0
  550. package/src/languageProcessing/languages/es/helpers/internal/getParticiples.js +35 -0
  551. package/src/languageProcessing/languages/es/helpers/internal/stem.js +793 -0
  552. package/src/languageProcessing/languages/es/values/Clause.js +47 -0
  553. package/src/languageProcessing/languages/fa/Researcher.js +47 -0
  554. package/src/languageProcessing/languages/fa/config/firstWordExceptions.js +12 -0
  555. package/src/languageProcessing/languages/fa/config/functionWords.js +122 -0
  556. package/src/languageProcessing/languages/fa/config/internal/participles.js +1429 -0
  557. package/src/languageProcessing/languages/fa/config/sentenceLength.js +3 -0
  558. package/src/languageProcessing/languages/fa/config/transitionWords.js +20 -0
  559. package/src/languageProcessing/languages/fa/config/twoPartTransitionWords.js +9 -0
  560. package/src/languageProcessing/languages/fa/helpers/createBasicWordForms.js +97 -0
  561. package/src/languageProcessing/languages/fa/helpers/getStemmer.js +13 -0
  562. package/src/languageProcessing/languages/fa/helpers/isPassiveSentence.js +14 -0
  563. package/src/languageProcessing/languages/fr/Researcher.js +46 -0
  564. package/src/languageProcessing/languages/fr/config/firstWordExceptions.js +16 -0
  565. package/src/languageProcessing/languages/fr/config/functionWords.js +281 -0
  566. package/src/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +1510 -0
  567. package/src/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +108 -0
  568. package/src/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +565 -0
  569. package/src/languageProcessing/languages/fr/config/stopWords.js +119 -0
  570. package/src/languageProcessing/languages/fr/config/syllables.json +1426 -0
  571. package/src/languageProcessing/languages/fr/config/transitionWords.js +59 -0
  572. package/src/languageProcessing/languages/fr/config/twoPartTransitionWords.js +15 -0
  573. package/src/languageProcessing/languages/fr/config/wordComplexity.js +4 -0
  574. package/src/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +18 -0
  575. package/src/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +67 -0
  576. package/src/languageProcessing/languages/fr/helpers/getClauses.js +34 -0
  577. package/src/languageProcessing/languages/fr/helpers/getStemmer.js +22 -0
  578. package/src/languageProcessing/languages/fr/helpers/internal/getParticiples.js +72 -0
  579. package/src/languageProcessing/languages/fr/helpers/internal/stem.js +633 -0
  580. package/src/languageProcessing/languages/fr/values/Clause.js +96 -0
  581. package/src/languageProcessing/languages/he/Researcher.js +50 -0
  582. package/src/languageProcessing/languages/he/config/firstWordExceptions.js +13 -0
  583. package/src/languageProcessing/languages/he/config/functionWords.js +564 -0
  584. package/src/languageProcessing/languages/he/config/internal/regularRootsHufal.js +186 -0
  585. package/src/languageProcessing/languages/he/config/internal/regularRootsNifal.js +195 -0
  586. package/src/languageProcessing/languages/he/config/internal/regularRootsPual.js +168 -0
  587. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +188 -0
  588. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +197 -0
  589. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +170 -0
  590. package/src/languageProcessing/languages/he/config/prefixedFunctionWords.js +2 -0
  591. package/src/languageProcessing/languages/he/config/sentenceLength.js +3 -0
  592. package/src/languageProcessing/languages/he/config/transitionWords.js +28 -0
  593. package/src/languageProcessing/languages/he/config/twoPartTransitionWords.js +8 -0
  594. package/src/languageProcessing/languages/he/helpers/createBasicWordForms.js +33 -0
  595. package/src/languageProcessing/languages/he/helpers/getStemmer.js +22 -0
  596. package/src/languageProcessing/languages/he/helpers/internal/stem.js +52 -0
  597. package/src/languageProcessing/languages/he/helpers/isPassiveSentence.js +96 -0
  598. package/src/languageProcessing/languages/he/helpers/stem.js +52 -0
  599. package/src/languageProcessing/languages/hu/Researcher.js +48 -0
  600. package/src/languageProcessing/languages/hu/config/firstWordExceptions.js +31 -0
  601. package/src/languageProcessing/languages/hu/config/functionWords.js +284 -0
  602. package/src/languageProcessing/languages/hu/config/internal/auxiliaries.js +97 -0
  603. package/src/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +125 -0
  604. package/src/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +265 -0
  605. package/src/languageProcessing/languages/hu/config/internal/odikVerbs.js +273 -0
  606. package/src/languageProcessing/languages/hu/config/internal/participles.js +412 -0
  607. package/src/languageProcessing/languages/hu/config/stopWords.js +213 -0
  608. package/src/languageProcessing/languages/hu/config/transitionWords.js +42 -0
  609. package/src/languageProcessing/languages/hu/config/twoPartTransitionWords.js +34 -0
  610. package/src/languageProcessing/languages/hu/helpers/getClauses.js +25 -0
  611. package/src/languageProcessing/languages/hu/helpers/getStemmer.js +22 -0
  612. package/src/languageProcessing/languages/hu/helpers/internal/getParticiples.js +21 -0
  613. package/src/languageProcessing/languages/hu/helpers/internal/stem.js +389 -0
  614. package/src/languageProcessing/languages/hu/helpers/isPassiveSentence.js +54 -0
  615. package/src/languageProcessing/languages/hu/values/Clause.js +41 -0
  616. package/src/languageProcessing/languages/id/Researcher.js +46 -0
  617. package/src/languageProcessing/languages/id/config/firstWordExceptions.js +13 -0
  618. package/src/languageProcessing/languages/id/config/functionWords.js +202 -0
  619. package/src/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +215 -0
  620. package/src/languageProcessing/languages/id/config/transitionWords.js +62 -0
  621. package/src/languageProcessing/languages/id/config/twoPartTransitionWords.js +13 -0
  622. package/src/languageProcessing/languages/id/helpers/getStemmer.js +22 -0
  623. package/src/languageProcessing/languages/id/helpers/internal/stem.js +462 -0
  624. package/src/languageProcessing/languages/id/helpers/internal/stemHelpers.js +78 -0
  625. package/src/languageProcessing/languages/id/helpers/isPassiveSentence.js +39 -0
  626. package/src/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +47 -0
  627. package/src/languageProcessing/languages/it/Researcher.js +48 -0
  628. package/src/languageProcessing/languages/it/config/firstWordExceptions.js +17 -0
  629. package/src/languageProcessing/languages/it/config/functionWords.js +277 -0
  630. package/src/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +98 -0
  631. package/src/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +7197 -0
  632. package/src/languageProcessing/languages/it/config/sentenceLength.js +3 -0
  633. package/src/languageProcessing/languages/it/config/stopWords.js +57 -0
  634. package/src/languageProcessing/languages/it/config/syllables.json +573 -0
  635. package/src/languageProcessing/languages/it/config/transitionWords.js +104 -0
  636. package/src/languageProcessing/languages/it/config/twoPartTransitionWords.js +9 -0
  637. package/src/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +15 -0
  638. package/src/languageProcessing/languages/it/helpers/getClauses.js +32 -0
  639. package/src/languageProcessing/languages/it/helpers/getStemmer.js +22 -0
  640. package/src/languageProcessing/languages/it/helpers/internal/getParticiples.js +34 -0
  641. package/src/languageProcessing/languages/it/helpers/internal/stem.js +436 -0
  642. package/src/languageProcessing/languages/it/values/Clause.js +47 -0
  643. package/src/languageProcessing/languages/ja/Researcher.js +86 -0
  644. package/src/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +4 -0
  645. package/src/languageProcessing/languages/ja/config/firstWordExceptions.js +8 -0
  646. package/src/languageProcessing/languages/ja/config/functionWords.js +563 -0
  647. package/src/languageProcessing/languages/ja/config/keyphraseLength.js +16 -0
  648. package/src/languageProcessing/languages/ja/config/metaDescriptionLength.js +4 -0
  649. package/src/languageProcessing/languages/ja/config/paragraphLength.js +10 -0
  650. package/src/languageProcessing/languages/ja/config/sentenceLength.js +4 -0
  651. package/src/languageProcessing/languages/ja/config/subheadingsTooLong.js +18 -0
  652. package/src/languageProcessing/languages/ja/config/textLength.js +47 -0
  653. package/src/languageProcessing/languages/ja/config/topicLength.js +5 -0
  654. package/src/languageProcessing/languages/ja/config/transitionWords.js +354 -0
  655. package/src/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +98 -0
  656. package/src/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +19 -0
  657. package/src/languageProcessing/languages/ja/customResearches/getWordForms.js +50 -0
  658. package/src/languageProcessing/languages/ja/customResearches/textLength.js +24 -0
  659. package/src/languageProcessing/languages/ja/helpers/countCharacters.js +19 -0
  660. package/src/languageProcessing/languages/ja/helpers/customGetStemmer.js +21 -0
  661. package/src/languageProcessing/languages/ja/helpers/getContentWords.js +21 -0
  662. package/src/languageProcessing/languages/ja/helpers/getWords.js +31 -0
  663. package/src/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +102 -0
  664. package/src/languageProcessing/languages/ja/helpers/internal/createWordForms.js +68 -0
  665. package/src/languageProcessing/languages/ja/helpers/internal/determineStem.js +17 -0
  666. package/src/languageProcessing/languages/ja/helpers/matchTextWithWord.js +53 -0
  667. package/src/languageProcessing/languages/ja/helpers/matchTransitionWords.js +25 -0
  668. package/src/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +28 -0
  669. package/src/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +20 -0
  670. package/src/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +13 -0
  671. package/src/languageProcessing/languages/nb/Researcher.js +45 -0
  672. package/src/languageProcessing/languages/nb/config/firstWordExceptions.js +12 -0
  673. package/src/languageProcessing/languages/nb/config/functionWords.js +106 -0
  674. package/src/languageProcessing/languages/nb/config/internal/participles.js +3127 -0
  675. package/src/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +15 -0
  676. package/src/languageProcessing/languages/nb/config/stopWords.js +39 -0
  677. package/src/languageProcessing/languages/nb/config/transitionWords.js +21 -0
  678. package/src/languageProcessing/languages/nb/config/twoPartTransitionWords.js +10 -0
  679. package/src/languageProcessing/languages/nb/helpers/getClauses.js +28 -0
  680. package/src/languageProcessing/languages/nb/helpers/getStemmer.js +22 -0
  681. package/src/languageProcessing/languages/nb/helpers/internal/getParticiples.js +24 -0
  682. package/src/languageProcessing/languages/nb/helpers/internal/stem.js +133 -0
  683. package/src/languageProcessing/languages/nb/values/Clause.js +43 -0
  684. package/src/languageProcessing/languages/nl/Researcher.js +48 -0
  685. package/src/languageProcessing/languages/nl/config/firstWordExceptions.js +15 -0
  686. package/src/languageProcessing/languages/nl/config/functionWords.js +233 -0
  687. package/src/languageProcessing/languages/nl/config/internal/nonParticiples.js +2515 -0
  688. package/src/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +13 -0
  689. package/src/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +474 -0
  690. package/src/languageProcessing/languages/nl/config/keyphraseLength.js +10 -0
  691. package/src/languageProcessing/languages/nl/config/stopWords.js +35 -0
  692. package/src/languageProcessing/languages/nl/config/syllables.json +343 -0
  693. package/src/languageProcessing/languages/nl/config/transitionWords.js +22 -0
  694. package/src/languageProcessing/languages/nl/config/twoPartTransitionWords.js +8 -0
  695. package/src/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +15 -0
  696. package/src/languageProcessing/languages/nl/helpers/getClauses.js +25 -0
  697. package/src/languageProcessing/languages/nl/helpers/getStemmer.js +22 -0
  698. package/src/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +128 -0
  699. package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +324 -0
  700. package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +164 -0
  701. package/src/languageProcessing/languages/nl/helpers/internal/determineStem.js +133 -0
  702. package/src/languageProcessing/languages/nl/helpers/internal/getParticiples.js +25 -0
  703. package/src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +183 -0
  704. package/src/languageProcessing/languages/nl/helpers/internal/stem.js +146 -0
  705. package/src/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +109 -0
  706. package/src/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +65 -0
  707. package/src/languageProcessing/languages/nl/values/Clause.js +62 -0
  708. package/src/languageProcessing/languages/pl/Researcher.js +47 -0
  709. package/src/languageProcessing/languages/pl/config/firstWordExceptions.js +12 -0
  710. package/src/languageProcessing/languages/pl/config/functionWords.js +421 -0
  711. package/src/languageProcessing/languages/pl/config/internal/auxiliaries.js +85 -0
  712. package/src/languageProcessing/languages/pl/config/internal/participles.js +26433 -0
  713. package/src/languageProcessing/languages/pl/config/sentenceLength.js +10 -0
  714. package/src/languageProcessing/languages/pl/config/stopWords.js +36 -0
  715. package/src/languageProcessing/languages/pl/config/transitionWords.js +42 -0
  716. package/src/languageProcessing/languages/pl/config/twoPartTransitionWords.js +8 -0
  717. package/src/languageProcessing/languages/pl/helpers/getClauses.js +25 -0
  718. package/src/languageProcessing/languages/pl/helpers/getStemmer.js +22 -0
  719. package/src/languageProcessing/languages/pl/helpers/internal/getParticiples.js +18 -0
  720. package/src/languageProcessing/languages/pl/helpers/internal/stem.js +161 -0
  721. package/src/languageProcessing/languages/pl/values/Clause.js +53 -0
  722. package/src/languageProcessing/languages/pt/Researcher.js +48 -0
  723. package/src/languageProcessing/languages/pt/config/firstWordExceptions.js +15 -0
  724. package/src/languageProcessing/languages/pt/config/functionWords.js +226 -0
  725. package/src/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +66 -0
  726. package/src/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +4088 -0
  727. package/src/languageProcessing/languages/pt/config/sentenceLength.js +3 -0
  728. package/src/languageProcessing/languages/pt/config/stopWords.js +50 -0
  729. package/src/languageProcessing/languages/pt/config/syllables.json +38 -0
  730. package/src/languageProcessing/languages/pt/config/transitionWords.js +34 -0
  731. package/src/languageProcessing/languages/pt/config/twoPartTransitionWords.js +9 -0
  732. package/src/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +15 -0
  733. package/src/languageProcessing/languages/pt/helpers/getClauses.js +29 -0
  734. package/src/languageProcessing/languages/pt/helpers/getStemmer.js +22 -0
  735. package/src/languageProcessing/languages/pt/helpers/internal/getParticiples.js +35 -0
  736. package/src/languageProcessing/languages/pt/helpers/internal/stem.js +319 -0
  737. package/src/languageProcessing/languages/pt/values/Clause.js +43 -0
  738. package/src/languageProcessing/languages/ru/Researcher.js +48 -0
  739. package/src/languageProcessing/languages/ru/config/firstWordExceptions.js +14 -0
  740. package/src/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +20 -0
  741. package/src/languageProcessing/languages/ru/config/functionWords.js +519 -0
  742. package/src/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +2914 -0
  743. package/src/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +6295 -0
  744. package/src/languageProcessing/languages/ru/config/sentenceLength.js +3 -0
  745. package/src/languageProcessing/languages/ru/config/syllables.json +19 -0
  746. package/src/languageProcessing/languages/ru/config/transitionWords.js +62 -0
  747. package/src/languageProcessing/languages/ru/config/twoPartTransitionWords.js +14 -0
  748. package/src/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +16 -0
  749. package/src/languageProcessing/languages/ru/helpers/getStemmer.js +22 -0
  750. package/src/languageProcessing/languages/ru/helpers/internal/stem.js +288 -0
  751. package/src/languageProcessing/languages/ru/helpers/isPassiveSentence.js +14 -0
  752. package/src/languageProcessing/languages/sk/Researcher.js +46 -0
  753. package/src/languageProcessing/languages/sk/config/firstWordExceptions.js +14 -0
  754. package/src/languageProcessing/languages/sk/config/functionWords.js +855 -0
  755. package/src/languageProcessing/languages/sk/config/internal/nonPassives.js +1074 -0
  756. package/src/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +22 -0
  757. package/src/languageProcessing/languages/sk/config/stopWords.js +34 -0
  758. package/src/languageProcessing/languages/sk/config/transitionWords.js +23 -0
  759. package/src/languageProcessing/languages/sk/config/twoPartTransitionWords.js +10 -0
  760. package/src/languageProcessing/languages/sk/helpers/getClauses.js +26 -0
  761. package/src/languageProcessing/languages/sk/helpers/getStemmer.js +22 -0
  762. package/src/languageProcessing/languages/sk/helpers/internal/getParticiples.js +16 -0
  763. package/src/languageProcessing/languages/sk/helpers/internal/stem.js +319 -0
  764. package/src/languageProcessing/languages/sk/values/Clause.js +39 -0
  765. package/src/languageProcessing/languages/sv/Researcher.js +45 -0
  766. package/src/languageProcessing/languages/sv/config/firstWordExceptions.js +15 -0
  767. package/src/languageProcessing/languages/sv/config/functionWords.js +176 -0
  768. package/src/languageProcessing/languages/sv/config/internal/passiveVerbs.js +10400 -0
  769. package/src/languageProcessing/languages/sv/config/keyphraseLength.js +11 -0
  770. package/src/languageProcessing/languages/sv/config/transitionWords.js +35 -0
  771. package/src/languageProcessing/languages/sv/config/twoPartTransitionWords.js +8 -0
  772. package/src/languageProcessing/languages/sv/helpers/getStemmer.js +22 -0
  773. package/src/languageProcessing/languages/sv/helpers/internal/stem.js +152 -0
  774. package/src/languageProcessing/languages/sv/helpers/isPassiveSentence.js +14 -0
  775. package/src/languageProcessing/languages/tr/Researcher.js +44 -0
  776. package/src/languageProcessing/languages/tr/config/firstWordExceptions.js +13 -0
  777. package/src/languageProcessing/languages/tr/config/functionWords.js +116 -0
  778. package/src/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +574 -0
  779. package/src/languageProcessing/languages/tr/config/internal/passiveEndings.js +151 -0
  780. package/src/languageProcessing/languages/tr/config/sentenceLength.js +7 -0
  781. package/src/languageProcessing/languages/tr/config/transitionWords.js +42 -0
  782. package/src/languageProcessing/languages/tr/config/twoPartTransitionWords.js +7 -0
  783. package/src/languageProcessing/languages/tr/helpers/getStemmer.js +22 -0
  784. package/src/languageProcessing/languages/tr/helpers/internal/stem.js +20 -0
  785. package/src/languageProcessing/languages/tr/helpers/isPassiveSentence.js +43 -0
  786. package/src/languageProcessing/researches/altTagCount.js +70 -0
  787. package/src/languageProcessing/researches/countSentencesFromText.js +19 -0
  788. package/src/languageProcessing/researches/findKeyphraseInSEOTitle.js +257 -0
  789. package/src/languageProcessing/researches/findKeywordInFirstParagraph.js +86 -0
  790. package/src/languageProcessing/researches/findTransitionWords.js +123 -0
  791. package/src/languageProcessing/researches/functionWordsInKeyphrase.js +44 -0
  792. package/src/languageProcessing/researches/getAnchorsWithKeyphrase.js +227 -0
  793. package/src/languageProcessing/researches/getFleschReadingScore.js +150 -0
  794. package/src/languageProcessing/researches/getKeywordDensity.js +44 -0
  795. package/src/languageProcessing/researches/getLinkStatistics.js +54 -0
  796. package/src/languageProcessing/researches/getLinks.js +18 -0
  797. package/src/languageProcessing/researches/getLongCenterAlignedTexts.js +37 -0
  798. package/src/languageProcessing/researches/getParagraphLength.js +44 -0
  799. package/src/languageProcessing/researches/getParagraphs.js +18 -0
  800. package/src/languageProcessing/researches/getPassiveVoiceResult.js +129 -0
  801. package/src/languageProcessing/researches/getProminentWordsForInsights.js +48 -0
  802. package/src/languageProcessing/researches/getProminentWordsForInternalLinking.js +119 -0
  803. package/src/languageProcessing/researches/getSentenceBeginnings.js +124 -0
  804. package/src/languageProcessing/researches/getSubheadingTextLengths.js +59 -0
  805. package/src/languageProcessing/researches/getWordForms.js +204 -0
  806. package/src/languageProcessing/researches/h1s.js +10 -0
  807. package/src/languageProcessing/researches/imageCount.js +16 -0
  808. package/src/languageProcessing/researches/index.js +5 -0
  809. package/src/languageProcessing/researches/keyphraseDistribution.js +249 -0
  810. package/src/languageProcessing/researches/keyphraseLength.js +17 -0
  811. package/src/languageProcessing/researches/keywordCount.js +134 -0
  812. package/src/languageProcessing/researches/keywordCountInUrl.js +57 -0
  813. package/src/languageProcessing/researches/matchKeywordInSubheadings.js +62 -0
  814. package/src/languageProcessing/researches/metaDescriptionKeyword.js +85 -0
  815. package/src/languageProcessing/researches/metaDescriptionLength.js +12 -0
  816. package/src/languageProcessing/researches/pageTitleWidth.js +11 -0
  817. package/src/languageProcessing/researches/readingTime.js +82 -0
  818. package/src/languageProcessing/researches/sentences.js +20 -0
  819. package/src/languageProcessing/researches/videoCount.js +32 -0
  820. package/src/languageProcessing/researches/wordComplexity.js +129 -0
  821. package/src/languageProcessing/researches/wordCountInText.js +29 -0
  822. package/src/languageProcessing/values/Clause.js +108 -0
  823. package/src/languageProcessing/values/ProminentWord.js +95 -0
  824. package/src/languageProcessing/values/Sentence.js +111 -0
  825. package/src/languageProcessing/values/index.js +9 -0
  826. package/src/markers/addMark.js +9 -0
  827. package/src/markers/addMarkSingleWord.js +32 -0
  828. package/src/markers/index.js +7 -0
  829. package/src/markers/removeDuplicateMarks.js +27 -0
  830. package/src/markers/removeMarks.js +11 -0
  831. package/src/parse/build/build.js +52 -0
  832. package/src/parse/build/index.js +10 -0
  833. package/src/parse/build/private/adapt.js +113 -0
  834. package/src/parse/build/private/adaptAttributes.js +36 -0
  835. package/src/parse/build/private/alwaysFilterElements.js +75 -0
  836. package/src/parse/build/private/combineIntoImplicitParagraphs.js +130 -0
  837. package/src/parse/build/private/filterBeforeTokenizing.js +32 -0
  838. package/src/parse/build/private/filterHelpers.js +44 -0
  839. package/src/parse/build/private/filterTree.js +42 -0
  840. package/src/parse/build/private/getTextElementPositions.js +184 -0
  841. package/src/parse/build/private/helpers/parseClassAttribute.js +9 -0
  842. package/src/parse/build/private/isPhrasingContent.js +28 -0
  843. package/src/parse/build/private/parseBlocks.js +151 -0
  844. package/src/parse/build/private/tokenize.js +74 -0
  845. package/src/parse/language/LanguageProcessor.js +74 -0
  846. package/src/parse/structure/Heading.js +26 -0
  847. package/src/parse/structure/Node.js +69 -0
  848. package/src/parse/structure/Paragraph.js +48 -0
  849. package/src/parse/structure/Sentence.js +30 -0
  850. package/src/parse/structure/SourceCodeLocation.js +41 -0
  851. package/src/parse/structure/Text.js +27 -0
  852. package/src/parse/structure/Token.js +24 -0
  853. package/src/parse/structure/index.js +16 -0
  854. package/src/parse/traverse/findAllInTree.js +58 -0
  855. package/src/parse/traverse/index.js +12 -0
  856. package/src/parse/traverse/innerText.js +26 -0
  857. package/src/parsedPaper/ParsedPaper.js +92 -0
  858. package/src/parsedPaper/assess/TreeAssessor.js +184 -0
  859. package/src/parsedPaper/assess/assessmentListFactories.js +73 -0
  860. package/src/parsedPaper/assess/assessments/Assessment.js +79 -0
  861. package/src/parsedPaper/assess/assessments/index.js +6 -0
  862. package/src/parsedPaper/assess/assessorFactories.js +104 -0
  863. package/src/parsedPaper/assess/cornerstone/assessmentListFactories.js +47 -0
  864. package/src/parsedPaper/assess/cornerstone/index.js +5 -0
  865. package/src/parsedPaper/assess/index.js +20 -0
  866. package/src/parsedPaper/build/PaperParser.js +105 -0
  867. package/src/parsedPaper/build/linguisticParsing/Sentence.js +89 -0
  868. package/src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +323 -0
  869. package/src/parsedPaper/build/linguisticParsing/parseText.js +20 -0
  870. package/src/parsedPaper/build/tree/TreeBuilder.js +75 -0
  871. package/src/parsedPaper/build/tree/cleanup/calculateTextIndices.js +190 -0
  872. package/src/parsedPaper/build/tree/cleanup/getElementContent.js +21 -0
  873. package/src/parsedPaper/build/tree/cleanup/postParsing.js +37 -0
  874. package/src/parsedPaper/build/tree/html/HTMLTreeConverter.js +230 -0
  875. package/src/parsedPaper/build/tree/html/buildTree.js +31 -0
  876. package/src/parsedPaper/build/tree/html/htmlConstants.js +37 -0
  877. package/src/parsedPaper/build/tree/index.js +14 -0
  878. package/src/parsedPaper/build/tree/metadata/buildTree.js +32 -0
  879. package/src/parsedPaper/research/TreeResearcher.js +134 -0
  880. package/src/parsedPaper/research/index.js +13 -0
  881. package/src/parsedPaper/research/researches/Headings.js +20 -0
  882. package/src/parsedPaper/research/researches/LinkStatistics.js +128 -0
  883. package/src/parsedPaper/research/researches/Research.js +50 -0
  884. package/src/parsedPaper/research/researches/index.js +1 -0
  885. package/src/parsedPaper/structure/tree/FormattingElement.js +67 -0
  886. package/src/parsedPaper/structure/tree/SourceCodeLocation.js +31 -0
  887. package/src/parsedPaper/structure/tree/TextContainer.js +85 -0
  888. package/src/parsedPaper/structure/tree/index.js +22 -0
  889. package/src/parsedPaper/structure/tree/nodes/Heading.js +26 -0
  890. package/src/parsedPaper/structure/tree/nodes/LeafNode.js +75 -0
  891. package/src/parsedPaper/structure/tree/nodes/List.js +47 -0
  892. package/src/parsedPaper/structure/tree/nodes/ListItem.js +26 -0
  893. package/src/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +46 -0
  894. package/src/parsedPaper/structure/tree/nodes/MetadataText.js +26 -0
  895. package/src/parsedPaper/structure/tree/nodes/Node.js +154 -0
  896. package/src/parsedPaper/structure/tree/nodes/Paragraph.js +24 -0
  897. package/src/parsedPaper/structure/tree/nodes/StructuredNode.js +52 -0
  898. package/src/parsedPaper/structure/tree/nodes/index.js +21 -0
  899. package/src/scoring/assessments/assessment.js +63 -0
  900. package/src/scoring/assessments/index.js +58 -0
  901. package/src/scoring/assessments/readability/ParagraphTooLongAssessment.js +173 -0
  902. package/src/scoring/assessments/readability/SentenceBeginningsAssessment.js +132 -0
  903. package/src/scoring/assessments/readability/SentenceLengthInTextAssessment.js +186 -0
  904. package/src/scoring/assessments/readability/TransitionWordsAssessment.js +168 -0
  905. package/src/scoring/assessments/seo/ImageCountAssessment.js +112 -0
  906. package/src/scoring/assessments/seo/InternalLinksAssessment.js +114 -0
  907. package/src/scoring/assessments/seo/IntroductionKeywordAssessment.js +110 -0
  908. package/src/scoring/assessments/seo/KeyphraseAssessment.js +104 -0
  909. package/src/scoring/assessments/seo/KeyphraseLengthAssessment.js +110 -0
  910. package/src/scoring/assessments/seo/KeywordDensityAssessment.js +116 -0
  911. package/src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +114 -0
  912. package/src/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +112 -0
  913. package/src/scoring/assessments/seo/MetaTitleKeywordAssessment.js +111 -0
  914. package/src/scoring/assessments/seo/NumberInMetaTitleAssessment.js +107 -0
  915. package/src/scoring/assessments/seo/OutboundLinksAssessment.js +111 -0
  916. package/src/scoring/assessments/seo/PageTitleWidthAssessment.js +104 -0
  917. package/src/scoring/assessments/seo/SingleH1Assessment.js +118 -0
  918. package/src/scoring/assessments/seo/SingleTitleAssessment.js +108 -0
  919. package/src/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +107 -0
  920. package/src/scoring/assessments/seo/TextImagesAssessment.js +144 -0
  921. package/src/scoring/assessments/seo/TextLengthAssessment.js +100 -0
  922. package/src/scoring/assessments/seo/UrlKeywordAssessment.js +111 -0
  923. package/src/scoring/assessments/seo/UrlLengthAssessment.js +103 -0
  924. package/src/scoring/assessors/assessor.js +269 -0
  925. package/src/scoring/assessors/avadaAssessor.js +67 -0
  926. package/src/scoring/assessors/contentAssessor.js +159 -0
  927. package/src/scoring/assessors/index.js +4 -0
  928. package/src/scoring/assessors/seoAssessor.js +57 -0
  929. package/src/scoring/helpers/assessments/checkForTooLongSentences.js +13 -0
  930. package/src/scoring/helpers/assessments/inRange.js +49 -0
  931. package/src/scoring/helpers/assessments/keyphraseLengthFactor.js +10 -0
  932. package/src/scoring/helpers/assessments/recommendedKeywordCount.js +43 -0
  933. package/src/scoring/helpers/index.js +74 -0
  934. package/src/scoring/interpreters/index.js +5 -0
  935. package/src/scoring/interpreters/scoreToRating.js +31 -0
  936. package/src/scoring/renderers/AssessorPresenter.js +360 -0
  937. package/src/scoring/scoreAggregators/ReadabilityScoreAggregator.js +203 -0
  938. package/src/scoring/scoreAggregators/SEOScoreAggregator.js +54 -0
  939. package/src/scoring/scoreAggregators/ScoreAggregator.js +23 -0
  940. package/src/scoring/scoreAggregators/index.js +3 -0
  941. package/src/values/AssessmentResult.js +496 -0
  942. package/src/values/Mark.js +271 -0
  943. package/src/values/Paper.js +425 -0
  944. package/src/values/index.js +9 -0
  945. package/src/vendor/turkishStemmer.js +3435 -0
  946. package/tsconfig.json +15 -0
@@ -0,0 +1,1447 @@
1
+ import getLanguage from "../languageProcessing/helpers/language/getLanguage.js";
2
+ import { isUndefined } from "lodash";
3
+
4
+ export const transliterations = {
5
+ // Language: Spanish.
6
+ // Source: https://en.wikipedia.org/wiki/Spanish_orthography
7
+ es: [
8
+ { letter: /[\u00F1]/g, alternative: "n" },
9
+ { letter: /[\u00D1]/g, alternative: "N" },
10
+ { letter: /[\u00E1]/g, alternative: "a" },
11
+ { letter: /[\u00C1]/g, alternative: "A" },
12
+ { letter: /[\u00E9]/g, alternative: "e" },
13
+ { letter: /[\u00C9]/g, alternative: "E" },
14
+ { letter: /[\u00ED]/g, alternative: "i" },
15
+ { letter: /[\u00CD]/g, alternative: "I" },
16
+ { letter: /[\u00F3]/g, alternative: "o" },
17
+ { letter: /[\u00D3]/g, alternative: "O" },
18
+ { letter: /[\u00FA\u00FC]/g, alternative: "u" },
19
+ { letter: /[\u00DA\u00DC]/g, alternative: "U" },
20
+ ],
21
+ // Language: Polish.
22
+ // Source: https://en.wikipedia.org/wiki/Polish_orthography
23
+ pl: [
24
+ { letter: /[\u0105]/g, alternative: "a" },
25
+ { letter: /[\u0104]/g, alternative: "A" },
26
+ { letter: /[\u0107]/g, alternative: "c" },
27
+ { letter: /[\u0106]/g, alternative: "C" },
28
+ { letter: /[\u0119]/g, alternative: "e" },
29
+ { letter: /[\u0118]/g, alternative: "E" },
30
+ { letter: /[\u0142]/g, alternative: "l" },
31
+ { letter: /[\u0141]/g, alternative: "L" },
32
+ { letter: /[\u0144]/g, alternative: "n" },
33
+ { letter: /[\u0143]/g, alternative: "N" },
34
+ { letter: /[\u00F3]/g, alternative: "o" },
35
+ { letter: /[\u00D3]/g, alternative: "O" },
36
+ { letter: /[\u015B]/g, alternative: "s" },
37
+ { letter: /[\u015A]/g, alternative: "S" },
38
+ { letter: /[\u017A\u017C]/g, alternative: "z" },
39
+ { letter: /[\u0179\u017B]/g, alternative: "Z" },
40
+ ],
41
+ // Language: German.
42
+ // Source: https://en.wikipedia.org/wiki/German_orthography#Special_characters
43
+ de: [
44
+ { letter: /[\u00E4]/g, alternative: "ae" },
45
+ { letter: /[\u00C4]/g, alternative: "Ae" },
46
+ { letter: /[\u00FC]/g, alternative: "ue" },
47
+ { letter: /[\u00DC]/g, alternative: "Ue" },
48
+ { letter: /[\u00F6]/g, alternative: "oe" },
49
+ { letter: /[\u00D6]/g, alternative: "Oe" },
50
+ { letter: /[\u00DF]/g, alternative: "ss" },
51
+ { letter: /[\u1E9E]/g, alternative: "SS" },
52
+ ],
53
+ // Language Bokmål
54
+ // Source: http://www.dagbladet.no/2011/12/30/tema/reise/reiseeksperter/forbrukerrettigheter/19494227/
55
+ // Language Nynorks
56
+ // Source: http://www.dagbladet.no/2011/12/30/tema/reise/reiseeksperter/forbrukerrettigheter/19494227/
57
+ // Bokmål and Nynorks use the same transliterations
58
+ nbnn: [
59
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
60
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
61
+ { letter: /[\u00E5]/g, alternative: "aa" },
62
+ { letter: /[\u00C5]/g, alternative: "Aa" },
63
+ { letter: /[\u00F8]/g, alternative: "oe" },
64
+ { letter: /[\u00D8]/g, alternative: "Oe" },
65
+ { letter: /[\u00E9\u00E8\u00EA]/g, alternative: "e" },
66
+ { letter: /[\u00C9\u00C8\u00CA]/g, alternative: "E" },
67
+ { letter: /[\u00F3\u00F2\u00F4]/g, alternative: "o" },
68
+ { letter: /[\u00D3\u00D2\u00D4]/g, alternative: "O" },
69
+ ],
70
+ // Language: Swedish.
71
+ // Sources: https://sv.wikipedia.org/wiki/%C3%85#Historia
72
+ // http://forum.wordreference.com/threads/swedish-%C3%A4-ae-%C3%B6-oe-acceptable.1451839/
73
+ sv: [
74
+ { letter: /[\u00E5]/g, alternative: "aa" },
75
+ { letter: /[\u00C5]/g, alternative: "Aa" },
76
+ { letter: /[\u00E4]/g, alternative: "ae" },
77
+ { letter: /[\u00C4]/g, alternative: "Ae" },
78
+ { letter: /[\u00F6]/g, alternative: "oe" },
79
+ { letter: /[\u00D6]/g, alternative: "Oe" },
80
+ { letter: /[\u00E9]/g, alternative: "e" },
81
+ { letter: /[\u00C9]/g, alternative: "E" },
82
+ { letter: /[\u00E0]/g, alternative: "a" },
83
+ { letter: /[\u00C0]/g, alternative: "A" },
84
+ ],
85
+ // Language: Finnish.
86
+ // Sources: https://www.cs.tut.fi/~jkorpela/lang/finnish-letters.html
87
+ // https://en.wikipedia.org/wiki/Finnish_orthography
88
+ fi: [
89
+ { letter: /[\u00E5]/g, alternative: "aa" },
90
+ { letter: /[\u00C5]/g, alternative: "Aa" },
91
+ { letter: /[\u00E4]/g, alternative: "a" },
92
+ { letter: /[\u00C4]/g, alternative: "A" },
93
+ { letter: /[\u00F6]/g, alternative: "o" },
94
+ { letter: /[\u00D6]/g, alternative: "O" },
95
+ { letter: /[\u017E]/g, alternative: "zh" },
96
+ { letter: /[\u017D]/g, alternative: "Zh" },
97
+ { letter: /[\u0161]/g, alternative: "sh" },
98
+ { letter: /[\u0160]/g, alternative: "Sh" },
99
+ ],
100
+ // Language: Danish.
101
+ // Sources: https://sv.wikipedia.org/wiki/%C3%85#Historia
102
+ // https://en.wikipedia.org/wiki/Danish_orthography
103
+ da: [
104
+ { letter: /[\u00E5]/g, alternative: "aa" },
105
+ { letter: /[\u00C5]/g, alternative: "Aa" },
106
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
107
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
108
+ { letter: /[\u00C4]/g, alternative: "Ae" },
109
+ { letter: /[\u00F8]/g, alternative: "oe" },
110
+ { letter: /[\u00D8]/g, alternative: "Oe" },
111
+ { letter: /[\u00E9]/g, alternative: "e" },
112
+ { letter: /[\u00C9]/g, alternative: "E" },
113
+ ],
114
+ // Language: Turkish.
115
+ // Source: https://en.wikipedia.org/wiki/Turkish_alphabet
116
+ // ‘İ’ is the capital dotted ‘i’. Its lowercase counterpart is the ‘regular’ ‘i’.
117
+ tr: [
118
+ { letter: /[\u00E7]/g, alternative: "c" },
119
+ { letter: /[\u00C7]/g, alternative: "C" },
120
+ { letter: /[\u011F]/g, alternative: "g" },
121
+ { letter: /[\u011E]/g, alternative: "G" },
122
+ { letter: /[\u00F6]/g, alternative: "o" },
123
+ { letter: /[\u00D6]/g, alternative: "O" },
124
+ { letter: /[\u015F]/g, alternative: "s" },
125
+ { letter: /[\u015E]/g, alternative: "S" },
126
+ { letter: /[\u00E2]/g, alternative: "a" },
127
+ { letter: /[\u00C2]/g, alternative: "A" },
128
+ { letter: /[\u0131\u00EE]/g, alternative: "i" },
129
+ { letter: /[\u0130\u00CE]/g, alternative: "I" },
130
+ { letter: /[\u00FC\u00FB]/g, alternative: "u" },
131
+ { letter: /[\u00DC\u00DB]/g, alternative: "U" },
132
+ ],
133
+ // Language: Latvian.
134
+ // Source: https://en.wikipedia.org/wiki/Latvian_orthography
135
+ lv: [
136
+ { letter: /[\u0101]/g, alternative: "a" },
137
+ { letter: /[\u0100]/g, alternative: "A" },
138
+ { letter: /[\u010D]/g, alternative: "c" },
139
+ { letter: /[\u010C]/g, alternative: "C" },
140
+ { letter: /[\u0113]/g, alternative: "e" },
141
+ { letter: /[\u0112]/g, alternative: "E" },
142
+ { letter: /[\u0123]/g, alternative: "g" },
143
+ { letter: /[\u0122]/g, alternative: "G" },
144
+ { letter: /[\u012B]/g, alternative: "i" },
145
+ { letter: /[\u012A]/g, alternative: "I" },
146
+ { letter: /[\u0137]/g, alternative: "k" },
147
+ { letter: /[\u0136]/g, alternative: "K" },
148
+ { letter: /[\u013C]/g, alternative: "l" },
149
+ { letter: /[\u013B]/g, alternative: "L" },
150
+ { letter: /[\u0146]/g, alternative: "n" },
151
+ { letter: /[\u0145]/g, alternative: "N" },
152
+ { letter: /[\u0161]/g, alternative: "s" },
153
+ { letter: /[\u0160]/g, alternative: "S" },
154
+ { letter: /[\u016B]/g, alternative: "u" },
155
+ { letter: /[\u016A]/g, alternative: "U" },
156
+ { letter: /[\u017E]/g, alternative: "z" },
157
+ { letter: /[\u017D]/g, alternative: "Z" },
158
+ ],
159
+ // Language: Icelandic.
160
+ // Sources: https://en.wikipedia.org/wiki/Thorn_(letter),
161
+ // https://en.wikipedia.org/wiki/Eth, https://en.wikipedia.org/wiki/Icelandic_orthography
162
+ is: [
163
+ { letter: /[\u00E1]/g, alternative: "a" },
164
+ { letter: /[\u00C1]/g, alternative: "A" },
165
+ { letter: /[\u00F0]/g, alternative: "d" },
166
+ { letter: /[\u00D0]/g, alternative: "D" },
167
+ { letter: /[\u00E9]/g, alternative: "e" },
168
+ { letter: /[\u00C9]/g, alternative: "E" },
169
+ { letter: /[\u00ED]/g, alternative: "i" },
170
+ { letter: /[\u00CD]/g, alternative: "I" },
171
+ { letter: /[\u00F3\u00F6]/g, alternative: "o" },
172
+ { letter: /[\u00D3\u00D6]/g, alternative: "O" },
173
+ { letter: /[\u00FA]/g, alternative: "u" },
174
+ { letter: /[\u00DA]/g, alternative: "U" },
175
+ { letter: /[\u00FD]/g, alternative: "y" },
176
+ { letter: /[\u00DD]/g, alternative: "Y" },
177
+ { letter: /[\u00FE]/g, alternative: "th" },
178
+ { letter: /[\u00DE]/g, alternative: "Th" },
179
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
180
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
181
+ ],
182
+ // Language: Faroese.
183
+ // Source: https://www.facebook.com/groups/1557965757758234/permalink/1749847165236758/
184
+ // (conversation in private Facebook Group ‘Faroese Language Learning Enthusiasts’)
185
+ // Depending on the word, ð can be d, g, j, v, ng or nothing. However, ‘d’ is most frequent.
186
+ // When writing text messages or using a foreign keyboard, í is sometimes written as ij, ý as yj, ú as uv, ó as ov, ø as oe, and á as aa or oa.
187
+ // However, in website URLs the alternatives mentioned below are by far the most common.
188
+ fa: [
189
+ { letter: /[\u00E1]/g, alternative: "a" },
190
+ { letter: /[\u00C1]/g, alternative: "A" },
191
+ { letter: /[\u00F0]/g, alternative: "d" },
192
+ { letter: /[\u00D0]/g, alternative: "D" },
193
+ { letter: /[\u00ED]/g, alternative: "i" },
194
+ { letter: /[\u00CD]/g, alternative: "I" },
195
+ { letter: /[\u00FD]/g, alternative: "y" },
196
+ { letter: /[\u00DD]/g, alternative: "Y" },
197
+ { letter: /[\u00FA]/g, alternative: "u" },
198
+ { letter: /[\u00DA]/g, alternative: "U" },
199
+ { letter: /[\u00F3\u00F8]/g, alternative: "o" },
200
+ { letter: /[\u00D3\u00D8]/g, alternative: "O" },
201
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
202
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
203
+ ],
204
+ // Language: Czech.
205
+ // Source: https://en.wikipedia.org/wiki/Czech_orthography
206
+ cs: [
207
+ { letter: /[\u00E1]/g, alternative: "a" },
208
+ { letter: /[\u00C1]/g, alternative: "A" },
209
+ { letter: /[\u010D]/g, alternative: "c" },
210
+ { letter: /[\u010C]/g, alternative: "C" },
211
+ { letter: /[\u010F]/g, alternative: "d" },
212
+ { letter: /[\u010E]/g, alternative: "D" },
213
+ { letter: /[\u00ED]/g, alternative: "i" },
214
+ { letter: /[\u00CD]/g, alternative: "I" },
215
+ { letter: /[\u0148]/g, alternative: "n" },
216
+ { letter: /[\u0147]/g, alternative: "N" },
217
+ { letter: /[\u00F3]/g, alternative: "o" },
218
+ { letter: /[\u00D3]/g, alternative: "O" },
219
+ { letter: /[\u0159]/g, alternative: "r" },
220
+ { letter: /[\u0158]/g, alternative: "R" },
221
+ { letter: /[\u0161]/g, alternative: "s" },
222
+ { letter: /[\u0160]/g, alternative: "S" },
223
+ { letter: /[\u0165]/g, alternative: "t" },
224
+ { letter: /[\u0164]/g, alternative: "T" },
225
+ { letter: /[\u00FD]/g, alternative: "y" },
226
+ { letter: /[\u00DD]/g, alternative: "Y" },
227
+ { letter: /[\u017E]/g, alternative: "z" },
228
+ { letter: /[\u017D]/g, alternative: "Z" },
229
+ { letter: /[\u00E9\u011B]/g, alternative: "e" },
230
+ { letter: /[\u00C9\u011A]/g, alternative: "E" },
231
+ { letter: /[\u00FA\u016F]/g, alternative: "u" },
232
+ { letter: /[\u00DA\u016E]/g, alternative: "U" },
233
+ ],
234
+ // Language: Russian.
235
+ // Source: Machine Readable Travel Documents, Doc 9303, Part 1, Volume 1 (PDF) (Sixth ed.).
236
+ // ICAO. 2006. p. IV-50—IV-52. http://www.icao.int/publications/Documents/9303_p3_cons_en.pdf
237
+ // ‘ь’ is the so-called soft sign, indicating a sound change (palatalization) of the preceding consonant.
238
+ // In a text, it is transliterated to a character similar to an apostrophe: ′.
239
+ // I recommend omittance in slugs. (https://en.wikipedia.org/wiki/Romanization_of_Russian)
240
+ ru: [
241
+ { letter: /[\u0430]/g, alternative: "a" },
242
+ { letter: /[\u0410]/g, alternative: "A" },
243
+ { letter: /[\u0431]/g, alternative: "b" },
244
+ { letter: /[\u0411]/g, alternative: "B" },
245
+ { letter: /[\u0432]/g, alternative: "v" },
246
+ { letter: /[\u0412]/g, alternative: "V" },
247
+ { letter: /[\u0433]/g, alternative: "g" },
248
+ { letter: /[\u0413]/g, alternative: "G" },
249
+ { letter: /[\u0434]/g, alternative: "d" },
250
+ { letter: /[\u0414]/g, alternative: "D" },
251
+ { letter: /[\u0435]/g, alternative: "e" },
252
+ { letter: /[\u0415]/g, alternative: "E" },
253
+ { letter: /[\u0436]/g, alternative: "zh" },
254
+ { letter: /[\u0416]/g, alternative: "Zh" },
255
+ { letter: /[\u0437]/g, alternative: "z" },
256
+ { letter: /[\u0417]/g, alternative: "Z" },
257
+ { letter: /[\u0456\u0438\u0439]/g, alternative: "i" },
258
+ { letter: /[\u0406\u0418\u0419]/g, alternative: "I" },
259
+ { letter: /[\u043A]/g, alternative: "k" },
260
+ { letter: /[\u041A]/g, alternative: "K" },
261
+ { letter: /[\u043B]/g, alternative: "l" },
262
+ { letter: /[\u041B]/g, alternative: "L" },
263
+ { letter: /[\u043C]/g, alternative: "m" },
264
+ { letter: /[\u041C]/g, alternative: "M" },
265
+ { letter: /[\u043D]/g, alternative: "n" },
266
+ { letter: /[\u041D]/g, alternative: "N" },
267
+ { letter: /[\u0440]/g, alternative: "r" },
268
+ { letter: /[\u0420]/g, alternative: "R" },
269
+ { letter: /[\u043E]/g, alternative: "o" },
270
+ { letter: /[\u041E]/g, alternative: "O" },
271
+ { letter: /[\u043F]/g, alternative: "p" },
272
+ { letter: /[\u041F]/g, alternative: "P" },
273
+ { letter: /[\u0441]/g, alternative: "s" },
274
+ { letter: /[\u0421]/g, alternative: "S" },
275
+ { letter: /[\u0442]/g, alternative: "t" },
276
+ { letter: /[\u0422]/g, alternative: "T" },
277
+ { letter: /[\u0443]/g, alternative: "u" },
278
+ { letter: /[\u0423]/g, alternative: "U" },
279
+ { letter: /[\u0444]/g, alternative: "f" },
280
+ { letter: /[\u0424]/g, alternative: "F" },
281
+ { letter: /[\u0445]/g, alternative: "kh" },
282
+ { letter: /[\u0425]/g, alternative: "Kh" },
283
+ { letter: /[\u0446]/g, alternative: "ts" },
284
+ { letter: /[\u0426]/g, alternative: "Ts" },
285
+ { letter: /[\u0447]/g, alternative: "ch" },
286
+ { letter: /[\u0427]/g, alternative: "Ch" },
287
+ { letter: /[\u0448]/g, alternative: "sh" },
288
+ { letter: /[\u0428]/g, alternative: "Sh" },
289
+ { letter: /[\u0449]/g, alternative: "shch" },
290
+ { letter: /[\u0429]/g, alternative: "Shch" },
291
+ { letter: /[\u044A]/g, alternative: "ie" },
292
+ { letter: /[\u042A]/g, alternative: "Ie" },
293
+ { letter: /[\u044B]/g, alternative: "y" },
294
+ { letter: /[\u042B]/g, alternative: "Y" },
295
+ { letter: /[\u044C]/g, alternative: "" },
296
+ { letter: /[\u042C]/g, alternative: "" },
297
+ { letter: /[\u0451\u044D]/g, alternative: "e" },
298
+ { letter: /[\u0401\u042D]/g, alternative: "E" },
299
+ { letter: /[\u044E]/g, alternative: "iu" },
300
+ { letter: /[\u042E]/g, alternative: "Iu" },
301
+ { letter: /[\u044F]/g, alternative: "ia" },
302
+ { letter: /[\u042F]/g, alternative: "Ia" },
303
+ ],
304
+ // Language: Esperanto.
305
+ // Source: https://en.wikipedia.org/wiki/Esperanto#Writing_diacritics
306
+ eo: [
307
+ { letter: /[\u0109]/g, alternative: "ch" },
308
+ { letter: /[\u0108]/g, alternative: "Ch" },
309
+ { letter: /[\u011d]/g, alternative: "gh" },
310
+ { letter: /[\u011c]/g, alternative: "Gh" },
311
+ { letter: /[\u0125]/g, alternative: "hx" },
312
+ { letter: /[\u0124]/g, alternative: "Hx" },
313
+ { letter: /[\u0135]/g, alternative: "jx" },
314
+ { letter: /[\u0134]/g, alternative: "Jx" },
315
+ { letter: /[\u015d]/g, alternative: "sx" },
316
+ { letter: /[\u015c]/g, alternative: "Sx" },
317
+ { letter: /[\u016d]/g, alternative: "ux" },
318
+ { letter: /[\u016c]/g, alternative: "Ux" },
319
+ ],
320
+ // Language: Afrikaans.
321
+ // Source: https://en.wikipedia.org/wiki/Afrikaans#Orthography
322
+ af: [
323
+ { letter: /[\u00E8\u00EA\u00EB]/g, alternative: "e" },
324
+ { letter: /[\u00CB\u00C8\u00CA]/g, alternative: "E" },
325
+ { letter: /[\u00EE\u00EF]/g, alternative: "i" },
326
+ { letter: /[\u00CE\u00CF]/g, alternative: "I" },
327
+ { letter: /[\u00F4\u00F6]/g, alternative: "o" },
328
+ { letter: /[\u00D4\u00D6]/g, alternative: "O" },
329
+ { letter: /[\u00FB\u00FC]/g, alternative: "u" },
330
+ { letter: /[\u00DB\u00DC]/g, alternative: "U" },
331
+ ],
332
+ // Language: Catalan.
333
+ // Source: https://en.wikipedia.org/wiki/Catalan_orthography
334
+ ca: [
335
+ { letter: /[\u00E0]/g, alternative: "a" },
336
+ { letter: /[\u00C0]/g, alternative: "A" },
337
+ { letter: /[\u00E9|\u00E8]/g, alternative: "e" },
338
+ { letter: /[\u00C9|\u00C8]/g, alternative: "E" },
339
+ { letter: /[\u00ED|\u00EF]/g, alternative: "i" },
340
+ { letter: /[\u00CD|\u00CF]/g, alternative: "I" },
341
+ { letter: /[\u00F3|\u00F2]/g, alternative: "o" },
342
+ { letter: /[\u00D3|\u00D2]/g, alternative: "O" },
343
+ { letter: /[\u00FA|\u00FC]/g, alternative: "u" },
344
+ { letter: /[\u00DA|\u00DC]/g, alternative: "U" },
345
+ { letter: /[\u00E7]/g, alternative: "c" },
346
+ { letter: /[\u00C7]/g, alternative: "C" },
347
+ ],
348
+ // Language: Asturian.
349
+ // Source: http://www.orbilat.com/Languages/Asturian/Grammar/Asturian-Alphabet.html
350
+ ast: [
351
+ { letter: /[\u00F1]/g, alternative: "n" },
352
+ { letter: /[\u00D1]/g, alternative: "N" },
353
+ ],
354
+ // Language: Aragonese.
355
+ // Source: https://en.wikipedia.org/wiki/Aragonese_language#Orthography
356
+ an: [
357
+ { letter: /[\u00FC]/g, alternative: "u" },
358
+ { letter: /[\u00F1]/g, alternative: "ny" },
359
+ { letter: /[\u00E7]/g, alternative: "c" },
360
+ { letter: /[\u00ED]/g, alternative: "i" },
361
+ { letter: /[\u00F3]/g, alternative: "o" },
362
+ { letter: /[\u00E1]/g, alternative: "a" },
363
+ { letter: /[\u00DC]/g, alternative: "U" },
364
+ { letter: /[\u00D1]/g, alternative: "Ny" },
365
+ { letter: /[\u00C7]/g, alternative: "C" },
366
+ { letter: /[\u00CD]/g, alternative: "I" },
367
+ { letter: /[\u00D3]/g, alternative: "O" },
368
+ { letter: /[\u00C1]/g, alternative: "A" },
369
+ ],
370
+ // Language: Aymara.
371
+ // Source: http://www.omniglot.com/writing/aymara.htm
372
+ ay: [
373
+ { letter: /(([\u00EF])|([\u00ED]))/g, alternative: "i" },
374
+ { letter: /(([\u00CF])|([\u00CD]))/g, alternative: "I" },
375
+ { letter: /[\u00E4]/g, alternative: "a" },
376
+ { letter: /[\u00C4]/g, alternative: "A" },
377
+ { letter: /[\u00FC]/g, alternative: "u" },
378
+ { letter: /[\u00DC]/g, alternative: "U" },
379
+ { letter: /[\u0027]/g, alternative: "" },
380
+ { letter: /[\u00F1]/g, alternative: "n" },
381
+ { letter: /[\u00D1]/g, alternative: "N" },
382
+ ],
383
+ // Language: English.
384
+ // Sources: https://en.wikipedia.org/wiki/English_terms_with_diacritical_marks https://en.wikipedia.org/wiki/English_orthography
385
+ en: [
386
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
387
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
388
+ { letter: /[\u0153]/g, alternative: "oe" },
389
+ { letter: /[\u0152]/g, alternative: "Oe" },
390
+ { letter: /[\u00EB\u00E9]/g, alternative: "e" },
391
+ { letter: /[\u00C9\u00CB]/g, alternative: "E" },
392
+ { letter: /[\u00F4\u00F6]/g, alternative: "o" },
393
+ { letter: /[\u00D4\u00D6]/g, alternative: "O" },
394
+ { letter: /[\u00EF]/g, alternative: "i" },
395
+ { letter: /[\u00CF]/g, alternative: "I" },
396
+ { letter: /[\u00E7]/g, alternative: "c" },
397
+ { letter: /[\u00C7]/g, alternative: "C" },
398
+ { letter: /[\u00F1]/g, alternative: "n" },
399
+ { letter: /[\u00D1]/g, alternative: "N" },
400
+ { letter: /[\u00FC]/g, alternative: "u" },
401
+ { letter: /[\u00DC]/g, alternative: "U" },
402
+ { letter: /[\u00E4]/g, alternative: "a" },
403
+ { letter: /[\u00C4]/g, alternative: "A" },
404
+ ],
405
+ // Language: French.
406
+ // Sources: https://en.wikipedia.org/wiki/French_orthography#Ligatures https://en.wikipedia.org/wiki/French_orthography#Diacritics
407
+ fr: [
408
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
409
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
410
+ { letter: /[\u0153]/g, alternative: "oe" },
411
+ { letter: /[\u0152]/g, alternative: "Oe" },
412
+ { letter: /[\u00E9\u00E8\u00EB\u00EA]/g, alternative: "e" },
413
+ { letter: /[\u00C9\u00C8\u00CB\u00CA]/g, alternative: "E" },
414
+ { letter: /[\u00E0\u00E2]/g, alternative: "a" },
415
+ { letter: /[\u00C0\u00C2]/g, alternative: "A" },
416
+ { letter: /[\u00EF\u00EE]/g, alternative: "i" },
417
+ { letter: /[\u00CF\u00CE]/g, alternative: "I" },
418
+ { letter: /[\u00F9\u00FB\u00FC]/g, alternative: "u" },
419
+ { letter: /[\u00D9\u00DB\u00DC]/g, alternative: "U" },
420
+ { letter: /[\u00F4]/g, alternative: "o" },
421
+ { letter: /[\u00D4]/g, alternative: "O" },
422
+ { letter: /[\u00FF]/g, alternative: "y" },
423
+ { letter: /[\u0178]/g, alternative: "Y" },
424
+ { letter: /[\u00E7]/g, alternative: "c" },
425
+ { letter: /[\u00C7]/g, alternative: "C" },
426
+ { letter: /[\u00F1]/g, alternative: "n" },
427
+ { letter: /[\u00D1]/g, alternative: "N" },
428
+ ],
429
+ // Language: Italian.
430
+ // Source: https://en.wikipedia.org/wiki/Italian_orthography
431
+ it: [
432
+ { letter: /[\u00E0]/g, alternative: "a" },
433
+ { letter: /[\u00C0]/g, alternative: "A" },
434
+ { letter: /[\u00E9\u00E8]/g, alternative: "e" },
435
+ { letter: /[\u00C9\u00C8]/g, alternative: "E" },
436
+ { letter: /[\u00EC\u00ED\u00EE]/g, alternative: "i" },
437
+ { letter: /[\u00CC\u00CD\u00CE]/g, alternative: "I" },
438
+ { letter: /[\u00F3\u00F2]/g, alternative: "o" },
439
+ { letter: /[\u00D3\u00D2]/g, alternative: "O" },
440
+ { letter: /[\u00F9\u00FA]/g, alternative: "u" },
441
+ { letter: /[\u00D9\u00DA]/g, alternative: "U" },
442
+ ],
443
+ // Language: Dutch.
444
+ // Sources: https://en.wikipedia.org/wiki/Dutch_orthography https://nl.wikipedia.org/wiki/Trema_in_de_Nederlandse_spelling
445
+ nl: [
446
+ { letter: /[\u00E7]/g, alternative: "c" },
447
+ { letter: /[\u00C7]/g, alternative: "C" },
448
+ { letter: /[\u00F1]/g, alternative: "n" },
449
+ { letter: /[\u00D1]/g, alternative: "N" },
450
+ { letter: /[\u00E9\u00E8\u00EA\u00EB]/g, alternative: "e" },
451
+ { letter: /[\u00C9\u00C8\u00CA\u00CB]/g, alternative: "E" },
452
+ { letter: /[\u00F4\u00F6]/g, alternative: "o" },
453
+ { letter: /[\u00D4\u00D6]/g, alternative: "O" },
454
+ { letter: /[\u00EF]/g, alternative: "i" },
455
+ { letter: /[\u00CF]/g, alternative: "I" },
456
+ { letter: /[\u00FC]/g, alternative: "u" },
457
+ { letter: /[\u00DC]/g, alternative: "U" },
458
+ { letter: /[\u00E4]/g, alternative: "a" },
459
+ { letter: /[\u00C4]/g, alternative: "A" },
460
+ ],
461
+ // Language: Bambara.
462
+ // Sources: http://www.omniglot.com/writing/bambara.htm https://en.wikipedia.org/wiki/Bambara_language
463
+ bm: [
464
+ { letter: /[\u025B]/g, alternative: "e" },
465
+ { letter: /[\u0190]/g, alternative: "E" },
466
+ { letter: /[\u0272]/g, alternative: "ny" },
467
+ { letter: /[\u019D]/g, alternative: "Ny" },
468
+ { letter: /[\u014B]/g, alternative: "ng" },
469
+ { letter: /[\u014A]/g, alternative: "Ng" },
470
+ { letter: /[\u0254]/g, alternative: "o" },
471
+ { letter: /[\u0186]/g, alternative: "O" },
472
+ ],
473
+ // Language: Ukrainian.
474
+ // Source: Resolution no. 55 of the Cabinet of Ministers of Ukraine, January 27, 2010 http://zakon2.rada.gov.ua/laws/show/55-2010-%D0%BF
475
+ // ‘ь’ is the so-called soft sign, indicating a sound change (palatalization) of the preceding consonant. In a text, it is sometimes transliterated
476
+ // To a character similar to an apostrophe: ′. Omittance is recommended in slugs (https://en.wikipedia.org/wiki/Romanization_of_Ukrainian).
477
+ uk: [
478
+ { letter: /[\u0431]/g, alternative: "b" },
479
+ { letter: /[\u0411]/g, alternative: "B" },
480
+ { letter: /[\u0432]/g, alternative: "v" },
481
+ { letter: /[\u0412]/g, alternative: "V" },
482
+ { letter: /[\u0433]/g, alternative: "h" },
483
+ { letter: /[\u0413]/g, alternative: "H" },
484
+ { letter: /[\u0491]/g, alternative: "g" },
485
+ { letter: /[\u0490]/g, alternative: "G" },
486
+ { letter: /[\u0434]/g, alternative: "d" },
487
+ { letter: /[\u0414]/g, alternative: "D" },
488
+ { letter: /[\u043A]/g, alternative: "k" },
489
+ { letter: /[\u041A]/g, alternative: "K" },
490
+ { letter: /[\u043B]/g, alternative: "l" },
491
+ { letter: /[\u041B]/g, alternative: "L" },
492
+ { letter: /[\u043C]/g, alternative: "m" },
493
+ { letter: /[\u041C]/g, alternative: "M" },
494
+ { letter: /[\u0070]/g, alternative: "r" },
495
+ { letter: /[\u0050]/g, alternative: "R" },
496
+ { letter: /[\u043F]/g, alternative: "p" },
497
+ { letter: /[\u041F]/g, alternative: "P" },
498
+ { letter: /[\u0441]/g, alternative: "s" },
499
+ { letter: /[\u0421]/g, alternative: "S" },
500
+ { letter: /[\u0442]/g, alternative: "t" },
501
+ { letter: /[\u0422]/g, alternative: "T" },
502
+ { letter: /[\u0443]/g, alternative: "u" },
503
+ { letter: /[\u0423]/g, alternative: "U" },
504
+ { letter: /[\u0444]/g, alternative: "f" },
505
+ { letter: /[\u0424]/g, alternative: "F" },
506
+ { letter: /[\u0445]/g, alternative: "kh" },
507
+ { letter: /[\u0425]/g, alternative: "Kh" },
508
+ { letter: /[\u0446]/g, alternative: "ts" },
509
+ { letter: /[\u0426]/g, alternative: "Ts" },
510
+ { letter: /[\u0447]/g, alternative: "ch" },
511
+ { letter: /[\u0427]/g, alternative: "Ch" },
512
+ { letter: /[\u0448]/g, alternative: "sh" },
513
+ { letter: /[\u0428]/g, alternative: "Sh" },
514
+ { letter: /[\u0449]/g, alternative: "shch" },
515
+ { letter: /[\u0429]/g, alternative: "Shch" },
516
+ { letter: /[\u044C\u042C]/g, alternative: "" },
517
+ { letter: /[\u0436]/g, alternative: "zh" },
518
+ { letter: /[\u0416]/g, alternative: "Zh" },
519
+ { letter: /[\u0437]/g, alternative: "z" },
520
+ { letter: /[\u0417]/g, alternative: "Z" },
521
+ { letter: /[\u0438]/g, alternative: "y" },
522
+ { letter: /[\u0418]/g, alternative: "Y" },
523
+ { letter: /^[\u0454]/g, alternative: "ye" },
524
+ { letter: /[\s][\u0454]/g, alternative: " ye" },
525
+ { letter: /[\u0454]/g, alternative: "ie" },
526
+ { letter: /^[\u0404]/g, alternative: "Ye" },
527
+ { letter: /[\s][\u0404]/g, alternative: " Ye" },
528
+ { letter: /[\u0404]/g, alternative: "IE" },
529
+ { letter: /^[\u0457]/g, alternative: "yi" },
530
+ { letter: /[\s][\u0457]/g, alternative: " yi" },
531
+ { letter: /[\u0457]/g, alternative: "i" },
532
+ { letter: /^[\u0407]/g, alternative: "Yi" },
533
+ { letter: /[\s][\u0407]/g, alternative: " Yi" },
534
+ { letter: /[\u0407]/g, alternative: "I" },
535
+ { letter: /^[\u0439]/g, alternative: "y" },
536
+ { letter: /[\s][\u0439]/g, alternative: " y" },
537
+ { letter: /[\u0439]/g, alternative: "i" },
538
+ { letter: /^[\u0419]/g, alternative: "Y" },
539
+ { letter: /[\s][\u0419]/g, alternative: " Y" },
540
+ { letter: /[\u0419]/g, alternative: "I" },
541
+ { letter: /^[\u044E]/g, alternative: "yu" },
542
+ { letter: /[\s][\u044E]/g, alternative: " yu" },
543
+ { letter: /[\u044E]/g, alternative: "iu" },
544
+ { letter: /^[\u042E]/g, alternative: "Yu" },
545
+ { letter: /[\s][\u042E]/g, alternative: " Yu" },
546
+ { letter: /[\u042E]/g, alternative: "IU" },
547
+ { letter: /^[\u044F]/g, alternative: "ya" },
548
+ { letter: /[\s][\u044F]/g, alternative: " ya" },
549
+ { letter: /[\u044F]/g, alternative: "ia" },
550
+ { letter: /^[\u042F]/g, alternative: "Ya" },
551
+ { letter: /[\s][\u042F]/g, alternative: " Ya" },
552
+ { letter: /[\u042F]/g, alternative: "IA" },
553
+ ],
554
+ // Language: Breton
555
+ // Source: http://www.omniglot.com/writing/breton.htm
556
+ br: [
557
+ { letter: /\u0063\u0027\u0068/g, alternative: "ch" },
558
+ { letter: /\u0043\u0027\u0048/g, alternative: "CH" },
559
+ { letter: /[\u00e2]/g, alternative: "a" },
560
+ { letter: /[\u00c2]/g, alternative: "A" },
561
+ { letter: /[\u00ea]/g, alternative: "e" },
562
+ { letter: /[\u00ca]/g, alternative: "E" },
563
+ { letter: /[\u00ee]/g, alternative: "i" },
564
+ { letter: /[\u00ce]/g, alternative: "I" },
565
+ { letter: /[\u00f4]/g, alternative: "o" },
566
+ { letter: /[\u00d4]/g, alternative: "O" },
567
+ { letter: /[\u00fb\u00f9\u00fc]/g, alternative: "u" },
568
+ { letter: /[\u00db\u00d9\u00dc]/g, alternative: "U" },
569
+ { letter: /[\u00f1]/g, alternative: "n" },
570
+ { letter: /[\u00d1]/g, alternative: "N" },
571
+ ],
572
+ // Language: Chamorro
573
+ // Source: http://www.omniglot.com/writing/chamorro.htm
574
+ ch: [
575
+ { letter: /[\u0027]/g, alternative: "" },
576
+ { letter: /[\u00e5]/g, alternative: "a" },
577
+ { letter: /[\u00c5]/g, alternative: "A" },
578
+ { letter: /[\u00f1]/g, alternative: "n" },
579
+ { letter: /[\u00d1]/g, alternative: "N" },
580
+ ],
581
+ // Language: Corsican
582
+ // Sources: http://www.omniglot.com/writing/corsican.htm https://en.wikipedia.org/wiki/Corsican_alphabet
583
+ co: [
584
+ { letter: /[\u00e2\u00e0]/g, alternative: "a" },
585
+ { letter: /[\u00c2\u00c0]/g, alternative: "A" },
586
+ { letter: /[\u00e6\u04d5]/g, alternative: "ae" },
587
+ { letter: /[\u00c6\u04d4]/g, alternative: "Ae" },
588
+ { letter: /[\u00e7]/g, alternative: "c" },
589
+ { letter: /[\u00c7]/g, alternative: "C" },
590
+ { letter: /[\u00e9\u00ea\u00e8\u00eb]/g, alternative: "e" },
591
+ { letter: /[\u00c9\u00ca\u00c8\u00cb]/g, alternative: "E" },
592
+ { letter: /[\u00ec\u00ee\u00ef]/g, alternative: "i" },
593
+ { letter: /[\u00cc\u00ce\u00cf]/g, alternative: "I" },
594
+ { letter: /[\u00f1]/g, alternative: "n" },
595
+ { letter: /[\u00d1]/g, alternative: "N" },
596
+ { letter: /[\u00f4\u00f2]/g, alternative: "o" },
597
+ { letter: /[\u00d4\u00d2]/g, alternative: "O" },
598
+ { letter: /[\u0153]/g, alternative: "oe" },
599
+ { letter: /[\u0152]]/g, alternative: "Oe" },
600
+ { letter: /[\u00f9\u00fc]/g, alternative: "u" },
601
+ { letter: /[\u00d9\u00dc]/g, alternative: "U" },
602
+ { letter: /[\u00ff]/g, alternative: "y" },
603
+ { letter: /[\u0178]/g, alternative: "Y" },
604
+ ],
605
+ // Language: Kashubian
606
+ // Sources: http://www.omniglot.com/writing/kashubian.htm https://en.wikipedia.org/wiki/Kashubian_language
607
+ csb: [
608
+ { letter: /[\u0105\u00e3]/g, alternative: "a" },
609
+ { letter: /[\u0104\u00c3]/g, alternative: "A" },
610
+ { letter: /[\u00e9\u00eb]/g, alternative: "e" },
611
+ { letter: /[\u00c9\u00cb]/g, alternative: "E" },
612
+ { letter: /[\u0142]/g, alternative: "l" },
613
+ { letter: /[\u0141]/g, alternative: "L" },
614
+ { letter: /[\u0144]/g, alternative: "n" },
615
+ { letter: /[\u0143]/g, alternative: "N" },
616
+ { letter: /[\u00f2\u00f3\u00f4]/g, alternative: "o" },
617
+ { letter: /[\u00d2\u00d3\u00d4]/g, alternative: "O" },
618
+ { letter: /[\u00f9]/g, alternative: "u" },
619
+ { letter: /[\u00d9]/g, alternative: "U" },
620
+ { letter: /[\u017c]/g, alternative: "z" },
621
+ { letter: /[\u017b]/g, alternative: "Z" },
622
+ ],
623
+ // Language: Welsh
624
+ // Sources: http://www.omniglot.com/writing/welsh.htm https://en.wikipedia.org/wiki/Welsh_orthography#Diacritics
625
+ cy: [
626
+ { letter: /[\u00e2]/g, alternative: "a" },
627
+ { letter: /[\u00c2]/g, alternative: "A" },
628
+ { letter: /[\u00ea]/g, alternative: "e" },
629
+ { letter: /[\u00ca]/g, alternative: "E" },
630
+ { letter: /[\u00ee]/g, alternative: "i" },
631
+ { letter: /[\u00ce]/g, alternative: "I" },
632
+ { letter: /[\u00f4]/g, alternative: "o" },
633
+ { letter: /[\u00d4]/g, alternative: "O" },
634
+ { letter: /[\u00fb]/g, alternative: "u" },
635
+ { letter: /[\u00db]/g, alternative: "U" },
636
+ { letter: /[\u0175]/g, alternative: "w" },
637
+ { letter: /[\u0174]/g, alternative: "W" },
638
+ { letter: /[\u0177]/g, alternative: "y" },
639
+ { letter: /[\u0176]/g, alternative: "Y" },
640
+ ],
641
+ // Language: Ewe
642
+ // Sources: http://www.omniglot.com/writing/ewe.htm https://en.wikipedia.org/wiki/Ewe_language#Writing_system
643
+ ee: [
644
+ { letter: /[\u0256]/g, alternative: "d" },
645
+ { letter: /[\u0189]/g, alternative: "D" },
646
+ { letter: /[\u025b]/g, alternative: "e" },
647
+ { letter: /[\u0190]/g, alternative: "E" },
648
+ { letter: /[\u0192]/g, alternative: "f" },
649
+ { letter: /[\u0191]/g, alternative: "F" },
650
+ { letter: /[\u0263]/g, alternative: "g" },
651
+ { letter: /[\u0194]/g, alternative: "G" },
652
+ { letter: /[\u014b]/g, alternative: "ng" },
653
+ { letter: /[\u014a]/g, alternative: "Ng" },
654
+ { letter: /[\u0254]/g, alternative: "o" },
655
+ { letter: /[\u0186]/g, alternative: "O" },
656
+ { letter: /[\u028b]/g, alternative: "w" },
657
+ { letter: /[\u01b2]/g, alternative: "W" },
658
+ { letter: /\u0061\u0303/g, alternative: "a" },
659
+ { letter: /[\u00e1\u00e0\u01ce\u00e2\u00e3]/g, alternative: "a" },
660
+ { letter: /\u0041\u0303/g, alternative: "A" },
661
+ { letter: /[\u00c1\u00c0\u01cd\u00c2\u00c3]/g, alternative: "A" },
662
+ { letter: /[\u00e9\u00e8\u011b\u00ea]/g, alternative: "e" },
663
+ { letter: /[\u00c9\u00c8\u011a\u00ca]/g, alternative: "E" },
664
+ { letter: /[\u00f3\u00f2\u01d2\u00f4]/g, alternative: "o" },
665
+ { letter: /[\u00d3\u00d2\u01d1\u00d4]/g, alternative: "O" },
666
+ { letter: /[\u00fa\u00f9\u01d4\u00fb]/g, alternative: "u" },
667
+ { letter: /[\u00da\u00d9\u01d3\u00db]/g, alternative: "U" },
668
+ { letter: /[\u00ed\u00ec\u01d0\u00ee]/g, alternative: "i" },
669
+ { letter: /[\u00cd\u00cc\u01cf\u00ce]/g, alternative: "I" },
670
+ ],
671
+ // Language: Estonian
672
+ // Sources: http://www.omniglot.com/writing/estonian.htm https://en.wikipedia.org/wiki/Estonian_orthography
673
+ // https://en.wikipedia.org/wiki/%C5%BD https://en.wikipedia.org/wiki/%C5%A0
674
+ et: [
675
+ { letter: /[\u0161]/g, alternative: "sh" },
676
+ { letter: /[\u0160]/g, alternative: "Sh" },
677
+ { letter: /[\u017e]/g, alternative: "zh" },
678
+ { letter: /[\u017d]/g, alternative: "Zh" },
679
+ { letter: /[\u00f5\u00f6]/g, alternative: "o" },
680
+ { letter: /[\u00d6\u00d5]/g, alternative: "O" },
681
+ { letter: /[\u00e4]/g, alternative: "a" },
682
+ { letter: /[\u00c4]/g, alternative: "A" },
683
+ { letter: /[\u00fc]/g, alternative: "u" },
684
+ { letter: /[\u00dc]/g, alternative: "U" },
685
+ ],
686
+ // Language: Basque
687
+ // Sources: http://www.omniglot.com/writing/basque.htm https://en.wikipedia.org/wiki/Basque_language#Writing_system
688
+ // https://en.wikipedia.org/wiki/Basque_alphabet
689
+ eu: [
690
+ { letter: /[\u00f1]/g, alternative: "n" },
691
+ { letter: /[\u00d1]/g, alternative: "N" },
692
+ { letter: /[\u00e7]/g, alternative: "c" },
693
+ { letter: /[\u00c7]/g, alternative: "C" },
694
+ { letter: /[\u00fc]/g, alternative: "u" },
695
+ { letter: /[\u00dc]/g, alternative: "U" },
696
+ ],
697
+ // Language: Fulah
698
+ // Sources: http://www.omniglot.com/writing/fula.htm https://en.wikipedia.org/wiki/Fula_language#Writing_systems
699
+ fuc: [
700
+ { letter: /[\u0253]/g, alternative: "b" },
701
+ { letter: /[\u0181]/g, alternative: "B" },
702
+ { letter: /[\u0257]/g, alternative: "d" },
703
+ { letter: /[\u018a]/g, alternative: "D" },
704
+ { letter: /[\u014b]/g, alternative: "ng" },
705
+ { letter: /[\u014a]/g, alternative: "Ng" },
706
+ { letter: /[\u0272\u00f1]/g, alternative: "ny" },
707
+ { letter: /[\u019d\u00d1]/g, alternative: "Ny" },
708
+ { letter: /[\u01b4]/g, alternative: "y" },
709
+ { letter: /[\u01b3]/g, alternative: "Y" },
710
+ { letter: /[\u0260]/g, alternative: "g" },
711
+ { letter: /[\u0193]/g, alternative: "G" },
712
+ ],
713
+ // Language: Fijian
714
+ // Source: http://www.omniglot.com/writing/fijian.htm
715
+ fj: [
716
+ { letter: /[\u0101]/g, alternative: "a" },
717
+ { letter: /[\u0100]/g, alternative: "A" },
718
+ { letter: /[\u0113]/g, alternative: "e" },
719
+ { letter: /[\u0112]/g, alternative: "E" },
720
+ { letter: /[\u012b]/g, alternative: "i" },
721
+ { letter: /[\u012a]/g, alternative: "I" },
722
+ { letter: /[\u016b]/g, alternative: "u" },
723
+ { letter: /[\u016a]/g, alternative: "U" },
724
+ { letter: /[\u014d]/g, alternative: "o" },
725
+ { letter: /[\u014c]/g, alternative: "O" },
726
+ ],
727
+ // Language: Arpitan (Franco-Provençal language)
728
+ // Source: http://www.omniglot.com/writing/francoprovencal.htm
729
+ frp: [
730
+ { letter: /[\u00e2]/g, alternative: "a" },
731
+ { letter: /[\u00c2]/g, alternative: "A" },
732
+ { letter: /[\u00ea\u00e8\u00e9]/g, alternative: "e" },
733
+ { letter: /[\u00ca\u00c8\u00c9]/g, alternative: "E" },
734
+ { letter: /[\u00ee]/g, alternative: "i" },
735
+ { letter: /[\u00ce]/g, alternative: "I" },
736
+ { letter: /[\u00fb\u00fc]/g, alternative: "u" },
737
+ { letter: /[\u00db\u00dc]/g, alternative: "U" },
738
+ { letter: /[\u00f4]/g, alternative: "o" },
739
+ { letter: /[\u00d4]/g, alternative: "O" },
740
+ ],
741
+ // Language: Friulian
742
+ // Sources: https://en.wikipedia.org/wiki/Friulian_language https://en.wikipedia.org/wiki/Faggin-Nazzi_alphabet
743
+ // http://www.omniglot.com/writing/friulian.htm
744
+ fur: [
745
+ { letter: /[\u00E7]/g, alternative: "c" },
746
+ { letter: /[\u00C7]/g, alternative: "C" },
747
+ { letter: /[\u00e0\u00e2]/g, alternative: "a" },
748
+ { letter: /[\u00c0\u00c2]/g, alternative: "A" },
749
+ { letter: /[\u00e8\u00ea]/g, alternative: "e" },
750
+ { letter: /[\u00c8\u00ca]/g, alternative: "E" },
751
+ { letter: /[\u00ec\u00ee]/g, alternative: "i" },
752
+ { letter: /[\u00cc\u00ce]/g, alternative: "I" },
753
+ { letter: /[\u00f2\u00f4]/g, alternative: "o" },
754
+ { letter: /[\u00d2\u00d4]/g, alternative: "O" },
755
+ { letter: /[\u00f9\u00fb]/g, alternative: "u" },
756
+ { letter: /[\u00d9\u00db]/g, alternative: "U" },
757
+ { letter: /[\u010d]/g, alternative: "c" },
758
+ { letter: /[\u010c]/g, alternative: "C" },
759
+ { letter: /[\u011f]/g, alternative: "g" },
760
+ { letter: /[\u011e]/g, alternative: "G" },
761
+ { letter: /[\u0161]/g, alternative: "s" },
762
+ { letter: /[\u0160]/g, alternative: "S" },
763
+ ],
764
+ // Language: Frisian
765
+ // Sources: https://en.wikipedia.org/wiki/West_Frisian_alphabet http://www.omniglot.com/writing/frisian.htm
766
+ fy: [
767
+ { letter: /[\u00e2\u0101\u00e4\u00e5]/g, alternative: "a" },
768
+ { letter: /[\u00c2\u0100\u00c4\u00c5]/g, alternative: "A" },
769
+ { letter: /[\u00ea\u00e9\u0113]/g, alternative: "e" },
770
+ { letter: /[\u00ca\u00c9\u0112]/g, alternative: "E" },
771
+ { letter: /[\u00f4\u00f6]/g, alternative: "o" },
772
+ { letter: /[\u00d4\u00d6]/g, alternative: "O" },
773
+ { letter: /[\u00fa\u00fb\u00fc]/g, alternative: "u" },
774
+ { letter: /[\u00da\u00db\u00dc]/g, alternative: "U" },
775
+ { letter: /[\u00ed]/g, alternative: "i" },
776
+ { letter: /[\u00cd]/g, alternative: "I" },
777
+ { letter: /[\u0111\u00f0]/g, alternative: "d" },
778
+ { letter: /[\u0110\u00d0]/g, alternative: "D" },
779
+ ],
780
+ // Language: Irish
781
+ // Source: https://en.wikipedia.org/wiki/Irish_orthography
782
+ ga: [
783
+ { letter: /[\u00e1]/g, alternative: "a" },
784
+ { letter: /[\u00c1]/g, alternative: "A" },
785
+ { letter: /[\u00e9]/g, alternative: "e" },
786
+ { letter: /[\u00c9]/g, alternative: "E" },
787
+ { letter: /[\u00f3]/g, alternative: "o" },
788
+ { letter: /[\u00d3]/g, alternative: "O" },
789
+ { letter: /[\u00fa]/g, alternative: "u" },
790
+ { letter: /[\u00da]/g, alternative: "U" },
791
+ { letter: /[\u00ed]/g, alternative: "i" },
792
+ { letter: /[\u00cd]/g, alternative: "I" },
793
+ ],
794
+ // Language: Scottish Gaelic
795
+ // Sources: https://en.wikipedia.org/wiki/Scottish_Gaelic_orthography http://www.omniglot.com/writing/gaelic.htm
796
+ gd: [
797
+ { letter: /[\u00e0]/g, alternative: "a" },
798
+ { letter: /[\u00c0]/g, alternative: "A" },
799
+ { letter: /[\u00e8]/g, alternative: "e" },
800
+ { letter: /[\u00c8]/g, alternative: "E" },
801
+ { letter: /[\u00f2]/g, alternative: "o" },
802
+ { letter: /[\u00d2]/g, alternative: "O" },
803
+ { letter: /[\u00f9]/g, alternative: "u" },
804
+ { letter: /[\u00d9]/g, alternative: "U" },
805
+ { letter: /[\u00ec]/g, alternative: "i" },
806
+ { letter: /[\u00cc]/g, alternative: "I" },
807
+ ],
808
+ // Language: Galician
809
+ // Sources: https://en.wikipedia.org/wiki/Diacritic https://en.wikipedia.org/wiki/Galician_Alphabet
810
+ gl: [
811
+ { letter: /[\u00e1\u00e0]/g, alternative: "a" },
812
+ { letter: /[\u00c1\u00c0]/g, alternative: "A" },
813
+ { letter: /[\u00e9\u00ea]/g, alternative: "e" },
814
+ { letter: /[\u00c9\u00ca]/g, alternative: "E" },
815
+ { letter: /[\u00ed\u00ef]/g, alternative: "i" },
816
+ { letter: /[\u00cd\u00cf]/g, alternative: "I" },
817
+ { letter: /[\u00f3]/g, alternative: "o" },
818
+ { letter: /[\u00d3]/g, alternative: "O" },
819
+ { letter: /[\u00fa\u00fc]/g, alternative: "u" },
820
+ { letter: /[\u00da\u00dc]/g, alternative: "U" },
821
+ { letter: /[\u00e7]/g, alternative: "c" },
822
+ { letter: /[\u00c7]/g, alternative: "C" },
823
+ { letter: /[\u00f1]/g, alternative: "n" },
824
+ { letter: /[\u00d1]/g, alternative: "N" },
825
+ ],
826
+ // Language: Guarani
827
+ // Sources: https://en.wikipedia.org/wiki/Guarani_alphabet http://www.omniglot.com/writing/guarani.htm
828
+ gn: [
829
+ { letter: /[\u2019]/g, alternative: "" },
830
+ { letter: /\u0067\u0303/g, alternative: "g" },
831
+ { letter: /\u0047\u0303/g, alternative: "G" },
832
+ { letter: /[\u00e3]/g, alternative: "a" },
833
+ { letter: /[\u00c3]/g, alternative: "A" },
834
+ { letter: /[\u1ebd]/g, alternative: "e" },
835
+ { letter: /[\u1ebc]/g, alternative: "E" },
836
+ { letter: /[\u0129]/g, alternative: "i" },
837
+ { letter: /[\u0128]/g, alternative: "I" },
838
+ { letter: /[\u00f5]/g, alternative: "o" },
839
+ { letter: /[\u00d5]/g, alternative: "O" },
840
+ { letter: /[\u00f1]/g, alternative: "n" },
841
+ { letter: /[\u00d1]/g, alternative: "N" },
842
+ { letter: /[\u0169]/g, alternative: "u" },
843
+ { letter: /[\u0168]/g, alternative: "U" },
844
+ { letter: /[\u1ef9]/g, alternative: "y" },
845
+ { letter: /[\u1ef8]/g, alternative: "Y" },
846
+ ],
847
+ // Language: Swiss German
848
+ // Source: http://www.omniglot.com/writing/swissgerman.htm
849
+ gsw: [
850
+ { letter: /[\u00e4]/g, alternative: "a" },
851
+ { letter: /[\u00c4]/g, alternative: "A" },
852
+ { letter: /[\u00f6]/g, alternative: "o" },
853
+ { letter: /[\u00d6]/g, alternative: "O" },
854
+ { letter: /[\u00fc]/g, alternative: "u" },
855
+ { letter: /[\u00dc]/g, alternative: "U" },
856
+ ],
857
+ // Language: Haitian Creole
858
+ // Sources: https://en.wikipedia.org/wiki/Haitian_Creole http://www.omniglot.com/writing/haitiancreole.htm
859
+ hat: [
860
+ { letter: /[\u00e8]/g, alternative: "e" },
861
+ { letter: /[\u00c8]/g, alternative: "E" },
862
+ { letter: /[\u00f2]/g, alternative: "o" },
863
+ { letter: /[\u00d2]/g, alternative: "O" },
864
+ ],
865
+ // Language: Hawaiian
866
+ // Sources: https://en.wikipedia.org/wiki/Hawaiian_language#Macron http://www.omniglot.com/writing/hawaiian.htm
867
+ haw: [
868
+ { letter: /[\u02bb\u0027\u2019]/g, alternative: "" },
869
+ { letter: /[\u0101]/g, alternative: "a" },
870
+ { letter: /[\u0113]/g, alternative: "e" },
871
+ { letter: /[\u012b]/g, alternative: "i" },
872
+ { letter: /[\u014d]/g, alternative: "o" },
873
+ { letter: /[\u016b]/g, alternative: "u" },
874
+ { letter: /[\u0100]/g, alternative: "A" },
875
+ { letter: /[\u0112]/g, alternative: "E" },
876
+ { letter: /[\u012a]/g, alternative: "I" },
877
+ { letter: /[\u014c]/g, alternative: "O" },
878
+ { letter: /[\u016a]/g, alternative: "U" },
879
+ ],
880
+ // Language: Croatian
881
+ // Sources: https://en.wikipedia.org/wiki/Gaj%27s_Latin_alphabet https://en.wikipedia.org/wiki/D_with_stroke
882
+ // http://www.omniglot.com/writing/croatian.htm
883
+ hr: [
884
+ { letter: /[\u010d\u0107]/g, alternative: "c" },
885
+ { letter: /[\u010c\u0106]/g, alternative: "C" },
886
+ { letter: /[\u0111]/g, alternative: "dj" },
887
+ { letter: /[\u0110]/g, alternative: "Dj" },
888
+ { letter: /[\u0161]/g, alternative: "s" },
889
+ { letter: /[\u0160]/g, alternative: "S" },
890
+ { letter: /[\u017e]/g, alternative: "z" },
891
+ { letter: /[\u017d]/g, alternative: "Z" },
892
+ { letter: /[\u01c4]/g, alternative: "DZ" },
893
+ { letter: /[\u01c5]/g, alternative: "Dz" },
894
+ { letter: /[\u01c6]/g, alternative: "dz" },
895
+ ],
896
+ // Language: Georgian
897
+ // The Georgian language does not use capital letters.
898
+ // Sources: https://en.wikipedia.org/wiki/Romanization_of_Georgian (national system)
899
+ ka: [
900
+ { letter: /[\u10d0]/g, alternative: "a" },
901
+ { letter: /[\u10d1]/g, alternative: "b" },
902
+ { letter: /[\u10d2]/g, alternative: "g" },
903
+ { letter: /[\u10d3]/g, alternative: "d" },
904
+ { letter: /[\u10d4]/g, alternative: "e" },
905
+ { letter: /[\u10d5]/g, alternative: "v" },
906
+ { letter: /[\u10d6]/g, alternative: "z" },
907
+ { letter: /[\u10d7]/g, alternative: "t" },
908
+ { letter: /[\u10d8]/g, alternative: "i" },
909
+ { letter: /[\u10d9]/g, alternative: "k" },
910
+ { letter: /[\u10da]/g, alternative: "l" },
911
+ { letter: /[\u10db]/g, alternative: "m" },
912
+ { letter: /[\u10dc]/g, alternative: "n" },
913
+ { letter: /[\u10dd]/g, alternative: "o" },
914
+ { letter: /[\u10de]/g, alternative: "p" },
915
+ { letter: /[\u10df]/g, alternative: "zh" },
916
+ { letter: /[\u10e0]/g, alternative: "r" },
917
+ { letter: /[\u10e1]/g, alternative: "s" },
918
+ { letter: /[\u10e2]/g, alternative: "t" },
919
+ { letter: /[\u10e3]/g, alternative: "u" },
920
+ { letter: /[\u10e4]/g, alternative: "p" },
921
+ { letter: /[\u10e5]/g, alternative: "k" },
922
+ { letter: /[\u10e6]/g, alternative: "gh" },
923
+ { letter: /[\u10e7]/g, alternative: "q" },
924
+ { letter: /[\u10e8]/g, alternative: "sh" },
925
+ { letter: /[\u10e9]/g, alternative: "ch" },
926
+ { letter: /[\u10ea]/g, alternative: "ts" },
927
+ { letter: /[\u10eb]/g, alternative: "dz" },
928
+ { letter: /[\u10ec]/g, alternative: "ts" },
929
+ { letter: /[\u10ed]/g, alternative: "ch" },
930
+ { letter: /[\u10ee]/g, alternative: "kh" },
931
+ { letter: /[\u10ef]/g, alternative: "j" },
932
+ { letter: /[\u10f0]/g, alternative: "h" },
933
+ ],
934
+ // Language: Greenlandic.
935
+ // Source: https://en.wikipedia.org/wiki/Greenlandic_language#Orthography
936
+ kal: [
937
+ { letter: /[\u00E5]/g, alternative: "aa" },
938
+ { letter: /[\u00C5]/g, alternative: "Aa" },
939
+ { letter: /[\u00E6\u04D5]/g, alternative: "ae" },
940
+ { letter: /[\u00C6\u04D4]/g, alternative: "Ae" },
941
+ { letter: /[\u00C4]/g, alternative: "Ae" },
942
+ { letter: /[\u00F8]/g, alternative: "oe" },
943
+ { letter: /[\u00D8]/g, alternative: "Oe" },
944
+ ],
945
+ // Language: Kinyarwanda.
946
+ // Source: https://en.wikipedia.org/wiki/Kinyarwanda
947
+ kin: [
948
+ { letter: /[\u2019\u0027]/g, alternative: "" },
949
+ ],
950
+ // Language: Luxembourgish.
951
+ // Source: http://www.omniglot.com/writing/luxembourgish.htm
952
+ lb: [
953
+ { letter: /[\u00e4]/g, alternative: "a" },
954
+ { letter: /[\u00c4]/g, alternative: "A" },
955
+ { letter: /[\u00eb\u00e9]/g, alternative: "e" },
956
+ { letter: /[\u00cb\u00c9]/g, alternative: "E" },
957
+ ],
958
+ // Language: Limburgish.
959
+ // Source: http://www.omniglot.com/writing/limburgish.htm
960
+ li: [
961
+ { letter: /[\u00e1\u00e2\u00e0\u00e4]/g, alternative: "a" },
962
+ { letter: /[\u00c1\u00c2\u00c0\u00c4]/g, alternative: "A" },
963
+ { letter: /[\u00eb\u00e8\u00ea]/g, alternative: "e" },
964
+ { letter: /[\u00cb\u00c8\u00ca]/g, alternative: "E" },
965
+ { letter: /[\u00f6\u00f3]/g, alternative: "o" },
966
+ { letter: /[\u00d6\u00d3]/g, alternative: "O" },
967
+ ],
968
+ // Language: Lingala.
969
+ // Sources: https://en.wikipedia.org/wiki/Lingala#Writing_system http://www.omniglot.com/writing/lingala.htm
970
+ lin: [
971
+ { letter: /[\u00e1\u00e2\u01ce]/g, alternative: "a" },
972
+ { letter: /[\u00c1\u00c2\u01cd]/g, alternative: "A" },
973
+ { letter: /\u025b\u0301/g, alternative: "e" },
974
+ { letter: /\u025b\u0302/g, alternative: "e" },
975
+ { letter: /\u025b\u030c/g, alternative: "e" },
976
+ { letter: /[\u00e9\u00ea\u011b\u025b]/g, alternative: "e" },
977
+ { letter: /\u0190\u0301/g, alternative: "E" },
978
+ { letter: /\u0190\u0302/g, alternative: "E" },
979
+ { letter: /\u0190\u030c/g, alternative: "E" },
980
+ { letter: /[\u00c9\u00ca\u011a\u0190]/g, alternative: "E" },
981
+ { letter: /[\u00ed\u00ee\u01d0]/g, alternative: "i" },
982
+ { letter: /[\u00cd\u00ce\u01cf]/g, alternative: "I" },
983
+ { letter: /\u0254\u0301/g, alternative: "o" },
984
+ { letter: /\u0254\u0302/g, alternative: "o" },
985
+ { letter: /\u0254\u030c/g, alternative: "o" },
986
+ { letter: /[\u00f3\u00f4\u01d2\u0254]/g, alternative: "o" },
987
+ { letter: /\u0186\u0301/g, alternative: "O" },
988
+ { letter: /\u0186\u0302/g, alternative: "O" },
989
+ { letter: /\u0186\u030c/g, alternative: "O" },
990
+ { letter: /[\u00d3\u00d4\u01d1\u0186]/g, alternative: "O" },
991
+ { letter: /[\u00fa]/g, alternative: "u" },
992
+ { letter: /[\u00da]/g, alternative: "U" },
993
+ ],
994
+ // Language: Lithuanian.
995
+ // Sources: https://en.wikipedia.org/wiki/Lithuanian_orthography http://www.omniglot.com/writing/lithuanian.htm
996
+ lt: [
997
+ { letter: /[\u0105]/g, alternative: "a" },
998
+ { letter: /[\u0104]/g, alternative: "A" },
999
+ { letter: /[\u010d]/g, alternative: "c" },
1000
+ { letter: /[\u010c]/g, alternative: "C" },
1001
+ { letter: /[\u0119\u0117]/g, alternative: "e" },
1002
+ { letter: /[\u0118\u0116]/g, alternative: "E" },
1003
+ { letter: /[\u012f]/g, alternative: "i" },
1004
+ { letter: /[\u012e]/g, alternative: "I" },
1005
+ { letter: /[\u0161]/g, alternative: "s" },
1006
+ { letter: /[\u0160]/g, alternative: "S" },
1007
+ { letter: /[\u0173\u016b]/g, alternative: "u" },
1008
+ { letter: /[\u0172\u016a]/g, alternative: "U" },
1009
+ { letter: /[\u017e]/g, alternative: "z" },
1010
+ { letter: /[\u017d]/g, alternative: "Z" },
1011
+ ],
1012
+ // Language: Malagasy.
1013
+ // Source: http://www.omniglot.com/writing/malagasy.htm
1014
+ mg: [
1015
+ { letter: /[\u00f4]/g, alternative: "ao" },
1016
+ { letter: /[\u00d4]/g, alternative: "Ao" },
1017
+ ],
1018
+ // Language: Macedonian.
1019
+ // Source: http://www.omniglot.com/writing/macedonian.htm
1020
+ mk: [
1021
+ { letter: /[\u0430]/g, alternative: "a" },
1022
+ { letter: /[\u0410]/g, alternative: "A" },
1023
+ { letter: /[\u0431]/g, alternative: "b" },
1024
+ { letter: /[\u0411]/g, alternative: "B" },
1025
+ { letter: /[\u0432]/g, alternative: "v" },
1026
+ { letter: /[\u0412]/g, alternative: "V" },
1027
+ { letter: /[\u0433]/g, alternative: "g" },
1028
+ { letter: /[\u0413]/g, alternative: "G" },
1029
+ { letter: /[\u0434]/g, alternative: "d" },
1030
+ { letter: /[\u0414]/g, alternative: "D" },
1031
+ { letter: /[\u0453]/g, alternative: "gj" },
1032
+ { letter: /[\u0403]/g, alternative: "Gj" },
1033
+ { letter: /[\u0435]/g, alternative: "e" },
1034
+ { letter: /[\u0415]/g, alternative: "E" },
1035
+ { letter: /[\u0436]/g, alternative: "zh" },
1036
+ { letter: /[\u0416]/g, alternative: "Zh" },
1037
+ { letter: /[\u0437]/g, alternative: "z" },
1038
+ { letter: /[\u0417]/g, alternative: "Z" },
1039
+ { letter: /[\u0455]/g, alternative: "dz" },
1040
+ { letter: /[\u0405]/g, alternative: "Dz" },
1041
+ { letter: /[\u0438]/g, alternative: "i" },
1042
+ { letter: /[\u0418]/g, alternative: "I" },
1043
+ { letter: /[\u0458]/g, alternative: "j" },
1044
+ { letter: /[\u0408]/g, alternative: "J" },
1045
+ { letter: /[\u043A]/g, alternative: "k" },
1046
+ { letter: /[\u041A]/g, alternative: "K" },
1047
+ { letter: /[\u043B]/g, alternative: "l" },
1048
+ { letter: /[\u041B]/g, alternative: "L" },
1049
+ { letter: /[\u0459]/g, alternative: "lj" },
1050
+ { letter: /[\u0409]/g, alternative: "Lj" },
1051
+ { letter: /[\u043C]/g, alternative: "m" },
1052
+ { letter: /[\u041C]/g, alternative: "M" },
1053
+ { letter: /[\u043D]/g, alternative: "n" },
1054
+ { letter: /[\u041D]/g, alternative: "N" },
1055
+ { letter: /[\u045A]/g, alternative: "nj" },
1056
+ { letter: /[\u040A]/g, alternative: "Nj" },
1057
+ { letter: /[\u043E]/g, alternative: "o" },
1058
+ { letter: /[\u041E]/g, alternative: "O" },
1059
+ { letter: /[\u0440]/g, alternative: "r" },
1060
+ { letter: /[\u0420]/g, alternative: "R" },
1061
+ { letter: /[\u043F]/g, alternative: "p" },
1062
+ { letter: /[\u041F]/g, alternative: "P" },
1063
+ { letter: /[\u0441]/g, alternative: "s" },
1064
+ { letter: /[\u0421]/g, alternative: "S" },
1065
+ { letter: /[\u0442]/g, alternative: "t" },
1066
+ { letter: /[\u0422]/g, alternative: "T" },
1067
+ { letter: /[\u045C]/g, alternative: "kj" },
1068
+ { letter: /[\u040C]/g, alternative: "Kj" },
1069
+ { letter: /[\u0443]/g, alternative: "u" },
1070
+ { letter: /[\u0423]/g, alternative: "U" },
1071
+ { letter: /[\u0444]/g, alternative: "f" },
1072
+ { letter: /[\u0424]/g, alternative: "F" },
1073
+ { letter: /[\u0445]/g, alternative: "h" },
1074
+ { letter: /[\u0425]/g, alternative: "H" },
1075
+ { letter: /[\u0446]/g, alternative: "c" },
1076
+ { letter: /[\u0426]/g, alternative: "C" },
1077
+ { letter: /[\u0447]/g, alternative: "ch" },
1078
+ { letter: /[\u0427]/g, alternative: "Ch" },
1079
+ { letter: /[\u045F]/g, alternative: "dj" },
1080
+ { letter: /[\u040F]/g, alternative: "Dj" },
1081
+ { letter: /[\u0448]/g, alternative: "sh" },
1082
+ { letter: /[\u0428]/g, alternative: "Sh" },
1083
+ ],
1084
+ // Language: Maori.
1085
+ // Source: http://www.omniglot.com/writing/maori.htm
1086
+ mri: [
1087
+ { letter: /[\u0101]/g, alternative: "aa" },
1088
+ { letter: /[\u0100]/g, alternative: "Aa" },
1089
+ { letter: /[\u0113]/g, alternative: "ee" },
1090
+ { letter: /[\u0112]/g, alternative: "Ee" },
1091
+ { letter: /[\u012b]/g, alternative: "ii" },
1092
+ { letter: /[\u012a]/g, alternative: "Ii" },
1093
+ { letter: /[\u014d]/g, alternative: "oo" },
1094
+ { letter: /[\u014c]/g, alternative: "Oo" },
1095
+ { letter: /[\u016b]/g, alternative: "uu" },
1096
+ { letter: /[\u016a]/g, alternative: "Uu" },
1097
+ ],
1098
+ // Language: Mirandese.
1099
+ // Source: http://www.omniglot.com/writing/mirandese.htm
1100
+ mwl: [
1101
+ { letter: /[\u00e7]/g, alternative: "c" },
1102
+ { letter: /[\u00c7]/g, alternative: "C" },
1103
+ { letter: /[\u00e1]/g, alternative: "a" },
1104
+ { letter: /[\u00c1]/g, alternative: "A" },
1105
+ { letter: /[\u00e9\u00ea]/g, alternative: "e" },
1106
+ { letter: /[\u00c9\u00ca]/g, alternative: "E" },
1107
+ { letter: /[\u00ed]/g, alternative: "i" },
1108
+ { letter: /[\u00cd]/g, alternative: "I" },
1109
+ { letter: /[\u00f3\u00f4]/g, alternative: "o" },
1110
+ { letter: /[\u00d3\u00d4]/g, alternative: "O" },
1111
+ { letter: /[\u00fa\u0169]/g, alternative: "u" },
1112
+ { letter: /[\u00da\u0168]/g, alternative: "U" },
1113
+ ],
1114
+ // Language: Occitan.
1115
+ // Sources: http://www.omniglot.com/writing/oromo.htm https://en.wikipedia.org/wiki/Occitan_alphabet
1116
+ oci: [
1117
+ { letter: /[\u00e7]/g, alternative: "c" },
1118
+ { letter: /[\u00c7]/g, alternative: "C" },
1119
+ { letter: /[\u00e0\u00e1]/g, alternative: "a" },
1120
+ { letter: /[\u00c0\u00c1]/g, alternative: "A" },
1121
+ { letter: /[\u00e8\u00e9]/g, alternative: "e" },
1122
+ { letter: /[\u00c8\u00c9]/g, alternative: "E" },
1123
+ { letter: /[\u00ed\u00ef]/g, alternative: "i" },
1124
+ { letter: /[\u00cd\u00cf]/g, alternative: "I" },
1125
+ { letter: /[\u00f2\u00f3]/g, alternative: "o" },
1126
+ { letter: /[\u00d2\u00d3]/g, alternative: "O" },
1127
+ { letter: /[\u00fa\u00fc]/g, alternative: "u" },
1128
+ { letter: /[\u00da\u00dc]/g, alternative: "U" },
1129
+ { letter: /[\u00b7]/g, alternative: "" },
1130
+ ],
1131
+ // Language: Oromo.
1132
+ // Source: http://www.omniglot.com/writing/occitan.htm
1133
+ orm: [
1134
+ { letter: /[\u0027]/g, alternative: "" },
1135
+ ],
1136
+ // Language: Portuguese.
1137
+ // Source: https://en.wikipedia.org/wiki/Portuguese_orthography http://www.omniglot.com/writing/portuguese.htm
1138
+ pt: [
1139
+ { letter: /[\u00e7]/g, alternative: "c" },
1140
+ { letter: /[\u00c7]/g, alternative: "C" },
1141
+ { letter: /[\u00e1\u00e2\u00e3\u00e0]/g, alternative: "a" },
1142
+ { letter: /[\u00c1\u00c2\u00c3\u00c0]/g, alternative: "A" },
1143
+ { letter: /[\u00e9\u00ea]/g, alternative: "e" },
1144
+ { letter: /[\u00c9\u00ca]/g, alternative: "E" },
1145
+ { letter: /[\u00ed]/g, alternative: "i" },
1146
+ { letter: /[\u00cd]/g, alternative: "I" },
1147
+ { letter: /[\u00f3\u00f4\u00f5]/g, alternative: "o" },
1148
+ { letter: /[\u00d3\u00d4\u00d5]/g, alternative: "O" },
1149
+ { letter: /[\u00fa]/g, alternative: "u" },
1150
+ { letter: /[\u00da]/g, alternative: "U" },
1151
+ ],
1152
+ // Language: Romansh Vallader.
1153
+ // Source: https://en.wikipedia.org/wiki/Romansh_language#Orthography http://www.omniglot.com/writing/romansh.htm
1154
+ roh: [
1155
+ { letter: /[\u00e9\u00e8\u00ea]/g, alternative: "e" },
1156
+ { letter: /[\u00c9\u00c8\u00ca]/g, alternative: "E" },
1157
+ { letter: /[\u00ef]/g, alternative: "i" },
1158
+ { letter: /[\u00cf]/g, alternative: "I" },
1159
+ { letter: /[\u00f6]/g, alternative: "oe" },
1160
+ { letter: /[\u00d6]/g, alternative: "Oe" },
1161
+ { letter: /[\u00fc]/g, alternative: "ue" },
1162
+ { letter: /[\u00dc]/g, alternative: "Ue" },
1163
+ { letter: /[\u00e4]/g, alternative: "ae" },
1164
+ { letter: /[\u00c4]/g, alternative: "Ae" },
1165
+ ],
1166
+ // Language: Aromanian.
1167
+ // Sources: https://en.wikipedia.org/wiki/Aromanian_alphabet http://www.omniglot.com/writing/aromanian.htm
1168
+ rup: [
1169
+ { letter: /[\u00e3]/g, alternative: "a" },
1170
+ { letter: /[\u00c3]/g, alternative: "A" },
1171
+ ],
1172
+ // Language: Romanian.
1173
+ // Sources: http://forum.wordreference.com/threads/romanian-transliteration.3193544/#post-16161251
1174
+ // https://en.wikipedia.org/wiki/Romanian_alphabet http://www.omniglot.com/writing/romanian.htm
1175
+ ro: [
1176
+ { letter: /[\u0103\u00e2]/g, alternative: "a" },
1177
+ { letter: /[\u0102\u00c2]/g, alternative: "A" },
1178
+ { letter: /[\u00ee]/g, alternative: "i" },
1179
+ { letter: /[\u00ce]/g, alternative: "I" },
1180
+ { letter: /[\u0219\u015f]/g, alternative: "s" },
1181
+ { letter: /[\u0218\u015e]/g, alternative: "S" },
1182
+ { letter: /[\u021b\u0163]/g, alternative: "t" },
1183
+ { letter: /[\u021a\u0162]/g, alternative: "T" },
1184
+ ],
1185
+ // Language: Klingon.
1186
+ // Sources: http://www.omniglot.com/conscripts/klingon.htm https://en.wikipedia.org/wiki/Klingon_language#Writing_systems
1187
+ // This translation module only works for Klingon written in Latin characters. KLI PlqaD script is not supported yet.
1188
+ tlh: [
1189
+ { letter: /[\u2019\u0027]/g, alternative: "" },
1190
+ ],
1191
+ // Language: Slovak.
1192
+ // Sources: https://en.wikipedia.org/wiki/Dz_(digraph) https://en.wikipedia.org/wiki/Slovak_orthography
1193
+ // http://www.omniglot.com/writing/slovak.htm
1194
+ sk: [
1195
+ { letter: /[\u01c4]/g, alternative: "DZ" },
1196
+ { letter: /[\u01c5]/g, alternative: "Dz" },
1197
+ { letter: /[\u01c6]/g, alternative: "dz" },
1198
+ { letter: /[\u00e1\u00e4]/g, alternative: "a" },
1199
+ { letter: /[\u00c1\u00c4]/g, alternative: "A" },
1200
+ { letter: /[\u010d]/g, alternative: "c" },
1201
+ { letter: /[\u010c]/g, alternative: "C" },
1202
+ { letter: /[\u010f]/g, alternative: "d" },
1203
+ { letter: /[\u010e]/g, alternative: "D" },
1204
+ { letter: /[\u00e9]/g, alternative: "e" },
1205
+ { letter: /[\u00c9]/g, alternative: "E" },
1206
+ { letter: /[\u00ed]/g, alternative: "i" },
1207
+ { letter: /[\u00cd]/g, alternative: "I" },
1208
+ { letter: /[\u013e\u013a]/g, alternative: "l" },
1209
+ { letter: /[\u013d\u0139]/g, alternative: "L" },
1210
+ { letter: /[\u0148]/g, alternative: "n" },
1211
+ { letter: /[\u0147]/g, alternative: "N" },
1212
+ { letter: /[\u00f3\u00f4]/g, alternative: "o" },
1213
+ { letter: /[\u00d3\u00d4]/g, alternative: "O" },
1214
+ { letter: /[\u0155]/g, alternative: "r" },
1215
+ { letter: /[\u0154]/g, alternative: "R" },
1216
+ { letter: /[\u0161]/g, alternative: "s" },
1217
+ { letter: /[\u0160]/g, alternative: "S" },
1218
+ { letter: /[\u0165]/g, alternative: "t" },
1219
+ { letter: /[\u0164]/g, alternative: "T" },
1220
+ { letter: /[\u00fa]/g, alternative: "u" },
1221
+ { letter: /[\u00da]/g, alternative: "U" },
1222
+ { letter: /[\u00fd]/g, alternative: "y" },
1223
+ { letter: /[\u00dd]/g, alternative: "Y" },
1224
+ { letter: /[\u017e]/g, alternative: "z" },
1225
+ { letter: /[\u017d]/g, alternative: "Z" },
1226
+ ],
1227
+ // Language: Slovenian.
1228
+ // Sources: https://en.wikipedia.org/wiki/Slovene_alphabet http://www.omniglot.com/writing/slovene.htm
1229
+ sl: [
1230
+ { letter: /[\u010d\u0107]/g, alternative: "c" },
1231
+ { letter: /[\u010c\u0106]/g, alternative: "C" },
1232
+ { letter: /[\u0111]/g, alternative: "d" },
1233
+ { letter: /[\u0110]/g, alternative: "D" },
1234
+ { letter: /[\u0161]/g, alternative: "s" },
1235
+ { letter: /[\u0160]/g, alternative: "S" },
1236
+ { letter: /[\u017e]/g, alternative: "z" },
1237
+ { letter: /[\u017d]/g, alternative: "Z" },
1238
+ { letter: /[\u00e0\u00e1\u0203\u0201]/g, alternative: "a" },
1239
+ { letter: /[\u00c0\u00c1\u0202\u0200]/g, alternative: "A" },
1240
+ { letter: /[\u00e8\u00e9\u0207\u0205]/g, alternative: "e" },
1241
+ { letter: /\u01dd\u0300/g, alternative: "e" },
1242
+ { letter: /\u01dd\u030f/g, alternative: "e" },
1243
+ { letter: /\u1eb9\u0301/g, alternative: "e" },
1244
+ { letter: /\u1eb9\u0311/g, alternative: "e" },
1245
+ { letter: /[\u00c8\u00c9\u0206\u0204]/g, alternative: "E" },
1246
+ { letter: /\u018e\u030f/g, alternative: "E" },
1247
+ { letter: /\u018e\u0300/g, alternative: "E" },
1248
+ { letter: /\u1eb8\u0311/g, alternative: "E" },
1249
+ { letter: /\u1eb8\u0301/g, alternative: "E" },
1250
+ { letter: /[\u00ec\u00ed\u020b\u0209]/g, alternative: "i" },
1251
+ { letter: /[\u00cc\u00cd\u020a\u0208]/g, alternative: "I" },
1252
+ { letter: /[\u00f2\u00f3\u020f\u020d]/g, alternative: "o" },
1253
+ { letter: /\u1ecd\u0311/g, alternative: "o" },
1254
+ { letter: /\u1ecd\u0301/g, alternative: "o" },
1255
+ { letter: /\u1ecc\u0311/g, alternative: "O" },
1256
+ { letter: /\u1ecc\u0301/g, alternative: "O" },
1257
+ { letter: /[\u00d2\u00d3\u020e\u020c]/g, alternative: "O" },
1258
+ { letter: /[\u00f9\u00fa\u0217\u0215]/g, alternative: "u" },
1259
+ { letter: /[\u00d9\u00da\u0216\u0214]/g, alternative: "U" },
1260
+ { letter: /[\u0155\u0213]/g, alternative: "r" },
1261
+ { letter: /[\u0154\u0212]/g, alternative: "R" },
1262
+ ],
1263
+ // Language: Albanian.
1264
+ // Sources: https://en.wikipedia.org/wiki/Albanian_alphabet http://www.omniglot.com/writing/albanian.htm
1265
+ sq: [
1266
+ { letter: /[\u00e7]/g, alternative: "c" },
1267
+ { letter: /[\u00c7]/g, alternative: "C" },
1268
+ { letter: /[\u00eb]/g, alternative: "e" },
1269
+ { letter: /[\u00cb]/g, alternative: "E" },
1270
+ ],
1271
+ // Language: Hungarian.
1272
+ // Sources: http://forum.wordreference.com/threads/hungarian-transliteration.3193022/#post-16166901
1273
+ // http://www.omniglot.com/writing/hungarian.htm
1274
+ hu: [
1275
+ { letter: /[\u00e1]/g, alternative: "a" },
1276
+ { letter: /[\u00c1]/g, alternative: "A" },
1277
+ { letter: /[\u00e9]/g, alternative: "e" },
1278
+ { letter: /[\u00c9]/g, alternative: "E" },
1279
+ { letter: /[\u00ed]/g, alternative: "i" },
1280
+ { letter: /[\u00cd]/g, alternative: "I" },
1281
+ { letter: /[\u00f3\u00f6\u0151]/g, alternative: "o" },
1282
+ { letter: /[\u00d3\u00d6\u0150]/g, alternative: "O" },
1283
+ { letter: /[\u00fa\u00fc\u0171]/g, alternative: "u" },
1284
+ { letter: /[\u00da\u00dc\u0170]/g, alternative: "U" },
1285
+ ],
1286
+ // Language: Sardinian.
1287
+ // Sources: http://www.omniglot.com/writing/sardinian.htm https://en.wikipedia.org/wiki/Sardinian_language
1288
+ srd: [
1289
+ { letter: /[\u00e7]/g, alternative: "c" },
1290
+ { letter: /[\u00c7]/g, alternative: "C" },
1291
+ { letter: /[\u00e0\u00e1]/g, alternative: "a" },
1292
+ { letter: /[\u00c0\u00c1]/g, alternative: "A" },
1293
+ { letter: /[\u00e8\u00e9]/g, alternative: "e" },
1294
+ { letter: /[\u00c8\u00c9]/g, alternative: "E" },
1295
+ { letter: /[\u00ed\u00ef]/g, alternative: "i" },
1296
+ { letter: /[\u00cd\u00cf]/g, alternative: "I" },
1297
+ { letter: /[\u00f2\u00f3]/g, alternative: "o" },
1298
+ { letter: /[\u00d2\u00d3]/g, alternative: "O" },
1299
+ { letter: /[\u00fa\u00f9]/g, alternative: "u" },
1300
+ { letter: /[\u00da\u00d9]/g, alternative: "U" },
1301
+ ],
1302
+ // Language: Silesian.
1303
+ // Source: https://en.wikipedia.org/wiki/Silesian_language#Writing_system
1304
+ szl: [
1305
+ { letter: /[\u0107]/g, alternative: "c" },
1306
+ { letter: /[\u0106]/g, alternative: "C" },
1307
+ { letter: /[\u00e3]/g, alternative: "a" },
1308
+ { letter: /[\u00c3]/g, alternative: "A" },
1309
+ { letter: /[\u0142]/g, alternative: "u" },
1310
+ { letter: /[\u0141]/g, alternative: "U" },
1311
+ { letter: /[\u006e]/g, alternative: "n" },
1312
+ { letter: /[\u004e]/g, alternative: "N" },
1313
+ { letter: /[\u014f\u014d\u00f4\u00f5]/g, alternative: "o" },
1314
+ { letter: /[\u014e\u014c\u00d4\u00d5]/g, alternative: "O" },
1315
+ { letter: /[\u015b]/g, alternative: "s" },
1316
+ { letter: /[\u015a]/g, alternative: "S" },
1317
+ { letter: /[\u017a\u017c\u017e]/g, alternative: "z" },
1318
+ { letter: /[\u0179\u017b\u017d]/g, alternative: "Z" },
1319
+ { letter: /[\u016f]/g, alternative: "u" },
1320
+ { letter: /[\u016e]/g, alternative: "U" },
1321
+ { letter: /[\u010d]/g, alternative: "cz" },
1322
+ { letter: /[\u010c]/g, alternative: "Cz" },
1323
+ { letter: /[\u0159]/g, alternative: "rz" },
1324
+ { letter: /[\u0158]/g, alternative: "Rz" },
1325
+ { letter: /[\u0161]/g, alternative: "sz" },
1326
+ { letter: /[\u0160]/g, alternative: "Sz" },
1327
+ ],
1328
+ // Language: Tahitian.
1329
+ // Sources: https://en.wikipedia.org/wiki/Tahitian_language#Phonology http://www.omniglot.com/writing/tahitian.htm
1330
+ tah: [
1331
+ { letter: /[\u0101\u00e2\u00e0]/g, alternative: "a" },
1332
+ { letter: /[\u0100\u00c2\u00c0]/g, alternative: "A" },
1333
+ { letter: /[\u00ef\u00ee\u00ec]/g, alternative: "i" },
1334
+ { letter: /[\u00cf\u00ce\u00cc]/g, alternative: "I" },
1335
+ { letter: /[\u0113\u00ea\u00e9]/g, alternative: "e" },
1336
+ { letter: /[\u0112\u00ca\u00c9]/g, alternative: "E" },
1337
+ { letter: /[\u016b\u00fb\u00fa]/g, alternative: "u" },
1338
+ { letter: /[\u016a\u00db\u00da]/g, alternative: "U" },
1339
+ { letter: /[\u00e7]/g, alternative: "c" },
1340
+ { letter: /[\u00c7]/g, alternative: "C" },
1341
+ { letter: /[\u00f2\u00f4\u014d]/g, alternative: "o" },
1342
+ { letter: /[\u00d2\u00d4\u014c]/g, alternative: "O" },
1343
+ { letter: /[\u2019\u0027\u2018]/g, alternative: "" },
1344
+ ],
1345
+ // Language: Venetian.
1346
+ // Sources: http://www.omniglot.com/writing/venetian.htm https://en.wikipedia.org/wiki/Venetian_language#Spelling_systems
1347
+ // http://www.venipedia.org/wiki/index.php?title=Venetian_Language
1348
+ vec: [
1349
+ { letter: /\u0073\u002d\u0063/g, alternative: "sc" },
1350
+ { letter: /\u0053\u002d\u0043/g, alternative: "SC" },
1351
+ { letter: /\u0073\u0027\u0063/g, alternative: "sc" },
1352
+ { letter: /\u0053\u0027\u0043/g, alternative: "SC" },
1353
+ { letter: /\u0073\u2019\u0063/g, alternative: "sc" },
1354
+ { letter: /\u0053\u2019\u0043/g, alternative: "SC" },
1355
+ { letter: /\u0073\u2018\u0063/g, alternative: "sc" },
1356
+ { letter: /\u0053\u2018\u0043/g, alternative: "SC" },
1357
+ { letter: /\u0053\u002d\u0063/g, alternative: "Sc" },
1358
+ { letter: /\u0053\u0027\u0063/g, alternative: "Sc" },
1359
+ { letter: /\u0053\u2019\u0063/g, alternative: "Sc" },
1360
+ { letter: /\u0053\u2018\u0063/g, alternative: "Sc" },
1361
+ { letter: /\u0063\u2019/g, alternative: "c" },
1362
+ { letter: /\u0043\u2019/g, alternative: "C" },
1363
+ { letter: /\u0063\u2018/g, alternative: "c" },
1364
+ { letter: /\u0043\u2018/g, alternative: "C" },
1365
+ { letter: /\u0063\u0027/g, alternative: "c" },
1366
+ { letter: /\u0043\u0027/g, alternative: "C" },
1367
+ { letter: /[\u00e0\u00e1\u00e2]/g, alternative: "a" },
1368
+ { letter: /[\u00c0\u00c1\u00c2]/g, alternative: "A" },
1369
+ { letter: /[\u00e8\u00e9]/g, alternative: "e" },
1370
+ { letter: /[\u00c8\u00c9]/g, alternative: "E" },
1371
+ { letter: /[\u00f2\u00f3]/g, alternative: "o" },
1372
+ { letter: /[\u00d2\u00d3]/g, alternative: "O" },
1373
+ { letter: /[\u00f9\u00fa]/g, alternative: "u" },
1374
+ { letter: /[\u00d9\u00da]/g, alternative: "U" },
1375
+ { letter: /[\u00e7\u010d\u010b]/g, alternative: "c" },
1376
+ { letter: /[\u00c7\u010c\u010a]/g, alternative: "C" },
1377
+ { letter: /[\u0142]/g, alternative: "l" },
1378
+ { letter: /[\u00a3\u0141]/g, alternative: "L" },
1379
+ { letter: /\ud835\udeff/g, alternative: "dh" },
1380
+ { letter: /[\u0111\u03b4]/g, alternative: "dh" },
1381
+ { letter: /[\u0110\u0394]/g, alternative: "Dh" },
1382
+ ],
1383
+ // Language: Walloon.
1384
+ // Sources: http://www.omniglot.com/writing/walloon.htm https://en.wikipedia.org/wiki/Walloon_alphabet
1385
+ wa: [
1386
+ { letter: /[\u00e2\u00e5]/g, alternative: "a" },
1387
+ { letter: /[\u00c2\u00c5]/g, alternative: "A" },
1388
+ { letter: /[\u00e7]/g, alternative: "c" },
1389
+ { letter: /[\u00c7]/g, alternative: "C" },
1390
+ { letter: /\u0065\u030a/g, alternative: "e" },
1391
+ { letter: /\u0045\u030a/g, alternative: "E" },
1392
+ { letter: /[\u00eb\u00ea\u00e8\u00e9]/g, alternative: "e" },
1393
+ { letter: /[\u00c9\u00c8\u00ca\u00cb]/g, alternative: "E" },
1394
+ { letter: /[\u00ee]/g, alternative: "i" },
1395
+ { letter: /[\u00ce]/g, alternative: "I" },
1396
+ { letter: /[\u00f4\u00f6]/g, alternative: "o" },
1397
+ { letter: /[\u00d6\u00d4]/g, alternative: "O" },
1398
+ { letter: /[\u00fb]/g, alternative: "u" },
1399
+ { letter: /[\u00db]/g, alternative: "U" },
1400
+ ],
1401
+ // Language: Yoruba.
1402
+ // Sources: http://www.omniglot.com/writing/yoruba.htm https://en.wikipedia.org/wiki/Yoruba_language
1403
+ yor: [
1404
+ { letter: /[\u00e1\u00e0]/g, alternative: "a" },
1405
+ { letter: /[\u00c1\u00c0]/g, alternative: "A" },
1406
+ { letter: /[\u00ec\u00ed]/g, alternative: "i" },
1407
+ { letter: /[\u00cc\u00cd]/g, alternative: "I" },
1408
+ { letter: /\u1ecd\u0301/g, alternative: "o" },
1409
+ { letter: /\u1ecc\u0301/g, alternative: "O" },
1410
+ { letter: /\u1ecd\u0300/g, alternative: "o" },
1411
+ { letter: /\u1ecc\u0300/g, alternative: "O" },
1412
+ { letter: /[\u00f3\u00f2\u1ecd]/g, alternative: "o" },
1413
+ { letter: /[\u00d3\u00d2\u1ecc]/g, alternative: "O" },
1414
+ { letter: /[\u00fa\u00f9]/g, alternative: "u" },
1415
+ { letter: /[\u00da\u00d9]/g, alternative: "U" },
1416
+ { letter: /\u1eb9\u0301/g, alternative: "e" },
1417
+ { letter: /\u1eb8\u0301/g, alternative: "E" },
1418
+ { letter: /\u1eb9\u0300/g, alternative: "e" },
1419
+ { letter: /\u1eb8\u0300/g, alternative: "E" },
1420
+ { letter: /[\u00e9\u00e8\u1eb9]/g, alternative: "e" },
1421
+ { letter: /[\u00c9\u00c8\u1eb8]/g, alternative: "E" },
1422
+ { letter: /[\u1e63]/g, alternative: "s" },
1423
+ { letter: /[\u1e62]/g, alternative: "S" },
1424
+ ],
1425
+ };
1426
+
1427
+ /**
1428
+ * Returns an array containing transliteration objects, based on the given locale.
1429
+ *
1430
+ * @param {string} locale The locale.
1431
+ *
1432
+ * @returns {Object[]} An array containing transliteration objects.
1433
+ */
1434
+ export default function( locale ) {
1435
+ if ( isUndefined( locale ) ) {
1436
+ return [];
1437
+ }
1438
+ const language = getLanguage( locale );
1439
+
1440
+ if ( language === "nb" || language === "nn" ) {
1441
+ return transliterations.nbnn;
1442
+ }
1443
+ if ( language === "bal" || language === "ca" ) {
1444
+ return transliterations.ca;
1445
+ }
1446
+ return transliterations[ language ] || [];
1447
+ }