interscript 0.1.2 → 0.1.7

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 (261) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +250 -17
  3. data/lib/g2pwrapper.py +34 -0
  4. data/lib/interscript.rb +142 -20
  5. data/lib/interscript/command.rb +28 -0
  6. data/lib/interscript/fs.rb +69 -0
  7. data/lib/interscript/mapping.rb +142 -0
  8. data/lib/interscript/opal.rb +57 -0
  9. data/lib/interscript/opal/entrypoint.rb +12 -0
  10. data/lib/interscript/opal/map_translate.rb +7 -0
  11. data/lib/interscript/opal/maps.js.erb +10 -0
  12. data/lib/interscript/version.rb +1 -1
  13. data/lib/model-7 +0 -0
  14. data/lib/tha-pt-b-7 +0 -0
  15. data/maps/acadsin-zho-Hani-Latn-2002.yaml +38916 -0
  16. data/maps/alalc-amh-Ethi-Latn-1997.yaml +513 -0
  17. data/maps/alalc-amh-Ethi-Latn-2011.yaml +138 -0
  18. data/maps/alalc-ara-Arab-Latn-1997.yaml +1287 -0
  19. data/maps/alalc-asm-Deva-Latn-1997.yaml +165 -0
  20. data/maps/alalc-asm-Deva-Latn-2012.yaml +40 -0
  21. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +145 -0
  22. data/maps/alalc-bel-Cyrl-Latn-1997.yaml +129 -0
  23. data/maps/alalc-ben-Beng-Latn-2017.yaml +130 -0
  24. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +98 -0
  25. data/maps/alalc-ell-Grek-Latn-1997.yaml +628 -0
  26. data/maps/alalc-ell-Grek-Latn-2010.yaml +626 -0
  27. data/maps/alalc-guj-Gujr-Latn-1997.yaml +266 -0
  28. data/maps/alalc-guj-Gujr-Latn-2011.yaml +64 -0
  29. data/maps/alalc-hin-Deva-Latn-1997.yaml +211 -0
  30. data/maps/alalc-hin-Deva-Latn-2011.yaml +47 -0
  31. data/maps/alalc-kat-Geok-Latn-1997.yaml +111 -0
  32. data/maps/alalc-kat-Geor-Latn-1997.yaml +150 -0
  33. data/maps/alalc-kor-Hang-Latn-1997.yaml +98 -0
  34. data/maps/alalc-mal-Mlym-Latn-1997.yaml +303 -0
  35. data/maps/alalc-mal-Mlym-Latn-2012.yaml +73 -0
  36. data/maps/alalc-mar-Deva-Latn-1997.yaml +189 -0
  37. data/maps/alalc-mar-Deva-Latn-2011.yaml +45 -0
  38. data/maps/alalc-mkd-Cyrl-Latn-1997.yaml +114 -0
  39. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +103 -0
  40. data/maps/alalc-mon-Cyrl-Latn-1997.yaml +220 -0
  41. data/maps/alalc-pan-Guru-Latn-1997.yaml +256 -0
  42. data/maps/alalc-pan-Guru-Latn-2011.yaml +78 -0
  43. data/maps/alalc-per-Arab-Latn-1997.yaml +375 -0
  44. data/maps/alalc-pli-Deva-Latn-2012.yaml +144 -0
  45. data/maps/alalc-pra-Deva-Latn-2012.yaml +47 -0
  46. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +225 -0
  47. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +162 -0
  48. data/maps/alalc-san-Deva-Latn-2012.yaml +172 -0
  49. data/maps/alalc-sin-Sinh-Latn-1997.yaml +292 -0
  50. data/maps/alalc-sin-Sinh-Latn-2011.yaml +71 -0
  51. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +118 -0
  52. data/maps/alalc-srp-Cyrl-Latn-2013.yaml +135 -0
  53. data/maps/alalc-tam-Taml-Latn-1997.yaml +62 -0
  54. data/maps/alalc-tam-Taml-Latn-2011.yaml +58 -0
  55. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +145 -0
  56. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +16 -0
  57. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +283 -0
  58. data/maps/{bas-rus-Cyrl-Latn-bss.yaml → bas-rus-Cyrl-Latn-2017-bss.yaml} +58 -33
  59. data/maps/{bas-rus-Cyrl-Latn-oss.yaml → bas-rus-Cyrl-Latn-2017-oss.yaml} +55 -35
  60. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +292 -0
  61. data/maps/bgn-kor-Hang-Latn-1943.yaml +35 -0
  62. data/maps/bgn-kor-Kore-Latn-1943.yaml +31 -0
  63. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +208 -0
  64. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +208 -0
  65. data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +532 -0
  66. data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +596 -0
  67. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +2 -3
  68. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +104 -0
  69. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +188 -0
  70. data/maps/bgnpcgn-bel-Cyrl-Latn-1979.yaml +289 -0
  71. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +119 -0
  72. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +15 -65
  73. data/maps/bgnpcgn-che-Cyrl-Latn-2008.yaml +184 -0
  74. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +705 -0
  75. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +23 -0
  76. data/maps/{bgnpcgn-per-Arab-Latn-1956.yaml → bgnpcgn-fas-Arab-Latn-1956.yaml} +5 -2
  77. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +257 -0
  78. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +131 -0
  79. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +42 -0
  80. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +253 -0
  81. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +48 -0
  82. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +48 -0
  83. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +163 -0
  84. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +190 -0
  85. data/maps/bgnpcgn-mon-Cyrl-Latn-1964.yaml +223 -0
  86. data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +230 -0
  87. data/maps/bgnpcgn-per-Arab-Latn-1958.yaml +336 -0
  88. data/maps/bgnpcgn-prs-Arab-Latn-2007.yaml +639 -0
  89. data/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.yaml +459 -0
  90. data/maps/bgnpcgn-rue-Cyrl-Latn-2016.yaml +168 -0
  91. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +150 -65
  92. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +170 -0
  93. data/maps/bgnpcgn-tat-Cyrl-Latn-2007.yaml +220 -0
  94. data/maps/bgnpcgn-tgk-Cyrl-Latn-1994.yaml +240 -0
  95. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +80 -4
  96. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +119 -0
  97. data/maps/bgnpcgn-uzb-Cyrl-Latn-1979.yaml +127 -0
  98. data/maps/bgnpcgn-uzb-Cyrl-Latn-2000.yaml +82 -0
  99. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +7456 -0
  100. data/maps/bis-asm-Beng-Latn-13194-1991.yaml +159 -0
  101. data/maps/bis-ben-Beng-Latn-13194-1991.yaml +156 -0
  102. data/maps/bis-dev-Deva-Latn-13194-1991.yaml +184 -0
  103. data/maps/bis-guj-Gujr-Latn-13194-1991.yaml +181 -0
  104. data/maps/bis-knd-Knda-Latn-13194-1991.yaml +173 -0
  105. data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +176 -0
  106. data/maps/bis-ori-Orya-Latn-13194-1991.yaml +160 -0
  107. data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +175 -0
  108. data/maps/bis-tel-Telu-Latn-13194-1991.yaml +170 -0
  109. data/maps/bis-tml-Taml-Latn-13194-1991.yaml +155 -0
  110. data/maps/by-bel-Cyrl-Latn-1998.yaml +172 -0
  111. data/maps/by-bel-Cyrl-Latn-2007.yaml +115 -0
  112. data/maps/din-grc-Grek-Latn-31634-2011-t1.yaml +899 -0
  113. data/maps/din-hin-Deva-Latn-33904-2018.yaml +100 -0
  114. data/maps/din-kat-Geor-Latn-32707-2010.yaml +145 -0
  115. data/maps/din-mar-Deva-Latn-33904-2018.yaml +84 -0
  116. data/maps/din-nep-Deva-Latn-33904-2018.yaml +119 -0
  117. data/maps/din-pli-Deva-Latn-33904-2018.yaml +75 -0
  118. data/maps/din-pra-Deva-Latn-33904-2018.yaml +63 -0
  119. data/maps/din-san-Deva-Latn-33904-2018.yaml +338 -0
  120. data/maps/din-tam-Taml-Latn-33903-2016.yaml +213 -0
  121. data/maps/dos-nep-Deva-Latn-1997.yaml +47 -0
  122. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +684 -0
  123. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +680 -0
  124. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +19 -0
  125. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +31 -0
  126. data/maps/ggg-kat-Geor-Latn-2002.yaml +92 -0
  127. data/maps/gki-bel-Cyrl-Latn-1992.yaml +33 -0
  128. data/maps/gki-bel-Cyrl-Latn-2000.yaml +201 -0
  129. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.yaml +190 -0
  130. data/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.yaml +157 -0
  131. data/maps/hk-yue-Hani-Latn-1888.yaml +38497 -0
  132. data/maps/icao-bel-Cyrl-Latn-9303.yaml +109 -98
  133. data/maps/icao-bul-Cyrl-Latn-9303.yaml +2 -7
  134. data/maps/{icao-per-Arab-Latn-9303.yaml → icao-fas-Arab-Latn-9303.yaml} +6 -8
  135. data/maps/icao-heb-Hebr-Latn-9303.yaml +119 -125
  136. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +2 -3
  137. data/maps/icao-rus-Cyrl-Latn-9303.yaml +2 -4
  138. data/maps/icao-srp-Cyrl-Latn-9303.yaml +2 -3
  139. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +2 -4
  140. data/maps/iso-ara-Arab-Latn-233-1984.yaml +323 -0
  141. data/maps/iso-asm-Beng-Latn-15919-2001.yaml +75 -0
  142. data/maps/iso-ben-Beng-Latn-15919-2001.yaml +175 -0
  143. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +613 -0
  144. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +44 -0
  145. data/maps/iso-guj-Gujr-Latn-15919-2001.yaml +220 -0
  146. data/maps/iso-hin-Deva-Latn-15919-2001.yaml +87 -0
  147. data/maps/iso-inc-Deva-Latn-15919-2001.yaml +61 -0
  148. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +66 -0
  149. data/maps/iso-kan-Knda-Latn-15919-2001.yaml +220 -0
  150. data/maps/iso-kat-Geor-Latn-9984-1996.yaml +145 -0
  151. data/maps/iso-kor-Hang-Latn-1996-method1.yaml +240 -0
  152. data/maps/iso-kor-Hang-Latn-1996-method2.yaml +226 -0
  153. data/maps/iso-mal-Mlym-Latn-15919-2001.yaml +281 -0
  154. data/maps/iso-mar-Deva-Latn-15919-2001.yaml +75 -0
  155. data/maps/iso-nep-Deva-Latn-15919-2001.yaml +87 -0
  156. data/maps/iso-ori-Orya-Latn-15919-2001.yaml +193 -0
  157. data/maps/iso-pan-Guru-Latn-15919-2001.yaml +222 -0
  158. data/maps/iso-pli-Beng-Latn-15919-2001.yaml +73 -0
  159. data/maps/iso-pli-Deva-Latn-15919-2001.yaml +74 -0
  160. data/maps/iso-pli-Sinh-Latn-15919-2001.yaml +219 -0
  161. data/maps/iso-pli-Thai-Latn-15919-2001.yaml +55 -0
  162. data/maps/iso-pra-Deva-Latn-15919-2001.yaml +59 -0
  163. data/maps/iso-prs-Arab-Latn-233-3-1999.yaml +366 -0
  164. data/maps/{iso-rus-Cyrl-Latn-iso9.yaml → iso-rus-Cyrl-Latn-9-1995.yaml} +4 -6
  165. data/maps/iso-san-Deva-Latn-15919-2001.yaml +220 -0
  166. data/maps/iso-tam-Taml-Latn-15919-2001.yaml +159 -0
  167. data/maps/iso-tel-Telu-Latn-15919-2001.yaml +220 -0
  168. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +109 -0
  169. data/maps/kp-kor-Hang-Latn-2002.yaml +909 -0
  170. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +44820 -0
  171. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +411 -0
  172. data/maps/mns-mon-Cyrl-Latn-5217-2012.yaml +163 -0
  173. data/maps/mns-mon-Latn-Cyrl-5217-2012.yaml +200 -0
  174. data/maps/moct-kor-Hang-Latn-2000.yaml +807 -0
  175. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +541 -0
  176. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +225 -0
  177. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +63 -0
  178. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +109 -0
  179. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +37 -0
  180. data/maps/odni-ara-Arab-Latn-2015.yaml +425 -0
  181. data/maps/odni-aze-Cyrl-Latn-2015.yaml +144 -0
  182. data/maps/odni-bel-Cyrl-Latn-2015.yaml +148 -0
  183. data/maps/odni-bul-Cyrl-Latn-2015.yaml +96 -0
  184. data/maps/odni-che-Cyrl-Latn-2015.yaml +169 -0
  185. data/maps/odni-fas-Arab-Latn-2015.yaml +406 -0
  186. data/maps/odni-hin-Deva-Latn-2015.yaml +258 -0
  187. data/maps/odni-kat-Geor-Latn-2015.yaml +87 -0
  188. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +148 -0
  189. data/maps/odni-kir-Cyrl-Latn-2015.yaml +136 -0
  190. data/maps/odni-kor-Hang-Latn-2015.yaml +375 -0
  191. data/maps/odni-mkd-Cyrl-Latn-2015.yaml +122 -0
  192. data/maps/odni-per-Arab-Latn-2015.yaml +228 -0
  193. data/maps/odni-rus-Cyrl-Latn-2015.yaml +77 -0
  194. data/maps/odni-srp-Cyrl-Latn-2015.yaml +129 -0
  195. data/maps/odni-tat-Cyrl-Latn-2015.yaml +142 -0
  196. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +148 -0
  197. data/maps/odni-uig-Cyrl-Latn-2015.yaml +138 -0
  198. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +157 -0
  199. data/maps/odni-urd-Arab-Latn-2015.yaml +221 -0
  200. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +166 -0
  201. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +90 -0
  202. data/maps/royin-tha-Thai-Latn-1968.yaml +183 -0
  203. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +180 -0
  204. data/maps/royin-tha-Thai-Latn-1999.yaml +80 -0
  205. data/maps/{cn-chn-Hans-Latn-pinyin.yaml → sac-zho-Hans-Latn-1979.yaml} +11 -8
  206. data/maps/sasm-mon-Mong-Latn-general-1978.yaml +389 -0
  207. data/maps/sasm-mon-Mong-Latn-phonetic-1978.yaml +354 -0
  208. data/maps/ses-ara-Arab-Latn-1930.yaml +283 -0
  209. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +222 -0
  210. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +197 -0
  211. data/maps/ua-ukr-Cyrl-Latn-2007.yaml +75 -0
  212. data/maps/ua-ukr-Cyrl-Latn-2010.yaml +192 -0
  213. data/maps/un-amh-Ethi-Latn-2016.yaml +602 -0
  214. data/maps/un-ara-Arab-Latn-1971.yaml +139 -0
  215. data/maps/un-ara-Arab-Latn-1972.yaml +159 -0
  216. data/maps/un-ara-Arab-Latn-2017.yaml +420 -0
  217. data/maps/un-bel-Cyrl-Latn-2007.yaml +114 -0
  218. data/maps/un-ben-Beng-Latn-2016.yaml +534 -0
  219. data/maps/un-ell-Grek-Latn-1987-phonetic.yaml +780 -0
  220. data/maps/un-ell-Grek-Latn-1987-tl.yaml +31 -0
  221. data/maps/un-ell-Grek-Latn-1987-ts.yaml +19 -0
  222. data/maps/un-hin-Deva-Latn-2016.yaml +222 -0
  223. data/maps/un-mar-Deva-Latn-2016.yaml +91 -0
  224. data/maps/un-mon-Mong-Latn-general-2013.yaml +264 -0
  225. data/maps/un-mon-Mong-Latn-phonetic-2013.yaml +264 -0
  226. data/maps/un-nep-Deva-Latn-1972.yaml +350 -0
  227. data/maps/un-nep-Deva-Latn-2013.yaml +74 -0
  228. data/maps/un-rus-Cyrl-Latn-1987.yaml +166 -0
  229. data/maps/un-ukr-Cyrl-Latn-1998.yaml +53 -0
  230. data/maps/un-ukr-Cyrl-Latn-2012.yaml +162 -0
  231. data/maps/var-hin-Deva-Latn-hunterian-1872.yaml +221 -0
  232. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +406 -0
  233. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +386 -0
  234. data/maps/var-kor-Hang-Hang-jamo.yaml +11193 -0
  235. data/maps/var-kor-Hang-Latn-mr-1939.yaml +1054 -0
  236. data/maps/var-kor-Kore-Hang-2013.yaml +59754 -0
  237. data/maps/var-kor-Kore-Latn-mr-1939.yaml +36 -0
  238. data/maps/var-mar-Deva-Latn-hunterian-1872.yaml +43 -0
  239. data/maps/var-mon-Mong-Latn-1930.yaml +102 -0
  240. data/maps/var-mon-Mong-Latn-lessing.yaml +272 -0
  241. data/maps/var-mon-Mong-Latn-vpmc.yaml +274 -0
  242. data/maps/var-pra-Deva-Latn-iast-1912.yaml +30 -0
  243. data/maps/var-san-Deva-Latn-iast-1912.yaml +149 -0
  244. data/maps/var-tha-Thai-Thai-phonemic.yaml +59 -0
  245. data/maps/var-tha-Thai-Zsym-ipa.yaml +301 -0
  246. data/maps/var-zho-Hani-Latn-wd-1979.yaml +38912 -0
  247. data/spec/interscript/filenames_spec.rb +384 -0
  248. data/spec/interscript/mapping_spec.rb +42 -0
  249. data/spec/interscript_spec.rb +23 -5
  250. data/spec/spec_helper.rb +3 -1
  251. metadata +364 -34
  252. data/bin/interscript +0 -20
  253. data/bin/rspec +0 -29
  254. data/maps/bgnpcgn-chn-Hans-Latn-pinyin.yaml +0 -7503
  255. data/maps/historic-jpn-Hrkt-Latn-hepburn.yaml +0 -336
  256. data/maps/icao-gre-Grek-Latn-9303.yaml +0 -101
  257. data/maps/mext-jpn-Hrkt-Latn-hepburn.yaml +0 -330
  258. data/maps/mext-jpn-Hrkt-Latn-kunrei.yaml +0 -308
  259. data/maps/un-jpn-Hrkt-Latn-hepburn.yaml +0 -313
  260. data/maps/un-jpn-Hrkt-Latn-kunrei.yaml +0 -354
  261. data/maps/un-mon-Mong-Latn-2013.yaml +0 -80
