interscript 0.1.1 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +250 -17
  3. data/bin/interscript +38 -17
  4. data/bin/setup +8 -0
  5. data/lib/__pycache__/g2pwrapper.cpython-38.pyc +0 -0
  6. data/lib/g2pwrapper.py +34 -0
  7. data/lib/interscript-opal.rb +2 -0
  8. data/lib/interscript.rb +138 -20
  9. data/lib/interscript/command.rb +28 -0
  10. data/lib/interscript/fs.rb +71 -0
  11. data/lib/interscript/mapping.rb +142 -0
  12. data/lib/interscript/opal.rb +27 -0
  13. data/lib/interscript/opal/maps.js.erb +10 -0
  14. data/lib/interscript/opal_map_translate.rb +12 -0
  15. data/lib/interscript/version.rb +1 -1
  16. data/lib/model-7 +0 -0
  17. data/lib/tha-pt-b-7 +0 -0
  18. data/maps/acadsin-zho-Hani-Latn-2002.yaml +38912 -0
  19. data/maps/alalc-amh-Ethi-Latn-1997.yaml +509 -0
  20. data/maps/alalc-amh-Ethi-Latn-2011.yaml +138 -0
  21. data/maps/alalc-ara-Arab-Latn-1997.yaml +1283 -0
  22. data/maps/alalc-asm-Deva-Latn-1997.yaml +159 -0
  23. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +141 -0
  24. data/maps/alalc-bel-Cyrl-Latn-1997.yaml +125 -0
  25. data/maps/alalc-ben-Beng-Latn-2017.yaml +130 -0
  26. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +94 -0
  27. data/maps/alalc-ell-Grek-Latn-1997.yaml +624 -0
  28. data/maps/alalc-ell-Grek-Latn-2010.yaml +627 -0
  29. data/maps/alalc-hin-Deva-Latn-2020.yaml +159 -0
  30. data/maps/alalc-kat-Geok-Latn-1997.yaml +111 -0
  31. data/maps/alalc-kat-Geor-Latn-1997.yaml +146 -0
  32. data/maps/alalc-kor-Hang-Latn-1997.yaml +94 -0
  33. data/maps/alalc-mar-Deva-Latn-1997.yaml +170 -0
  34. data/maps/alalc-mkd-Cyrl-Latn-1997.yaml +114 -0
  35. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +103 -0
  36. data/maps/alalc-pan-Deva-Latn-1997.yaml +237 -0
  37. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +221 -0
  38. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +162 -0
  39. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +114 -0
  40. data/maps/alalc-srp-Cyrl-Latn-2013.yaml +135 -0
  41. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +141 -0
  42. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +16 -0
  43. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +283 -0
  44. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +174 -0
  45. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +169 -0
  46. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +292 -0
  47. data/maps/bgn-kor-Hang-Latn-1943.yaml +31 -0
  48. data/maps/bgn-kor-Kore-Latn-1943.yaml +31 -0
  49. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +208 -0
  50. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +208 -0
  51. data/maps/bgnpcgn-amh-Ethi-Latn-1967.yaml +528 -0
  52. data/maps/bgnpcgn-ara-Arab-Latn-1956.yaml +592 -0
  53. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +108 -0
  54. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +104 -0
  55. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +184 -0
  56. data/maps/bgnpcgn-bel-Cyrl-Latn-1979.yaml +285 -0
  57. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +115 -0
  58. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +38 -0
  59. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +701 -0
  60. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +19 -0
  61. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +257 -0
  62. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +127 -0
  63. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +42 -0
  64. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +253 -0
  65. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +48 -0
  66. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +48 -0
  67. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +159 -0
  68. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +190 -0
  69. data/maps/bgnpcgn-nep-Deva-Latn-2011.yaml +200 -0
  70. data/maps/bgnpcgn-per-Arab-Latn-1956.yaml +92 -0
  71. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +314 -0
  72. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +166 -0
  73. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +162 -0
  74. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +208 -0
  75. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +7456 -0
  76. data/maps/bis-asm-Beng-Latn-13194-1991.yaml +159 -0
  77. data/maps/bis-ben-Beng-Latn-13194-1991.yaml +156 -0
  78. data/maps/bis-dev-Deva-Latn-13194-1991.yaml +184 -0
  79. data/maps/bis-gjr-Gujr-Latn-13194-1991.yaml +166 -0
  80. data/maps/bis-knd-Knda-Latn-13194-1991.yaml +173 -0
  81. data/maps/bis-mlm-Mlym-Latn-13194-1991.yaml +176 -0
  82. data/maps/bis-ori-Orya-Latn-13194-1991.yaml +160 -0
  83. data/maps/bis-pnj-Guru-Latn-13194-1991.yaml +175 -0
  84. data/maps/bis-tel-Telu-Latn-13194-1991.yaml +170 -0
  85. data/maps/bis-tml-Taml-Latn-13194-1991.yaml +155 -0
  86. data/maps/by-bel-Cyrl-Latn-1998.yaml +168 -0
  87. data/maps/by-bel-Cyrl-Latn-2007.yaml +115 -0
  88. data/maps/dos-nep-Deva-Latn-1997.yaml +33 -0
  89. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +684 -0
  90. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +680 -0
  91. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +19 -0
  92. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +31 -0
  93. data/maps/ggg-kat-Geor-Latn-2002.yaml +88 -0
  94. data/maps/gki-bel-Cyrl-Latn-1992.yaml +33 -0
  95. data/maps/gki-bel-Cyrl-Latn-2000.yaml +201 -0
  96. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.yaml +186 -0
  97. data/maps/hk-yue-Hani-Latn-1888.yaml +38497 -0
  98. data/maps/icao-bel-Cyrl-Latn-9303.yaml +136 -0
  99. data/maps/icao-bul-Cyrl-Latn-9303.yaml +118 -0
  100. data/maps/icao-heb-Hebr-Latn-9303.yaml +151 -0
  101. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +117 -0
  102. data/maps/icao-per-Arab-Latn-9303.yaml +103 -0
  103. data/maps/icao-rus-Cyrl-Latn-9303.yaml +117 -0
  104. data/maps/icao-srp-Cyrl-Latn-9303.yaml +117 -0
  105. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +119 -0
  106. data/maps/iso-ara-Arab-Latn-233-1984.yaml +323 -0
  107. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +609 -0
  108. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +40 -0
  109. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +62 -0
  110. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +271 -0
  111. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +109 -0
  112. data/maps/kp-kor-Hang-Latn-2002.yaml +901 -0
  113. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +44820 -0
  114. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +411 -0
  115. data/maps/moct-kor-Hang-Latn-2000.yaml +803 -0
  116. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +541 -0
  117. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +225 -0
  118. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +63 -0
  119. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +109 -0
  120. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +37 -0
  121. data/maps/nil-kor-Hang-Hang-jamo.yaml +11193 -0
  122. data/maps/odni-aze-Cyrl-Latn-2015.yaml +144 -0
  123. data/maps/odni-bel-Cyrl-Latn-2015.yaml +148 -0
  124. data/maps/odni-bul-Cyrl-Latn-2015.yaml +96 -0
  125. data/maps/odni-hin-Deva-Latn-2015.yaml +258 -0
  126. data/maps/odni-kat-Geor-Latn-2015.yaml +87 -0
  127. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +148 -0
  128. data/maps/odni-kir-Cyrl-Latn-2015.yaml +136 -0
  129. data/maps/odni-mkd-Cyrl-Latn-2015.yaml +122 -0
  130. data/maps/odni-rus-Cyrl-Latn-2015.yaml +77 -0
  131. data/maps/odni-srp-Cyrl-Latn-2015.yaml +129 -0
  132. data/maps/odni-tat-Cyrl-Latn-2015.yaml +142 -0
  133. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +148 -0
  134. data/maps/odni-uig-Cyrl-Latn-2015.yaml +138 -0
  135. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +157 -0
  136. data/maps/odni-urd-Arab-Latn-2015.yaml +221 -0
  137. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +166 -0
  138. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +90 -0
  139. data/maps/royin-tha-Thai-Latn-1968.yaml +179 -0
  140. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +180 -0
  141. data/maps/royin-tha-Thai-Latn-1999.yaml +76 -0
  142. data/maps/sac-zho-Hans-Latn-1979.yaml +24759 -0
  143. data/maps/ses-ara-Arab-Latn-1930.yaml +279 -0
  144. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +222 -0
  145. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +193 -0
  146. data/maps/un-ara-Arab-Latn-1971.yaml +139 -0
  147. data/maps/un-ara-Arab-Latn-1972.yaml +159 -0
  148. data/maps/un-ara-Arab-Latn-2017.yaml +420 -0
  149. data/maps/un-bel-Cyrl-Latn-2007.yaml +114 -0
  150. data/maps/un-ben-Beng-Latn-2016.yaml +534 -0
  151. data/maps/un-ell-Grek-Latn-1987-tl.yaml +31 -0
  152. data/maps/un-ell-Grek-Latn-1987-ts.yaml +19 -0
  153. data/maps/un-ell-Grek-Latn-phonetic-1987.yaml +780 -0
  154. data/maps/un-mon-Mong-Latn-2013.yaml +99 -0
  155. data/maps/un-nep-Deva-Latn-1972.yaml +163 -0
  156. data/maps/un-rus-Cyrl-Latn-1987.yaml +166 -0
  157. data/maps/un-ukr-Cyrl-Latn-1998.yaml +30 -0
  158. data/maps/ungegn-amh-Ethi-Latn-2016.yaml +575 -0
  159. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +406 -0
  160. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +386 -0
  161. data/maps/var-kor-Hang-Latn-mr-1939.yaml +1054 -0
  162. data/maps/var-kor-Kore-Hang-2013.yaml +59754 -0
  163. data/maps/var-kor-Kore-Latn-mr-1939.yaml +36 -0
  164. data/maps/var-tha-Thai-Thai-phonemic.yaml +59 -0
  165. data/maps/var-tha-Thai-Zsym-ipa.yaml +301 -0
  166. data/maps/var-zho-Hani-Latn-1979.yaml +38908 -0
  167. data/spec/interscript/mapping_spec.rb +42 -0
  168. data/spec/interscript_spec.rb +26 -0
  169. data/spec/spec_helper.rb +3 -0
  170. metadata +298 -18
