interscript 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/interscript.rb +10 -6
- data/lib/interscript/fs.rb +0 -2
- data/lib/interscript/mapping.rb +1 -1
- data/lib/interscript/opal.rb +38 -8
- data/lib/interscript/opal/entrypoint.rb +12 -0
- data/lib/interscript/opal/map_translate.rb +7 -0
- data/lib/interscript/version.rb +1 -1
- data/maps/acadsin-zho-Hani-Latn-2002.yaml +5 -1
- data/maps/alalc-amh-Ethi-Latn-1997.yaml +5 -1
- data/maps/alalc-amh-Ethi-Latn-2011.yaml +1 -1
- data/maps/alalc-ara-Arab-Latn-1997.yaml +5 -1
- data/maps/alalc-asm-Deva-Latn-1997.yaml +9 -3
- data/maps/alalc-asm-Deva-Latn-2012.yaml +40 -0
- data/maps/alalc-aze-Cyrl-Latn-1997.yaml +5 -1
- data/maps/alalc-bel-Cyrl-Latn-1997.yaml +5 -1
- data/maps/alalc-ben-Beng-Latn-2017.yaml +1 -1
- data/maps/alalc-bul-Cyrl-Latn-1997.yaml +5 -1
- data/maps/alalc-ell-Grek-Latn-1997.yaml +5 -1
- data/maps/alalc-ell-Grek-Latn-2010.yaml +1 -2
- data/maps/alalc-guj-Gujr-Latn-1997.yaml +266 -0
- data/maps/alalc-guj-Gujr-Latn-2011.yaml +64 -0
- data/maps/alalc-hin-Deva-Latn-1997.yaml +211 -0
- data/maps/alalc-hin-Deva-Latn-2011.yaml +47 -0
- data/maps/alalc-kat-Geok-Latn-1997.yaml +1 -1
- data/maps/alalc-kat-Geor-Latn-1997.yaml +5 -1
- data/maps/alalc-kor-Hang-Latn-1997.yaml +5 -1
- data/maps/alalc-mal-Mlym-Latn-1997.yaml +303 -0
- data/maps/alalc-mal-Mlym-Latn-2012.yaml +73 -0
- data/maps/alalc-mar-Deva-Latn-1997.yaml +21 -2
- data/maps/alalc-mar-Deva-Latn-2011.yaml +45 -0
- data/maps/alalc-mkd-Cyrl-Latn-1997.yaml +1 -1
- data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +1 -1
- data/maps/alalc-mon-Cyrl-Latn-1997.yaml +220 -0
- data/maps/{alalc-pan-Deva-Latn-1997.yaml → alalc-pan-Guru-Latn-1997.yaml} +23 -4
- data/maps/alalc-pan-Guru-Latn-2011.yaml +78 -0
- data/maps/alalc-per-Arab-Latn-1997.yaml +375 -0
- data/maps/alalc-pli-Deva-Latn-2012.yaml +144 -0
- data/maps/alalc-pra-Deva-Latn-2012.yaml +47 -0
- data/maps/alalc-rus-Cyrl-Latn-1997.yaml +5 -1
- data/maps/alalc-rus-Cyrl-Latn-2012.yaml +1 -1
- data/maps/alalc-san-Deva-Latn-2012.yaml +172 -0
- data/maps/alalc-sin-Sinh-Latn-1997.yaml +292 -0
- data/maps/alalc-sin-Sinh-Latn-2011.yaml +71 -0
- data/maps/alalc-srp-Cyrl-Latn-1997.yaml +5 -1
- data/maps/alalc-srp-Cyrl-Latn-2013.yaml +1 -1
- data/maps/alalc-tam-Taml-Latn-1997.yaml +62 -0
- data/maps/alalc-tam-Taml-Latn-2011.yaml +58 -0
- data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +5 -1
- data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +1 -1
- data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +1 -1
- data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +1 -1
- data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +1 -1
- data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +1 -1
- data/maps/bgn-kor-Hang-Latn-1943.yaml +7 -3
- data/maps/bgn-kor-Kore-Latn-1943.yaml +3 -3
- data/maps/bgna-bul-Cyrl-Latn-2006.yaml +1 -1
- data/maps/bgna-bul-Cyrl-Latn-2009.yaml +1 -1
- data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +5 -1
- data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +5 -1
- data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +1 -1
- data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +2 -2
- data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +6 -2
- data/maps/bgnpcgn-bel-Cyrl-Latn-1979.yaml +5 -1
- data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +5 -1
- data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +5 -1
- data/maps/bgnpcgn-che-Cyrl-Latn-2008.yaml +184 -0
- data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +5 -1
- data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +5 -1
- data/maps/{bgnpcgn-per-Arab-Latn-1956.yaml → bgnpcgn-fas-Arab-Latn-1956.yaml} +5 -1
- data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +1 -1
- data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +5 -1
- data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +1 -1
- data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +1 -1
- data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +1 -1
- data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +1 -1
- data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +5 -1
- data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +1 -1
- data/maps/bgnpcgn-mon-Cyrl-Latn-1964.yaml +223 -0
- data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +31 -1
- data/maps/bgnpcgn-per-Arab-Latn-1958.yaml +336 -0
- data/maps/bgnpcgn-prs-Arab-Latn-2007.yaml +639 -0
- data/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.yaml +459 -0
- data/maps/bgnpcgn-rue-Cyrl-Latn-2016.yaml +168 -0
- data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +5 -1
- data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +5 -1
- data/maps/bgnpcgn-tat-Cyrl-Latn-2007.yaml +220 -0
- data/maps/bgnpcgn-tgk-Cyrl-Latn-1994.yaml +240 -0
- data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +5 -1
- data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +3 -92
- data/maps/bgnpcgn-uzb-Cyrl-Latn-1979.yaml +127 -0
- data/maps/bgnpcgn-uzb-Cyrl-Latn-2000.yaml +82 -0
- data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +1 -1
- data/maps/bis-asm-Beng-Latn-13194-1991.yaml +1 -1
- data/maps/bis-ben-Beng-Latn-13194-1991.yaml +1 -1
- data/maps/bis-dev-Deva-Latn-13194-1991.yaml +1 -1
- data/maps/{bis-gjr-Gujr-Latn-13194-1991.yaml → bis-guj-Gujr-Latn-13194-1991.yaml} +17 -2
- data/maps/bis-knd-Knda-Latn-13194-1991.yaml +1 -1
- data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +1 -1
- data/maps/bis-ori-Orya-Latn-13194-1991.yaml +1 -1
- data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +1 -1
- data/maps/bis-tel-Telu-Latn-13194-1991.yaml +1 -1
- data/maps/bis-tml-Taml-Latn-13194-1991.yaml +1 -1
- data/maps/by-bel-Cyrl-Latn-1998.yaml +5 -1
- data/maps/by-bel-Cyrl-Latn-2007.yaml +1 -1
- data/maps/din-grc-Grek-Latn-31634-2011-t1.yaml +899 -0
- data/maps/din-hin-Deva-Latn-33904-2018.yaml +100 -0
- data/maps/din-kat-Geor-Latn-32707-2010.yaml +145 -0
- data/maps/din-mar-Deva-Latn-33904-2018.yaml +84 -0
- data/maps/din-nep-Deva-Latn-33904-2018.yaml +119 -0
- data/maps/din-pli-Deva-Latn-33904-2018.yaml +75 -0
- data/maps/din-pra-Deva-Latn-33904-2018.yaml +63 -0
- data/maps/din-san-Deva-Latn-33904-2018.yaml +338 -0
- data/maps/din-tam-Taml-Latn-33903-2016.yaml +213 -0
- data/maps/dos-nep-Deva-Latn-1997.yaml +15 -1
- data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +3 -3
- data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +2 -2
- data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +2 -2
- data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +2 -2
- data/maps/ggg-kat-Geor-Latn-2002.yaml +5 -1
- data/maps/gki-bel-Cyrl-Latn-1992.yaml +1 -1
- data/maps/gki-bel-Cyrl-Latn-2000.yaml +1 -1
- data/maps/gost-rus-Cyrl-Latn-16876-71-1983.yaml +7 -3
- data/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.yaml +157 -0
- data/maps/hk-yue-Hani-Latn-1888.yaml +1 -1
- data/maps/icao-bel-Cyrl-Latn-9303.yaml +1 -1
- data/maps/icao-bul-Cyrl-Latn-9303.yaml +1 -1
- data/maps/{icao-per-Arab-Latn-9303.yaml → icao-fas-Arab-Latn-9303.yaml} +1 -1
- data/maps/icao-heb-Hebr-Latn-9303.yaml +1 -1
- data/maps/icao-mkd-Cyrl-Latn-9303.yaml +1 -1
- data/maps/icao-rus-Cyrl-Latn-9303.yaml +1 -1
- data/maps/icao-srp-Cyrl-Latn-9303.yaml +1 -1
- data/maps/icao-ukr-Cyrl-Latn-9303.yaml +1 -1
- data/maps/iso-ara-Arab-Latn-233-1984.yaml +1 -1
- data/maps/iso-asm-Beng-Latn-15919-2001.yaml +75 -0
- data/maps/iso-ben-Beng-Latn-15919-2001.yaml +175 -0
- data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +8 -4
- data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +8 -4
- data/maps/iso-guj-Gujr-Latn-15919-2001.yaml +220 -0
- data/maps/iso-hin-Deva-Latn-15919-2001.yaml +87 -0
- data/maps/iso-inc-Deva-Latn-15919-2001.yaml +61 -0
- data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +10 -6
- data/maps/iso-kan-Knda-Latn-15919-2001.yaml +220 -0
- data/maps/iso-kat-Geor-Latn-9984-1996.yaml +145 -0
- data/maps/iso-kor-Hang-Latn-1996-method1.yaml +240 -0
- data/maps/iso-kor-Hang-Latn-1996-method2.yaml +226 -0
- data/maps/iso-mal-Mlym-Latn-15919-2001.yaml +281 -0
- data/maps/iso-mar-Deva-Latn-15919-2001.yaml +75 -0
- data/maps/iso-nep-Deva-Latn-15919-2001.yaml +87 -0
- data/maps/iso-ori-Orya-Latn-15919-2001.yaml +193 -0
- data/maps/iso-pan-Guru-Latn-15919-2001.yaml +222 -0
- data/maps/iso-pli-Beng-Latn-15919-2001.yaml +73 -0
- data/maps/iso-pli-Deva-Latn-15919-2001.yaml +74 -0
- data/maps/iso-pli-Sinh-Latn-15919-2001.yaml +219 -0
- data/maps/iso-pli-Thai-Latn-15919-2001.yaml +55 -0
- data/maps/iso-pra-Deva-Latn-15919-2001.yaml +59 -0
- data/maps/iso-prs-Arab-Latn-233-3-1999.yaml +366 -0
- data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +3 -3
- data/maps/iso-san-Deva-Latn-15919-2001.yaml +220 -0
- data/maps/iso-tam-Taml-Latn-15919-2001.yaml +159 -0
- data/maps/iso-tel-Telu-Latn-15919-2001.yaml +220 -0
- data/maps/iso-tha-Thai-Latn-11940-1998.yaml +1 -1
- data/maps/kp-kor-Hang-Latn-2002.yaml +25 -17
- data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +1 -1
- data/maps/mext-jpn-Hrkt-Latn-1954.yaml +1 -1
- data/maps/mns-mon-Cyrl-Latn-5217-2012.yaml +163 -0
- data/maps/mns-mon-Latn-Cyrl-5217-2012.yaml +200 -0
- data/maps/moct-kor-Hang-Latn-2000.yaml +6 -2
- data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +1 -1
- data/maps/mvd-bel-Cyrl-Latn-2008.yaml +2 -2
- data/maps/mvd-bel-Cyrl-Latn-2010.yaml +3 -3
- data/maps/mvd-rus-Cyrl-Latn-2008.yaml +2 -2
- data/maps/mvd-rus-Cyrl-Latn-2010.yaml +2 -2
- data/maps/odni-ara-Arab-Latn-2015.yaml +425 -0
- data/maps/odni-aze-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-bel-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-bul-Cyrl-Latn-2015.yaml +2 -2
- data/maps/odni-che-Cyrl-Latn-2015.yaml +169 -0
- data/maps/odni-fas-Arab-Latn-2015.yaml +406 -0
- data/maps/odni-hin-Deva-Latn-2015.yaml +1 -1
- data/maps/odni-kat-Geor-Latn-2015.yaml +1 -1
- data/maps/odni-kaz-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-kir-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-kor-Hang-Latn-2015.yaml +375 -0
- data/maps/odni-mkd-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-per-Arab-Latn-2015.yaml +228 -0
- data/maps/odni-rus-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-srp-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-tat-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-tgk-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-uig-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-ukr-Cyrl-Latn-2015.yaml +1 -1
- data/maps/odni-urd-Arab-Latn-2015.yaml +1 -1
- data/maps/odni-uzb-Cyrl-Latn-2015.yaml +1 -1
- data/maps/royin-tha-Thai-Latn-1939-generic.yaml +1 -1
- data/maps/royin-tha-Thai-Latn-1968.yaml +5 -1
- data/maps/royin-tha-Thai-Latn-1999-chained.yaml +1 -1
- data/maps/royin-tha-Thai-Latn-1999.yaml +5 -1
- data/maps/sac-zho-Hans-Latn-1979.yaml +5 -1
- data/maps/sasm-mon-Mong-Latn-general-1978.yaml +389 -0
- data/maps/sasm-mon-Mong-Latn-phonetic-1978.yaml +354 -0
- data/maps/ses-ara-Arab-Latn-1930.yaml +5 -1
- data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +1 -1
- data/maps/ua-ukr-Cyrl-Latn-1996.yaml +6 -2
- data/maps/ua-ukr-Cyrl-Latn-2007.yaml +75 -0
- data/maps/ua-ukr-Cyrl-Latn-2010.yaml +192 -0
- data/maps/{ungegn-amh-Ethi-Latn-2016.yaml → un-amh-Ethi-Latn-2016.yaml} +51 -24
- data/maps/un-ara-Arab-Latn-1971.yaml +1 -1
- data/maps/un-ara-Arab-Latn-1972.yaml +1 -1
- data/maps/un-ara-Arab-Latn-2017.yaml +1 -1
- data/maps/un-bel-Cyrl-Latn-2007.yaml +1 -1
- data/maps/un-ben-Beng-Latn-2016.yaml +1 -1
- data/maps/{un-ell-Grek-Latn-phonetic-1987.yaml → un-ell-Grek-Latn-1987-phonetic.yaml} +2 -2
- data/maps/un-ell-Grek-Latn-1987-tl.yaml +2 -2
- data/maps/un-ell-Grek-Latn-1987-ts.yaml +3 -3
- data/maps/un-hin-Deva-Latn-2016.yaml +222 -0
- data/maps/un-mar-Deva-Latn-2016.yaml +91 -0
- data/maps/un-mon-Mong-Latn-general-2013.yaml +264 -0
- data/maps/un-mon-Mong-Latn-phonetic-2013.yaml +264 -0
- data/maps/un-nep-Deva-Latn-1972.yaml +204 -17
- data/maps/un-nep-Deva-Latn-2013.yaml +74 -0
- data/maps/un-rus-Cyrl-Latn-1987.yaml +1 -1
- data/maps/un-ukr-Cyrl-Latn-1998.yaml +35 -12
- data/maps/un-ukr-Cyrl-Latn-2012.yaml +162 -0
- data/maps/var-hin-Deva-Latn-hunterian-1872.yaml +221 -0
- data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +1 -1
- data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +1 -1
- data/maps/{nil-kor-Hang-Hang-jamo.yaml → var-kor-Hang-Hang-jamo.yaml} +1 -1
- data/maps/var-kor-Hang-Latn-mr-1939.yaml +2 -2
- data/maps/var-kor-Kore-Hang-2013.yaml +1 -1
- data/maps/var-kor-Kore-Latn-mr-1939.yaml +1 -1
- data/maps/var-mar-Deva-Latn-hunterian-1872.yaml +43 -0
- data/maps/var-mon-Mong-Latn-1930.yaml +102 -0
- data/maps/var-mon-Mong-Latn-lessing.yaml +272 -0
- data/maps/var-mon-Mong-Latn-vpmc.yaml +274 -0
- data/maps/var-pra-Deva-Latn-iast-1912.yaml +30 -0
- data/maps/var-san-Deva-Latn-iast-1912.yaml +149 -0
- data/maps/var-tha-Thai-Thai-phonemic.yaml +1 -1
- data/maps/var-tha-Thai-Zsym-ipa.yaml +1 -1
- data/maps/{var-zho-Hani-Latn-1979.yaml → var-zho-Hani-Latn-wd-1979.yaml} +6 -2
- data/spec/interscript/filenames_spec.rb +384 -0
- data/spec/interscript_spec.rb +7 -4
- metadata +105 -26
- data/bin/interscript +0 -41
- data/bin/rspec +0 -29
- data/bin/setup +0 -8
- data/lib/__pycache__/g2pwrapper.cpython-38.pyc +0 -0
- data/lib/interscript-opal.rb +0 -2
- data/lib/interscript/opal_map_translate.rb +0 -12
- data/maps/alalc-hin-Deva-Latn-2020.yaml +0 -159
- data/maps/un-mon-Mong-Latn-2013.yaml +0 -99
@@ -0,0 +1,375 @@
|
|
1
|
+
---
|
2
|
+
authority_id: odni
|
3
|
+
id: 2015
|
4
|
+
language: iso-639-2:kor
|
5
|
+
source_script: Hang
|
6
|
+
destination_script: Latn
|
7
|
+
name: Office of the Director Of National Intelligence Korean 2015 System, ICS-630-01 Annex W
|
8
|
+
url:
|
9
|
+
creation_date: 2015
|
10
|
+
adoption_date:
|
11
|
+
description:
|
12
|
+
|
13
|
+
notes: |
|
14
|
+
1. Name order shall be Family Name Given name, with the family name separated
|
15
|
+
from the given name by one space, and the first and second syllable of a two-
|
16
|
+
syllable given name connected by a hyphen. The initial letter of the family name
|
17
|
+
and the initial letter of the first syllable of the given name are capitalized; the
|
18
|
+
second syllable of the given name is in lower case: Kim Yo’ng-su.
|
19
|
+
|
20
|
+
2. In the case of a full name with only two syllables, the initial letters of both
|
21
|
+
syllables are capitalized and the two names are separated by a space: Ho’ Tam.
|
22
|
+
|
23
|
+
In the case of family names consisting of a combination of two syllables, the
|
24
|
+
syllables are written together (i.e., without a space): So’nu Hak-wo’n.
|
25
|
+
|
26
|
+
3. The family surname 이 will be rendered "Yi" in the IC Standard spelling, but in
|
27
|
+
accordance with personal preference or official usage in the Factbook and Chiefs
|
28
|
+
of State directory.
|
29
|
+
|
30
|
+
4. In order to facilitate the use of the IC Standard, a reference guide containing a list
|
31
|
+
of syllables used in Korean personal names along with their IC Standard
|
32
|
+
equivalents follows.
|
33
|
+
|
34
|
+
tests:
|
35
|
+
- source: "김영수"
|
36
|
+
expected: "Kim Yo’ng-su"
|
37
|
+
- source: "허담"
|
38
|
+
expected: "Ho’ Tam"
|
39
|
+
- source: "선우학원"
|
40
|
+
expected: "So’nu Hak-wo’n"
|
41
|
+
- source: "이담"
|
42
|
+
expected: "Yi Tam"
|
43
|
+
|
44
|
+
# examples testing space handling
|
45
|
+
- source: "동방국"
|
46
|
+
expected: "Tongpang Kuk"
|
47
|
+
- source: "동 방국"
|
48
|
+
expected: "Tong Pang-kuk"
|
49
|
+
- source: "동방 국"
|
50
|
+
expected: "Tongpang Kuk"
|
51
|
+
- source: "화방국"
|
52
|
+
expected: "Hwa Pang-kuk"
|
53
|
+
- source: "황목국"
|
54
|
+
expected: "Hwangmok Kuk"
|
55
|
+
|
56
|
+
|
57
|
+
map:
|
58
|
+
character_separator: ""
|
59
|
+
word_separator: " "
|
60
|
+
title_case: True
|
61
|
+
inherit: var-kor-Hang-Hang-jamo
|
62
|
+
|
63
|
+
rules:
|
64
|
+
- pattern: "^ | $"
|
65
|
+
result: ""
|
66
|
+
|
67
|
+
- pattern: " +"
|
68
|
+
result: " "
|
69
|
+
|
70
|
+
# 2 character inputs will have a space between them
|
71
|
+
- pattern: "^(\\p{Hangul})(\\p{Hangul})$"
|
72
|
+
result: "\\1 \\2"
|
73
|
+
|
74
|
+
# 4 character inputs will have a space as in XXXX -> XX XX
|
75
|
+
- pattern: "^(\\p{Hangul}{2})(\\p{Hangul}{2})$"
|
76
|
+
result: "\\1 \\2"
|
77
|
+
|
78
|
+
# 3 character inputs are more complicated. We enumerate all possible 2
|
79
|
+
# letter surnames according to: https://en.wikipedia.org/wiki/List_of_Korean_surnames
|
80
|
+
- pattern: "^(독고|동방|등정|망절|무본|부여|사공|서문|선우|어금|제갈|황목|황보)(\\p{Hangul})$"
|
81
|
+
result: "\\1 \\2"
|
82
|
+
|
83
|
+
# Otherwise the first character is probably a surname
|
84
|
+
- pattern: "^(\\p{Hangul})(\\p{Hangul}{2})$"
|
85
|
+
result: "\\1 \\2"
|
86
|
+
|
87
|
+
# In case of uncertainity, user needs to add a space himself.
|
88
|
+
|
89
|
+
- pattern: " +"
|
90
|
+
result: " "
|
91
|
+
|
92
|
+
- pattern: "^ | $"
|
93
|
+
result: ""
|
94
|
+
|
95
|
+
postrules:
|
96
|
+
|
97
|
+
# HANGUL JONGSEONG SSANGKIYEOK
|
98
|
+
- pattern: "ᆩ"
|
99
|
+
result: "kk"
|
100
|
+
|
101
|
+
# HANGUL JONGSEONG SSANGKIYEOK
|
102
|
+
- pattern: "ᆪ"
|
103
|
+
result: "ks"
|
104
|
+
|
105
|
+
# HANGUL JONGSEONG NIEUN-CIEUC
|
106
|
+
- pattern: "ᆬ"
|
107
|
+
result: "nch"
|
108
|
+
|
109
|
+
# HANGUL JONGSEONG NIEUN-CIEUC
|
110
|
+
- pattern: "ᆭ"
|
111
|
+
result: "nh"
|
112
|
+
|
113
|
+
# HANGUL JONGSEONG TIEUT
|
114
|
+
- pattern: "ᆮ"
|
115
|
+
result: "t"
|
116
|
+
|
117
|
+
# HANGUL JONGSEONG RIEUL-SIOS
|
118
|
+
- pattern: "ᆳ"
|
119
|
+
result: "l"
|
120
|
+
|
121
|
+
# HANGUL JONGSEONG RIEUL-THIEUTH
|
122
|
+
- pattern: "ᆴ"
|
123
|
+
result: "lt’"
|
124
|
+
|
125
|
+
# HANGUL JONGSEONG RIEUL-PHIEUPH
|
126
|
+
- pattern: "ᆵ"
|
127
|
+
result: "lp’"
|
128
|
+
|
129
|
+
# HANGUL JONGSEONG RIEUL-HIEUH
|
130
|
+
- pattern: "ᆶ"
|
131
|
+
result: "lh"
|
132
|
+
|
133
|
+
# HANGUL JONGSEONG PIEUP-SIOS
|
134
|
+
- pattern: "ᆹ"
|
135
|
+
result: "ps"
|
136
|
+
|
137
|
+
# HANGUL JONGSEONG SSANG-SIOS
|
138
|
+
- pattern: "ᆻ"
|
139
|
+
result: "ss"
|
140
|
+
|
141
|
+
# HANGUL JONGSEONG CIEUC
|
142
|
+
- pattern: "ᆽ"
|
143
|
+
result: "ch"
|
144
|
+
|
145
|
+
# HANGUL JONGSEONG CHIEUCH
|
146
|
+
- pattern: "ᆾ"
|
147
|
+
result: "ch’"
|
148
|
+
|
149
|
+
# HANGUL JONGSEONG KHIEUKH
|
150
|
+
- pattern: "ᆿ"
|
151
|
+
result: "k’"
|
152
|
+
|
153
|
+
# HANGUL JONGSEONG THIEUTH
|
154
|
+
- pattern: "ᇀ"
|
155
|
+
result: "t’"
|
156
|
+
|
157
|
+
# HANGUL JONGSEONG PHIEUPH
|
158
|
+
- pattern: "ᇁ"
|
159
|
+
result: "p’"
|
160
|
+
|
161
|
+
# HANGUL JONGSEONG HIEUH
|
162
|
+
- pattern: "ᇂ"
|
163
|
+
result: "h"
|
164
|
+
|
165
|
+
# HANGUL JONGSEONG KIYEOK
|
166
|
+
- pattern: "ᆨ"
|
167
|
+
result: "k"
|
168
|
+
|
169
|
+
# HANGUL JONGSEONG NIEUN
|
170
|
+
- pattern: "ᆫ"
|
171
|
+
result: "n"
|
172
|
+
|
173
|
+
# HANGUL JONGSEONG RIEUL
|
174
|
+
- pattern: "ᆯ"
|
175
|
+
result: "l"
|
176
|
+
|
177
|
+
# HANGUL JONGSEONG MIEUM
|
178
|
+
- pattern: "ᆷ"
|
179
|
+
result: "m"
|
180
|
+
|
181
|
+
# HANGUL JONGSEONG PIEUP
|
182
|
+
- pattern: "ᆸ"
|
183
|
+
result: "p"
|
184
|
+
|
185
|
+
# HANGUL JONGSEONG SIOS
|
186
|
+
- pattern: "ᆺ"
|
187
|
+
result: "s"
|
188
|
+
|
189
|
+
# HANGUL JONGSEONG IEUNG
|
190
|
+
- pattern: "ᆼ"
|
191
|
+
result: "ng"
|
192
|
+
|
193
|
+
# HANGUL JONGSEONG RIEUL-KIYEOK
|
194
|
+
- pattern: "ᆰ"
|
195
|
+
result: "lk"
|
196
|
+
|
197
|
+
# HANGUL JONGSEONG RIEUL-PIEUP
|
198
|
+
- pattern: "ᆲ"
|
199
|
+
result: "lp"
|
200
|
+
|
201
|
+
# HANGUL CHOSEONG KIYEOK
|
202
|
+
- pattern: "ᄀ"
|
203
|
+
result: "-k"
|
204
|
+
|
205
|
+
# HANGUL CHOSEONG NIEUN
|
206
|
+
- pattern: "ᄂ"
|
207
|
+
result: "-n"
|
208
|
+
|
209
|
+
# HANGUL CHOSEONG TIEUT
|
210
|
+
- pattern: "ᄃ"
|
211
|
+
result: "-t"
|
212
|
+
|
213
|
+
# HANGUL CHOSEONG RIEUL
|
214
|
+
- pattern: "ᄅ"
|
215
|
+
result: "-r"
|
216
|
+
|
217
|
+
# HANGUL CHOSEONG MIEUM
|
218
|
+
- pattern: "ᄆ"
|
219
|
+
result: "-m"
|
220
|
+
|
221
|
+
# HANGUL CHOSEONG PIEUP
|
222
|
+
- pattern: "ᄇ"
|
223
|
+
result: "-p"
|
224
|
+
|
225
|
+
# HANGUL CHOSEONG SIOS
|
226
|
+
- pattern: "ᄉ"
|
227
|
+
result: "-s"
|
228
|
+
|
229
|
+
# HANGUL CHOSEONG IEUNG
|
230
|
+
- pattern: "ᄋ"
|
231
|
+
result: "-"
|
232
|
+
|
233
|
+
# HANGUL CHOSEONG CIEUC
|
234
|
+
- pattern: "ᄌ"
|
235
|
+
result: "-ch"
|
236
|
+
|
237
|
+
# HANGUL CHOSEONG CHIEUCH
|
238
|
+
- pattern: "ᄎ"
|
239
|
+
result: "-ch’"
|
240
|
+
|
241
|
+
# HANGUL CHOSEONG KHIEUKH
|
242
|
+
- pattern: "ᄏ"
|
243
|
+
result: "-k’"
|
244
|
+
|
245
|
+
# HANGUL CHOSEONG THIEUTH
|
246
|
+
- pattern: "ᄐ"
|
247
|
+
result: "-t’"
|
248
|
+
|
249
|
+
# HANGUL CHOSEONG PHIEUPH
|
250
|
+
- pattern: "ᄑ"
|
251
|
+
result: "-p’"
|
252
|
+
|
253
|
+
# HANGUL CHOSEONG HIEUH
|
254
|
+
- pattern: "ᄒ"
|
255
|
+
result: "-h"
|
256
|
+
|
257
|
+
# HANGUL CHOSEONG SSANGKIYEOK
|
258
|
+
- pattern: "ᄁ"
|
259
|
+
result: "-kk"
|
260
|
+
|
261
|
+
# HANGUL CHOSEONG SIOS-KIYEOK
|
262
|
+
- pattern: "ᄭ"
|
263
|
+
result: "-sk"
|
264
|
+
|
265
|
+
# HANGUL CHOSEONG SSANGTIEUT
|
266
|
+
- pattern: "ᄄ"
|
267
|
+
result: "-tt"
|
268
|
+
|
269
|
+
# HANGUL CHOSEONG SIOS-TIEUT
|
270
|
+
- pattern: "ᄯ"
|
271
|
+
result: "-st"
|
272
|
+
|
273
|
+
# HANGUL CHOSEONG SSANGPIEUP
|
274
|
+
- pattern: "ᄈ"
|
275
|
+
result: "-pp"
|
276
|
+
|
277
|
+
# HANGUL CHOSEONG SIOS-PIEUP
|
278
|
+
- pattern: "ᄲ"
|
279
|
+
result: "-sp"
|
280
|
+
|
281
|
+
# HANGUL CHOSEONG SSANGSIOS
|
282
|
+
- pattern: "ᄊ"
|
283
|
+
result: "-ss"
|
284
|
+
|
285
|
+
# HANGUL CHOSEONG SSANGCIEUC
|
286
|
+
- pattern: "ᄍ"
|
287
|
+
result: "-chch"
|
288
|
+
|
289
|
+
# HANGUL CHOSEONG SIOS-CIEUC
|
290
|
+
- pattern: "ᄶ"
|
291
|
+
result: "-sch"
|
292
|
+
|
293
|
+
## End of Choseong Jamos
|
294
|
+
|
295
|
+
# HANGUL JUNGSEONG A
|
296
|
+
- pattern: "ᅡ"
|
297
|
+
result: "a"
|
298
|
+
# HANGUL JUNGSEONG YA
|
299
|
+
- pattern: "ᅣ"
|
300
|
+
result: "ya"
|
301
|
+
# HANGUL JUNGSEONG EO
|
302
|
+
- pattern: "ᅥ"
|
303
|
+
result: "o’"
|
304
|
+
# HANGUL JUNGSEONG YEO
|
305
|
+
- pattern: "ᅧ"
|
306
|
+
result: "yo’"
|
307
|
+
# HANGUL JUNGSEONG O
|
308
|
+
- pattern: "ᅩ"
|
309
|
+
result: "o"
|
310
|
+
# HANGUL JUNGSEONG YO
|
311
|
+
- pattern: "ᅭ"
|
312
|
+
result: "yo"
|
313
|
+
# HANGUL JUNGSEONG U
|
314
|
+
- pattern: "ᅮ"
|
315
|
+
result: "u"
|
316
|
+
# HANGUL JUNGSEONG YU
|
317
|
+
- pattern: "ᅲ"
|
318
|
+
result: "yu"
|
319
|
+
# HANGUL JUNGSEONG EU
|
320
|
+
- pattern: "ᅳ"
|
321
|
+
result: "u’"
|
322
|
+
# HANGUL JUNGSEONG I
|
323
|
+
- pattern: "ᅵ"
|
324
|
+
result: "i"
|
325
|
+
# HANGUL JUNGSEONG AE
|
326
|
+
- pattern: "ᅢ"
|
327
|
+
result: "ae"
|
328
|
+
# HANGUL JUNGSEONG YAE
|
329
|
+
- pattern: "ᅤ"
|
330
|
+
result: "yae"
|
331
|
+
# HANGUL JUNGSEONG E
|
332
|
+
- pattern: "ᅦ"
|
333
|
+
result: "e"
|
334
|
+
# HANGUL JUNGSEONG YE # Not found in specification
|
335
|
+
- pattern: "ᅨ" # actually found in Reference Guide
|
336
|
+
result: "ye"
|
337
|
+
# HANGUL JUNGSEONG WA
|
338
|
+
- pattern: "ᅪ"
|
339
|
+
result: "wa"
|
340
|
+
# HANGUL JUNGSEONG WAE
|
341
|
+
- pattern: "ᅫ"
|
342
|
+
result: "wae"
|
343
|
+
# HANGUL JUNGSEONG OE
|
344
|
+
- pattern: "ᅬ"
|
345
|
+
result: "oe"
|
346
|
+
# HANGUL JUNGSEONG WE
|
347
|
+
- pattern: "ᅰ"
|
348
|
+
result: "we"
|
349
|
+
# HANGUL JUNGSEONG WEO
|
350
|
+
- pattern: "ᅯ"
|
351
|
+
result: "wo’"
|
352
|
+
# HANGUL JUNGSEONG WI
|
353
|
+
- pattern: "ᅱ"
|
354
|
+
result: "wi"
|
355
|
+
# HANGUL JUNGSEONG YI
|
356
|
+
- pattern: "ᅴ"
|
357
|
+
result: "ui"
|
358
|
+
|
359
|
+
# Remove before the first syllable dash
|
360
|
+
- pattern: "(?<=^| )-"
|
361
|
+
result: ""
|
362
|
+
|
363
|
+
# Remove dash in surname
|
364
|
+
- pattern: "(^[^ ]*)-"
|
365
|
+
result: "\\1"
|
366
|
+
|
367
|
+
# Change the surname I to Yi
|
368
|
+
- pattern: "^i"
|
369
|
+
result: "yi"
|
370
|
+
|
371
|
+
characters:
|
372
|
+
# This is based on Jamo
|
373
|
+
|
374
|
+
dictionary:
|
375
|
+
#
|
@@ -0,0 +1,228 @@
|
|
1
|
+
---
|
2
|
+
authority_id: odni
|
3
|
+
id: 2015
|
4
|
+
language: iso-639-3:prs
|
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
|
+
This standard is intended only for those Afghan names that
|
80
|
+
have a common bond or similarity with Iranian names. It
|
81
|
+
should not, for example, be used for names of Pashtuns, for
|
82
|
+
which the Pashto IC Standard should be used.
|
83
|
+
|
84
|
+
- |
|
85
|
+
Alef maqsura (final yeh pronounced as “a”): should be written “a” as in
|
86
|
+
“Musa”.
|
87
|
+
|
88
|
+
- |
|
89
|
+
Digraphs: No distinction is drawn between digraphs
|
90
|
+
such as sh and single contiguous letters (e.g., s followed
|
91
|
+
by h).
|
92
|
+
|
93
|
+
- |
|
94
|
+
Long/short vowels: There is no distinction made in
|
95
|
+
Roman between long and short a: E.g., Farhad (first a is
|
96
|
+
short, second is long).
|
97
|
+
|
98
|
+
- |
|
99
|
+
Diphthongs: Diphthongs are written ei and ow respectively:
|
100
|
+
Hosein; Khosrow.
|
101
|
+
|
102
|
+
- |
|
103
|
+
Double consonants: Double consonants represented by the
|
104
|
+
tashdid are shown by doubling the
|
105
|
+
Roman letter: Mo'azzami, Tavakkoli, Sajjad. Exceptions: Ein
|
106
|
+
and consonants represented by
|
107
|
+
Roman digraphs (e.g., sh, ch) are not doubled (Mobasher,
|
108
|
+
not Mobashsher). Double letters
|
109
|
+
are only used for tashdid (Hosein, not Hossein) or to
|
110
|
+
reflect “sun-letter” assimilation (see
|
111
|
+
below). Special care should be taken when possible to
|
112
|
+
discriminate between doubled and
|
113
|
+
non-doubled letters in names that are otherwise
|
114
|
+
indistinguishable in their transliterated forms:
|
115
|
+
Hasan (حسن (vs. Hassan (حسان(
|
116
|
+
|
117
|
+
- |
|
118
|
+
Compound first names will be written as distinct words:
|
119
|
+
Ali Reza (not Alireza or Ali-Reza);
|
120
|
+
Mohammad Hosein (not Mohammadhosein or Mohammad-Hosein),
|
121
|
+
with the exception of cases identified below.
|
122
|
+
|
123
|
+
- |
|
124
|
+
Arabic-origin names that incorporate the word “Allah” are
|
125
|
+
transliterated as one word, with the letter ‘o’ replacing the
|
126
|
+
alef in Allah (Azizollah, Rahimollah).
|
127
|
+
|
128
|
+
- |
|
129
|
+
Name-internal Arabic definite article "al" ()ال: Common
|
130
|
+
in many names borrowed
|
131
|
+
from Arabic, the transliteration should follow the Arabic
|
132
|
+
rules for “sun letter” assimilation in spoken form and
|
133
|
+
reflect the nominative case. That is: Abdorrahman, not Abd-
|
134
|
+
al-Rahman. (The Arabic sun letters are: ت،ث،د،ذ،
|
135
|
+
ر، ز،س،ش،ص،ض،ط،ظ،ل،ن . These correspond with
|
136
|
+
d, l, n, r, s, sh, t, and z.) Note that the moon letters (
|
137
|
+
i.e., all other Arabic letters) are not assimilated (e.g.,
|
138
|
+
Abdolhasan, Abolfazl). Note also that the “Abdollah” and
|
139
|
+
“Abdol + attribute of Allah” names are written as a single
|
140
|
+
word, as are other names that contain the definite article:
|
141
|
+
Shamsoddin (not Shams-al-Din), Nezamoddin, etc.
|
142
|
+
|
143
|
+
- |
|
144
|
+
Name-initial Arabic definite article "al" ()ال: For
|
145
|
+
Arabic-origin names starting with the definite article “al” ()
|
146
|
+
ال, follow the Arabic standard of al-Sisi ()الصیصی (not
|
147
|
+
Alsisi or Assisi) and forego sun-letter assimilation.
|
148
|
+
|
149
|
+
- |
|
150
|
+
Arabic "family marker" of Al ()آل: For Arabic-origin
|
151
|
+
names starting with the "family marker" of Al ()آل,
|
152
|
+
follow the Arabic standard of Al Davud (داود )آل (not
|
153
|
+
Aldavud or Aledavud).
|
154
|
+
|
155
|
+
- |
|
156
|
+
Kunyas: In the rather rare case where
|
157
|
+
a Persian uses a kunya (a name for an adult normally
|
158
|
+
derived from his or her eldest child, and sometimes
|
159
|
+
employed as a nom de guerre), this name will be rendered
|
160
|
+
with a space separating the two elements (Abu Hosein, Abu
|
161
|
+
Ghasem). Note that this does not apply when the person's
|
162
|
+
given or family name was derived from a predecessor's
|
163
|
+
kunya. In these cases, the leading element should be
|
164
|
+
treated as a prefix as indicated below (Abuhosein[i],
|
165
|
+
Abughasem[i]).
|
166
|
+
|
167
|
+
tests:
|
168
|
+
- source: مُوسَى
|
169
|
+
expected: musa
|
170
|
+
|
171
|
+
- source: مُؤمِن
|
172
|
+
expected: momen
|
173
|
+
|
174
|
+
- source: رِضايي
|
175
|
+
expected: rezai
|
176
|
+
|
177
|
+
- source: مُبَشِّر
|
178
|
+
expected: mobasher
|
179
|
+
|
180
|
+
- source: حَسَّان
|
181
|
+
expected: hassan
|
182
|
+
|
183
|
+
- source: حَسَن
|
184
|
+
expected: hasan
|
185
|
+
|
186
|
+
- source: صَفَّار
|
187
|
+
expected: saffar
|
188
|
+
|
189
|
+
- source: صَفَر
|
190
|
+
expected: safar
|
191
|
+
|
192
|
+
map:
|
193
|
+
inherit: odni-fas-Arab-Latn-2015
|
194
|
+
characters:
|
195
|
+
|
196
|
+
# ta' marboota
|
197
|
+
'\u0629' : 'ah'
|
198
|
+
|
199
|
+
'\u0626' : '' # ئ
|
200
|
+
'\u0624' : '' # ؤ
|
201
|
+
|
202
|
+
# Farsi Vowel (Pointing)
|
203
|
+
|
204
|
+
# '\u064e\u0648' : 'ow' # ـَو
|
205
|
+
# '\u064e\u0648\u0652' : 'aw' # ـَوْ
|
206
|
+
|
207
|
+
# additional symbols
|
208
|
+
|
209
|
+
# shadda
|
210
|
+
|
211
|
+
'\u0642\u0651' : 'qq' # ق
|
212
|
+
'\u0648\u0651' : 'ww' # و
|
213
|
+
|
214
|
+
'\u0621': '' # ء
|
215
|
+
|
216
|
+
# FROM NOTES
|
217
|
+
|
218
|
+
'\u064a\u064a' : 'i' # NOTE 4 (2)
|
219
|
+
'\u06cc\u06cc' : 'i'
|
220
|
+
|
221
|
+
'\u0627\u064a\b' : 'i' # NOTE 4 (3)
|
222
|
+
'\u0627\u06cc\b' : 'i'
|
223
|
+
|
224
|
+
# Farsi consonant characters
|
225
|
+
|
226
|
+
'\u0639' : '' # ع # new
|
227
|
+
'\u0642' : 'q' # ق
|
228
|
+
'\u0648' : 'w' # و
|