interscript-maps 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (291) hide show
  1. checksums.yaml +7 -0
  2. data/README.adoc +28 -0
  3. data/interscript-maps.gemspec +28 -0
  4. data/interscript-maps.yaml +235 -0
  5. data/libs/posix.iml +11 -0
  6. data/libs/unicode.iml +13 -0
  7. data/libs/var-Cyrl.iml +7 -0
  8. data/libs/var-kor.iml +17 -0
  9. data/maps-staging/royin-tha-Thai-Latn-1939-generic.imp +98 -0
  10. data/maps-staging/royin-tha-Thai-Latn-1968.imp +156 -0
  11. data/maps-staging/royin-tha-Thai-Latn-1999-chained.imp +161 -0
  12. data/maps-staging/royin-tha-Thai-Latn-1999.imp +78 -0
  13. data/maps-staging/var-tha-Thai-Thai-phonemic.imp +53 -0
  14. data/maps-staging/var-tha-Thai-Zsym-ipa.imp +273 -0
  15. data/maps/acadsin-zho-Hani-Latn-2002.imp +27515 -0
  16. data/maps/alalc-amh-Ethi-Latn-1997.imp +392 -0
  17. data/maps/alalc-amh-Ethi-Latn-2011.imp +85 -0
  18. data/maps/alalc-ara-Arab-Latn-1997.imp +1171 -0
  19. data/maps/alalc-asm-Deva-Latn-1997.imp +214 -0
  20. data/maps/alalc-asm-Deva-Latn-2012.imp +53 -0
  21. data/maps/alalc-aze-Arab-Latn-1997.imp +321 -0
  22. data/maps/alalc-aze-Cyrl-Latn-1997.imp +101 -0
  23. data/maps/alalc-bel-Cyrl-Latn-1997.imp +118 -0
  24. data/maps/alalc-ben-Beng-Latn-1997.imp +225 -0
  25. data/maps/alalc-ben-Beng-Latn-2017.imp +135 -0
  26. data/maps/alalc-bul-Cyrl-Latn-1997.imp +110 -0
  27. data/maps/alalc-div-Thaa-Latn-1997.imp +171 -0
  28. data/maps/alalc-ell-Grek-Latn-1997.imp +381 -0
  29. data/maps/alalc-ell-Grek-Latn-2010.imp +382 -0
  30. data/maps/alalc-guj-Gujr-Latn-1997.imp +223 -0
  31. data/maps/alalc-guj-Gujr-Latn-2011.imp +57 -0
  32. data/maps/alalc-hin-Deva-Latn-1997.imp +248 -0
  33. data/maps/alalc-hin-Deva-Latn-2011.imp +63 -0
  34. data/maps/alalc-kan-Kana-Latn-1997.imp +233 -0
  35. data/maps/alalc-kan-Kana-Latn-2011.imp +58 -0
  36. data/maps/alalc-kat-Geok-Latn-1997.imp +109 -0
  37. data/maps/alalc-kat-Geor-Latn-1997.imp +104 -0
  38. data/maps/alalc-kor-Hang-Latn-1997.imp +68 -0
  39. data/maps/alalc-mal-Mlym-Latn-1997.imp +260 -0
  40. data/maps/alalc-mal-Mlym-Latn-2012.imp +65 -0
  41. data/maps/alalc-mar-Deva-Latn-1997.imp +178 -0
  42. data/maps/alalc-mar-Deva-Latn-2011.imp +51 -0
  43. data/maps/alalc-mkd-Cyrl-Latn-1997.imp +125 -0
  44. data/maps/alalc-mkd-Cyrl-Latn-2013.imp +113 -0
  45. data/maps/alalc-mon-Cyrl-Latn-1997.imp +161 -0
  46. data/maps/alalc-ori-Orya-Latn-1997.imp +234 -0
  47. data/maps/alalc-ori-Orya-Latn-2011.imp +59 -0
  48. data/maps/alalc-pan-Guru-Latn-1997.imp +241 -0
  49. data/maps/alalc-pan-Guru-Latn-2011.imp +71 -0
  50. data/maps/alalc-per-Arab-Latn-1997.imp +318 -0
  51. data/maps/alalc-pli-Deva-Latn-2012.imp +140 -0
  52. data/maps/alalc-pra-Deva-Latn-2012.imp +52 -0
  53. data/maps/alalc-rus-Cyrl-Latn-1997.imp +165 -0
  54. data/maps/alalc-rus-Cyrl-Latn-2012.imp +107 -0
  55. data/maps/alalc-san-Deva-Latn-2012.imp +207 -0
  56. data/maps/alalc-sin-Sinh-Latn-1997.imp +246 -0
  57. data/maps/alalc-sin-Sinh-Latn-2011.imp +63 -0
  58. data/maps/alalc-srp-Cyrl-Latn-1997.imp +124 -0
  59. data/maps/alalc-srp-Cyrl-Latn-2013.imp +115 -0
  60. data/maps/alalc-tam-Taml-Latn-1997.imp +52 -0
  61. data/maps/alalc-tam-Taml-Latn-2011.imp +49 -0
  62. data/maps/alalc-tel-Telu-Latn-1997.imp +237 -0
  63. data/maps/alalc-tel-Telu-Latn-2011.imp +58 -0
  64. data/maps/alalc-ukr-Cyrl-Latn-1997.imp +123 -0
  65. data/maps/alalc-ukr-Cyrl-Latn-2011.imp +32 -0
  66. data/maps/apcbg-bul-Cyrl-Latn-1995.imp +194 -0
  67. data/maps/az-aze-Cyrl-Latn-1939.imp +105 -0
  68. data/maps/az-aze-Cyrl-Latn-1958.imp +50 -0
  69. data/maps/bas-rus-Cyrl-Latn-2017-bss.imp +160 -0
  70. data/maps/bas-rus-Cyrl-Latn-2017-oss.imp +165 -0
  71. data/maps/bgn-jpn-Hrkt-Latn-1962.imp +288 -0
  72. data/maps/bgn-kor-Hang-Latn-1943.imp +31 -0
  73. data/maps/bgn-kor-Kore-Latn-1943.imp +33 -0
  74. data/maps/bgna-bul-Cyrl-Latn-2006.imp +119 -0
  75. data/maps/bgna-bul-Cyrl-Latn-2009.imp +119 -0
  76. data/maps/bgnpcgn-amh-Ethi-Latn-1967.imp +393 -0
  77. data/maps/bgnpcgn-ara-Arab-Latn-1956.imp +472 -0
  78. data/maps/bgnpcgn-arm-Armn-Latn-1981.imp +125 -0
  79. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.imp +111 -0
  80. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.imp +169 -0
  81. data/maps/bgnpcgn-bal-Arab-Latn-2008.imp +296 -0
  82. data/maps/bgnpcgn-bel-Cyrl-Latn-1979.imp +200 -0
  83. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.imp +137 -0
  84. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.imp +38 -0
  85. data/maps/bgnpcgn-che-Cyrl-Latn-2008.imp +176 -0
  86. data/maps/bgnpcgn-deu-Latn-Latn-2000.imp +56 -0
  87. data/maps/bgnpcgn-div-Thaa-Latn-1972.imp +90 -0
  88. data/maps/bgnpcgn-div-Thaa-Latn-1988.imp +71 -0
  89. data/maps/bgnpcgn-ell-Grek-Latn-1962.imp +443 -0
  90. data/maps/bgnpcgn-ell-Grek-Latn-1996.imp +269 -0
  91. data/maps/bgnpcgn-fao-Latn-Latn-1964.imp +41 -0
  92. data/maps/bgnpcgn-fao-Latn-Latn-1968.imp +28 -0
  93. data/maps/bgnpcgn-fas-Arab-Latn-1956.imp +111 -0
  94. data/maps/bgnpcgn-isl-Latn-Latn-1964.imp +42 -0
  95. data/maps/bgnpcgn-isl-Latn-Latn-1968.imp +32 -0
  96. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.imp +191 -0
  97. data/maps/bgnpcgn-kat-Geor-Latn-1981.imp +116 -0
  98. data/maps/bgnpcgn-kat-Geor-Latn-2009.imp +43 -0
  99. data/maps/bgnpcgn-kaz-Cyrl-Latn-1979.imp +193 -0
  100. data/maps/bgnpcgn-kir-Cyrl-Latn-1979.imp +170 -0
  101. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.imp +177 -0
  102. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.imp +40 -0
  103. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.imp +41 -0
  104. data/maps/bgnpcgn-kur-Arab-Latn-2007.imp +240 -0
  105. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.imp +132 -0
  106. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.imp +174 -0
  107. data/maps/bgnpcgn-mon-Cyrl-Latn-1964.imp +168 -0
  108. data/maps/bgnpcgn-nep-Deva-Latn-2011.imp +208 -0
  109. data/maps/bgnpcgn-per-Arab-Latn-1958.imp +312 -0
  110. data/maps/bgnpcgn-prs-Arab-Latn-2007.imp +552 -0
  111. data/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.imp +445 -0
  112. data/maps/bgnpcgn-pus-Arab-Latn-1968.imp +289 -0
  113. data/maps/bgnpcgn-ron-cyrl-latn-2002.imp +165 -0
  114. data/maps/bgnpcgn-rue-Cyrl-Latn-2016.imp +133 -0
  115. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.imp +195 -0
  116. data/maps/bgnpcgn-sme-Latn-Latn-1984.imp +48 -0
  117. data/maps/bgnpcgn-srp-Cyrl-Latn-1962.imp +55 -0
  118. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.imp +146 -0
  119. data/maps/bgnpcgn-tat-Cyrl-Latn-2007.imp +185 -0
  120. data/maps/bgnpcgn-tgk-Cyrl-Latn-1994.imp +188 -0
  121. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.imp +136 -0
  122. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.imp +88 -0
  123. data/maps/bgnpcgn-urd-Arab-Latn-2007.imp +333 -0
  124. data/maps/bgnpcgn-uzb-Cyrl-Latn-1979.imp +145 -0
  125. data/maps/bgnpcgn-uzb-Cyrl-Latn-2000.imp +74 -0
  126. data/maps/bgnpcgn-zho-Hans-Latn-1979.imp +7463 -0
  127. data/maps/bis-asm-Beng-Latn-13194-1991.imp +154 -0
  128. data/maps/bis-ben-Beng-Latn-13194-1991.imp +151 -0
  129. data/maps/bis-dev-Deva-Latn-13194-1991.imp +178 -0
  130. data/maps/bis-guj-Gujr-Latn-13194-1991.imp +172 -0
  131. data/maps/bis-kan-Kana-Latn-13194-1991.imp +166 -0
  132. data/maps/bis-mlm-Mlym-Latn-13194-1991.imp +170 -0
  133. data/maps/bis-ori-Orya-Latn-13194-1991.imp +168 -0
  134. data/maps/bis-pnj-Guru-Latn-13194-1991.imp +169 -0
  135. data/maps/bis-tel-Telu-Latn-13194-1991.imp +165 -0
  136. data/maps/bis-tml-Taml-Latn-13194-1991.imp +149 -0
  137. data/maps/by-bel-Cyrl-Latn-1998.imp +123 -0
  138. data/maps/by-bel-Cyrl-Latn-2007.imp +77 -0
  139. data/maps/din-grc-Grek-Latn-31634-2011-t1.imp +627 -0
  140. data/maps/din-hin-Deva-Latn-33904-2018.imp +101 -0
  141. data/maps/din-kat-Geor-Latn-32707-2010.imp +103 -0
  142. data/maps/din-mar-Deva-Latn-33904-2018.imp +83 -0
  143. data/maps/din-nep-Deva-Latn-33904-2018.imp +110 -0
  144. data/maps/din-pli-Deva-Latn-33904-2018.imp +72 -0
  145. data/maps/din-pra-Deva-Latn-33904-2018.imp +66 -0
  146. data/maps/din-san-Deva-Latn-33904-2018.imp +294 -0
  147. data/maps/din-tam-Taml-Latn-33903-2016.imp +187 -0
  148. data/maps/dos-nep-Deva-Latn-1997.imp +47 -0
  149. data/maps/elot-ell-Grek-Latn-743-1982-tl.imp +399 -0
  150. data/maps/elot-ell-Grek-Latn-743-1982-ts.imp +397 -0
  151. data/maps/elot-ell-Grek-Latn-743-2001-tl.imp +34 -0
  152. data/maps/elot-ell-Grek-Latn-743-2001-ts.imp +178 -0
  153. data/maps/ggg-kat-Geor-Latn-2002.imp +75 -0
  154. data/maps/gki-bel-Cyrl-Latn-1992.imp +44 -0
  155. data/maps/gki-bel-Cyrl-Latn-2000.imp +159 -0
  156. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.imp +179 -0
  157. data/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.imp +132 -0
  158. data/maps/hk-yue-Hani-Latn-1888.imp +29201 -0
  159. data/maps/icao-bel-Cyrl-Latn-9303.imp +136 -0
  160. data/maps/icao-bul-Cyrl-Latn-9303.imp +127 -0
  161. data/maps/icao-fas-Arab-Latn-9303.imp +112 -0
  162. data/maps/icao-heb-Hebr-Latn-9303.imp +160 -0
  163. data/maps/icao-mkd-Cyrl-Latn-9303.imp +126 -0
  164. data/maps/icao-rus-Cyrl-Latn-9303.imp +126 -0
  165. data/maps/icao-srp-Cyrl-Latn-9303.imp +126 -0
  166. data/maps/icao-ukr-Cyrl-Latn-9303.imp +127 -0
  167. data/maps/iso-ara-Arab-Latn-233-1984.imp +301 -0
  168. data/maps/iso-asm-Beng-Latn-15919-2001.imp +73 -0
  169. data/maps/iso-ben-Beng-Latn-15919-2001.imp +171 -0
  170. data/maps/iso-ell-Grek-Latn-843-1997-t1.imp +365 -0
  171. data/maps/iso-ell-Grek-Latn-843-1997-t2.imp +43 -0
  172. data/maps/iso-guj-Gujr-Latn-15919-2001.imp +214 -0
  173. data/maps/iso-hin-Deva-Latn-15919-2001.imp +73 -0
  174. data/maps/iso-inc-Deva-Latn-15919-2001.imp +61 -0
  175. data/maps/iso-jpn-Hrkt-Latn-3602-1989.imp +59 -0
  176. data/maps/iso-kan-Kana-Latn-15919-2001.imp +212 -0
  177. data/maps/iso-kat-Geor-Latn-9984-1996.imp +103 -0
  178. data/maps/iso-kor-Hang-Latn-1996-method1.imp +140 -0
  179. data/maps/iso-kor-Hang-Latn-1996-method2.imp +132 -0
  180. data/maps/iso-mal-Mlym-Latn-15919-2001.imp +276 -0
  181. data/maps/iso-mar-Deva-Latn-15919-2001.imp +68 -0
  182. data/maps/iso-nep-Deva-Latn-15919-2001.imp +75 -0
  183. data/maps/iso-ori-Orya-Latn-15919-2001.imp +188 -0
  184. data/maps/iso-pan-Guru-Latn-15919-2001.imp +217 -0
  185. data/maps/iso-pli-Beng-Latn-15919-2001.imp +66 -0
  186. data/maps/iso-pli-Deva-Latn-15919-2001.imp +68 -0
  187. data/maps/iso-pli-Sinh-Latn-15919-2001.imp +211 -0
  188. data/maps/iso-pli-Thai-Latn-15919-2001.imp +47 -0
  189. data/maps/iso-pra-Deva-Latn-15919-2001.imp +60 -0
  190. data/maps/iso-prs-Arab-Latn-233-3-1999.imp +352 -0
  191. data/maps/iso-rus-Cyrl-Latn-9-1995.imp +279 -0
  192. data/maps/iso-san-Deva-Latn-15919-2001.imp +215 -0
  193. data/maps/iso-tam-Taml-Latn-15919-2001.imp +153 -0
  194. data/maps/iso-tel-Telu-Latn-15919-2001.imp +214 -0
  195. data/maps/iso-tha-Thai-Latn-11940-1998.imp +114 -0
  196. data/maps/kp-kor-Hang-Latn-2002.imp +540 -0
  197. data/maps/lshk-yue-Hani-Latn-jyutping-1993.imp +29005 -0
  198. data/maps/masm-mon-Cyrl-Latn-5217-2012.imp +136 -0
  199. data/maps/masm-mon-Latn-Cyrl-5217-2012.imp +162 -0
  200. data/maps/mext-jpn-Hrkt-Latn-1954.imp +403 -0
  201. data/maps/moct-kor-Hang-Latn-2000.imp +475 -0
  202. data/maps/mofa-jpn-Hrkt-Latn-1989.imp +484 -0
  203. data/maps/mv-div-Thaa-Latn-1987.imp +144 -0
  204. data/maps/mvd-bel-Cyrl-Latn-2008.imp +224 -0
  205. data/maps/mvd-bel-Cyrl-Latn-2010.imp +64 -0
  206. data/maps/mvd-rus-Cyrl-Latn-2008.imp +110 -0
  207. data/maps/mvd-rus-Cyrl-Latn-2010.imp +40 -0
  208. data/maps/odni-ara-Arab-Latn-2004.imp +106 -0
  209. data/maps/odni-ara-Arab-Latn-2015.imp +281 -0
  210. data/maps/odni-aze-Cyrl-Latn-2015.imp +158 -0
  211. data/maps/odni-bel-Cyrl-Latn-2015.imp +138 -0
  212. data/maps/odni-bul-Cyrl-Latn-2005.imp +90 -0
  213. data/maps/odni-bul-Cyrl-Latn-2015.imp +103 -0
  214. data/maps/odni-che-Cyrl-Latn-2015.imp +165 -0
  215. data/maps/odni-fas-Arab-Latn-2004.imp +268 -0
  216. data/maps/odni-fas-Arab-Latn-2015.imp +398 -0
  217. data/maps/odni-hin-Deva-Latn-2004.imp +180 -0
  218. data/maps/odni-hin-Deva-Latn-2015.imp +256 -0
  219. data/maps/odni-kat-Geor-Latn-2015.imp +76 -0
  220. data/maps/odni-kaz-Cyrl-Latn-2015.imp +164 -0
  221. data/maps/odni-kir-Cyrl-Latn-2015.imp +149 -0
  222. data/maps/odni-kor-Hang-Latn-2015.imp +307 -0
  223. data/maps/odni-mkd-Cyrl-Latn-2005.imp +28 -0
  224. data/maps/odni-mkd-Cyrl-Latn-2015.imp +124 -0
  225. data/maps/odni-prs-Arab-Latn-2004.imp +120 -0
  226. data/maps/odni-prs-Arab-Latn-2015.imp +225 -0
  227. data/maps/odni-pus-Arab-Latn-2011.imp +327 -0
  228. data/maps/odni-rus-Cyrl-Latn-2015.imp +79 -0
  229. data/maps/odni-srp-Cyrl-Latn-2005.imp +35 -0
  230. data/maps/odni-srp-Cyrl-Latn-2015.imp +130 -0
  231. data/maps/odni-tat-Cyrl-Latn-2015.imp +157 -0
  232. data/maps/odni-tgk-Cyrl-Latn-2015.imp +161 -0
  233. data/maps/odni-tuk-Cyrl-Latn-2015.imp +159 -0
  234. data/maps/odni-uig-Cyrl-Latn-2015.imp +151 -0
  235. data/maps/odni-ukr-Cyrl-Latn-2015.imp +136 -0
  236. data/maps/odni-urd-Arab-Latn-2015.imp +220 -0
  237. data/maps/odni-uzb-Cyrl-Latn-2015.imp +165 -0
  238. data/maps/sac-zho-Hans-Latn-1979.imp +20940 -0
  239. data/maps/sasm-mon-Mong-Latn-general-1978.imp +294 -0
  240. data/maps/sasm-mon-Mong-Latn-phonetic-1978.imp +261 -0
  241. data/maps/ses-ara-Arab-Latn-1930.imp +225 -0
  242. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.imp +171 -0
  243. data/maps/ua-ukr-Cyrl-Latn-1996.imp +149 -0
  244. data/maps/ua-ukr-Cyrl-Latn-2007.imp +69 -0
  245. data/maps/ua-ukr-Cyrl-Latn-2010.imp +128 -0
  246. data/maps/un-amh-Ethi-Latn-2016.imp +483 -0
  247. data/maps/un-ara-Arab-Latn-1971.imp +137 -0
  248. data/maps/un-ara-Arab-Latn-1972.imp +155 -0
  249. data/maps/un-ara-Arab-Latn-2017.imp +375 -0
  250. data/maps/un-asm-Beng-Latn-1972.imp +188 -0
  251. data/maps/un-bel-Cyrl-Latn-2007.imp +78 -0
  252. data/maps/un-ben-Beng-Latn-2016.imp +516 -0
  253. data/maps/un-ell-Grek-Latn-1987-phonetic.imp +437 -0
  254. data/maps/un-ell-Grek-Latn-1987-tl.imp +27 -0
  255. data/maps/un-ell-Grek-Latn-1987-ts.imp +269 -0
  256. data/maps/un-guj-Gujr-Latn-1972.imp +196 -0
  257. data/maps/un-hin-Deva-Latn-2016.imp +356 -0
  258. data/maps/un-kan-Kana-Latn-2016.imp +214 -0
  259. data/maps/un-mal-Mlym-Latn-1972.imp +215 -0
  260. data/maps/un-mar-Deva-Latn-2016.imp +96 -0
  261. data/maps/un-mon-Mong-Latn-general-2013.imp +170 -0
  262. data/maps/un-mon-Mong-Latn-phonetic-2013.imp +170 -0
  263. data/maps/un-nep-Deva-Latn-1972.imp +295 -0
  264. data/maps/un-nep-Deva-Latn-2013.imp +62 -0
  265. data/maps/un-ori-Orya-Latn-1972.imp +208 -0
  266. data/maps/un-pan-Guru-Latn-1972.imp +321 -0
  267. data/maps/un-prs-Arab-Latn-1967.imp +214 -0
  268. data/maps/un-rus-Cyrl-Latn-1987.imp +96 -0
  269. data/maps/un-sin-Sinh-Latn-1972.imp +193 -0
  270. data/maps/un-tam-Taml-Latn-1972.imp +173 -0
  271. data/maps/un-tel-Telu-Latn-1972.imp +229 -0
  272. data/maps/un-ukr-Cyrl-Latn-1998.imp +58 -0
  273. data/maps/un-ukr-Cyrl-Latn-2012.imp +95 -0
  274. data/maps/un-urd-Arab-Latn-1972.imp +290 -0
  275. data/maps/var-amh-Ethi-Latn-eae-2003.imp +414 -0
  276. data/maps/var-gez-Ethi-Latn-eae-2003.imp +54 -0
  277. data/maps/var-hin-Deva-Latn-hunterian-1872.imp +212 -0
  278. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.imp +399 -0
  279. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.imp +382 -0
  280. data/maps/var-kor-Hang-Hang-jamo.imp +11196 -0
  281. data/maps/var-kor-Hang-Latn-mr-1939.imp +574 -0
  282. data/maps/var-kor-Kore-Hang-2013.imp +59764 -0
  283. data/maps/var-kor-Kore-Latn-mr-1939.imp +36 -0
  284. data/maps/var-mar-Deva-Latn-hunterian-1872.imp +39 -0
  285. data/maps/var-mon-Mong-Latn-1930.imp +101 -0
  286. data/maps/var-mon-Mong-Latn-lessing.imp +181 -0
  287. data/maps/var-mon-Mong-Latn-vpmc.imp +182 -0
  288. data/maps/var-pra-Deva-Latn-iast-1912.imp +36 -0
  289. data/maps/var-san-Deva-Latn-iast-1912.imp +147 -0
  290. data/maps/var-zho-Hani-Latn-wd-1979.imp +27549 -0
  291. metadata +335 -0
