interscript 0.1.3 → 0.1.9

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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +10 -11
  3. data/aliases.json +1 -0
  4. data/lib/interscript.rb +62 -59
  5. data/lib/interscript/command.rb +3 -2
  6. data/lib/interscript/fs.rb +96 -0
  7. data/lib/interscript/mapping.rb +36 -17
  8. data/lib/interscript/opal.rb +196 -0
  9. data/lib/interscript/opal/entrypoint.rb +20 -0
  10. data/lib/interscript/opal/exports.rb +11 -0
  11. data/lib/interscript/opal/maps.js.erb +8 -0
  12. data/lib/interscript/version.rb +1 -1
  13. data/maps/acadsin-zho-Hani-Latn-2002.yaml +6 -2
  14. data/maps/alalc-amh-Ethi-Latn-1997.yaml +513 -0
  15. data/maps/alalc-amh-Ethi-Latn-2011.yaml +138 -0
  16. data/maps/alalc-ara-Arab-Latn-1997.yaml +1287 -0
  17. data/maps/alalc-asm-Deva-Latn-1997.yaml +259 -0
  18. data/maps/alalc-asm-Deva-Latn-2012.yaml +55 -0
  19. data/maps/alalc-aze-Arab-Latn-1997.yaml +376 -0
  20. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +145 -0
  21. data/maps/{alalc-bel-cyrl-latn-1997.yaml → alalc-bel-Cyrl-Latn-1997.yaml} +7 -3
  22. data/maps/alalc-ben-Beng-Latn-1997.yaml +291 -0
  23. data/maps/alalc-ben-Beng-Latn-2017.yaml +1 -1
  24. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +5 -1
  25. data/maps/alalc-div-Thaa-Latn-1997.yaml +211 -0
  26. data/maps/alalc-ell-Grek-Latn-1997.yaml +7 -4
  27. data/maps/alalc-ell-Grek-Latn-2010.yaml +3 -5
  28. data/maps/alalc-guj-Gujr-Latn-1997.yaml +266 -0
  29. data/maps/alalc-guj-Gujr-Latn-2011.yaml +64 -0
  30. data/maps/alalc-hin-Deva-Latn-1997.yaml +303 -0
  31. data/maps/alalc-hin-Deva-Latn-2011.yaml +65 -0
  32. data/maps/alalc-kan-Kana-Latn-1997.yaml +274 -0
  33. data/maps/alalc-kan-Kana-Latn-2011.yaml +63 -0
  34. data/maps/alalc-kat-Geok-Latn-1997.yaml +2 -3
  35. data/maps/alalc-kat-Geor-Latn-1997.yaml +5 -1
  36. data/maps/alalc-kor-Hang-Latn-1997.yaml +6 -2
  37. data/maps/alalc-mal-Mlym-Latn-1997.yaml +303 -0
  38. data/maps/alalc-mal-Mlym-Latn-2012.yaml +73 -0
  39. data/maps/alalc-mar-Deva-Latn-1997.yaml +189 -0
  40. data/maps/alalc-mar-Deva-Latn-2011.yaml +45 -0
  41. data/maps/{alalc-mkd-cyrl-latn-1997.yaml → alalc-mkd-Cyrl-Latn-1997.yaml} +1 -1
  42. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +1 -1
  43. data/maps/alalc-mon-Cyrl-Latn-1997.yaml +220 -0
  44. data/maps/alalc-ori-Orya-Latn-1997.yaml +284 -0
  45. data/maps/alalc-ori-Orya-Latn-2011.yaml +67 -0
  46. data/maps/alalc-pan-Guru-Latn-1997.yaml +256 -0
  47. data/maps/alalc-pan-Guru-Latn-2011.yaml +78 -0
  48. data/maps/alalc-per-Arab-Latn-1997.yaml +375 -0
  49. data/maps/alalc-pli-Deva-Latn-2012.yaml +144 -0
  50. data/maps/alalc-pra-Deva-Latn-2012.yaml +47 -0
  51. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +225 -0
  52. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +162 -0
  53. data/maps/alalc-san-Deva-Latn-2012.yaml +241 -0
  54. data/maps/alalc-sin-Sinh-Latn-1997.yaml +292 -0
  55. data/maps/alalc-sin-Sinh-Latn-2011.yaml +71 -0
  56. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +5 -1
  57. data/maps/{alalc-srp-cyrl-latn-2013.yaml → alalc-srp-Cyrl-Latn-2013.yaml} +1 -1
  58. data/maps/alalc-tam-Taml-Latn-1997.yaml +62 -0
  59. data/maps/alalc-tam-Taml-Latn-2011.yaml +58 -0
  60. data/maps/alalc-tel-Telu-Latn-1997.yaml +284 -0
  61. data/maps/alalc-tel-Telu-Latn-2011.yaml +64 -0
  62. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +5 -1
  63. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +1 -1
  64. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +1 -1
  65. data/maps/az-aze-Cyrl-Latn-1939.yaml +105 -0
  66. data/maps/az-aze-Cyrl-Latn-1958.yaml +45 -0
  67. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +1 -2
  68. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +1 -1
  69. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +1 -3
  70. data/maps/bgn-kor-Hang-Latn-1943.yaml +8 -4
  71. data/maps/bgn-kor-Kore-Latn-1943.yaml +4 -4
  72. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +1 -1
  73. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +1 -1
  74. data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +532 -0
  75. data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +598 -0
  76. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +1 -1
  77. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +111 -104
  78. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +188 -0
  79. data/maps/bgnpcgn-bal-Arab-Latn-2008.yaml +329 -0
  80. data/maps/{bgnpcgn-bel-cyrl-latn-1979.yaml → bgnpcgn-bel-Cyrl-Latn-1979.yaml} +5 -1
  81. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +14 -10
  82. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +5 -1
  83. data/maps/bgnpcgn-che-Cyrl-Latn-2008.yaml +184 -0
  84. data/maps/bgnpcgn-div-Thaa-Latn-1988.yaml +75 -0
  85. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +8 -5
  86. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +5 -2
  87. data/maps/bgnpcgn-far-Latn-Latn-1964.yaml +28 -0
  88. data/maps/{bgnpcgn-per-Arab-Latn-1956.yaml → bgnpcgn-fas-Arab-Latn-1956.yaml} +5 -2
  89. data/maps/bgnpcgn-isl-Latn-Latn-1964.yaml +37 -0
  90. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +1 -1
  91. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +5 -1
  92. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +1 -2
  93. data/maps/bgnpcgn-kaz-Cyrl-Latn-1979.yaml +247 -0
  94. data/maps/bgnpcgn-kir-Cyrl-Latn-1979.yaml +218 -0
  95. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +18 -18
  96. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +3 -3
  97. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +3 -3
  98. data/maps/bgnpcgn-kur-Arab-Latn-2007.yaml +249 -0
  99. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +5 -1
  100. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +2 -2
  101. data/maps/bgnpcgn-mon-Cyrl-Latn-1964.yaml +223 -0
  102. data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +230 -0
  103. data/maps/bgnpcgn-per-Arab-Latn-1958.yaml +338 -0
  104. data/maps/bgnpcgn-prs-Arab-Latn-2007.yaml +673 -0
  105. data/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.yaml +459 -0
  106. data/maps/bgnpcgn-pus-Arab-Latn-1968.yaml +377 -0
  107. data/maps/bgnpcgn-rue-Cyrl-Latn-2016.yaml +168 -0
  108. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +5 -1
  109. data/maps/bgnpcgn-srp-Cyrl-Latn-1962.yaml +73 -0
  110. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +5 -1
  111. data/maps/bgnpcgn-tat-Cyrl-Latn-2007.yaml +220 -0
  112. data/maps/bgnpcgn-tgk-Cyrl-Latn-1994.yaml +240 -0
  113. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +5 -2
  114. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +3 -92
  115. data/maps/bgnpcgn-urd-Arab-Latn-2007.yaml +459 -0
  116. data/maps/bgnpcgn-uzb-Cyrl-Latn-1979.yaml +127 -0
  117. data/maps/bgnpcgn-uzb-Cyrl-Latn-2000.yaml +82 -0
  118. data/maps/{bgnpcgn-chn-Hans-Latn-1979.yaml → bgnpcgn-zho-Hans-Latn-1979.yaml} +1 -1
  119. data/maps/bis-asm-Beng-Latn-13194-1991.yaml +159 -0
  120. data/maps/bis-ben-Beng-Latn-13194-1991.yaml +156 -0
  121. data/maps/bis-dev-Deva-Latn-13194-1991.yaml +184 -0
  122. data/maps/bis-guj-Gujr-Latn-13194-1991.yaml +181 -0
  123. data/maps/bis-kan-Kana-Latn-13194-1991.yaml +173 -0
  124. data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +176 -0
  125. data/maps/bis-ori-Orya-Latn-13194-1991.yaml +175 -0
  126. data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +175 -0
  127. data/maps/bis-tel-Telu-Latn-13194-1991.yaml +170 -0
  128. data/maps/bis-tml-Taml-Latn-13194-1991.yaml +155 -0
  129. data/maps/by-bel-Cyrl-Latn-1998.yaml +9 -5
  130. data/maps/by-bel-Cyrl-Latn-2007.yaml +4 -4
  131. data/maps/din-grc-Grek-Latn-31634-2011-t1.yaml +899 -0
  132. data/maps/din-hin-Deva-Latn-33904-2018.yaml +100 -0
  133. data/maps/din-kat-Geor-Latn-32707-2010.yaml +145 -0
  134. data/maps/din-mar-Deva-Latn-33904-2018.yaml +84 -0
  135. data/maps/din-nep-Deva-Latn-33904-2018.yaml +119 -0
  136. data/maps/din-pli-Deva-Latn-33904-2018.yaml +75 -0
  137. data/maps/din-pra-Deva-Latn-33904-2018.yaml +63 -0
  138. data/maps/din-san-Deva-Latn-33904-2018.yaml +338 -0
  139. data/maps/din-tam-Taml-Latn-33903-2016.yaml +213 -0
  140. data/maps/dos-nep-Deva-Latn-1997.yaml +47 -0
  141. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +7 -8
  142. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +6 -7
  143. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +2 -3
  144. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +2 -3
  145. data/maps/ggg-kat-Geor-Latn-2002.yaml +5 -2
  146. data/maps/{gki-bel-cyrl-latn-1992.yaml → gki-bel-Cyrl-Latn-1992.yaml} +2 -2
  147. data/maps/{gki-bel-cyrl-latn-2000.yaml → gki-bel-Cyrl-Latn-2000.yaml} +2 -2
  148. data/maps/{gost-rus-cyrl-latn-16876-71-1983.yaml → gost-rus-Cyrl-Latn-16876-71-1983.yaml} +8 -4
  149. data/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.yaml +157 -0
  150. data/maps/hk-yue-Hani-Latn-1888.yaml +1 -1
  151. data/maps/icao-bel-Cyrl-Latn-9303.yaml +1 -6
  152. data/maps/icao-bul-Cyrl-Latn-9303.yaml +1 -5
  153. data/maps/{icao-per-Arab-Latn-9303.yaml → icao-fas-Arab-Latn-9303.yaml} +1 -2
  154. data/maps/icao-heb-Hebr-Latn-9303.yaml +1 -1
  155. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +1 -1
  156. data/maps/icao-rus-Cyrl-Latn-9303.yaml +1 -2
  157. data/maps/icao-srp-Cyrl-Latn-9303.yaml +1 -1
  158. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +1 -2
  159. data/maps/iso-ara-Arab-Latn-233-1984.yaml +323 -0
  160. data/maps/iso-asm-Beng-Latn-15919-2001.yaml +75 -0
  161. data/maps/iso-ben-Beng-Latn-15919-2001.yaml +175 -0
  162. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +11 -8
  163. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +8 -5
  164. data/maps/iso-guj-Gujr-Latn-15919-2001.yaml +220 -0
  165. data/maps/iso-hin-Deva-Latn-15919-2001.yaml +87 -0
  166. data/maps/iso-inc-Deva-Latn-15919-2001.yaml +61 -0
  167. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +10 -6
  168. data/maps/iso-kan-Kana-Latn-15919-2001.yaml +220 -0
  169. data/maps/iso-kat-Geor-Latn-9984-1996.yaml +145 -0
  170. data/maps/iso-kor-Hang-Latn-1996-method1.yaml +240 -0
  171. data/maps/iso-kor-Hang-Latn-1996-method2.yaml +226 -0
  172. data/maps/iso-mal-Mlym-Latn-15919-2001.yaml +281 -0
  173. data/maps/iso-mar-Deva-Latn-15919-2001.yaml +75 -0
  174. data/maps/iso-nep-Deva-Latn-15919-2001.yaml +87 -0
  175. data/maps/iso-ori-Orya-Latn-15919-2001.yaml +193 -0
  176. data/maps/iso-pan-Guru-Latn-15919-2001.yaml +222 -0
  177. data/maps/iso-pli-Beng-Latn-15919-2001.yaml +73 -0
  178. data/maps/iso-pli-Deva-Latn-15919-2001.yaml +74 -0
  179. data/maps/iso-pli-Sinh-Latn-15919-2001.yaml +219 -0
  180. data/maps/iso-pli-Thai-Latn-15919-2001.yaml +55 -0
  181. data/maps/iso-pra-Deva-Latn-15919-2001.yaml +59 -0
  182. data/maps/iso-prs-Arab-Latn-233-3-1999.yaml +366 -0
  183. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +3 -4
  184. data/maps/iso-san-Deva-Latn-15919-2001.yaml +220 -0
  185. data/maps/iso-tam-Taml-Latn-15919-2001.yaml +159 -0
  186. data/maps/iso-tel-Telu-Latn-15919-2001.yaml +220 -0
  187. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +2 -2
  188. data/maps/kp-kor-Hang-Latn-2002.yaml +29 -21
  189. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +3 -3
  190. data/maps/masm-mon-Cyrl-Latn-5217-2012.yaml +163 -0
  191. data/maps/masm-mon-Latn-Cyrl-5217-2012.yaml +200 -0
  192. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +1 -1
  193. data/maps/moct-kor-Hang-Latn-2000.yaml +6 -2
  194. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +1 -1
  195. data/maps/mv-div-Thaa-Latn-1987.yaml +200 -0
  196. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +225 -0
  197. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +63 -0
  198. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +109 -0
  199. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +37 -0
  200. data/maps/odni-ara-Arab-Latn-2004.yaml +137 -0
  201. data/maps/odni-ara-Arab-Latn-2015.yaml +315 -0
  202. data/maps/odni-aze-Cyrl-Latn-2015.yaml +144 -0
  203. data/maps/odni-bel-Cyrl-Latn-2015.yaml +148 -0
  204. data/maps/odni-bul-Cyrl-Latn-2005.yaml +90 -0
  205. data/maps/odni-bul-Cyrl-Latn-2015.yaml +96 -0
  206. data/maps/odni-che-Cyrl-Latn-2015.yaml +169 -0
  207. data/maps/odni-fas-Arab-Latn-2004.yaml +276 -0
  208. data/maps/odni-fas-Arab-Latn-2015.yaml +406 -0
  209. data/maps/odni-hin-Deva-Latn-2004.yaml +182 -0
  210. data/maps/odni-hin-Deva-Latn-2015.yaml +258 -0
  211. data/maps/odni-kat-Geor-Latn-2015.yaml +2 -3
  212. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +148 -0
  213. data/maps/odni-kir-Cyrl-Latn-2015.yaml +136 -0
  214. data/maps/odni-kor-Hang-Latn-2015.yaml +375 -0
  215. data/maps/odni-mkd-Cyrl-Latn-2005.yaml +21 -0
  216. data/maps/odni-mkd-Cyrl-Latn-2015.yaml +122 -0
  217. data/maps/odni-prs-Arab-Latn-2004.yaml +123 -0
  218. data/maps/odni-prs-Arab-Latn-2015.yaml +228 -0
  219. data/maps/odni-rus-Cyrl-Latn-2015.yaml +77 -0
  220. data/maps/odni-srp-Cyrl-Latn-2005.yaml +36 -0
  221. data/maps/odni-srp-Cyrl-Latn-2015.yaml +129 -0
  222. data/maps/odni-tat-Cyrl-Latn-2015.yaml +142 -0
  223. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +148 -0
  224. data/maps/odni-tuk-Cyrl-Latn-2015.yaml +170 -0
  225. data/maps/odni-uig-Cyrl-Latn-2015.yaml +138 -0
  226. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +6 -2
  227. data/maps/odni-urd-Arab-Latn-2015.yaml +221 -0
  228. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +166 -0
  229. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +5 -5
  230. data/maps/royin-tha-Thai-Latn-1968.yaml +9 -5
  231. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +5 -5
  232. data/maps/royin-tha-Thai-Latn-1999.yaml +8 -4
  233. data/maps/sac-zho-Hans-Latn-1979.yaml +5 -1
  234. data/maps/sasm-mon-Mong-Latn-general-1978.yaml +389 -0
  235. data/maps/sasm-mon-Mong-Latn-phonetic-1978.yaml +354 -0
  236. data/maps/ses-ara-Arab-Latn-1930.yaml +283 -0
  237. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +1 -1
  238. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +6 -2
  239. data/maps/ua-ukr-Cyrl-Latn-2007.yaml +75 -0
  240. data/maps/ua-ukr-Cyrl-Latn-2010.yaml +192 -0
  241. data/maps/un-amh-Ethi-Latn-2016.yaml +602 -0
  242. data/maps/un-ara-Arab-Latn-1971.yaml +139 -0
  243. data/maps/un-ara-Arab-Latn-1972.yaml +159 -0
  244. data/maps/un-ara-Arab-Latn-2017.yaml +420 -0
  245. data/maps/un-asm-Beng-Latn-1972.yaml +223 -0
  246. data/maps/un-bel-Cyrl-Latn-2007.yaml +4 -4
  247. data/maps/un-ben-Beng-Latn-2016.yaml +1 -1
  248. data/maps/{un-ell-Grek-Latn-phonetic-1987.yaml → un-ell-Grek-Latn-1987-phonetic.yaml} +44 -44
  249. data/maps/un-ell-Grek-Latn-1987-tl.yaml +3 -4
  250. data/maps/un-ell-Grek-Latn-1987-ts.yaml +3 -4
  251. data/maps/un-guj-Gujr-Latn-1972.yaml +229 -0
  252. data/maps/un-hin-Deva-Latn-2016.yaml +316 -0
  253. data/maps/un-kan-Kana-Latn-2016.yaml +254 -0
  254. data/maps/un-mal-Mlym-Latn-1972.yaml +251 -0
  255. data/maps/un-mar-Deva-Latn-2016.yaml +102 -0
  256. data/maps/un-mon-Mong-Latn-general-2013.yaml +264 -0
  257. data/maps/un-mon-Mong-Latn-phonetic-2013.yaml +264 -0
  258. data/maps/un-nep-Deva-Latn-1972.yaml +269 -0
  259. data/maps/un-nep-Deva-Latn-2013.yaml +74 -0
  260. data/maps/un-ori-Orya-Latn-1972.yaml +247 -0
  261. data/maps/un-pan-Guru-Latn-1972.yaml +402 -0
  262. data/maps/un-prs-Arab-Latn-1967.yaml +236 -0
  263. data/maps/un-rus-Cyrl-Latn-1987.yaml +2 -2
  264. data/maps/un-tam-Taml-Latn-1972.yaml +194 -0
  265. data/maps/un-tel-Telu-Latn-1972.yaml +270 -0
  266. data/maps/un-ukr-Cyrl-Latn-1998.yaml +53 -0
  267. data/maps/un-ukr-Cyrl-Latn-2012.yaml +162 -0
  268. data/maps/un-urd-Arab-Latn-1972.yaml +405 -0
  269. data/maps/var-amh-Ethi-Latn-eae-2003.yaml +466 -0
  270. data/maps/var-gez-Ethi-Latn-eae-2003.yaml +76 -0
  271. data/maps/var-hin-Deva-Latn-hunterian-1872.yaml +221 -0
  272. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +1 -1
  273. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +1 -1
  274. data/maps/{nil-kor-Hang-Hang-jamo.yaml → var-kor-Hang-Hang-jamo.yaml} +4 -4
  275. data/maps/var-kor-Hang-Latn-mr-1939.yaml +4 -4
  276. data/maps/var-kor-Kore-Hang-2013.yaml +2 -2
  277. data/maps/var-kor-Kore-Latn-mr-1939.yaml +2 -3
  278. data/maps/var-mar-Deva-Latn-hunterian-1872.yaml +43 -0
  279. data/maps/var-mon-Mong-Latn-1930.yaml +102 -0
  280. data/maps/var-mon-Mong-Latn-lessing.yaml +272 -0
  281. data/maps/var-mon-Mong-Latn-vpmc.yaml +274 -0
  282. data/maps/var-pra-Deva-Latn-iast-1912.yaml +30 -0
  283. data/maps/var-san-Deva-Latn-iast-1912.yaml +149 -0
  284. data/maps/var-tha-Thai-Thai-phonemic.yaml +6 -6
  285. data/maps/var-tha-Thai-Zsym-ipa.yaml +13 -13
  286. data/maps/{var-zho-Hani-Latn-1979.yaml → var-zho-Hani-Latn-wd-1979.yaml} +13 -9
  287. data/spec/interscript/filenames_spec.rb +21 -0
  288. data/spec/interscript_spec.rb +16 -5
  289. metadata +275 -27
  290. data/bin/interscript +0 -41
  291. data/bin/rspec +0 -29
  292. data/bin/setup +0 -8
  293. data/maps/un-mon-Mong-Latn-2013.yaml +0 -93
  294. data/maps/un-ukr-cyrl-latn-1998.yaml +0 -30
