interscript 0.1.7 → 2.1.0b1

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 (314) 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 +116 -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 +83 -133
  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 +68 -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 +68 -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 +76 -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 +68 -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/lib/interscript/visualize.rb +61 -0
  63. data/lib/interscript/visualize/group.html.erb +59 -0
  64. data/lib/interscript/visualize/json.rb +57 -0
  65. data/lib/interscript/visualize/map.html.erb +46 -0
  66. data/lib/interscript/visualize/nodes.rb +89 -0
  67. data/requirements.txt +1 -0
  68. metadata +78 -416
  69. data/README.adoc +0 -298
  70. data/lib/g2pwrapper.py +0 -34
  71. data/lib/interscript/fs.rb +0 -69
  72. data/lib/interscript/mapping.rb +0 -142
  73. data/lib/interscript/opal.rb +0 -57
  74. data/lib/interscript/opal/entrypoint.rb +0 -12
  75. data/lib/interscript/opal/map_translate.rb +0 -7
  76. data/lib/interscript/opal/maps.js.erb +0 -10
  77. data/lib/model-7 +0 -0
  78. data/lib/tha-pt-b-7 +0 -0
  79. data/maps/acadsin-zho-Hani-Latn-2002.yaml +0 -38916
  80. data/maps/alalc-amh-Ethi-Latn-1997.yaml +0 -513
  81. data/maps/alalc-amh-Ethi-Latn-2011.yaml +0 -138
  82. data/maps/alalc-ara-Arab-Latn-1997.yaml +0 -1287
  83. data/maps/alalc-asm-Deva-Latn-1997.yaml +0 -165
  84. data/maps/alalc-asm-Deva-Latn-2012.yaml +0 -40
  85. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +0 -145
  86. data/maps/alalc-bel-Cyrl-Latn-1997.yaml +0 -129
  87. data/maps/alalc-ben-Beng-Latn-2017.yaml +0 -130
  88. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +0 -98
  89. data/maps/alalc-ell-Grek-Latn-1997.yaml +0 -628
  90. data/maps/alalc-ell-Grek-Latn-2010.yaml +0 -626
  91. data/maps/alalc-guj-Gujr-Latn-1997.yaml +0 -266
  92. data/maps/alalc-guj-Gujr-Latn-2011.yaml +0 -64
  93. data/maps/alalc-hin-Deva-Latn-1997.yaml +0 -211
  94. data/maps/alalc-hin-Deva-Latn-2011.yaml +0 -47
  95. data/maps/alalc-kat-Geok-Latn-1997.yaml +0 -111
  96. data/maps/alalc-kat-Geor-Latn-1997.yaml +0 -150
  97. data/maps/alalc-kor-Hang-Latn-1997.yaml +0 -98
  98. data/maps/alalc-mal-Mlym-Latn-1997.yaml +0 -303
  99. data/maps/alalc-mal-Mlym-Latn-2012.yaml +0 -73
  100. data/maps/alalc-mar-Deva-Latn-1997.yaml +0 -189
  101. data/maps/alalc-mar-Deva-Latn-2011.yaml +0 -45
  102. data/maps/alalc-mkd-Cyrl-Latn-1997.yaml +0 -114
  103. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +0 -103
  104. data/maps/alalc-mon-Cyrl-Latn-1997.yaml +0 -220
  105. data/maps/alalc-pan-Guru-Latn-1997.yaml +0 -256
  106. data/maps/alalc-pan-Guru-Latn-2011.yaml +0 -78
  107. data/maps/alalc-per-Arab-Latn-1997.yaml +0 -375
  108. data/maps/alalc-pli-Deva-Latn-2012.yaml +0 -144
  109. data/maps/alalc-pra-Deva-Latn-2012.yaml +0 -47
  110. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +0 -225
  111. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +0 -162
  112. data/maps/alalc-san-Deva-Latn-2012.yaml +0 -172
  113. data/maps/alalc-sin-Sinh-Latn-1997.yaml +0 -292
  114. data/maps/alalc-sin-Sinh-Latn-2011.yaml +0 -71
  115. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +0 -118
  116. data/maps/alalc-srp-Cyrl-Latn-2013.yaml +0 -135
  117. data/maps/alalc-tam-Taml-Latn-1997.yaml +0 -62
  118. data/maps/alalc-tam-Taml-Latn-2011.yaml +0 -58
  119. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +0 -145
  120. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +0 -16
  121. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +0 -283
  122. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +0 -174
  123. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +0 -169
  124. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +0 -292
  125. data/maps/bgn-kor-Hang-Latn-1943.yaml +0 -35
  126. data/maps/bgn-kor-Kore-Latn-1943.yaml +0 -31
  127. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +0 -208
  128. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +0 -208
  129. data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +0 -532
  130. data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +0 -596
  131. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +0 -108
  132. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +0 -104
  133. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +0 -188
  134. data/maps/bgnpcgn-bel-Cyrl-Latn-1979.yaml +0 -289
  135. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +0 -119
  136. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +0 -42
  137. data/maps/bgnpcgn-che-Cyrl-Latn-2008.yaml +0 -184
  138. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +0 -705
  139. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +0 -23
  140. data/maps/bgnpcgn-fas-Arab-Latn-1956.yaml +0 -96
  141. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +0 -257
  142. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +0 -131
  143. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +0 -42
  144. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +0 -253
  145. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +0 -48
  146. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +0 -48
  147. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +0 -163
  148. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +0 -190
  149. data/maps/bgnpcgn-mon-Cyrl-Latn-1964.yaml +0 -223
  150. data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +0 -230
  151. data/maps/bgnpcgn-per-Arab-Latn-1958.yaml +0 -336
  152. data/maps/bgnpcgn-prs-Arab-Latn-2007.yaml +0 -639
  153. data/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.yaml +0 -459
  154. data/maps/bgnpcgn-rue-Cyrl-Latn-2016.yaml +0 -168
  155. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +0 -318
  156. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +0 -170
  157. data/maps/bgnpcgn-tat-Cyrl-Latn-2007.yaml +0 -220
  158. data/maps/bgnpcgn-tgk-Cyrl-Latn-1994.yaml +0 -240
  159. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +0 -166
  160. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +0 -119
  161. data/maps/bgnpcgn-uzb-Cyrl-Latn-1979.yaml +0 -127
  162. data/maps/bgnpcgn-uzb-Cyrl-Latn-2000.yaml +0 -82
  163. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +0 -7456
  164. data/maps/bis-asm-Beng-Latn-13194-1991.yaml +0 -159
  165. data/maps/bis-ben-Beng-Latn-13194-1991.yaml +0 -156
  166. data/maps/bis-dev-Deva-Latn-13194-1991.yaml +0 -184
  167. data/maps/bis-guj-Gujr-Latn-13194-1991.yaml +0 -181
  168. data/maps/bis-knd-Knda-Latn-13194-1991.yaml +0 -173
  169. data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +0 -176
  170. data/maps/bis-ori-Orya-Latn-13194-1991.yaml +0 -160
  171. data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +0 -175
  172. data/maps/bis-tel-Telu-Latn-13194-1991.yaml +0 -170
  173. data/maps/bis-tml-Taml-Latn-13194-1991.yaml +0 -155
  174. data/maps/by-bel-Cyrl-Latn-1998.yaml +0 -172
  175. data/maps/by-bel-Cyrl-Latn-2007.yaml +0 -115
  176. data/maps/din-grc-Grek-Latn-31634-2011-t1.yaml +0 -899
  177. data/maps/din-hin-Deva-Latn-33904-2018.yaml +0 -100
  178. data/maps/din-kat-Geor-Latn-32707-2010.yaml +0 -145
  179. data/maps/din-mar-Deva-Latn-33904-2018.yaml +0 -84
  180. data/maps/din-nep-Deva-Latn-33904-2018.yaml +0 -119
  181. data/maps/din-pli-Deva-Latn-33904-2018.yaml +0 -75
  182. data/maps/din-pra-Deva-Latn-33904-2018.yaml +0 -63
  183. data/maps/din-san-Deva-Latn-33904-2018.yaml +0 -338
  184. data/maps/din-tam-Taml-Latn-33903-2016.yaml +0 -213
  185. data/maps/dos-nep-Deva-Latn-1997.yaml +0 -47
  186. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +0 -684
  187. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +0 -680
  188. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +0 -19
  189. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +0 -31
  190. data/maps/ggg-kat-Geor-Latn-2002.yaml +0 -92
  191. data/maps/gki-bel-Cyrl-Latn-1992.yaml +0 -33
  192. data/maps/gki-bel-Cyrl-Latn-2000.yaml +0 -201
  193. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.yaml +0 -190
  194. data/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.yaml +0 -157
  195. data/maps/hk-yue-Hani-Latn-1888.yaml +0 -38497
  196. data/maps/icao-bel-Cyrl-Latn-9303.yaml +0 -136
  197. data/maps/icao-bul-Cyrl-Latn-9303.yaml +0 -118
  198. data/maps/icao-fas-Arab-Latn-9303.yaml +0 -103
  199. data/maps/icao-heb-Hebr-Latn-9303.yaml +0 -151
  200. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +0 -117
  201. data/maps/icao-rus-Cyrl-Latn-9303.yaml +0 -117
  202. data/maps/icao-srp-Cyrl-Latn-9303.yaml +0 -117
  203. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +0 -119
  204. data/maps/iso-ara-Arab-Latn-233-1984.yaml +0 -323
  205. data/maps/iso-asm-Beng-Latn-15919-2001.yaml +0 -75
  206. data/maps/iso-ben-Beng-Latn-15919-2001.yaml +0 -175
  207. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +0 -613
  208. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +0 -44
  209. data/maps/iso-guj-Gujr-Latn-15919-2001.yaml +0 -220
  210. data/maps/iso-hin-Deva-Latn-15919-2001.yaml +0 -87
  211. data/maps/iso-inc-Deva-Latn-15919-2001.yaml +0 -61
  212. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +0 -66
  213. data/maps/iso-kan-Knda-Latn-15919-2001.yaml +0 -220
  214. data/maps/iso-kat-Geor-Latn-9984-1996.yaml +0 -145
  215. data/maps/iso-kor-Hang-Latn-1996-method1.yaml +0 -240
  216. data/maps/iso-kor-Hang-Latn-1996-method2.yaml +0 -226
  217. data/maps/iso-mal-Mlym-Latn-15919-2001.yaml +0 -281
  218. data/maps/iso-mar-Deva-Latn-15919-2001.yaml +0 -75
  219. data/maps/iso-nep-Deva-Latn-15919-2001.yaml +0 -87
  220. data/maps/iso-ori-Orya-Latn-15919-2001.yaml +0 -193
  221. data/maps/iso-pan-Guru-Latn-15919-2001.yaml +0 -222
  222. data/maps/iso-pli-Beng-Latn-15919-2001.yaml +0 -73
  223. data/maps/iso-pli-Deva-Latn-15919-2001.yaml +0 -74
  224. data/maps/iso-pli-Sinh-Latn-15919-2001.yaml +0 -219
  225. data/maps/iso-pli-Thai-Latn-15919-2001.yaml +0 -55
  226. data/maps/iso-pra-Deva-Latn-15919-2001.yaml +0 -59
  227. data/maps/iso-prs-Arab-Latn-233-3-1999.yaml +0 -366
  228. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +0 -271
  229. data/maps/iso-san-Deva-Latn-15919-2001.yaml +0 -220
  230. data/maps/iso-tam-Taml-Latn-15919-2001.yaml +0 -159
  231. data/maps/iso-tel-Telu-Latn-15919-2001.yaml +0 -220
  232. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +0 -109
  233. data/maps/kp-kor-Hang-Latn-2002.yaml +0 -909
  234. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +0 -44820
  235. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +0 -411
  236. data/maps/mns-mon-Cyrl-Latn-5217-2012.yaml +0 -163
  237. data/maps/mns-mon-Latn-Cyrl-5217-2012.yaml +0 -200
  238. data/maps/moct-kor-Hang-Latn-2000.yaml +0 -807
  239. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +0 -541
  240. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +0 -225
  241. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +0 -63
  242. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +0 -109
  243. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +0 -37
  244. data/maps/odni-ara-Arab-Latn-2015.yaml +0 -425
  245. data/maps/odni-aze-Cyrl-Latn-2015.yaml +0 -144
  246. data/maps/odni-bel-Cyrl-Latn-2015.yaml +0 -148
  247. data/maps/odni-bul-Cyrl-Latn-2015.yaml +0 -96
  248. data/maps/odni-che-Cyrl-Latn-2015.yaml +0 -169
  249. data/maps/odni-fas-Arab-Latn-2015.yaml +0 -406
  250. data/maps/odni-hin-Deva-Latn-2015.yaml +0 -258
  251. data/maps/odni-kat-Geor-Latn-2015.yaml +0 -87
  252. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +0 -148
  253. data/maps/odni-kir-Cyrl-Latn-2015.yaml +0 -136
  254. data/maps/odni-kor-Hang-Latn-2015.yaml +0 -375
  255. data/maps/odni-mkd-Cyrl-Latn-2015.yaml +0 -122
  256. data/maps/odni-per-Arab-Latn-2015.yaml +0 -228
  257. data/maps/odni-rus-Cyrl-Latn-2015.yaml +0 -77
  258. data/maps/odni-srp-Cyrl-Latn-2015.yaml +0 -129
  259. data/maps/odni-tat-Cyrl-Latn-2015.yaml +0 -142
  260. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +0 -148
  261. data/maps/odni-uig-Cyrl-Latn-2015.yaml +0 -138
  262. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +0 -157
  263. data/maps/odni-urd-Arab-Latn-2015.yaml +0 -221
  264. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +0 -166
  265. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +0 -90
  266. data/maps/royin-tha-Thai-Latn-1968.yaml +0 -183
  267. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +0 -180
  268. data/maps/royin-tha-Thai-Latn-1999.yaml +0 -80
  269. data/maps/sac-zho-Hans-Latn-1979.yaml +0 -24763
  270. data/maps/sasm-mon-Mong-Latn-general-1978.yaml +0 -389
  271. data/maps/sasm-mon-Mong-Latn-phonetic-1978.yaml +0 -354
  272. data/maps/ses-ara-Arab-Latn-1930.yaml +0 -283
  273. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +0 -222
  274. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +0 -197
  275. data/maps/ua-ukr-Cyrl-Latn-2007.yaml +0 -75
  276. data/maps/ua-ukr-Cyrl-Latn-2010.yaml +0 -192
  277. data/maps/un-amh-Ethi-Latn-2016.yaml +0 -602
  278. data/maps/un-ara-Arab-Latn-1971.yaml +0 -139
  279. data/maps/un-ara-Arab-Latn-1972.yaml +0 -159
  280. data/maps/un-ara-Arab-Latn-2017.yaml +0 -420
  281. data/maps/un-bel-Cyrl-Latn-2007.yaml +0 -114
  282. data/maps/un-ben-Beng-Latn-2016.yaml +0 -534
  283. data/maps/un-ell-Grek-Latn-1987-phonetic.yaml +0 -780
  284. data/maps/un-ell-Grek-Latn-1987-tl.yaml +0 -31
  285. data/maps/un-ell-Grek-Latn-1987-ts.yaml +0 -19
  286. data/maps/un-hin-Deva-Latn-2016.yaml +0 -222
  287. data/maps/un-mar-Deva-Latn-2016.yaml +0 -91
  288. data/maps/un-mon-Mong-Latn-general-2013.yaml +0 -264
  289. data/maps/un-mon-Mong-Latn-phonetic-2013.yaml +0 -264
  290. data/maps/un-nep-Deva-Latn-1972.yaml +0 -350
  291. data/maps/un-nep-Deva-Latn-2013.yaml +0 -74
  292. data/maps/un-rus-Cyrl-Latn-1987.yaml +0 -166
  293. data/maps/un-ukr-Cyrl-Latn-1998.yaml +0 -53
  294. data/maps/un-ukr-Cyrl-Latn-2012.yaml +0 -162
  295. data/maps/var-hin-Deva-Latn-hunterian-1872.yaml +0 -221
  296. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +0 -406
  297. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +0 -386
  298. data/maps/var-kor-Hang-Hang-jamo.yaml +0 -11193
  299. data/maps/var-kor-Hang-Latn-mr-1939.yaml +0 -1054
  300. data/maps/var-kor-Kore-Hang-2013.yaml +0 -59754
  301. data/maps/var-kor-Kore-Latn-mr-1939.yaml +0 -36
  302. data/maps/var-mar-Deva-Latn-hunterian-1872.yaml +0 -43
  303. data/maps/var-mon-Mong-Latn-1930.yaml +0 -102
  304. data/maps/var-mon-Mong-Latn-lessing.yaml +0 -272
  305. data/maps/var-mon-Mong-Latn-vpmc.yaml +0 -274
  306. data/maps/var-pra-Deva-Latn-iast-1912.yaml +0 -30
  307. data/maps/var-san-Deva-Latn-iast-1912.yaml +0 -149
  308. data/maps/var-tha-Thai-Thai-phonemic.yaml +0 -59
  309. data/maps/var-tha-Thai-Zsym-ipa.yaml +0 -301
  310. data/maps/var-zho-Hani-Latn-wd-1979.yaml +0 -38912
  311. data/spec/interscript/filenames_spec.rb +0 -384
  312. data/spec/interscript/mapping_spec.rb +0 -42
  313. data/spec/interscript_spec.rb +0 -29
  314. data/spec/spec_helper.rb +0 -3