@@ -0,0 +1,214 @@
1
+ metadata {
2
+ authority_id: alalc
3
+ id: 1997
4
+ language: iso-639-2:asm
5
+ source_script: Deva
6
+ destination_script: Latn
7
+ name: Assamese Romanization, 1997
8
+ url: http://catdir.loc.gov/catdir/cpso/romanization/assamese.pdf
9
+ creation_date: 1997
10
+ description: |
11
+ ALA-LC Romanization table for Assamese
12
+
13
+ notes:
14
+
15
+ - Only the vowel forms that appear at the beginning of a syllable are listed; the forms used for
16
+ vowels following a consonant can be found in grammars; no distinction between the two is
17
+ made in transliteration.
18
+
19
+ - |
20
+ The vowel a is implicit after all consonants and consonant clusters and is supplied in
21
+ transliteration, with the following exceptions:
22
+
23
+ a) when another vowel is indicated by its appropriate sign; and
24
+ b) when the absence of any vowel is indicated by the subscript sign ( ◌् ) called halanta or
25
+ birāma.
26
+
27
+ - Candrabindu before guttural, palatal, cerebral, and dental occlusives is transliterated n̐. Before
28
+ labials, sibilants, semivowels, aspirates, vowels, and in final position it is transliterated m̐.
29
+
30
+ - When doubled, avagraha is transliterated by two apostrophes ( ’’ ).
31
+ }
32
+
33
+ tests {
34
+ test "অসমীয়া কবিতা", "asamīẏā kabitā"
35
+ test "কবিৰ আজি জন্মদিন", "kabira āji janmadina"
36
+ test "বেৰুটত এমাহৰ পাছতে পুনৰ ভয়ংকৰ অগ্নিকাণ্ড", "beruṭata emāhara pāchate punara bhayaṃkara agnikāṇḍa"
37
+ test "ভঙাৰ বিৰুদ্ধে আৱেদন দাখিল কংগনাৰ", "bhaṅāra biruddhe āwedana dākhila kaṃganāra"
38
+ test "আপুনি পঢ়ি ভাল পাব পৰা বাতৰি", "āpuni paṛhi bhāla pāba parā bātari"
39
+ test "শ্ৰীৰামপুৰত গৰুভৰ্তি ট্ৰাক জব্দ, দুজনক আটক", "śrīrāmapurata garubharti ṭrāka jabda, dujanaka āṭaka"
40
+ test "কেনে আছে প্ৰাক্তন", "kene āche prāktana"
41
+ test "কমুম্বাইৰ মেয়ৰৰ দেহত কোভিড পজিটিভ", "kamumbāira meẏarara dehata kobhiḍa pajiṭibha"
42
+ test "টুইটাৰযোগে খোদ সদৰী কৰে এই কথা", "ṭuiṭāraẏoge khoda sadarī kare ei kathā"
43
+ test "লখিমপুৰ জিলাৰ নাৰায়ণপুৰৰ বৰপথাৰত আজি প্ৰশান্তি ধাম নামেৰে এখন বৃদ্ধাশ্ৰমৰ শুভাৰম্ভ কৰা হয়", "lakhimapura jilāra nārāẏaṇapurara barapathārata āji praśānti dhāma nāmere ekhana bṛddhāśramara śubhārambha karā haẏa"
44
+ }
45
+
46
+ aliases {
47
+ def_alias deva_chars_1, any("\u09be\u09bf\u09c0\u09c1\u09c2\u09c3\u09c7\u09c8\u09cb\u09cc\u094d\u09cd")
48
+ }
49
+
50
+ stage {
51
+
52
+ # RULES
53
+ # note[2]
54
+ sub "ক", "k", after: deva_chars_1
55
+ sub "খ", "kh", after: deva_chars_1
56
+ sub "গ", "g", after: deva_chars_1
57
+ sub "ঘ", "gh", after: deva_chars_1
58
+ sub "ঙ", "ṅ", after: deva_chars_1
59
+ sub "চ", "c", after: deva_chars_1
60
+ sub "ছ", "ch", after: deva_chars_1
61
+ sub "জ", "j", after: deva_chars_1
62
+ sub "ঝ", "jh", after: deva_chars_1
63
+ sub "ঞ", "ñ", after: deva_chars_1
64
+ sub "ট", "ṭ", after: deva_chars_1
65
+ sub "ঠ", "ṭh", after: deva_chars_1
66
+ sub "ড", "ḍ", after: deva_chars_1
67
+ sub "ড়", "ṛ", after: deva_chars_1
68
+ sub "ঢ", "ḍh", after: deva_chars_1
69
+ sub "ঢ়", "ṛh", after: deva_chars_1
70
+ sub "ণ", "ṇ", after: deva_chars_1
71
+ sub "ত", "t", after: deva_chars_1
72
+ sub "ৎ", "ṭ", after: deva_chars_1
73
+ sub "থ", "th", after: deva_chars_1
74
+ sub "দ", "d", after: deva_chars_1
75
+ sub "ধ", "dh", after: deva_chars_1
76
+ sub "ন", "n", after: deva_chars_1
77
+ sub "প", "p", after: deva_chars_1
78
+ sub "ফ", "ph", after: deva_chars_1
79
+ sub "ব", "b", after: deva_chars_1
80
+ sub "ভ", "bh", after: deva_chars_1
81
+ sub "ম", "m", after: deva_chars_1
82
+ sub "য়", "y", after: deva_chars_1
83
+ sub "য", "ẏ", after: deva_chars_1
84
+ sub "য়", "ẏ", after: deva_chars_1
85
+ sub "ৰ", "r", after: deva_chars_1
86
+ sub "ল", "l", after: deva_chars_1
87
+ sub "ৱ", "w", after: deva_chars_1
88
+ sub "শ", "ś", after: deva_chars_1
89
+ sub "ষ", "sh", after: deva_chars_1
90
+ sub "স", "s", after: deva_chars_1
91
+ sub "হ", "h", after: deva_chars_1
92
+ # note[3]
93
+ sub "\u0981", "ṅ", after: any("কখগঘঙচছজঝঞটঠডড়ঢঢ়ণতৎথদধন") # ঁ before guttural, palatal, cerebral, and dental
94
+
95
+
96
+ # CHARACTERS
97
+ parallel {
98
+
99
+ #Vowels and Diphthongs (see Note 1)
100
+
101
+ sub "অ", "a"
102
+ sub "আ", "ā"
103
+ sub "ই", "i"
104
+ sub "ঈ", "ī"
105
+ sub "উ", "u"
106
+ sub "ঊ", "ū"
107
+ sub "ঋ", "ṛ"
108
+ sub "ৠ", "ṝ"
109
+ sub "ঌ", "ḹ"
110
+ sub "এ", "e"
111
+ sub "ঐ", "ai"
112
+ sub "ও", "o"
113
+ sub "ঔ", "au"
114
+
115
+ # Consonant characters
116
+
117
+ #Gutturals
118
+ sub "ক", "ka"
119
+ sub "খ", "kha"
120
+ sub "গ", "ga"
121
+ sub "ঘ", "gha"
122
+ sub "ঙ", "ṅa"
123
+
124
+ #Palatals
125
+ sub "চ", "ca"
126
+ sub "ছ", "cha"
127
+ sub "জ", "ja"
128
+ sub "ঝ", "jha"
129
+ sub "ঞ", "ña"
130
+
131
+ #Cerebrals
132
+ sub "ট", "ṭa"
133
+ sub "ঠ", "ṭha"
134
+ sub "ড", "ḍa"
135
+ sub "ড়", "ṛa"
136
+ sub "ঢ", "ḍha"
137
+ sub "ঢ়", "ṛha"
138
+ sub "ণ", "ṇa"
139
+
140
+ #Dentals
141
+ sub "ত", "ta"
142
+ sub "ৎ", "ṭ"
143
+ sub "থ", "tha"
144
+ sub "দ", "da"
145
+ sub "ধ", "dha"
146
+ sub "ন", "na"
147
+
148
+ #Labials
149
+ sub "প", "pa"
150
+ sub "ফ", "pha"
151
+ sub "ব", "ba"
152
+ sub "ভ", "bha"
153
+ sub "ম", "ma"
154
+
155
+ #Semivowels
156
+ sub "য়", "ya"
157
+ sub "য", "ẏa"
158
+ sub "য়", "ẏa"
159
+ sub "ৰ", "ra"
160
+ sub "ল", "la"
161
+ sub "ৱ", "wa"
162
+
163
+ #Sibilants
164
+ sub "শ", "śa"
165
+ sub "ষ", "sha"
166
+ sub "স", "sa"
167
+
168
+ #Aspirate
169
+ sub "হ", "ha"
170
+
171
+
172
+ # Anusvāra
173
+ sub "ং", "ṃ"
174
+
175
+ # Bisarga
176
+ sub "ঃ", "ḥ"
177
+
178
+ # Candrabindu (see Note 3)
179
+ sub "ঁ", "m̐"
180
+
181
+ # Abagraha (see Note 4)
182
+ sub "ऽ", "’" # (apostrophe)
183
+
184
+ # Medials # Needed for connecting constants
185
+ sub "\u09be", "ā"
186
+ sub "\u09bf", "i"
187
+ sub "\u09c0", "ī"
188
+ sub "\u09c1", "u"
189
+ sub "\u09c2", "ū"
190
+ sub "\u09c3", "ṛ"
191
+ sub "\u09c7", "e"
192
+ sub "\u09c8", "ai"
193
+ sub "\u09cb", "o"
194
+ sub "\u09cc", "au"
195
+ sub "।", "."
196
+ sub "्", ""
197
+ sub "\u09CD", "" # Used for joining
198
+
199
+ # Digits
200
+
201
+ sub "১", "1"
202
+ sub "২", "2"
203
+ sub "৩", "3"
204
+ sub "৪", "4"
205
+ sub "৫", "5"
206
+ sub "৬", "6"
207
+ sub "৭", "7"
208
+ sub "৮", "8"
209
+ sub "৯", "9"
210
+ sub "০", "0"
211
+ }
212
+
213
+ compose
214
+ }
@@ -0,0 +1,53 @@
1
+ metadata {
2
+ authority_id: alalc
3
+ id: 2012
4
+ language: iso-639-2:asm
5
+ source_script: Deva
6
+ destination_script: Latn
7
+ name: Assamese Romanization, 2012
8
+ url: https://www.loc.gov/catdir/cpso/romanization/assamese.pdf
9
+ creation_date: 1997
10
+ description: |
11
+ ALA-LC Romanization table for Assamese
12
+
13
+ notes:
14
+
15
+ - Only the vowel forms that appear at the beginning of a syllable are listed; the forms used for
16
+ vowels following a consonant can be found in grammars; no distinction between the two is
17
+ made in transliteration.
18
+
19
+ - |
20
+ The vowel a is implicit after all consonants and consonant clusters and is supplied in
21
+ transliteration, with the following exceptions:
22
+
23
+ a) when another vowel is indicated by its appropriate sign; and
24
+ b) when the absence of any vowel is indicated by the subscript sign ( ◌् ) called halanta or
25
+ birāma.
26
+
27
+ - Candrabindu before guttural, palatal, cerebral, and dental occlusives is transliterated n̐. Before
28
+ labials, sibilants, semivowels, aspirates, vowels, and in final position it is transliterated m̐.
29
+
30
+ - When doubled, avagraha is transliterated by two apostrophes ( ’’ ).
31
+ }
32
+
33
+ tests {
34
+ test "ৰাজ্যিক স্বাস্থ্য মন্ত্ৰী পীয়ুষ হাজৰিকাৰ বিৰুদ্ধে দাখিল কৰা হৈছে এজাহাৰ।", "rājẏika sbāsthẏa mantrī pīyusha hājarikāra biruddhe dākhila karā haiche ejāhāra."
35
+ test "কোৰোনা মহামাৰীৰ এই সময়ত সভাখনত হাজাৰ হাজাৰ লোকে মাস্ক পৰিধান নকৰাৰ লগতে সামাজিক দূৰত্ব নমনাৰ অভিযোগ উত্থাপন কৰা হৈছে", "koronā mahāmārīra ei samayata sabhākhanata hājāra hājāra loke māska paridhāna nakarāra lagate sāmājika dūratba namanāra abhiẏoga utthāpana karā haiche"
36
+ test "হাওৰাঘাটৰ গ্ৰামীণ বিকাশ বেংক হিতাধিকাৰীৰ পৰা উৎকোচ লৈ গ্ৰেপ্তাৰ বিজেপি কৰ্মী যীচু কেম্পাই", "hāorāghāṭara grāmīṇa bikāśa beṃka hitādhikārīra parā uṭkoca lai greptāra bijepi karmī ẏīcu kempāi"
37
+ test "জ্যেষ্ঠ সাংবাদিক পৰাগ ভূঞাৰ মৃত্যুক লৈ তদন্ত আৰম্ভ চিআইডিৰ", "jẏeshṭha sāṃbādika parāga bhūñāra mṛtẏuka lai tadanta ārambha ciāiḍira"
38
+ test "সাংবাদিক পৰাগ ভূঞাৰ মৃত্যুৰ উচিত তদন্তৰ দাবীত নলবাৰীত অৱস্থান ধৰ্মঘট", "sāṃbādika parāga bhūñāra mṛtẏura ucita tadantara dābīta nalabārīta awasthāna dharmaghaṭa"
39
+ test "দৰঙৰ বিভিন্ন অঞ্চলত মানসিক ৰোগৰ সজাগতামূলক বাটৰ নাট প্ৰদৰ্শন", "daraṅara bibhinna añcalata mānasika rogara sajāgatāmūlaka bāṭara nāṭa pradarśana"
40
+ test "অযোধ্যাত দীপাৱলীঃ ৫.৮৬ লাখ মাটি চাকি জ্বলাই গঢ়িলে গিনিজ ৱ’ৰ্ল্ড ৰেকৰ্ড", "aẏodhẏāta dīpāwalīḥ 5.86 lākha māṭi cāki jbalāi gaḍha়ile ginija wa’rlḍa rekarḍa"
41
+ test "ৰাজ্যত আকৌ ২৩৩ জন কোভিড পজিটিভ, সুস্থ হৈছে ৬৪২ জন", "rājẏata ākau 233 jana kobhiḍa pajiṭibha, sustha haiche 642 jana"
42
+ test "এতিয়ালৈকে ৰাজ্যত এই ভাইৰাছত আক্ৰান্ত লোকৰ সংখ্যা ২১০০৬৮জনলৈ পাইছে বৃদ্ধি।", "etiyālaike rājẏata ei bhāirāchata ākrānta lokara saṃkhẏā 210068janalai pāiche bṛddhi."
43
+ test "এতিয়ালৈকে ৰাজ্যত কোৰোনাত আক্ৰান্ত হৈ ৯৫৮জন লোক হেৰুৱাইছে প্ৰাণ।", "etiyālaike rājẏata koronāta ākrānta hai 958jana loka heruwāiche prāṇa."
44
+ }
45
+
46
+ dependency "alalc-asm-Deva-Latn-1997", as: devalatn
47
+
48
+ stage {
49
+
50
+ run map.devalatn.stage.main
51
+
52
+ }
53
+
@@ -0,0 +1,321 @@
1
+ metadata {
2
+ authority_id: alalc
3
+ id: 1997
4
+ language: iso-639-2:aze
5
+ source_script: Arab
6
+ destination_script: Latn
7
+ name: ALA-LC Romanization Table -- azerbaij (1997)
8
+ url: http://catdir.loc.gov/catdir/cpso/romanization/azerbaij.pdf
9
+ creation_date: 1997
10
+ description: |
11
+ ALA-LC Romanization table for Arabic
12
+
13
+ notes:
14
+ - 1. As seen in the examples above, vowel harmony, which is
15
+ found in Modern Turkish, applies to Azerbaijani as well.
16
+
17
+ - 2. The letter ى in final position may represent the long
18
+ vowel romanized á, in addition to the
19
+ vowels romanized i and 1. This occurs in Arabic names, such
20
+ as Mustafá
21
+ al-Musanná
22
+
23
+ - 3. Vowel points are used sparingly in Azerbaijani
24
+ publications. For romanization, they must be
25
+ supplied from a dictionary.
26
+
27
+ - Rule 1 ء hamza
28
+ (a) When initial, ء is not represented in romanization
29
+ üzdah أوزدة
30
+
31
+ (b) When medial or final in words of Perso-Arabic origin, 9 is
32
+ romanized as ’ (alit), except when it accompanies the
33
+ phonetic sound e (as in men), in which case it is romanized
34
+ by e.
35
+ mas’alah مَسئَلة
36
+ gecah كئجة
37
+ necah نئجة
38
+
39
+ - Rule 2 ˜ (maddah)
40
+
41
+ (a) Initial آ is romanized ā.
42
+
43
+ ādām آدام
44
+
45
+ (b) Medial آ, when it represents the phonetic combination ’ā, is so romanized.
46
+
47
+ Heydar'ãbãd حيدَرآبَاد
48
+
49
+ - Rule 3 ّ
50
+ (shaddah or tashdid) is represented by doubling the letter or digraph concerned.
51
+ sãqqãl سَاقَّال
52
+
53
+ Note the exceptional case where ّ is written over و and ي to represent
54
+ the combination of long vowel plus consonants.
55
+ madaníyat مَدَنِيَّت
56
+
57
+ - |
58
+ Rule 4 Tanvīn (written form ٌ, ً (ًا), or ٍ ) which occurs chiefly in Arabic words,
59
+ is romanized un, in, an, and an, respectively.
60
+
61
+ (a) When it occurs in indefinite nouns derived from defective roots.
62
+
63
+ qāḍin قاضٍ
64
+ ma‘nan معنىً
65
+
66
+ (b) When it indicates the adverbial use of a noun or adjective.
67
+
68
+ ṭab‘an طبعًا
69
+ faj’atan فجأةً
70
+ al-Mushtarik waḍ‘an المشترك وضعاً
71
+ wa-al-muftariq ṣuq‘an والمفترق صقعاً
72
+
73
+ - ة in a word in the construct state is romanized t. See rule 7(b).
74
+
75
+ - The consonant letter ö at the end of Arabic words in the
76
+ genetive construction (izãfah) is romanized by t.
77
+
78
+ takmilat al-axbãr تَكمِلَة الأخبَار
79
+
80
+ # Grammatical Structure as It Affects Romanization
81
+ - Rule 6 izãfah. When two Persian words are used in an Azerbaijani
82
+ context in a relationship known as izãfah, the first word (
83
+ the muzãf) is followed by an additional letter or syllable
84
+ in romanization. This is added according to the following
85
+ rules
86
+ (a) When the muzaf bears no special mark of izãfah, it is
87
+ followed by -i.
88
+ Sazman-i tabligãti-Islãm سازمان تبليغات اسلامي
89
+
90
+ (b) When the muzãf is marked by the addition of 9, it is followed by -'i.
91
+ Nãbigah-'i dahr نابغة دَهر
92
+
93
+ (c) When the muzãf is marked by the addition of û, it is followed by -yi.
94
+ darya-yi nur دَريَاي نُور
95
+
96
+ (d) izãfah is represented in romanization of personal names only when
97
+ implied in the Persian script.
98
+ Mucír-i BeylaqãnT مَجير بيلقاني
99
+ Maktabí-i Sírãzí مكتبي شيرازي
100
+
101
+ # Affixes and Compounds
102
+ - Rule 7 Affixes.
103
+ (a) When the affix and the word with it is connected grammatically are
104
+ written separately in Azerbaijani, the two are separated in romanization
105
+ by a single prime(').
106
+
107
+ (b) The Arabic article al is separated by a hyphen, in romanization,
108
+ from the word to which it is prefixed.
109
+
110
+ - Rule 8 Compounds.
111
+ When the elements of a compound (except a compound personal name)
112
+ are written separately in Azerbaijani, they are separated in
113
+ romanization by a single prime(').
114
+ # Orthography of Azerbaijani in Romanization
115
+
116
+ - Rule 9 Capitalization
117
+
118
+ (a) Rules for the capitalization of English are followed, except that
119
+ the Arabic article al, is lower cased in all positions.
120
+
121
+ (b) Diacritics are used with both upper and lower case letters in romanization.
122
+
123
+ - Rule 10 Foreign words.
124
+ Foreign words in an Azerbaijani context, including Persian and Arabic words,
125
+ are romanized according to the rules for Azerbaijani. For short vowels not
126
+ indicated in the script, the Azerbaijani vowels nearest the original
127
+ pronunciation of the word are supplied in romanization.
128
+ }
129
+
130
+ tests {
131
+ test "بَرَكَت", "Barakat"
132
+ test "سَاحِل", "Sāḥil"
133
+ test "بَادِمجَان", "Bādimcān"
134
+ test "قُدرَت", "Qudrat"
135
+ test "بُوغَا", "Būğā"
136
+ test "آرَام", "Ārām"
137
+ test "اِئنلِي", "Enlī"
138
+ test "دَلِيل", "Dalīl"
139
+ test "قَارَانلِيق", "Qārānlīq"
140
+ test "اِيش", "Īş"
141
+ test "اِيشِيق", "Īşīq"
142
+ test "اُون", "On"
143
+ test "ُاون", "Ūn"
144
+ test "ُاؤن", "Ön"
145
+ # - source: ُأوزُوم
146
+ # expected: üzūm
147
+ test "اَيْوَان", "Eyvān"
148
+ test "اَوحَدِي", "Awḥadī"
149
+ test "َاوَّل", "Avval"
150
+ test "طَهي", "Ṭahy"
151
+ # From Rule 1 - part a
152
+ test "ُأوزدَة", "Üzdah"
153
+ # From Rule 1 - part b
154
+ test "مَسئَلَة", "Mas’alah"
155
+ test "گِئجَة", "Gecah"
156
+ test "نِئچَة", "Neçah"
157
+ # From Rule 2 - part a
158
+ test "آدَام", "Ādām"
159
+ # From Rule 2 - part b
160
+ test "حَيْدَرآبَاد", "Ḥeydar’ābād"
161
+ # From Rule 3
162
+ test "سَاقَّال", "Sāqqāl"
163
+ test "مَدَنِيَّت", "Madanīyat"
164
+ # From Rule 5
165
+ test "تَكمِلَة الأَخبَار", "Takmilat al-Axbār"
166
+ }
167
+
168
+ stage {
169
+
170
+ # CHARACTERS
171
+ parallel {
172
+
173
+ sub "\u0628\u0651", "bb" # ب
174
+ sub "\u067E\u0651", "pp" # پ
175
+ sub "\u062A\u0651", "tt" # ت
176
+ sub "\u062b\u0651", "s̱s̱" # ث
177
+ sub "\u062C\u0651", "cc" # ج
178
+ sub "\u0686\u0651", "çç" # چ
179
+ sub "\u062d\u0651", "ḥḥ" # ح
180
+ sub "\u062E\u0651", "xx" # خ
181
+ sub "\u062F\u0651", "dd" # د
182
+ sub "\u0630\u0651", "ẕẕ" # ذ
183
+ sub "\u0631\u0651", "rr" # ر
184
+ sub "\u0632\u0651", "zz" # ز
185
+ sub "\u0698\u0651", "jj" # ژ
186
+ sub "\u0633\u0651", "ss" # س
187
+ sub "\u0634\u0651", "şş" # ش
188
+ sub "\u0635\u0651", "ṣṣ" # ص
189
+ sub "\u0636\u0651", "z̤z̤" # ض
190
+ sub "\u0637\u0651", "ṭṭ" # ط
191
+ sub "\u0638\u0651", "ẓẓ" # ظ
192
+ sub "\u0639\u0651", "‘‘" # ع
193
+ sub "\u063A\u0651", "ğğ" # غ
194
+ sub "\u0341\u0651", "ff" # ف
195
+ sub "\u0642\u0651", "qq" # ق
196
+ sub "\u06A9\u0651", "kk" # ك
197
+ sub "\u0643\u0651", "kk" # ك
198
+ sub "\u06AF\u0651", "gg" # گ
199
+ sub "\u0644\u0651", "ll" # ل
200
+ sub "\u0645\u0651", "mm" # م
201
+ sub "\u0646\u0651", "nn" # ن
202
+ sub "\u0648\u0651", "vv" # و
203
+ sub "\u0647\u0651", "hh" # ه
204
+ sub "\u064A\u0651", "yy" # ي
205
+
206
+ sub "\u060c", "," # ،
207
+
208
+ sub "\u0627\u0644\u0644\u0651\u064e\u0647", "Allāh"
209
+
210
+ sub boundary + "\u0627\u0644", "al-" # ال
211
+
212
+ sub "\u0628", "b" # ب
213
+ sub "\u067E", "p" # پ
214
+ sub "\u062A", "t" # ت
215
+ sub "\u062b", "s̱" # ث
216
+ sub "\u062C", "c" # ج
217
+ sub "\u0686", "ç" # چ
218
+ sub "\u062d", "ḥ" # ح
219
+ sub "\u062E", "x" # خ
220
+ sub "\u062F", "d" # د
221
+ sub "\u0630", "ẕ" # ذ
222
+ sub "\u0631", "r" # ر
223
+ sub "\u0632", "z" # ز
224
+ sub "\u0698", "j" # ژ
225
+ sub "\u0633", "s" # س
226
+ sub "\u0634", "ş" # ش
227
+ sub "\u0635", "ṣ" # ص
228
+ sub "\u0636", "z̤" # ض
229
+ sub "\u0637", "ṭ" # ط
230
+ sub "\u0638", "ẓ" # ظ
231
+ sub "\u0639", "‘" # ع
232
+ sub "\u063A", "ğ" # غ
233
+ sub "\u0341", "f" # ف
234
+ sub "\u0642", "q" # ق
235
+ sub "\u06A9", "k" # ك
236
+ sub "\u0643", "k" # ك
237
+ sub "\u06AF", "g" # گ
238
+ sub "\u0644", "l" # ل
239
+ sub "\u0645", "m" # م
240
+ sub "\u0646", "n" # ن
241
+ sub "\u0648", "v" # و
242
+ sub "\u0647", "h" # ه
243
+ sub "\u064A", "y" # ي
244
+
245
+ # Vowels and Diphthongs
246
+ sub "\u064e", "a"
247
+ sub "\u0650", "i"
248
+ sub "\u064f", "u"
249
+ sub "\u064f\u0648", "ū" # ـُو damma followed by و
250
+ sub "\u064e\u0627", "ā" # ـَا fatha followed by ا
251
+ sub "\u0622", "ā" # آ
252
+ sub "\u0650" + any("\u0621\u0623\u0624\u0626"), "e" # ـِأ kasra followed by hamza
253
+ sub "\u0650\u064a", "ī" # ـِي kasra followed by ي
254
+ sub "\u0650\u0627\u064a", "ī" # ـِي kasra followed by ي
255
+ sub maybe(any("\u064f")) + "\u0627\u064f\u0648", "o" # ـُاُو
256
+ sub "\u064f\u0627\u0648", "ū" # ـُاو
257
+ sub "\u064f\u0627\u0624", "ö" # ـُاؤ
258
+ sub "\u064f\u0623\u0648", "ü" # ـُأو
259
+ sub "\u064e\u064a\u0652", "ey" # ـَيْ
260
+ sub "\u064e\u0648" + maybe("\u0652"), "aw" # ـَوْ
261
+ sub boundary + "\u0627", "" # ا
262
+ sub boundary + "\u064e\u0627", "a" # ـَا
263
+ sub boundary + "\u0650\u0627", "i" # ـِا
264
+
265
+ # hamzah
266
+ sub boundary + "\u0623", "" # أ
267
+ sub "\u0623", "’", not_before: "\u0644" # أ
268
+ sub "\u0623", ""# أ
269
+ sub "\u0624", "’" # ؤ
270
+ sub "\u0626", "’" # ئ
271
+ sub boundary + "\u0622", "ā" # آ
272
+ sub "\u0622", "’ā", not_before: any([boundary + "\u0627\u0644", boundary]), not_after: any([boundary, "\u0621"]) # آ in middle, not final, or initial, or after ال
273
+ sub "\u064e\u0622", "ā" # ـَآ fatha followed by ا
274
+ sub "\u0622", "" # آ
275
+
276
+ # Rule 3 - shadda
277
+ sub "\u0650\u064a\u0651", "īy" # ـِيَّ
278
+ sub "\u064f\u0648\u0651", "ūw" # ـَوّ damma followed by و with shadda
279
+ sub "\u0650\u064a\u0651" + boundary, "ī" # ـِيَّ
280
+ sub "\u064e\u0648\u0651", "aww" # ـَوّ fatha followed by و with shadda
281
+ sub "\u064e\u064a\u0651", "ayy" # ـَيّ fatha followed by و with shadda
282
+
283
+ # Rule 4 - tanvin
284
+ sub "\u064c", "un" # ٌ
285
+ sub "\u064b", "an" # ً
286
+ sub "\u064d", "in" # ٍ
287
+ # tanween should be onb the letter preceeding the end in case of ا, ى
288
+ # however, it's common that people mistake that, so we're handling both orders
289
+ sub "\u064b\u0649", "an" # ً
290
+ sub "\u064b\u0627", "an" # ً
291
+ sub "\u0649\u064b", "an" # ً
292
+ sub "\u0627\u064b", "an" # ً
293
+
294
+ # Rule 5 ta' marboota
295
+ sub "\u0629", "t" # ة in the middle of the sentence
296
+ sub "\u0629" + line_end, "h"
297
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
298
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
299
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
300
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
301
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
302
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
303
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
304
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
305
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
306
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
307
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
308
+ sub "\u0629", "h", before: boundary + "\u0627\u0644" + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff") + any("\u0600".."\u06ff")
309
+
310
+
311
+ sub "\u0650\u064a", "iy", after: any("\u064e\u064f") # ـِي kasra followed by ي
312
+ sub "\u064e\u0649", "á" # ـَى fatha followed by ى which is ا not ي
313
+ }
314
+
315
+ # POSTRULES
316
+ sub any("\u0061".."\uFFFF"), upcase, before: boundary, not_before: boundary + any("‘’'")
317
+
318
+ sub boundary + "Al", "al" # الت
319
+
320
+ compose
321
+ }