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,78 @@
1
+ system "DIN:gag-Cyrl:Latn:1460-2-2011" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 1460-2-2011-17
6
+ language iso-639-3:gag
7
+ source_script Cyrl
8
+ destination_script Latn
9
+ name "DIN 1460-2:2011-10, Tabelle 1 row 17: Gagausisch (Turkic)"
10
+ url https://www.beuth.de/de/norm/din-1460-2/134564104
11
+ creation_date 2011
12
+ adoption_date
13
+ description {
14
+ DIN 1460-2:2011-10, Romanization of Cyrillic alphabets of
15
+ non-Slavic languages, Tabelle 1, language row 17
16
+ (Gagausisch). The table assigns each Cyrillic letter of the
17
+ language's alphabet a Latin letter or letter group; the column
18
+ order follows DIN 1460:1982 (Slavic). Extracted mechanically from
19
+ the standard's text layer; the mapping rows below are the table's
20
+ own cells.
21
+ }
22
+
23
+ notes {
24
+ note "Extraction provenance: the PDF's text layer carries the full
25
+ grid; columns were anchored on the per-page position-number row and
26
+ each cell matched by x-coordinate to its Cyrillic header letter.
27
+ Position 13's header glyph is PUA (U+E519) in the text layer and
28
+ was visually identified at 10x as h with comma below (U+0068 + U+0322), the plain-h counterpart of position 12's hooktop-h symbol."
29
+ }
30
+ }
31
+
32
+ tests {
33
+ "a" -> "a"
34
+ "ä" -> "ä"
35
+ "б" -> "b"
36
+ "в" -> "v"
37
+ }
38
+
39
+ stage main {
40
+ parallel {
41
+ sub "a" "a"
42
+ sub "ä" "ä"
43
+ sub "б" "b"
44
+ sub "в" "v"
45
+ sub "г" "g"
46
+ sub "д" "d"
47
+ sub "е" "e"
48
+ sub "ё" "ё"
49
+ sub "ж" "ž"
50
+ sub "ӂ" "ǧ"
51
+ sub "з" "z"
52
+ sub "и" "i"
53
+ sub "й" "j"
54
+ sub "к" "k"
55
+ sub "л" "l"
56
+ sub "м" "m"
57
+ sub "н" "n"
58
+ sub "о" "o"
59
+ sub "ӧ" "ö"
60
+ sub "п" "p"
61
+ sub "р" "r"
62
+ sub "с" "s"
63
+ sub "т" "t"
64
+ sub "у" "u"
65
+ sub "ӱ" "ü"
66
+ sub "ф" "f"
67
+ sub "х" "h"
68
+ sub "ц" "c"
69
+ sub "ч" "č"
70
+ sub "ш" "š"
71
+ sub "щ" "šč"
72
+ sub "ъ" "\""
73
+ sub "ы" "y"
74
+ sub "ь" "'"
75
+ sub "э" "ė"
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,74 @@
1
+ system "DIN:gld-Cyrl:Latn:1460-2-2011" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 1460-2-2011-40
6
+ language iso-639-3:gld
7
+ source_script Cyrl
8
+ destination_script Latn
9
+ name "DIN 1460-2:2011-10, Tabelle 1 row 40: Nanaisch ((Tg))"
10
+ url https://www.beuth.de/de/norm/din-1460-2/134564104
11
+ creation_date 2011
12
+ adoption_date
13
+ description {
14
+ DIN 1460-2:2011-10, Romanization of Cyrillic alphabets of
15
+ non-Slavic languages, Tabelle 1, language row 40
16
+ (Nanaisch). The table assigns each Cyrillic letter of the
17
+ language's alphabet a Latin letter or letter group; the column
18
+ order follows DIN 1460:1982 (Slavic). Extracted mechanically from
19
+ the standard's text layer; the mapping rows below are the table's
20
+ own cells.
21
+ }
22
+
23
+ notes {
24
+ note "Extraction provenance: the PDF's text layer carries the full
25
+ grid; columns were anchored on the per-page position-number row and
26
+ each cell matched by x-coordinate to its Cyrillic header letter.
27
+ Position 13's header glyph is PUA (U+E519) in the text layer and
28
+ was visually identified at 10x as h with comma below (U+0068 + U+0322), the plain-h counterpart of position 12's hooktop-h symbol."
29
+ }
30
+ }
31
+
32
+ tests {
33
+ "a" -> "a"
34
+ "б" -> "b"
35
+ "в" -> "v"
36
+ "г" -> "g"
37
+ }
38
+
39
+ stage main {
40
+ parallel {
41
+ sub "a" "a"
42
+ sub "б" "b"
43
+ sub "в" "v"
44
+ sub "г" "g"
45
+ sub "д" "d"
46
+ sub "е" "e"
47
+ sub "ё" "ё"
48
+ sub "ж" "ž"
49
+ sub "з" "z"
50
+ sub "и" "i"
51
+ sub "й" "j"
52
+ sub "к" "k"
53
+ sub "л" "l"
54
+ sub "м" "m"
55
+ sub "н" "n"
56
+ sub "о" "o"
57
+ sub "п" "p"
58
+ sub "р" "r"
59
+ sub "с" "s"
60
+ sub "т" "t"
61
+ sub "у" "u"
62
+ sub "ф" "f"
63
+ sub "х" "h"
64
+ sub "ц" "c"
65
+ sub "ч" "č"
66
+ sub "ш" "š"
67
+ sub "щ" "šč"
68
+ sub "ъ" "\""
69
+ sub "ы" "y"
70
+ sub "ь" "'"
71
+ sub "э" "ė"
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,355 @@
1
+ system "DIN:heb-Hebr:Latn:31636-2018" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 31636-2018
6
+ language iso-639-2:heb
7
+ source_script Hebr
8
+ destination_script Latn
9
+ name "DIN 31636:2018-10 Information und Dokumentation - Umschrift des hebraeischen Alphabets"
10
+ url https://www.din.de
11
+ creation_date 2018
12
+ confirmation_date 2018-10
13
+ description { Information and documentation -- Romanization of the Hebrew alphabet.
14
+ 2018-10 edition, replacing DIN 31636:2011-01. The norm fixes the rendering of the
15
+ letters of the Hebrew alphabet (including Ivrit) in letters of the Latin alphabet.
16
+ This map implements the Hebrew (including Ivrit) column over vocalized input;
17
+ the Yiddish column of the same norm is a separate map.
18
+ }
19
+
20
+ notes {
21
+ note "Consonants (Table 1): alef is rendered with the right half-ring U+02BE or ignored per the rules; bet with dagesh lene b, bet v; gimel g; dalet d; he always as consonant h; vav v with dot below (U+1E7F), vav with dagesh (shuruk) u; double vav (U+05F0) as consonant v with dot below; zayin z; het h with dot below (U+1E25); tet t with dot below (U+1E6D); yod y as consonant only when a vowel follows, otherwise omitted; kaf with dagesh k, khaf kh, end-khaf kh; lamed l; mem m, end-mem m; nun n, end-nun n; samekh s; ayin left half-ring U+02BF; pe with dagesh p, fe f, end-fe f; tsadi ts, end-tsadi ts; qof k with dot below (k + U+0323); resh r; shin sh, sin s with acute (U+015B); tav t."
22
+ note "Vowels (Table 3): patach a (with following yod: ai); qamats a or o - this map renders a, the o-reading (qamats qatan) is a reading-side determination; segol e; tsere e; hireq i; holam (U+05B9) or holam male (U+FB4B) o; qubuts (U+05BB) or shuruk (U+FB35) u; sheva e or ignored per the rules; hataf-patach a; hataf-segol e; hataf-qamats o."
23
+ note "Neo-Hebrew additional letters (Table 2) are marked with the straight apostrophe (geresh, U+02B9): gimel-geresh g-apostrophe, dalet-geresh d-apostrophe, zayin-geresh z-apostrophe, het-geresh h-dot-apostrophe, tet-geresh t-dot-apostrophe, ayin-geresh g with dot above (U+0307), tsadi-geresh ts-apostrophe for English names, or d with dot below for Arabic names (variant; this map renders ts-apostrophe)."
24
+ note "Special characters (Table 5): right half-ring U+02BE for alef, left half-ring U+02BF for ayin, straight apostrophe U+02B9 for the geresh. Diacritics (Table 6): circumflex U+0302 for the facultative plene marking, acute U+0301 marking the sin, grave U+0300 for the Yiddish tav (Yiddish map), dot below U+0323 for v, h-dot, t-dot, k-dot, dot above U+0307 only for the neo-Hebrew g-dot."
25
+ note "Rules (section 8): (a) a straight apostrophe separates two letters whose combination would render a different consonant; (b) vowel length is not marked, including the composed forms; (c) alef at the beginning or end of a word and at the end of a syllable is not transliterated; word-internal alef that merely indicates a vowel is likewise ignored, while alef with a vowel sign under it is rendered with U+02BE - this map implements word-initial, word-final, word-internal unvocalized (ignored) and word-internal vocalized (U+02BE) alef; the syllable-end condition is a reading-side determination; (d) bet, kaf and pe follow the modern Hebrew pronunciation with the dagesh lene observed; the distinction between dagesh forte and dagesh lene is not made - residual dagesh signs are deleted; (e) he is always transliterated as a consonant; (f) yod is transliterated as consonant y only when a vowel follows; otherwise it is omitted; (g) the plene spelling of vowels may optionally be shown by a circumflex - this map does not add it; (h) all shevas at the beginning of Hebrew words are rendered e; the sheva word-internally is generally not transliterated - the root-morphology exceptions (doubled third root consonant, yod as second consonant) are reading-side determinations and are not implemented; (i) capitalization follows the rules of the user community; this map outputs lower case and does not apply title case."
26
+ note "Rules 8(h)(16)-(20) hyphenate preposed particles (ha-arets, mi-bayit, le-David) and 8(j)-(k) govern the punctuation of abbreviations; both require word-segmentation and lexical knowledge and are not implemented in this map."
27
+ note "The map is deterministic over vocalized input (text carrying niqqud). Unvocalized text is an underspecified skeleton: matres lectionis (vav, yod, he standing for vowels), the qamats qatan reading, the sheva readings and defective spellings are resolved by a vocalization model, after which this map applies (composition, not duplication)."
28
+ }
29
+ }
30
+
31
+ tests {
32
+ # section 8 examples, vocalized
33
+ "יִשְׂרָאֵל" -> "yiśraʾel"
34
+ "קְרִיאָה" -> "ḳeriʾah"
35
+ "תְּקוּפָה" -> "teḳufah"
36
+ "תְּשׁוּבָה" -> "teshuvah"
37
+ "מִשְׁנָה" -> "mishnah"
38
+ "רֹאשׁ" -> "rosh"
39
+ "אַהֲרֹן" -> "aharon"
40
+ "תּוֹרָה" -> "torah"
41
+ "שֶׂכֶל" -> "śekhel"
42
+ "יִצְחָק" -> "yitsḥaḳ"
43
+ "אִגֶּרֶת" -> "igeret"
44
+ "חַיֵּי" -> "ḥaye"
45
+ "סִפְרֵי" -> "sifre"
46
+ # table 1 rows
47
+ "בּ" -> "b"
48
+ "בּ" -> "b"
49
+ "ב" -> "v"
50
+ "ג" -> "g"
51
+ "ד" -> "d"
52
+ "ה" -> "h"
53
+ "ו" -> "ṿ"
54
+ "וּ" -> "u"
55
+ "וּ" -> "u"
56
+ "װ" -> "ṿ"
57
+ "ז" -> "z"
58
+ "ח" -> "ḥ"
59
+ "ט" -> "ṭ"
60
+ "כּ" -> "k"
61
+ "כּ" -> "k"
62
+ "כ" -> "kh"
63
+ "ך" -> "kh"
64
+ "ל" -> "l"
65
+ "מ" -> "m"
66
+ "ם" -> "m"
67
+ "נ" -> "n"
68
+ "ן" -> "n"
69
+ "ס" -> "s"
70
+ "ע" -> "ʿ"
71
+ "פּ" -> "p"
72
+ "פּ" -> "p"
73
+ "פ" -> "f"
74
+ "ף" -> "f"
75
+ "צ" -> "ts"
76
+ "ץ" -> "ts"
77
+ "ק" -> "ḳ"
78
+ "ר" -> "r"
79
+ "שׁ" -> "sh"
80
+ "שׁ" -> "sh"
81
+ "שׂ" -> "ś"
82
+ "שׂ" -> "ś"
83
+ "ש" -> "sh"
84
+ "תּ" -> "t"
85
+ "תּ" -> "t"
86
+ "ת" -> "t"
87
+ # table 2 rows (geresh-marked)
88
+ "גʹ" -> "gʹ"
89
+ "דʹ" -> "dʹ"
90
+ "זʹ" -> "zʹ"
91
+ "חʹ" -> "ḥʹ"
92
+ "טʹ" -> "ṭʹ"
93
+ "עʹ" -> "ġ"
94
+ "צʹ" -> "tsʹ"
95
+ # table 3 rows
96
+ "בַּ" -> "ba"
97
+ "בָּ" -> "ba"
98
+ "בֶּ" -> "be"
99
+ "בֵּ" -> "be"
100
+ "בִּ" -> "bi"
101
+ "בֹּ" -> "bo"
102
+ "וֹ" -> "o"
103
+ "בֻּ" -> "bu"
104
+ "בַּי" -> "ba"
105
+ "בֲּ" -> "ba"
106
+ "בֱּ" -> "be"
107
+ "בֳּ" -> "bo"
108
+ }
109
+
110
+ stage main {
111
+
112
+ # RULES
113
+ # Unicode mark-order normalization: move dagesh and the shin/sin dots
114
+ # directly after their base letter when a vowel mark intervenes
115
+ sub {
116
+ from "ֲּ"
117
+ to "ֲּ"
118
+ }
119
+ sub {
120
+ from "ֲׂ"
121
+ to "ֲׂ"
122
+ }
123
+ sub {
124
+ from "ֲׁ"
125
+ to "ֲׁ"
126
+ }
127
+ sub {
128
+ from "ֱּ"
129
+ to "ֱּ"
130
+ }
131
+ sub {
132
+ from "ֱׂ"
133
+ to "ֱׂ"
134
+ }
135
+ sub {
136
+ from "ֱׁ"
137
+ to "ֱׁ"
138
+ }
139
+ sub {
140
+ from "ֳּ"
141
+ to "ֳּ"
142
+ }
143
+ sub {
144
+ from "ֳׂ"
145
+ to "ֳׂ"
146
+ }
147
+ sub {
148
+ from "ֳׁ"
149
+ to "ֳׁ"
150
+ }
151
+ sub {
152
+ from "ַּ"
153
+ to "ַּ"
154
+ }
155
+ sub {
156
+ from "ַׂ"
157
+ to "ַׂ"
158
+ }
159
+ sub {
160
+ from "ַׁ"
161
+ to "ַׁ"
162
+ }
163
+ sub {
164
+ from "ָּ"
165
+ to "ָּ"
166
+ }
167
+ sub {
168
+ from "ָׂ"
169
+ to "ָׂ"
170
+ }
171
+ sub {
172
+ from "ָׁ"
173
+ to "ָׁ"
174
+ }
175
+ sub {
176
+ from "ֶּ"
177
+ to "ֶּ"
178
+ }
179
+ sub {
180
+ from "ֶׂ"
181
+ to "ֶׂ"
182
+ }
183
+ sub {
184
+ from "ֶׁ"
185
+ to "ֶׁ"
186
+ }
187
+ sub {
188
+ from "ֵּ"
189
+ to "ֵּ"
190
+ }
191
+ sub {
192
+ from "ֵׂ"
193
+ to "ֵׂ"
194
+ }
195
+ sub {
196
+ from "ֵׁ"
197
+ to "ֵׁ"
198
+ }
199
+ sub {
200
+ from "ִּ"
201
+ to "ִּ"
202
+ }
203
+ sub {
204
+ from "ִׂ"
205
+ to "ִׂ"
206
+ }
207
+ sub {
208
+ from "ִׁ"
209
+ to "ִׁ"
210
+ }
211
+ sub {
212
+ from "ֹּ"
213
+ to "ֹּ"
214
+ }
215
+ sub {
216
+ from "ֹׂ"
217
+ to "ֹׂ"
218
+ }
219
+ sub {
220
+ from "ֹׁ"
221
+ to "ֹׁ"
222
+ }
223
+ sub {
224
+ from "ֻּ"
225
+ to "ֻּ"
226
+ }
227
+ sub {
228
+ from "ֻׂ"
229
+ to "ֻׂ"
230
+ }
231
+ sub {
232
+ from "ֻׁ"
233
+ to "ֻׁ"
234
+ }
235
+ # 8(c): alef word-initially and word-finally is not transliterated
236
+ sub {
237
+ from boundary + "א"
238
+ to ""
239
+ }
240
+ sub {
241
+ from "א"
242
+ to ""
243
+ after boundary
244
+ }
245
+ # 8(c): word-internal alef with a vowel sign under it is rendered U+02BE
246
+ sub {
247
+ from "א"
248
+ to "ʾ"
249
+ after any("ְֱֲֳִֵֶַָֹֻ")
250
+ }
251
+ # remaining word-internal alefs merely indicate a vowel and are ignored
252
+ sub {
253
+ from "א"
254
+ to ""
255
+ }
256
+
257
+ # 8(h): sheva word-initially (under the word-initial consonant) is e,
258
+ # word-internally it is not transliterated
259
+ sub {
260
+ from "ְ"
261
+ to "e"
262
+ before boundary + any("אבגדהוזחטיכלמנסעפצקרשת")
263
+ }
264
+ sub {
265
+ from "ְ"
266
+ to ""
267
+ }
268
+
269
+ # sin and shin dots (the sheva between them is removed first)
270
+ sub {
271
+ from "שׂ"
272
+ to "ś"
273
+ }
274
+ sub {
275
+ from "שׁ"
276
+ to "sh"
277
+ }
278
+
279
+ # 8(f): yod as consonant y only when a vowel follows; otherwise omitted
280
+ sub {
281
+ from "י"
282
+ to "y"
283
+ after any("ִֵֶַָֹֻּ")
284
+ }
285
+ sub {
286
+ from "י"
287
+ to ""
288
+ }
289
+
290
+ # CHARACTERS
291
+ parallel {
292
+ sub "גʹ" "gʹ"
293
+ sub "דʹ" "dʹ"
294
+ sub "זʹ" "zʹ"
295
+ sub "חʹ" "ḥʹ"
296
+ sub "טʹ" "ṭʹ"
297
+ sub "עʹ" "ġ"
298
+ sub "צʹ" "tsʹ"
299
+ sub "שׂ" "ś"
300
+ sub "שׁ" "sh"
301
+ sub "בּ" "b"
302
+ sub "כּ" "k"
303
+ sub "פּ" "p"
304
+ sub "וּ" "u"
305
+ sub "וֹ" "o"
306
+ sub "בּ" "b"
307
+ sub "כּ" "k"
308
+ sub "פּ" "p"
309
+ sub "וּ" "u"
310
+ sub "וֹ" "o"
311
+ sub "שׁ" "sh"
312
+ sub "שׂ" "ś"
313
+ sub "תּ" "t"
314
+ sub "װ" "ṿ"
315
+ sub "ך" "kh"
316
+ sub "כ" "kh"
317
+ sub "ם" "m"
318
+ sub "מ" "m"
319
+ sub "ן" "n"
320
+ sub "נ" "n"
321
+ sub "ף" "f"
322
+ sub "פ" "f"
323
+ sub "ץ" "ts"
324
+ sub "צ" "ts"
325
+ sub "ב" "v"
326
+ sub "ג" "g"
327
+ sub "ד" "d"
328
+ sub "ה" "h"
329
+ sub "ו" "ṿ"
330
+ sub "ז" "z"
331
+ sub "ח" "ḥ"
332
+ sub "ט" "ṭ"
333
+ sub "ל" "l"
334
+ sub "ס" "s"
335
+ sub "ע" "ʿ"
336
+ sub "ק" "ḳ"
337
+ sub "ר" "r"
338
+ sub "ש" "sh"
339
+ sub "ת" "t"
340
+ sub "ַ" "a"
341
+ sub "ָ" "a"
342
+ sub "ֶ" "e"
343
+ sub "ֵ" "e"
344
+ sub "ִ" "i"
345
+ sub "ֹ" "o"
346
+ sub "ֻ" "u"
347
+ sub "ֲ" "a"
348
+ sub "ֱ" "e"
349
+ sub "ֳ" "o"
350
+ sub "ּ" ""
351
+ }
352
+
353
+ }
354
+
355
+ }
@@ -0,0 +1,197 @@
1
+ system "DIN:arm-Armn:Latn:32706-2010" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 32706-2010
6
+ language iso-639-2:hye
7
+ source_script Armn
8
+ destination_script Latn
9
+ name "DIN 32706:2010-01 Information und Dokumentation - Umschrift des armenischen Alphabets"
10
+ url https://www.din.de
11
+ creation_date 2010
12
+ confirmation_date 2010
13
+ description { Information and documentation -- Romanization of the Armenian alphabet.
14
+ The norm fixes the rendering of the letters of the Armenian alphabet in letters of the
15
+ Latin alphabet and is suitable for all fields of application. It follows the principle
16
+ of transliteration and is based on library practice and on ISO 9985:1996.
17
+ }
18
+
19
+ notes {
20
+ note "Table 1 renders each letter with its majuscule, minuscule, numeric value (the letters of the Armenian alphabet formerly also served as numerals) and Romanization: a=1, b=2, g=3, d=4, e=5, z=6, ê=7, ẹ=8, t̕=9, ž=10, i=20, l=30, x=40, c=50, k=60, h=70, j=80, ġ=90, č=100, m=200, y=300, n=400, š=500, o=600, č̕=700, p=800, ǰ=900, ṙ=1000, s=2000, v=3000, t=4000, r=5000, c̕=6000, w=7000, p̕=8000, k̕=9000, ô=10000, f=20000."
21
+ note "The ejective consonants are romanized with the combining comma above right (U+0315): t̕ (0074+0315), č̕ (010D+0315), c̕ (0063+0315), p̕ (0070+0315), k̕ (006B+0315)."
22
+ note "The letter ǰ is the precomposed U+01F0; its capital cannot currently be represented as a single Unicode character and is post-combined as 004A+030C (footnote a of the source)."
23
+ note "The ligature և (U+0587) is romanized ew with the combining double inverted breve (0065+0077+0361). The source notes the alternative representation 0065+FE20+0077+FE21 and that the ligature bow may likewise be set for the Armenian ligatures at U+FB13 to U+FB17; this map does not assign those ligatures Romanizations, as the table does not specify any."
24
+ note "The source document's Unicode annotation column prints the minuscule of letter 18 as 0571; the glyph shown and encoded is ղ U+0572 (0571 is the minuscule of letter 17, ձ)."
25
+ note "Normative references: DIN 1460; ISO 9985:1996; ISO/IEC 10646:2003."
26
+ }
27
+ }
28
+
29
+ tests {
30
+ # every table row, majuscule and minuscule
31
+ "Ա" -> "A"
32
+ "ա" -> "a"
33
+ "Բ" -> "B"
34
+ "բ" -> "b"
35
+ "Գ" -> "G"
36
+ "գ" -> "g"
37
+ "Դ" -> "D"
38
+ "դ" -> "d"
39
+ "Ե" -> "E"
40
+ "ե" -> "e"
41
+ "Զ" -> "Z"
42
+ "զ" -> "z"
43
+ "Է" -> "Ê"
44
+ "է" -> "ê"
45
+ "Ը" -> "Ẹ"
46
+ "ը" -> "ẹ"
47
+ "Թ" -> "T̕"
48
+ "թ" -> "t̕"
49
+ "Ժ" -> "Ž"
50
+ "ժ" -> "ž"
51
+ "Ի" -> "I"
52
+ "ի" -> "i"
53
+ "Լ" -> "L"
54
+ "լ" -> "l"
55
+ "Խ" -> "X"
56
+ "խ" -> "x"
57
+ "Ծ" -> "C"
58
+ "ծ" -> "c"
59
+ "Կ" -> "K"
60
+ "կ" -> "k"
61
+ "Հ" -> "H"
62
+ "հ" -> "h"
63
+ "Ձ" -> "J"
64
+ "ձ" -> "j"
65
+ "Ղ" -> "Ġ"
66
+ "ղ" -> "ġ"
67
+ "Ճ" -> "Č"
68
+ "ճ" -> "č"
69
+ "Մ" -> "M"
70
+ "մ" -> "m"
71
+ "Յ" -> "Y"
72
+ "յ" -> "y"
73
+ "Ն" -> "N"
74
+ "ն" -> "n"
75
+ "Շ" -> "Š"
76
+ "շ" -> "š"
77
+ "Ո" -> "O"
78
+ "ո" -> "o"
79
+ "Չ" -> "Č̕"
80
+ "չ" -> "č̕"
81
+ "Պ" -> "P"
82
+ "պ" -> "p"
83
+ "Ջ" -> "J̌"
84
+ "ջ" -> "ǰ"
85
+ "Ռ" -> "Ṙ"
86
+ "ռ" -> "ṙ"
87
+ "Ս" -> "S"
88
+ "ս" -> "s"
89
+ "Վ" -> "V"
90
+ "վ" -> "v"
91
+ "Տ" -> "T"
92
+ "տ" -> "t"
93
+ "Ր" -> "R"
94
+ "ր" -> "r"
95
+ "Ց" -> "C̕"
96
+ "ց" -> "c̕"
97
+ "Ւ" -> "W"
98
+ "ւ" -> "w"
99
+ "Փ" -> "P̕"
100
+ "փ" -> "p̕"
101
+ "Ք" -> "K̕"
102
+ "ք" -> "k̕"
103
+ "և" -> "ew͡"
104
+ "Օ" -> "Ô"
105
+ "օ" -> "ô"
106
+ "Ֆ" -> "F"
107
+ "ֆ" -> "f"
108
+ }
109
+
110
+ stage main {
111
+
112
+ # CHARACTERS
113
+ parallel {
114
+ sub "Թ" "T̕"
115
+ sub "Չ" "Č̕"
116
+ sub "Ց" "C̕"
117
+ sub "Փ" "P̕"
118
+ sub "Ք" "K̕"
119
+ sub "և" "ew͡"
120
+ sub "Է" "Ê"
121
+ sub "Ը" "Ẹ"
122
+ sub "Ժ" "Ž"
123
+ sub "Ղ" "Ġ"
124
+ sub "Ճ" "Č"
125
+ sub "Շ" "Š"
126
+ sub "Ջ" "J̌"
127
+ sub "Ռ" "Ṙ"
128
+ sub "Օ" "Ô"
129
+ sub "Ա" "A"
130
+ sub "Բ" "B"
131
+ sub "Գ" "G"
132
+ sub "Դ" "D"
133
+ sub "Ե" "E"
134
+ sub "Զ" "Z"
135
+ sub "Ի" "I"
136
+ sub "Լ" "L"
137
+ sub "Խ" "X"
138
+ sub "Ծ" "C"
139
+ sub "Կ" "K"
140
+ sub "Հ" "H"
141
+ sub "Ձ" "J"
142
+ sub "Մ" "M"
143
+ sub "Յ" "Y"
144
+ sub "Ն" "N"
145
+ sub "Ո" "O"
146
+ sub "Պ" "P"
147
+ sub "Ս" "S"
148
+ sub "Վ" "V"
149
+ sub "Տ" "T"
150
+ sub "Ր" "R"
151
+ sub "Ւ" "W"
152
+ sub "Ֆ" "F"
153
+
154
+ sub "թ" "t̕"
155
+ sub "չ" "č̕"
156
+ sub "ց" "c̕"
157
+ sub "փ" "p̕"
158
+ sub "ք" "k̕"
159
+ sub "և" "ew͡"
160
+ sub "է" "ê"
161
+ sub "ը" "ẹ"
162
+ sub "ժ" "ž"
163
+ sub "ղ" "ġ"
164
+ sub "ճ" "č"
165
+ sub "շ" "š"
166
+ sub "ջ" "ǰ"
167
+ sub "ռ" "ṙ"
168
+ sub "օ" "ô"
169
+ sub "ա" "a"
170
+ sub "բ" "b"
171
+ sub "գ" "g"
172
+ sub "դ" "d"
173
+ sub "ե" "e"
174
+ sub "զ" "z"
175
+ sub "ի" "i"
176
+ sub "լ" "l"
177
+ sub "խ" "x"
178
+ sub "ծ" "c"
179
+ sub "կ" "k"
180
+ sub "հ" "h"
181
+ sub "ձ" "j"
182
+ sub "մ" "m"
183
+ sub "յ" "y"
184
+ sub "ն" "n"
185
+ sub "ո" "o"
186
+ sub "պ" "p"
187
+ sub "ս" "s"
188
+ sub "վ" "v"
189
+ sub "տ" "t"
190
+ sub "ր" "r"
191
+ sub "ւ" "w"
192
+ sub "ֆ" "f"
193
+ }
194
+
195
+ }
196
+
197
+ }