@@ -1,406 +0,0 @@
1
- ---
2
- authority_id: odni
3
- id: 2015
4
- language: iso-639-2:fas
5
- source_script: Arab
6
- destination_script: Latn
7
- name: ODNI Persian Farsi Dari Personal Names 2015 System, ICS-630-01 Annex J
8
- url: https://github.com/interscript/ics-630-01/blob/master/reference-docs/ANNEX%20J%20-%20Persian-Farsi_Dari_Personal_Names_FLTS_2018_Revision%20(U).pdf
9
- creation_date: 2015
10
- confirmation_date: 2015-11
11
- description: |
12
- This system is the Intelligence Community (IC) standard for
13
- the transliteration of Persian (Farsi)
14
- and Dari names that is applied to all final written reports
15
- and products for IC consumers. It is not
16
- intended to eliminate variations of a name that can
17
- contribute forensic information. Rather, it is
18
- to provide an IC standard Romanized (English)
19
- transliteration from Persian (Farsi) and Dari that
20
- can then be linked to forensic information in ways that
21
- will help identify the referent of the
22
- name.
23
-
24
- In cases where an individual’s name has already been
25
- transliterated in a variant spelling, the IC
26
- Standard spelling should appear first, followed by the
27
- variant spelling(s) in parentheses at the
28
- first usage. In addition, if the original Perso-Arabic
29
- script spelling is known, that spelling should
30
- also appear in parentheses following the name, if possible,
31
- following best practices of the issuing
32
- organization and taking into consideration information
33
- system capabilities. This convention is
34
- designed to ensure that vital forensic information is not
35
- lost while maintaining consistency.
36
-
37
- For names of individuals who are not part of the Persian-(
38
- Farsi) or Dari-speaking community,
39
- but whose names are encountered in Farsi or Dari, use the
40
- relevant IC transliteration standard for
41
- names from that language (e.g., Mikhail, Yitzhak, Abu-
42
- Murtada). Spell names of individuals
43
- from languages that are written in Roman letters as they
44
- are spelled in those languages (e.g.,
45
- George Clooney, Jorge Garcia, Georges Pompidou).
46
- In the case of active senior government officials in the
47
- online CIA World Factbook and the
48
- online directory of Chiefs of State and Cabinet Members of
49
- Foreign Governments, the spellings
50
- given in these online reference works should be used in
51
- place of the IC Standard, with the IC
52
- Standard included as a variant in parentheses at the first
53
- usage. For any individual who has at one
54
- time been listed in the Factbook or Chiefs of State
55
- directory but who no longer appears in those
56
- resources (i.e., is no longer a government official), the
57
- IC Standard spelling should appear first,
58
- with the spelling, if known, as it previously appeared in
59
- those resources listed within parentheses
60
- at the first usage (e.g., former president Mahmud
61
- Ahmadinezhad (Ahmadi-Nejad).
62
-
63
- The primary goal is to produce a consistent Romanized
64
- transcription of names that is specifically
65
- readable to the English-speaking non-specialist. The system
66
- uses the 26 letters of the standard
67
- (English) Roman alphabet plus the apostrophe and hyphen.
68
- Some ambiguities in the Romanized
69
- form will occur without the use of diacritics. However,
70
- within the context of a report, where
71
- additional information about the individual is provided,
72
- the referent will be clearly identified.
73
- This system will be used in conjunction with online tools,
74
- name dictionaries, and lists containing
75
- conventional spellings of names of well-known individuals.
76
-
77
- notes:
78
- - |
79
- Alef maqsura (final yeh pronounced as a long “a”) should
80
- be written “a” as in “Musa.”
81
-
82
- - |
83
- Digraphs: No distinction is drawn between digraphs such
84
- as sh and single contiguous letters
85
- (e.g., s followed by h).
86
-
87
- - |
88
- Long/short vowels: There is no distinction made between
89
- long and short a. E.g., Farzad (the
90
- first a is short, the second long).
91
-
92
- - |
93
- Diphthongs: The diphthong such as in the name Hosein is
94
- written ei. Following the
95
- predominant lack of pronunciation of the ow diphthong in
96
- Farsi, this diphthong will not be
97
- represented (Khosro, not Khosrow).
98
-
99
- - |
100
- Apostrophe: The apostrophe is used in three cases: 1) to
101
- represent a name-internal or terminal
102
- hamzeh or ein (Mo’men, Ghane’), 2) to represent the first
103
- yeh (ی (in a double yeh (یی (
104
- construction (since رضایی is simply an orthographic variant
105
- of رضائی – both are rendered
106
- Reza’i), and 3) to represent the alef (ا (in the special
107
- case of a name ending in ای ه) e.g.,
108
- Badreh’i, Ganjeh’i). Name-initially, however, neither
109
- hamzeh nor ein are indicated in
110
- transliteration (Abdorrahman, not 'Abdorrahman).
111
-
112
- - |
113
- Double consonants: Double consonants represented by the
114
- tashdid are shown by doubling the
115
- Roman letter: Mo'azzami, Tavakkoli, Sajjad. Exceptions: Ein
116
- and consonants represented by
117
- Roman digraphs (e.g., sh, ch) are not doubled (Mobasher,
118
- not Mobashsher). Double letters
119
- are only used for tashdid (Hosein, not Hossein) or to
120
- reflect “sun-letter” assimilation (see
121
- below). Special care should be taken when possible to
122
- discriminate between doubled and
123
- non-doubled letters in names that are otherwise
124
- indistinguishable in their transliterated forms:
125
- Hasan (حسن (vs. Hassan (حسان(
126
-
127
- - |
128
- Hyphens: A hyphen will be used for compound
129
- last names to connect major name elements (e.g., Raja’i-
130
- Khorasani, Tabataba’i-Shirazi, Soleimani-Meimandi). No
131
- spaces are to be used for last names to reduce ambiguity (
132
- with the exception of certain Arabic-origin constructions
133
- as specified below). Hyphens are not used to attach minor
134
- elements and suffixes/prefixes, or to show ezafeh
135
- constructions in or between names (Shahrbabak, not Shahr-e
136
- Babak). It should be understood that when a full compound
137
- last name is available, the second major element is
138
- typically omitted for normal use, while the first major
139
- element of the last name is preferred. It is thus
140
- recommended as a best practice for reporting that both of
141
- these names, if known, be included at the first instance,
142
- and only the family name be used thereafter in the report (
143
- unless it is known that a specific individual is commonly
144
- known otherwise). E.g., “Mohammad Mahmudi-Tehrani (
145
- hereafter Mahmudi).”
146
-
147
- - |
148
- Compound first names will be written as distinct words:
149
- Ali Reza (not Alireza or Ali-Reza);
150
- Mohammad Hosein (not Mohammadhosein or Mohammad-Hosein),
151
- with the exception of cases identified below.
152
-
153
- - |
154
- Arabic-origin names that incorporate the word “Allah” are
155
- transliterated as one word, with the letter ‘o’ replacing the
156
- alef in Allah (Azizollah, Rahimollah).
157
-
158
- - |
159
- Name-internal Arabic definite article "al" (‫)ال‬: Common
160
- in many names borrowed
161
- from Arabic, the transliteration should follow the Arabic
162
- rules for “sun letter” assimilation in spoken form and
163
- reflect the nominative case. That is: Abdorrahman, not Abd-
164
- al-Rahman. (The Arabic sun letters are: ‫ت‬،‫ث‬،‫د‬،‫ذ‬،
165
- ‫ر‬، ‫ز‬،‫س‬،‫ش‬،‫ص‬،‫ض‬،‫ط‬،‫ظ‬،‫ل‬،‫ن‬ . These correspond with
166
- d, l, n, r, s, sh, t, and z.) Note that the moon letters (
167
- i.e., all other Arabic letters) are not assimilated (e.g.,
168
- Abdolhasan, Abolfazl). Note also that the “Abdollah” and
169
- “Abdol + attribute of Allah” names are written as a single
170
- word, as are other names that contain the definite article:
171
- Shamsoddin (not Shams-al-Din), Nezamoddin, etc.
172
-
173
- - |
174
- Name-initial Arabic definite article "al" (‫)ال‬: For
175
- Arabic-origin names starting with the definite article “al” (‫)
176
- ال‬, follow the Arabic standard of al-Sisi (‫)الصیصی‬ (not
177
- Alsisi or Assisi) and forego sun-letter assimilation.
178
-
179
- - |
180
- Arabic "family marker" of Al (‫)آل‬: For Arabic-origin
181
- names starting with the "family marker" of Al (‫)آل‬,
182
- follow the Arabic standard of Al Davud (‫داود‬ ‫)آل‬ (not
183
- Aldavud or Aledavud).
184
-
185
- - |
186
- Kunyas: In the rather rare case where
187
- a Persian uses a kunya (a name for an adult normally
188
- derived from his or her eldest child, and sometimes
189
- employed as a nom de guerre), this name will be rendered
190
- with a space separating the two elements (Abu Hosein, Abu
191
- Ghasem). Note that this does not apply when the person's
192
- given or family name was derived from a predecessor's
193
- kunya. In these cases, the leading element should be
194
- treated as a prefix as indicated below (Abuhosein[i],
195
- Abughasem[i]).
196
-
197
- - |
198
- Persian names of non-Persian origin that are
199
- no longer considered foreign by Farsi speakers (commonly of
200
- Arabic or Hebrew origin) follow this IC transliteration
201
- standard for Persian. E.g., Yusef (not Joseph), Davud (not
202
- David), Reza (not Rida), Abutorab (not Abu-Turab),
203
- Abolfazl (not Abu-al-Fadl). However, in the uncommon event
204
- the name of an Iranian with a non-Persian name appears in
205
- Farsi (possibly as a result of mixed parentage), it is
206
- spelled according to the standard Western tradition or the
207
- appropriate IC standard: James, Georges, Pedro, Jiang.
208
-
209
- tests:
210
- - source: مُوسَى
211
- expected: musa
212
-
213
- - source: مُؤمِن
214
- expected: mo’men
215
-
216
- - source: رِضايي
217
- expected: reza’i
218
-
219
- - source: مُبَشِّر
220
- expected: mobasher
221
-
222
- - source: حَسَّان
223
- expected: hassan
224
-
225
- - source: حَسَن
226
- expected: hasan
227
-
228
- - source: صَفَّار
229
- expected: saffar
230
-
231
- - source: صَفَر
232
- expected: safar
233
-
234
- map:
235
- characters:
236
-
237
-
238
-
239
- # special rules
240
-
241
- '\s(?=\u0622\u0628\u064E\u0627\u062F)': '' # space followed by abad is removed
242
- '\ufdf2': 'Allah' # See note 5
243
- '\s\u0627\u0644\u0644\u0651\u064e\u0647': 'ollah' # NOTE 9
244
-
245
- '\u0652' : '' # ْ sokoon
246
- '\u0659': 'ê'
247
-
248
- '\u064e\u064a\u0652' : 'ay' # ـَيْ
249
- '\u0649\u0670': 'á' # ىٰ
250
- '\u0674': '-e' # ٴ
251
- '\u0654': '-e' # ٔ
252
- # - '-ye'
253
-
254
-
255
- # ta' marboota
256
- '\u0629' : 'eh'
257
-
258
-
259
-
260
- '\u0626' : '’' # ئ
261
- '\u0624' : '’' # ؤ
262
- '\u0623' : '' # أ
263
- '\u0625': '' # إ
264
-
265
- # See note B
266
- '\b\u0627\u0644' : 'al ' # ال
267
- '\b\u0622\\u0644' : 'Al ' # ‫آل‬
268
- # '\uFE8E' : '' # ﺎ
269
-
270
- # Sun letters
271
- '\b\u0627\u0644\u062a' : 'at t' # الت
272
- '\b\u0627\u0644\u062b' : 'as s' # الث
273
- '\b\u0627\u0644\u062f' : 'ad d' # الد
274
- '\b\u0627\u0644\u0630' : 'az z' # الذ
275
- '\b\u0627\u0644\u0631' : 'ar r' # الر
276
- '\b\u0627\u0644\u0632' : 'az z' # الز
277
- '\b\u0627\u0644\u0633' : 'as s' # الس
278
- '\b\u0627\u0644\u0634' : 'ash sh' # الش
279
- '\b\u0627\u0644\u0635' : 'as s' # الص
280
- '\b\u0627\u0644\u0636' : 'az z' # الض
281
- '\b\u0627\u0644\u0637' : 'at t' # الط
282
- '\b\u0627\u0644\u0638' : 'az z' # الظ
283
- '\b\u0627\u0644\u0644' : 'al l' # الل
284
- '\b\u0627\u0644\u0646' : 'an n' # الن
285
-
286
- # Farsi Vowel (Pointing)
287
- '\u0622' : 'a' # آ alef maddeh
288
- '\u064e' : 'a' # َ fatha
289
- '(?<=\u064e)\u0627' : '' # ا
290
- '(?<!\b)\u0627' : 'a' # ا
291
- '\b\u0627\u064e' : 'a' # ا initial followed by fatha
292
- '\b\u0627\u064f' : 'o' # ا initial followed by damma
293
- '\b\u0627\u0650' : 'e' # ِ ا initial followed by kasra
294
-
295
- '\u064f' : 'o' # damma
296
- '\u064f\u0648' : 'u' # ـُو damma followed by و
297
- # '\u064e\u0648' : 'ow' # ـَو
298
- # '\u064e\u0648\u0652' : 'aw' # ـَوْ
299
-
300
-
301
- '\u0650' : 'e' # kasra
302
- '\u0650\u064a' : 'i' # ـِي kasra followed by ي
303
- '\u0650\u06cc' : 'i' # ـِي kasra followed by ي
304
- '\u0650\u064a\u0651\u064e' : 'iy' # ـِيَّ
305
- '\u0650\u06cc\u0651\u064e' : 'iy' # ـِيَّ
306
- '\u0650\u064a(?=\u064e|u064f)' : 'iy' # ـِي kasra followed by ي
307
- # '\u064e\u064a' : 'aī' # ـَي
308
- # '\u064e\u06cc' : 'aī' # ـَي
309
- # '\u064e\u0649' : 'ay' # ـَى fatha followed by ى which is ا not ي
310
-
311
- # additional symbols
312
-
313
- # shadda
314
-
315
- '\u0628\u0651' : 'bb' # ب
316
- '\u062a\u0651' : 'tt' # ت
317
- '\u062b\u0651' : 'ss' # ث
318
- '\u062c\u0651' : 'jj' # ج
319
- '\u062d\u0651' : 'hh' # ح
320
- '\u062e\u0651' : 'kh' # خ
321
- '\u062f\u0651' : 'dd' # د
322
- '\u0630\u0651' : 'zz' # ذ
323
- '\u0631\u0651' : 'rr' # ر
324
- '\u0632\u0651' : 'zz' # ز
325
- '\u0633\u0651' : 'ss' # س
326
- '\u0634\u0651' : 'sh' # ش
327
- '\u0635\u0651' : 'ss' # ص
328
- '\u0636\u0651' : 'zz' # ض
329
- '\u0637\u0651' : 'tt' # ط
330
- '\u0638\u0651' : 'zz' # ظ
331
- '\u063a\u0651' : 'gh' # غ
332
- '\u0641\u0651' : 'ff' # ف
333
- '\u0642\u0651' : 'gh' # ق
334
- '\u0643\u0651' : 'kk' # ك
335
- '\u0644\u0651' : 'll' # ل
336
- '\u0645\u0651' : 'mm' # م
337
- '\u0646\u0651' : 'nn' # ن
338
- '\u0647\u0651' : 'hh' # ه
339
- '\u0648\u0651' : 'vv' # و
340
- '\u064a\u0651' : 'yy' # ي
341
-
342
- '(?<=\b)\u0621': '' # ء
343
- '\u0621': '’' # ء
344
-
345
- # FROM NOTES
346
-
347
- '\u064e\u0649' : 'a' # ـَى fatha followed by ى which is ا not ي
348
- '\u0649' : 'a' # ى alef maqsura NOTE-1
349
-
350
- '\u064a\u064a' : '’i' # NOTE 4 (2)
351
- '\u06cc\u06cc' : '’i'
352
-
353
- '\u0627\u064a\b' : '’i' # NOTE 4 (3)
354
- '\u0627\u06cc\b' : '’i'
355
-
356
- # Farsi consonant characters
357
-
358
- '\u0628' : 'b' # ب
359
- '\u067E': 'p' # پ
360
- '\u062a' : 't' # ت
361
- # '\u067C': 'ṯ' # ټ
362
- '\u062B': 's' # ث
363
- '\u062c' : 'j' # ج
364
- '\u0686': 'ch' # ‫چ‬
365
-
366
- # # The variant form ج is seen infrequently and does not have a
367
- # # single Unicode encoding.
368
- # '\u0681': 'dz' # Note 2 # ‫ځ‬
369
-
370
- # '\u0685': 'ts' # Note 2 # ‫څ
371
-
372
- '\u062d' : 'h' # ح
373
- '\u062e' : 'kh' # خ
374
- '\u062f' : 'd' # د
375
- # '\u0689' : 'ḏ' # ‫ډ‬
376
- '\u0630' : 'z' # ذ
377
- '\u0631' : 'r' # ر
378
- # '\u0693' : 'ṟ' # ړ
379
- '\u0632' : 'z' # ز
380
- '\u0698' : 'zh' # ‫ژ‬
381
- # '\u0696' : 'z͟h' # ږ
382
- '\u0633' : 's' # س
383
- # '\u069A' : 's͟h' # ښ
384
- '\u0634' : 'sh' # ش
385
- '\u0635' : 's' # ص
386
- '\u0636' : 'z' # ض
387
- '\u0637' : 't' # ط
388
- '\u0638' : 'z' # ظ
389
- '\u0639' : '‘' # ع
390
- '(?<=\b)\u0639' : '' # ع not represented initially
391
- '\u063a' : 'gh' # غ
392
- '\u0641' : 'f' # ف
393
- '\u0642' : 'gh' # ق
394
- '\u0643' : 'k' # ك
395
- # '\u06A9' : 'k' # ک
396
- '\u06AF' : 'g' # ‫گ‬
397
- '\u0644' : 'l' # ل
398
- '\u0645' : 'm' # م
399
- '\u0646' : 'n' # ن
400
- # '\u06BC' : 'ṉ' # ڼ
401
- '\u0647' : 'h' # ه
402
- '\u0648' : 'v' # و
403
- '\u064a' : 'y' # ي
404
- '\u0649' : 'y' # ي
405
- '\u06D0' : 'ē' # ې
406
- '\u06CD' : 'êy' # ‫ۍ‬
@@ -1,258 +0,0 @@
1
- ---
2
- authority_id: odni
3
- id: 2015
4
- language: iso-639-2:hin
5
- source_script: Deva
6
- destination_script: Latn
7
- name: Office of the Director Of National Intelligence Hindi Urdu Personal Names 2015 System, ICS-630-01 Annex F
8
- #url:
9
- creation_date: 2015
10
- confirmation_date: 2015
11
- description: |
12
- This system is the Intelligence Community (IC) standard for the transliteration of names
13
- from Hindi and Urdu that will be applied to all final written reports and products for IC
14
- consumers. It is not intended to eliminate variations of a name that can contribute
15
- forensic information. Rather, it is to provide an IC standard Romanized (English)
16
- transliteration from standard Hindi and Urdu that can then be linked to forensic
17
- information in ways that will help identify the referent of the name.
18
-
19
- There are typically a number of ways that names can be Romanized from either
20
- Devanagari (Hindi) or modified Arabic (Urdu) scripts. Ambiguities can result from the
21
- Romanization of Hindi and Urdu names for several reasons, including the fact that some
22
- sounds in South Asian languages (e.g., retroflex consonants, voiced aspirates) have no
23
- equivalent in English or other European languages. In the case of Urdu, as in the original
24
- Arabic source of many Islamic names, short vowel markings, double consonant marks
25
- and other diacritics that would clearly distinguish the name are almost always omitted
26
- from standard written texts. And many Islamic names of Arabic or Persian origin reflect
27
- spelling distinctions from those languages that are lost in modern Urdu pronunciation
28
- (e.g., three distinct Arabic letters all represent the identical sound [s] for Urdu speakers);
29
- transliterations might either maintain those spelling distinctions or ignore them entirely.
30
- And, as in the Arabic source, names containing the Arabic definite article ‘al’ (‘ul’) show
31
- anticipatory assimilation in pronunciation (e.g., Shams al Din > Shamsuddin);
32
- transliterations may either reflect spelling or pronunciation in such cases.
33
-
34
- Because Hindi and Urdu overlap so extensively, it is desirable to correlate Hindi and
35
- Urdu transliterations as much as possible. In the area of names, this can become
36
- problematic when the Urdu spelling accurately reflects original Arabic spelling while the
37
- Hindi spelling was phonetically-based, in essence, already a transliteration. This would
38
- argue for ignoring Arabic/Urdu spelling distinctions not reflected in pronunciation in
39
- either Urdu or Hindi (e.g., letter sin versus letter sad) while maintaining Arabic/Urdu
40
- spelling distinctions like Hindi also maintains (e.g., qaf as in Qutubbin versus kaf)).
41
- However, this is not always possible (see Hindi va versus Urdu wau).
42
-
43
- In cases where an individual’s name has already been transliterated, that is to be indicated
44
- – as found – in parentheses immediately following its rendition in the transliteration
45
- standard (e.g., Muhammad Khulud (Mohamed Khulood)). In addition, if the original
46
- Devanagari or Arabic-script spelling is known, that spelling should also appear in
47
- parentheses following the name, if possible, following best practices of the issuing
48
- organization and taking into consideration information system capabilities. This
49
- convention is designed to ensure that vital forensic information is not lost.
50
-
51
- For names of persons who are known to not be part of the Hindi- or Urdu-speaking
52
- community, use the relevant IC transliteration standard for names from that language
53
- (e.g., Mikhail, Yitzhak). A translator’s note may be used to clarify the known origin of
54
- the person. Spell names of individuals from languages that are written in Roman letters as
55
- they are spelled in those languages (e.g., George Clooney, Jorge Garcia, Georges
56
- Pompidou).
57
-
58
- In the case of active senior government officials in the on-line CIA World Factbook and
59
- the on-line directory of Chiefs of State and Cabinet Members of Foreign Governments,
60
- the spellings given in these on-line reference works should be used in place of the IC
61
- Standard. For any individual who has at one time been listed in the Factbook or Chiefs of
62
- State directory but who no longer appears in those resources (i.e. is no longer a
63
- government official), the IC Standard spelling should appear first, with the spelling, if
64
- known, as it previously appeared in those resources listed within parentheses at the first
65
- usage.
66
-
67
- The primary goal of this system is to produce a consistent Romanized transcription of the
68
- name that is readable to the non-specialist. The system uses the 26 letters of the standard
69
- (English) Roman alphabet. Some ambiguities in the Romanized form will occur without
70
- the use of diacritics. However, within the context of a report, where additional
71
- information about the individual is provided, the referent will be clearly identified.
72
- Additionally, this system will be used in conjunction with on-line tools, name dictionaries
73
- and lists containing conventional spellings of names of well-known individuals
74
-
75
- notes:
76
-
77
- - |
78
- Long/Short Vowels: Long and short vowels are not distinguished in the system:
79
- The borrowed Arabic name Samir could represent two distinct names, one with a
80
- long /a/ (Saamir) and one with a long /i/ (Samiir). One solution would be to use
81
- /ee/ to stand for the long /i/, as is often done (Sameer). The IC Standard will not
82
- distinguish between these.
83
-
84
- - |
85
- No distinction is made between: retroflex and non-retroflex consonants; and
86
- nasalized vowels and vowels followed by /n/.
87
- - |
88
- No distinction is made between the several Arabic letters with the same phonetic
89
- value in Urdu: e.g., letters sin/svad, zal/ze/zoe.
90
- - |
91
- A distinction is drawn between Urdu letters qaf and kaf (and correspondingly,
92
- Hindi qa and ka).
93
- - |
94
- A distinction is drawn between aspirated (e.g., /d/) and nonaspirated consonants
95
- (e.g., /dh/), with the exception of ch/chh, both represented by /ch/.
96
- - |
97
- Double consonants: Double consonants represented by the tashdid (shaddah) are
98
- shown in most cases (e.g., Hassan, Muhammad). Exceptions: consonants
99
- represented by digraphs are not doubled (e.g., Mubashir [not Mubashshir]).
100
- - |
101
- Hamzah (glottal stop) and ayn: Unlike in the Arabic IC Standard, these are not
102
- represented in the IC standard.
103
- - |
104
- Digraphs: No distinction is made between digraphs such as /sh/ and single
105
- contiguous letters such as /s/ followed by /h/.
106
- - |
107
- Arabic definite article “al” (‘the’): Shows sun letter assimilation in the
108
- Romanized form (e.g., Abdur Rahman rather than Abdal Rahman, rather than
109
- Arabic IC standard 'Abd al-Rahman).
110
- - |
111
- Special Rules
112
- - |
113
- Hyphens: Hyphens (-) are NOT used to connect name elements within a name:
114
- Abdur Rahman. The single exception to this is the izafat (i.e., linking vowel in
115
- noun-link-modifier construction of Persian origin), which does show a hyphen
116
- before the /e/ and a following space: Koh-e Nur (‘mountain of light’), “Jaish-e
117
- xx” (‘Army of xx’ construction).
118
- - |
119
- Names incorporating “din” are written as one unit: Azermuddin, Badruddin,
120
- Faizuddin, Salahuddin.
121
- - |
122
- Names that incorporate Allah as part of the name show the Arabic grammatical
123
- marker /u/ rather than the /a/ of Allah: Abdullah (not Abdallah).
124
- - |
125
- Inherent short vowel /a/ in Devanagari is represented with an /a/ in Roman. Final
126
- consonants are assumed not to have a short /a/ (e.g., masc. name Ram Lal, not
127
- Rama Lala).
128
- - |
129
- As a general rule, Devanagari va is transcribed as a /v/: Vijay, Vishal, etc.
130
- Exception: /sw/ combination: Saraswati, Krishnaswami. Urdu wau, however, is
131
- transcribed as /w/: Wasim, Walid.
132
-
133
- tests:
134
- - source: "हसन मोहम्मद"
135
- expected: "hsn mohmmd"
136
- - source: "विशाल ठाकुर"
137
- expected: "vishal thakur"
138
- - source: "अमिताभ जैन"
139
- expected: "amitabh jain"
140
- - source: "आकाङ्क्षा बच्चन"
141
- expected: "akankshaa bchchn"
142
- - source: "अनुष्का शर्मा"
143
- expected: "anushka shrma"
144
- - source: "शाहरुख खान"
145
- expected: "shahrukh khan"
146
- - source: "इंजमाम उल हक"
147
- expected: "injmam ul hk"
148
- - source: "शाहिद अफरीदी"
149
- expected: "shahid aphridi"
150
- - source: "सचिन तेंडुलकर"
151
- expected: "schin tendulkr"
152
- - source: "वसीम अकरम"
153
- expected: "vsim akrm"
154
- - source: "हसन अब्दुल्ला"
155
- expected: "hsn abdulla"
156
-
157
- map:
158
-
159
- characters:
160
-
161
- # I. Vowels and Diphthongs (see Note 1)
162
-
163
- 'अ': 'a'
164
- 'आ': 'a'
165
- 'इ': 'i'
166
- 'ई': 'i'
167
- 'उ': 'u'
168
- 'ऊ': 'u'
169
- 'ऋ': 'ri'
170
- 'ए': 'e'
171
- 'ऐ': 'ai'
172
- 'ऑ': 'o'
173
- 'ओ': 'au'
174
-
175
- # II. Consonants (see Note 2)
176
- # Gutturals
177
- 'क': 'k'
178
- 'क्ष': 'ksha'
179
- 'क़': 'q'
180
- 'ख': 'kh'
181
- 'ख़': 'kh'
182
- 'ग': 'g'
183
- 'घ': 'gh'
184
- 'ग़': 'gh'
185
- 'ङ': 'n'
186
-
187
- # Palatals
188
- 'च': 'ch'
189
- 'छ': 'ch'
190
- 'ज': 'j'
191
- 'झ': 'jh'
192
- 'ज़': 'z'
193
- 'ञ': 'n'
194
-
195
- # Cerebrals
196
- 'ट': 't'
197
- 'ठ': 'th'
198
- 'ड': 'd'
199
- 'ड़': 'r'
200
- 'ढ': 'dh'
201
- 'ढ़': 'rh'
202
- 'ण': 'n'
203
-
204
- # Dentals
205
- 'त': 't'
206
- 'थ': 'th'
207
- 'द': 'd'
208
- 'ध': 'dh'
209
- 'न': 'n'
210
-
211
- # Labials
212
- 'प': 'p'
213
- 'फ': 'ph'
214
- 'फ़': 'f'
215
- 'ब': 'b'
216
- 'भ': 'bh'
217
- 'म': 'm'
218
-
219
- # Semivowels
220
- 'य': 'y'
221
- 'र': 'r'
222
- 'ल': 'l'
223
- 'व': 'v'
224
-
225
- # Sibilants
226
- 'श': 'sh'
227
- 'ष': 'sh'
228
- 'स': 's'
229
-
230
- # Aspirate
231
- 'ह': 'h'
232
-
233
- # Anusvāra
234
- 'ं': 'n'
235
-
236
- # Bisarga
237
- 'ः ': 'h'
238
-
239
- # Anunāsika
240
- 'ँ': 'n'
241
-
242
- '़': ''
243
- '्': ''
244
-
245
- # Medials # Needed for connecting constants
246
- 'ा': "a"
247
- 'ि': "i"
248
- 'ी': "i"
249
- 'ु': "u"
250
- 'ू': "u"
251
- 'ृ': "ri"
252
- 'े': "e"
253
- 'ै': "ai"
254
- 'ॅ': "ai"
255
- 'ॊ': "o"
256
- 'ो': "o"
257
- 'ौ': "au"
258
- 'ॉ': "au"