@@ -0,0 +1,63 @@
1
+ ---
2
+ authority_id: mvd
3
+ id: 2010
4
+ language: iso-639-2:bel
5
+ source_script: Cyrl
6
+ destination_script: Latn
7
+ name: |
8
+ 8/22721 About approval of the Instructions on the organization of work of units of citizenship
9
+ and migration of internal affairs bodies on the issuance, registration, exchange,
10
+ invalidation, seizure, storage and destruction of a passport of a citizen of the Republic of Belarus
11
+ url: https://pravo.by/document/?guid=3871&p0=W21022721
12
+ creation_date: 2010
13
+
14
+ description: |
15
+ RESOLUTION OF THE MINISTRY OF INTERNAL AFFAIRS OF THE REPUBLIC OF BELARUS
16
+ June 28, 2010 No. 200
17
+ On approval of the Instructions on the organization of work of units of citizenship
18
+ and migration of internal affairs bodies on the issuance, registration, exchange,
19
+ invalidation, seizure, storage and destruction of a passport of a citizen of the Republic of Belarus
20
+
21
+ notes:
22
+ - |
23
+ It is not allowed to use in the spelling of the surname, own name superscripts, punctuation, except
24
+ for the use of the apostrophe in Belarusian and Latin spelling.
25
+ - The Belarusian letter "Г" is written as the Latin "H"
26
+
27
+ tests:
28
+ - source: Бабрыковіч Аляксандр
29
+ expected: Babrykovich Aliaksandr
30
+ - source: Міховіч Марыя
31
+ expected: Mikhovich Maryia
32
+ - source: Максім
33
+ expected: Maksim
34
+ - source: Іван
35
+ expected: Ivan
36
+ - source: СВЯТЛАНА
37
+ expected: SVIATLANA
38
+ - source: Ігар
39
+ expected: Ihar
40
+ - source: МІХАІЛ
41
+ expected: MIKHAIL
42
+
43
+ map:
44
+ inherit: "mvd-bel-Cyrl-Latn-2008"
45
+
46
+ rules:
47
+ # note[5]
48
+ - pattern: (?<=[ЗзЛлНнСсЦц])\u044C # ь after consonants
49
+ result: "\\1"
50
+ - pattern: (?<=[ЗзЛлНнСсЦц])\u02B9 # Ь after consonants
51
+ result: "\\1"
52
+ # Й at end
53
+ - pattern: (?<=[ЕеЁёЫыЮюЯя])\u0419$ # Я after vowels
54
+ result: ""
55
+ - pattern: (?<=[ЕеЁёЫыЮюЯя])\u0439$ # я after vowels
56
+ result: ""
57
+
58
+ characters:
59
+ '\u0413' : 'H' # Г
60
+ '\u0433' : 'h' # г
61
+
62
+ '\u042C' : '' # Ь
63
+ '\u044C' : '' # ь
@@ -0,0 +1,109 @@
1
+ ---
2
+ authority_id: mvd
3
+ id: 2008
4
+ language: iso-639-2:rus
5
+ source_script: Cyrl
6
+ destination_script: Latn
7
+ name: 8/19678 On approval of the Instructions for transliteration of surnames and proper names of citizens of the Republic of Belarus when their personal data is included in the population register
8
+ url: https://www.icao.int/publications/pages/publication.aspx?docnum=9303
9
+ creation_date: 2008
10
+
11
+ notes:
12
+ - check notes from mvd-bel-Cyrl-Latn-2008
13
+
14
+ tests:
15
+ - source: Ева
16
+ expected: Eva
17
+ - source: Васiльева
18
+ expected: Vasiĺeva
19
+ - source: Адъютантов
20
+ expected: Adjutantov
21
+
22
+ map:
23
+ rules:
24
+ # note[5]
25
+ - pattern: (?<=[ЗзЛлНнСсЦц])\u044C # ь after consonants
26
+ result: "\\1\u0301"
27
+ - pattern: (?<=[ЗзЛлНнСсЦц])\u02B9 # Ь after consonants
28
+ result: "\\1\u0301"
29
+ - pattern: ([’Ъъ]\u042E)
30
+ result: Ju
31
+ - pattern: ([’Ъъ]\u044E)
32
+ result: ju
33
+ - pattern: ([’Ъъ]\u042F)
34
+ result: Ja
35
+ - pattern: ([’Ъъ]\u044F)
36
+ result: ja
37
+
38
+ characters:
39
+ '’' : 'j'
40
+
41
+ '\u0410' : 'A' # А
42
+ '\u0411' : 'B' # Б
43
+ '\u0412' : 'V' # B
44
+ '\u0413' : 'G' # Г
45
+ '\u0414' : 'D' # Д
46
+ '\u0415' : 'E' # Е
47
+ '\u0401' : 'E' # Ё
48
+ '\u0416' : 'Zh' # Ж
49
+ '\u0417' : 'Z' # З
50
+ '\u0406' : 'I' # І
51
+ '\u0419' : "J" # Й
52
+ '\u041A' : 'K' # К
53
+ '\u041B' : 'L' # Л
54
+ '\u041C' : 'M' # М
55
+ '\u041D' : 'N' # Н
56
+ '\u041E' : 'O' # О
57
+ '\u041F' : 'P' # П
58
+ '\u0420' : 'R' # Р
59
+ '\u0421' : 'S' # С
60
+ '\u0422' : 'T' # Т
61
+ '\u0423' : 'U' # У
62
+ '\U040E' : 'W' # Ў
63
+ '\u0424' : 'F' # Ф
64
+ '\u0425' : 'Kh' # Х
65
+ '\u0426' : 'Ts' # Ц
66
+ '\u0427' : 'Ch' # Ч
67
+ '\u0428' : 'Sh' # Ш
68
+ '\u0429' : 'Shch' # Щ
69
+ '\u042A' : 'J' # Ъ
70
+ '\u042B' : 'Y' # Ы
71
+ '\u042C' : '' # Ь
72
+ '\u042D' : 'E' # Э
73
+ '\u042E' : 'Iu' # Ю
74
+ '\u042F' : 'Ia' # Я
75
+
76
+ '\u0430' : 'a' # а
77
+ '\u0431' : 'b' # б
78
+ '\u0432' : 'v' # в
79
+ '\u0433' : 'g' # г
80
+ '\u0434' : 'd' # д
81
+ '\u0435' : 'e' # е
82
+ '\u0451' : 'e' # ё
83
+ '\u0436' : 'zh' # ж
84
+ '\u0437' : 'z' # з
85
+ '\u0456' : 'i' # і
86
+ '\u0439' : 'j' # й
87
+ '\u043A' : 'k' # к
88
+ '\u043B' : 'l' # л
89
+ '\u043C' : 'm' # м
90
+ '\u043D' : 'n' # н
91
+ '\u043E' : 'o' # о
92
+ '\u043F' : 'p' # п
93
+ '\u0440' : 'r' # р
94
+ '\u0441' : 's' # с
95
+ '\u0442' : 't' # т
96
+ '\u0443' : 'u' # у
97
+ '\u045E' : 'w' # ў
98
+ '\u0444' : 'f' # ф
99
+ '\u0445' : 'kh' # х
100
+ '\u0446' : 'ts' # Ц
101
+ '\u0447' : 'ch' # ч
102
+ '\u0448' : 'sh' # ш
103
+ '\u0449' : 'shch' # щ
104
+ '\u044A' : 'j' # ъ
105
+ '\u044B' : 'y' # ы
106
+ '\u044C' : '' # ь
107
+ '\u044D' : 'e' # э
108
+ '\u044E' : 'iu' # ю
109
+ '\u044F' : 'ia' # я
@@ -0,0 +1,37 @@
1
+ ---
2
+ authority_id: mvd
3
+ id: 2010
4
+ language: iso-639-2:bel
5
+ source_script: Cyrl
6
+ destination_script: Latn
7
+ name: |
8
+ 8/22721 On approval of the Instructions on the organization of work of units of citizenship
9
+ and migration of internal affairs bodies on the issuance, registration, exchange,
10
+ invalidation, seizure, storage and destruction of a passport of a citizen of the Republic of Belarus
11
+ url: https://pravo.by/document/?guid=3871&p0=W21022721
12
+ creation_date: 2010
13
+
14
+ description: |
15
+ RESOLUTION OF THE MINISTRY OF INTERNAL AFFAIRS OF THE REPUBLIC OF BELARUS
16
+ June 28, 2010 No. 200
17
+ On approval of the Instructions on the organization of work of units of citizenship
18
+ and migration of internal affairs bodies on the issuance, registration, exchange,
19
+ invalidation, seizure, storage and destruction of a passport of a citizen of the Republic of Belarus
20
+
21
+ notes:
22
+ - check notes from mvd-rus-Cyrl-Latn-2008
23
+
24
+ tests:
25
+ - source: Ева
26
+ expected: Eva
27
+ - source: Васiльева
28
+ expected: Vasileva
29
+ - source: Адъютантов
30
+ expected: Adjutantov
31
+
32
+ map:
33
+ inherit: "mvd-rus-Cyrl-Latn-2008"
34
+
35
+ postrules:
36
+ - pattern: \u0301 # remove diacritics
37
+ result: ""
@@ -0,0 +1,137 @@
1
+ ---
2
+ authority_id: odni
3
+ id: 2004
4
+ language: ics-630-01:ara
5
+ source_script: Arab
6
+ destination_script: Latn
7
+ name: Arabic Personal Names Office of the Director Of National Intelligence 2004 System
8
+ url: https://github.com/interscript/interscript-private-references/blob/master/odni/Arabic_IC_Standard.doc
9
+ creation_date: 2004
10
+ confirmation date: 2004-06
11
+ description:
12
+ notes:
13
+ - Long/Short Vowels Long and short vowels are not
14
+ distinguished in this system Samir (could be Saamir or
15
+ Samiir in Arabic).
16
+
17
+ - Double consonants Double consonants represented by the
18
+ Arabic shaddah are shown in most cases (e.g., Hassan,
19
+ Muhammad). Exceptions ’ayn and consonants represented by
20
+ digraphs are not doubled (e.g., al-Qadhafi [not
21
+ alQadhdhafi], Mubashir [not Mubashshir]).
22
+
23
+ - Hamzah (glottal stop) The hamzah is represented by an
24
+ apostrophe (’). Note that this is the same symbol used to
25
+ represent another consonant, the ’ayn.
26
+
27
+ - Ta’ marbutah (feminine ending marker) On the construct
28
+ form or when pronounced “t”, it is represented with a roman
29
+ t. In all other cases, it is represented with an h.
30
+
31
+ - Digraphs No distinction is made between digraphs such as
32
+ sh and single contiguous letters (e.g., s followed by h).
33
+
34
+ - Definite article “al” (‘the’) Follows Arabic spelling
35
+ rather than pronunciation. That is, sun letter assimilation
36
+ is not shown in the Romanized form (e.g., ’Abd-alRahman,
37
+ not ’Abd-ar-Rahman).
38
+
39
+ - Diphthongs the second element of the diphthong is
40
+ represented by a y or a w (rather than an i or a u)
41
+ Haytham, Faysal, Tawfiq, Rawdah.
42
+
43
+ - Hyphens Hyphens (-) are used to connect name elements
44
+ within a name ’Abd- al Rahman, Abu-al-Bashar, Bin-Ladin.
45
+ Exceptions Names that incorporate “Allah” as part of the
46
+ name (e.g., ’Abdallah, Nasrallah), names marked by the
47
+ lineage/family marker “Al” (e.g., Al Thani) are not
48
+ hyphenated.
49
+
50
+ - The definite article, “al”, within name phrases, is
51
+ Romanized as al and not as ul Nur-al-Din (not Nur-ul-Din).
52
+ It is not capitalized when name-initial.
53
+
54
+ - Names that incorporate Allah as part of the name retain the
55
+ a of Allah rather than a grammatical marker u ’Abdallah (
56
+ not ’Abdullah).
57
+
58
+ - Foreign names borrowed or appearing in Arabic are spelled
59
+ according to the standard Western tradition Georges,
60
+ Michel. However, names of non-Arabic origin no longer
61
+ considered foreign by Arabic speakers follow the IC
62
+ conventions Butrus (not Peter).
63
+
64
+ - Prefix ‫بن‬ (bin ‘son of’) is Romanized Bin unless written
65
+ with an alif, in which case it is Romanized as Ibn. The
66
+ colloquial form Bu (‘father’) should not be standardized as
67
+ Abu. These prefixes are capitalized.
68
+
69
+ - In general, Romanization follows the Modern Standard
70
+ Arabic (MSA) form rather than local pronunciation
71
+ standards. For example, the letter ‫ج‬ (jim) is represented
72
+ as a j even when pronounced as a “g” (e.g., Egyptian Gamal
73
+ is Romanized as Jamal).
74
+
75
+ tests:
76
+
77
+ - source: مِصر
78
+ expected: Miṣr
79
+
80
+ - source: قَطَر
81
+ expected: Qaṭar
82
+
83
+ - source: المَغرِب
84
+ expected: Al Maghrib
85
+
86
+ - source: الجُمهُورِيَّة العِراقِيَّة
87
+ expected: Al Jumhuriyah al ’Iraqiyah
88
+
89
+ - source: جُمهُورِيَّة العِراق
90
+ expected: Jumhuriyat al ’Iraq
91
+
92
+ - source: جُمهُورِيَّة مِصر العَرَبِيَّة
93
+ expected: Jumhuriyat Miṣr al ’Arabiyah
94
+
95
+ - source: بَغداد
96
+ expected: Baghdad
97
+
98
+ - source: تُونِس
99
+ expected: Tunis
100
+
101
+ - source: حَسّان
102
+ expected: Hassan
103
+
104
+ - source: مُحَمَّد
105
+ expected: Muhammad
106
+
107
+ - source: القَذَّافِي
108
+ expected: Al Qadhafi
109
+
110
+ - source: مُبَشِّر
111
+ expected: Mubashir
112
+
113
+ - source: الجَزائِر
114
+ expected: Al Jaza’ir
115
+
116
+ - source: عَبدالرَحمَن
117
+ expected: ’Abd al Rahman
118
+
119
+ - source: هَيْثَم
120
+ expected: Haytham
121
+
122
+ - source: فَيْصَل
123
+ expected: Fayṣal
124
+
125
+ - source: تَوْفِيق
126
+ expected: Tawfiq
127
+
128
+ - source: رَوْضَة
129
+ expected: Rawḍah
130
+
131
+ - source: نُورُالدِين
132
+ expected: Nur al Din
133
+
134
+ - source: عَبدُاللَّه
135
+ expected: ’Abdallah
136
+ map:
137
+ inherit: odni-ara-Arab-Latn-2015
@@ -0,0 +1,315 @@
1
+ ---
2
+ authority_id: odni
3
+ id: 2017
4
+ language: ics-630-01:ara
5
+ source_script: Arab
6
+ destination_script: Latn
7
+ name: Office of the Director Of National Intelligence Arabic Personal Names 2015 System
8
+ url: https://github.com/interscript/ics-630-01/blob/master/reference-docs/ANNEX%20A%20-%20Arabic_Personal_Names_FLTS%20(U).pdf
9
+ creation_date: 2017
10
+ confirmation date: 2018-06
11
+ description: |
12
+ This system, adapted from the Board on Geographic Names, is
13
+ the Intelligence Community (IC) standard for the
14
+ transliteration of Arabic names that will be applied to all
15
+ final written reports and products for IC consumers. It is
16
+ not intended to eliminate variations of a name that can
17
+ contribute forensic information. Rather, it is to provide
18
+ an IC standard Romanized (English) transliteration from
19
+ modern standard Arabic that can then be linked to forensic
20
+ information in ways that will help identify the referent of
21
+ the name. Ambiguities can result from the Romanization of
22
+ Arabic names because the Arabic source generally omits
23
+ short vowel markings, double consonant marks, and other
24
+ diacritics that would clearly distinguish the name.
25
+ Linguists use their experience with the language and aids
26
+ such as on-line tools and name dictionaries to determine
27
+ the exact Arabic and the appropriate transliteration into
28
+ the Roman alphabet. In cases where an individual's name has
29
+ already been transliterated, that is to be indicated -- as
30
+ found -- in parentheses immediately following its rendition
31
+ in the transliteration standard (e.g., Muhammad Khulud (
32
+ Mohamed Khulood)). In addition, if the original Arabic-
33
+ script spelling is known, that spelling should also appear
34
+ in parentheses following the name, if possible, following
35
+ best practices of the issuing organization and taking into
36
+ consideration information system capabilities. This
37
+ convention is designed to ensure that vital forensic
38
+ information is not lost. For names of persons who are known
39
+ to not be part of the Arabic-speaking community, use the
40
+ relevant IC transliteration standard for names from that
41
+ language (e.g., Mikhail, Yitzhak). A translator’s note may
42
+ be used to clarify the known origin of the person. Spell
43
+ names of individuals from languages that are written in
44
+ Roman letters as they are spelled in those languages (e.g.,
45
+ George Clooney, Jorge Garcia, Georges Pompidou). In the
46
+ case of active senior government officials in the on-line
47
+ CIA World Factbook and the online directory of Chiefs of
48
+ State and Cabinet Members of Foreign Governments, the
49
+ spellings given in these on-line reference works should be
50
+ used in place of the IC Standard. For any individual who
51
+ has at one time been listed in the Factbook or Chiefs of
52
+ State directory but who no longer appears in those
53
+ resources (i.e. is no longer a government official), the IC
54
+ Standard spelling should appear first, with the spelling,
55
+ if known, as it previously appeared in those resources
56
+ listed within parentheses at the first usage. The primary
57
+ goal of this system is to produce a consistent Romanized
58
+ transcription of the name that is readable to the non-
59
+ specialist. The system uses the 26 letters of the standard (
60
+ English) Roman alphabet plus the apostrophe. Some
61
+ ambiguities in the Romanized form will occur without the
62
+ use of diacritics. However, within the context of a report,
63
+ where additional information about the individual is
64
+ provided, the referent will be clearly identified. This
65
+ system will be used in conjunction with on-line tools, name
66
+ dictionaries, and lists containing conventional spellings
67
+ of names of well-known individuals.
68
+ notes: |
69
+ - Long/Short Vowels: Long and short vowels are not
70
+ distinguished in this system Samir (could be Saamir or
71
+ Samiir in Arabic).
72
+
73
+ - Double consonants: Double consonants represented by the
74
+ Arabic shaddah are shown in most cases (e.g., Hassan,
75
+ Muhammad). Exceptions: ’ayn and consonants represented by
76
+ digraphs are not doubled (e.g., al-Qadhafi [not
77
+ alQadhdhafi], Mubashir [not Mubashshir]).
78
+
79
+ - Hamzah (glottal stop): The hamzah is represented by an
80
+ apostrophe (’). Note that this is the same symbol used to
81
+ represent another consonant, the ’ayn.
82
+
83
+ - Ta’ marbutah (feminine ending marker): On the construct
84
+ form or when pronounced “t”, it is represented with a roman
85
+ t. In all other cases, it is represented with an h.
86
+
87
+ - Digraphs: No distinction is made between digraphs such as
88
+ sh and single contiguous letters (e.g., s followed by h).
89
+
90
+ - Definite article “al” (‘the’): Follows Arabic spelling
91
+ rather than pronunciation. That is, sun letter assimilation
92
+ is not shown in the Romanized form (e.g., ’Abd-alRahman,
93
+ not ’Abd-ar-Rahman).
94
+
95
+ - Diphthongs: the second element of the diphthong is
96
+ represented by a y or a w (rather than an i or a u):
97
+ Haytham, Faysal, Tawfiq, Rawdah.
98
+
99
+ - Hyphens: Hyphens (-) are used to connect name elements
100
+ within a name: ’Abd- al Rahman, Abu-al-Bashar, Bin-Ladin.
101
+ Exceptions: Names that incorporate “Allah” as part of the
102
+ name (e.g., ’Abdallah, Nasrallah), names marked by the
103
+ lineage/family marker “Al” (e.g., Al Thani) are not
104
+ hyphenated.
105
+
106
+ - The definite article, “al”, within name phrases, is
107
+ Romanized as al and not as ul: Nur-al-Din (not Nur-ul-Din).
108
+ It is not capitalized when name-initial.
109
+
110
+ - Names that incorporate Allah as part of the name retain the
111
+ a of Allah rather than a grammatical marker u: ’Abdallah (
112
+ not ’Abdullah).
113
+
114
+ - Foreign names borrowed or appearing in Arabic are spelled
115
+ according to the standard Western tradition: Georges,
116
+ Michel. However, names of non-Arabic origin no longer
117
+ considered foreign by Arabic speakers follow the IC
118
+ conventions: Butrus (not Peter).
119
+
120
+ - Prefix ‫بن‬ (bin ‘son of’) is Romanized Bin unless written
121
+ with an alif, in which case it is Romanized as Ibn. The
122
+ colloquial form Bu (‘father’) should not be standardized as
123
+ Abu. These prefixes are capitalized.
124
+
125
+ - In general, Romanization follows the Modern Standard
126
+ Arabic (MSA) form rather than local pronunciation
127
+ standards. For example, the letter ‫ج‬ (jim) is represented
128
+ as a j even when pronounced as a “g” (e.g., Egyptian Gamal
129
+ is Romanized as Jamal).
130
+
131
+ tests:
132
+
133
+ - source: مِصر
134
+ expected: Miṣr
135
+
136
+ - source: قَطَر
137
+ expected: Qaṭar
138
+
139
+ - source: المَغرِب
140
+ expected: Al Maghrib
141
+
142
+ - source: الجُمهُورِيَّة العِراقِيَّة
143
+ expected: Al Jumhuriyah al ’Iraqiyah
144
+
145
+ - source: جُمهُورِيَّة العِراق
146
+ expected: Jumhuriyat al ’Iraq
147
+
148
+ - source: جُمهُورِيَّة مِصر العَرَبِيَّة
149
+ expected: Jumhuriyat Miṣr al ’Arabiyah
150
+
151
+ - source: بَغداد
152
+ expected: Baghdad
153
+
154
+ - source: تُونِس
155
+ expected: Tunis
156
+
157
+ - source: حَسّان
158
+ expected: Hassan
159
+
160
+ - source: مُحَمَّد
161
+ expected: Muhammad
162
+
163
+ - source: القَذَّافِي
164
+ expected: Al Qadhafi
165
+
166
+ - source: مُبَشِّر
167
+ expected: Mubashir
168
+
169
+ - source: الجَزائِر
170
+ expected: Al Jaza’ir
171
+
172
+ - source: عَبدالرَحمَن
173
+ expected: ’Abd al Rahman
174
+
175
+ - source: هَيْثَم
176
+ expected: Haytham
177
+
178
+ - source: فَيْصَل
179
+ expected: Fayṣal
180
+
181
+ - source: تَوْفِيق
182
+ expected: Tawfiq
183
+
184
+ - source: رَوْضَة
185
+ expected: Rawḍah
186
+
187
+ - source: نُورُالدِين
188
+ expected: Nur al Din
189
+
190
+ - source: عَبدُاللَّه
191
+ expected: ’Abdallah
192
+ map:
193
+ postrules:
194
+ - pattern: (?<=\b)(?<!\b[‘|’|'])[\u0061-\uFFFF]
195
+ result: "upcase"
196
+ - pattern: " Al " # ال
197
+ result: " al "
198
+
199
+ # don't capitalize defined article in the middle of a sentence
200
+
201
+ characters:
202
+
203
+ # Tool used for Unicode finding:
204
+ # https://www.branah.com/unicode-converter
205
+
206
+ # pointing
207
+ '\u064e' : 'a' # َ fatha
208
+ '\u064e(?=\u0629)' : '' # َ fatha followed by ta' marboota
209
+ '\u064e(?=a[h|t])' : '' # َ fatha followed by ta' marboota, handling different order of conversion
210
+ '\u0650' : 'i' # ِ kasra
211
+ '\u064f' : 'u' # ُ damma
212
+ '\u0652' : '' # ْ sokoon, see note A below
213
+
214
+
215
+ '\u0650\u064a' : 'i' # ـِي kasra followed by ي
216
+ '\u0650\u064a\u0651\u064e' : 'iy' # ـِيَّ
217
+ '\u0650\u064a(?=\u064e|u064f)' : 'iy' # ـِي kasra followed by ي
218
+ '\u064f\u0648' : 'u' # ـُو damma followed by و
219
+ '\u064e\u0627' : 'a' # ـَا fatha followed by ا
220
+ '\u064e\u0649' : 'á' # ـَى fatha followed by ى which is ا not ي
221
+ '\u064e\u0648\u0652' : 'aw' # ـَوْ
222
+ '\u064e\u064a\u0652' : 'ay' # ـَيْ
223
+ '\u0622' : 'a' # آ
224
+
225
+ # ta' marboota
226
+ '\u0629' : 'at' # ة in the middle of the sentence
227
+ '\u0629$' : 'ah'
228
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{2})\u0629' : 'ah'
229
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{3})\u0629' : 'ah'
230
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{4})\u0629' : 'ah'
231
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{5})\u0629' : 'ah'
232
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{6})\u0629' : 'ah'
233
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{7})\u0629' : 'ah'
234
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{8})\u0629' : 'ah'
235
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{9})\u0629' : 'ah'
236
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{10})\u0629' : 'ah'
237
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{11})\u0629' : 'ah'
238
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{12})\u0629' : 'ah'
239
+ '(?<=\b\u0627\u0644[\u0600-\u06ff]{13})\u0629' : 'ah'
240
+
241
+ # shadda
242
+
243
+ '\u0628\u0651' : 'bb' # ب
244
+ '\u062a\u0651' : 'tt' # ت
245
+ '\u062b\u0651' : 'th' # ث
246
+ '\u062c\u0651' : 'jj' # ج
247
+ '\u062d\u0651' : 'hh' # ح
248
+ '\u062e\u0651' : 'kh' # خ
249
+ '\u062f\u0651' : 'dd' # د
250
+ '\u0630\u0651' : 'dh' # ذ
251
+ '\u0631\u0651' : 'rr' # ر
252
+ '\u0632\u0651' : 'zz' # ز
253
+ '\u0633\u0651' : 'ss' # س
254
+ '\u0634\u0651' : 'sh' # ش
255
+ '\u0635\u0651' : 'ṣṣ' # ص
256
+ '\u0636\u0651' : 'ḍḍ' # ض
257
+ '\u0637\u0651' : 'ṭṭ' # ط
258
+ '\u0638\u0651' : 'ẓẓ' # ظ
259
+ '\u063a\u0651' : 'gh' # غ
260
+ '\u0641\u0651' : 'ff' # ف
261
+ '\u0642\u0651' : 'qq' # ق
262
+ '\u0643\u0651' : 'kk' # ك
263
+ '\u0644\u0651' : 'll' # ل
264
+ '\u0645\u0651' : 'mm' # م
265
+ '\u0646\u0651' : 'nn' # ن
266
+ '\u0647\u0651' : 'hh' # ه
267
+ '\u0648\u0651' : 'ww' # و
268
+ '\u064a\u0651' : 'yy' # ي
269
+
270
+ '\u0626' : "’" # ئ
271
+
272
+ '\b\u0627\u0644\u0644\u0651\u064e\u0647': 'Allah'
273
+
274
+ '\B\u064f?\u0627\u0644\u0644\u0651\u064e\u0647': 'allah'
275
+
276
+ '\u0621' : # ء
277
+ - '’'
278
+ - ''
279
+
280
+ '\b\u0627\u0644' : 'al ' # ال
281
+ '\B\u064f?\u0627\u0644' : ' al ' # ال in middle of composite name
282
+
283
+ # '\uFE8E' : '' # ﺎ
284
+
285
+
286
+ '\u0623' : '' # أ
287
+ '\b\u0627' : '' # ا
288
+ '\u0627' : 'a' # ا
289
+ '\u0628' : 'b' # ب
290
+ '\u062a' : 't' # ت
291
+ '\u062b' : 'th' # ث
292
+ '\u062c' : 'j' # ج
293
+ '\u062d' : 'h' # ح
294
+ '\u062e' : 'kh' # خ
295
+ '\u062f' : 'd' # د
296
+ '\u0630' : 'dh' # ذ
297
+ '\u0631' : 'r' # ر
298
+ '\u0632' : 'z' # ز
299
+ '\u0633' : 's' # س
300
+ '\u0634' : 'sh' # ش
301
+ '\u0635' : 'ṣ' # ص
302
+ '\u0636' : 'ḍ' # ض
303
+ '\u0637' : 'ṭ' # ط
304
+ '\u0638' : 'ẓ' # ظ
305
+ '\u0639' : '’' # ع
306
+ '\u063a' : 'gh' # غ
307
+ '\u0641' : 'f' # ف
308
+ '\u0642' : 'q' # ق
309
+ '\u0643' : 'k' # ك
310
+ '\u0644' : 'l' # ل
311
+ '\u0645' : 'm' # م
312
+ '\u0646' : 'n' # ن
313
+ '\u0647' : 'h' # ه
314
+ '\u0648' : 'w' # و
315
+ '\u064a' : 'y' # ي