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,169 +0,0 @@
1
- ---
2
- authority_id: odni
3
- id: 2015
4
- language: iso-639-2:che
5
- source_script: Cyrl
6
- destination_script: Latn
7
- name: Office of the Director Of National Intelligence -- ICS 630-01 -- Chechen Cyrillic 2015
8
- url: https://github.com/interscript/ics-630-01/blob/master/reference-docs/ANNEX%20C%20-%20Chechen_Personal_Names_FLTS%20(U).pdf
9
- source: ICS-630-01 Annex C
10
- creation_date: 2015
11
- confirmation_date: 2015
12
- description: |
13
- This system is the Intelligence Community (IC) standard for the transliteration of Chechen names
14
- that will be applied to all final written reports and products for IC consumers. It is not intended to
15
- eliminate variations of a name that can contribute forensic information. Rather, it is to provide an
16
- IC standard Romanized (English) transliteration from Chechen that can then be linked to forensic
17
- information in ways that will help identify the referent of the name.
18
-
19
- In cases where an individual’s name has already been transliterated in a variant spelling, the IC
20
- Standard spelling should appear first, followed by the variant spelling(s) in parentheses at the first
21
- usage. In addition, if the original Cyrillic or Arabic-script spelling is known, that spelling should
22
- also appear in parentheses following the name, if possible, following best practices of the issuing
23
- organization and taking into consideration information system capabilities. For example: Ilyas
24
- Akhmadkant (also seen as Ilyas Axmadkhant, Ильяс Ахмадкӏант). This convention is designed
25
- to ensure that vital forensic information is not lost.
26
-
27
- For names of persons who are known to not be part of the Chechen-speaking community, use the
28
- relevant IC transliteration standard for names from that language (e.g., Mikhail, Yitzhak). A
29
- translator’s note may be used to clarify the known origin of the person. Spell names of
30
- individuals from languages that are written in Roman letters as they are spelled in those
31
- languages (e.g., George Clooney, Jorge Garcia, Georges Pompidou).
32
-
33
- In the case of active senior government officials in the on-line CIA World Factbook and the online directory of Chiefs of State and Cabinet Members of Foreign Governments, the spellings
34
- given in these on-line reference works should be used in place of the IC Standard. For any
35
- individual who has at one time been listed in the Factbook or Chiefs of State directory but who no
36
- longer appears in those resources (i.e. is no longer a government official), the IC Standard
37
- spelling should appear first, with the spelling, if known, as it previously appeared in those
38
- resources listed within parentheses at the first usage.
39
-
40
- The primary goal is to produce a consistent Romanized transcription of names that is specifically
41
- readable to the English-speaking non-specialist. The system uses the 26 letters of the standard
42
- (English) Roman alphabet plus the apostrophe. Some ambiguities in the Romanized form will
43
- occur without the use of diacritics. However, within the context of a report, where additional
44
- information about the individual is provided, the referent will be clearly identified. This system
45
- will be used in conjunction with on-line tools, name dictionaries, and lists containing
46
- conventional spellings of names of well-known individuals.
47
-
48
- notes:
49
- - Add a preceding 'y' if the vowel is preceded by the sound of a 'y' consonant.
50
- - |
51
- This is a single apostrophe as found on regular US keyboards (ASCII character 39),
52
- though software may render the apostrophe with differing appearances (e.g. curved left or right).
53
- Note that the same apostrophe is used for 'ъ', '|', 'ӏ', and '1'.
54
- - A word-initial hard sign 'ъ' is not represented, but instead is left out of the transliteration.
55
- - The romanization follows the dialect spoken in Chechnya rather than other local pronunciations.
56
- - Long and short vowels are not distinguished in this system.
57
- - In the Roman, no distinction is made between digraphs such as 'sh' and single contiguous letters (e.g. 's' followed by 'h').
58
- - The Cyrillic soft sign ('ь') by itself (not part of a digraph) is not represented, but instead is left out of the transliteration.
59
- - Interpretation of Cyrillic digraphs in Table 1 takes precedence over interpretation of the individual characters. Thus, 'кх' -> 'q', and not to 'k' followed by 'kh'.
60
- - Transliteration of Cyrillic digraphs for diphthongs will follow the combination of the transliteration of the individual characters. Thus, 'aй' -> 'ay', 'oй' -> 'oy', and both 'эй' and 'eй' -> 'ey'.
61
-
62
- tests:
63
- - source: Ильяс Ахмадкӏант
64
- expected: Ilyas Akhmadkant
65
- - source: Ильяс Ахмадк1ант
66
- expected: Ilyas Akhmadkant
67
-
68
- map:
69
- rules:
70
- # note[1]
71
- - pattern: (?<!\b\u2019)\b\u0415 # Е in initial position -> Ye
72
- result: Ye
73
- - pattern: (?<!\b\u2019)\b\u0435 # е in initial position -> ye
74
- result: ye
75
- # note[2]
76
- - pattern: (\W+)1(\W+)
77
- result: "\\1ӏ\\2"
78
- - pattern: (\W+)1
79
- result: "\\1ӏ"
80
- - pattern: 1(\W+)
81
- result: "ӏ\\1"
82
-
83
- characters:
84
- '\u0410' : 'A' # А
85
- '\u0411' : 'B' # Б
86
- '\u0412' : 'V' # В
87
- '\u0413' : 'G' # Г
88
- '\u0413\u04C0' : 'Gh' # ГӀ
89
- '\u0414' : 'D' # Д
90
- '\u0415' : 'E' # Е note[1]
91
- '\u0416' : 'J' # Ж
92
- '\u0417' : 'Z' # З
93
- '\u0418' : 'I' # И
94
- '\u0418\u042B' : 'I' # ИЙ
95
- '\u042B' : 'Y' # Й
96
- '\u041A' : 'K' # К
97
- '\u041A\u04C0' : 'K' # КӀ
98
- '\u041A\u0445' : 'Q' # Кх note[8]
99
- '\u041A\u044A' : 'Q' # Къ
100
- '\u041B' : 'L' # Л
101
- '\u041C' : 'M' # М
102
- '\u041D' : 'N' # Н
103
- '\u041E' : 'O' # О
104
- '\u041F' : 'P' # П
105
- '\u041F\u04C0' : 'Ph' # ПӀ
106
- '\u0420' : 'R' # Р
107
- '\u0421' : 'S' # С
108
- '\u0422' : 'T' # Т
109
- '\u0422\u04C0' : 'T' # TӀ
110
- '\u0423' : 'U' # У
111
- '\u0424' : 'F' # Ф
112
- '\u0425' : 'Kh' # Х
113
- '\u0425\u044C' : 'H' # Хь
114
- '\u0425\u04C0' : 'H' # ХӀ
115
- '\u04B8' : 'Ts' # Ц
116
- '\u04B8\u04C0' : 'Ts' # ЦӀ
117
- '\u0427' : 'Ch' # Ч
118
- '\u0427\u04C0' : 'Ch' # ЧӀ
119
- '\u0428' : 'Sh' # Ш
120
- '\u042A' : "'" # Ъ note[2] note[3]
121
- '\u042B' : 'Е' # Ы
122
- '\u042D' : 'E' # Э
123
- '\u042E' : 'Yu' # Ю
124
- '\u042F' : 'Ya' # Я
125
- '\u04C0' : "'" # Ӏ note[2]
126
- '\u042C' : '' # Ь note[7]
127
-
128
- '\u0430' : 'a' # а
129
- '\u0431' : 'b' # б
130
- '\u0432' : 'v' # в
131
- '\u0433' : 'g' # г
132
- '\u0433\u04CF' : 'gh' # гӏ
133
- '\u0434' : 'd' # д
134
- '\u0435' : 'e' # е note[1]
135
- '\u0436' : 'j' # ж
136
- '\u0437' : 'z' # з
137
- '\u0438' : 'i' # и
138
- '\u0438\u0439' : 'i' # ий
139
- '\u0439' : 'y' # й
140
- '\u043A' : 'k' # к
141
- '\u043A\u04CF' : 'k' # кӏ
142
- '\u043A\u0445' : 'q' # кх note[8]
143
- '\u043A\u044A' : 'q' # къ
144
- '\u043B' : 'l' # л
145
- '\u043C' : 'm' # м
146
- '\u043D' : 'n' # н
147
- '\u043E' : 'o' # о
148
- '\u043F' : 'p' # п
149
- '\u0440' : 'r' # р
150
- '\u0441' : 's' # с
151
- '\u0442' : 't' # т
152
- '\u0442\u04CF' : 't' # тӏ
153
- '\u0443' : 'u' # у
154
- '\u0444' : 'f' # ф
155
- '\u0445' : 'kh' # х
156
- '\u0445\u044C' : 'h' # хь
157
- '\u0445\u04CF' : 'h' # хӏ
158
- '\u04B9' : 'ts' # ц
159
- '\u04B9\u04CF' : 'ts' # цӏ
160
- '\u0447' : 'ch' # ч
161
- '\u0447\u04CF' : 'ch' # чӏ
162
- '\u0448' : 'sh' # ш
163
- '\u044A' : "'" # ъ note[2] note[3]
164
- '\u044B' : 'e' # ы
165
- '\u044D' : 'e' # э
166
- '\u044E' : 'yu' # ю
167
- '\u044F' : 'ya' # я
168
- '\u04CF' : "'" # ӏ note[2]
169
- '\u044C' : '' # ь note[7]
@@ -1,276 +0,0 @@
1
- ---
2
- authority_id: odni
3
- id: 2004
4
- language: iso-639-2:fas
5
- source_script: Arab
6
- destination_script: Latn
7
- name: Intelligence Community (IC) Standard for the Transliteration of Farsi (Persian) Personal Names (2004)
8
- url: https://github.com/interscript/interscript-private-references/blob/master/odni/Farsi_(Persian)_%26_Dari_IC_Standards.doc
9
- creation_date: 2004
10
- confirmation_date: 2004-11
11
- description: |
12
-
13
- notes:
14
- - Long/short vowels:- There is no distinction made in Roman
15
- between long and short a:- E.g., Parvas (first a is short,
16
- second is long).
17
- - Double consonants:- Double consonants represented by the
18
- tashdid are shown by doubling the Roman letter:-
19
- Mo'azzami. Exceptions:- Ain and consonants represented by
20
- Roman digraphs (e.g., sh, ch) are not doubled:- Mobasher [
21
- not:- Mobashsher]. Double letters are only used for
22
- tashdid (thus, Hosein [not Hossein]) or to reflect the ‘sun
23
- letter’ assimilation (see beelow).
24
- - Hamzeh:- The hamzeh is represented name-internally by an
25
- apostrophe, as is the ain. Name-initially, however,
26
- neither hamzeh nor ain are indicated in transliteration (
27
- e.g., Abdorrahman, not 'Abdorrahman).
28
- - Digraphs:- No distinction is drawn in Roman between
29
- digraphs such as sh and single contiguous letters (e.g., s
30
- followed by h).
31
- - Arabic definite article "al" ('the'):- Common in many
32
- names borrowed from Arabic, the transliteration should
33
- follow the Arabic rules for “sun letter” assimilation in
34
- spoken form and reflect the nominative case. That is:-
35
- Abdorrahman, not Abd al-Rahman. Note also that the
36
- “Abdollah” and “Abdol + attribute of Allah” names are
37
- written as one unanalyzed word, as are other names that
38
- contain the definite article:- Shamsoddin (not Shams al-
39
- Din), Nezamoddin, etc.
40
- - Diphthongs:- Diphthongs are written ei and ow, as in,
41
- respectively:- Hosein; Khosrow.
42
- - Yeh maqsura (final yeh pronounced as “a”):- should be
43
- written as “a” as in “Musa”.
44
-
45
- - Special Rules
46
-
47
- - Hyphens:- A hyphen is used to indicate the ezafeh
48
- construction:- Arshad-e Ameri
49
- - Borrowed names that incorporate the name of God (Allah)
50
- are transliterated as one word, with the letter "o":- E.g.,
51
- Abdollah, Ayatollah, Azizollah.
52
- - Foreign names borrowed or appearing in Farsi are spelled
53
- according to the standard Western tradition (even if there
54
- is an Arabic or Farsi version of the same name):- Joseph,
55
- Michael.
56
- - Common suffixes, such as nia, pur, fard, far, abad,
57
- zadeh, khah, and nezhad as well as nesbeh (‘relationship’ (
58
- to place of birth, etc.)) names derived with these
59
- suffixes (e.g., nezhadi, abadi) are written as part of the
60
- name:-
61
-
62
- asa Mehrasa
63
- baksh Tajbaksh
64
- dust Rafighdust
65
- far Parvizfar
66
- fard Akhavanfard
67
- gar Fuladgar
68
- gol Zarringol
69
- kar Parhizkar
70
- khah Vatankhah
71
- khu Nikkhu
72
- mand Purmand
73
- mehr Zadmehr
74
- nezhad Niknezhad
75
- nia Montajebnia
76
- parast Khodaparast
77
- parvar Golparvar
78
- pur Mohteshemipur
79
- tabar Shayestehtbar
80
- yar Mohammadyar
81
- zadeh Vakilzadeh
82
-
83
- abadi Salehabadi
84
- khani Alikhani
85
- nezhadi Niknezhadi
86
-
87
- - Note also that yar can function as a prefix and, as such,
88
- should be affixed directly to the name:-
89
-
90
- yar Yarmohammadi, Yarshater
91
-
92
- - This is in contrast with hyphenated names such as Raja’i-
93
- Khorasani, Tabataba’i-Shirazi, Soleimani-Maimandi, etc.
94
-
95
- tests:
96
- - source: مُوسَى
97
- expected: musa
98
-
99
- - source: مُؤمِن
100
- expected: mo’men
101
-
102
- - source: رِضايي
103
- expected: reza’i
104
-
105
- - source: مُبَشِّر
106
- expected: mobasher
107
-
108
- - source: حَسَّان
109
- expected: hassan
110
-
111
- - source: حَسَن
112
- expected: hasan
113
-
114
- - source: صَفَّار
115
- expected: saffar
116
-
117
- - source: صَفَر
118
- expected: safar
119
-
120
- map:
121
- characters:
122
- # special rules
123
-
124
- '\s(?=\u0622\u0628\u064E\u0627\u062F)': '' # space followed by abad is removed
125
- '\ufdf2': 'Allah' # See note 5
126
- '\s\u0627\u0644\u0644\u0651\u064e\u0647': 'ollah' # NOTE 9
127
-
128
- '\u0652' : '' # ْ sokoon
129
- '\u0659': 'ê'
130
-
131
- '\u064e\u064a\u0652' : 'ay' # ـَيْ
132
- '\u0649\u0670': 'á' # ىٰ
133
- '\u0674': '-e' # ٴ
134
- '\u0654': '-e' # ٔ
135
- # - '-ye'
136
-
137
-
138
- # ta' marboota
139
- '\u0629' : 'eh'
140
-
141
-
142
-
143
- '\u0626' : '’' # ئ
144
- '\u0624' : '’' # ؤ
145
- '\u0623' : '' # أ
146
- '\u0625': '' # إ
147
-
148
- # See note B
149
- '\b\u0627\u0644' : 'al ' # ال
150
- '\b\u0622\\u0644' : 'Al ' # ‫آل‬
151
- # '\uFE8E' : '' # ﺎ
152
-
153
- # Sun letters
154
- '\b\u0627\u0644\u062a' : 'at t' # الت
155
- '\b\u0627\u0644\u062b' : 'as s' # الث
156
- '\b\u0627\u0644\u062f' : 'ad d' # الد
157
- '\b\u0627\u0644\u0630' : 'az z' # الذ
158
- '\b\u0627\u0644\u0631' : 'ar r' # الر
159
- '\b\u0627\u0644\u0632' : 'az z' # الز
160
- '\b\u0627\u0644\u0633' : 'as s' # الس
161
- '\b\u0627\u0644\u0634' : 'ash sh' # الش
162
- '\b\u0627\u0644\u0635' : 'as s' # الص
163
- '\b\u0627\u0644\u0636' : 'az z' # الض
164
- '\b\u0627\u0644\u0637' : 'at t' # الط
165
- '\b\u0627\u0644\u0638' : 'az z' # الظ
166
- '\b\u0627\u0644\u0644' : 'al l' # الل
167
- '\b\u0627\u0644\u0646' : 'an n' # الن
168
-
169
- # Farsi Vowel (Pointing)
170
- '\u0622' : 'a' # آ alef maddeh
171
- '\u064e' : 'a' # َ fatha
172
- '(?<=\u064e)\u0627' : '' # ا
173
- '(?<!\b)\u0627' : 'a' # ا
174
- '\b\u0627\u064e' : 'a' # ا initial followed by fatha
175
- '\b\u0627\u064f' : 'o' # ا initial followed by damma
176
- '\b\u0627\u0650' : 'e' # ِ ا initial followed by kasra
177
-
178
- '\u064f' : 'o' # damma
179
- '\u064f\u0648' : 'u' # ـُو damma followed by و
180
- # '\u064e\u0648' : 'ow' # ـَو
181
- # '\u064e\u0648\u0652' : 'aw' # ـَوْ
182
-
183
-
184
- '\u0650' : 'e' # kasra
185
- '\u0650\u064a' : 'i' # ـِي kasra followed by ي
186
- '\u0650\u06cc' : 'i' # ـِي kasra followed by ي
187
- '\u0650\u064a\u0651\u064e' : 'iy' # ـِيَّ
188
- '\u0650\u06cc\u0651\u064e' : 'iy' # ـِيَّ
189
- '\u0650\u064a(?=\u064e|u064f)' : 'iy' # ـِي kasra followed by ي
190
- # '\u064e\u064a' : 'aī' # ـَي
191
- # '\u064e\u06cc' : 'aī' # ـَي
192
- # '\u064e\u0649' : 'ay' # ـَى fatha followed by ى which is ا not ي
193
-
194
- # additional symbols
195
-
196
- # shadda
197
-
198
- '\u0628\u0651' : 'bb' # ب
199
- '\u062a\u0651' : 'tt' # ت
200
- '\u062b\u0651' : 'ss' # ث
201
- '\u062c\u0651' : 'jj' # ج
202
- '\u062d\u0651' : 'hh' # ح
203
- '\u062e\u0651' : 'kh' # خ
204
- '\u062f\u0651' : 'dd' # د
205
- '\u0630\u0651' : 'zz' # ذ
206
- '\u0631\u0651' : 'rr' # ر
207
- '\u0632\u0651' : 'zz' # ز
208
- '\u0633\u0651' : 'ss' # س
209
- '\u0634\u0651' : 'sh' # ش
210
- '\u0635\u0651' : 'ss' # ص
211
- '\u0636\u0651' : 'zz' # ض
212
- '\u0637\u0651' : 'tt' # ط
213
- '\u0638\u0651' : 'zz' # ظ
214
- '\u063a\u0651' : 'gh' # غ
215
- '\u0641\u0651' : 'ff' # ف
216
- '\u0642\u0651' : 'gh' # ق
217
- '\u0643\u0651' : 'kk' # ك
218
- '\u0644\u0651' : 'll' # ل
219
- '\u0645\u0651' : 'mm' # م
220
- '\u0646\u0651' : 'nn' # ن
221
- '\u0647\u0651' : 'hh' # ه
222
- '\u0648\u0651' : 'vv' # و
223
- '\u064a\u0651' : 'yy' # ي
224
-
225
- '(?<=\b)\u0621': '' # ء
226
- '\u0621': '’' # ء
227
-
228
- # FROM NOTES
229
-
230
- '\u064e\u0649' : 'a' # ـَى fatha followed by ى which is ا not ي
231
- '\u0649' : 'a' # ى alef maqsura NOTE-1
232
-
233
- '\u064a\u064a' : '’i' # NOTE 4 (2)
234
- '\u06cc\u06cc' : '’i'
235
-
236
- '\u0627\u064a\b' : '’i' # NOTE 4 (3)
237
- '\u0627\u06cc\b' : '’i'
238
-
239
- # Farsi consonant characters
240
-
241
- '\u0628' : 'b' # ب
242
- '\u067E' : 'p' # پ
243
- '\u062a' : 't' # ت
244
- '\u062B' : 's' # ث
245
- '\u062c' : 'j' # ج
246
- '\u0686' : 'ch' # ‫چ‬
247
- '\u062d' : 'h' # ح
248
- '\u062e' : 'kh' # خ
249
- '\u062f' : 'd' # د
250
- '\u0630' : 'z' # ذ
251
- '\u0631' : 'r' # ر
252
- '\u0632' : 'z' # ز
253
- '\u0698' : 'zh' # ‫ژ‬
254
- '\u0633' : 's' # س
255
- '\u0634' : 'sh' # ش
256
- '\u0635' : 's' # ص
257
- '\u0636' : 'z' # ض
258
- '\u0637' : 't' # ط
259
- '\u0638' : 'z' # ظ
260
- '\u0639' : '‘' # ع
261
- '(?<=\b)\u0639' : '' # ع not represented initially
262
- '\u063a' : 'gh' # غ
263
- '\u0641' : 'f' # ف
264
- '\u0642' : 'gh' # ق
265
- '\u0643' : 'k' # ك
266
- '\u06A9' : 'k' # ک
267
- '\u06AF' : 'g' # ‫گ‬
268
- '\u0644' : 'l' # ل
269
- '\u0645' : 'm' # م
270
- '\u0646' : 'n' # ن
271
- '\u0647' : 'h' # ه
272
- '\u0648' : 'v' # و
273
- '\u064a' : 'y' # ي
274
- '\u0649' : 'y' # ي
275
- '\u06D0' : 'ē' # ې
276
- '\u06CD' : 'êy' # ‫ۍ‬
@@ -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' # ‫ۍ‬