interscript 0.1.9 → 2.0.5

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 (352) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +29 -0
  5. data/LICENSE.adoc +31 -0
  6. data/README.md +3 -0
  7. data/Rakefile +53 -0
  8. data/bin/console +14 -0
  9. data/bin/interscript +5 -0
  10. data/bin/maps_analyze_staging +168 -0
  11. data/bin/maps_debug_compilers +58 -0
  12. data/bin/maps_debug_ordering +88 -0
  13. data/bin/maps_debug_ruby_compile +24 -0
  14. data/bin/maps_debug_step_by_step +44 -0
  15. data/bin/maps_optimize_order +112 -0
  16. data/bin/maps_v1_analyze_regexps +45 -0
  17. data/bin/maps_v1_to_v2 +426 -0
  18. data/bin/setup +8 -0
  19. data/exe/interscript +6 -0
  20. data/interscript.gemspec +31 -0
  21. data/lib/interscript.rb +80 -135
  22. data/lib/interscript/command.rb +5 -5
  23. data/lib/interscript/compiler.rb +22 -0
  24. data/lib/interscript/compiler/javascript.rb +292 -0
  25. data/lib/interscript/compiler/ruby.rb +262 -0
  26. data/lib/interscript/dsl.rb +67 -0
  27. data/lib/interscript/dsl/aliases.rb +23 -0
  28. data/lib/interscript/dsl/document.rb +46 -0
  29. data/lib/interscript/dsl/group.rb +45 -0
  30. data/lib/interscript/dsl/group/parallel.rb +6 -0
  31. data/lib/interscript/dsl/items.rb +89 -0
  32. data/lib/interscript/dsl/metadata.rb +26 -0
  33. data/lib/interscript/dsl/stage.rb +6 -0
  34. data/lib/interscript/dsl/symbol_mm.rb +11 -0
  35. data/lib/interscript/dsl/tests.rb +12 -0
  36. data/lib/interscript/interpreter.rb +251 -0
  37. data/lib/interscript/node.rb +25 -0
  38. data/lib/interscript/node/alias_def.rb +15 -0
  39. data/lib/interscript/node/dependency.rb +13 -0
  40. data/lib/interscript/node/document.rb +45 -0
  41. data/lib/interscript/node/group.rb +34 -0
  42. data/lib/interscript/node/group/parallel.rb +9 -0
  43. data/lib/interscript/node/group/sequential.rb +2 -0
  44. data/lib/interscript/node/item.rb +52 -0
  45. data/lib/interscript/node/item/alias.rb +42 -0
  46. data/lib/interscript/node/item/any.rb +61 -0
  47. data/lib/interscript/node/item/capture.rb +50 -0
  48. data/lib/interscript/node/item/group.rb +51 -0
  49. data/lib/interscript/node/item/repeat.rb +40 -0
  50. data/lib/interscript/node/item/stage.rb +23 -0
  51. data/lib/interscript/node/item/string.rb +51 -0
  52. data/lib/interscript/node/metadata.rb +18 -0
  53. data/lib/interscript/node/rule.rb +6 -0
  54. data/lib/interscript/node/rule/funcall.rb +18 -0
  55. data/lib/interscript/node/rule/run.rb +15 -0
  56. data/lib/interscript/node/rule/sub.rb +65 -0
  57. data/lib/interscript/node/stage.rb +19 -0
  58. data/lib/interscript/node/tests.rb +15 -0
  59. data/lib/interscript/stdlib.rb +211 -0
  60. data/lib/interscript/utils/regexp_converter.rb +283 -0
  61. data/lib/interscript/version.rb +1 -1
  62. data/requirements.txt +1 -0
  63. metadata +73 -458
  64. data/README.adoc +0 -296
  65. data/aliases.json +0 -1
  66. data/lib/g2pwrapper.py +0 -34
  67. data/lib/interscript/fs.rb +0 -96
  68. data/lib/interscript/mapping.rb +0 -144
  69. data/lib/interscript/opal.rb +0 -196
  70. data/lib/interscript/opal/entrypoint.rb +0 -20
  71. data/lib/interscript/opal/exports.rb +0 -11
  72. data/lib/interscript/opal/maps.js.erb +0 -8
  73. data/lib/model-7 +0 -0
  74. data/lib/tha-pt-b-7 +0 -0
  75. data/maps/acadsin-zho-Hani-Latn-2002.yaml +0 -38916
  76. data/maps/alalc-amh-Ethi-Latn-1997.yaml +0 -513
  77. data/maps/alalc-amh-Ethi-Latn-2011.yaml +0 -138
  78. data/maps/alalc-ara-Arab-Latn-1997.yaml +0 -1287
  79. data/maps/alalc-asm-Deva-Latn-1997.yaml +0 -259
  80. data/maps/alalc-asm-Deva-Latn-2012.yaml +0 -55
  81. data/maps/alalc-aze-Arab-Latn-1997.yaml +0 -376
  82. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +0 -145
  83. data/maps/alalc-bel-Cyrl-Latn-1997.yaml +0 -129
  84. data/maps/alalc-ben-Beng-Latn-1997.yaml +0 -291
  85. data/maps/alalc-ben-Beng-Latn-2017.yaml +0 -130
  86. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +0 -98
  87. data/maps/alalc-div-Thaa-Latn-1997.yaml +0 -211
  88. data/maps/alalc-ell-Grek-Latn-1997.yaml +0 -628
  89. data/maps/alalc-ell-Grek-Latn-2010.yaml +0 -626
  90. data/maps/alalc-guj-Gujr-Latn-1997.yaml +0 -266
  91. data/maps/alalc-guj-Gujr-Latn-2011.yaml +0 -64
  92. data/maps/alalc-hin-Deva-Latn-1997.yaml +0 -303
  93. data/maps/alalc-hin-Deva-Latn-2011.yaml +0 -65
  94. data/maps/alalc-kan-Kana-Latn-1997.yaml +0 -274
  95. data/maps/alalc-kan-Kana-Latn-2011.yaml +0 -63
  96. data/maps/alalc-kat-Geok-Latn-1997.yaml +0 -111
  97. data/maps/alalc-kat-Geor-Latn-1997.yaml +0 -150
  98. data/maps/alalc-kor-Hang-Latn-1997.yaml +0 -98
  99. data/maps/alalc-mal-Mlym-Latn-1997.yaml +0 -303
  100. data/maps/alalc-mal-Mlym-Latn-2012.yaml +0 -73
  101. data/maps/alalc-mar-Deva-Latn-1997.yaml +0 -189
  102. data/maps/alalc-mar-Deva-Latn-2011.yaml +0 -45
  103. data/maps/alalc-mkd-Cyrl-Latn-1997.yaml +0 -114
  104. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +0 -103
  105. data/maps/alalc-mon-Cyrl-Latn-1997.yaml +0 -220
  106. data/maps/alalc-ori-Orya-Latn-1997.yaml +0 -284
  107. data/maps/alalc-ori-Orya-Latn-2011.yaml +0 -67
  108. data/maps/alalc-pan-Guru-Latn-1997.yaml +0 -256
  109. data/maps/alalc-pan-Guru-Latn-2011.yaml +0 -78
  110. data/maps/alalc-per-Arab-Latn-1997.yaml +0 -375
  111. data/maps/alalc-pli-Deva-Latn-2012.yaml +0 -144
  112. data/maps/alalc-pra-Deva-Latn-2012.yaml +0 -47
  113. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +0 -225
  114. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +0 -162
  115. data/maps/alalc-san-Deva-Latn-2012.yaml +0 -241
  116. data/maps/alalc-sin-Sinh-Latn-1997.yaml +0 -292
  117. data/maps/alalc-sin-Sinh-Latn-2011.yaml +0 -71
  118. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +0 -118
  119. data/maps/alalc-srp-Cyrl-Latn-2013.yaml +0 -135
  120. data/maps/alalc-tam-Taml-Latn-1997.yaml +0 -62
  121. data/maps/alalc-tam-Taml-Latn-2011.yaml +0 -58
  122. data/maps/alalc-tel-Telu-Latn-1997.yaml +0 -284
  123. data/maps/alalc-tel-Telu-Latn-2011.yaml +0 -64
  124. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +0 -145
  125. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +0 -16
  126. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +0 -283
  127. data/maps/az-aze-Cyrl-Latn-1939.yaml +0 -105
  128. data/maps/az-aze-Cyrl-Latn-1958.yaml +0 -45
  129. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +0 -174
  130. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +0 -169
  131. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +0 -292
  132. data/maps/bgn-kor-Hang-Latn-1943.yaml +0 -35
  133. data/maps/bgn-kor-Kore-Latn-1943.yaml +0 -31
  134. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +0 -208
  135. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +0 -208
  136. data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +0 -532
  137. data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +0 -598
  138. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +0 -108
  139. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +0 -111
  140. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +0 -188
  141. data/maps/bgnpcgn-bal-Arab-Latn-2008.yaml +0 -329
  142. data/maps/bgnpcgn-bel-Cyrl-Latn-1979.yaml +0 -289
  143. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +0 -119
  144. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +0 -42
  145. data/maps/bgnpcgn-che-Cyrl-Latn-2008.yaml +0 -184
  146. data/maps/bgnpcgn-div-Thaa-Latn-1988.yaml +0 -75
  147. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +0 -705
  148. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +0 -23
  149. data/maps/bgnpcgn-far-Latn-Latn-1964.yaml +0 -28
  150. data/maps/bgnpcgn-fas-Arab-Latn-1956.yaml +0 -96
  151. data/maps/bgnpcgn-isl-Latn-Latn-1964.yaml +0 -37
  152. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +0 -257
  153. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +0 -131
  154. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +0 -42
  155. data/maps/bgnpcgn-kaz-Cyrl-Latn-1979.yaml +0 -247
  156. data/maps/bgnpcgn-kir-Cyrl-Latn-1979.yaml +0 -218
  157. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +0 -253
  158. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +0 -48
  159. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +0 -48
  160. data/maps/bgnpcgn-kur-Arab-Latn-2007.yaml +0 -249
  161. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +0 -163
  162. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +0 -190
  163. data/maps/bgnpcgn-mon-Cyrl-Latn-1964.yaml +0 -223
  164. data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +0 -230
  165. data/maps/bgnpcgn-per-Arab-Latn-1958.yaml +0 -338
  166. data/maps/bgnpcgn-prs-Arab-Latn-2007.yaml +0 -673
  167. data/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.yaml +0 -459
  168. data/maps/bgnpcgn-pus-Arab-Latn-1968.yaml +0 -377
  169. data/maps/bgnpcgn-rue-Cyrl-Latn-2016.yaml +0 -168
  170. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +0 -318
  171. data/maps/bgnpcgn-srp-Cyrl-Latn-1962.yaml +0 -73
  172. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +0 -170
  173. data/maps/bgnpcgn-tat-Cyrl-Latn-2007.yaml +0 -220
  174. data/maps/bgnpcgn-tgk-Cyrl-Latn-1994.yaml +0 -240
  175. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +0 -166
  176. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +0 -119
  177. data/maps/bgnpcgn-urd-Arab-Latn-2007.yaml +0 -459
  178. data/maps/bgnpcgn-uzb-Cyrl-Latn-1979.yaml +0 -127
  179. data/maps/bgnpcgn-uzb-Cyrl-Latn-2000.yaml +0 -82
  180. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +0 -7456
  181. data/maps/bis-asm-Beng-Latn-13194-1991.yaml +0 -159
  182. data/maps/bis-ben-Beng-Latn-13194-1991.yaml +0 -156
  183. data/maps/bis-dev-Deva-Latn-13194-1991.yaml +0 -184
  184. data/maps/bis-guj-Gujr-Latn-13194-1991.yaml +0 -181
  185. data/maps/bis-kan-Kana-Latn-13194-1991.yaml +0 -173
  186. data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +0 -176
  187. data/maps/bis-ori-Orya-Latn-13194-1991.yaml +0 -175
  188. data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +0 -175
  189. data/maps/bis-tel-Telu-Latn-13194-1991.yaml +0 -170
  190. data/maps/bis-tml-Taml-Latn-13194-1991.yaml +0 -155
  191. data/maps/by-bel-Cyrl-Latn-1998.yaml +0 -172
  192. data/maps/by-bel-Cyrl-Latn-2007.yaml +0 -115
  193. data/maps/din-grc-Grek-Latn-31634-2011-t1.yaml +0 -899
  194. data/maps/din-hin-Deva-Latn-33904-2018.yaml +0 -100
  195. data/maps/din-kat-Geor-Latn-32707-2010.yaml +0 -145
  196. data/maps/din-mar-Deva-Latn-33904-2018.yaml +0 -84
  197. data/maps/din-nep-Deva-Latn-33904-2018.yaml +0 -119
  198. data/maps/din-pli-Deva-Latn-33904-2018.yaml +0 -75
  199. data/maps/din-pra-Deva-Latn-33904-2018.yaml +0 -63
  200. data/maps/din-san-Deva-Latn-33904-2018.yaml +0 -338
  201. data/maps/din-tam-Taml-Latn-33903-2016.yaml +0 -213
  202. data/maps/dos-nep-Deva-Latn-1997.yaml +0 -47
  203. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +0 -684
  204. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +0 -680
  205. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +0 -19
  206. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +0 -31
  207. data/maps/ggg-kat-Geor-Latn-2002.yaml +0 -92
  208. data/maps/gki-bel-Cyrl-Latn-1992.yaml +0 -33
  209. data/maps/gki-bel-Cyrl-Latn-2000.yaml +0 -201
  210. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.yaml +0 -190
  211. data/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.yaml +0 -157
  212. data/maps/hk-yue-Hani-Latn-1888.yaml +0 -38497
  213. data/maps/icao-bel-Cyrl-Latn-9303.yaml +0 -136
  214. data/maps/icao-bul-Cyrl-Latn-9303.yaml +0 -118
  215. data/maps/icao-fas-Arab-Latn-9303.yaml +0 -103
  216. data/maps/icao-heb-Hebr-Latn-9303.yaml +0 -151
  217. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +0 -117
  218. data/maps/icao-rus-Cyrl-Latn-9303.yaml +0 -117
  219. data/maps/icao-srp-Cyrl-Latn-9303.yaml +0 -117
  220. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +0 -119
  221. data/maps/iso-ara-Arab-Latn-233-1984.yaml +0 -323
  222. data/maps/iso-asm-Beng-Latn-15919-2001.yaml +0 -75
  223. data/maps/iso-ben-Beng-Latn-15919-2001.yaml +0 -175
  224. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +0 -613
  225. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +0 -44
  226. data/maps/iso-guj-Gujr-Latn-15919-2001.yaml +0 -220
  227. data/maps/iso-hin-Deva-Latn-15919-2001.yaml +0 -87
  228. data/maps/iso-inc-Deva-Latn-15919-2001.yaml +0 -61
  229. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +0 -66
  230. data/maps/iso-kan-Kana-Latn-15919-2001.yaml +0 -220
  231. data/maps/iso-kat-Geor-Latn-9984-1996.yaml +0 -145
  232. data/maps/iso-kor-Hang-Latn-1996-method1.yaml +0 -240
  233. data/maps/iso-kor-Hang-Latn-1996-method2.yaml +0 -226
  234. data/maps/iso-mal-Mlym-Latn-15919-2001.yaml +0 -281
  235. data/maps/iso-mar-Deva-Latn-15919-2001.yaml +0 -75
  236. data/maps/iso-nep-Deva-Latn-15919-2001.yaml +0 -87
  237. data/maps/iso-ori-Orya-Latn-15919-2001.yaml +0 -193
  238. data/maps/iso-pan-Guru-Latn-15919-2001.yaml +0 -222
  239. data/maps/iso-pli-Beng-Latn-15919-2001.yaml +0 -73
  240. data/maps/iso-pli-Deva-Latn-15919-2001.yaml +0 -74
  241. data/maps/iso-pli-Sinh-Latn-15919-2001.yaml +0 -219
  242. data/maps/iso-pli-Thai-Latn-15919-2001.yaml +0 -55
  243. data/maps/iso-pra-Deva-Latn-15919-2001.yaml +0 -59
  244. data/maps/iso-prs-Arab-Latn-233-3-1999.yaml +0 -366
  245. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +0 -271
  246. data/maps/iso-san-Deva-Latn-15919-2001.yaml +0 -220
  247. data/maps/iso-tam-Taml-Latn-15919-2001.yaml +0 -159
  248. data/maps/iso-tel-Telu-Latn-15919-2001.yaml +0 -220
  249. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +0 -109
  250. data/maps/kp-kor-Hang-Latn-2002.yaml +0 -909
  251. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +0 -44820
  252. data/maps/masm-mon-Cyrl-Latn-5217-2012.yaml +0 -163
  253. data/maps/masm-mon-Latn-Cyrl-5217-2012.yaml +0 -200
  254. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +0 -411
  255. data/maps/moct-kor-Hang-Latn-2000.yaml +0 -807
  256. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +0 -541
  257. data/maps/mv-div-Thaa-Latn-1987.yaml +0 -200
  258. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +0 -225
  259. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +0 -63
  260. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +0 -109
  261. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +0 -37
  262. data/maps/odni-ara-Arab-Latn-2004.yaml +0 -137
  263. data/maps/odni-ara-Arab-Latn-2015.yaml +0 -315
  264. data/maps/odni-aze-Cyrl-Latn-2015.yaml +0 -144
  265. data/maps/odni-bel-Cyrl-Latn-2015.yaml +0 -148
  266. data/maps/odni-bul-Cyrl-Latn-2005.yaml +0 -90
  267. data/maps/odni-bul-Cyrl-Latn-2015.yaml +0 -96
  268. data/maps/odni-che-Cyrl-Latn-2015.yaml +0 -169
  269. data/maps/odni-fas-Arab-Latn-2004.yaml +0 -276
  270. data/maps/odni-fas-Arab-Latn-2015.yaml +0 -406
  271. data/maps/odni-hin-Deva-Latn-2004.yaml +0 -182
  272. data/maps/odni-hin-Deva-Latn-2015.yaml +0 -258
  273. data/maps/odni-kat-Geor-Latn-2015.yaml +0 -87
  274. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +0 -148
  275. data/maps/odni-kir-Cyrl-Latn-2015.yaml +0 -136
  276. data/maps/odni-kor-Hang-Latn-2015.yaml +0 -375
  277. data/maps/odni-mkd-Cyrl-Latn-2005.yaml +0 -21
  278. data/maps/odni-mkd-Cyrl-Latn-2015.yaml +0 -122
  279. data/maps/odni-prs-Arab-Latn-2004.yaml +0 -123
  280. data/maps/odni-prs-Arab-Latn-2015.yaml +0 -228
  281. data/maps/odni-rus-Cyrl-Latn-2015.yaml +0 -77
  282. data/maps/odni-srp-Cyrl-Latn-2005.yaml +0 -36
  283. data/maps/odni-srp-Cyrl-Latn-2015.yaml +0 -129
  284. data/maps/odni-tat-Cyrl-Latn-2015.yaml +0 -142
  285. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +0 -148
  286. data/maps/odni-tuk-Cyrl-Latn-2015.yaml +0 -170
  287. data/maps/odni-uig-Cyrl-Latn-2015.yaml +0 -138
  288. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +0 -161
  289. data/maps/odni-urd-Arab-Latn-2015.yaml +0 -221
  290. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +0 -166
  291. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +0 -90
  292. data/maps/royin-tha-Thai-Latn-1968.yaml +0 -183
  293. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +0 -180
  294. data/maps/royin-tha-Thai-Latn-1999.yaml +0 -80
  295. data/maps/sac-zho-Hans-Latn-1979.yaml +0 -24763
  296. data/maps/sasm-mon-Mong-Latn-general-1978.yaml +0 -389
  297. data/maps/sasm-mon-Mong-Latn-phonetic-1978.yaml +0 -354
  298. data/maps/ses-ara-Arab-Latn-1930.yaml +0 -283
  299. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +0 -222
  300. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +0 -197
  301. data/maps/ua-ukr-Cyrl-Latn-2007.yaml +0 -75
  302. data/maps/ua-ukr-Cyrl-Latn-2010.yaml +0 -192
  303. data/maps/un-amh-Ethi-Latn-2016.yaml +0 -602
  304. data/maps/un-ara-Arab-Latn-1971.yaml +0 -139
  305. data/maps/un-ara-Arab-Latn-1972.yaml +0 -159
  306. data/maps/un-ara-Arab-Latn-2017.yaml +0 -420
  307. data/maps/un-asm-Beng-Latn-1972.yaml +0 -223
  308. data/maps/un-bel-Cyrl-Latn-2007.yaml +0 -114
  309. data/maps/un-ben-Beng-Latn-2016.yaml +0 -534
  310. data/maps/un-ell-Grek-Latn-1987-phonetic.yaml +0 -780
  311. data/maps/un-ell-Grek-Latn-1987-tl.yaml +0 -31
  312. data/maps/un-ell-Grek-Latn-1987-ts.yaml +0 -19
  313. data/maps/un-guj-Gujr-Latn-1972.yaml +0 -229
  314. data/maps/un-hin-Deva-Latn-2016.yaml +0 -316
  315. data/maps/un-kan-Kana-Latn-2016.yaml +0 -254
  316. data/maps/un-mal-Mlym-Latn-1972.yaml +0 -251
  317. data/maps/un-mar-Deva-Latn-2016.yaml +0 -102
  318. data/maps/un-mon-Mong-Latn-general-2013.yaml +0 -264
  319. data/maps/un-mon-Mong-Latn-phonetic-2013.yaml +0 -264
  320. data/maps/un-nep-Deva-Latn-1972.yaml +0 -269
  321. data/maps/un-nep-Deva-Latn-2013.yaml +0 -74
  322. data/maps/un-ori-Orya-Latn-1972.yaml +0 -247
  323. data/maps/un-pan-Guru-Latn-1972.yaml +0 -402
  324. data/maps/un-prs-Arab-Latn-1967.yaml +0 -236
  325. data/maps/un-rus-Cyrl-Latn-1987.yaml +0 -166
  326. data/maps/un-tam-Taml-Latn-1972.yaml +0 -194
  327. data/maps/un-tel-Telu-Latn-1972.yaml +0 -270
  328. data/maps/un-ukr-Cyrl-Latn-1998.yaml +0 -53
  329. data/maps/un-ukr-Cyrl-Latn-2012.yaml +0 -162
  330. data/maps/un-urd-Arab-Latn-1972.yaml +0 -405
  331. data/maps/var-amh-Ethi-Latn-eae-2003.yaml +0 -466
  332. data/maps/var-gez-Ethi-Latn-eae-2003.yaml +0 -76
  333. data/maps/var-hin-Deva-Latn-hunterian-1872.yaml +0 -221
  334. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +0 -406
  335. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +0 -386
  336. data/maps/var-kor-Hang-Hang-jamo.yaml +0 -11193
  337. data/maps/var-kor-Hang-Latn-mr-1939.yaml +0 -1054
  338. data/maps/var-kor-Kore-Hang-2013.yaml +0 -59754
  339. data/maps/var-kor-Kore-Latn-mr-1939.yaml +0 -36
  340. data/maps/var-mar-Deva-Latn-hunterian-1872.yaml +0 -43
  341. data/maps/var-mon-Mong-Latn-1930.yaml +0 -102
  342. data/maps/var-mon-Mong-Latn-lessing.yaml +0 -272
  343. data/maps/var-mon-Mong-Latn-vpmc.yaml +0 -274
  344. data/maps/var-pra-Deva-Latn-iast-1912.yaml +0 -30
  345. data/maps/var-san-Deva-Latn-iast-1912.yaml +0 -149
  346. data/maps/var-tha-Thai-Thai-phonemic.yaml +0 -59
  347. data/maps/var-tha-Thai-Zsym-ipa.yaml +0 -301
  348. data/maps/var-zho-Hani-Latn-wd-1979.yaml +0 -38912
  349. data/spec/interscript/filenames_spec.rb +0 -21
  350. data/spec/interscript/mapping_spec.rb +0 -42
  351. data/spec/interscript_spec.rb +0 -37
  352. data/spec/spec_helper.rb +0 -3