@@ -0,0 +1,226 @@
1
+ ---
2
+ authority_id: iso
3
+ id: 1996-method2
4
+ language: iso-639-2:kor
5
+ source_script: Hang
6
+ destination_script: Latn
7
+ name: "ISO/TR 11941:1996 Information and documentation — Transliteration of Korean script into Latin characters"
8
+ url: https://www.iso.org/standard/20564.html
9
+ creation_date: 1996
10
+ adoption_date:
11
+ description: Establishes a system for the transliteration of the characters of Korean script into Latin characters. Intended to provide a means for international communication of written documents.
12
+
13
+ notes: ""
14
+
15
+ tests:
16
+ # Tests from https://www.eki.ee/wgrs/rom2_ko.pdf
17
+ - source: "꽃이"
18
+ expected: "ggoc'i" # Bad OCR
19
+ - source: "강에"
20
+ expected: "gang'e"
21
+ - source: "앉아라"
22
+ expected: "anj'ara"
23
+ - source: "아까"
24
+ expected: "a'gga"
25
+ - source: "흰떡"
26
+ expected: "hyin'ddeog"
27
+ #- source: "유쾌하다" not present in method2
28
+ # expected: "yu'khwaehata"
29
+
30
+ # Tests from https://github.com/interscript/interscript/files/5249245/ISO-TR-11941-1996.pdf
31
+ - source: "애기"
32
+ expected: "aegi"
33
+ - source: "방"
34
+ expected: "bang"
35
+ - source: "아이"
36
+ expected: "a'i"
37
+ - source: "고양이"
38
+ expected: "go'yang'i"
39
+ - source: "굽이"
40
+ expected: "gub'i"
41
+ - source: "밖에"
42
+ expected: "bagg'e"
43
+ - source: "박게"
44
+ expected: "bagge"
45
+ - source: "바께"
46
+ expected: "ba'gge"
47
+ - source: "간게"
48
+ expected: "gange"
49
+ - source: "안자라"
50
+ expected: "anjara"
51
+ - source: "오빠"
52
+ expected: "o'bba"
53
+ - source: "어찌"
54
+ expected: "eo'jji"
55
+ - source: "아씨"
56
+ expected: "a'ssi"
57
+
58
+ map:
59
+ character_separator: ""
60
+ word_separator: " "
61
+ title_case: False
62
+ inherit: var-kor-Hang-Hang-jamo
63
+
64
+ rules:
65
+
66
+ postrules:
67
+ # Add space to the two ends of the string for easier word boundary handling
68
+ - pattern: "^"
69
+ result: " "
70
+ - pattern: "$"
71
+ result: " "
72
+
73
+ # Marks A, B, C
74
+ - pattern: "(?<!\\p{Hangul})ᄋ" # Word initially
75
+ result: ""
76
+ - pattern: "ᄋ" # See notes 2, 3 and 4.
77
+ result: "'"
78
+ - pattern: "ᆼ" # At the end of a syllable.
79
+ result: "ng"
80
+
81
+ # Note 4: add apostrophe before 5 double consonants at initial position
82
+ # unless start of the word
83
+ - pattern: "(?<=\\p{Hangul})([ᄁᄄᄈᄍᄊ])"
84
+ result: "'\\1"
85
+ # Note 4: (only method 1) same but with 4 aspirated
86
+ #- pattern: "(?<=\\p{Hangul})([ᄏᄐᄑᄎ])"
87
+ # result: "'\\1"
88
+
89
+ # Consonants differing between method1 and method2
90
+ - pattern: "[ᄀᆨ]"
91
+ result: "g"
92
+ - pattern: "[ᄏᆿ]"
93
+ result: "k"
94
+ - pattern: "[ᄁᆩ]"
95
+ result: "gg"
96
+ - pattern: "[ᄃᆮ]"
97
+ result: "d"
98
+ - pattern: "[ᄐᇀ]"
99
+ result: "t"
100
+ - pattern: "[ᄄퟍ]"
101
+ result: "dd"
102
+ - pattern: "[ᄇᆸ]"
103
+ result: "b"
104
+ - pattern: "[ᄑᇁ]"
105
+ result: "p"
106
+ - pattern: "[ᄈퟦ]"
107
+ result: "bb"
108
+ - pattern: "[ᄌᆽ]"
109
+ result: "j"
110
+ - pattern: "[ᄎᆾ]"
111
+ result: "c"
112
+ - pattern: "[ᄍퟹ]"
113
+ result: "jj"
114
+ # End
115
+
116
+ # Composite differing consonants (cons. https://en.wikipedia.org/wiki/ISO/TR_11941 )
117
+ - pattern: "[ᆪ]"
118
+ result: "gs"
119
+ - pattern: "[ꥤ]" # D. R at the beginning of a syllable
120
+ result: "rg"
121
+ - pattern: "[ᆰ]"
122
+ result: "lg"
123
+ - pattern: "[ᆴ]"
124
+ result: "lt"
125
+ - pattern: "[ꥩ]" # D. R at the beginning of a syllable
126
+ result: "rb"
127
+ - pattern: "[ᆲ]"
128
+ result: "lb"
129
+ - pattern: "[ᆵ]"
130
+ result: "lp"
131
+ - pattern: "[ᅜᆬ]"
132
+ result: "nj"
133
+ - pattern: "[ᄡᆹ]"
134
+ result: "bs"
135
+ # End
136
+
137
+ # Other consonants
138
+ - pattern: "[ᄉᆺ]"
139
+ result: "s"
140
+ - pattern: "[ᄊᆻ]"
141
+ result: "ss"
142
+ - pattern: "[ᄒᇂ]"
143
+ result: "h"
144
+ - pattern: "[ᄂᆫ]"
145
+ result: "n"
146
+ - pattern: "[ᄅ]" # D. R at the beginning of a syllable.
147
+ result: "r"
148
+ - pattern: "[ᆯ]"
149
+ result: "l"
150
+ - pattern: "[ᄆᆷ]"
151
+ result: "m"
152
+ # End
153
+
154
+ # Other composite consonants (cons. https://en.wikipedia.org/wiki/ISO/TR_11941 )
155
+ - pattern: "[ꥬ]" # D. R at the beginning of a syllable
156
+ result: "rs"
157
+ - pattern: "[ᆳ]"
158
+ result: "ls"
159
+ - pattern: "[ꥨ]" # D. R at the beginning of a syllable
160
+ result: "rm"
161
+ - pattern: "[ᆱ]"
162
+ result: "lm"
163
+ - pattern: "[ᄚ]" # D. R at the beginning of a syllable
164
+ result: "rh"
165
+ - pattern: "[ᆶ]"
166
+ result: "lh"
167
+ - pattern: "[ᅝᆭ]"
168
+ result: "nh"
169
+ # End
170
+
171
+ # Vowels
172
+ - pattern: "ᅡ"
173
+ result: "a"
174
+ - pattern: "ᅥ"
175
+ result: "eo"
176
+ - pattern: "ᅩ"
177
+ result: "o"
178
+ - pattern: "ᅮ"
179
+ result: "u"
180
+ - pattern: "ᅳ"
181
+ result: "eu"
182
+ - pattern: "ᅵ"
183
+ result: "i"
184
+ - pattern: "ᅢ"
185
+ result: "ae"
186
+ - pattern: "ᅦ"
187
+ result: "e"
188
+ - pattern: "ᅬ"
189
+ result: "oe"
190
+ - pattern: "ᅣ"
191
+ result: "ya"
192
+ - pattern: "ᅧ"
193
+ result: "yeo"
194
+ - pattern: "ᅭ"
195
+ result: "yo"
196
+ - pattern: "ᅲ"
197
+ result: "yu"
198
+ - pattern: "ᅤ"
199
+ result: "yae"
200
+ - pattern: "ᅨ"
201
+ result: "ye"
202
+ - pattern: "ᅪ"
203
+ result: "wa"
204
+ - pattern: "ᅯ"
205
+ result: "weo"
206
+ - pattern: "ᅱ"
207
+ result: "wi"
208
+ - pattern: "ᅫ"
209
+ result: "wae"
210
+ - pattern: "ᅰ"
211
+ result: "we"
212
+ - pattern: "ᅴ"
213
+ result: "yi"
214
+ # End
215
+
216
+ # Remove space added
217
+ - pattern: "^ "
218
+ result: ""
219
+ - pattern: " $"
220
+ result: ""
221
+
222
+ characters:
223
+ # This is based on Jamo
224
+
225
+ dictionary:
226
+ #
@@ -0,0 +1,281 @@
1
+ ---
2
+ authority_id: iso
3
+ id: 15919-2001
4
+ language: iso-639-2:mal
5
+ source_script: Mlym
6
+ destination_script: Latn
7
+ name: "Information and documentation — Transliteration of Devanagari and related Indic scripts into Latin characters"
8
+ url: https://www.chatranjali.fr/Scripts/Standards/ISO15919.pdf
9
+ creation_date: 2001
10
+ adoption_date: 2001
11
+ description: |
12
+ Script conversion is often required for documents such as historical and literary texts, geographical texts (including
13
+ maps and atlases), bibliographies, catalogues, lists and passports (and other identification documents).
14
+
15
+ Text in Devanagari script or other Indic scripts sometimes needs to be shown in Latin script, where users, or
16
+ equipment that they are using, cannot read or write the text
17
+
18
+ This International Standard applies to transliteration of Devanagari, and to Indic scripts related to Devanagari,
19
+ independent of the period in which it is or was used.
20
+
21
+ notes:
22
+
23
+ - All transliterations made using this International Standard shall be case-insensitive.
24
+ - Inherent a with a consonant shall always be transliterated.
25
+ - Malayalam anusvara final in a word shall be transliterated as m .
26
+ - candrabindu shall be transliterated as m̐
27
+ - When m̐, ṃ or ṁ are associated with a vowel, they shall be placed after the vowel. When m̐ is associated
28
+ with a semivowel, it shall be placed before the semivowel.
29
+ - Latin punctuation signs and Hindu-Arabic numerals shall remain unchanged in transliteration.
30
+ Indic punctuation is outside the scope of this International Standard.
31
+ - The Vedic accent Udatta shall be transliterated as an acute accent over the transliterated vowel, and the
32
+ independent Svarita as a grave accent over the transliterated vowel. In the case of the digraphs ai, au, the accent
33
+ shall be attached to the second vowel.
34
+ - |
35
+ A colon: before a Latin character shall be used to resolve ambiguity. Some normative cases are as
36
+ follows.
37
+ - :’ for avagraha in modern text. (The apostrophe in modern text remains unchanged in accordance with previous rule.
38
+ - Pure consonant ( cillŭ form) in Malayalam script, other than r/ṟ (ർ), before a consonant, as in n:na formed with a
39
+ pure consonant (not the ligature nna). Medial ൕ in Malayalam text shall be treated as a pure consonant ( cillŭ
40
+ form).
41
+ - If a character in an Indic script is defined in such a way as to be equivalent to another character in any
42
+ script, where the second character has a transliteration in this International Standard, then the first character shall
43
+ be transliterated in the same way as the second character.
44
+ - When the half-nasal in Telugu script is used for modern nasalization in writing Hindi or
45
+ any other language, it shall be transliterated as a tilde above the transliterated vowel. In the case of the digraphs ai,
46
+ au, the tilde shall be attached to the second vowel
47
+ - Where it is desired to show the Vedic accent Anudatta, it should be transliterated as an underscore. In the case of
48
+ the digraphs ai, au, both Latin vowels should be underscored.
49
+ Where word boundaries are not shown in the original text (as happens commonly in Sanskrit) and a word ends in a
50
+ consonant, the transliteration should show word division by a space; but when phonological processes result in two
51
+ words sharing a common vowel, no attempt should be made to separate them. This will require a good knowledge
52
+ of the language in question.
53
+ - In Malayalam text, ് acts as the mātrā for ŭ when final in a word, except when it removes the inherent vowel of a single
54
+ consonant.
55
+ - The ambiguous pure consonant r/ṟ (ർ) in Malayalam script shall be transliterated into r when combined
56
+ with another consonant; when it is final in a word it shall be transliterated as ṟ in Malayalam language.
57
+
58
+ tests:
59
+ - source: "സ്വപ്നയ്ക്കൊപ്പം ഹോട്ടലിൽ മന്ത്രിപുത്രൻ, ചിത്രങ്ങൾ; ൪ കോടി കമ്മിഷനിലും പങ്കുപറ്റി"
60
+ expected: "svapnaykkaeāppam haōṭṭalai:la mantraipautra:ṇa, caitraṅṅa:ḷa; 4 kaōṭai kammaiṣanailaum paṅkaupaṟṟai"
61
+ - source: "വിവാദങ്ങളിൽ മാപ്പില്ല, ആദ്യമായി ഐപിഎൽ കമന്ററിക്കില്ലാതെ മ‍ഞ്ജരേക്കര്‍; പുറത്ത് തന്നെ"
62
+ expected: "vaivaādaṅṅaḷai:la maāppailla, ādyamaāyai aipaie:la kamanṟaṟaikkaillaātae mañjaraēkkaraŭ; pauṟattaŭ tannae"
63
+ - source: "പരമാവധി ഊറ്റിയെടുത്തു; എല്ലാം കഴിഞ്ഞ് ഉപേക്ഷിച്ചു: വിങ്ങലോടെ റംസിയുടെ സഹോദരി"
64
+ expected: "paramaāvadhai ūṟṟaiyaeṭauttau; ellaām kaḻaiññaŭ upaēkṣaiccau: vaiṅṅalaōṭae ṟaṁsaiyauṭae sahaōdarai"
65
+ - source: "വഴിനീളെ രോഷം; യൂത്ത്‌ കോണ്‍ഗ്രസുകാരന്റെ കയ്യൊടിഞ്ഞു, കൈവീശികാട്ടി ജലീൽ"
66
+ expected: "vaḻainaīḷae raōṣam; yaūttaŭ kaōṇaŭgrasaukaāranṟae kayyaoṭaiññau, kaaivaīśaikaāṭṭai jalaī:la"
67
+ - source: "‘വികൃതിപ്പയ്യനാ’യിരുന്ന കോലി മിന്നും താരമായത് ഇന്ത്യൻ ക്രിക്കറ്റിന്റെ ഗുണം: അക്തർ"
68
+ expected: "‘vaikaṛtaippayyanaā’yairaunna kaōlai mainnaum taāramaāyataŭ intya:ṇa kraikkaṟṟainṟae gauṇam: aktaṟ"
69
+ - source: "ലോകത്തിനു വാക്സീൻ വേണമെങ്കിൽ ഈ നഗരം കനിയണം; തലയുയർത്തി ഇന്ത്യ"
70
+ expected: "laōkattainau vaāksaī:ṇa vaēṇamaeṅkai:la ī nagaram kanaiyaṇam; talayauyarttai intya"
71
+ - source: "‘അദ്ദേഹം ഒരു മകളെപ്പോലെ എന്നെ കേട്ടു’: ഗവർണറെ കണ്ട് കങ്കണ റനൗട്ട്"
72
+ expected: "‘addaēham orau makaḷaeppaōlae ennae kaēṭṭau’: gavarṇaṟae kaṇṭaŭ kaṅkaṇa ṟanaṭṭaŭ"
73
+ - source: "‘എല്ലാം ഫെയ്‌സ്ബുക്കില്‍ പറയുമെന്നു ജലീല്‍; കനത്ത സുരക്ഷയില്‍ യാത്ര, കരിങ്കൊടി"
74
+ expected: "‘ellaām phaeyaŭsbaukkailaŭ paṟayaumaennau jalaīlaŭ; kanatta saurakṣayailaŭ yaātra, karaiṅkaoṭai"
75
+ - source: "ഏറ്റവും ചെറുപ്പം ജോയി; ജയലക്ഷ്മി, ദീപ്തി, ജ്യോതി; പട്ടികയിലെ നിര ഇങ്ങനെ‌"
76
+ expected: "ēṟṟavaum caeṟauppam jaōyai; jayalakṣmai, daīptai, jyaōtai; paṭṭaikayailae naira iṅṅanae"
77
+ - source: "പരിശോധന കുറച്ച് കേരളം; കോവിഡ് ടെസ്റ്റ് പോസിറ്റിവിറ്റി നിരക്ക് എറ്റവും ഉയർന്ന്; ആശങ്ക‌"
78
+ expected: "paraiśaōdhana kauṟaccaŭ kaēraḷam; kaōvaid̂aŭ ṭaesṟṟaŭ paōsaiṟṟaivaiṟṟai nairakkaŭ eṟṟavaum uyarnnaŭ; āśaṅka"
79
+ - source: "൱"
80
+ expected: "100"
81
+
82
+ map:
83
+
84
+ rules:
85
+ - pattern: (?<=)\u0D4D(?=\b) # Rule 12
86
+ result: 'ŭ'
87
+ - pattern: (?<=)\u0D02(?=\b) # Rule 3
88
+ result: 'm'
89
+ - pattern: (?<=)\u0D7C(?=\b) # Rule 13
90
+ result: 'ṟ'
91
+
92
+ characters:
93
+ 'അ': 'a'
94
+ 'ആ': 'ā'
95
+ 'ഇ': 'i'
96
+ 'ഈ': 'ī'
97
+ 'ഉ': 'u'
98
+ 'ഊ': 'ū'
99
+ 'ഋ': "ṛ"
100
+ 'ൠ': "ṝ"
101
+ 'ഌ': "ḷ"
102
+ 'ൡ': "ḹ"
103
+
104
+ 'എ': 'e'
105
+ 'ഏ': 'ē'
106
+ 'ഐ': 'ai'
107
+
108
+ 'ഒ': 'o'
109
+ 'ഓ': 'ō'
110
+ 'ഔ': 'au'
111
+
112
+ # Consonants
113
+ # Gutturals
114
+ 'ക': 'ka'
115
+ 'ഖ': 'kha'
116
+ 'ഗ': 'ga'
117
+ 'ഘ': 'gha'
118
+ 'ങ': 'ṅa'
119
+
120
+ # Palatals
121
+ 'ച': 'ca'
122
+ 'ഛ': 'cha'
123
+ 'ജ': 'ja'
124
+ 'ഝ': 'jha'
125
+ 'ഞ': 'ña'
126
+
127
+ # Cerebrals
128
+ 'ട': 'ṭa'
129
+ 'ഠ': 'ṭha'
130
+ 'ഡ': 'd̂a'
131
+ 'ഢ': 'ḍha'
132
+ 'ണ': 'ṇa'
133
+
134
+ # Dentals
135
+ 'ത': 'ta'
136
+ 'ഥ': 'tha'
137
+ 'ദ': 'da'
138
+ 'ധ': 'dha'
139
+ 'ന': 'na'
140
+
141
+ # Labials
142
+ 'പ': 'pa'
143
+ 'ഫ': 'pha'
144
+ 'ബ': 'ba'
145
+ 'ഭ': 'bha'
146
+ 'മ': 'ma'
147
+
148
+ # Semivowels
149
+ 'യ': 'ya'
150
+ 'ര': 'ra'
151
+ 'ർ': 'r'
152
+ 'റ': 'ṟa'
153
+ 'ല': 'la'
154
+ 'ള': 'ḷa'
155
+ 'ഴ': 'ḻa'
156
+ # Sibilants
157
+ 'വ': 'va'
158
+ 'ശ': 'śa'
159
+ 'ഷ': 'ṣa'
160
+ 'സ': 'sa'
161
+ 'ഩ': 'ṉa'
162
+
163
+
164
+ # Aspirate
165
+ 'ഹ': 'ha'
166
+
167
+ # Bisarga
168
+ 'ഃ': 'ḥ'
169
+
170
+ # Anusvāra
171
+ 'ം': 'ṁ'
172
+
173
+
174
+ # Abagraha
175
+ 'ഽ': ':’' # (apostrophe)
176
+
177
+ # Medials # Needed for connecting constants
178
+
179
+ 'ാ': 'ā'
180
+ 'ി': 'i'
181
+ 'ീ': 'ī'
182
+ 'ു': 'u'
183
+ 'ൂ': 'ū'
184
+ '്': 'ŭ'
185
+ 'ൃ': "ṛ"
186
+ 'ൄ': "ṝ"
187
+ '\u0D62': "ḷ"
188
+ '\u0D63': "ḹ"
189
+ 'െ': "e"
190
+ 'േ': "ē"
191
+ 'ൈ': "ai"
192
+ 'ൊ': 'o'
193
+ 'ോ': 'ō'
194
+ 'ൌ': 'au'
195
+
196
+ '्': ''
197
+ '़': ''
198
+ 'ൗ': ''
199
+ "‍": '' # no need for zero with joiner
200
+ "‌": '' # no need for zero with non joiner
201
+
202
+
203
+ # For rule 12
204
+ # Gutturals
205
+ 'ക്': 'k'
206
+ 'ഖ്': 'kh'
207
+ 'ഗ്': 'g'
208
+ 'ഘ്': 'gh'
209
+ 'ങ്': 'ṅ'
210
+
211
+ # Palatals
212
+ 'ച്': 'c'
213
+ 'ഛ്': 'ch'
214
+ 'ജ്': 'j'
215
+ 'ഝ്': 'jh'
216
+ 'ഞ്': 'ñ'
217
+
218
+ # Cerebrals
219
+ 'ട്': 'ṭ'
220
+ 'ഠ്': 'ṭh'
221
+ 'ഡ്': 'd̂'
222
+ 'ഢ്': 'ḍh'
223
+ 'ണ്': 'ṇ'
224
+
225
+ # Dentals
226
+ 'ത്': 't'
227
+ 'ഥ്': 'th'
228
+ 'ദ്': 'd'
229
+ 'ധ്': 'dh'
230
+ 'ന്': 'n'
231
+
232
+ # Labials
233
+ 'പ്': 'p'
234
+ 'ഫ്': 'ph'
235
+ 'ബ്': 'b'
236
+ 'ഭ്': 'bh'
237
+ 'മ്': 'm'
238
+
239
+ # Semivowels
240
+ 'യ്': 'y'
241
+ 'ര്': 'r'
242
+ 'റ്': 'ṟ'
243
+ 'ല്': 'l'
244
+ 'ള്': 'ḷ'
245
+ 'ഴ്': 'ḻ'
246
+ # Sibilants
247
+ 'വ്': 'v'
248
+ 'ശ്': 'ś'
249
+ 'ഷ്': 'ṣ'
250
+ 'സ്': 's'
251
+ 'ഩ്': 'ṉ'
252
+
253
+
254
+ # Aspirate
255
+ 'ഹ്': 'h'
256
+
257
+
258
+ # numbers
259
+
260
+ '൦': '0'
261
+ '൧': '1'
262
+ '൨': '2'
263
+ '൩': '3'
264
+ '൪': '4'
265
+ '൫': '5'
266
+ '൬': '6'
267
+ '൭': '7'
268
+ '൮': '8'
269
+ '൯': '9'
270
+ '൰': '10'
271
+ '൱': '100'
272
+ '൲': '1000'
273
+
274
+
275
+ # Rule 8(II)
276
+
277
+ 'ൺ': ':na'
278
+ 'ൻ': ':ṇa'
279
+ 'ൽ': ':la'
280
+ 'ൾ': ':ḷa'
281
+ 'ൿ': ':ka'