interscript 0.1.2 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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'