interscript-maps 2.5.1 → 3.0.0

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 (180) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +76 -5
  3. data/interscript-maps.gemspec +1 -1
  4. data/libs/posix.isc +7 -0
  5. data/libs/unicode.isc +8 -0
  6. data/libs/var-Cyrl.isc +8 -0
  7. data/libs/var-kor.isc +14 -0
  8. data/maps/alalc-ban-Bali-Latn-2025.isc +610 -0
  9. data/maps/alalc-bod-Tibt-Latn-2015.isc +2249 -0
  10. data/maps/alalc-btk-Batk-Latn-2012.isc +330 -0
  11. data/maps/alalc-cjm-Cham-Latn-2015.isc +18189 -0
  12. data/maps/alalc-ell-Grek-Latn-2010.isc +1 -0
  13. data/maps/alalc-jav-Java-Latn-2012.isc +3963 -0
  14. data/maps/alalc-khm-Khmr-Latn-2013.isc +3569 -0
  15. data/maps/alalc-lao-Laoo-Latn-2012.isc +2176 -0
  16. data/maps/alalc-lep-Lepc-Latn-2012.isc +10241 -0
  17. data/maps/alalc-lif-Limb-Latn-2011.isc +267 -0
  18. data/maps/alalc-mkd-Cyrl-Latn-1997.isc +1 -0
  19. data/maps/alalc-mkd-Cyrl-Latn-2013.isc +1 -0
  20. data/maps/alalc-mni-Mtei-Latn-2022.isc +289 -0
  21. data/maps/alalc-mya-Mymr-Latn-2011.isc +2723 -0
  22. data/maps/alalc-sat-Olck-Latn-2017.isc +77 -0
  23. data/maps/alalc-shn-Shan-Latn-2012.isc +906 -0
  24. data/maps/alalc-srp-Cyrl-Latn-1997.isc +1 -0
  25. data/maps/alalc-tha-Thai-Latn-2011.isc +1830 -0
  26. data/maps/bas-rus-Cyrl-Latn-2017-bss.isc +1 -0
  27. data/maps/bgnpcgn-ady-Cyrl-Latn-2012.isc +333 -0
  28. data/maps/bgnpcgn-av-Cyrl-Latn-2011.isc +181 -0
  29. data/maps/bgnpcgn-ava-Cyrl-Latn-2011.isc +264 -0
  30. data/maps/bgnpcgn-chv-Cyrl-Latn-2011.isc +242 -0
  31. data/maps/bgnpcgn-cv-Cyrl-Latn-2011.isc +179 -0
  32. data/maps/bgnpcgn-deu-Latn-Latn-2000.isc +1 -0
  33. data/maps/bgnpcgn-dzo-Tibt-Latn-2010.isc +523 -0
  34. data/maps/bgnpcgn-iu-Cans-Latn-2013.isc +280 -0
  35. data/maps/bgnpcgn-kbd-Cyrl-Latn-2011.isc +295 -0
  36. data/maps/bgnpcgn-krc-Cyrl-Latn-2008.isc +218 -0
  37. data/maps/bgnpcgn-kur-Arab-Latn-2007.isc +4 -1
  38. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.isc +1 -0
  39. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.isc +1 -0
  40. data/maps/bgnpcgn-os-Cyrl-Latn-2009.isc +187 -0
  41. data/maps/bgnpcgn-oss-Cyrl-Latn-2009.isc +259 -0
  42. data/maps/bgnpcgn-sah-Cyrl-Latn-2012.isc +257 -0
  43. data/maps/bgnpcgn-syc-Syrc-Latn-2011.isc +94 -0
  44. data/maps/bgnpcgn-syr-Syrc-Latn-2011.isc +118 -0
  45. data/maps/bgnpcgn-tha-Thai-Latn-2002.isc +595 -0
  46. data/maps/bgnpcgn-udm-Cyrl-Latn-2011.isc +225 -0
  47. data/maps/bsi-bel-Cyrl-Latn-1958.isc +148 -0
  48. data/maps/bsi-bul-Cyrl-Latn-1958.isc +137 -0
  49. data/maps/bsi-chu-Cyrl-Latn-1958.isc +226 -0
  50. data/maps/bsi-ell-Grek-Latn-1958.isc +445 -0
  51. data/maps/bsi-kor-Kore-Latn-6505-1982-t8.isc +2757 -0
  52. data/maps/bsi-kor-Kore-Latn-6505-1982.isc +11327 -0
  53. data/maps/bsi-mkd-Cyrl-Latn-1958.isc +140 -0
  54. data/maps/bsi-ron-Cyrl-Latn-1958.isc +244 -0
  55. data/maps/bsi-rus-Cyrl-Latn-1958.isc +199 -0
  56. data/maps/bsi-srp-Cyrl-Latn-1958.isc +134 -0
  57. data/maps/bsi-ukr-Cyrl-Latn-1958.isc +129 -0
  58. data/maps/by-bel-Cyrl-Latn-1998.isc +1 -0
  59. data/maps/din-ab-Cyrl-Latn-1460-2-2011.isc +83 -0
  60. data/maps/din-abq-Cyrl-Latn-1460-2-2011.isc +66 -0
  61. data/maps/din-ady-Cyrl-Latn-1460-2-2011.isc +73 -0
  62. data/maps/din-ara-Arab-Latn-31635-2011.isc +402 -0
  63. data/maps/din-atv-Cyrl-Latn-1460-2-2011.isc +80 -0
  64. data/maps/din-av-Cyrl-Latn-1460-2-2011.isc +74 -0
  65. data/maps/din-az-Cyrl-Latn-1460-2-2011.isc +80 -0
  66. data/maps/din-ba-Cyrl-Latn-1460-2-2011.isc +82 -0
  67. data/maps/din-bxr-Cyrl-Latn-1460-2-2011.isc +77 -0
  68. data/maps/din-ce-Cyrl-Latn-1460-2-2011.isc +81 -0
  69. data/maps/din-cjs-Cyrl-Latn-1460-2-2011.isc +79 -0
  70. data/maps/din-ckt-Cyrl-Latn-1460-2-2011.isc +73 -0
  71. data/maps/din-crh-Cyrl-Latn-1460-2-2011.isc +74 -0
  72. data/maps/din-cv-Cyrl-Latn-1460-2-2011.isc +87 -0
  73. data/maps/din-dar-Cyrl-Latn-1460-2-2011.isc +74 -0
  74. data/maps/din-dng-Cyrl-Latn-1460-2-2011.isc +78 -0
  75. data/maps/din-ess-Cyrl-Latn-1460-2-2011-s14.isc +79 -0
  76. data/maps/din-eve-Cyrl-Latn-1460-2-2011.isc +77 -0
  77. data/maps/din-evn-Cyrl-Latn-1460-2-2011.isc +75 -0
  78. data/maps/din-fas-Arab-Latn-31635-2011.isc +337 -0
  79. data/maps/din-gag-Cyrl-Latn-1460-2-2011.isc +78 -0
  80. data/maps/din-gld-Cyrl-Latn-1460-2-2011.isc +74 -0
  81. data/maps/din-heb-Hebr-Latn-31636-2018.isc +355 -0
  82. data/maps/din-hye-Armn-Latn-32706-2010.isc +197 -0
  83. data/maps/din-inh-Cyrl-Latn-1460-2-2011.isc +74 -0
  84. data/maps/din-jpn-Hrkt-Latn-32708-2014.isc +1316 -0
  85. data/maps/din-kaa-Cyrl-Latn-1460-2-2011.isc +81 -0
  86. data/maps/din-kbd-Cyrl-Latn-1460-2-2011.isc +74 -0
  87. data/maps/din-kca-Cyrl-Latn-1460-2-2011-s25.isc +78 -0
  88. data/maps/din-kca-Cyrl-Latn-1460-2-2011-s36.isc +75 -0
  89. data/maps/din-kca-Cyrl-Latn-1460-2-2011-s48.isc +75 -0
  90. data/maps/din-kca-Cyrl-Latn-1460-2-2011-s50.isc +81 -0
  91. data/maps/din-kca-Cyrl-Latn-1460-2-2011-s62.isc +81 -0
  92. data/maps/din-khk-Cyrl-Latn-1460-2-2011.isc +76 -0
  93. data/maps/din-kjh-Cyrl-Latn-1460-2-2011.isc +88 -0
  94. data/maps/din-kk-Cyrl-Latn-1460-2-2011.isc +82 -0
  95. data/maps/din-koi-Cyrl-Latn-1460-2-2011.isc +78 -0
  96. data/maps/din-kpy-Cyrl-Latn-1460-2-2011.isc +76 -0
  97. data/maps/din-krc-Cyrl-Latn-1460-2-2011-s23.isc +83 -0
  98. data/maps/din-krc-Cyrl-Latn-1460-2-2011-s7.isc +75 -0
  99. data/maps/din-ku-Cyrl-Latn-1460-2-2011-s32.isc +77 -0
  100. data/maps/din-kum-Cyrl-Latn-1460-2-2011.isc +78 -0
  101. data/maps/din-kur-Arab-Latn-31635-2011.isc +196 -0
  102. data/maps/din-kv-Cyrl-Latn-1460-2-2011.isc +78 -0
  103. data/maps/din-ky-Cyrl-Latn-1460-2-2011.isc +77 -0
  104. data/maps/din-lbe-Cyrl-Latn-1460-2-2011.isc +66 -0
  105. data/maps/din-lez-Cyrl-Latn-1460-2-2011.isc +74 -0
  106. data/maps/din-mdf-Cyrl-Latn-1460-2-2011.isc +78 -0
  107. data/maps/din-mhr-Cyrl-Latn-1460-2-2011.isc +79 -0
  108. data/maps/din-mns-Cyrl-Latn-1460-2-2011.isc +76 -0
  109. data/maps/din-mrj-Cyrl-Latn-1460-2-2011.isc +79 -0
  110. data/maps/din-myv-Cyrl-Latn-1460-2-2011.isc +74 -0
  111. data/maps/din-niv-Cyrl-Latn-1460-2-2011.isc +80 -0
  112. data/maps/din-nog-Cyrl-Latn-1460-2-2011.isc +74 -0
  113. data/maps/din-os-Cyrl-Latn-1460-2-2011.isc +89 -0
  114. data/maps/din-ro-Cyrl-Latn-1460-2-2011-s38.isc +72 -0
  115. data/maps/din-sah-Cyrl-Latn-1460-2-2011.isc +89 -0
  116. data/maps/din-sel-Cyrl-Latn-1460-2-2011.isc +80 -0
  117. data/maps/din-tab-Cyrl-Latn-1460-2-2011.isc +74 -0
  118. data/maps/din-tg-Cyrl-Latn-1460-2-2011.isc +83 -0
  119. data/maps/din-tk-Cyrl-Latn-1460-2-2011.isc +78 -0
  120. data/maps/din-tt-Cyrl-Latn-1460-2-2011.isc +53 -0
  121. data/maps/din-tyv-Cyrl-Latn-1460-2-2011.isc +77 -0
  122. data/maps/din-udm-Cyrl-Latn-1460-2-2011.isc +79 -0
  123. data/maps/din-ug-Cyrl-Latn-1460-2-2011.isc +81 -0
  124. data/maps/din-urd-Arab-Latn-31635-2011.isc +300 -0
  125. data/maps/din-uz-Cyrl-Latn-1460-2-2011.isc +76 -0
  126. data/maps/din-xal-Cyrl-Latn-1460-2-2011.isc +82 -0
  127. data/maps/din-yid-Hebr-Latn-31636-2018.isc +208 -0
  128. data/maps/din-yrk-Cyrl-Latn-1460-2-2011.isc +76 -0
  129. data/maps/gki-bel-Cyrl-Latn-2000.isc +1 -0
  130. data/maps/gost-rus-Cyrl-Latn-16876-71-1983.isc +1 -0
  131. data/maps/icao-bel-Cyrl-Latn-9303.isc +41 -4
  132. data/maps/icao-bul-Cyrl-Latn-9303.isc +36 -5
  133. data/maps/icao-fas-Arab-Latn-9303.isc +28 -8
  134. data/maps/icao-heb-Hebr-Latn-9303.isc +5 -0
  135. data/maps/icao-mkd-Cyrl-Latn-9303.isc +49 -6
  136. data/maps/icao-mul-Latn-Latn-2015.isc +256 -0
  137. data/maps/icao-rus-Cyrl-Latn-9303.isc +29 -0
  138. data/maps/icao-srp-Cyrl-Latn-9303.isc +53 -4
  139. data/maps/icao-ukr-Cyrl-Latn-9303.isc +53 -7
  140. data/maps/iso-rus-Cyrl-Latn-9-1995.isc +14 -4
  141. data/maps/kp-kor-Hang-Latn-2002.isc +1 -0
  142. data/maps/odni-kor-Hang-Latn-2015.isc +1 -0
  143. data/maps/odni-kur-Arab-Latn-2011.isc +280 -0
  144. data/maps/odni-prs-Arab-Latn-2004.isc +0 -1
  145. data/maps/odni-zho-Hani-Latn-2015.isc +457 -0
  146. data/maps/royin-tha-Thai-Latn-1999.isc +60 -0
  147. data/maps/un-amh-Ethi-Latn-2016.isc +3 -0
  148. data/maps/un-ara-Arab-Latn-1971.isc +2 -0
  149. data/maps/un-ara-Arab-Latn-1972.isc +4 -0
  150. data/maps/un-ara-Arab-Latn-2017.isc +129 -15
  151. data/maps/un-asm-Beng-Latn-1972.isc +9 -1
  152. data/maps/un-bel-Cyrl-Latn-2007.isc +17 -0
  153. data/maps/un-ben-Beng-Latn-2016.isc +4422 -128
  154. data/maps/un-bul-Cyrl-Latn-1977.isc +50 -34
  155. data/maps/un-ell-Grek-Latn-1987-phonetic.isc +1 -0
  156. data/maps/un-ell-Grek-Latn-1987-tl.isc +8 -0
  157. data/maps/un-ell-Grek-Latn-1987-ts.isc +1 -0
  158. data/maps/un-guj-Gujr-Latn-1972.isc +2 -0
  159. data/maps/un-hin-Deva-Latn-2016.isc +6 -0
  160. data/maps/un-kan-Kana-Latn-2016.isc +2 -0
  161. data/maps/un-mal-Mlym-Latn-1972.isc +8 -2
  162. data/maps/un-mar-Deva-Latn-2016.isc +10 -9
  163. data/maps/un-mkd-Cyrl-Latn-1977.isc +12 -0
  164. data/maps/un-mon-Mong-Latn-general-2013.isc +3 -0
  165. data/maps/un-mon-Mong-Latn-phonetic-2013.isc +3 -0
  166. data/maps/un-nep-Deva-Latn-1972.isc +2 -0
  167. data/maps/un-nep-Deva-Latn-2013.isc +2 -0
  168. data/maps/un-ori-Orya-Latn-1972.isc +16 -6
  169. data/maps/un-pan-Guru-Latn-1972.isc +2 -0
  170. data/maps/un-prs-Arab-Latn-1967.isc +2 -6
  171. data/maps/un-rus-Cyrl-Latn-1987.isc +8 -4
  172. data/maps/un-sin-Sinh-Latn-1972.isc +4 -0
  173. data/maps/un-srp-Cyrl-Latn-1997.isc +9 -1
  174. data/maps/un-tam-Taml-Latn-1972.isc +2 -0
  175. data/maps/un-tel-Telu-Latn-1972.isc +2 -0
  176. data/maps/un-ukr-Cyrl-Latn-1998.isc +2 -0
  177. data/maps/un-ukr-Cyrl-Latn-2012.isc +7 -1
  178. data/maps/un-urd-Arab-Latn-1972.isc +9 -3
  179. data/maps/var-kor-Hang-Latn-mr-1939.isc +3 -3
  180. metadata +120 -1
