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,402 @@
1
+ system "DIN:ara-Arab:Latn:31635-2011" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 31635-2011
6
+ language iso-639-2:ara
7
+ source_script Arab
8
+ destination_script Latn
9
+ name "DIN 31635:2011-07 Transliteration des arabischen Alphabets"
10
+ url https://www.din.de
11
+ creation_date 2011
12
+ confirmation_date 2011-07
13
+ description { DIN 31635:2011-07, section 6: transliteration of the Arabic alphabet, applicable
14
+ to classical and modern standard Arabic. Based on the 1935 recommendation of the
15
+ International Orientalists' Congress and nearly identical to ISO 233:1984, with
16
+ additional provisions in the notes for transliteration work. The norm's Persian,
17
+ Kurdish and Urdu sections are separate maps; its Ottoman-Turkish section gives
18
+ references only.
19
+ }
20
+
21
+ notes {
22
+ note "Vowel system (6.1.1): short vowels a, i, u; long vowels a-macron, i-macron, u-macron; diphthongs au, ai."
23
+ note "The Arabic article (6.1.2): the article forms are transliterated only with the short vowel a; the assimilation of the article consonant l to the sun letters is expressed (al-, ad-, an-, ar-, as-, at-, az- and the diacritic-modified ad-, adh-, at-, ath-, as-, ash-, az-); the article is always joined to the following word by a hyphen. This map renders the word-initial article with the hyphen and the sun-letter assimilation; the elision of the article's a after a vowel-final preceding word (rule d) and the loss of length in a preceding long vowel (rule e) require the vocalization of the preceding word and are not implemented; the exception of the word Allah is lexical and not implemented."
24
+ note "Individual remarks (6.1.3): (a) sukun is never transliterated; (b) tashdid is expressed by doubling the consonant under the shadda, this map implements the doubled renderings for every consonant letter, while the shadda combinations with waw (-uw, -auw-) and ya (-iy, -aiy-, word-finally -i after i) are vocalization-dependent and not implemented; (c) the rendering of alif is omitted word-initially; (d) the rendering of hamza is omitted word-initially; (e) the hamza carriers alif, waw and ya are not transliterated as such - the hamza renders as the right half-ring and the carrier letter contributes nothing, so hamza-plus-short-vowel-mark renders the mark's vowel; (f) alif with madda renders as a-macron, word-internally as right-half-ring plus a-macron; (g) alif maqsura renders as a-macron; (h) hamzat al-wasl elision behavior requires the preceding context's vocalization and is not implemented; (i) the pausal form is transliterated: nunation and short final vowels fall, with the exception of the accusative ending -an of indeterminate nouns and adjectives - this map renders fathatan as an and the other tanwin forms as empty, per the remark's default; (j) the completion of case endings of verbs, pronouns, suffixes and prepositions is grammatical and not implemented; (k) the hyphenation rules for particles are syntactic and not implemented; (l) ta marbuta after the long vowel a-macron renders h, otherwise it is not expressed (the construct-state -t is morphological and not implemented)."
25
+ note "Waw and ya (rows 27 and 28) render as consonant w / y by default; over vocalized input the long-vowel renderings u-macron / i-macron apply via the vowel-mark combinations. Unvocalized text is an underspecified skeleton: the waw/ya long-vowel readings, the article elision and the pausal forms are resolved by a vocalization model, after which this map applies (composition, not duplication)."
26
+ note "Transliteration is not aimed at being reversible (section 4); for alphabetical ordering the diacritics and apostrophes are not considered (section 5)."
27
+ }
28
+ }
29
+
30
+ tests {
31
+ # every table row
32
+ "ء" -> "" # word-initial hamza is not rendered (6.1.3 d)
33
+ "ا" -> "" # word-initial alif is not rendered (6.1.3 c)
34
+ "بَاب" -> "bāb"
35
+ "ب" -> "b"
36
+ "ت" -> "t"
37
+ "ث" -> "ṯ"
38
+ "ج" -> "ǧ"
39
+ "ح" -> "ḥ"
40
+ "خ" -> "ḫ"
41
+ "د" -> "d"
42
+ "ذ" -> "ḏ"
43
+ "ر" -> "r"
44
+ "ز" -> "z"
45
+ "س" -> "s"
46
+ "ش" -> "š"
47
+ "ص" -> "ṣ"
48
+ "ض" -> "ḍ"
49
+ "ط" -> "ṭ"
50
+ "ظ" -> "ẓ"
51
+ "ع" -> "ʿ"
52
+ "غ" -> "ġ"
53
+ "ف" -> "f"
54
+ "ق" -> "q"
55
+ "ک" -> "k"
56
+ "ك" -> "k"
57
+ "ل" -> "l"
58
+ "م" -> "m"
59
+ "ن" -> "n"
60
+ "ه" -> "h"
61
+ "ھ" -> "h"
62
+ "و" -> "w"
63
+ "ي" -> "y"
64
+ "ى" -> "ā"
65
+ "آ" -> "ā"
66
+ "رَآ" -> "raʾā"
67
+ # vowel signs
68
+ "بَ" -> "ba"
69
+ "بِ" -> "bi"
70
+ "بُ" -> "bu"
71
+ "بً" -> "ban"
72
+ "وُ" -> "ū"
73
+ "يِ" -> "ī"
74
+ # remarks: anlaut alif and hamza omitted; madda; carriers; sukun; taa marbuta
75
+ "اِبْن" -> "ibn"
76
+ "أَسَد" -> "asad"
77
+ "آدَم" -> "ādam"
78
+ "رَأَى" -> "raʾā"
79
+ "سَأَلَ" -> "saʾala"
80
+ "شَمْس" -> "šams"
81
+ "مَسْجِد" -> "masǧid"
82
+ "حَائِط" -> "ḥāʾiṭ"
83
+ "قَالَ" -> "qāla"
84
+ "كِتَاب" -> "kitāb"
85
+ "كُتُب" -> "kutub"
86
+ "صَلَاة" -> "ṣalāh"
87
+ "فِرْقَة" -> "firqa"
88
+ # article with sun letters and moon letters
89
+ "الشَّمْس" -> "aš-šams"
90
+ "الْكِتَاب" -> "al-kitāb"
91
+ "الْقَمَر" -> "al-qamar"
92
+ "التِّلْمِيذ" -> "at-tilmīḏ"
93
+ "الرَّجُل" -> "ar-raǧul"
94
+ }
95
+
96
+ stage main {
97
+
98
+ # RULES
99
+ # 6.1.3 (a): sukun is never transliterated; removing it first keeps the
100
+ # article rules adjacent
101
+ sub {
102
+ from "ْ"
103
+ to ""
104
+ }
105
+ # mark-order normalization: the shadda belongs to its consonant even when
106
+ # a short-vowel sign is typed between them
107
+ sub {
108
+ from "َّ"
109
+ to "َّ"
110
+ }
111
+ sub {
112
+ from "ِّ"
113
+ to "ِّ"
114
+ }
115
+ sub {
116
+ from "ُّ"
117
+ to "ُّ"
118
+ }
119
+
120
+ # long vowels: the short-vowel sign plus the lengthening letter merge
121
+ sub {
122
+ from "َا"
123
+ to "ā"
124
+ }
125
+ sub {
126
+ from "َى"
127
+ to "ā"
128
+ }
129
+ sub {
130
+ from "ِي"
131
+ to "ī"
132
+ }
133
+ sub {
134
+ from "ُو"
135
+ to "ū"
136
+ }
137
+ # diphthongs
138
+ sub {
139
+ from "َو"
140
+ to "aw"
141
+ }
142
+ sub {
143
+ from "َي"
144
+ to "ay"
145
+ }
146
+
147
+ # 6.1.2: the word-initial article with sun-letter assimilation, hyphenated;
148
+ # the shadda form doubles the assimilated consonant
149
+ sub {
150
+ from boundary + "الثّ"
151
+ to "aṯ-ṯ"
152
+ }
153
+ sub {
154
+ from boundary + "الذّ"
155
+ to "aḏ-ḏ"
156
+ }
157
+ sub {
158
+ from boundary + "الصّ"
159
+ to "aṣ-ṣ"
160
+ }
161
+ sub {
162
+ from boundary + "الضّ"
163
+ to "aḍ-ḍ"
164
+ }
165
+ sub {
166
+ from boundary + "الطّ"
167
+ to "aṭ-ṭ"
168
+ }
169
+ sub {
170
+ from boundary + "الظّ"
171
+ to "aẓ-ẓ"
172
+ }
173
+ sub {
174
+ from boundary + "الشّ"
175
+ to "aš-š"
176
+ }
177
+ sub {
178
+ from boundary + "السّ"
179
+ to "as-s"
180
+ }
181
+ sub {
182
+ from boundary + "الزّ"
183
+ to "az-z"
184
+ }
185
+ sub {
186
+ from boundary + "الرّ"
187
+ to "ar-r"
188
+ }
189
+ sub {
190
+ from boundary + "الدّ"
191
+ to "ad-d"
192
+ }
193
+ sub {
194
+ from boundary + "التّ"
195
+ to "at-t"
196
+ }
197
+ sub {
198
+ from boundary + "النّ"
199
+ to "an-n"
200
+ }
201
+ sub {
202
+ from boundary + "اللّ"
203
+ to "al-l"
204
+ }
205
+ sub {
206
+ from boundary + "ال" + "ث"
207
+ to "aṯ-"
208
+ }
209
+ sub {
210
+ from boundary + "ال" + "ذ"
211
+ to "aḏ-"
212
+ }
213
+ sub {
214
+ from boundary + "ال" + "ص"
215
+ to "aṣ-"
216
+ }
217
+ sub {
218
+ from boundary + "ال" + "ض"
219
+ to "aḍ-"
220
+ }
221
+ sub {
222
+ from boundary + "ال" + "ط"
223
+ to "aṭ-"
224
+ }
225
+ sub {
226
+ from boundary + "ال" + "ظ"
227
+ to "aẓ-"
228
+ }
229
+ sub {
230
+ from boundary + "ال" + "ش"
231
+ to "aš-"
232
+ }
233
+ sub {
234
+ from boundary + "ال" + "س"
235
+ to "as-"
236
+ }
237
+ sub {
238
+ from boundary + "ال" + "ز"
239
+ to "az-"
240
+ }
241
+ sub {
242
+ from boundary + "ال" + "ر"
243
+ to "ar-"
244
+ }
245
+ sub {
246
+ from boundary + "ال" + "د"
247
+ to "ad-"
248
+ }
249
+ sub {
250
+ from boundary + "ال" + "ت"
251
+ to "at-"
252
+ }
253
+ sub {
254
+ from boundary + "ال" + "ن"
255
+ to "an-"
256
+ }
257
+ sub {
258
+ from boundary + "ال" + "ل"
259
+ to "al-"
260
+ }
261
+ sub {
262
+ from boundary + "ال"
263
+ to "al-"
264
+ }
265
+
266
+ # 6.1.3 (c) and (d): alif and hamza word-initially are not rendered; the
267
+ # hamza carriers contribute nothing of their own
268
+ sub {
269
+ from boundary + "ا"
270
+ to ""
271
+ }
272
+ sub {
273
+ from boundary + "ء"
274
+ to ""
275
+ }
276
+ sub {
277
+ from boundary + "أ"
278
+ to ""
279
+ }
280
+ sub {
281
+ from boundary + "إ"
282
+ to ""
283
+ }
284
+ sub {
285
+ from boundary + "ؤ"
286
+ to ""
287
+ }
288
+ sub {
289
+ from boundary + "ئ"
290
+ to ""
291
+ }
292
+
293
+ # 6.1.3 (f): alif with madda is a-macron word-initially,
294
+ # right-half-ring plus a-macron word-internally
295
+ sub {
296
+ from boundary + "آ"
297
+ to "ā"
298
+ }
299
+ sub {
300
+ from "آ"
301
+ to "ʾā"
302
+ }
303
+
304
+ # 6.1.3 (l): taa marbuta renders h after the long vowel a-macron,
305
+ # otherwise it is not expressed
306
+ sub {
307
+ from "ة"
308
+ to "h"
309
+ before any("اā")
310
+ }
311
+ sub {
312
+ from "ة"
313
+ to ""
314
+ }
315
+
316
+ # CHARACTERS
317
+ parallel {
318
+ sub "بّ" "bb"
319
+ sub "تّ" "tt"
320
+ sub "ثّ" "ṯṯ"
321
+ sub "جّ" "ǧǧ"
322
+ sub "حّ" "ḥḥ"
323
+ sub "خّ" "ḫḫ"
324
+ sub "دّ" "dd"
325
+ sub "ذّ" "ḏḏ"
326
+ sub "رّ" "rr"
327
+ sub "زّ" "zz"
328
+ sub "سّ" "ss"
329
+ sub "شّ" "šš"
330
+ sub "صّ" "ṣṣ"
331
+ sub "ضّ" "ḍḍ"
332
+ sub "طّ" "ṭṭ"
333
+ sub "ظّ" "ẓẓ"
334
+ sub "عّ" "ʿʿ"
335
+ sub "غّ" "ġġ"
336
+ sub "فّ" "ff"
337
+ sub "قّ" "qq"
338
+ sub "کّ" "kk"
339
+ sub "كّ" "kk"
340
+ sub "لّ" "ll"
341
+ sub "مّ" "mm"
342
+ sub "نّ" "nn"
343
+ sub "هّ" "hh"
344
+ sub "وّ" "ww"
345
+ sub "يّ" "yy"
346
+ sub "وُ" "ū"
347
+ sub "يِ" "ī"
348
+ sub "أَ" "ʾa"
349
+ sub "إِ" "ʾi"
350
+ sub "ؤُ" "ʾu"
351
+ sub "ئِ" "ʾi"
352
+ sub "أُ" "ʾu"
353
+ sub "ئَ" "ʾa"
354
+ sub "ء" "ʾ"
355
+ sub "أ" "ʾ"
356
+ sub "إ" "ʾ"
357
+ sub "ؤ" "ʾ"
358
+ sub "ئ" "ʾ"
359
+ sub "ا" "ā"
360
+ sub "ب" "b"
361
+ sub "ت" "t"
362
+ sub "ث" "ṯ"
363
+ sub "ج" "ǧ"
364
+ sub "ح" "ḥ"
365
+ sub "خ" "ḫ"
366
+ sub "د" "d"
367
+ sub "ذ" "ḏ"
368
+ sub "ر" "r"
369
+ sub "ز" "z"
370
+ sub "س" "s"
371
+ sub "ش" "š"
372
+ sub "ص" "ṣ"
373
+ sub "ض" "ḍ"
374
+ sub "ط" "ṭ"
375
+ sub "ظ" "ẓ"
376
+ sub "ع" "ʿ"
377
+ sub "غ" "ġ"
378
+ sub "ف" "f"
379
+ sub "ق" "q"
380
+ sub "ک" "k"
381
+ sub "ك" "k"
382
+ sub "ل" "l"
383
+ sub "م" "m"
384
+ sub "ن" "n"
385
+ sub "ه" "h"
386
+ sub "ھ" "h"
387
+ sub "و" "w"
388
+ sub "ي" "y"
389
+ sub "ى" "ā"
390
+ sub "َ" "a"
391
+ sub "ِ" "i"
392
+ sub "ُ" "u"
393
+ sub "ً" "an"
394
+ sub "ٌ" ""
395
+ sub "ٍ" ""
396
+ sub "ّ" ""
397
+ sub "ٰ" "ā"
398
+ }
399
+
400
+ }
401
+
402
+ }
@@ -0,0 +1,80 @@
1
+ system "DIN:atv-Cyrl:Latn:1460-2-2011" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 1460-2-2011-4
6
+ language iso-639-3:atv
7
+ source_script Cyrl
8
+ destination_script Latn
9
+ name "DIN 1460-2:2011-10, Tabelle 1 row 4: Altaisch (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 4
16
+ (Altaisch). 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 "i" "í"
53
+ sub "j" "j́"
54
+ sub "к" "k"
55
+ sub "к̢" ""
56
+ sub "л" "l"
57
+ sub "м" "m"
58
+ sub "н" "n"
59
+ sub "ҥ" "ņ"
60
+ sub "о" "o"
61
+ sub "ӧ" "ö"
62
+ sub "п" "p"
63
+ sub "р" "r"
64
+ sub "с" "s"
65
+ sub "т" "t"
66
+ sub "у" "u"
67
+ sub "ӱ" "ü"
68
+ sub "ф" "f"
69
+ sub "х" "h"
70
+ sub "ц" "c"
71
+ sub "ч" "č"
72
+ sub "ш" "š"
73
+ sub "щ" "šč"
74
+ sub "ъ" "\""
75
+ sub "ы" "y"
76
+ sub "ь" "'"
77
+ sub "э" "ė"
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,74 @@
1
+ system "DIN:av-Cyrl:Latn:1460-2-2011" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 1460-2-2011-6
6
+ language iso-639-3:av
7
+ source_script Cyrl
8
+ destination_script Latn
9
+ name "DIN 1460-2:2011-10, Tabelle 1 row 6: Awarisch (Caucasus)"
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 6
16
+ (Awarisch). 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 "ъ" "q"
69
+ sub "ы" "y"
70
+ sub "ь" "ĭ"
71
+ sub "э" "ė"
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,80 @@
1
+ system "DIN:az-Cyrl:Latn:1460-2-2011" {
2
+
3
+ metadata {
4
+ authority_id din
5
+ id 1460-2-2011-5
6
+ language iso-639-3:az
7
+ source_script Cyrl
8
+ destination_script Latn
9
+ name "DIN 1460-2:2011-10, Tabelle 1 row 5: Aserbaidschanisch (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 5
16
+ (Aserbaidschanisch). 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 "ғ" "ġ"
46
+ sub "h" "h"
47
+ sub "д" "d"
48
+ sub "е" "e"
49
+ sub "ж" "ž"
50
+ sub "з" "z"
51
+ sub "и" "i"
52
+ sub "й" "j"
53
+ sub "j" "j"
54
+ sub "к" "k"
55
+ sub "к̢" ""
56
+ sub "ҝ" "k"
57
+ sub "л" "l"
58
+ sub "м" "m"
59
+ sub "н" "n"
60
+ sub "о" "o"
61
+ sub "ө" "ö"
62
+ sub "п" "p"
63
+ sub "р" "r"
64
+ sub "с" "s"
65
+ sub "т" "t"
66
+ sub "у" "u"
67
+ sub "у̅" "ū"
68
+ sub "ү" "ü"
69
+ sub "ф" "f"
70
+ sub "х" "h"
71
+ sub "ц" "c"
72
+ sub "ч" "č"
73
+ sub "ӌ" "ǵ"
74
+ sub "ҹ" "ǵ"
75
+ sub "ш" "š"
76
+ sub "ы" "y"
77
+ sub "э" "ė"
78
+ }
79
+ }
80
+ }