@@ -1,673 +0,0 @@
1
- ---
2
- authority_id: bgnpcgn
3
- id: 2007
4
- language: iso-639-3:prs # prs stands for Dari (https://iso639-3.sil.org/code/prs&_ga=GA1.2.2054538372.1574092823)
5
- source_script: Arab
6
- destination_script: Latn
7
- name: BGN/PCGN NATIONAL ROMANIZATION SYSTEM FOR AFGHANISTAN -- BGN/PCGN 2007 System
8
- alias:
9
- ogc11122:
10
- code: uas_Arab2Latn_BGN_2007
11
- description: Unified Afghan Romanization System US Board on Geographic Names (BGN)/The Permanent Committee on Geographical Names (PCGN) 2007
12
- url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/693661/ROMANIZATION_FOR_AFGHANISTAN.pdf
13
- creation_date: 2007
14
- confirmation_date: 2017-11
15
- description: |
16
- This romanization system agreed by BGN and PCGN in November 2007,
17
- accommodates the linguistic complexity of Afghanistan as manifest in
18
- its geographical names.
19
-
20
- The following tabulation shows the original Perso-Arabic script with
21
- accompanying Unicode value (columns 1a and b), the Yaghoubi
22
- romanization (column 2), the BGN/PCGN romanization with accompanying
23
- Unicode value (columns 3a and b), an English phonetic example (column
24
- 4), and an example toponym (columns 5b and c).
25
-
26
- [The Yaghoubi romanization system was developed in 1959 by
27
- Muzaffarud Din Yaqubi (commonly seen as Yaghoubi). It is a native
28
- official system designed to reflect Afghan names, both Dari and Pashto,
29
- and both pronunciation and genuine linguistic truth.]
30
-
31
- The tables function as both a romanization system for Afghanistan (i.e.
32
- with access to the original script, these tables can be applied to get
33
- a standardized Roman result - moving from columns 1 to 3) and as a
34
- means of converting the available Yaghoubi Roman-script spellings, as
35
- appear on the Fairchild Aerial Surveys map series, to standard BGN/PCGN
36
- spellings (moving from columns 2 to 3).
37
-
38
- The points used in Arabic to mark short vowels and certain other
39
- diacritical marks are infrequently written in Afghanistan.
40
- Consequently, a reference source may sometimes be required to aid
41
- correct identification of the standard spellings and proper vowels and
42
- elimination of dialectal and idiosyncratic variations. In the interests
43
- of clarity, the example columns show script with vowel pointing from
44
- Arabic to indicate the short vowels that are included alongside the
45
- unpointed form that will usually be encountered. However it should be
46
- noted that the pronunciation of short vowels will vary.
47
-
48
- Note: it is recommended that a font such as Scheherazade, available
49
- from www.sil.org, which includes the Unicode extended Arabic sub-range,
50
- be used to view this system. [Please note that the identification of a
51
- particular font does not represent an endorsement of any specific
52
- product or manufacturer.]
53
-
54
- notes:
55
- - |
56
- Alif (ا) should be romanized as follows:
57
-
58
- a. Initially, it indicates that the word begins with a vowel or
59
- diphthong; the alif itself is not romanized, but rather the short vowel
60
- it “carries” is romanized; e.g., ميړ أَسَلم ژرَندَه → Mī Aslam Zhrandah
61
- b. When it carries a maddah (آ) (see vowel table, row 6), it represents ā; e.g., آب بَند → Āb Band.
62
- c. Medially and finally it represents ā (see vowel table, row 5); e.g., ماڼۍ → Māṉêy
63
- d. Medially and finally in words of Arabic origin, alif may serve as the bearer of hamzah, e.g. رأس → ra’s.
64
-
65
- - Occasionally the letter sequences سه ,زه ,که, and گه occur without
66
- intervening vowels. They may be romanized k·h, z·h, s·h, and g·h in
67
- order to differentiate these romanizations from the digraphs kh, zh,
68
- sh, and gh, which are used to represent the letters ش ,ژ ,خ, and غ.
69
- Additionally, the Pashto letters څ and ځ, routinely romanized ts and
70
- dz, may be alternatively romanized s and z تس when for special reasons
71
- it is desired that confusion be avoided with the character sequences
72
- (ts) and دز (dz), respectively.
73
-
74
- - "The vagaries of written Afghan languages, as pertains to spacing
75
- and word division, are addressed as follows:
76
- Spaces may be added to or subtracted from Afghan words written in
77
- Arabic script, for the purposes of standardization. This is
78
- particularly relevant when the words are hand-written, are rendered
79
- “art st cally”, or express other s ch non-standard flourishes, as long
80
- as the sense of the toponym, word, or phrase is not compromised.
81
- Romanized toponyms are typically divided into constituent words
82
- (spaces and other grammatical rules applied) when those words can stand
83
- independently, for purposes of standardization and minimization of
84
- confusion, particularly in situations where Afghan writers are
85
- inconsistent in their application of spacing and word breaks. When the
86
- Afghan word or suffix is only used in combination with other nouns or
87
- adjectives, then it should be appended to the preceding word in its
88
- romanization. This includes (but is not limited to) - ābā , -zaī, -zā
89
- ah, - ū, -wand, -gaī, -kaī, -pūr, - ēsh, -lar, -lī, -lū and ullāh, as,
90
- for example, seen in Raḩmatābād (رحمت آباد) and Raḩmatullāh (رحمت االله),
91
- but Raḩmat Khēl (رحمتخيل) and Raḩmat Shahr (رحمتشهر)."
92
-
93
- - The one-letter words د (Pashto) and و (Dari) are romanized dê and
94
- wa, respectively.
95
-
96
- - The word الله, meaning God, should always be romanized Allāh,
97
- except as specified in note 3. Note that the Unicode value FDF2 spells
98
- Allāh, but omits the alif in some common fonts, including Times New
99
- Roman. If in doubt, try in Arial Unicode MS to verify. Also note that
100
- the “dagger al f” ( ) above the second ل (lām) n the ord الله, is not
101
- written but should be romanized ā, like a full-size alif.
102
-
103
- - In names of Arabic origin, the l of the definite article al s ass m
104
- lated before the ‘s n letters’ , , , , r, z, s, sh, ş, ẕ, , z, l and n.
105
- In its romanization, the article should be separated from the name it
106
- precedes and should not be capitalized except at the beginning of a
107
- name, e.g. جبل السراج→ Jabal
108
- as Sarāj
109
-
110
- - In Arabic names, a shaddah, ّ is used to denote the doubling of a
111
- particular consonant character, e.g. ُم َح َمد → Muḩammad. Ho ever, n
112
- Pashto th s ‘do bl ng’ s freq ently om tted n both Perso- Arabic script
113
- and the resulting romanization. Guidance on doubling may be taken from
114
- an authoritative names source, such as an Afghan government source or
115
- Pashto dictionary; for example, it is usual to see Ḩājī without and
116
- ‘Abbās with the doubled consonant. The doubled y consonant is almost
117
- always retained, as in Sayyid or Qayyūm.
118
-
119
- - In Afghan names which contain an iẕāfah, it should be romanized as
120
- -e or –ye according to
121
- common pronunciation, but generally, -e is used if the preceding word
122
- ends with a consonant other
123
- than silent heh, and -ye if the preceding word ends with a vowel
124
- sound e.g. غر ِحصار → Ghar-e ِ
125
- Ḩ şār; َقل َع ٔه َنو → Qal‘ah-ye Now. Scholarly sources indicate that
126
- heh is silent in darah and qal‘ah (thus darah-ye, qal‘ah-ye), but
127
- lightly spoken in kōh and chāh (thus kōh-e, chāh-e).
128
-
129
- - The character sequence خو, where followed by ا or ی should be
130
- romanized khwā or khwī, although the w is either not pronounced, or
131
- only weakly so, as in خواجه → khwājah.
132
-
133
- - Plural nouns ending in -hā or -ān should always be romanized as a
134
- single word, regardless of whether a space appears in a Perso-Arabic
135
- script source.
136
-
137
- - Unicode values listed in the tables above are required to ensure
138
- standardization and to minimize confusion from competing
139
- representations of a given character. It should be noted that the
140
- Persian Unicode value 0643 or FEDA( ك Unicode value 06A9) is
141
- recommended rather than the Arabic( ک or FED9), the Persian گ (Unicode
142
- value 06AF) is recommended rather than ګ (Unicode value 06AB) or ڰ
143
- (Unicode value 06B0) or ك (Unicode value 0643 or FEDA or FED9), and the
144
- Pashto character ځ (Unicode value 0681) is recommended rather than the
145
- heh with a dot above and a dot below (no Unicode value). For the letter ی
146
- in its many variations, care must be exercised to follow this romanization
147
- guide's recommendations to eliminate confusion for search engines
148
- and software. BGN/PCGN does not use the Unicode encoding FEEF for the
149
- character ی in any Afghan word.
150
-
151
- - |
152
- An inventory of letter-diacritic combinations in addition to the
153
- unmodified letters of the basic Roman script is:
154
-
155
- ‘ (U+2018)
156
- Ā (U+0100)
157
- Á (U+00C1)
158
- Ḏ (U+0044+0031)
159
- Ē (U+9112)
160
- Ê (U+00CA)
161
- Ḩ (U+1E28)
162
- Ī (U+012A)
163
- N-bar-top (U+004E+0304)
164
- Ō (U+014C)
165
- R-bar-bottom (U+0052+0031)
166
- Ş (U+015E)
167
- S-bar-top (U+0053+0304)
168
- Ṯ (U+0054+0031)
169
- Ţ (U+0162)
170
- Ū (U+918A)
171
- Z-comma-bottom (U+005A+0327)
172
- Z-bar-top (U+005A+0304)
173
- Ẕ (U+005A+0331)
174
- ẔH (U+005A+0048+035F)
175
-
176
-
177
- ʼ (U+2019)
178
- ā (U+0101)
179
- á (U+00E1)
180
- ḏ (U+0064+00031)
181
- ē (U+0113)
182
- ê (U+00EA)
183
- ḩ (U+1E29)
184
- ī (U+912B)
185
- n-bar-top (U+004E+0304)
186
- ō (U+014D)
187
- r-bar-bottom (U+0072+0031)
188
- ş (U+015F)
189
- s-bar-top (U+0073+0304)
190
- ṯ (U+0074+0031)
191
- ţ (U+0163)
192
- ū (U+918B)
193
- z-comma-bottom (U+007A+0327)
194
- z-bar-top (U+007A+0304)
195
- ẕ (U+007A+0331)
196
- zh-under-bar (U+007A+0068+035F)
197
-
198
-
199
- - The Romanization columns show only lowercase forms but, when
200
- romanizing, uppercase and lowercase Roman letters as appropriate should
201
- be used.
202
-
203
-
204
- tests:
205
- - source: بَغْلان
206
- expected: Baghlān
207
-
208
- - source: پُوټَكَى
209
- expected: Pōṯakay
210
-
211
- - source: شِيرِين تَگَاب
212
- expected: Shīrīn Tagāb
213
-
214
- - source: کُوْټ
215
- expected: Kōṯ
216
-
217
- - source: ثَابِر
218
- expected: S̄ābir
219
-
220
- - source: جَلال آبَاد
221
- expected: Jalālābād
222
-
223
- - source: چَارِيكَار
224
- expected: Chārīkār
225
-
226
- - source: ځَدْرَاڼ
227
- expected: Dzadrāṉ
228
-
229
- - source: څَوکۍ
230
- expected: Tsowkêy
231
-
232
- - source: حَضْرَتِ إِمَام
233
- expected: Ḩaẕrat-e Imām
234
-
235
- - source: خُوْسْت
236
- expected: Khōst
237
-
238
- - source: سْپِين بُوْلْدَک
239
- expected: Spīn Bōldak
240
-
241
- - source: ډَنْډ وَ پَتَان
242
- expected: Ḏanḏ Wa Patān
243
-
244
- # - source: گُذَرْگَاهٔ نور
245
- # expected: Guz̄argāh-e nūr
246
-
247
- - source: كَنْدَهَار
248
- expected: Kandahār
249
-
250
- - source: أَنْدَړ
251
- expected: Andaṟ
252
-
253
- - source: كُنْدُز
254
- expected: Kunduz
255
-
256
- - source: مِير أَسْلَم ژْرَنْدَه
257
- expected: Mīr Aslam Zhrandah
258
-
259
- - source: ږِيرَه
260
- expected: Z͟hīrah
261
-
262
- - source: سَمَنْگَان
263
- expected: Samangān
264
-
265
- # - source: مَزَارِ شَريف
266
- # expected: Mazār-e sharīf
267
-
268
- - source: كښٙتَه كَلا
269
- expected: Ks͟hêtah Kalā
270
-
271
- - source: قَيْصَار
272
- expected: Qayşār
273
-
274
- - source: فَيض آبَاد
275
- expected: Faīẕābād
276
-
277
- - source: حَضْرَتِ سُلْطَان
278
- expected: Ḩaẕrat-e Sulţān
279
-
280
- - source: ظَاهِر كَلا
281
- expected: Z̧āhir Kalā
282
-
283
- - source: پُلِ عَلَم
284
- expected: Pul-e ‘Alam
285
-
286
- - source: غَزْنِي
287
- expected: Ghaznī
288
-
289
- - source: مَزَارِ شَرِيف
290
- expected: Mazār-e Sharīf
291
-
292
- - source: قَيْصَار
293
- expected: Qayşār
294
-
295
- - source: كَنْدَهَار
296
- expected: Kandahār
297
-
298
- - source: گَرْدېز
299
- expected: Gardēz
300
-
301
- - source: کَابُل
302
- expected: Kābul
303
-
304
- - source: مَيمَنَه
305
- expected: Maīmanah
306
-
307
- - source: خَان آبَاد
308
- expected: Khānābād
309
-
310
- - source: مَاڼۍ
311
- expected: Māṉêy
312
-
313
- - source: وَاخَان
314
- expected: Wākhān
315
-
316
- # - source: هِرَات
317
- # expected: Herāt
318
-
319
- - source: يَنْگِي قَلعَه
320
- expected: Yangī Qal‘ah
321
-
322
- - source: جَلال آبَاد
323
- expected: Jalālābād
324
-
325
- # - source: هِرات پُلِ حِصَار
326
- # expected: Herāt Pul-e Ḩişār
327
-
328
- - source: مُرْغَاب کَابُل
329
- expected: Murghāb Kābul
330
-
331
- - source: گٙردُون
332
- expected: Gêrdōn
333
-
334
- - source: آب بَنْد
335
- expected: Āb Band
336
-
337
- - source: سْپِين بُوْلْدَک
338
- expected: Spīn Bōldak
339
-
340
- # - source: بَالا بُلُوک
341
- # expected: Bālā Bulūk
342
-
343
- - source: جَوزجَان
344
- expected: Jowzjān
345
-
346
- # - source: غَزْنِى سْپِين
347
- # expected: Ghaznī spīn
348
-
349
- # - source: ريگ مَيوَنْد
350
- # expected: Maywand, Rēg
351
-
352
- - source: گَرْدېز
353
- expected: Gardēz
354
-
355
- - source: مَیدان شَهْر
356
- expected: Maīdān Shahr
357
-
358
- - source: ډَنْډِ سُفْلىٰ
359
- expected: Ḏanḏ-e Suflá
360
-
361
- # - source: څَوْکۍ
362
- # expected: Tsowkêy
363
-
364
- # - source: هَوائِي ډَگَر
365
- # expected: Hawā’ī ḏagar
366
-
367
- # - source: مَزارِ شَريف
368
- # expected: Mazār-e sharīf
369
-
370
- # - source: دايکندی
371
- # expected: Dāykundī
372
-
373
- # - source: زيارت
374
- # expected: Zīārat
375
-
376
- # - source: غوريان
377
- # expected: Ghōriyān
378
-
379
- # - source: ميا
380
- # expected: Myā
381
-
382
- - source: جَبَل السَرَاج
383
- expected: Jabal as Sarāj
384
-
385
- map:
386
- postrules:
387
- - pattern: (?<=\b)(?<!\b[‘|’|'|-])[\u0061-\uFFFF]
388
- result: "upcase"
389
- # don't capitalize defined article in the middle of a sentence
390
- - pattern : ' At T' # الت
391
- result: ' at T'
392
- - pattern : ' As̄ S̄' # الث
393
- result: ' as̄ S̄'
394
- - pattern : ' Ad D' # الد
395
- result: ' ad D'
396
- - pattern : ' Az̄ Z̄' # الذ
397
- result: ' az̄ Z̄'
398
- - pattern : ' Ar R' # الر
399
- result: ' ar R'
400
- - pattern : ' Az Z' # الز
401
- result: ' az Z'
402
- - pattern : ' As S' # الس
403
- result: ' as S'
404
- - pattern : ' Ash Sh' # الش
405
- result: ' ash Sh'
406
- - pattern : ' Aş Ş' # الص
407
- result: ' aş Ş'
408
- - pattern : ' Aẕ Ẕ' # الض
409
- result: ' aẕ Ẕ'
410
- - pattern : ' Aţ Ţ' # الط
411
- result: ' aţ Ţ'
412
- - pattern : ' Az̧ Z̧' # الظ
413
- result: ' az̧ Z̧'
414
- - pattern : ' Al L' # الل
415
- result: ' al L'
416
- - pattern : ' An N' # الن
417
- result: ' an N'
418
- - pattern: " Al " # ال
419
- result: " al "
420
- characters:
421
-
422
- # word-medial or word-final form where so appearing in a word.
423
- # '\u0627': '-'
424
-
425
- # # Vowel, Diphthong and Diacritical Characters
426
-
427
- # '\u064E': 'a'
428
-
429
- # # Both e and i are available to romanize this short vowel,
430
- # # depending on local usage and/or root language. In cases where the sound
431
- # # is uncertain, i is the default romanization in BGN/PCGN standardization
432
- # # procedures.
433
- # '\u0650':
434
- # - 'e'
435
- # - 'i'
436
-
437
- # # Both o and u are available to romanize this short vowel,
438
- # # depending on local usage and/or root language. In cases where the sound
439
- # # is uncertain, u is the default romanization in BGN/PCGN standardization
440
- # # procedures.
441
- # '\u064F':
442
- # - 'o'
443
- # - 'u'
444
- # '\u0659': 'ê'
445
-
446
- # # An alif with mad ( آ ) is written only in the initial position by
447
- # # BGN/PCGN standardization procedures, in keeping with Persian language
448
- # # family standards of use of the Arabic alphabet. The same letter written
449
- # # in a medial or final position is written . . .
450
- # '\u0622': 'ā'
451
-
452
- # pending issue #442
453
- # '\u0648': 'ō'
454
- # '\u0648': 'ū'
455
- # '\u0648': 'ow'
456
- # '\u06CC': 'ī'
457
-
458
- # # Or 'ē'. The character ی should be romanized ay or ē according to
459
- # # its root language or local pronunciation. In case of uncertainty a
460
- # # reference source (such as the Fairchild Aerial Surveys map series, or a
461
- # # BGN/PCGN approved policy document/list of recommended spellings) should
462
- # # be consulted.
463
- # '\u06CC': 'ay'
464
- # '\u06D0': 'ē'
465
-
466
- # # Or 'aī'. Both the combination ay and aī are available to romanize
467
- # # this character according to its root language or local pronunciation.
468
- # # In cases where the sound is uncertain ay is the default romanization in
469
- # # BGN/PCGN standardization procedures
470
- # '\u06CC':
471
- # - 'ay'
472
- # - 'á'
473
- # '\u06CD': 'êy'
474
- # '\u0621': '’'
475
- # '\u0674':
476
- # - '-e'
477
- # - '-ye'
478
-
479
- # # Other Diacritical Marks and Language Conventions
480
-
481
- # '\u0627': 'āy'
482
-
483
- # '\u0648': 'w'
484
- # '\u0626': '’'
485
- # '\u06C0': ''
486
- # '\u0651': ''
487
-
488
-
489
- # special rules
490
-
491
- '\s(?=\u0622\u0628\u064E\u0627\u062F)': '' # space followed by abad is removed
492
- '\ufdf2': 'Allāh' # See note 5
493
-
494
- # pointing
495
- '\u064e' : 'a' # َ fatha
496
- '\u064e(?=\u0629)' : '' # َ fatha followed by ta' marboota
497
- '\u064e(?=a[h|t])' : '' # َ fatha followed by ta' marboota, handling different order of conversion
498
-
499
- # Both e and i are available to romanize this short vowel,
500
- # depending on local usage and/or root language. In cases where the sound
501
- # is uncertain, i is the default romanization in BGN/PCGN standardization
502
- # procedures.
503
- '\u0650':
504
- - 'i'
505
- - 'e'
506
- '\u0650\b' : '-e' # ِ kasra
507
-
508
- # Both o and u are available to romanize this short vowel,
509
- # depending on local usage and/or root language. In cases where the sound
510
- # is uncertain, u is the default romanization in BGN/PCGN standardization
511
- # procedures.
512
- '\u064f': # ُ damma
513
- - 'u'
514
- - 'o'
515
-
516
- '\u0652' : '' # ْ sokoon
517
- '\u0659': 'ê'
518
-
519
- # special pointed letters
520
- '\u0639\u064e' : '‘a' # عَ
521
- '\u0639\u0650' : '‘i' # عِ
522
- '\u0639\u064f' : '‘ū' # عُ
523
- # handle MacOS regex difference
524
- '\u0639\u064f\u0648' : '‘ū' # عُو damma followed by و
525
-
526
- '\u0650\u064a' : 'ī' # ـِي kasra followed by ي
527
- '\u0650\u06cc' : 'ī' # ـِي kasra followed by ي
528
- '\u0650\u064a\u0651\u064e' : 'īy' # ـِيَّ
529
- '\u0650\u064a(?=\u064e|u064f)' : 'iy' # ـِي kasra followed by ي
530
- '\u064f\u0648' : 'ō' # ـُو damma followed by و
531
- '\u064e\u0627' : 'ā' # ـَا fatha followed by ا
532
- '\u064e\u0649' : 'ay' # ـَى fatha followed by ى which is ا not ي
533
- '\u064e\u0648\u0652' : 'aw' # ـَوْ
534
- '\u064e\u0648' : 'ow' # ـَو
535
- '\u064e\u064a\u0652' : 'ay' # ـَيْ
536
- '\u0650\u06cc\u0651\u064e' : 'īy' # ـِيَّ
537
- '\u064e\u064a' : 'aī' # ـَي
538
- '\u064e\u06cc' : 'aī' # ـَي
539
- '\u0649\u0670': 'á' # ىٰ
540
- '\u0674': '-e' # ٴ
541
- '\u0654': '-e' # ٔ
542
- # - '-ye'
543
-
544
- # An alif with mad ( آ ) is written only in the initial position by
545
- # BGN/PCGN standardization procedures, in keeping with Persian language
546
- # family standards of use of the Arabic alphabet. The same letter written
547
- # in a medial or final position is written . . .
548
- '\u0622' : 'ā' # آ
549
-
550
- # ta' marboota
551
- '\u0629' : 'at' # ة in the middle of the sentence
552
- '\u0629$' : 'ah'
553
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{2})\u0629' : 'ah'
554
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{3})\u0629' : 'ah'
555
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{4})\u0629' : 'ah'
556
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{5})\u0629' : 'ah'
557
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{6})\u0629' : 'ah'
558
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{7})\u0629' : 'ah'
559
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{8})\u0629' : 'ah'
560
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{9})\u0629' : 'ah'
561
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{10})\u0629' : 'ah'
562
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{11})\u0629' : 'ah'
563
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{12})\u0629' : 'ah'
564
- '(?<=\b\u0627\u0644[\u0600-\u06ff]{13})\u0629' : 'ah'
565
-
566
- # shadda
567
-
568
- '\u0628\u0651' : 'bb' # ب
569
- '\u062a\u0651' : 'tt' # ت
570
- '\u062b\u0651' : 'thth' # ث
571
- '\u062c\u0651' : 'jj' # ج
572
- '\u062d\u0651' : 'ẖẖ' # ح
573
- '\u062e\u0651' : 'khkh' # خ
574
- '\u062f\u0651' : 'dd' # د
575
- '\u0630\u0651' : 'z̄z̄' # ذ
576
- '\u0631\u0651' : 'rr' # ر
577
- '\u0632\u0651' : 'zz' # ز
578
- '\u0633\u0651' : 'ss' # س
579
- '\u0634\u0651' : 'sh' # ش
580
- '\u0635\u0651' : 'şş' # ص
581
- '\u0636\u0651' : 'ḏḏ' # ض
582
- '\u0637\u0651' : 'ţţ' # ط
583
- '\u0638\u0651' : 'z̧z̧' # ظ
584
- '\u063a\u0651' : 'ghgh' # غ
585
- '\u0641\u0651' : 'ff' # ف
586
- '\u0642\u0651' : 'qq' # ق
587
- '\u0643\u0651' : 'kk' # ك
588
- '\u0644\u0651' : 'll' # ل
589
- '\u0645\u0651' : 'mm' # م
590
- '\u0646\u0651' : 'nn' # ن
591
- '\u0647\u0651' : 'hh' # ه
592
- '\u0648\u0651' : 'ww' # و
593
- '\u064a\u0651' : 'yy' # ي
594
-
595
-
596
- '\u0621': '’' # ء
597
- '\u0626': '’' # ئ
598
-
599
- '\u0623' : '' # أ
600
- '\u0625': '' # إ
601
- '\u0627' : 'ā' # ا
602
-
603
- # See note B
604
- '\b\u0627\u0644' : 'al ' # ال
605
- # '\uFE8E' : '' # ﺎ
606
-
607
- # Sun letters
608
- '\b\u0627\u0644\u062a' : 'at t' # الت
609
- '\b\u0627\u0644\u062b' : 'as̄ s̄' # الث
610
- '\b\u0627\u0644\u062f' : 'ad d' # الد
611
- '\b\u0627\u0644\u0630' : 'az̄ z̄' # الذ
612
- '\b\u0627\u0644\u0631' : 'ar r' # الر
613
- '\b\u0627\u0644\u0632' : 'az z' # الز
614
- '\b\u0627\u0644\u0633' : 'as s' # الس
615
- '\b\u0627\u0644\u0634' : 'ash sh' # الش
616
- '\b\u0627\u0644\u0635' : 'aş ş' # الص
617
- '\b\u0627\u0644\u0636' : 'aẕ ẕ' # الض
618
- '\b\u0627\u0644\u0637' : 'aţ ţ' # الط
619
- '\b\u0627\u0644\u0638' : 'az̧ z̧' # الظ
620
- '\b\u0627\u0644\u0644' : 'al l' # الل
621
- '\b\u0627\u0644\u0646' : 'an n' # الن
622
-
623
-
624
- # consonant characters
625
-
626
- '\u0628' : 'b' # ب
627
- '\u067E': 'p' # پ
628
- '\u062a' : 't' # ت
629
- '\u067C': 'ṯ' # ټ
630
- '\u062B': 's̄' # ث
631
- '\u062c' : 'j' # ج
632
- '\u0686': 'ch' # ‫چ‬
633
-
634
- # # The variant form ج is seen infrequently and does not have a
635
- # # single Unicode encoding.
636
- '\u0681': 'dz' # Note 2 # ‫ځ‬
637
-
638
- '\u0685': 'ts' # Note 2 # ‫څ
639
-
640
- '\u062d' : 'ḩ' # ح
641
- '\u062e' : 'kh' # خ
642
- '\u062f' : 'd' # د
643
- '\u0689' : 'ḏ' # ‫ډ‬
644
- '\u0630' : 'z̄' # ذ
645
- '\u0631' : 'r' # ر
646
- '\u0693' : 'ṟ' # ړ
647
- '\u0632' : 'z' # ز
648
- '\u0698' : 'zh' # ‫ژ‬
649
- '\u0696' : 'z͟h' # ږ
650
- '\u0633' : 's' # س
651
- '\u069A' : 's͟h' # ښ
652
- '\u0634' : 'sh' # ش
653
- '\u0635' : 'ş' # ص
654
- '\u0636' : 'ẕ' # ض
655
- '\u0637' : 'ţ' # ط
656
- '\u0638' : 'z̧' # ظ
657
- '\u0639' : '‘' # ع
658
- '\u063a' : 'gh' # غ
659
- '\u0641' : 'f' # ف
660
- '\u0642' : 'q' # ق
661
- '\u0643' : 'k' # ك
662
- '\u06A9' : 'k' # ک
663
- '\u06AF' : 'g' # ‫گ‬
664
- '\u0644' : 'l' # ل
665
- '\u0645' : 'm' # م
666
- '\u0646' : 'n' # ن
667
- '\u06BC' : 'ṉ' # ڼ
668
- '\u0647' : 'h' # ه
669
- '\u0648' : 'w' # و
670
- '\u064a' : 'y' # ي
671
- '\u0649' : 'y' # ي
672
- '\u06D0' : 'ē' # ې
673
- '\u06CD' : 'êy' # ‫ۍ‬