@@ -0,0 +1,256 @@
1
+ system "ICAO:mul-Latn:Latn:2015" {
2
+
3
+ metadata {
4
+ authority_id icao
5
+ id 9303
6
+ language iso-639-2:mul
7
+ source_script Latn
8
+ destination_script Latn
9
+ name "ICAO Doc 9303 Machine Readable Travel Documents Part 3 -- Transliteration of Multinational Latin-based Characters"
10
+ url https://www.icao.int/publications/pages/publication.aspx?docnum=9303
11
+ creation_date 2015
12
+ description { Part 3 defines specifications that are common to TD1, TD2 and TD3 size machine
13
+ readable travel documents (MRTDs) including those necessary for global
14
+ interoperability using visual inspection and machine readable (optical character
15
+ recognition) means. Section A of the document's transliteration scheme renders
16
+ the multinational Latin-based characters; this map carries that folding for
17
+ Latin-script input. The document's per-language Cyrillic tables are separate
18
+ maps.
19
+ }
20
+
21
+ notes {
22
+ note "The source table gives some letters alternative renderings (a with diaeresis ae or a, a with ring aa or a, n with tilde n or nxx, o with diaeresis oe or o, u with diaeresis ue or u-variants); this map applies the primary expanded renderings (ae, aa, n, oe, ue) and documents the alternatives."
23
+ note "The letter thorn renders th and the sharp s renders ss; the dotless i renders i; the ligatures ae and oe render as their two-letter expansions and ij as ij."
24
+ note "Where a letter's uppercase and lowercase rows differ in the source (the sharp s appears in both), both renderings follow the source's letter values."
25
+ }
26
+ }
27
+
28
+ tests {
29
+ "À" -> "A"
30
+ "à" -> "a"
31
+ "Ä" -> "AE"
32
+ "ä" -> "ae"
33
+ "Å" -> "AA"
34
+ "å" -> "aa"
35
+ "Æ" -> "AE"
36
+ "æ" -> "ae"
37
+ "Ñ" -> "N"
38
+ "ñ" -> "n"
39
+ "Ø" -> "OE"
40
+ "ø" -> "oe"
41
+ "Ü" -> "UE"
42
+ "ü" -> "ue"
43
+ "Þ" -> "TH"
44
+ "þ" -> "th"
45
+ "ß" -> "ss"
46
+ "Đ" -> "D"
47
+ "đ" -> "d"
48
+ "Ł" -> "L"
49
+ "ł" -> "l"
50
+ "Œ" -> "OE"
51
+ "œ" -> "oe"
52
+ "IJ" -> "IJ"
53
+ "ij" -> "ij"
54
+ "Š" -> "S"
55
+ "š" -> "s"
56
+ "Ž" -> "Z"
57
+ "ž" -> "z"
58
+ }
59
+
60
+ stage main {
61
+
62
+ # CHARACTERS
63
+ parallel {
64
+ sub "À" "A"
65
+ sub "Á" "A"
66
+ sub "Â" "A"
67
+ sub "Ã" "A"
68
+ sub "Ä" "AE"
69
+ sub "Å" "AA"
70
+ sub "Æ" "AE"
71
+ sub "Ç" "C"
72
+ sub "È" "E"
73
+ sub "É" "E"
74
+ sub "Ê" "E"
75
+ sub "Ë" "E"
76
+ sub "Ì" "I"
77
+ sub "Í" "I"
78
+ sub "Î" "I"
79
+ sub "Ï" "I"
80
+ sub "Ð" "D"
81
+ sub "Ñ" "N"
82
+ sub "Ò" "O"
83
+ sub "Ó" "O"
84
+ sub "Ô" "O"
85
+ sub "Õ" "O"
86
+ sub "Ö" "OE"
87
+ sub "Ø" "OE"
88
+ sub "Ù" "U"
89
+ sub "Ú" "U"
90
+ sub "Û" "U"
91
+ sub "Ü" "UE"
92
+ sub "Ý" "Y"
93
+ sub "Þ" "TH"
94
+ sub "ß" "ss"
95
+ sub "Ā" "A"
96
+ sub "Ă" "A"
97
+ sub "Ą" "A"
98
+ sub "Ć" "C"
99
+ sub "Ĉ" "C"
100
+ sub "Ċ" "C"
101
+ sub "Č" "C"
102
+ sub "Ď" "D"
103
+ sub "Đ" "D"
104
+ sub "Ē" "E"
105
+ sub "Ĕ" "E"
106
+ sub "Ė" "E"
107
+ sub "Ę" "E"
108
+ sub "Ě" "E"
109
+ sub "Ĝ" "G"
110
+ sub "Ğ" "G"
111
+ sub "Ġ" "G"
112
+ sub "Ģ" "G"
113
+ sub "Ĥ" "H"
114
+ sub "Ħ" "H"
115
+ sub "Ĩ" "I"
116
+ sub "Ī" "I"
117
+ sub "Ĭ" "I"
118
+ sub "Į" "I"
119
+ sub "İ" "I"
120
+ sub "IJ" "IJ"
121
+ sub "Ĵ" "J"
122
+ sub "Ķ" "K"
123
+ sub "Ĺ" "L"
124
+ sub "Ļ" "L"
125
+ sub "Ľ" "L"
126
+ sub "Ŀ" "L"
127
+ sub "Ł" "L"
128
+ sub "Ń" "N"
129
+ sub "Ņ" "N"
130
+ sub "Ň" "N"
131
+ sub "Ŋ" "N"
132
+ sub "Ō" "O"
133
+ sub "Ŏ" "O"
134
+ sub "Ő" "O"
135
+ sub "Œ" "OE"
136
+ sub "Ŕ" "R"
137
+ sub "Ŗ" "R"
138
+ sub "Ř" "R"
139
+ sub "Ś" "S"
140
+ sub "Ŝ" "S"
141
+ sub "Ş" "S"
142
+ sub "Š" "S"
143
+ sub "Ţ" "T"
144
+ sub "Ť" "T"
145
+ sub "Ŧ" "T"
146
+ sub "Ũ" "U"
147
+ sub "Ū" "U"
148
+ sub "Ŭ" "U"
149
+ sub "Ů" "U"
150
+ sub "Ű" "U"
151
+ sub "Ų" "U"
152
+ sub "Ŵ" "W"
153
+ sub "Ŷ" "Y"
154
+ sub "Ÿ" "Y"
155
+ sub "Ź" "Z"
156
+ sub "Ż" "Z"
157
+ sub "Ž" "Z"
158
+
159
+ sub "à" "a"
160
+ sub "á" "a"
161
+ sub "â" "a"
162
+ sub "ã" "a"
163
+ sub "ä" "ae"
164
+ sub "å" "aa"
165
+ sub "æ" "ae"
166
+ sub "ç" "c"
167
+ sub "è" "e"
168
+ sub "é" "e"
169
+ sub "ê" "e"
170
+ sub "ë" "e"
171
+ sub "ì" "i"
172
+ sub "í" "i"
173
+ sub "î" "i"
174
+ sub "ï" "i"
175
+ sub "ð" "d"
176
+ sub "ñ" "n"
177
+ sub "ò" "o"
178
+ sub "ó" "o"
179
+ sub "ô" "o"
180
+ sub "õ" "o"
181
+ sub "ö" "oe"
182
+ sub "ø" "oe"
183
+ sub "ù" "u"
184
+ sub "ú" "u"
185
+ sub "û" "u"
186
+ sub "ü" "ue"
187
+ sub "ý" "y"
188
+ sub "þ" "th"
189
+ sub "ÿ" "y"
190
+ sub "ā" "a"
191
+ sub "ă" "a"
192
+ sub "ą" "a"
193
+ sub "ć" "c"
194
+ sub "ĉ" "c"
195
+ sub "ċ" "c"
196
+ sub "č" "c"
197
+ sub "ď" "d"
198
+ sub "đ" "d"
199
+ sub "ē" "e"
200
+ sub "ĕ" "e"
201
+ sub "ė" "e"
202
+ sub "ę" "e"
203
+ sub "ě" "e"
204
+ sub "ĝ" "g"
205
+ sub "ğ" "g"
206
+ sub "ġ" "g"
207
+ sub "ģ" "g"
208
+ sub "ĥ" "h"
209
+ sub "ħ" "h"
210
+ sub "ĩ" "i"
211
+ sub "ī" "i"
212
+ sub "ĭ" "i"
213
+ sub "į" "i"
214
+ sub "ı" "i"
215
+ sub "ij" "ij"
216
+ sub "ĵ" "j"
217
+ sub "ķ" "k"
218
+ sub "ĺ" "l"
219
+ sub "ļ" "l"
220
+ sub "ľ" "l"
221
+ sub "ŀ" "l"
222
+ sub "ł" "l"
223
+ sub "ń" "n"
224
+ sub "ņ" "n"
225
+ sub "ň" "n"
226
+ sub "ŋ" "n"
227
+ sub "ō" "o"
228
+ sub "ŏ" "o"
229
+ sub "ő" "o"
230
+ sub "œ" "oe"
231
+ sub "ŕ" "r"
232
+ sub "ŗ" "r"
233
+ sub "ř" "r"
234
+ sub "ś" "s"
235
+ sub "ŝ" "s"
236
+ sub "ş" "s"
237
+ sub "š" "s"
238
+ sub "ţ" "t"
239
+ sub "ť" "t"
240
+ sub "ŧ" "t"
241
+ sub "ũ" "u"
242
+ sub "ū" "u"
243
+ sub "ŭ" "u"
244
+ sub "ů" "u"
245
+ sub "ű" "u"
246
+ sub "ų" "u"
247
+ sub "ŵ" "w"
248
+ sub "ŷ" "y"
249
+ sub "ź" "z"
250
+ sub "ż" "z"
251
+ sub "ž" "z"
252
+ }
253
+
254
+ }
255
+
256
+ }
@@ -22,9 +22,27 @@ metadata {
22
22
  This document defines the transliteration mappings used to produce
23
23
  this transcription or transliteration.
24
24
  }