@@ -0,0 +1,92 @@
1
+ ---
2
+ # TODO: This system is not complete/usable yet!
3
+ # TODO: Add tests from PDF
4
+ authority_id: bgnpcgn
5
+ id: 1956
6
+ language: per
7
+ source_script: Arab
8
+ destination_script: Latn
9
+ name: BGN/PCGN 1956 System
10
+ url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/320079/Arabic_Romanization.pdf
11
+ creation_date: 1947
12
+ confirmation_date: 2019-06
13
+ description: |
14
+ This System was adopted by the BGN in 1946 and by the PCGN in 1956
15
+ and is applied in the systematic romanization of geographic names in
16
+ Bahrain, Egypt, Iraq, Jordan, Kuwait, Libya, Oman, Qatar, Saudi Arabia,
17
+ Syria, the United Arab Emirates, and Yemen.
18
+
19
+ Uniform results in the romanization of Arabic are difficult to
20
+ obtain, since vowel points and diacritical marks are generally omitted
21
+ from both manual and machine writing. It follows that for correct
22
+ identification of the words which appear in any particular name,
23
+ knowledge of its standard Arabic- script spelling including proper
24
+ pointing, and recognition of dialectal and idiosyncratic deviations are
25
+ essential.
26
+
27
+ In order to bring about uniformity in the Roman-script spelling of
28
+ geographic names in Arabic- language areas, the system is based insofar
29
+ as possible on fully pointed modern standard Arabic. In the interest of
30
+ clarity, vowel pointing has been applied to the examples below. Arabic
31
+ is written from right to left, and does not make a distinction between
32
+ upper and lower case.
33
+
34
+ notes:
35
+ - The symbol ◌ represents any Arabic consonant character.
36
+ - "Hamzah (ء) is written in Arabic in association with most instances of initial alif, except those which belong to the definite article al or which bear a maddah (see note 11). Hamzah is written above the alif if the accompanying short vowel is a fatḩah (َأ) or ḑammah (ُأ) and below the alif if the accompanying short vowel is a kasrah (ِإ). When the purpose is to indicate the presence of a glottal stop, hamzah is written over medial and final alif (أ), wāw (ؤ) and yā’ without dots (ئ). Hamzah following kasrah (◌ِ ) is written (ئ). Almost always the yā’ is in the initial or medial form and the dots are omitted: example: (بئر). Hamzah following ḑammah (◌ُ )is written (ؤ). Hamzah following a long vowel is written without a bearer and is positioned on the line of print like a regular character. The romanization of hamzah (’) should always be carefully distinguished from that of ‘ayn (‘)."
37
+ - Alif as such is not romanized when it is a bearer of hamzah, but see fatḩah alif (ا◌َ ) and alif maddah .in the vowel table. See also note 2 and 11 above ) آ (
38
+ - "In certain endings, an original tā’ (ت) is written (ة), i.e., like hā’ with two dots, and is known as tā marbūţah. It is romanized h, except in the construct form, where it is romanized t instead. Example: hamzah,hamzatalqaţ‘.Theendingfatḩahhā’ (ه◌َ)mayberomanizeda·hwhenthecharacterhā’ .5 is not silent. Example: Muntaza·h. See also note )ه("
39
+ - Occasionally, the character sequences ـدهـ ,ـتـهـ, ـكـهـ and سهـ occur. They may be romanized k·h, t·h, d·h, and s·h in order to differentiate those romanizations from the digraphs kh, th, dh, and sh. See also note 4.
40
+ - Where special considerations are paramount, the sub-dot ( ִ ) may be used in place of the cedilla.
41
+ - The character yā’ (in final form but without dots) preceded by the vowel point fatḩah is a combination known as alif maqşūrah. See character 7 in the vowel table.
42
+ - "The classical Arabic grammatical endings written with the nunation symbols (tanwīn) may be romanized, when necessary, by an, in, un. In modern Arabic, these endings have become silent and should not be romanized: classical alifun modern alif."
43
+ - Doubled consonant sounds are represented in Arabic script by placing a shaddah (◌ّ ) over a consonant character. In romanization the letter should be doubled. However, the combination of the consonant character yā’ with a shaddah preceded by a kasrah (ــــِّيــ) is romanized īy rather than iyy. e.g., (ـــِّيـة) is romanized (īyah) and not (iyyah). When the definite article (al) precedes a word beginning with one of the “sun letters” t, th, d, dh, r, z, s, sh, ş, ḑ, ţ, z̧ , l, or n – the l is assimilated in pronunciation and romanization, thus yielding tt, thth, etc., in romanization. Example, An Nīl, not Al Nīl.
44
+ - Hamzat al waşl (ٱ), which is utilized only in the pointing of classical Arabic, is romanized ’ as illustrated in the classical form of its name hamzatu’l waşli.
45
+ - Since maddah (آ), which is placed over alif (ا), nearly always occurs in word-initial position, no .)◌َا( as well as for fatḩah alif )آ( confusion results from the use of ā for alif maddah
46
+ - The ligatures لا and لـا represent lām- alif, and should be romanized lā.
47
+
48
+ special_rules:
49
+ # TODO: These are not used
50
+ - Initial definite articles and prepositions should be capitalized and hyphens should not be used to connect parts of names, e.g., Ash Shāriqah and Tall al Laḩm.
51
+ - If any evidence is found for the use of the definite article in a name, the article should be used in the name chosen.
52
+ - The Arabic word for God should be written Allāh (الله).
53
+ - Names which consist of noun phrases should be written as separate words. The definite article within such names should be romanized al, not ul, e.g., ‘Abd Allāh, ‘Abd ar Raḩmān, Dhū al Faqār.
54
+ - The Arabic word ِبنshould be romanized Bin rather than Ibn whenever written without alif, that is between two proper nouns, e.g., ‘Umar Bin al Khaţţāb.
55
+ - The Turkish word Paşa should be romanized from Arabic script as Bāshā. The Turkish word Bey should be romanized as Bey in Egyptian names, no matter how it is written in Arabic-language sources, but in other Arabic areas it should be romanized as Bak where written بك and as Bayk .بيك when written
56
+ - The modern colloquial word Sīdī should be give precedence over the classical form Sayyidī. This does not preclude the spelling Sayyidī if the latter is indicated by the Arabic script or other evidence – for instance, if the yā’ is written with a shaddah (◌ّ ).
57
+ - The colloquial word Bū should not be changed to the standard form Abū.
58
+ - The colloquial word for water, written مية on Arabic maps, should be romanized Mayyat.
59
+ - Place names of Aramaic origin in Syria often contain initial consonant clusters consisting of b plus another consonant such as l or h. In romanization, the clusters bl, bh, etc., should be so represented.
60
+ - In names containing the Arabic word for back, ridge, or hill, appearing as either ظهر or ضهر in Arabic sources, the word should be romanized to reflect the particular Arabic spelling shown.
61
+ map:
62
+ characters:
63
+ '\u0627' : 'a'
64
+ '\u0628' : 'b'
65
+ '\u067e' : 'p'
66
+ '\u062a' : 't'
67
+ '\u062b' : 's'
68
+ '\u062c' : 'j'
69
+ '\u062d' : 'h'
70
+ '\u0686' : 'ch'
71
+ '\u062e' : 'kh'
72
+ '\u062f' : 'd'
73
+ '\u0630' : 'z'
74
+ '\u0631' : 'r'
75
+ '\u0632' : 'z'
76
+ '\u0633' : 's'
77
+ '\u0634' : 'sh'
78
+ '\u0635' : 's'
79
+ '\u0636' : 'z'
80
+ '\u0637' : 't'
81
+ '\u0638' : 'z'
82
+ '\u0639' : '\u2018'
83
+ '\u063a' : 'gh'
84
+ '\u0641' : 'f'
85
+ '\u0642' : 'q'
86
+ '\u0643' : 'k'
87
+ '\u0644' : 'l'
88
+ '\u0645' : 'm'
89
+ '\u0646' : 'n'
90
+ '\u0647' : 'h'
91
+ '\u0648' : 'v'
92
+ '\u0649' : 'y'
@@ -0,0 +1,314 @@
1
+ ---
2
+ authority_id: bgnpcgn
3
+ id: 1947
4
+ language: rus
5
+ source_script: Cyrl
6
+ destination_script: Latn
7
+ name: ROMANIZATION OF RUSSIAN, BGN/PCGN 1947 System
8
+ url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/807920/ROMANIZATION_OF_RUSSIAN.pdf
9
+ creation_date: 1947
10
+ confirmation_date: 2019-06
11
+ description: |
12
+ The BGN/PCGN system for Russian was adopted by the BGN in 1944 and by the
13
+ PCGN in 1947 for use in romanizing names written in the Russian Cyrillic
14
+ alphabet.
15
+
16
+ notes:
17
+ - The character e should be romanized ye initially, after the vowel
18
+ characters a, e, ё, и, о, у, ы, э, ю, and я, and after й, ъ, and ь. In
19
+ all other instances, it should be romanized e.
20
+
21
+ - The character ё is not considered a separate character of the
22
+ Russian alphabet and the dieresis is generally not shown. When the
23
+ dieresis is shown, the character should be romanized yë initially,
24
+ after the vowel characters a, e, ё, и, о, у, ы, э, ю, and я, and after
25
+ й, ъ, and ь. In all other instances, it should be romanized ё. When the
26
+ dieresis is not shown, the character may still be romanized in the
27
+ preceding manner or, alternatively, in accordance with note 1.
28
+
29
+ - |
30
+ Unusual Russian character sequences occurring primarily in
31
+ non-Russian-language names may be romanized as shown below in order to
32
+ provide differentiation from regularly- occurring digraphs and
33
+ character sequences.
34
+ й before а, у, ы, or э у·
35
+ ы before а, у, ы, or э у·
36
+ ы after any vowel character ·у
37
+ э after any consonant character except й ·е
38
+ TC t·s шч sh·ch
39
+
40
+ - Unicode values are shown with the uppercase Cyrillic character first,
41
+ followed by the lowercase character.
42
+
43
+ - |
44
+ An inventory of letter-diacritic combinations, with their Unicode
45
+ encoding, in addition to the unmodified letters of the basic Roman
46
+ script is:
47
+ All apostrophes appearing in romanization are U+2019 Ë (U+00CB)
48
+ ë (U+00EB)
49
+ - The Romanization column shows only lowercase forms but, when
50
+ romanizing, uppercase and lowercase Roman letters as appropriate should
51
+ be used.
52
+
53
+ tests:
54
+ - source: |
55
+ Выборы депутатов Государственной Думы Федерального Собрания Российской Федерации седьмого созыва
56
+ Дата голосования: 18.09.2016
57
+
58
+ Наименование Избирательной комиссии: ЦИК России
59
+
60
+ Сводная таблица результатов выборов по федеральному избирательному округу
61
+
62
+
63
+ Число избирателей, внесенных в список избирателей на момент окончания голосования
64
+ Число избирательных бюллетеней, полученных участковой избирательной комиссией
65
+ Число избирательных бюллетеней, выданных избирателям, проголосовавшим досрочно
66
+ Число избирательных бюллетеней, выданных в помещении для голосования в день голосования
67
+ Число избирательных бюллетеней, выданных вне помещения для голосования в день голосования
68
+ Число погашенных избирательных бюллетеней
69
+ Число избирательных бюллетеней, содержащихся в переносных ящиках для голосования
70
+ Число избирательных бюллетеней, содержащихся в стационарных ящиках для голосования
71
+ Число недействительных избирательных бюллетеней
72
+ Число действительных избирательных бюллетеней
73
+ Число открепительных удостоверений, полученных участковой избирательной комиссией
74
+ Число открепительных удостоверений, выданных на избирательном участке до дня голосования
75
+ Число избирателей, проголосовавших по открепительным удостоверениям на избирательном участке
76
+ Число погашенных неиспользованных открепительных удостоверений
77
+ Число открепительных удостоверений, выданных избирателям территориальной избирательной комиссией
78
+ Число утраченных открепительных удостоверений
79
+ Число утраченных избирательных бюллетеней
80
+ Число избирательных бюллетеней, не учтенных при получении
81
+ 1. ВСЕРОССИЙСКАЯ ПОЛИТИЧЕСКАЯ ПАРТИЯ "РОДИНА"
82
+ 2. Политическая партия КОММУНИСТИЧЕСКАЯ ПАРТИЯ КОММУНИСТЫ РОССИИ
83
+ 3. Политическая партия "Российская партия пенсионеров за справедливость"
84
+ 4. Всероссийская политическая партия "ЕДИНАЯ РОССИЯ"
85
+ 5. Политическая партия "Российская экологическая партия "Зеленые"
86
+ 6. Политическая партия "Гражданская Платформа"
87
+ 7. Политическая партия ЛДПР - Либерально-демократическая партия России
88
+ 8. Политическая партия "Партия народной свободы" (ПАРНАС)
89
+ 9. Всероссийская политическая партия "ПАРТИЯ РОСТА"
90
+ 10. Общественная организация Всероссийская политическая партия "Гражданская Сила"
91
+ 11. Политическая партия "Российская объединенная демократическая партия "ЯБЛОКО"
92
+ 12. Политическая партия "КОММУНИСТИЧЕСКАЯ ПАРТИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ"
93
+ 13. Политическая партия "ПАТРИОТЫ РОССИИ"
94
+ 14. Политическая партия СПРАВЕДЛИВАЯ РОССИЯ
95
+
96
+ Данные окружных избирательных комиссий о числе открепительных удостоверений
97
+
98
+
99
+ Число открепительных удостоверений, полученных окружной избирательной комиссией
100
+ Число открепительных удостоверений, выданных территориальным избирательным комиссиям
101
+ Число неиспользованных открепительных удостоверений, погашенных окружной избирательной комиссией
102
+ Число открепительных удостоверений, утраченных в окружной избирательной комиссии
103
+
104
+ expected: |
105
+ Vybory deputatov Gosudarstvennoy Dumy Federal’nogo Sobraniya Rossiyskoy Federatsii sed’mogo sozyva
106
+ Data golosovaniya: 18.09.2016
107
+
108
+ Naimenovaniye Izbiratel’noy komissii: TSIK Rossii
109
+
110
+ Svodnaya tablitsa rezul’tatov vyborov po federal’nomu izbiratel’nomu okrugu
111
+
112
+
113
+ Chislo izbirateley, vnesennykh v spisok izbirateley na moment okonchaniya golosovaniya
114
+ Chislo izbiratel’nykh byulleteney, poluchennykh uchastkovoy izbiratel’noy komissiyey
115
+ Chislo izbiratel’nykh byulleteney, vydannykh izbiratelyam, progolosovavshim dosrochno
116
+ Chislo izbiratel’nykh byulleteney, vydannykh v pomeshchenii dlya golosovaniya v den’ golosovaniya
117
+ Chislo izbiratel’nykh byulleteney, vydannykh vne pomeshcheniya dlya golosovaniya v den’ golosovaniya
118
+ Chislo pogashennykh izbiratel’nykh byulleteney
119
+ Chislo izbiratel’nykh byulleteney, soderzhashchikhsya v perenosnykh yashchikakh dlya golosovaniya
120
+ Chislo izbiratel’nykh byulleteney, soderzhashchikhsya v statsionarnykh yashchikakh dlya golosovaniya
121
+ Chislo nedeystvitel’nykh izbiratel’nykh byulleteney
122
+ Chislo deystvitel’nykh izbiratel’nykh byulleteney
123
+ Chislo otkrepitel’nykh udostovereniy, poluchennykh uchastkovoy izbiratel’noy komissiyey
124
+ Chislo otkrepitel’nykh udostovereniy, vydannykh na izbiratel’nom uchastke do dnya golosovaniya
125
+ Chislo izbirateley, progolosovavshikh po otkrepitel’nym udostovereniyam na izbiratel’nom uchastke
126
+ Chislo pogashennykh neispol’zovannykh otkrepitel’nykh udostovereniy
127
+ Chislo otkrepitel’nykh udostovereniy, vydannykh izbiratelyam territorial’noy izbiratel’noy komissiyey
128
+ Chislo utrachennykh otkrepitel’nykh udostovereniy
129
+ Chislo utrachennykh izbiratel’nykh byulleteney
130
+ Chislo izbiratel’nykh byulleteney, ne uchtennykh pri poluchenii
131
+ 1. VSEROSSIYSKAYA POLITICHESKAYA PARTIYA "RODINA"
132
+ 2. Politicheskaya partiya KOMMUNISTICHESKAYA PARTIYA KOMMUNISTY ROSSII
133
+ 3. Politicheskaya partiya "Rossiyskaya partiya pensionerov za spravedlivost’"
134
+ 4. Vserossiyskaya politicheskaya partiya "YEDINAYA ROSSIYA"
135
+ 5. Politicheskaya partiya "Rossiyskaya ekologicheskaya partiya "Zelenyye"
136
+ 6. Politicheskaya partiya "Grazhdanskaya Platforma"
137
+ 7. Politicheskaya partiya LDPR - Liberal’no-demokraticheskaya partiya Rossii
138
+ 8. Politicheskaya partiya "Partiya narodnoy svobody" (PARNAS)
139
+ 9. Vserossiyskaya politicheskaya partiya "PARTIYA ROSTA"
140
+ 10. Obshchestvennaya organizatsiya Vserossiyskaya politicheskaya partiya "Grazhdanskaya Sila"
141
+ 11. Politicheskaya partiya "Rossiyskaya ob"yedinennaya demokraticheskaya partiya "YABLOKO"
142
+ 12. Politicheskaya partiya "KOMMUNISTICHESKAYA PARTIYA ROSSIYSKOY FEDERATSII"
143
+ 13. Politicheskaya partiya "PATRIOTY ROSSII"
144
+ 14. Politicheskaya partiya SPRAVEDLIVAYA ROSSIYA
145
+
146
+ Dannyye okruzhnykh izbiratel’nykh komissiy o chisle otkrepitel’nykh udostovereniy
147
+
148
+
149
+ Chislo otkrepitel’nykh udostovereniy, poluchennykh okruzhnoy izbiratel’noy komissiyey
150
+ Chislo otkrepitel’nykh udostovereniy, vydannykh territorial’nym izbiratel’nym komissiyam
151
+ Chislo neispol’zovannykh otkrepitel’nykh udostovereniy, pogashennykh okruzhnoy izbiratel’noy komissiyey
152
+ Chislo otkrepitel’nykh udostovereniy, utrachennykh v okruzhnoy izbiratel’noy komissii
153
+ - source: ДЛИННОЕ ПОКРЫВАЛО
154
+ expected: DLINNOYE POKRYVALO
155
+ - source: Еловая шишка
156
+ expected: Yelovaya shishka
157
+ - source: ЕЛОВАЯ ШИШКА
158
+ expected: YELOVAYA SHISHKA
159
+ - source: Длинное покрывало
160
+ expected: Dlinnoye pokryvalo
161
+ - source: В лесу еловые шишки
162
+ expected: V lesu yelovyye shishki
163
+ - source: OН ВИДЕЛ ЕЁ В ПЕРВЫЙ РАЗ
164
+ expected: ON VIDEL YEYË V PERVYY RAZ
165
+ - source: Ёж колючий
166
+ expected: Yëzh kolyuchiy
167
+ - source: ЁЖ КОЛЮЧИЙ
168
+ expected: YËZH KOLYUCHIY
169
+ - source: Он видел её в первый раз
170
+ expected: On videl yeyë v pervyy raz
171
+ - source: У ёжа колючки
172
+ expected: U yëzha kolyuchki
173
+ - source: ЙА Йа йа
174
+ expected: Y·A Y·a y·a
175
+ - source: ЫУ Ыу ыу
176
+ expected: Y·U Y·u y·u
177
+ - source: ОЫ Оы оы
178
+ expected: O·Y O·y o·y
179
+ - source: ОЫУ Оыу оыу
180
+ expected: O·Y·U O·y·u o·y·u
181
+ - source: СЭ Сэ сэ
182
+ expected: S·E S·e s·e
183
+ - source: ТС тс Тс тС
184
+ expected: T·S t·s T·s t·S
185
+ - source: ШЧ шч Шч шЧ
186
+ expected: SH·CH sh·ch Sh·ch sh·Ch
187
+
188
+ map:
189
+ rules:
190
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯяЙйЪъЬь])\u0401 # Ё after a, e, ё, и, о, у, ы, э, ю, я, й, ъ, ь
191
+ result: "Y\u00eb"
192
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯяЙйЪъЬь])\u0451 # ё after a, e, ё, и, о, у, ы, э, ю, я, й, ъ, ь
193
+ result: "y\u00eb"
194
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯяЙйЪъЬь])\u0415 # Е after a, e, ё, и, о, у, ы, э, ю, я, й, ъ, ь
195
+ result: "Y\u0415"
196
+ - pattern: \b\u0415 # Е initially
197
+ result: "Y\u0435"
198
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯяЙйЪъЬь])\u0435 # е after a, e, ё, и, о, у, ы, э, ю, я, й, ъ, ь
199
+ result: "y\u0435"
200
+ - pattern: \b\u0435 # е initially
201
+ result: "y\u0435"
202
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯяЙйЪъЬь])\u0401 # Ё after a, e, ё, и, о, у, ы, э, ю, я, й, ъ, ь
203
+ result: "Y\u00eb"
204
+ - pattern: \b\u0401
205
+ result: "Y\u00eb"
206
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯяЙйЪъЬь])\u0451 # ё after a, e, ё, и, о, у, ы, э, ю, я, й, ъ, ь
207
+ result: "y\u00eb"
208
+ - pattern: \b\u0451
209
+ result: "y\u00eb"
210
+ - pattern: \u0419(?=[АаУуЫыЭэ]) # Й before а, у, ы, or э
211
+ result: "Y\u00b7"
212
+ - pattern: \u0439(?=[АаУуЫыЭэ]) # й before а, у, ы, or э
213
+ result: "y\u00b7"
214
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯя])\u042b(?=[АаУуЫыЭэ]) # Ы after any vowel character and before а, у, ы, or э
215
+ result: "\u00b7Y\u00b7"
216
+ - pattern: (?<=[АаЕеЁёИиОоУуЫыЭэЮюЯя])\u044b(?=[АаУуЫыЭэ]) # ы after any vowel character and before а, у, ы, or э
217
+ result: "\u00b7y\u00b7"
218
+ - pattern: \u042b(?=[АаУуЫыЭэ]) # Ы before а, у, ы, or э
219
+ result: "Ы\u00b7"
220
+ - pattern: \u044b(?=[АаУуЫыЭэ]) # ы before а, у, ы, or э
221
+ result: "ы\u00b7"
222
+ - pattern: (?<=[Оо])\u042b # Ы after о
223
+ result: "\u00b7Y"
224
+ - pattern: (?<=[Оо])\u044b # ы after о
225
+ result: "\u00b7y"
226
+ - pattern: \b\u0401
227
+ result: "Y\u00eb"
228
+ - pattern: \b\u0451
229
+ result: "y\u00eb"
230
+ - pattern: (?<=[БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧчШшЩщ])\u042d # Э after any consonant character except й
231
+ result: "\u00b7E"
232
+ - pattern: (?<=[БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧчШшЩщ])\u044d # э after any consonant character except й
233
+ result: "\u00b7e"
234
+ - pattern: (Т|т)(С|с) # тс => t·s
235
+ result: "\\1\u00b7\\2"
236
+ - pattern: (Ш|ш)(Ч|ч) # шч => sh·ch
237
+ result: "\\1\u00b7\\2"
238
+
239
+ postrules:
240
+
241
+ #YE
242
+ - pattern: "((?<=[[:upper:]])Ye(?=[[:upper:]])?|(?<=[[:upper:]])?Ye(?=[[:upper:]]))"
243
+ result: "YE"
244
+ #YË
245
+ - pattern: "((?<=[[:upper:]])Yë(?=[[:upper:]])?|(?<=[[:upper:]])?Yë(?=[[:upper:]]))"
246
+ result: "YË"
247
+
248
+ characters:
249
+ "\u0410": "A"
250
+ "\u0411": "B"
251
+ "\u0412": "V"
252
+ "\u0413": "G"
253
+ "\u0414": "D"
254
+ "\u0415": "E"
255
+ "\u0401": "\u00cb" # Ё
256
+ "\u0416": "Zh"
257
+ "\u0417": "Z"
258
+ "\u0418": "I"
259
+ "\u0419": "Y"
260
+ "\u041a": "K"
261
+ "\u041b": "L"
262
+ "\u041c": "M"
263
+ "\u041d": "N"
264
+ "\u041e": "O"
265
+ "\u041f": "P"
266
+ "\u0420": "R"
267
+ "\u0421": "S"
268
+ "\u0422": "T"
269
+ "\u0423": "U"
270
+ "\u0424": "F"
271
+ "\u0425": "Kh"
272
+ "\u0426": "Ts"
273
+ "\u0427": "Ch"
274
+ "\u0428": "Sh"
275
+ "\u0429": "Shch"
276
+ "\u042a": "\"" # Ъ
277
+ "\u042b": "Y"
278
+ "\u042c": "\u2019" # Ь => ’
279
+ "\u042d": "E"
280
+ "\u042e": "Yu"
281
+ "\u042f": "Ya"
282
+ "\u0430": "a"
283
+ "\u0431": "b"
284
+ "\u0432": "v"
285
+ "\u0433": "g"
286
+ "\u0434": "d"
287
+ "\u0435": "e"
288
+ "\u0451": "\u00eb" # ё
289
+ "\u0436": "zh"
290
+ "\u0437": "z"
291
+ "\u0438": "i"
292
+ "\u0439": "y"
293
+ "\u043a": "k"
294
+ "\u043b": "l"
295
+ "\u043c": "m"
296
+ "\u043d": "n"
297
+ "\u043e": "o"
298
+ "\u043f": "p"
299
+ "\u0440": "r"
300
+ "\u0441": "s"
301
+ "\u0442": "t"
302
+ "\u0443": "u"
303
+ "\u0444": "f"
304
+ "\u0445": "kh"
305
+ "\u0446": "ts"
306
+ "\u0447": "ch"
307
+ "\u0448": "sh"
308
+ "\u0449": "shch"
309
+ "\u044a": "\"" # ъ
310
+ "\u044b": "y"
311
+ "\u044c": "\u2019" # ь => ’
312
+ "\u044d": "e"
313
+ "\u044e": "yu"
314
+ "\u044f": "ya"
@@ -0,0 +1,166 @@
1
+ ---
2
+ authority_id: bgnpcgn
3
+ id: 2005
4
+ language: srp
5
+ source_script: Cyrl
6
+ destination_script: Latn
7
+ name: ROMANIZATION OF SERBIAN, BGN/PCGN 2005 System
8
+ url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/816783/TABLE_OF_CORRESPONDENCES_FOR_SERBIAN.pdf
9
+ creation_date: 2005
10
+ confirmation_date: 2019-06
11
+ description: |
12
+ The tabulation below reflects the Serbian Cyrillic alphabet and the standard Roman script equivalents
13
+ used in both Serbia and Montenegro.
14
+
15
+ notes:
16
+ - The Serbian Cyrillic lowercase italic Д may sometimes be seen as g.
17
+ There is no specific Unicode encoding for this variant form so a comparable character
18
+ has been used here for illustrative purposes.
19
+
20
+ - The digraph dj(Dj) will occasionally be found as an alternative form of đ(Đ).
21
+
22
+ - The Serbian Cyrillic lowercase italic П may sometimes be seen as ӣ.
23
+ There is no specific Unicode encoding for this variant form so a comparable character
24
+ has been used here for illustrative purposes.
25
+
26
+ - The Serbian Cyrillic lowercase italic Т may sometimes be seen as w.
27
+ There is no specific Unicode encoding for this variant form so a comparable character
28
+ has been used here for illustrative purposes.
29
+
30
+ - |
31
+ An inventory of letter-diacritic combinations, with their Unicode encoding,
32
+ in addition to the unmodified letters of the basic Roman script is:
33
+ | Đ (U+0110) | đ (U+0111) |
34
+ | Ž (U+017D) | ž (U+017E) |
35
+ | Lj (U+01C8)* | lj (U+01C9)* |
36
+ | Ć (U+0106) | ć (U+0107) |
37
+ | Dž (U+01C5)* | dž (U+01C6)* |
38
+ | Š (U+0160) | š (U+0161) |
39
+ * Note that these characters can also be reproduced with individual letters (e.g. l+j).
40
+
41
+ - The Roman-script columns show only lowercase forms but, when applying the table,
42
+ uppercase and lowercase Roman letters as appropriate should be used.
43
+
44
+ tests:
45
+ - source: Шупља Стена
46
+ expected: Šuplja Stena
47
+ - source: Чукарица
48
+ expected: Čukarica
49
+ - source: Црна Трава
50
+ expected: Crna Trava
51
+ - source: Херцег Нови
52
+ expected: Herceg Novi
53
+ - source: Улцињ
54
+ expected: Ulcinj
55
+ - source: Ужице
56
+ expected: Užice
57
+ - source: Тресаначка Река
58
+ expected: Tresanačka Reka
59
+ - source: Сјеница
60
+ expected: Sjenica
61
+ - source: Рожаје
62
+ expected: Rožaje
63
+ - source: Пљевља
64
+ expected: Pljevlja
65
+ - source: Оџаци
66
+ expected: Odžaci
67
+ - source: Никшић
68
+ expected: Nikšić
69
+ - source: Медвеђа
70
+ expected: Medveđa
71
+ - source: Лозница
72
+ expected: Loznica
73
+ - source: Књажевац
74
+ expected: Knjaževac
75
+ - source: Зрењанин
76
+ expected: Zrenjanin
77
+ - source: Житорађа
78
+ expected: Žitorađa
79
+ - source: Ервеник
80
+ expected: Ervenik
81
+ - source: Доње Љупче
82
+ expected: Donje Ljupče
83
+ - source: Гусиње
84
+ expected: Gusinje
85
+ - source: ГУСИЊЕ
86
+ expected: GUSINJE
87
+ - source: Врњачка Бања
88
+ expected: Vrnjačka Banja
89
+ - source: Бијело Поље
90
+ expected: Bijelo Polje
91
+ - source: Алибунар
92
+ expected: Alibunar
93
+
94
+ map:
95
+ postrules:
96
+ #LJ
97
+ - pattern: "((?<=[[:upper:]])Lj(?=[[:upper:]])?|(?<=[[:upper:]])?Lj(?=[[:upper:]]))"
98
+ result: "LJ"
99
+ #NJ
100
+ - pattern: "((?<=[[:upper:]])Nj(?=[[:upper:]])?|(?<=[[:upper:]])?Nj(?=[[:upper:]]))"
101
+ result: "NJ"
102
+ #DŽ
103
+ - pattern: "((?<=[[:upper:]])Dž(?=[[:upper:]])?|(?<=[[:upper:]])?Dž(?=[[:upper:]]))"
104
+ result: "DŽ"
105
+
106
+ characters:
107
+ "\u0410": "A"
108
+ "\u0411": "B"
109
+ "\u0412": "V"
110
+ "\u0413": "G"
111
+ "\u0414": "D"
112
+ "\u0402": "\u0110" # Đ
113
+ "\u0415": "E"
114
+ "\u0416": "\u005a\u030c" # Ž
115
+ "\u0417": "Z"
116
+ "\u0418": "I"
117
+ "\u0408": "J"
118
+ "\u041A": "K"
119
+ "\u041B": "L"
120
+ "\u0409": "Lj"
121
+ "\u041C": "M"
122
+ "\u041D": "N"
123
+ "\u040A": "Nj"
124
+ "\u041E": "O"
125
+ "\u041F": "P"
126
+ "\u0420": "R"
127
+ "\u0421": "S"
128
+ "\u0422": "T"
129
+ "\u040B": "\u0043\u0301" # Ć
130
+ "\u0423": "U"
131
+ "\u0424": "F"
132
+ "\u0425": "H"
133
+ "\u0426": "C"
134
+ "\u0427": "\u0043\u030c" # Č
135
+ "\u040F": "D\u007a\u030c" # Dž
136
+ "\u0428": "\u0053\u030c" # Š
137
+ "\u0430": "a"
138
+ "\u0431": "b"
139
+ "\u0432": "v"
140
+ "\u0433": "g"
141
+ "\u0434": "d"
142
+ "\u0452": "\u0111" # đ
143
+ "\u0435": "e"
144
+ "\u0436": "\u007a\u030c" # ž
145
+ "\u0437": "z"
146
+ "\u0438": "i"
147
+ "\u0458": "j"
148
+ "\u043A": "k"
149
+ "\u043B": "l"
150
+ "\u0459": "lj"
151
+ "\u043C": "m"
152
+ "\u043D": "n"
153
+ "\u045A": "nj"
154
+ "\u043E": "o"
155
+ "\u043F": "p"
156
+ "\u0440": "r"
157
+ "\u0441": "s"
158
+ "\u0442": "t"
159
+ "\u045B": "\u0063\u0301" # ć́
160
+ "\u0443": "u"
161
+ "\u0444": "f"
162
+ "\u0445": "h"
163
+ "\u0446": "c"
164
+ "\u0447": "\u0063\u030c" # č
165
+ "\u045F": "d\u007a\u030c" # dž
166
+ "\u0448": "\u0073\u030c" # š