25
+
26
+ notes {
27
+ note "Diffed against ICAO Doc 9303 Part 3 Amd 1 (16/09/16), Section 6.B: the rows for І, Ќ, Ъ, Ѵ and Ғ were missing and were added with their source values. U+2019 right single quotation mark is now dropped alongside the ASCII apostrophe per Section 4.6 (apostrophes shall be omitted in the MRZ)."
28
+ note "The map carries a row for Ѓ (U+0403) to G, which has no row in the Amd 1 Section 6.B table (the table has Ғ, U+0492, to G); kept as a practical extension."
29
+ note "Soft sign Ь has no row in the Amd 1 Section 6.B table and is left unmapped."
30
+ note "The Amd 1 table prints row 04BA Һ (Cyrillic shha) as C; the map follows the source as printed, though C rather than H may be a source-side erratum."
31
+ }
25
32
  }
26
33
 
27
34
  tests {
35
+ "Ъ" -> "IE"
36
+ "ъ" -> "ie"
37
+ "Ѵ" -> "Y"
38
+ "ѷ" -> "y"
39
+ "Ғ" -> "G"
40
+ "ғ" -> "g"
41
+ "І" -> "I"
42
+ "і" -> "i"
43
+ "Ќ" -> "K"
44
+ "ќ" -> "k"
45
+ "Горбачёв" -> "Gorbachev"
28
46
  }
29
47
 
30
48
  # https://www.icao.int/publications/Documents/9303_p3_cons_en.pdf
@@ -33,6 +51,7 @@ stage main {
33
51
  # CHARACTERS
34
52
  parallel {
35
53
  sub "'" ""
54
+ sub "’" ""
36
55
  sub "А" "A"
37
56
  sub "Б" "B"
38
57
  sub "Д" "D"
@@ -44,6 +63,7 @@ stage main {
44
63
  sub "И" "I"
45
64
  sub "Й" "I"
46
65
  sub "К" "K"
66
+ sub "Ќ" "K"
47
67
  sub "Л" "L"
48
68
  sub "М" "M"
49
69
  sub "Н" "N"
@@ -62,11 +82,14 @@ stage main {
62
82
  sub "Х" "KH"
63
83
  sub "Ш" "SH"
64
84
  sub "Щ" "SHCH"
85
+ sub "Ъ" "IE"
65
86
  sub "Ц" "TS"
66
87
  sub "Ж" "ZH"
67
88
  sub "Ґ" "G"
89
+ sub "Ғ" "G"
68
90
  sub "Ў" "U"
69
91
  sub "Ѫ" "U"
92
+ sub "Ѵ" "Y"
70
93
  sub "Ђ" "D"
71
94
  sub "Ѕ" "DZ"
72
95
  sub "Ј" "J"
@@ -76,6 +99,7 @@ stage main {
76
99
  sub "Џ" "DZ"
77
100
  sub "Є" "IE"
78
101
  sub "Ї" "I"
102
+ sub "І" "I"
79
103
  sub "Ѓ" "G"
80
104
 
81
105
  sub "а" "a"
@@ -89,6 +113,7 @@ stage main {
89
113
  sub "и" "i"
90
114
  sub "й" "i"
91
115
  sub "к" "k"
116
+ sub "ќ" "k"
92
117
  sub "л" "l"
93
118
  sub "м" "m"
94
119
  sub "н" "n"
@@ -107,11 +132,14 @@ stage main {
107
132
  sub "х" "kh"
108
133
  sub "ш" "sh"
109
134
  sub "щ" "shch"
135
+ sub "ъ" "ie"
110
136
  sub "ц" "ts"
111
137
  sub "ж" "zh"
112
138
  sub "ґ" "g"
139
+ sub "ғ" "g"
113
140
  sub "ў" "u"
114
141
  sub "ѫ" "u"
142
+ sub "ѷ" "y"
115
143
  sub "ђ" "d"
116
144
  sub "ѕ" "dz"
117
145
  sub "ј" "j"
@@ -121,6 +149,7 @@ stage main {
121
149
  sub "џ" "dz"
122
150
  sub "є" "ie"
123
151
  sub "ї" "i"
152
+ sub "і" "i"
124
153
  sub "ѓ" "g"
125
154
  }
126
155
 
@@ -22,9 +22,47 @@ metadata {
22
22
  This document defines the transliteration mappings used to produce
23
23
  this transcription or transliteration.
24
24
  }
25
+
26
+ notes {
27
+ note "Diffed against ICAO Doc 9303 Part 3 Amd 1 (16/09/16), Section 6.B: the rows for І, Ќ, Ъ, Ѵ and Ғ were missing and were added with their source values. U+2019 right single quotation mark is now dropped alongside the ASCII apostrophe per Section 4.6 (apostrophes shall be omitted in the MRZ)."
28
+ note "Divergences corrected against the same source: the lowercase rows for у, ю, ў and ѫ were emptied or truncated (to nothing and to i); the source gives У to U, Ю to IU, Ў to U and Ѫ to U regardless of case, so the lowercase rows now mirror their uppercase rows."
29
+ note "Serbian exceptions applied per the source: Г renders H, Ж renders Z, Х renders H, Ц renders C, Ч renders C, Ш renders S. The letter Ћ (Serbian ce with acute), though common in Serbian, has no row in the Amd 1 Section 6.B table and is left unmapped; because Г renders H, the source's rendering of a name such as Београд is Beohrad."
30
+ note "The map carries a row for Ѓ (U+0403) to G, which has no row in the Amd 1 Section 6.B table (the table has Ғ, U+0492, to G); kept as a practical extension."
31
+ note "Soft sign Ь has no row in the Amd 1 Section 6.B table and is left unmapped."
32
+ note "The Amd 1 table prints row 04BA Һ (Cyrillic shha) as C; the map follows the source as printed, though C rather than H may be a source-side erratum."
33
+ }
25
34
  }
26
35
 
27
36
  tests {
37
+ "Г" -> "H"
38
+ "г" -> "h"
39
+ "Ж" -> "Z"
40
+ "ж" -> "z"
41
+ "Х" -> "H"
42
+ "х" -> "h"
43
+ "Ц" -> "C"
44
+ "ц" -> "c"
45
+ "Ч" -> "C"
46
+ "ч" -> "c"
47
+ "Ш" -> "S"
48
+ "ш" -> "s"
49
+ "Ђ" -> "D"
50
+ "ђ" -> "d"
51
+ "Љ" -> "LJ"
52
+ "љ" -> "lj"
53
+ "Њ" -> "NJ"
54
+ "њ" -> "nj"
55
+ "Ј" -> "J"
56
+ "ј" -> "j"
57
+ "у" -> "u"
58
+ "ю" -> "iu"
59
+ "Ъ" -> "IE"
60
+ "ъ" -> "ie"
61
+ "Ѵ" -> "Y"
62
+ "ѷ" -> "y"
63
+ "Ғ" -> "G"
64
+ "ғ" -> "g"
65
+ "Београд" -> "Beohrad"
28
66
  }
29
67
 
30
68
  # https://www.icao.int/publications/Documents/9303_p3_cons_en.pdf
@@ -33,6 +71,7 @@ stage main {
33
71
  # CHARACTERS
34
72
  parallel {
35
73
  sub "'" ""
74
+ sub "’" ""
36
75
  sub "А" "A"
37
76
  sub "Б" "B"
38
77
  sub "Д" "D"
@@ -44,6 +83,7 @@ stage main {
44
83
  sub "И" "I"
45
84
  sub "Й" "I"
46
85
  sub "К" "K"
86
+ sub "Ќ" "K"
47
87
  sub "Л" "L"
48
88
  sub "М" "M"
49
89
  sub "Н" "N"
@@ -62,11 +102,14 @@ stage main {
62
102
  sub "Х" "H"
63
103
  sub "Ш" "S"
64
104
  sub "Щ" "SHCH"
105
+ sub "Ъ" "IE"
65
106
  sub "Ц" "C"
66
107
  sub "Ж" "Z"
67
108
  sub "Ґ" "G"
109
+ sub "Ғ" "G"
68
110
  sub "Ў" "U"
69
111
  sub "Ѫ" "U"
112
+ sub "Ѵ" "Y"
70
113
  sub "Ђ" "D"
71
114
  sub "Ѕ" "DZ"
72
115
  sub "Ј" "J"
@@ -76,6 +119,7 @@ stage main {
76
119
  sub "Џ" "DZ"
77
120
  sub "Є" "IE"
78
121
  sub "Ї" "I"
122
+ sub "І" "I"
79
123
  sub "Ѓ" "G"
80
124
 
81
125
  sub "а" "a"
@@ -89,6 +133,7 @@ stage main {
89
133
  sub "и" "i"
90
134
  sub "й" "i"
91
135
  sub "к" "k"
136
+ sub "ќ" "k"
92
137
  sub "л" "l"
93
138
  sub "м" "m"
94
139
  sub "н" "n"
@@ -97,21 +142,24 @@ stage main {
97
142
  sub "р" "r"
98
143
  sub "с" "s"
99
144
  sub "т" "t"
100
- sub "у" ""
145
+ sub "у" "u"
101
146
  sub "в" "v"
102
147
  sub "ы" "y"
103
148
  sub "з" "z"
104
149
  sub "ч" "c"
105
150
  sub "я" "ia"
106
- sub "ю" "i"
151
+ sub "ю" "iu"
107
152
  sub "х" "h"
108
153
  sub "ш" "s"
109
154
  sub "щ" "shch"
155
+ sub "ъ" "ie"
110
156
  sub "ц" "c"
111
157
  sub "ж" "z"
112
158
  sub "ґ" "g"
113
- sub "ў" ""
114
- sub "ѫ" ""
159
+ sub "ғ" "g"
160
+ sub "ў" "u"
161
+ sub "ѫ" "u"
162
+ sub "ѷ" "y"
115
163
  sub "ђ" "d"
116
164
  sub "ѕ" "dz"
117
165
  sub "ј" "j"
@@ -121,6 +169,7 @@ stage main {
121
169
  sub "џ" "dz"
122
170
  sub "є" "ie"
123
171
  sub "ї" "i"
172
+ sub "і" "i"
124
173
  sub "ѓ" "g"
125
174
  }
126
175
 
@@ -6,7 +6,7 @@ metadata {
6
6
  language iso-639-2:ukr
7
7
  source_script Cyrl
8
8
  destination_script Latn
9
- name ICAO Doc 9303 Machine Readable Travel Documents Part 3 -- Ukranian Cyrillic to Latin
9
+ name ICAO Doc 9303 Machine Readable Travel Documents Part 3 -- Ukrainian Cyrillic to Latin
10
10
  url https://www.icao.int/publications/pages/publication.aspx?docnum=9303
11
11
  creation_date 2015
12
12
  description { Part 3 defines specifications that are common to TD1, TD2 and TD3
@@ -22,9 +22,45 @@ metadata {
22
22
  This document defines the transliteration mappings used to produce
23
23
  this transcription or transliteration.
24
24
  }
25
+
26
+ notes {
27
+ note "Diffed against ICAO Doc 9303 Part 3 Amd 1 (16/09/16), Section 6.B: the rows for Ќ, Ъ, Ѵ and Ғ were missing and were added with their source values. U+2019 right single quotation mark is now dropped alongside the ASCII apostrophe per Section 4.6 (apostrophes shall be omitted in the MRZ). The system name previously misspelled Ukrainian as Ukranian."
28
+ note "Divergences corrected against the same source: Г was rendered G (and г g), but the source's row 0413 gives H for Ukrainian; И already rendered Y per row 0418. The lowercase rows for у, ю, ў and ѫ were emptied or truncated (to nothing and to i); the source gives У to U, Ю to IU, Ў to U and Ѫ to U regardless of case."
29
+ note "NOT ENCODED -- word-initial renderings. The source requires special renderings when the Ukrainian character is the first character of the name: Є renders YE, Ї renders YI, Й renders Y, Ю renders YU and Я renders YA. These positional rules are not expressible as plain parallel substitutions, and the current Ruby ISC runtime drops before/not_before constraints (Interscript::Isc::NodeAdapter reads constraint :value while the DocumentBuilder emits :item), so they would silently never fire. Once the runtime materializes constraints, encode them as sub rules placed before the parallel block, for both cases: sub { from \"Є\" to \"YE\" before boundary not_before boundary + \"’\" } and likewise for Ї/YI, Й/Y, Ю/YU, Я/YA (mirroring origin/icao-9303)."
30
+ note "The map carries a row for Ѓ (U+0403) to G, which has no row in the Amd 1 Section 6.B table (the table has Ғ, U+0492, to G); kept as a practical extension."
31
+ note "Soft sign Ь has no row in the Amd 1 Section 6.B table and is left unmapped."
32
+ note "The Amd 1 table prints row 04BA Һ (Cyrillic shha) as C; the map follows the source as printed, though C rather than H may be a source-side erratum."
33
+ }
25
34
  }
26
35
 
27
36
  tests {
37
+ "Г" -> "H"
38
+ "г" -> "h"
39
+ "И" -> "Y"
40
+ "и" -> "y"
41
+ "Й" -> "I"
42
+ "й" -> "i"
43
+ "Ї" -> "I"
44
+ "ї" -> "i"
45
+ "Є" -> "IE"
46
+ "є" -> "ie"
47
+ "Ґ" -> "G"
48
+ "ґ" -> "g"
49
+ "І" -> "I"
50
+ "і" -> "i"
51
+ "у" -> "u"
52
+ "ю" -> "iu"
53
+ "Ъ" -> "IE"
54
+ "ъ" -> "ie"
55
+ "Ѵ" -> "Y"
56
+ "ѷ" -> "y"
57
+ "Ғ" -> "G"
58
+ "ғ" -> "g"
59
+ "Ќ" -> "K"
60
+ "ќ" -> "k"
61
+ "Григоренко" -> "Hryhorenko"
62
+ "Тарас Шевченко" -> "Taras SHevchenko"
63
+ "’Ярослав" -> "IAroslav"
28
64
  }
29
65
 
30
66
  # https://www.icao.int/publications/Documents/9303_p3_cons_en.pdf
@@ -33,6 +69,7 @@ stage main {
33
69
  # CHARACTERS
34
70
  parallel {
35
71
  sub "'" ""
72
+ sub "’" ""
36
73
  sub "А" "A"
37
74
  sub "Б" "B"
38
75
  sub "Д" "D"
@@ -40,10 +77,11 @@ stage main {
40
77
  sub "Е" "E"
41
78
  sub "Э" "E"
42
79
  sub "Ф" "F"
43
- sub "Г" "G"
80
+ sub "Г" "H"
44
81
  sub "И" "Y"
45
82
  sub "Й" "I"
46
83
  sub "К" "K"
84
+ sub "Ќ" "K"
47
85
  sub "Л" "L"
48
86
  sub "М" "M"
49
87
  sub "Н" "N"
@@ -62,11 +100,14 @@ stage main {
62
100
  sub "Х" "KH"
63
101
  sub "Ш" "SH"
64
102
  sub "Щ" "SHCH"
103
+ sub "Ъ" "IE"
65
104
  sub "Ц" "TS"
66
105
  sub "Ж" "ZH"
67
106
  sub "Ґ" "G"
107
+ sub "Ғ" "G"
68
108
  sub "Ў" "U"
69
109
  sub "Ѫ" "U"
110
+ sub "Ѵ" "Y"
70
111
  sub "Ђ" "D"
71
112
  sub "Ѕ" "DZ"
72
113
  sub "Ј" "J"
@@ -86,10 +127,11 @@ stage main {
86
127
  sub "е" "e"
87
128
  sub "э" "e"
88
129
  sub "ф" "f"
89
- sub "г" "g"
130
+ sub "г" "h"
90
131
  sub "и" "y"
91
132
  sub "й" "i"
92
133
  sub "к" "k"
134
+ sub "ќ" "k"
93
135
  sub "л" "l"
94
136
  sub "м" "m"
95
137
  sub "н" "n"
@@ -98,21 +140,24 @@ stage main {
98
140
  sub "р" "r"
99
141
  sub "с" "s"
100
142
  sub "т" "t"
101
- sub "у" ""
143
+ sub "у" "u"
102
144
  sub "в" "v"
103
145
  sub "ы" "y"
104
146
  sub "з" "z"
105
147
  sub "ч" "ch"
106
148
  sub "я" "ia"
107
- sub "ю" "i"
149
+ sub "ю" "iu"
108
150
  sub "х" "kh"
109
151
  sub "ш" "sh"
110
152
  sub "щ" "shch"
153
+ sub "ъ" "ie"
111
154
  sub "ц" "ts"
112
155
  sub "ж" "zh"
113
156
  sub "ґ" "g"
114
- sub "ў" ""
115
- sub "ѫ" ""
157
+ sub "ғ" "g"
158
+ sub "ў" "u"
159
+ sub "ѫ" "u"
160
+ sub "ѷ" "y"
116
161
  sub "ђ" "d"
117
162
  sub "ѕ" "dz"
118
163
  sub "ј" "j"
@@ -122,6 +167,7 @@ stage main {
122
167
  sub "џ" "dz"
123
168
  sub "є" "ie"
124
169
  sub "ї" "i"
170
+ sub "і" "i"
125
171
  sub "ѓ" "g"
126
172
  }
127
173
 
@@ -18,6 +18,11 @@ metadata {
18
18
  }
19
19
 
20
20
  tests {
21
+ "Ӧ̄ ӧ̄" -> "Ọ̈ ọ̈"
22
+ "І̆ і̆" -> "Ĭ ĭ"
23
+ "Ј́ ј́" -> "J́ j́"
24
+ "У̊ у̊" -> "Ů ů"
25
+ "ъ ь ʼ ˮ Ӏ" -> "ʺ ʹ ʼ ˮ ‡"
21
26
  }
22
27
 
23
28
  stage main {
@@ -61,8 +66,9 @@ stage main {
61
66
  sub "І" "Ì"
62
67
  sub "Ї" "Ï"
63
68
  sub "І̄" "Ǐ"
69
+ sub "І̆" "Ĭ"
64
70
  sub "Ј" "J̌"
65
- sub "Ј̵" "J́"
71
+ sub "Ј́" "J́"
66
72
  sub "К" "K"
67
73
  sub "Ќ" "Ḱ"
68
74
  sub "Ӄ" "Ḳ"
@@ -112,6 +118,7 @@ stage main {
112
118
  sub "Ў" "Ŭ"
113
119
  sub "Ӳ" "Ű"
114
120
  sub "У́" "Ú"
121
+ sub "У̊" "Ů"
115
122
  sub "Ӱ̄" "Ụ̈"
116
123
  sub "Ү" "Ù"
117
124
  sub "Ұ" "U̇"
@@ -185,8 +192,9 @@ stage main {
185
192
  sub "і" "ì"
186
193
  sub "ї" "ï"
187
194
  sub "і̄" "ǐ"
195
+ sub "і̆" "ĭ"
188
196
  sub "ј" "ǰ"
189
- sub "ј̵" "j́"
197
+ sub "ј́" "j́"
190
198
  sub "к" "k"
191
199
  sub "ќ" "ḱ"
192
200
  sub "ӄ" "ḳ"
@@ -214,6 +222,7 @@ stage main {
214
222
  sub "ө" "ô"
215
223
  sub "ӫ" "ő"
216
224
  sub "о̄̈" "ọ̈"
225
+ sub "ӧ̄" "ọ̈"
217
226
  sub "ҩ" "ò"
218
227
  sub "о́" "ó"
219
228
  sub "о̄" "ō"
@@ -236,6 +245,7 @@ stage main {
236
245
  sub "ў" "ŭ"
237
246
  sub "ӳ" "ű"
238
247
  sub "у́" "ú"
248
+ sub "у̊" "ů"
239
249
  sub "ӱ̄" "ụ̈"
240
250
  sub "ү" "ù"
241
251
  sub "ұ" "u̇"
@@ -273,8 +283,8 @@ stage main {
273
283
  sub "ѳ" "f̀"
274
284
  sub "ѵ" "ỳ"
275
285
  sub "Ӏ" "‡"
276
- sub "ʼ" "`"
277
- sub "ˮ" "¨"
286
+ sub "ʼ" "ʼ"
287
+ sub "ˮ" "ˮ"
278
288
  }
279
289
 
280
290
  }