diff --git a/maps/alalc-jav-Arab-Latn-2012.isc b/maps/alalc-jav-Arab-Latn-2012.isc new file mode 100644 index 0000000..8d265a2 --- /dev/null +++ b/maps/alalc-jav-Arab-Latn-2012.isc @@ -0,0 +1,253 @@ +system "ALA-LC:jav-Arab:Latn:2012" { + +metadata { + authority_id alalc + id 2012 + language iso-639-2:jav + source_script Arab + destination_script Latn + name "Romanization Table -- Jawi/Pegon (2012)" + url http://catdir.loc.gov/catdir/cpso/romanization/jawi-pegon.pdf + creation_date 2011 + confirmation_date 2011 + description { ALA-LC Romanization table for Jawi/Pegon, 2012 version (earlier versions: 2011, 1997, both tables named Malay (in Jawi-Arabic script)) + } + + notes { + note "Letters of the Alphabet (Romanization column; Jawi/Pegon orthography is rendered with Unicode presentation forms in the source, normalized here to base codepoints): alif ا omit (see Note 1; per Rule 4 a word-initial alif or an alif following a consonant represents the vowel a); ب b; ت t; ث *th, s (see Note 2); ج j; چ c; ح h; خ kh; د d; ذ *dh, z (see Notes 2 and 3); ر r; ز z (see Note 3); س s; ش sy (see Note 3); ص *ṣ, s (see Notes 2 and 3); ض *ḍ, d (see Notes 2 and 3); ط *ṭ, t (see Notes 2 and 3); ظ *ẓ, l, z (see Notes 3 and 4); ع omit (see Note 3); غ gh (see Note 3); ڠ ng; ف *f, p (see Notes 3 and 5); ق *q, k (see Note 2); ڤ p; ك k; kaf with superscript dot ك̇ g; ل l; م m; ن n; ڽ ny; ه ة h; و w, u, o, au (see Note 6); ۏ v; ي y, i, e, ai (see Note 7); dal with four dots ڎ dh (see Note 8); tah with three dots ڟ th (see Note 8)." + + note "Vowels and Diphthongs: alif with fatha اَ a; waw with damma وُ u; yad with kasra يِ i; unwritten ĕ (the schwa is not written in Jawi and must be supplied lexically); yad with fatha يَ e, ai; waw with fatha وَ o, au. This map encodes the marked vowel rows; the unmarked schwa reading is lexical." + + note "Note 1. For the use of alif see rules 3-5." + + note "Note 2. Letters in the romanization column marked with an asterisk (*) represent the romanized value of the equivalent Jawi letter when it occurs in Arabic words (not Arabic loan words): th (ث), dh (ذ), ṣ (ص), ḍ (ض), ṭ (ط), ẓ (ظ), f (ف), q (ق). The letter not designated with an asterisk represents the proper romanization value for the letter when it occurs in Malay words: s, z, s, d, t, l/z, p, k respectively. This map encodes the Malay values; the Arabic-word values are lexical (Rule 2: the boundary between Arabic loans and foreign Arabic terms is not always easy to draw; common usage should always be followed)." + + note "Note 3. Jawi letters typically found only in Arabic and Arabic loan words: ث ذ ص ض ط ظ ع غ ش ف ق (and the dotted-g kaf)." + + note "Note 4. Some words of Arabic origin with the letter ظ have come into the language with the equivalent l (e.g., lahir), others with the equivalent z (e.g., zalim). The l/z choice is lexical; this map defaults to z." + + note "Note 5. The letter ف is often used as a shorthand way of writing ڤ. When this is clearly the case, the letter ف should be romanized as p. This map encodes ف as p (the Malay value; the Arabic-word value f is lexical per note 2)." + + note "Note 6. On و (wau), see rules 6 and 8b." + + note "Note 7. On ي (yad), see rules 7 and 8b." + + note "Note 8. The letters ڎ and ڟ are used for Javanese and Sundanese transliterations." + note "Rule 1. Jawi orthography is far from standard, particularly in handwritten documents. Nevertheless, for the purposes of cataloging, it is essential to standardize the romanized form of every lexeme. Two widely accepted standards for writing Malay in the Latin script exist: the Indonesian and the Malaysian. In this table, the Indonesian standard, referred to as Ejaan Bahasa Indonesia yang Disempurnakan, has been employed." + + note "Rule 2. Arabic words (not Arabic loan words) appearing in a Malay text are analogous to French words and expressions in a Russian novel or Latin phrases in a Catholic theology text, and their distinctness should be preserved by transliterating them in accordance with the rules governing the romanization of the relevant language, Arabic or Malay. Malay words of Arabic origin whose orthography is the same as the Arabic might therefore be romanized differently at different points in the same text. Thus the word قدوس will be romanized kudus when it appears as a Malay word, but qudūs when it is used as an Arabic term or in an Arabic phrase. This map encodes the Malay reading." + + note "Rule 3. ا (alif), و (wau), and ي (yad) are used to support ء (hamzah); when so used these letters are not represented in romanization. See rule 8b." + + note "Rule 4. At the beginning of a word, alif represents an initial vowel or diphthong and is romanized accordingly as a, e, i, u, o (او), au (او), e (ايـ), or ai (ايـ). Following a consonant, alif represents the vowel romanized as a. This map renders bare alif as a (the rule-4 vocalic reading); the alif that merely supports a hamzah or carries no vowel value is the rule-3/rule-8 case." + + note "Rule 5. The optional alif gantung (for example, in the word tiang تيڠٰ), when used, does not change the romanized form of the word. This map renders the superscript alif as a." + + note "Rule 6. The letter و (wau) is used: (a) to represent the consonant romanized as w; (b) to represent the vowels and diphthong romanized as u, o, and au; and (c) to support ء (hamzah) (see rule 8b). Mechanically: word-initially and after a vowel it is the consonant w; word-finally and after a consonant it is the vowel u (the bare alif+wau spelling of the au diphthong renders as a+u); with fatha it is o." + + note "Rule 7. The letter ي (yad) is used: (a) to represent the consonant romanized as y; (b) to represent the vowels and diphthong romanized as i, e, and ai; and (c) to support ء (hamzah) (see rule 8b). Mechanically: word-initially and between vowels it is the consonant y; elsewhere it is the vowel i (the word-final yad after a vowel is the ai diphthong, rendered i); with fatha it is e; with kasra it is i." + + note "Rule 8. ء (hamzah): (a) In Arabic words, and most Arabic loans where it is found, hamzah is romanized according to the rules for Arabic (including use of the non-alphabetic mark ʼ (alif)). (b) Hamzah used to separate contiguous vowels, supported by ا, or و or ي, is not represented in romanization (for example, lain لاين, laut لاؤت, permintaan ڤرمنتأن). (c) Hamzah replacing initial alif in vowel-initial words to which the prefix ke- or se- has been attached is represented by the vowel value that it elided (keenam كئنم, seindah سئنده, seorang سئورڠ). (d) A hamzah used after the reduplicating numeral 2 in vowel-final roots followed by the suffixes -an or -i is not represented in romanization. (e) The occasional use of hamzah to represent a word-final glottal stop (for example, tidak تيداء) is romanized as k. This map renders: the high-hamza separator mark, alef-hamza أ and yeh-hamza ئ as silent; waw-hamza ؤ as u; word-final hamzah as k (rule 8e); other hamzah as ʼ (rule 8a). The rule-8c vowel value is lexical, so the keenam/seindah/seorang examples carry unwritten short vowels and are romanized here without them." + + note "Rule 9. Words doubled with the number 2 should be written out in full (for example, mata-mata مات٢). When the root word ends in a consonant such that an appended -an or -i suffix must reduplicate the final consonant, the doubled consonant is not represented in the romanization (for example: rumput-rumputan رمڤت٢ن). The reduplication numeral ٢ is a lexical instruction and is not expanded mechanically." + + note "Rule 10. In cases where the postpositive itu or prepositive yang are joined to the preceding or following word, they should be romanized as separate words. (Syntactic; not implemented mechanically.)" + + note "Rule 11. Alif maqsūrah, waṣlah, maddah, shaddah, and tanwīn are not commonly used in Jawi script except in Arabic words or phrases. If they do not appear as adornment on Malay words, they are not represented in the romanization. Ta marbutah, romanized as t, is not properly a Jawi script character either, but sometimes it may be found in Malay texts. The alphabet row assigns ه and ة the value h, which this map encodes; the rule-11 remark on t describes the Arabic-word treatment." + + note "The source document's text layer renders Jawi in Unicode presentation forms (joining shapes); these carry no letter-identity information in Jawi and are normalized to base codepoints before this map applies. Unwritten short vowels (the ĕ of the vowel table and the unwritten i/a of many lexemes) must be supplied lexically." + } +} + +tests { + # Alphabet rows (Malay values; asterisked Arabic values are lexical, note 2) + "ب" -> "b" + "ت" -> "t" + "ث" -> "s" + "ج" -> "j" + "چ" -> "c" + "ح" -> "h" + "خ" -> "kh" + "د" -> "d" + "ذ" -> "z" + "ر" -> "r" + "ز" -> "z" + "س" -> "s" + "ش" -> "sy" + "ص" -> "s" + "ض" -> "d" + "ط" -> "t" + "ظ" -> "z" # l/z is lexical (note 4) + "ع" -> "" + "غ" -> "gh" + "ڠ" -> "ng" + "ف" -> "p" # note 5 + "ق" -> "k" + "ڤ" -> "p" + "ك" -> "k" + "ك̇" -> "g" + "ک̇" -> "g" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ڽ" -> "ny" + "ه" -> "h" + "ة" -> "h" + "ۏ" -> "v" + "ڎ" -> "dh" + "ڟ" -> "th" + "و" -> "w" + "ي" -> "y" + # Vowels and Diphthongs rows + "اَ" -> "a" + "وُ" -> "u" + "يِ" -> "i" + "يَ" -> "e" + "وَ" -> "o" + # Rule 2 example (Malay word reading) + "قودوس" -> "kudus" + # - the same word as an Arabic term is romanized qudūs (lexical, note 2) + # Rule 5 example (alif gantung) + "تيڠٰ" -> "tiang" + # Rule 8b examples + "لاين" -> "lain" + "لاؤت" -> "laut" + # - source: ڤرمنتأن, expected: permintaan (unwritten short vowels are + # lexical; mechanical: prmntn) + # Rule 8c examples (unwritten short vowels; mechanical without them) + # - source: كئنم, expected: keenam + # - source: سئنده, expected: seindah + # - source: سئورڠ, expected: seorang + # Rule 8e example (word-final glottal stop hamzah) + "تيداء" -> "tidak" + # Rule 9 examples (reduplication numeral ٢ is lexical) + # - source: مات٢, expected: mata-mata + # - source: رمڤت٢ن, expected: rumput-rumputan + # Bare alif as the vowel a (rule 4) + "سايا" -> "saya" + "باڤا" -> "bapa" + # Wau and yad context readings (rules 6-7) + "واڠ" -> "wang" + "کاوان" -> "kawan" + "سورات" -> "surat" + "دوا" -> "dua" + "بوکو" -> "buku" + "تاهو" -> "tahu" + "ياڠ" -> "yang" + "سيني" -> "sini" + "راماي" -> "ramai" +} + +stage main { + sequence { + # Marked vowels (Vowels and Diphthongs rows) + sub "وُ" "u" + sub "وَ" "o" + sub "يِ" "i" + sub "يَ" "e" + + # Rule 8 - hamzah + sub "ٴ" "" # the high-hamza separator mark (rule 8b) is not represented + sub "أ" "" # alef-hamza separator (rule 8b) + sub "ئ" "" # yeh-hamza (rule 8b/8c; the elided vowel value is lexical) + sub "ؤ" "u" # waw-hamza + sub { + from "ء" + to "k" + after boundary + } # rule 8e word-final glottal stop + sub "ء" "ʼ" # rule 8a Arabic reading + + # Rule 5 - alif gantung: the superscript alif marks the final a of the + # word, which romanizes before the nasal it sits over (tiang); swap the + # mark order before the letters convert + sub "ڠٰ" "aڠ" + sub "ٰ" "a" + + # Marks not represented (rule 11) and leftover vowel signs + sub "ْ" "" + sub "ّ" "" + sub "َ" "" + sub "ُ" "" + sub "ِ" "" + sub "ـ" "" + + # Final-form yad (alef maksura codepoint) joins the yad rules + sub "ى" "ي" + + # Letters of the alphabet (Malay values) + sub "ب" "b" + sub "ت" "t" + sub "ث" "s" + sub "ج" "j" + sub "چ" "c" + sub "ح" "h" + sub "خ" "kh" + sub "د" "d" + sub "ذ" "z" + sub "ر" "r" + sub "ز" "z" + sub "س" "s" + sub "ش" "sy" + sub "ص" "s" + sub "ض" "d" + sub "ط" "t" + sub "ظ" "z" + sub "ع" "" + sub "غ" "gh" + sub "ڠ" "ng" + sub "ف" "p" + sub "ق" "k" + sub "ڤ" "p" + sub "ك̇" "g" + sub "ک̇" "g" + sub "ك" "k" + sub "ک" "k" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "ڽ" "ny" + sub "ڎ" "dh" + sub "ڟ" "th" + sub "ۏ" "v" + sub "ه" "h" + sub "ة" "h" + + # Rule 4 - bare alif as the vowel a + sub "ا" "a" + + # Rule 7 - yad: word-initial and inter-vocalic y, else the vowel i + sub { + from boundary + "ي" + to "y" + } + sub { + from "ي" + to "y" + before any(["a", "e", "i", "o", "u"]) + after any(["a", "e", "i", "o", "u"]) + } + sub "ي" "i" + + # Rule 6 - wau: word-initial and post-vocalic w, word-final and + # post-consonantal u + sub { + from boundary + "و" + to "w" + } + sub { + from "و" + to "u" + after boundary + } + sub { + from "و" + to "w" + before any(["a", "e", "i", "o", "u"]) + } + sub "و" "u" + } + +} + +} diff --git a/maps/alalc-jba-Hebr-Latn-2011.isc b/maps/alalc-jba-Hebr-Latn-2011.isc new file mode 100644 index 0000000..5b76fbd --- /dev/null +++ b/maps/alalc-jba-Hebr-Latn-2011.isc @@ -0,0 +1,226 @@ +system "ALA-LC:jba-Hebr:Latn:2011" { + +metadata { + authority_id alalc + id 2011 + language iso-639-2:jba + source_script Hebr + destination_script Latn + name "ALA/LC Systematic Romanization for Judeo-Arabic (2011)" + url http://catdir.loc.gov/catdir/cpso/romanization/judeo-arabic.pdf + creation_date 2011 + confirmation_date 2011-01-31 + description { ALA/LC Systematic Romanization for Judeo-Arabic, Jan. 31, 2011 (no earlier versions) + } + + notes { + note "Letters of the alphabet (Judeo-Arabic / Roman / Examples): alef א ʼ, ʼl אל 'the', ʼbn אבן 'son'; bet ב בּ b, bnyn בנין 'sons', ʼrb‘ ארבע 'four'; gimel ג גּ (gimel with superscript dot) g, grq גרק 'he suffocates' (cf. Standard /ghariqa/); gimel geresh ג׳ ḡ, ḡynʼ ג׳ינא 'we came' (cf. Standard Arabic /jīnā/); dalet ד d, dm דם 'blood' (cf. Standard Arabic /dam/), dkrt דכרת 'she remembered' (cf. Standard Arabic /dhakarat/); dalet geresh ד׳ ḏ, ḏhb ד׳הב 'gold'; he ה h, hwm הום 'they'; he with diaeresis ה̈ ḧ, mdynḧ מדינה̈ 'city (of)'; vav ו w, wʼḥd ואחד 'one', ʼrwʼḥ ארואח 'spirits'; double vav וו ww, kwwʼkb כוואכב 'stars', nbwwʼ נבווא 'prophecy', l-wwrʼ לוורא 'after, behind'; zayin ז z, zwḡtw זוג׳תו 'his wife'; het ח ḥ, ḥyyʼt חייאת 'life', bḥr בחר 'sea'; tet ט ṭ, ṭwl טול 'length', ‘ṭʼ עטא 'he gave'; tet with superscript dot ט̇ ẓ, ẓhr ט̇הר 'he appeared'; yod י y, yd יד 'hand', bywt ביות 'house', ydy ידי 'my hand'; double yod יי yy, ʼyyʼm אייאם 'days', l-yyḡyb לייג׳יב 'that he may bring', rḡlyy רג׳ליי 'my (two) feet'; kaf כּ ךּ כ ך k, kʼnt כּאנת 'she was', ḏʼlk ד׳אלךּ 'that', kbz כבז 'bread' (cf. Standard Arabic /khubz/); lamed ל l, lyyʼly לייאלי 'nights'; mem ם מ m, mn מן 'from', ʼsm אסם 'name'; nun ן נ n, nfs נפס 'soul', byn בין 'between'; samekh ס s, sm‘ סמע 'he heard', Ysrʼyl יסראיל 'Israel'; ayin ע ‘, ‘byd עביד 'servants'; pe ף פ pe geresh pe final geresh פ׳ ף׳ f, fy פי 'in'; tsadi צ ṣ, ṣn‘ צנע 'he did'; tsadi geresh tsadi final geresh צ׳ ץ׳ ṣ̄, ʼrṣ̄ ארץ׳ 'earth' (cf. Standard Arabic /ard/), ṣ̄ʼlm צ׳אלם 'wicked' (cf. Standard Arabic /z̄ālim/); qof ק q, qʼl קאל 'he said', mqds מקדס 'holy'; resh ר r, rby רבי 'rabbi' (lit., 'my lord'); shin ש shin with dot שׁ š, š‘b שעב 'nation', mšrq משרק 'east'; shin with sin dot שׂ ś, Yśrʼyl ישׂראל 'Israel' (only in Hebrew loan words); tav ת תּ t, tqwl תּקול 'you say', sbt סבתּ 'Sabbath'; with no diacritic, the character ת may correspond etymologically with Standard Arabic ث /th/, e.g., in mṯl מתל 'proverb'. Ligature alef lamed אל initial: ʼl, ʼl אל 'the', mʼl מאל 'property'." + + note "Note 1. The ALA/LC system of romanization for Judeo-Arabic provides a one-to-one representation of the consonants in the text, including 'alif' (א), 'y' (י) and 'w' (ו) which sometimes represent long vowels and sometimes consonants." + + note "Note 2. Judeo-Arabic texts are produced both with and without vocalization. Because of the multiglossic nature of Judeo-Arabic and its texts, when the short vowels are not represented in the text, there no way to treat them that would be useful and reliable across all dialects. It is also not practical for catalogers to attempt to provide vowels matching those of Standard Arabic, because of the frequent difficulty of matching Judeo-Arabic lexical items to equivalent Standard Arabic forms. Even if there were an attempt to provide a complete 'normalization' of Judeo-Arabic morphology for all the parts of speech, a kind of artificial 'cataloging dialect,' neither catalogers nor patrons could be expected to study it in enough depth to make it useful, nor could it agree in all points with any actual dialect." + + note "Note 3. Because Hebrew script as used for the Hebrew language does not contain characters for all the phonemes in the Judeo-Arabic dialect(s), Judeo-Arabic texts usually differentiate several Hebrew characters to show the different intended pronunciations. Thus 'plain' ג usually corresponds to Standard Arabic غ (ghayn), while 'differentiated' ג followed by geresh (ג׳) or with a superscript dot or other marking usually corresponds to Standard Arabic ج (jīm). The table does not represent all the possibilities for 'differentiation' in Judeo-Arabic texts but the common ones that are cited may stand for any of the others. This map encodes the differentiated forms the table cites: gimel geresh ḡ, dalet geresh ḏ, tet with superscript dot ẓ, tsadi geresh ṣ̄, and renders further differentiated forms (dot-marked gimel, dot-marked kaf) by their plain readings per the note's 'may stand for any of the others'." + + note "Note 4. If the text to be romanized is vocalized with Tiberian Hebrew vowel points, represent the full text with vowels in the transcribed fields of the bibliographic record (MARC fields 245, 250, 260, 4XX). Add a 246 'variant title' field to such records with the consonantal romanization of the 245+a as provided in this table." + + note "Note 5. When Hebrew words or phrases are embedded in a Judeo-Arabic context, romanize them in Judeo-Arabic style--that is, without short vowels and with Judeo-Arabic consonantal values (thus /Hgdh šl Fsḥ/ not /Hagadah shel Pesaḥ/). An independent string of Hebrew words, e.g., in the title proper of a work, may be romanized as Hebrew, but catalogers have the option to add a 246 giving the Judeo-Arabic consonantal transcription: 245 10 Sefer Ṿa-tagid li-vene Yiśraʼel; 246 3 Sfr W-tgyd l-bny Yśrʼl." + + note "Note 6. For romanizing Hebrew text with vowels, including abbreviated honorifics or religious formulae, use the guide to ALA/LC Hebrew romanization prepared by Paul Maher in Hebraica Cataloging (Washington, D.C.: Cataloging Distribution Service, Library of Congress, 1987); online edition, slightly revised, http://www-sul.stanford.edu/hebraicafunnel/Hebraica_Cataloging_Manual/Hebraica%20Cat%20Manual%20Feb%202006%20Draft.pdf. Examples of honorifics: w-hwwʼ sefer Eliyahu ha-Navi, zal (והווא ספר אליהו הנביא ז\"ל); he-ḥakham k. mo. ha-r. R. Yehudah Śitrug, y. ts. ṿ. (החכם כמהר\"ר יהודה שתרוג, יצ\"ו)." + + note "Note 7. In cases where it is possible, that is when the Judeo-Arabic consonants of the text can be matched with a Standard Arabic interpretation, a 246 'variant title' field in Standard Arabic may be provided for additional access. Narrative texts in particular may have standard Arabic titles and may indeed be direct adaptations of standard Arabic originals." + + note "Note 8. Name authority work presents a problem when specifically Judeo-Arabic names are involved--e.g., the forename /Mqyqṣ/. A group such as the Association of Jewish libraries may choose to keep an online list of found romanizations and code such headings (romanized as seems reasonable) 'provisional' until they can be added to the list of authorized forms. Robert Attal's 'ha-Sifrut ha-ʻArvit-ha-Yehudit be-Tunisyah : meʼah shenot yetsirah (1861-1961) : tsiyunim bibliyografiyim' (Yerushalayim: Mekhon Ben-Tsevi le-ḥeḳer ḳehilot Yiśraʼel ba-Mizraḥ, 2007) provides a name index to Tunisian authors that includes French forms as they appear on added title pages. This may serve as a tool to establish forms for authors such as: בשירי, חיים = Bsiri, Haïm, not Bashiri, Hayim." + + note "Note 9. Establish Hebrew or Standard Arabic forenames and surnames according to the rules in AACR2/RDA and the LCRIs/LCPSs for those languages; provide references in systematic ALA/LC Judeo-Arabic romanization. (Numbered examples in notes 10-12 are from Robert Attal's ha-Sifrut ha-ʻArvit-ha-Yehudit be-Tunisyah: meʼah shenot yetsirah (1861-1961): tsiyunim bibliyografiyim, Yerushalayim: Mekhon Ben-Tsevi le-ḥeḳer ḳehilot Yiśraʼel ba-Mizraḥ, 2007.)" + + note "Note 10. As in the ALA/LC romanization tables for (Standard) Arabic and Hebrew, follow all conjunctions and prepositions prefixed to other words with a hyphen in romanization: w-ʼbn (ואבן); qṣt Ywsf h-ṣdyq (קצת יוסף הצדיק); b-byʼn (בביאן), cf. Standard Arabic /bi-bayān/. The hyphenation is syntactic (it requires identifying the prefixed conjunction, preposition, or article); this map renders the consonants and leaves the hyphen to the writer." + + note "Note 11. The filing indicator in a 245 field beginning with the definite article /ʼl-/ is set to 2 (the alif diacritic is not counted): ʼl-ṭywr (אלטיור)." + + note "Note 12. Doubled consonants (marked in Standard Arabic with the diacritical mark shaddah) are represented as doubled in Judeo-Arabic romanization only if the letter is printed twice in the source: ʼl-gddʼr ʼl-kwwʼn (אלגדדאר אלכׄוואן). BUT: ḥkʼyt Mḥmd (חכאית מחמד), cf. Standard Arabic /ḥikāyat Muḥammad/." + + note "This map leaves case untouched: the source's proper-noun capitals (Ysrʼyl, Yśrʼyl, Mḥmd) are lexical." + } +} + +tests { + # Alphabet rows + "א" -> "ʼ" + "ב" -> "b" + "בּ" -> "b" + "ג" -> "g" + "גׄ" -> "g" # gimel with superscript dot (note 3 fallback) + "ג׳" -> "ḡ" + "ד" -> "d" + "ד׳" -> "ḏ" + "ה" -> "h" + "ה̈" -> "ḧ" + "ו" -> "w" + "וו" -> "ww" + "ז" -> "z" + "ח" -> "ḥ" + "ט" -> "ṭ" + "ט̇" -> "ẓ" + "י" -> "y" + "יי" -> "yy" + "כ" -> "k" + "ך" -> "k" + "כּ" -> "k" + "ךּ" -> "k" + "כׄ" -> "k" # dot-marked kaf, note 12 example + "ל" -> "l" + "מ" -> "m" + "ם" -> "m" + "נ" -> "n" + "ן" -> "n" + "ס" -> "s" + "ע" -> "‘" + "פ" -> "f" + "ף" -> "f" + "פ׳" -> "f" + "ף׳" -> "f" + "צ" -> "ṣ" + "צ׳" -> "ṣ̄" + "ץ׳" -> "ṣ̄" + "ק" -> "q" + "ר" -> "r" + "ש" -> "š" + "שׁ" -> "š" + "שׂ" -> "ś" + "ת" -> "t" + "תּ" -> "t" + "ﭏ" -> "ʼl" + # Alphabet examples + "אל" -> "ʼl" + "אבן" -> "ʼbn" + "בנין" -> "bnyn" + "ארבע" -> "ʼrb‘" + "גרק" -> "grq" + "ג׳ינא" -> "ḡynʼ" + "דם" -> "dm" + "דכרת" -> "dkrt" + "ד׳הב" -> "ḏhb" + "הום" -> "hwm" + "מדינה̈" -> "mdynḧ" + "ואחד" -> "wʼḥd" + "ארואח" -> "ʼrwʼḥ" + "כוואכב" -> "kwwʼkb" + "נבווא" -> "nbwwʼ" + # - source: לוורא, expected: l-wwrʼ (note 10 prefixed-preposition + # hyphenation is syntactic; mechanical: lwwrʼ) + "זוג׳תו" -> "zwḡtw" + "חייאת" -> "ḥyyʼt" + "בחר" -> "bḥr" + "טול" -> "ṭwl" + "עטא" -> "‘ṭʼ" + "ט̇הר" -> "ẓhr" + "יד" -> "yd" + "ביות" -> "bywt" + "ידי" -> "ydy" + "אייאם" -> "ʼyyʼm" + # - source: לייג׳יב, expected: l-yyḡyb (note 10 hyphenation; mechanical: lyyḡyb) + "רג׳ליי" -> "rḡlyy" + "כּאנת" -> "kʼnt" + "ד׳אלךּ" -> "ḏʼlk" + "כבז" -> "kbz" + "לייאלי" -> "lyyʼly" + "מן" -> "mn" + "אסם" -> "ʼsm" + "נפס" -> "nfs" + "בין" -> "byn" + "סמע" -> "sm‘" + # - source: יסראיל, expected: Ysrʼyl (proper-noun capital) + # - source: עביד, expected: ‘byd + "עביד" -> "‘byd" + "פי" -> "fy" + "צנע" -> "ṣn‘" + "ארץ׳" -> "ʼrṣ̄" + "צ׳אלם" -> "ṣ̄ʼlm" + "קאל" -> "qʼl" + "מקדס" -> "mqds" + "רבי" -> "rby" + "שעב" -> "š‘b" + "משרק" -> "mšrq" + # - source: ישׂראל, expected: Yśrʼyl (proper-noun capital; 'only in + # Hebrew loan words') + "סבתּ" -> "sbt" + "תּקול" -> "tqwl" + # - source: מתל, expected: mṯl (the etymological th reading of the + # undifferentiated tav is lexical; mechanical: mtl) + # - source: ואבן, expected: w-ʼbn (note 10 hyphenation; mechanical: wʼbn) + # - source: קצת יוסף הצדיק, expected: qṣt Ywsf h-ṣdyq (note 10) + # - source: בביאן, expected: b-byʼn (note 10; mechanical: bbyʼn) + # - source: אלטיור, expected: ʼl-ṭywr (note 11 article hyphenation; + # mechanical: ʼlṭywr) +} + +stage main { + parallel { + # Ligature alef-lamed + sub "ﭏ" "ʼl" + + # Geresh-differentiated letters (note 3) + sub "ג׳" "ḡ" + sub "ד׳" "ḏ" + sub "פ׳" "f" + sub "ף׳" "f" + sub "צ׳" "ṣ̄" + sub "ץ׳" "ṣ̄" + + # Dot-differentiated letters (note 3; kaf per note 12) + sub "גׄ" "g" + sub "ט̇" "ẓ" + sub "ה̈" "ḧ" + sub "כׄ" "k" + + # Presentation and composed forms + sub "בּ" "b" + sub "בּ" "b" + sub "כּ" "k" + sub "כּ" "k" + sub "ךּ" "k" + sub "ךּ" "k" + sub "תּ" "t" + sub "תּ" "t" + sub "שׁ" "š" + sub "שׁ" "š" + sub "שׂ" "ś" + sub "שׂ" "ś" + + # Doubled vav and yod (one-to-one consonant representation, note 1) + sub "וו" "ww" + sub "יי" "yy" + + # Letters + sub "א" "ʼ" + sub "ב" "b" + sub "ג" "g" + sub "ד" "d" + sub "ה" "h" + sub "ו" "w" + sub "ז" "z" + sub "ח" "ḥ" + sub "ט" "ṭ" + sub "י" "y" + sub "כ" "k" + sub "ך" "k" + sub "ל" "l" + sub "מ" "m" + sub "ם" "m" + sub "נ" "n" + sub "ן" "n" + sub "ס" "s" + sub "ע" "‘" + sub "פ" "f" + sub "ף" "f" + sub "צ" "ṣ" + sub "ק" "q" + sub "ר" "r" + sub "ש" "š" + sub "ת" "t" + } + +} + +} diff --git a/maps/alalc-kaz-Arab-Latn-2012.isc b/maps/alalc-kaz-Arab-Latn-2012.isc new file mode 100644 index 0000000..34abcfc --- /dev/null +++ b/maps/alalc-kaz-Arab-Latn-2012.isc @@ -0,0 +1,240 @@ +system "ALA-LC:kaz-Arab:Latn:2012" { + +metadata { + authority_id alalc + id 2012 + language iso-639-2:kaz + source_script Arab + destination_script Latn + name "Romanization Table -- Kazakh (2012)" + url http://catdir.loc.gov/catdir/cpso/romanization/kazakh.pdf + creation_date 2012 + confirmation_date 2012 + description { ALA-LC Romanization table for Kazakh (in Arabic Script), 2012 version (no earlier versions) + } + + notes { + note "Letters of the Alphabet: 37 rows transcribed in full. Letters joining on both sides carry initial/medial/final/alone forms; letters that do not join to the following (alif, dal, reh, zain, waw, and the hamza-bearing vowel letters) carry final/alone forms only, shown as '--' in the table." + + note "Rule 1. When a hamzah appears as part of the vowel ٵ (ä), ٶ (ö), ٷ (ü), or ٴى (ï), it is not romanized separately. When a high hamzah (ٴ) appears with any other letter at the beginning of a word, it is romanized as alif (ʼ)." + + note "Rule 2. Romanize foreign words that occur in a Kazakh context and are written in Kazakh letters according to these rules for romanizing Kazakh." + + note "Rule 3. Follow the rules for the capitalization of English. This is a convention for writers of romanization; the source document's own examples are lowercase, so this map leaves case untouched." + + note "The vowel letter he (ه) is listed twice in the alphabet: row 8 romanizes it e and row 29 romanizes it h. The two readings are homographs in the Arabic script and cannot be distinguished without vocalization; this map encodes the e reading, which is the one exercised by the document's own example (evfemyzm) and is the common reading of word-final he." + + note "The source document's text layer encodes the Arabic letters in their Unicode presentation forms (joining shapes). This map carries those presentation forms so that input transcribed from the source document romanizes exactly; plain (unshaped) codepoints are handled by the base-letter rules." + } +} + +tests { + # Letters of the Alphabet (2012 version, every row) + "ا" -> "a" + "ٵ" -> "ä" + "ب" -> "b" + "ۆ" -> "v" + "گ" -> "g" + "ع" -> "ğ" + "د" -> "d" + "ه" -> "e" + "ج" -> "j" + "ز" -> "z" + "ي" -> "y" + "ك" -> "k" + "ق" -> "q" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ڭ" -> "ñ" + "و" -> "o" + "ٶ" -> "ö" + "پ" -> "p" + "ر" -> "r" + "س" -> "s" + "ت" -> "t" + "ۋ" -> "w" + "ۇ" -> "u" + "ٷ" -> "ü" + "ف" -> "f" + "ح" -> "x" + # row 29: he romanized h (homograph of row 8, see notes) + "چ" -> "č" + "ش" -> "š" + "ى" -> "i" + "ٴى" -> "ï" + "ٴ" -> "ʼ" # romanized as alif + # Rule 1 examples (hamzah as part of a vowel is not romanized separately) + "ٵﺭ" -> "är" + "ٶﺯﻯ" -> "özi" + "ﯝﺷﯩﻨﺸﻰ" -> "üšinši" + "ٴﯨﻠﯩﻢ" -> "ïlim" + # Rule 1, continued (high hamzah word-initially romanized as alif) + "ٴﻣﺎﻟﯩﻢ" -> "ʼmalim" + "ٴﺳﻮﺯ" -> "ʼsoz" + "ٴﺗﯘﺒﯩﺮ" -> "ʼtubir" + "ٴﺗﯩﻠﻰ" -> "ʼtili" + # Rule 2 example (foreign word romanized per Kazakh rules) + "هﯙﻓﻪﻣﻴﺰﻡ" -> "evfemyzm" +} + +stage main { + + # CHARACTERS + parallel { + # Unicode presentation forms carried by the source document's text + # layer (joining shapes), mapped to the romanization of their base + # letter + sub "ﺍ" "a" + sub "ﺎ" "a" + sub "ٵ" "ä" + sub "ٶ" "ö" + sub "ٷ" "ü" + sub "ﯝ" "ü" + sub "ﺏ" "b" + sub "ﺐ" "b" + sub "ﺑ" "b" + sub "ﺒ" "b" + sub "ﭖ" "p" + sub "ﭗ" "p" + sub "ﭘ" "p" + sub "ﭙ" "p" + sub "ﭺ" "č" + sub "ﭻ" "č" + sub "ﭼ" "č" + sub "ﭽ" "č" + sub "ح" "x" + sub "ﺡ" "x" + sub "ﺢ" "x" + sub "ﺣ" "x" + sub "ﺤ" "x" + sub "ش" "š" + sub "ﺵ" "š" + sub "ﺶ" "š" + sub "ﺷ" "š" + sub "ﺸ" "š" + sub "ﻙ" "k" + sub "ﻚ" "k" + sub "ﻛ" "k" + sub "ﻜ" "k" + sub "ﮒ" "g" + sub "ﮓ" "g" + sub "ﮔ" "g" + sub "ﮕ" "g" + sub "ﻉ" "ğ" + sub "ﻊ" "ğ" + sub "ﻋ" "ğ" + sub "ﻌ" "ğ" + sub "ﺩ" "d" + sub "ﺪ" "d" + sub "ﻩ" "e" + sub "ﻪ" "e" + sub "ﻫ" "e" + sub "ﻬ" "e" + sub "ﺝ" "j" + sub "ﺞ" "j" + sub "ﺟ" "j" + sub "ﺠ" "j" + sub "ﺯ" "z" + sub "ﺰ" "z" + sub "ﻱ" "y" + sub "ﻲ" "y" + sub "ﻳ" "y" + sub "ﻴ" "y" + sub "ﻯ" "i" + sub "ﻰ" "i" + sub "ﯨ" "i" + sub "ﯩ" "i" + sub "ﯓ" "ñ" + sub "ﯔ" "ñ" + sub "ﯕ" "ñ" + sub "ﯖ" "ñ" + sub "ﻭ" "o" + sub "ﻮ" "o" + sub "ﯙ" "v" + sub "ﯚ" "v" + sub "پ" "p" + sub "ر" "r" + sub "ﺭ" "r" + sub "ﺮ" "r" + sub "س" "s" + sub "ﺱ" "s" + sub "ﺲ" "s" + sub "ﺳ" "s" + sub "ﺴ" "s" + sub "ت" "t" + sub "ﺕ" "t" + sub "ﺖ" "t" + sub "ﺗ" "t" + sub "ﺘ" "t" + sub "ۋ" "w" + sub "ﯞ" "w" + sub "ﯟ" "w" + sub "ۇ" "u" + sub "ﯗ" "u" + sub "ﯘ" "u" + sub "ف" "f" + sub "ﻑ" "f" + sub "ﻒ" "f" + sub "ﻓ" "f" + sub "ﻔ" "f" + sub "ق" "q" + sub "ﻕ" "q" + sub "ﻖ" "q" + sub "ﻗ" "q" + sub "ﻘ" "q" + sub "ل" "l" + sub "ﻝ" "l" + sub "ﻞ" "l" + sub "ﻟ" "l" + sub "ﻠ" "l" + sub "م" "m" + sub "ﻡ" "m" + sub "ﻢ" "m" + sub "ﻣ" "m" + sub "ﻤ" "m" + sub "ن" "n" + sub "ﻥ" "n" + sub "ﻦ" "n" + sub "ﻧ" "n" + sub "ﻨ" "n" + sub "ڭ" "ñ" + sub "ب" "b" + sub "ج" "j" + sub "ز" "z" + sub "ي" "y" + sub "ك" "k" + sub "ى" "i" + sub "ا" "a" + sub "و" "o" + sub "د" "d" + sub "ع" "ğ" + sub "ح" "x" + sub "ه" "e" + sub "چ" "č" + sub "ش" "š" + sub "گ" "g" + sub "ۆ" "v" + + # Rule 1: high hamzah. As part of the vowel letter ( فى the sequence + # ٴى) it is not romanized separately; with any other letter at the + # beginning of a word it is romanized as alif (ʼ). The vowel letter + # ى appears in the source text both as the plain codepoint and as + # presentation forms, so the sequence carries all four shapes. + sub "ٴى" "ï" + sub "ٴﯨ" "ï" + sub "ٴﯩ" "ï" + sub "ٴﻯ" "ï" + sub "ٴﻰ" "ï" + sub "ٴ" "ʼ" + + # Rule 1: composed spellings of the hamza-bearing vowel letters + # (compatibility decompositions of ٵ, ٶ, ٷ) + sub "اٴ" "ä" + sub "وٴ" "ö" + sub "ۇٴ" "ü" + } + +} + +} diff --git a/maps/alalc-kur-Arab-Latn-2012.isc b/maps/alalc-kur-Arab-Latn-2012.isc new file mode 100644 index 0000000..f7fb72f --- /dev/null +++ b/maps/alalc-kur-Arab-Latn-2012.isc @@ -0,0 +1,335 @@ +system "ALA-LC:kur-Arab:Latn:2012" { + +metadata { + authority_id alalc + id 2012 + language iso-639-2:kur + source_script Arab + destination_script Latn + name "Romanization Table -- Kurdish (2012)" + url http://catdir.loc.gov/catdir/cpso/romanization/kurdish.pdf + creation_date 2012 + confirmation_date 2012 + description { ALA-LC Romanization table for Kurdish, 2012 version (earlier versions: 2004, 2002). + Trilingual table (Roman Hawar / Cyrillic / Arabic); this map encodes the Arabic column into the Roman (Hawar) column. + } + + notes { + note "Vowels (Roman/Cyrillic/Arabic): A a / А а / ا or word-initial ئا; E e / Ә ә / ه or word-initial ئه; Ê ê / Е е / ێ or word-initial ئێ; I i / Ь ь / kasrah (◌ِ) under the preceding consonant, or word-initial ئِ; Î î / И и / ي [vowel] or word-initial ئي; O o / О о / ۆ or word-initial ئۆ; U u / Ӧ ӧ / و [vowel] or word-initial ئو; Û û / У у / وو or word-initial ئوو; ‘E (E') / Ә' ә' / عه. Footnote to the vowel rows: initial vowels begin with a kursi hamza (ئ)." + + note "Consonants: B b ب; C c ج; Ç ç چ; Ç' ç' چ; D d د; [Ḍ] [ḍ] ض; ‘E (E') عه; F f ف; G g گ; H h ھ; Ḧ (H') ح; J j ژ; K k ك; K' k' ك; L l ل; Ł ł ڵ; M m م; N n ن; P p پ; P' p' پ; Q q ق; R r ر; R̄ r̄ ڕ; S s س; Ş ş ش; Ṣ ṣ ص; T t ت; T' t' ت; Ṭ ṭ ط; V v ڤ; W w و [consonant]; X x خ; Ẍ ẍ غ; Y y ي [consonant]; Z z ز; and the final row - / ‘ / ع (the ‘ayin, written ‘ in roman)." + + note "Note 1. In Sorani, the conjunction 'and' (و) should be rendered u if the preceding word ends in a consonant, and w following a vowel. In Kurmanji, it is spelled û in Latin orthography and should be romanized that way as well. The conjunction is a word-level, context-dependent particle; this map renders و by the general waw rules." + + note "Note 2. In the Arabic orthography for Kurdish, all vowels are written out, with the exception of i (short i), which is expressed by a kasrah under the preceding consonant, although that kasrah is rarely written. At the beginning of a word, the i is preceded by a kursi hamza (see note 3). Examples: kirin ('to do') كرن; k'ir̄īn ('to buy') كڕين; int'īn ('to sigh') ئنتين. The rarely-written kasrah must be supplied for a mechanical romanization: this map renders the kasrah as i, and word-initial ئ before a consonant as i. The unvocalized spellings كرن and كڕين additionally carry information this map cannot invent (see note 6 on aspiration)." + + note "Note 3. In the Arabic orthography for Kurdish, when a vowel comes at the beginning of a word, or when a vowel directly follows another vowel, a kursi hamza precedes it. Examples: agir ('fire') ئاگر; oxir ('luck') ئۆغر; exte ('nag horse') ئهخته; naêm ('I don't come') نائێم. The kursi hamza itself is not romanized: this map strips it before a vowel letter and renders it as i before a consonant." + + note "Note 4. In the Arabic orthography for Kurdish, the four forms of the Arabic letter hā' (هههه) have been reinterpreted. Two forms (initial ﻫ and medial ﻬ) are the letter H, while two forms (final ﻪ and independent ه) are the letter E. Final and independent H are both expressed by the initial form (ﻫ). Hence, the full paradigm for H is: initial ﻫ; medial ﻬ; final ﻫ; independent ﻫ. Examples: initial ﻫ: her ('each') ﻫﻪر, hatin ('to come') ﻫﺎﺗﻦ, lehī ('flood') ﻟﻪﻫﻲ; medial ﻬ: bihīstin ('to hear') ﺑﻬﻴﺴﺘﻦ; final ﻫ: cih ('place; bed') ﺟﻫ; independent ﻫ: meh ('month') ﻣﻪﻫ. E (ه) behaves like the letters alif (ا), wāw (و), dāl (د), and rā (ر) in that it never joins to the following letter. The full paradigm for E is: initial ﺋﻪ; [medial: replaced by final, as with alif, wāw, etc.]; final ﻪ; independent ﻪ. Examples: initial ﺋﻪ: enī ('forehead') ﺋﻪﻧﻲ, esp ('horse' (Sorani)) ﺋﻪﺳﭙ; final ﻪ: lehī ﻟﻪﻫﻲ, ç'em ('river') ﭼﻪم, ême ('we' (Sorani)) ﺋێﻤﮫ, p'īne ('patch') ﭘﻴﻨﻪ; independent ﻪ: dest ('hand') دﻩﺳﺖ, wek ('like, as') وهك. Because the H/E distinction rides on the joining form of the heh, this map renders the heh presentation forms exactly (ﻫ ﻬ → h; ﻪ ﻩ → e; the heh-doachashmee forms accordingly, with the isolated ﮪ of the alphabet table as h and the final ﮫ as e, per the ême example). Plain (unshaped) heh codepoints are resolved by context: word-initial he and he before a dual-joining letter read h, otherwise e. Adjacent plain heh letter pairs (an E followed by an H, as in lehī) cannot be resolved from codepoints alone and require shaped input or a zero-width non-joiner; shaped input romanizes exactly." + + note "Note 5. The Arabic letter yā' (ي) has two equivalents in the roman orthography: it can be the vowel î and the consonant y. Likewise, the Arabic letter wāw (و) can be both the vowel u and the consonant w. If preceded by a consonant, yā' and wāw are the vowels î and u respectively. Examples: dītī ('s/he saw' (Sorani)) ديتي; bībīnim ('if I see it' (Sorani)) بيبينم; Soranī سۆراني; K'urd كورد; tu ('thou, you') تو. Likewise yā' and wāw are the consonants y and w respectively: (a) at the beginning of a word: yarmetī ('help' (Sorani)) يارمهتي; witin ('to say' (Sorani)) وتن; wutin ('to say' (Sorani)) ووتن. (b) if preceded by a vowel (including short i, which is not written): şayan ('worthy' (Sorani)) شايان; naybīnim ('I don't see it' (Sorani)) نايبينم; aw ('water' (Sorani)) ئاو; bedew ('beautiful') ﺑﻪدهو; diwēre ('s/he dares') دوێره; biyanī ('foreign') بياني; şiyan ('to be able') شيان. Footnote: also bīyanī (بيياني). (c) if preceded by a consonant and followed by a vowel: birwa ('belief' (Sorani)) بروا; xwarin ('to eat') خوارن; dītyan ('they saw' (Sorani)) ديتيان; asyaw ('mill' (Sorani)) ئاسياو. This map applies the note-5 rules mechanically: word-initial ي/و → y/w; after a vowel → y/w; after a consonant and before a vowel → y/w; otherwise (after a consonant, not before a vowel) → î/u. Mid-word وو reads û (the û vowel row); word-initial وو reads w+u (the wutin example), since word-initial û is written with the kursi hamza carrier ئوو." + + note "Note 6. In the Cyrillic orthography for Kurdish, the distinction between aspirated stops (ç', k', p', t') and unaspirated stops (ç, k, p, t) is always written, and Soviet scholars also preserve this distinction in the roman orthography. Elsewhere it is generally ignored, and consequently this distinction does not exist in the Arabic orthography for Kurdish. Accordingly the Arabic-script source cannot carry the aspiration apostrophe: examples that the source documents with aspirated romanizations (k'ir̄īn كڕين, int'īn ئنتين, K'urd كورد, ç'em ﭼﻪم, p'īne ﭘﻴﻨﻪ) romanize here without it." + + note "Note 7. Soviet scholars created the e' (Cyrillic ә'), which represents two different sounds. When the sound is ['ayin] + e, as at the beginning of a word (in Arabic script written عه), a preferable spelling is 'e, placing the apostrophe before the vowel. By analogy, one also finds 'a (ءا), 'ī (ءي), 'o (ءۆ), 'û (ءوو). The original e' (with the apostrophe after the vowel) is reserved for cases where the vowel [e] is followed by the ['ayin], as in the word me'r (مهءر), a dialectal variant of mar ('snake'). Since e' could be identified either as a vowel or as a consonant, it has been added to both categories in the Kurdish orthographic table." + + note "Standard reference dictionaries for Kurdish include: Kurmanji (northern dialects): Michael L. Chyet. Kurdish-English dictionary = Ferhenga Kurmancî-Inglîzî (New Haven and London: Yale University Press, 2003); Ferdîdon Çelebî and Danko Sipka. Kurmanji Kurdish-English glossary (Springfield, VA: Dunwoody, 2002). Sorani (central dialects): Shafiq Qazzaz. The Sharezoor: Kurdish-English dictionary (Erbil: Aras, 2000)." + + note "The source document's text layer encodes most Arabic letters in Unicode presentation forms (joining shapes); this map normalizes those to their base codepoints, except the heh family whose joining forms carry the H/E distinction of note 4 and are rendered semantically. A zero-width non-joiner is removed (it controls shaping, not content)." + } +} + +tests { + # Vowel rows (Arabic column). The cell marked * (word-initial with the + # kursi hamza carrier) is the mechanically testable form of each vowel. + "ئا" -> "a" + "ئه" -> "e" + "ئێ" -> "ê" + "ئِ" -> "i" + "ئي" -> "î" + "ئۆ" -> "o" + "ئو" -> "u" + "ئوو" -> "û" + "عه" -> "‘e" + # plain vowel letters + "ا" -> "a" + "ۆ" -> "o" + "ێ" -> "ê" + "ِ" -> "i" # the kasrah of the I row + # Consonant rows (Arabic column, every row) + "ب" -> "b" + "ج" -> "c" + "چ" -> "ç" + "د" -> "d" + "ض" -> "ḍ" + "ف" -> "f" + "گ" -> "g" + "ﮪ" -> "h" # H row: heh doachashmee, isolated form + "ح" -> "ḧ" + "ژ" -> "j" + "ك" -> "k" + "ل" -> "l" + "ڵ" -> "ł" + "م" -> "m" + "ن" -> "n" + "پ" -> "p" + "ق" -> "q" + "ر" -> "r" + "ڕ" -> "r̄" + "س" -> "s" + "ش" -> "ş" + "ص" -> "ṣ" + "ت" -> "t" + "ط" -> "ṭ" + "ڤ" -> "v" + "و" -> "w" # W row: و [consonant] + "خ" -> "x" + "غ" -> "ẍ" + "ي" -> "y" # Y row: ي [consonant] + "ز" -> "z" + "ع" -> "‘" + # Note 2 examples. The rarely-written kasrah of the short i is supplied + # per note 2's orthographic rule (under each consonant that precedes an + # unwritten i); the source prints كرن كڕين unvocalized. + # - source: كرن (unvocalized), expected: kirin + "كِرِن" -> "kirin" + # - source: كڕين (unvocalized), expected: k’ir̄în (aspiration per note 6 + # is not carried by the Arabic script); mechanical: kir̄in + # - source: ئنتين, expected: int’în (aspiration; mechanical: intîn) + "ئنتين" -> "intîn" + # Note 3 examples + # - source: ئاگر (unvocalized), expected: agir + "ئاگِر" -> "agir" + # - source: ئۆغر (unvocalized), expected: oẍir + "ئۆغِر" -> "oẍir" + "ئهخته" -> "exte" + "نائێم" -> "naêm" + # Note 4 examples (source text-layer encodings carried verbatim) + "ﻫﻪر" -> "her" + # - source: ﻫﺎﺗﻦ (unvocalized), expected: hatin + "ﻫﺎﺗِﻦ" -> "hatin" + "ﻟﻪﻫﻲ" -> "lehî" + # - source: ﺑﻬﻴﺴﺘﻦ (unvocalized), expected: bihîstin + "ﺑِﻬﻴﺴﺘِﻦ" -> "bihîstin" + # - source: ﺟﻫ (unvocalized), expected: cih + "ﺟِﻫ" -> "cih" + "ﻣﻪﻫ" -> "meh" + "دﻩﺳﺖ" -> "dest" + "وﻩك" -> "wek" + "ﭼﻪم" -> "çem" # ç'em in Kurmanji romanization (aspiration, note 6) + "ﺋێﻤﮫ" -> "ême" + "ﺋﻪﻧﻲ" -> "enî" + "ﺋﻪﺳﭙ" -> "esp" + # - source: ﭘﻴﻨﻪ, expected: p’îne (aspiration; mechanical: pîne) + "ﭘﻴﻨﻪ" -> "pîne" + # Note 5 examples + "ديتي" -> "dîtî" + "بيبينِم" -> "bîbînim" + "سۆراني" -> "soranî" + # - source: كورد, expected: K’urd (aspiration; mechanical: kurd) + "كورد" -> "kurd" + "تو" -> "tu" + "ﻳﺎرﻣﻪﺗﻲ" -> "yarmetî" + # - source: وتن (unvocalized), expected: witin + "وِتِن" -> "witin" + # - source: ووتن (unvocalized), expected: wutin + "ووتِن" -> "wutin" + "شايان" -> "şayan" + "نايبينِم" -> "naybînim" + "ئاو" -> "aw" + "ﺑﻪدهو" -> "bedew" + # - source: دوێره (unvocalized), expected: diwêre + "دِوێره" -> "diwêre" + # - source: بياني (unvocalized), expected: biyanî + "بِياني" -> "biyanî" + "بيياني" -> "bîyanî" # the footnote's alternate spelling, romanized as printed + # - source: شيان (unvocalized), expected: şiyan + "شِيان" -> "şiyan" + # - source: بروا (unvocalized), expected: birwa + "بِروا" -> "birwa" + # - source: خوارن (unvocalized), expected: xwarin + "خوارِن" -> "xwarin" + "ديتيان" -> "dîtyan" + "ئاسياو" -> "asyaw" +} + +stage main { + sequence { + # 1. Presentation-form normalization (the source document's text layer + # encodes joining shapes). The heh family (ﻫ ﻬ ﻪ ﻩ ﮪ ﮫ) is excluded + # here - its forms carry the H/E distinction of note 4 and are + # rendered semantically below. + sub "ﭗ" "پ" + sub "ﭘ" "پ" + sub "ﭼ" "چ" + sub "ﮔ" "گ" + sub "ﯪ" "ئا" + sub "ﯮ" "ئو" + sub "ﯲ" "ئۆ" + sub "ﰄ" "ئي" + sub "ﺋ" "ئ" + sub "ﺎ" "ا" + sub "ﺑ" "ب" + sub "ﺒ" "ب" + sub "ﺖ" "ت" + sub "ﺗ" "ت" + sub "ﺘ" "ت" + sub "ﺟ" "ج" + sub "ﺧ" "خ" + sub "ﺮ" "ر" + sub "ﺳ" "س" + sub "ﺴ" "س" + sub "ﺷ" "ش" + sub "ﻋ" "ع" + sub "ﻏ" "غ" + sub "ﻛ" "ك" + sub "ﻟ" "ل" + sub "ﻢ" "م" + sub "ﻣ" "م" + sub "ﻤ" "م" + sub "ﻦ" "ن" + sub "ﻧ" "ن" + sub "ﻨ" "ن" + sub "ﻮ" "و" + sub "ﻲ" "ي" + sub "ﻳ" "ي" + sub "ﻴ" "ي" + sub "ﭙ" "پ" + sub "ﭻ" "چ" + + # 2. Vowel carriers (kursi hamza + vowel letter) and the kasrah + sub "ئوو" "û" + sub "ئو" "u" + sub "ئا" "a" + sub "ئﻪ" "e" + sub "ئه" "e" + sub "ئێ" "ê" + sub "ئي" "î" + sub "ئۆ" "o" + sub "ئِ" "i" + sub "ِ" "i" + + # 3. Note 4 - the heh family. Shaped forms first (exact), then the + # plain-codepoint context fallback. + sub "ﻫ" "h" + sub "ﻬ" "h" + sub "ﮬ" "h" + sub "ﮭ" "h" + sub "ﮪ" "h" + sub "ﻪ" "e" + sub "ﻩ" "e" + sub "ﮫ" "e" + sub { + from boundary + "ه" + to "h" + after any("بجچحخسشصطعغفقكلمنپيڵڤهھئ") + } + sub { + from boundary + "ھ" + to "h" + after any("بجچحخسشصطعغفقكلمنپيڵڤهھئ") + } + sub { + from "ه" + to "h" + after any("بجچحخسشصطعغفقكلمنپيڵڤهھئ") + } + sub { + from "ھ" + to "h" + after any("بجچحخسشصطعغفقكلمنپيڵڤهھئ") + } + sub "ه" "e" + sub "ھ" "e" + + # 4. Consonant letters with a single reading + sub "ا" "a" + sub "ب" "b" + sub "ج" "c" + sub "چ" "ç" + sub "د" "d" + sub "ض" "ḍ" + sub "ع" "‘" + sub "ف" "f" + sub "گ" "g" + sub "ح" "ḧ" + sub "ژ" "j" + sub "ك" "k" + sub "ل" "l" + sub "ڵ" "ł" + sub "م" "m" + sub "ن" "n" + sub "پ" "p" + sub "ق" "q" + sub "ر" "r" + sub "ڕ" "r̄" + sub "س" "s" + sub "ش" "ş" + sub "ص" "ṣ" + sub "ت" "t" + sub "ط" "ṭ" + sub "ڤ" "v" + sub "خ" "x" + sub "غ" "ẍ" + sub "ز" "z" + sub "ێ" "ê" + sub "ۆ" "o" + + # 5. Kursi hamza leftovers: word-initial carrier of the short i + # (note 2/3); elsewhere an unromanized carrier + sub { + from boundary + "ئ" + to "i" + } + sub "ئ" "" + + # 6. Shaping control character + sub "‌" "" + + # 7. Note 5 - waw: word-initial and post-vocalic w; after a consonant + # before a vowel w; otherwise the vowel u. Mid-word وو reads û; + # word-initial وو reads w+u (wutin), since word-initial û is + # written ئوو. + sub { + from boundary + "وو" + to "wu" + } + sub "وو" "û" + sub { + from boundary + "و" + to "w" + } + sub { + from "و" + to "w" + before any(["a", "e", "ê", "i", "î", "o", "u", "û"]) + } + sub { + from "و" + to "w" + after any(["a", "e", "ê", "i", "î", "o", "u", "û"]) + } + sub "و" "u" + + # 8. Note 5 - yeh: word-initial and post-vocalic y; after a consonant + # before a vowel y; otherwise the vowel î + sub { + from boundary + "ي" + to "y" + } + sub { + from "ي" + to "y" + before any(["a", "e", "ê", "i", "î", "o", "u", "û"]) + } + sub { + from "ي" + to "y" + after any(["a", "e", "ê", "i", "î", "o", "u", "û"]) + } + sub "ي" "î" + } + +} + +} diff --git a/maps/alalc-lad-Hebr-Latn-2025.isc b/maps/alalc-lad-Hebr-Latn-2025.isc new file mode 100644 index 0000000..4073677 --- /dev/null +++ b/maps/alalc-lad-Hebr-Latn-2025.isc @@ -0,0 +1,293 @@ +system "ALA-LC:lad-Hebr:Latn:2025" { + +metadata { + authority_id alalc + id 2025 + language iso-639-2:lad + source_script Hebr + destination_script Latn + name "Romanization Table -- Ladino (2025)" + url http://catdir.loc.gov/catdir/cpso/romanization/ladino.pdf + creation_date 2025 + confirmation_date 2025 + description { ALA-LC Romanization table for Ladino, 2025 version (earlier versions: 2011, 2005) + } + + notes { + note "Letters of the alphabet (Ladino / Roman / Examples): alef א (-) a- , amar אמאר; ʼ, peʼah פאה; alef-yod-yod איי ay, tramvay טראמב׳איי; bet בּ ב b, bushḳar בוּשקאר; bet geresh bet rafe ב׳ בֿ v, aḥarvar אחארב׳אר; gimel גּ ג g, sangre סאנגּרי; gimel geresh gimel rafe ג׳ גֿ j, ajusṭar אג׳וּסטאר; gimel with upper dot גׄ ch, chiḳes גׄיקיס; dalet דּ ד d, din דין; dalet geresh dalet rafe ד׳ דֿ dh, sudhor סוּד׳ור; he ה (see note 4) -ah, salah סאלה; vav ו (see note 4) ṿ, ṿesheṭ ושט; o, dos דוס; w, agwah אגּואה; vav with shuruq וּ u, ḳarpus קארפוּס; vav alef yod ואי (see note 2) we, mwes מואיס; vav alef yod with hiriq ואִי wi, swivar סואִיב׳אר; vav with shuruq yod yod וּיי uy, muy מוּיי; vav with holam yod yod וֹיי oy, boy בוֹיי; zayin ז z, ḳazal קאזאל; zayin geresh zayin rafe ז׳ זֿ zh, muzher מוּז׳יר; het ח ḥ, ḥaber חאביר; tet ט ṭ, ṭadhre טאד׳רי; yod י y, Yosef יוסף; e, bel ביל; yod with hiriq יִ i, purimliḳ פוּרימליק; yod yod יי (see note 3) y, yo ייו; ye, yevar ייב׳אר, dyes דייס; yod yod with hiriq ייִ yi, segyir סיגּיִיר; yod yod with tsere ייֵ ey, rey רייֵ; kaf ךּ כּ k, kavod כּב׳וד; kaf final kaf ך כ kh, berakhah ברכה, melekh מלך; lamed ל l, lamber לאמביר; mem ם מ m, myel מייל, ḥamam חאמאם; nun ן נ n, nah! נה!, ladhron לאד׳רון; samekh ס s, suṭlach סוּטלאגׄ; ayin ע (see note 4) ʻ, meʻarah מערה; pe ף פּ פ p, paras פּאראס, ḳasap קאסאפּ; pe geresh pe final geresh pe rafe pe final rafe פ׳ ף׳ פֿ ףֿ f, fin פ׳ין, ḥarif חריף׳; tsadi ץ צ ts, tsedaḳah צדקה; qof ק ḳ, ḳavzar קאב׳זאר; resh ר r, raḳi ראקי; shin ש sh, shavon שאב׳ון; shin with sin dot שׂ ś, beśorah בשׂורה; tav תּ t, Torah תּורה. Ligature: alef lamed אל al, balṭah באלטה." + + note "General note 1. א is not represented in romanization when it precedes ו, ויי, or י at the beginning of a word or when it appears between any combination of the vowels /e/ or /i/ (both spelled י), /o/ or /u/ (both spelled ו) when they are adjacent. In words of Hebrew or Aramaic derivation, it is represented by /ʼ/. This map encodes the two silencing contexts mechanically and renders alef as a elsewhere; the Hebrew-Aramaic ʼ reading is lexical (the peʼah and meʻarah examples carry vowel points supplied from Hebrew vocalization that the unvocalized spellings do not carry)." + + note "General note 2. At the beginning of a word, ואי is always preceded by -ג, as in גואירטה /gwerṭah/ 'garden'." + + note "General note 3. יי may sometimes be spelled ליי when it represents /y/ and /ye/, as in ייו /yo/ 'I'. This spelling variant is not encoded; input with the literal ליי spelling romanizes the ל." + + note "General note 4. Words of Hebrew-Aramaic origin usually retain their traditional spellings in Ladino. Such words are romanized according to the ALA/LC Hebrew romanization table. Initial ו (not וו), י (not יי), non-final ה, כ (kh), ע, צ, ש (ś), and ת are usually found only in words of Hebrew-Aramaic derivation; in rare instances they may also appear in words borrowed from Arabic or Turkish. In some traditions, ש may appear where other traditions use the letter ס. Accordingly: non-final ה renders h (the Hebrew-table reading), plain ת renders t, bare pe פ ף renders p (Ladino reading) while Hebrew-Aramaic words may read it f per the Hebrew table (Yosef יוסף), and the e/i and o/u vowel qualities of the matres לא ביל ו that are unmarked in the script are lexical (the table itself directs problematic e/i and o/u cases to dictionaries)." + + note "Notes on pronunciation: גׄ /ch/ as in 'chop'; ש /sh/ as in 'shop'; ד׳ /dh/ as in 'lather'; כ /kh/ as in German 'ach'; ג׳ /j/ as in 'gentle'; ז׳ /zh/ as in 'azure'. The pairs ב /v/ and ו /ṿ/, ח /ḥ/ and כ /kh/, ס /s/ and שׂ /ś/, כּ /k/ and ק /ḳ/ are distinguished in the script but not in pronunciation." + + note "Notes on Ladino/Judezmo diacritics: No standard orthography for Ladino/Judezmo has ever been formally adopted. Words of Hebrew or Aramaic derivation usually maintain their traditional spellings. However, Ladino/Judezmo words of non-Semitic derivation do use a number of consonants no longer found in Castilian Spanish. These diacritics, such as rafe, geresh or a superscript dot, may be found with varying consistencies in publications." + + note "Reference sources: At present, no single dictionary constitutes an authoritative or normative source for the romanization of Ladino/Judezmo. For words of Spanish derivation, refer to the 4200+ word Judezmo/Hebrew glossary at the end of David Bunis's Leshon G'udezmo (Jerusalem, 1999), which employs a vocalization system devised by the author employing ḥiriḳ, tsere, ḥolam and shuruḳ as vowel marks. Ladino/Judezmo words of Hebrew or Aramaic origin written in Hebrew characters appear in written texts either in traditional etymological spellings, or in phonetic or partially phonetic spellings. These words should be romanized according to the Library of Congress Hebrew romanization table. In problematic cases, where, for example, it is impossible to differentiate between 'e' and 'i', or 'o' and 'u,' or when words of non-Spanish, non-Hebraic origin are in question, refer to such dictionaries as those by Joseph Nehama (Dictionnaire du judéo-espagnol), Elli Kohen (Ladino-English, English-Ladino: Concise Encyclopedic Dictionary (Judeo-Spanish)), and Pascual Pascual Recuero (Diccionario básico ladino-español)." + + note "References. 1. Bunis, David M. [Leshon G'udezmo]. Jerusalem: Magnes Press, The Hebrew University, c1999: p. 465-551; [transcription system for 'yod', 'double yod', p. 56-57]. 2. Bunis, David M. A Lexicon of the Hebrew and Aramaic Elements in Modern Judezmo. Jerusalem: Magnes Press, The Hebrew University; Misgav Yerushalayim, Institute for Research on the Sephardi and Oriental Jewish Heritage, 1993. 3. Nehama, Joseph. Dictionnaire du judéo-espagnol. Madrid: Consejo Superior de Investigaciones Científicas, Instituto 'Benito Arias Montano', 1977. 4. Kohen, Elli. Ladino-English, English-Ladino: Concise Encyclopedic Dictionary (Judeo-Spanish). New York: Hippocrene, 2000. 5. Pascual Recuero, Pascual. Ortografía del Ladino: soluciones y evolución. Granada: Universidad de Granada, Departamento de Estudios Semíticos, 1988. 6. Pascual Recuero, Pascual. Diccionario básico ladino-español. Barcelona: Ameller, 1977." + + note "Proper-noun capitalization in the source examples (Yosef, Torah) is a lexical convention and is not implemented; this map leaves case untouched." + } +} + +tests { + # Alphabet rows + "א" -> "a" + # - row איי ay (the ay reading is exemplified only medially, in + # tramvay; word-initial alef before a yod is silent per note 1) + "ב" -> "b" + "בּ" -> "b" + "בֿ" -> "v" + "ג" -> "g" + "גּ" -> "g" + "גֿ" -> "j" + "גׄ" -> "ch" + "ד" -> "d" + "דּ" -> "d" + "דֿ" -> "dh" + "ה" -> "ah" + "ו" -> "ṿ" + "וּ" -> "u" + "וֹ" -> "o" + "ז" -> "z" + "זֿ" -> "zh" + "ח" -> "ḥ" + "ט" -> "ṭ" + "י" -> "y" + "יִ" -> "i" + "יי" -> "y" + "ייִ" -> "yi" + "ייֵ" -> "ey" + "ךּ" -> "k" + "כּ" -> "k" + "כ" -> "kh" + "ך" -> "kh" + "ל" -> "l" + "מ" -> "m" + "ם" -> "m" + "נ" -> "n" + "ן" -> "n" + "ס" -> "s" + "ע" -> "ʻ" + "פ" -> "p" + "ף" -> "p" + "פּ" -> "p" + "פֿ" -> "f" + "ףֿ" -> "f" + "צ" -> "ts" + "ץ" -> "ts" + "ק" -> "ḳ" + "ר" -> "r" + "ש" -> "sh" + "שׂ" -> "ś" + "תּ" -> "t" + "ת" -> "t" + "ﭏ" -> "al" + # Alphabet examples + "אמאר" -> "amar" + "טראמב׳איי" -> "ṭramvay" + "בוּשקאר" -> "bushḳar" + "אחארב׳אר" -> "aḥarvar" + "סאנגּרי" -> "sangre" + "אג׳וּסטאר" -> "ajusṭar" + "סאלה" -> "salah" + # - source carries unwritten Hebrew-Aramaic vowels, expected: ṿesheṭ + "דוס" -> "dos" + "אגּואה" -> "agwah" + "קארפוּס" -> "ḳarpus" + "מואיס" -> "mwes" + "סואִיב׳אר" -> "swivar" + "מוּיי" -> "muy" + "בוֹיי" -> "boy" + "קאזאל" -> "ḳazal" + "מוּז׳יר" -> "muzher" + "חאביר" -> "ḥaber" + "טאד׳רי" -> "ṭadhre" + "ביל" -> "bel" + "ייו" -> "yo" + "ייב׳אר" -> "yevar" + "דייס" -> "dyes" + "סיגּיִיר" -> "segyir" + "רייֵ" -> "rey" + # - source carries unwritten Hebrew-Aramaic vowels, expected: kavod + # - source carries unwritten Hebrew-Aramaic vowels, expected: berakhah + # - source carries unwritten Hebrew-Aramaic vowels, expected: melekh + "לאמביר" -> "lamber" + "מייל" -> "myel" + "חאמאם" -> "ḥamam" + "נה!" -> "nah!" + "לאד׳רון" -> "ladhron" + "סוּטלאגׄ" -> "suṭlach" + # - source carries unwritten Hebrew-Aramaic vowels, expected: tsedaḳah + "קאב׳זאר" -> "ḳavzar" + "שאב׳ון" -> "shavon" + "תּורה" -> "torah" + "בﭏטה" -> "balṭah" + "פּאראס" -> "paras" + "קאסאפּ" -> "ḳasap" + "גואירטה" -> "gwerṭah" # note 2 example + # Examples requiring lexical information the unvocalized spelling does + # not carry (Hebrew-Aramaic vocalization per note 4; the e/i vowel + # quality of unmarked yod; the f reading of bare pe in Hebrew words; + # proper-noun capitals): + # - source: פאה, expected: peʼah (Hebrew vocalization + the ʼ of note 1) + # - source: דין, expected: din (unmarked i) + # - source: סוּד׳וד (text layer), expected: sudhor (the romanization + # requires final resh ר; the text-layer final glyph is ambiguous ד/ר) + # - source: גׄיקיס, expected: chiḳes (unmarked i) + # - source: יוסף, expected: Yosef (Hebrew-table f reading of bare ף; + # mechanical reading: yosep; capital is a proper-noun convention) + # - source: פוּרימליק, expected: purimliḳ (final unmarked i) + # - source: חריף׳, expected: ḥarif (unwritten a, unmarked i) + # - source: פ׳ין, expected: fin (unmarked i) + # - source: ראקי, expected: raḳi (unmarked i) + # - source: מערה, expected: meʻarah (Hebrew vocalization) + # - source: בשׂורה, expected: beśorah (unwritten e) + # - source: תּורה, expected: Torah (proper-noun capital) +} + +stage main { + sequence { + # 1. Clusters of yod and vav carrying point marks (the e/i and ey/yi + # distinctions). Both logical and text-extraction byte orders are + # covered for the marked double-yod clusters. + sub "ואִי" "wi" + sub "ייִ" "yi" + sub "יִי" "yi" + sub "ייֵ" "ey" + sub "יֵי" "ey" + sub "יִ" "i" + + # 2. Geresh and rafe letter forms (rafé/geresh diacritics) + sub "ב׳" "v" + sub "בֿ" "v" + sub "ג׳" "j" + sub "גֿ" "j" + sub "ד׳" "dh" + sub "דֿ" "dh" + sub "ז׳" "zh" + sub "זֿ" "zh" + sub "פ׳" "f" + sub "ף׳" "f" + sub "פֿ" "f" + sub "ףֿ" "f" + + # 3. Gimel with the superscript dot (ch) + sub "גׄ" "ch" + + # 4. Pointed vav (shuruq, holam) - presentation forms and composed + sub "וּ" "u" + sub "וּ" "u" + sub "וֹ" "o" + sub "וֹ" "o" + + # 5. Dagesh presentation forms and composed spellings + sub "בּ" "b" + sub "בּ" "b" + sub "גּ" "g" + sub "גּ" "g" + sub "דּ" "d" + sub "דּ" "d" + sub "כּ" "k" + sub "כּ" "k" + sub "ךּ" "k" + sub "ךּ" "k" + sub "פּ" "p" + sub "פּ" "p" + sub "תּ" "t" + sub "תּ" "t" + sub "שׂ" "ś" + sub "שׂ" "ś" + sub "ﭏ" "al" + + # 6. Alef (general note 1): silent between adjacent matres and + # word-initially before a vav/yod; a elsewhere. Word-final alef+he + # carries the vowel cluster together (agwah: the alef is the a, + # the he only h). + sub "אה" "ah" + sub { + from "א" + to "" + before any("יו") + after any("יו") + } + sub { + from boundary + "א" + to "" + after any("יו") + } + sub "א" "a" + + # 7. He: word-final -ah (the row value), otherwise h (note 4, the + # Hebrew-table reading of non-final he) + sub { + from "ה" + to "ah" + after boundary + } + sub "ה" "h" + + # 8. Consonants with a single reading + sub "ב" "b" + sub "ג" "g" + sub "ד" "d" + sub "ז" "z" + sub "ח" "ḥ" + sub "ט" "ṭ" + sub "כ" "kh" + sub "ך" "kh" + sub "ל" "l" + sub "מ" "m" + sub "ם" "m" + sub "נ" "n" + sub "ן" "n" + sub "ס" "s" + sub "ע" "ʻ" + sub "פ" "p" + sub "ף" "p" + sub "צ" "ts" + sub "ץ" "ts" + sub "ק" "ḳ" + sub "ר" "r" + sub "ש" "sh" + sub "ת" "t" + + # 9. Double yod: ye before a consonant, y otherwise (note 3) + sub { + from "יי" + to "ye" + after any("bcdfghjklmnpqrstvwxyz") + } + sub "יי" "y" + + # 10. Yod: word-initial consonant y, otherwise the vowel e (the + # unmarked i quality is lexical, see notes) + sub { + from boundary + "י" + to "y" + } + sub "י" "e" + + # 11. Vav: word-initial ṿ (note 4); consonantal w between a consonant + # and a following vowel letter; otherwise the vowel o + sub { + from boundary + "ו" + to "ṿ" + } + sub { + from "ו" + to "w" + after any(["a", "e", "i", "o", "u", "י", "ו"]) + } + sub "ו" "o" + } + +} + +} diff --git a/maps/alalc-ota-Arab-Latn-1997.isc b/maps/alalc-ota-Arab-Latn-1997.isc new file mode 100644 index 0000000..47a444e --- /dev/null +++ b/maps/alalc-ota-Arab-Latn-1997.isc @@ -0,0 +1,232 @@ +system "ALA-LC:ota-Arab:Latn:1997" { + +metadata { + authority_id alalc + id 1997 + language iso-639-2:ota + source_script Arab + destination_script Latn + name "Romanization Table for Ottoman Turkish" + url http://catdir.loc.gov/catdir/cpso/romanization/ottoman.pdf + creation_date 1997 + description { ALA-LC Romanization table for Ottoman Turkish, based on the romanization system published by Eleazer Birnbaum in the Journal of the American Oriental Society, volume 87 (1967), with slight modifications. The source document carries no edition date; the 1997 attribute follows the ALA-LC 1997 system edition in which the table appears. + } + + notes { + note "NOTE on the table: use the table if the principle of conversion cannot be applied (see rule 2 of the rules of application). Rule 2: in romanizing Ottoman Turkish the principle of conversion is applied as far as possible, i.e., the word, phrase, name, or title being romanized is represented, if possible, by the form it has in modern Turkish orthography, even if that means converting some letters to their modern equivalents. Foreign words, or words of non-Turkish origin that have become loan-words in Turkish, are converted like Ottoman Turkish. Modern Turkish usage in capitalization is followed." + + note "Rule 9: when conversion is impractical the original is romanized letter by letter. If the Ottoman Turkish original is written in the Arabic alphabet, the consonants are romanized as in the Ottoman Turkish table. The vowels and orthographic symbols other than the vowel signs (hemze, shedde, medde, tenvin) are romanized according to the rules for Arabic or Persian, as appropriate; they are supplied if omitted from the Turkish original. No attempt is made to represent the Ottoman Turkish pronunciation of vowels beyond what is conveyed by the orthography of the original. This map therefore carries the letter table below and the Arabic/Persian vowel-sign machinery (fatha a, damma u, kasra i, the long vowels, diphthongs, tanvin, shaddah doubling, the article al-, and the hamzah rules)." + + note "Letters of the Alphabet: alif ا omit (see Note 1); ب b; پ p; ت t; ث s; ج c; چ ç; ح ḥ; خ ḫ; د d; ذ z; ر r; ز z; ژ j; س s; ش ş; ص ṣ; ض ż; ط ṭ; ظ ẓ; ع ‘ (ayn); غ ġ; ف f; ق ḳ; ك k; گ g (see Note 2); ڭ ñ (see Note 3); ل l; م m; ن n; و v (see Note 4); ه ة h (see Note 5); ي y (see Note 6)." + + note "Note 1. For orthographic uses of alif, see the Arabic and Persian romanization tables." + + note "Note 2. The letter گ is frequently written without the distinguishing upper strokes (i.e., as ك). Both spellings are encoded, ك as k and گ as g; which reading a stroke-less kaf carries is lexical (the conversion principle of rule 2)." + + note "Note 3. The letter ڭ is frequently written without the distinguishing dots (i.e., as ن). Both spellings are encoded, ن as n and ڭ as ñ; which reading an undotted noon carries is lexical." + + note "Note 4. For the uses of و other than to represent the consonantal sound v, see the Persian romanization table. This map renders bare و as v and the marked vowel readings via the Arabic/Persian vowel-sign machinery." + + note "Note 5. For the distinction between ه and ة see the Arabic romanization table." + + note "Note 6. For the uses of ي other than to represent the consonantal sound y, see the Persian romanization table." + + note "Rule 5. Phonetic considerations (final -p versus -b, final -t versus -d, final -k versus -g, final -ç versus -c, medial -tt- versus -dd-, medial -iy- versus -iyy-) govern the conversion spelling: tıp not tıb, harp not harb, Ratip not Ratib, mevcut not mevcud, Ahmet not Ahmed, renk not reng, burç not burc, Bedreddin not Bedrettin, harbiye not harbiyye, cumhuriyet not cumhuriyyet. These conversion spellings are lexical and not implemented mechanically." + + note "Rule 6. (a) Izafet: -i is added to a word ending in a consonant, -yi when it ends in a vowel; vowel harmony is disregarded (Devlet-i Âliye-yi Osmaniye). Izafet is not indicated between the elements of a personal name except when expressly indicated in the Ottoman Turkish orthography. (b) The Arabic article al, romanized in modern Turkish, may take various forms (al, el, ur, ül, ʼl, üs, ed, en, et); when the article functions as the middle element of a phrase or compound within a Turkish context it is converted per predominant modern usage (alelumum, bilhassa, maalesef, darülfünun, Abdüssettar, Abdurrahman, Ebülgazi); when it occurs in an Arabic title it is romanized according to the rules for Arabic. (c) Diacritics: a diaeresis is retained if commonly used in Turkish; a circumflex is retained where found in modern Turkish usage and is always placed over the final long i of the relative adjective (nisbe) and names derived from it. (d) An apostrophe (ʼ) is inserted between a proper noun, or a number, and a suffixed inflection: Mustafa'nın vakfı, 1975'te, 1976'da. All of rule 6 is lexical/syntactic and not implemented mechanically." + + note "Rule 8(b): the Arabic word ibn ('son of') appears in modern Turkish orthography as Ibn at the beginning of a name and as bin in the middle; the abbreviation b. is not used. Lexical; not implemented." + + note "Rule 10: the romanization table is based on the system published by Eleazer Birnbaum in the Journal of the American Oriental Society, volume 87 (1967), with a few slight modifications." + } +} + +tests { + # Letters of the Alphabet + "ب" -> "b" + "پ" -> "p" + "ت" -> "t" + "ث" -> "s" + "ج" -> "c" + "چ" -> "ç" + "ح" -> "ḥ" + "خ" -> "ḫ" + "د" -> "d" + "ذ" -> "z" + "ر" -> "r" + "ز" -> "z" + "ژ" -> "j" + "س" -> "s" + "ش" -> "ş" + "ص" -> "ṣ" + "ض" -> "ż" + "ط" -> "ṭ" + "ظ" -> "ẓ" + "ع" -> "‘" + "غ" -> "ġ" + "ف" -> "f" + "ق" -> "ḳ" + "ك" -> "k" + "گ" -> "g" + "ڭ" -> "ñ" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "و" -> "v" + "ه" -> "h" + "ة" -> "h" + "ي" -> "y" + "ى" -> "y" + # Vowel signs, romanized per rule 9 according to the rules for Arabic and + # Persian (which this table defers to) + "اَ" -> "ā" + "وُ" -> "ū" + "یِ" -> "ī" + "ىٰ" -> "á" + "وَْ" -> "aw" + "یَْ" -> "ay" + "آ" -> "ā" + "وّ" -> "vv" + "یّ" -> "yy" +} + +stage main { + parallel { + # Pointing and vowel signs (rule 9, per the Arabic and Persian tables) + sub "وَْ" "aw" + sub "یَْ" "ay" + sub "وَ" "o" + sub "وُ" "ū" + sub "یَ" "á" + sub "یِ" "ī" + sub "اَ" "ā" + sub "ےَ" "ai" + sub "ىٰ" "á" + + # Hemze (rule 12 of the Arabic rules, deferred) + sub { + from boundary + "ء" + to "" + } + sub { + from boundary + "أ" + to "" + } + sub "ء" "ʼ" + sub "أ" "ʼ" + sub "ؤ" "ʼ" + sub "ئ" "ʼ" + + # Medde + sub { + from boundary + "آ" + to "ā" + } + sub "آ" "ʼā" + + # The Arabic article al- (rule 6(b), the Arabic-title reading) + sub { + from boundary + "ال" + to "al-" + } + + # Tenvin + sub "اً" "an" + sub "ً" "an" + sub "ٌ" "un" + sub "ٍ" "in" + + # Sheddah doubling + sub "بّ" "bb" + sub "پّ" "pp" + sub "تّ" "tt" + sub "ثّ" "ss" + sub "جّ" "cc" + sub "چّ" "çç" + sub "حّ" "ḥḥ" + sub "خّ" "ḫḫ" + sub "دّ" "dd" + sub "ذّ" "zz" + sub "رّ" "rr" + sub "زّ" "zz" + sub "ژّ" "jj" + sub "سّ" "ss" + sub "شّ" "şş" + sub "صّ" "ṣṣ" + sub "ضّ" "żż" + sub "طّ" "ṭṭ" + sub "ظّ" "ẓẓ" + sub "عّ" "‘‘" + sub "غّ" "ġġ" + sub "فّ" "ff" + sub "قّ" "ḳḳ" + sub "كّ" "kk" + sub "گّ" "gg" + sub "ڭّ" "ññ" + sub "لّ" "ll" + sub "مّ" "mm" + sub "نّ" "nn" + sub "وّ" "vv" + sub "یّ" "yy" + + # Letters of the Alphabet + sub "ب" "b" + sub "پ" "p" + sub "ت" "t" + sub "ث" "s" + sub "ج" "c" + sub "چ" "ç" + sub "ح" "ḥ" + sub "خ" "ḫ" + sub "د" "d" + sub "ذ" "z" + sub "ر" "r" + sub "ز" "z" + sub "ژ" "j" + sub "س" "s" + sub "ش" "ş" + sub "ص" "ṣ" + sub "ض" "ż" + sub "ط" "ṭ" + sub "ظ" "ẓ" + sub "ع" "‘" + sub "غ" "ġ" + sub "ف" "f" + sub "ق" "ḳ" + sub "ك" "k" + sub "گ" "g" + sub "ڭ" "ñ" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "ة" "h" + sub "ه" "h" + sub "ھ" "h" + + # Bare alif: word-initial silent-carrier reading per the Persian table, + # elsewhere the long vowel + sub { + from boundary + "ا" + to "" + } + sub "ا" "ā" + + # Leftover marks + sub "ْ" "" + sub "ّ" "" + sub "َ" "a" + sub "ُ" "u" + sub "ِ" "i" + + # Bare yad and waw defaults (Notes 4 and 6) + sub "ی" "y" + sub "ي" "y" + sub "ى" "y" + sub "ے" "e" + sub "و" "v" + sub "ـ" "" + } + +} + +} diff --git a/maps/alalc-pus-Arab-Latn-2013.isc b/maps/alalc-pus-Arab-Latn-2013.isc new file mode 100644 index 0000000..1e8fa7f --- /dev/null +++ b/maps/alalc-pus-Arab-Latn-2013.isc @@ -0,0 +1,321 @@ +system "ALA-LC:pus-Arab:Latn:2013" { + +metadata { + authority_id alalc + id 2013 + language iso-639-2:pus + source_script Arab + destination_script Latn + name "Romanization Table -- Pushto (2013)" + url http://catdir.loc.gov/catdir/cpso/romanization/pushto.pdf + creation_date 2013 + confirmation_date 2013 + description { ALA-LC Romanization table for Pushto, 2013 version (earlier versions: 2012, 1997) + } + + notes { + note "Letters of the Alphabet: alif ا omit (see Note 1); ب b; پ p; ت t; ټ ṭ; ث ṣ; ج j; چ ch; ح ḥ; څ ṡ; ځ ż; خ kh; د d; ډ ḍ; ذ z; ر r; ړ ṛ; ز z; ژ zh; ږ ẓh; س s; ش sh; ښ ṣh; ص ṣ; ض ẓ; ط ṭ (the 2013 source's romanization cell for this row is not legible in the extraction; the value follows the earlier ALA-LC Pushto tables and the universal Arabic-script reading); ظ z̤; ع ‘ (ayn); غ gh; ف f; ق q; ك k; گ g; ګ g; ل l; م m; ن n; ڼ ṇ (its final/alone forms render like نړ in the source font); و w (see Note 2); ه ة ھ h; ي ى y (see Note 3)." + + note "Note 1. For the use of ا (alif) see the table of vowels and diphthongs, and rules 1-4." + + note "Note 2. For other uses of و see the table of vowels and diphthongs, and rule 5." + + note "Note 3. For other forms and uses of ى see the table of vowels and diphthongs, and rules 6 and 7." + + note "Note 4. Vowel points are rarely found in Pushto writing and printing. Vowels not indicated in the script are supplied in romanization. Accordingly this map encodes the consonant letters, the written vowel marks (damma u, kasra i, fatha a), and the rules-of-application contexts; the unwritten short vowels and the vowel readings of bare و (w/ū/o/u/aw) and bare ی/ى (y/ī/e/ay) are lexical. The source's examples whose romanization requires lexically supplied vowels are carried as comments in the tests block." + + note "Rule 5 (with the vowel table). و represents the consonant w (wror ورور; in Persian words silent و following خ is retained: khwushḥāl خوشحال), the long vowels ū (nūm نوم) and o (kor كور), the diphthong aw (yaw یو), and rarely the short vowel u (u او). In the vowel table the ū spelling is و with damma, the o spelling و with fatha, the aw spelling و with sukun and fatha; the unwritten readings are lexical. This map defaults bare و to w and renders the marked vowels." + + note "Rule 6 (with the vowel table). ي represents the consonant y (yaw یو), the long vowels ī (mīnah مینھ) and e (ḍer ډیر, ډٻر; dre درى, درې, درے), and the diphthong ay (shay شى). Medial ـیـ supporting a hamzah is usually written without dots (ئ) and is not represented; see rule 8(b) and (c). This map defaults bare ي/ى to y and renders the marked vowels." + + note "Rule 7. ى when final may represent the long vowel á, confined to words of Arabic origin (Mustafá مصطفى), or the diphthong ạy, written ۓ in Peshawar and ـۍ in Afghanistan (ḍoḍạy ډوډۍ, ډوډۓ). This map renders the final yeh-with-tail ۍ as ạy and word-final hamza-on-yeh ئ as ạy (rule 8(c)); the á reading is marked (ى with fatha) or lexical." + + note "Rule 8. ء (hamzah): (a) in initial position ء is not represented in romanization; (b) in words of Arabic origin, ء when medial or final is romanized ʼ (alif): suʼāl سؤال, dāʼimī دائمى, masʼalah مسٲلھ; (c) when written over final ى or ـۍ, ء indicates the diphthong ạy: ghwāṛạy غواړئ; (d) in the orthography of Peshawar, ء over final ه (the letter ۀ) indicates the short central vowel ạ: nạh نۀ. This map renders ۀ as ạh, word-final ئ as ạy, word-initial hamzah as empty, and other hamzah as ʼ." + + note "Rule 5 of the notes. Pushto possesses a short, central vowel whose sign is sometimes written; both it and fatha may be romanized a. When the central vowel is indicated by ء (hamzah), the vowel is romanized ạ and the hamzah is not represented. This map renders the ۀ spelling mechanically (ạh) and the hamzah-indicated ạ is otherwise lexical." + + note "Rule 9. Maddah is written over ا (alif) to indicate the long vowel ā: ākhir آخر. This map renders آ as ā." + + note "Rule 10. Tanwīn (ً) occurs in words of Arabic origin and represents a final syllable romanized an; it is usually associated with ا (alif), which is not represented: fiṭratan فطرتً. This map renders اً and ً as an." + + note "Rule 11. Tashdīd (ّ) is represented by doubling the letter or digraph concerned: awwal اولّ. This map encodes the doubling for the letters of the alphabet; the waw renders ww as a consonant doubling." + + note "Rule 1. ا (alif) is used: (a) to indicate the presence of any of the short vowels a, u, i (atạh اتۀ, ūlas اولس, inʻām انعام); (b) to represent the long vowel ā, usually written with maddah (ādam آدم); (c) with و or ى: (1) the long vowels ū (ūṣh اوښ) and ī (Īrān ایران); (2) the long vowels o (os اوس) and e (eṣhal ایښل); (3) the diphthongs aw (awwal اولّ) and ay (ayyām ایام). Rule 2: ا when medial or final represents the long vowel ā (bābā بابا). Rule 3: ا when final sometimes represents an, confined to a few words of Arabic origin. Rule 4: ا supporting ء is not represented. This map renders word-initial bare alif as a, other bare alif as ā (rules 2-3's an reading is lexical), and the marked vowels." + + note "Rule 12. Iẓāfah: (a) an unmarked muẓāf is followed by -i (dars-i ʻibrat درس عبرت, ṣāḥib-i mubārak صاحب مبارك); (b) a muẓāf marked by ء is followed by -ʼi (khānah-ʼi farhang خانۀ فرهنګ); (c) a muẓāf marked by ى is followed by -yi (khānah-yi buzurg خانه ى بزرګ). The iẓāfat construction is syntactic and not implemented; the ۀ default renders ạh." + + note "Rule 13. Affixes: an affix written separately from its word is separated in romanization by a single prime (ʹ): nāʹashnā نااشنا, warʹastawī وراستوى. Note 1: the particle د (da), meaning 'of,' is always written as a separate word (da dạh د ډۀ). Note 2: the Arabic article al is separated by a hyphen and its l is retained regardless of assimilation: ʻAbd al-Rashīd عبد الرشید, Faẓl al-Ḥaqq فضل الحق, Niz̤ām al-Dīn نظام الدین. The prime and hyphen placements are syntactic and not implemented." + + note "Rule 14. Compounds: the elements of a compound (except a compound personal name) are separated in romanization by a single prime (ʹ): kitābʹkhānah کتابخانھ, but marīẓkhānah مریضخانھ. Syntactic; not implemented." + + note "Rule 15. Capitalization: rules for the capitalization of English are followed, except that the Arabic article al is lowercased in all positions; diacritics are used with both capital and lowercase letters. This map leaves case untouched." + + note "Rule 16. Foreign words in a Pushto context, including Arabic, Persian, and Urdu words, are romanized according to the rules for Pushto, with the nearest Pushto vowels supplied: Yūnīwarsiṭī Buk Ejạnsī یونیورسټى بك ایجنسى (not University Book Agency), Dārmastatar (not Darmesteter) دارمستتر." + } +} + +tests { + # Letters of the Alphabet + "ب" -> "b" + "پ" -> "p" + "ت" -> "t" + "ټ" -> "ṭ" + "ث" -> "ṣ" + "ج" -> "j" + "چ" -> "ch" + "ح" -> "ḥ" + "څ" -> "ṡ" + "ځ" -> "ż" + "خ" -> "kh" + "د" -> "d" + "ډ" -> "ḍ" + "ذ" -> "z" + "ر" -> "r" + "ړ" -> "ṛ" + "ز" -> "z" + "ژ" -> "zh" + "ږ" -> "ẓh" + "س" -> "s" + "ش" -> "sh" + "ښ" -> "ṣh" + "ص" -> "ṣ" + "ض" -> "ẓ" + "ظ" -> "z̤" + "ع" -> "ʻ" + "غ" -> "gh" + "ف" -> "f" + "ق" -> "q" + "ك" -> "k" + "گ" -> "g" + "ګ" -> "g" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ڼ" -> "ṇ" + "و" -> "w" + "ه" -> "h" + "ھ" -> "h" + "ة" -> "h" + "ي" -> "y" + "ى" -> "y" + # Vowels and Diphthongs (written marks) + "ُ" -> "u" + "ِ" -> "i" + "آ" -> "ā" + "وُ" -> "ū" + "يِ" -> "ī" + "وَ" -> "o" + "وَْ" -> "aw" + "ۍ" -> "ạy" + "ۀ" -> "ạh" + # Rule 1(a)/8(d): initial alif as the short-vowel carrier; final ۀ = ạh + "اتۀ" -> "atạh" + "نۀ" -> "nạh" + # Rule 1(b)/9: maddah = ā + # - source: آدم, expected: ādam (rule 1(b)/9; the a is unwritten; + # mechanical: ādm) + # Rule 2: medial and final alif = ā + "بابا" -> "bābā" + # Rule 5(a)/6(a): the consonant defaults of bare و and bare ی + "ورور" -> "wrwr" # the doc's wror reads the medial wau o, lexical + # - source: خوشحال, expected: khwushḥāl (rule 5(a); the u is unwritten; + # mechanical: khwshḥāl) + # - source: یو, expected: yaw (rules 5(d)/6(a); the a is unwritten; + # mechanical: yw) + # Rule 8(c): hamza over final yeh = ạy + "غواړئ" -> "ghwāṛạy" + # Rule 11: tashdid doubling (waw as consonant) + "وّ" -> "ww" + # Examples requiring lexically supplied vowels (note 4) or syntactic + # conventions; mechanical renderings noted + # - source: اولس, expected: ūlas (unwritten ū; mechanical: awls) + # - source: انعام, expected: inʻām (unwritten i; mechanical: anʻām) + # - source: اوښ, expected: ūṣh (unwritten ū) + # - source: ایران, expected: Īrān (capital; unwritten ī) + # - source: اوس, expected: os (bare wau read o) + # - source: ایښل, expected: eṣhal (bare yad read e) + # - source: اولّ, expected: awwal (tashdid ww; unwritten a) + # - source: ایام, expected: ayyām (unwritten a) + # - source: نوم, expected: nūm (bare wau read ū) + # - source: كور, expected: kor (bare wau read o) + # - source: او, expected: u (rule 5(e), rare) + # - source: مینھ, expected: mīnah (bare yad read ī; unwritten a) + # - source: ډیر, ډٻر, expected: ḍer (bare yad read e) + # - source: درى, درې, درے, expected: dre + # - source: شى, expected: shay (final yad read ay) + # - source: مصطفى, expected: Mustafá (rule 7(a); capital; unwritten u, a) + # - source: ډوډۍ, ډوډۓ, expected: ḍoḍạy (rule 7(b); unwritten o's; + # mechanical: ḍwḍạy) + # - source: سؤال, expected: suʼāl (rule 8(b); unwritten u) + # - source: دائمى, expected: dāʼimī (rule 8(b); unwritten i) + # - source: مسٲلھ, expected: masʼalah (rule 8(b); unwritten vowels) + # - source: آخر, expected: ākhir (unwritten i) + # - source: فطرتً, expected: fiṭratan (rule 10; unwritten i, a) + # - source: درس عبرت, expected: dars-i ʻibrat (rule 12(a), syntactic) + # - source: صاحب مبارك, expected: ṣāḥib-i mubārak (rule 12(a)) + # - source: خانۀ فرهنګ, expected: khānah-ʼi farhang (rule 12(b), + # syntactic; the ۀ default renders ạh) + # - source: خانه ى بزرګ, expected: khānah-yi buzurg (rule 12(c)) + # - source: نااشنا, expected: nāʹashnā (rule 13 prime) + # - source: وراستوى, expected: warʹastawī (rule 13 prime) + # - source: د ډۀ, expected: da dạh (rule 13 note 1) + # - source: عبد الرشید, expected: ʻAbd al-Rashīd (rule 13 note 2) + # - source: فضل الحق, expected: Faẓl al-Ḥaqq (rule 13 note 2) + # - source: نظام الدین, expected: Niz̤ām al-Dīn (rule 13 note 2) + # - source: کتابخانھ, expected: kitābʹkhānah (rule 14 prime; unwritten a) + # - source: مریضخانھ, expected: marīẓkhānah (rule 14) + # - source: یونیورسټى بك ایجنسى, expected: Yūnīwarsiṭī Buk Ejạnsī (rule 16) + # - source: دارمستتر, expected: Dārmastatar (rule 16) +} + +stage main { + sequence { + # Written vowels and diphthongs (table of vowels and diphthongs) + sub "وَْ" "aw" + sub "وَ" "o" + sub "وُ" "ū" + sub "يِ" "ī" + sub "يَ" "á" + + # Rule 8 - hamzah: final hamza-on-yeh ạy; initial silent; else ʼ + sub { + from "ئ" + to "ạy" + after boundary + } + sub { + from boundary + "ء" + to "" + } + sub { + from boundary + "ئ" + to "" + } + sub "ء" "ʼ" + sub "ئ" "ʼ" + sub "ؤ" "ʼ" + sub "أ" "ʼ" + + # Rule 8(d)/5 - the Peshawar heh-with-hamza ۀ = the central vowel ạ + h + sub "ۀ" "ạh" + + # Rules 9-10 - maddah and tanvin + sub "آ" "ā" + sub "اً" "an" + sub "ً" "an" + + # Rule 11 - tashdid doubling + sub "بّ" "bb" + sub "پّ" "pp" + sub "تّ" "tt" + sub "ټّ" "ṭṭ" + sub "ثّ" "ṣṣ" + sub "جّ" "jj" + sub "چّ" "chch" + sub "حّ" "ḥḥ" + sub "څّ" "ṡṡ" + sub "ځّ" "żż" + sub "خّ" "khkh" + sub "دّ" "dd" + sub "ډّ" "ḍḍ" + sub "ذّ" "zz" + sub "رّ" "rr" + sub "ړّ" "ṛṛ" + sub "زّ" "zz" + sub "ژّ" "zhzh" + sub "ږّ" "ẓhẓh" + sub "سّ" "ss" + sub "شّ" "shsh" + sub "ښّ" "ṣhṣh" + sub "صّ" "ṣṣ" + sub "ضّ" "ẓẓ" + sub "طّ" "ṭṭ" + sub "ظّ" "z̤z̤" + sub "عّ" "ʻʻ" + sub "غّ" "ghgh" + sub "فّ" "ff" + sub "قّ" "qq" + sub "كّ" "kk" + sub "گّ" "gg" + sub "ګّ" "gg" + sub "لّ" "ll" + sub "مّ" "mm" + sub "نّ" "nn" + sub "ڼّ" "ṇṇ" + sub "وّ" "ww" + sub "يّ" "yy" + + # Letters of the Alphabet + sub "ب" "b" + sub "پ" "p" + sub "ت" "t" + sub "ټ" "ṭ" + sub "ث" "ṣ" + sub "ج" "j" + sub "چ" "ch" + sub "ح" "ḥ" + sub "څ" "ṡ" + sub "ځ" "ż" + sub "خ" "kh" + sub "د" "d" + sub "ډ" "ḍ" + sub "ذ" "z" + sub "ر" "r" + sub "ړ" "ṛ" + sub "ز" "z" + sub "ژ" "zh" + sub "ږ" "ẓh" + sub "س" "s" + sub "ش" "sh" + sub "ښ" "ṣh" + sub "ص" "ṣ" + sub "ض" "ẓ" + sub "ط" "ṭ" + sub "ظ" "z̤" + sub "ع" "ʻ" + sub "غ" "gh" + sub "ف" "f" + sub "ق" "q" + sub "ك" "k" + sub "گ" "g" + sub "ګ" "g" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "ڼ" "ṇ" + sub "ة" "h" + sub "ه" "h" + sub "ھ" "h" + + # Rules 1-2 - bare alif: word-initial the short-vowel carrier a, + # elsewhere the long vowel ā + sub { + from boundary + "ا" + to "a" + } + sub "ا" "ā" + + # Marks not represented, and the short-vowel signs + sub "ْ" "" + sub "ّ" "" + sub "َ" "a" + sub "ُ" "u" + sub "ِ" "i" + sub "ٓ" "" + + # Bare yad and bari yad defaults (the vowel readings are lexical) + sub "ي" "y" + sub "ى" "y" + sub "ی" "y" + sub "ۍ" "ạy" + sub "ے" "e" + sub "ۓ" "e" + + # Bare waw default (the alphabet-row consonant reading) + sub "و" "w" + sub "ـ" "" + } + +} + +} diff --git a/maps/alalc-snd-Arab-Latn-2024.isc b/maps/alalc-snd-Arab-Latn-2024.isc new file mode 100644 index 0000000..f3564e6 --- /dev/null +++ b/maps/alalc-snd-Arab-Latn-2024.isc @@ -0,0 +1,332 @@ +system "ALA-LC:snd-Arab:Latn:2024" { + +metadata { + authority_id alalc + id 2024 + language iso-639-2:snd + source_script Arab + destination_script Latn + name "Romanization Table -- Sindhi (2024)" + url http://catdir.loc.gov/catdir/cpso/romanization/sindhi.pdf + creation_date 2024 + confirmation_date 2024 + description { ALA-LC Romanization table for Sindhi (in Arabic script), 2024 version (earlier versions: 2013, 2012, 1997) + } + + notes { + note "Letters of the Alphabet: alif ا (omit); ب b; ٻ b̤; ڀ bh; ت t; ٿ th; ٽ ṭ; ٺ ṭh; ث s; پ p; ج j; ڄ j̈; جھ jh; ڃ ñ; چ c; ڇ ch; ح ḥ; خ kh; د d; ڌ dh; ڏ d̤; ڊ ḍ; ڍ ḍh; ذ z; ر r; ڙ ṛ; ز z; س s; ش sh; ص ṣ; ض ẓ; ط ṭ; ظ z̤; ع ‘ (ayn); غ gh; ف f; ڦ ph; ق q; ڪ k; ک kh; گ g; ڳ g̈; گھ gh; ڱ ṅ; ل l; م m; ن n; ڻ ṇ; و v; ه ہ ة h; ء (omit); ي ي y. The aspirate digraphs bh ڀ, jh جھ, ch ڇ, dh ڌ, ḍh ڍ, ph ڦ, and gh گھ are single letters except جھ and گھ, which render mechanically as their consonant plus h." + + note "Note 1. When Sindhi is written in the Devanagari script, it is romanized according to the Hindi table. The letters ब़, ज़, द़, and ग़ are romanized b̤, j̈, d̤, and g̈ respectively." + + note "Note 2. The rules of application for Urdu are to be used for Sindhi. Vocalization is that used for entries in Mewaram's A Sindhi English Dictionary (1st ed., Hyderabad, 1910), Sindhī Ūrdū Lughāt (Haidarābād, 1959), and Jāmiʻ-i Sindhī Lughāt (Karācī, 1931). This map therefore carries the Urdu rules-of-application machinery (marked vowels, hamzah, maddah, the article al with its sun-letter assimilation, tanvīn, shaddah doubling, bare-letter defaults), with the Sindhi letter values; over unvocalized text the readings of bare و and ی and unwritten short vowels remain lexical." + + note "Vowels and Diphthongs: fatha a; damma u; kasra i; yad with kasra یِ ī; waw و o; bari yad ے, yad ی e; waw with sukun and fatha وَْ au; yad with sukun and fatha یَْ, bari yad ے ai; alif with fatha اَ, yad with fatha یَ, alif maqsura with superscript alif ىٰ ā; waw with damma وُ ū." + } +} + +tests { + # Letters of the Alphabet + "ب" -> "b" + "ٻ" -> "b̤" + "ڀ" -> "bh" + "ت" -> "t" + "ٿ" -> "th" + "ٽ" -> "ṭ" + "ٺ" -> "ṭh" + "ث" -> "s" + "پ" -> "p" + "ج" -> "j" + "ڄ" -> "j̈" + "ڃ" -> "ñ" + "چ" -> "c" + "ڇ" -> "ch" + "ح" -> "ḥ" + "خ" -> "kh" + "د" -> "d" + "ڌ" -> "dh" + "ڏ" -> "d̤" + "ڊ" -> "ḍ" + "ڍ" -> "ḍh" + "ذ" -> "z" + "ر" -> "r" + "ڙ" -> "ṛ" + "ز" -> "z" + "س" -> "s" + "ش" -> "sh" + "ص" -> "ṣ" + "ض" -> "ẓ" + "ط" -> "ṭ" + "ظ" -> "z̤" + "ع" -> "ʻ" + "غ" -> "gh" + "ف" -> "f" + "ڦ" -> "ph" + "ق" -> "q" + "ڪ" -> "k" + "ک" -> "kh" + "گ" -> "g" + "ڳ" -> "g̈" + "ڱ" -> "ṅ" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ڻ" -> "ṇ" + "و" -> "v" + "ه" -> "h" + "ہ" -> "h" + "ة" -> "h" + "ي" -> "y" + "ی" -> "y" + "ے" -> "e" + # Vowels and Diphthongs + "اَ" -> "ā" + "یَ" -> "ā" + "ىٰ" -> "ā" + "وُ" -> "ū" + "یِ" -> "ī" + "وَ" -> "o" + "وَْ" -> "au" + "یَْ" -> "ai" + "ےَ" -> "ai" +} + +stage main { + sequence { + # Marked vowels and diphthongs (Vowels and Diphthongs table) + sub "وَْ" "au" + sub "یَْ" "ai" + sub "وَ" "o" + sub "وُ" "ū" + sub "یَ" "ā" + sub "یِ" "ī" + sub "اَ" "ā" + sub "ےَ" "ai" + sub "ىٰ" "ā" + + # Rule 12 of the Urdu rules - hamzah + sub "ئے" "yi" + sub "ۀ" "h-yi" + sub { + from boundary + "ء" + to "" + } + sub { + from boundary + "أ" + to "" + } + sub "ء" "ʼ" + sub "أ" "ʼ" + sub "ؤ" "ʼ" + sub "ئ" "ʼ" + + # Rule 13 - maddah + sub { + from boundary + "آ" + to "ā" + } + sub "آ" "ʼā" + + # Rule 18 - the Arabic article al (moon letters) and its assimilation + # (sun letters) + sub { + from boundary + "الت" + to "at-" + } + sub { + from boundary + "الث" + to "as-" + } + sub { + from boundary + "الد" + to "ad-" + } + sub { + from boundary + "الذ" + to "az-" + } + sub { + from boundary + "الر" + to "ar-" + } + sub { + from boundary + "الز" + to "az-" + } + sub { + from boundary + "الس" + to "as-" + } + sub { + from boundary + "الش" + to "ash-" + } + sub { + from boundary + "الص" + to "aṣ-" + } + sub { + from boundary + "الض" + to "aẓ-" + } + sub { + from boundary + "الط" + to "aṭ-" + } + sub { + from boundary + "الظ" + to "az̤-" + } + sub { + from boundary + "الل" + to "al-" + } + sub { + from boundary + "الن" + to "an-" + } + sub { + from boundary + "ال" + to "al-" + } + + # Rule 16 - tanvin + sub "اً" "an" + sub "ً" "an" + sub "ٌ" "un" + sub "ٍ" "in" + + # Rule 14 - shaddah doubling + sub "بّ" "bb" + sub "ٻّ" "b̤b̤" + sub "ڀّ" "bhbh" + sub "تّ" "tt" + sub "ٿّ" "thth" + sub "ٽّ" "ṭṭ" + sub "ٺّ" "ṭhṭh" + sub "ثّ" "ss" + sub "پّ" "pp" + sub "جّ" "jj" + sub "ڄّ" "j̈j̈" + sub "ڃّ" "ññ" + sub "چّ" "cc" + sub "ڇّ" "chch" + sub "حّ" "ḥḥ" + sub "خّ" "khkh" + sub "دّ" "dd" + sub "ڌّ" "dhdh" + sub "ڏّ" "d̤d̤" + sub "ڊّ" "ḍḍ" + sub "ڍّ" "ḍhḍh" + sub "ذّ" "zz" + sub "رّ" "rr" + sub "ڙّ" "ṛṛ" + sub "زّ" "zz" + sub "سّ" "ss" + sub "شّ" "shsh" + sub "صّ" "ṣṣ" + sub "ضّ" "ẓẓ" + sub "طّ" "ṭṭ" + sub "ظّ" "z̤z̤" + sub "عّ" "ʻʻ" + sub "غّ" "ghgh" + sub "فّ" "ff" + sub "ڦّ" "phph" + sub "قّ" "qq" + sub "ڪّ" "kk" + sub "کّ" "khkh" + sub "گّ" "gg" + sub "ڳّ" "g̈g̈" + sub "ڱّ" "ṅṅ" + sub "لّ" "ll" + sub "مّ" "mm" + sub "نّ" "nn" + sub "ڻّ" "ṇṇ" + sub "وّ" "vv" + sub "یّ" "yy" + + # Letters of the Alphabet + sub "ب" "b" + sub "ٻ" "b̤" + sub "ڀ" "bh" + sub "ت" "t" + sub "ٿ" "th" + sub "ٽ" "ṭ" + sub "ٺ" "ṭh" + sub "ث" "s" + sub "پ" "p" + sub "ج" "j" + sub "ڄ" "j̈" + sub "ڃ" "ñ" + sub "چ" "c" + sub "ڇ" "ch" + sub "ح" "ḥ" + sub "خ" "kh" + sub "د" "d" + sub "ڌ" "dh" + sub "ڏ" "d̤" + sub "ڊ" "ḍ" + sub "ڍ" "ḍh" + sub "ذ" "z" + sub "ر" "r" + sub "ڙ" "ṛ" + sub "ز" "z" + sub "س" "s" + sub "ش" "sh" + sub "ص" "ṣ" + sub "ض" "ẓ" + sub "ط" "ṭ" + sub "ظ" "z̤" + sub "ع" "ʻ" + sub "غ" "gh" + sub "ف" "f" + sub "ڦ" "ph" + sub "ق" "q" + sub "ڪ" "k" + sub "ک" "kh" + sub "گ" "g" + sub "ڳ" "g̈" + sub "ڱ" "ṅ" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "ڻ" "ṇ" + sub "ة" "h" + sub "ه" "h" + sub "ہ" "h" + sub "ھ" "h" + + # Bare alif: word-initial short a, after a consonant ā (Urdu rule 3) + sub { + from boundary + "ا" + to "a" + } + sub "ا" "ā" + + # Marks not represented, and the short-vowel signs + sub "ْ" "" + sub "ّ" "" + sub "َ" "a" + sub "ُ" "u" + sub "ِ" "i" + + # Bare yad: word-initial y, other bare yad e; bare bari yad e + sub { + from boundary + "ی" + to "y" + } + sub { + from boundary + "ي" + to "y" + } + sub "ی" "e" + sub "ي" "e" + sub "ے" "e" + sub "ى" "e" + + # Bare waw: the alphabet-row consonant v + sub "و" "v" + } + +} + +} diff --git a/maps/alalc-uig-Arab-Latn-2015.isc b/maps/alalc-uig-Arab-Latn-2015.isc new file mode 100644 index 0000000..a1350a0 --- /dev/null +++ b/maps/alalc-uig-Arab-Latn-2015.isc @@ -0,0 +1,147 @@ +system "ALA-LC:uig-Arab:Latn:2015" { + +metadata { + authority_id alalc + id 2015 + language iso-639-2:uig + source_script Arab + destination_script Latn + name "Romanization Table -- Uighur (2015)" + url http://catdir.loc.gov/catdir/cpso/romanization/uighur.pdf + creation_date 2015 + confirmation_date 2015 + description { ALA-LC Romanization table for Uighur, 2015 version (earlier versions: 2011, 1997) + } + + notes { + note "Letters of the Alphabet: alif ا, word-initial ئا a; he ه, word-initial ئه ă; ب b; پ p; ت t; ج j; چ ch; خ kh; د d; ر r; ز z; ژ zh; س s; ش sh; غ gh; ف f; ق q; ك k; گ g; ڭ ng; ل l; م m; ن n; teh marbuta ة h; و, word-initial ئو o; ۇ, word-initial ئۇ u; ۆ, word-initial ئۆ ö; ۈ, word-initial ئۈ ü; ۋ v; ې, word-initial ئې e; ی ى, word-initial ئ i; ي y. Each vowel letter is unambiguous; the dotted yad ي is the consonant y and the undotted ی/ى are the vowel i." + + note "Rule 1. Use the single prime (ʹ) to separate two letters representing two distinct consonantal sounds when the combination might be read as a digraph: uzʹhal ئۇزهال. The prime placement is syntactic and is not implemented." + + note "Rule 2. Romanize foreign words that occur in a Uighur context and are written in Uighur letters according to these rules for romanizing Uighur: Vena (not Vienna) ۋېنا, jughrapi (not geography) جۇغراپى, stăyn (not stein) ستهین." + + note "Rule 3. When hamzah is initial it is not represented in romanization; when medial it is romanized ʼ (alif): ayroport ئايروپورت [initial], qarghaʼi قارغائی [medial]. This map renders word-initial ئ as empty and other ئ as ʼ; the hamzah-carrier readings of the word-initial vowel spellings (ئا ئه ئو ئۇ ئۆ ئۈ ئې ئ) fall out of the initial rule." + + note "Rule 4. Follow the rules for the capitalization of English. This map leaves case untouched; the proper-noun capital of the Vena example is lexical." + + note "NOTE: The following examples from the old Uighur romanization table are romanized differently in the new table: ay ئاي, bilishinggă بىلىشىڭگه, jănggă جەڭگه, shojanggă شوجاڭگه, bayiliq بايىلىق, băytulla بهيتۇللا, păyishănbă پەيىشەنبه, dăyfu دهیفو. The values shown are the new-table readings and are encoded." + + note "The he ه is listed both in the ă row and (with teh marbuta ة) in the h row. This map defaults ه to ă (the schwa reading exercised by the note examples) and ة to h; the h reading of ه (as in uzʹhal) is lexical, like the vowel points of the Kazakh he." + + note "The source document's text layer renders the letters in Unicode presentation forms (joining shapes); these carry no letter-identity information in Uighur and are normalized to base codepoints before this map applies." + } +} + +tests { + # Letters of the Alphabet + "ا" -> "a" + "ئا" -> "a" + "ه" -> "ă" + "ئه" -> "ă" + "ب" -> "b" + "پ" -> "p" + "ت" -> "t" + "ج" -> "j" + "چ" -> "ch" + "خ" -> "kh" + "د" -> "d" + "ر" -> "r" + "ز" -> "z" + "ژ" -> "zh" + "س" -> "s" + "ش" -> "sh" + "غ" -> "gh" + "ف" -> "f" + "ق" -> "q" + "ك" -> "k" + "گ" -> "g" + "ڭ" -> "ng" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ة" -> "h" + "و" -> "o" + "ئو" -> "o" + "ۇ" -> "u" + "ئۇ" -> "u" + "ۆ" -> "ö" + "ئۆ" -> "ö" + "ۈ" -> "ü" + "ئۈ" -> "ü" + "ۋ" -> "v" + "ې" -> "e" + "ئې" -> "e" + "ی" -> "i" + "ى" -> "i" + "ئ" -> "" # rule 3: initial hamzah not represented + "ي" -> "y" + # Rule 1 (the prime is syntactic; the h reading of he is lexical) + # - source: ئۇزهال, expected: uzʹhal (mechanical: uzăal) + # Rule 2 examples + "جۇغراپى" -> "jughrapi" + "ستهين" -> "stăyn" + # - source: ۋېنا, expected: Vena (proper-noun capital) + # Rule 3 examples + "ئايروپورت" -> "ayroport" + "قارغائی" -> "qarghaʼi" + # NOTE examples (old-table words, new-table readings) + "ئاي" -> "ay" + "بىلىشىڭگه" -> "bilishinggă" + "جهڭگه" -> "jănggă" + "شوجاڭگه" -> "shojanggă" + "بايىلىق" -> "bayiliq" + "بهيتۇللا" -> "băytulla" + "پهيىشهنبه" -> "păyishănbă" + # - source: دهيفو (text-layer final glyph و), expected: dăyfu (the romanization + # requires final ۇ; the source glyph is ambiguous و/ۇ) +} + +stage main { + parallel { + # Rule 3 - hamzah: word-initial carrier not represented, medial ʼ + sub { + from boundary + "ئ" + to "" + } + sub "ئ" "ʼ" + + # Letters of the Alphabet + sub "ه" "ă" + sub "ة" "h" + sub "ا" "a" + sub "ب" "b" + sub "پ" "p" + sub "ت" "t" + sub "ج" "j" + sub "چ" "ch" + sub "خ" "kh" + sub "د" "d" + sub "ر" "r" + sub "ز" "z" + sub "ژ" "zh" + sub "س" "s" + sub "ش" "sh" + sub "غ" "gh" + sub "ف" "f" + sub "ق" "q" + sub "ك" "k" + sub "گ" "g" + sub "ڭ" "ng" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "و" "o" + sub "ۇ" "u" + sub "ۆ" "ö" + sub "ۈ" "ü" + sub "ۋ" "v" + sub "ې" "e" + sub "ی" "i" + sub "ى" "i" + sub "ي" "y" + sub "ـ" "" + } + +} + +} diff --git a/maps/alalc-urd-Arab-Latn-2013.isc b/maps/alalc-urd-Arab-Latn-2013.isc new file mode 100644 index 0000000..00010d6 --- /dev/null +++ b/maps/alalc-urd-Arab-Latn-2013.isc @@ -0,0 +1,442 @@ +system "ALA-LC:urd-Arab:Latn:2013" { + +metadata { + authority_id alalc + id 2013 + language iso-639-2:urd + source_script Arab + destination_script Latn + name "Romanization Table -- Urdu (2013)" + url http://catdir.loc.gov/catdir/cpso/romanization/urdu.pdf + creation_date 2013 + confirmation_date 2013 + description { ALA-LC Romanization table for Urdu (in Arabic script), 2013 version (earlier versions: 2011, 1997) + } + + notes { + note "Letters of the Alphabet: alif ا omit (see Note 1); ب b; پ p; ت t; ٹ ṭ; ث s; ج j; چ c; ح ḥ; خ kh; د d; ڈ ḍ; ذ z; ر r; ڑ ṛ; ز z; ژ zh; س s; ش sh; ص ṣ; ض ẓ; ط t̤; ظ z̤; ع ‘ (ayn); غ gh; ف f; ق q; ك k; گ g; ل l; م m; ن n; ں n (see Note 2; rule 6 romanizes undotted and dotted noon alike n); و v; ه h; ة t (see Rule 10); ي/ے/ى y (see Note 3)." + + note "Digraphs Representing Urdu Aspirates (see Note 4): bh به; ph په; th ته; ṭh ٹه; jh جھ; ch چھ; dh ده; ḍh ڋه; ṛh ڑه; kh كه; gh گه. Each is the consonant letter followed by he; this map renders the aspirate mechanically as the letter value plus h." + + note "Urdu Vowels and Diphthongs (see Note 5): fatha a; damma u; kasra i; alif with fatha اَ ā; yad with fatha یَ á, alif maqsura with superscript alif ىٰ á; waw with damma وُ ū; yad with kasra یِ ī; waw و o; yad ی, bari yad ے e; waw with sukun and fatha وَْ au; bari yad ے ai." + + note "Note 1. For the use of ا (alif) to support ء (hamzah) and آ (maddah), see rules 1 and 2, respectively. For the romanization of ء by ʼ (alif), see rule 12. For other orthographic uses of ا see rules 3-4." + + note "Note 2. For the distinction between ن and ں, see rule 6." + + note "Note 3. For the distinction between ى and ے, see rule 11(c) and (e)." + + note "Note 4. For the form of the letter ه in these digraphs, see rule 9." + + note "Note 5. Vowel points are used sparingly, and for romanization must be supplied from a dictionary. Accordingly, over unvocalized text the readings of bare و (v/o/au), bare ی (y/i/e), and unwritten short vowels are lexical; this map encodes the alphabet-row consonant readings as the bare-letter defaults (bare و v, word-initial bare ی y, other bare ی e), the marked vowels mechanically, and the rules-of-application contexts below. The source's examples whose romanization requires lexically supplied vowels are carried as comments in the tests block." + + note "Rule 1. ا (alif), و and ی are used to support ء (hamzah); see rule 12. When so used, these letters are not represented in romanization." + + note "Rule 2. ا (alif) is used to support آ (maddah); see rule 13. When so used, it is not represented in romanization." + + note "Rule 3. ا (alif) is used after a consonant to indicate the long vowel romanized ā: rāj راج; karnā کرنا. In some words of Arabic origin this alif appears as a superscript letter over ی representing the alif maqṣūrah: daʻvá دعویٰ. The alif is sometimes omitted in writing. It is always represented in romanization: ʻAbdurraḥmān عبد الرحمن, عبد الرحمان." + + note "Rule 4. ا (alif) may be used as an orthographic sign without phonetic significance. In these cases it is not represented in romanization. See rule 16: ʻamlan عملاً." + + note "Rule 5. ط appears as a superscript letter over ت, د, and ر when the latter represent the cerebral sounds romanized ṭ, ḍ, and ṛ, respectively. (In modern text these are the single letters ٹ, ڈ, ڑ.)" + + note "Rule 6. Regardless of pronunciation, undotted forms of the letter ن are romanized n and dotted forms are romanized n: jahān جهاں." + + note "Rule 7. و is used: (a) to represent the consonant sound romanized v: dev دیو, vujūd وجود, khvīsh خویش; in some words of Persian origin this consonant, though written, has ceased to be pronounced; it is retained in romanization (khvīsh); (b) to represent the long vowel romanized ū: Urdū اردو; (c) to represent the long vowel romanized o: os اوس, dost دوست; for the romanization of the conjunction و as o see rule 19; (d) to represent the diphthong romanized au: aur اور, qaumī قومی; (e) to support ء (hamzah), see rule 12; for the use of shaddah with و see rule 14." + + note "Rule 8. ه is used to represent the consonantal sound romanized h: ham هم, gāh گاه. Final ه, though not pronounced, is normally retained in romanization: kih که, guldastah گلدسته. Exception is made in the case of words whose final syllable ends in an aspirated consonant; when final ه is added to the letter ه in this position, it is not represented in romanization: mukh مکهه." + + note "Rule 9. ه (usually written in the form ہ) is used to represent the aspirated element of the sounds romanized bh, ph, th, ṭh, jh, ch, dh, ḍh, ṛh, kh, gh: phūl پهول, acchā اچها. For the writing and romanization of words ending in an aspirated consonant, see rule 8." + + note "Rule 10. ة and ت, which are sometimes used interchangeably, are both romanized t: ḥikmat حکمة, حکمت." + + note "Rule 11. ی is used: (a) to represent the consonant romanized y: siyāsat سیاست, diyā دیا; (b) to represent the long vowel romanized ī: taṣvīr تصویر; (c) to represent the long vowel romanized e: sher شیر, nevā نیوا; when ی with this value is final, the form ے generally replaces ی: se سے, laṛke لڑکے; (d) to represent the long vowel romanized á, see rule 3: daʻvá دعویٰ, ʻuqbá عقبی; (e) to represent the diphthong romanized ai: maidān میدان, bail بیل; when ی with this value is final, it is generally written ے: hai ہے; (f) to support ء (hamzah); in this position ی is usually undotted, see rule 12. For the use of shaddah with ی see rule 14; for the use of ی in a muẓāf see rule 17. The ī/e and e/ai choices of the bare yad and bari yad are lexical (note 5); this map defaults to e." + + note "Rule 12. ء (hamzah): (a) in initial position ء is not represented in romanization; (b) in medial and final position, when ء represents a consonant, it is romanized ʼ (alif): muʼmin مؤمن, liʼe لئے, bhāʼī بهائی; (c) when ء represents the connective syllable joining a muẓāf to what follows, it is romanized -yi, see rule 17: malikah-yi Inglistān ملکۀ Inglistān. This map renders the heh-with-hamza ۀ as h-yi and the hamza-on-yeh-plus-bari-yad ئے as yi." + + note "Rule 13. آ (maddah): (a) at the beginning of a word, or following the Arabic article ال, آ is romanized ā: āb آب; (b) at the beginning of a syllable within a word, آ is romanized ʼā: mirʼāt مرآت, Qurʼān قرآن; (c) آ is otherwise omitted in romanization." + + note "Rule 14. Shaddah (tashdīd) indicates the doubling in pronunciation of the letter over which it is written. It is represented in romanization by doubling the letter or digraph concerned: caccā چچّا, khaṭṭā کهٹّا, makkhī مکّهی. When shaddah occurs over و and ی, these letters are regarded as representing consonants; they are romanized vv and yy, respectively: quvvat قوّت, sayyid سیّد, Zakariyyā زکریّا." + + note "Rule 15. Sukūn (jazm) indicates the absence of a vowel following the letter over which it is written. It is not represented in romanization." + + note "Rule 16. Tanvīn (written ٌ, ٍ, ً (اً)) is romanized un, in, an, respectively, when it occurs in a word or expression borrowed from Arabic; otherwise it is not represented in romanization: fauran فوراً, ʻamlan عملاً. This map encodes the tanvīn values; the borrowed-from-Arabic condition is lexical." + + note "Rule 17. Iẓāfat: (a) when the muẓāf ends in a consonant, -i is added to it in the romanization: tārīkh-i Hindūstān تاریخِ ہندوستان; (b) when the muẓāf ends in a vowel or in silent ه, -yi is added: daryā-yi shor دریائے شور, zabān-i Urdū-yi muʻallá زبانِ اردو معلی, malikah-yi Inglistān ملکۂ انگلستان. For the use of ء (hamzah) to indicate the muẓāf, see rule 12(c). The iẓāfat kasra renders mechanically as the word-final i; the -yi after vowels and silent he requires the hamzah spellings." + + note "Rule 18. The Arabic article ال is romanized differently depending on the letters and context with which it is associated: (a) when it is prefixed to a word beginning with a 'moon letter' (ا ب ج ح خ ع غ ف ق ك م و ه ی), it is romanized al: al-Qurʼān القران; (b) when it is prefixed to a word beginning with a 'sun letter' (ت ث د ذ ر ز س ش ص ض ط ظ ل ن), the l of the article is replaced in romanization by the same letter or digraph as that which begins the following word: as-sijill السجل; (c) when it occurs before the second element in a name, the vowel of the article is replaced by the final vowel of the preceding word: ʻAbdulʻazīz عبد العزیز, ʻAbdurrashīd عبد الرشید, Abūlfaẓl ابو الفضل, Zūlqarnain ذو القرنین, Faẓlullāhفضل الله. Rules (a) and (b) are encoded; (c) is syntactic and not implemented." + + note "Rule 19. The conjunction و, when used to join two closely associated members of a phrase, is romanized o: māl o asbāb مال و اسباب. Otherwise و is romanized va. The conjunction reading is syntactic and not implemented; bare و defaults to v (the alphabet row)." + + note "Rule 20. Rules for the capitalization of English are followed, except that the Arabic article al is lowercased in all positions. This map leaves case untouched; the source's proper-noun capitals are lexical." + + note "Rule 21. The macron is used with both capital and lowercase letters." + + note "Rule 22. The hyphen is used: (a) to connect a muẓāf with the following vowel or syllable, see rule 17; (b) to connect the Arabic article al with the following word, see rule 18. The article hyphen is encoded; the muẓāf hyphen rides on the -i/-yi spellings." + + note "Rule 23. Foreign words in an Urdu context, including Arabic and Persian words, are romanized according to the rules for Urdu: Janāb-i Heḍ Māsṭar ṣāḥib-i Gavarnmanṭ Hāʼī Iskūl جناب هیڈ ماسٹر صاحب گورنمنٹ ہائی اسکول. For short vowels not indicated in the script, the Urdu vowels nearest the original pronunciation of the word concerned are supplied in romanization." + + note "Rule 24. A quotation in another language using the Arabic script is romanized according to the rules for the language concerned." + } +} + +tests { + # Letters of the Alphabet + "ب" -> "b" + "پ" -> "p" + "ت" -> "t" + "ٹ" -> "ṭ" + "ث" -> "s" + "ج" -> "j" + "چ" -> "c" + "ح" -> "ḥ" + "خ" -> "kh" + "د" -> "d" + "ڈ" -> "ḍ" + "ذ" -> "z" + "ر" -> "r" + "ڑ" -> "ṛ" + "ز" -> "z" + "ژ" -> "zh" + "س" -> "s" + "ش" -> "sh" + "ص" -> "ṣ" + "ض" -> "ẓ" + "ط" -> "t̤" + "ظ" -> "z̤" + "ع" -> "ʻ" + "غ" -> "gh" + "ف" -> "f" + "ق" -> "q" + "ك" -> "k" + "گ" -> "g" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ں" -> "n" + "و" -> "v" + "ه" -> "h" + "ہ" -> "h" + "ة" -> "t" + "ی" -> "y" + "ے" -> "e" + # Urdu Vowels and Diphthongs + "اَ" -> "ā" + "یَ" -> "á" + "ىٰ" -> "á" + "وُ" -> "ū" + "یِ" -> "ī" + "وَ" -> "o" + "وَْ" -> "au" + # Rule 3 (alif after a consonant = ā) + "راج" -> "rāj" + # - source: کرنا, expected: karnā (rule 3 final alif = ā; the a is + # unwritten; mechanical: krnā) + # Rule 17(a) (iẓāfat kasra = word-final -i) + # - source: زبانِ, expected: zabān-i (the first alif reads the lexically + # short a; mechanical per rule 3: zābāni) + # Rule 7(d) (wau after a vowel = the au nucleus) + "اور" -> "aur" + # Rule 7(a) (wau consonant v; word-final) + "دیو" -> "dev" + # Rule 8 (he = h) + # - source: هم, expected: ham (rule 8; the a is unwritten; mechanical: hm) + "گاه" -> "gāh" + # Rule 6 (both noons = n) + # - source: جهاں, expected: jahān (rule 6; the a is unwritten; + # mechanical: jhān) + # Rule 9 + 3 (aspirate he; word-initial maddah = ā) + # - source: اچها, expected: acchā (rule 9; the doc's romanization implies + # the geminate spelling اچّها whose shaddah the text layer does not + # carry; mechanical per the aspirate digraph: achā) + "آب" -> "āb" + # Examples requiring lexically supplied vowels or proper-noun capitals + # (note 5; the mechanical renderings are shown) + # - source: که, expected: kih (unwritten i; mechanical: kh) + # - source: گلدسته, expected: guldastah (unwritten vowels) + # - source: مکهه, expected: mukh (unwritten u; the final he after the + # aspirate he is silent per rule 8: mechanical: mkh) + # - source: چچّا, expected: caccā (shaddah doubling; unwritten a) + # - source: کهٹّا, expected: khaṭṭā (shaddah doubling; unwritten a) + # - source: مکّهی, expected: makkhī (shaddah doubling; unwritten a, i) + # - source: قوّت, expected: quvvat (wau shaddah = vv; unwritten u, a) + # - source: سیّد, expected: sayyid (yad shaddah = yy; unwritten a, i) + # - source: زکریّا, expected: Zakariyyā (yad shaddah = yy; capital, + # unwritten a, i) + # - source: پهول, expected: phūl (aspirate ph; unwritten ū) + # - source: مؤمن, expected: muʼmin (rule 12b medial hamzah = ʼ; unwritten u) + # - source: لئے, expected: liʼe (rule 12b; unwritten i) + # - source: بهائی, expected: bhāʼī (rule 12b; unwritten i) + # - source: مرآت, expected: mirʼāt (rule 13b medial maddah = ʼā; unwritten i) + # - source: قرآن, expected: Qurʼān (rule 13b; capital, unwritten u) + # - source: القران, expected: al-Qurʼān (rule 18a moon-letter article; + # capital, unwritten u) + # - source: السجل, expected: as-sijill (rule 18b sun-letter assimilation; + # unwritten i's; mechanical: as-sjll) + # - source: اوس, expected: os (bare wau after alif read o; mechanical: aus) + # - source: دوست, expected: dost (bare wau read o; mechanical: dvst) + # - source: اردو, expected: Urdū (word-final bare wau read ū; capital; + # mechanical: ardv) + # - source: وجود, expected: vujūd (initial wau v, medial wau ū; unwritten u) + # - source: خویش, expected: khvīsh (medial wau v; unwritten ī) + # - source: قومی, expected: qaumī (wau au after unwritten a; unwritten i) + # - source: سیاست, expected: siyāsat (rule 11a yad = y; unwritten i, a) + # - source: دیا, expected: diyā (rule 11a; unwritten i) + # - source: تصویر, expected: taṣvīr (rule 11b yad = ī; unwritten a) + # - source: شیر, expected: sher (rule 11c bare yad = e) + "شیر" -> "sher" + # - source: نیوا, expected: nevā (unwritten e) + # - source: سے, expected: se (rule 11c final bari yad = e) + "سے" -> "se" + # - source: لڑکے, expected: laṛke (rule 11c) + # - source: لڑکے, expected: laṛke (rule 11c; the a is unwritten; + # mechanical: lṛke) + # - source: دعویٰ, expected: daʻvá (rule 11d; unwritten a) + # - source: عقبی, expected: ʻuqbá (rule 11d; unwritten u, á) + # - source: میدان, expected: maidān (rule 11e ai; unwritten a) + # - source: بیل, expected: bail (rule 11e; unwritten a, i) + # - source: ہے, expected: hai (rule 11e final bari yad read ai; + # mechanical: he) + # - source: ملکۂ, expected: malikah-yi (rule 12c/17b; unwritten i) + # - source: دریائے, expected: daryā-yi (rule 17b; unwritten a) + # - source: تاریخِ, expected: tārīkh-i Hindūstān (unwritten i) + # - source: فوراً, expected: fauran (rule 16 tanvin; unwritten u) + # - source: عملاً, expected: ʻamlan (rule 16; unwritten a) + # - source: حکمة, expected: ḥikmat (rule 10; unwritten i, a) + # - source: مال و اسباب, expected: māl o asbāb (rule 19 conjunction wau = o, + # syntactic) + # - source: جناب هیڈ ماسٹر صاحب گورنمنٹ ہائی اسکول, expected: Janāb-i Heḍ + # Māsṭar ṣāḥib-i Gavarnmanṭ Hāʼī Iskūl (rule 23 foreign words; unwritten + # vowels throughout) +} + +stage main { + sequence { + # Marked vowels and diphthongs (Urdu Vowels and Diphthongs table) + sub "وَْ" "au" + sub "وَ" "o" + sub "وُ" "ū" + sub "یَ" "á" + sub "یِ" "ī" + sub "اَ" "ā" + sub "ےَ" "ai" + sub "ىٰ" "á" + + # Rule 12 - hamzah (a initial silent; b medial/final ʼ; c muẓāf -yi) + sub "ئے" "yi" + sub "ۀ" "h-yi" + sub { + from boundary + "ء" + to "" + } + sub { + from boundary + "أ" + to "" + } + sub "ء" "ʼ" + sub "أ" "ʼ" + sub "ؤ" "ʼ" + sub "ئ" "ʼ" + + # Rule 13 - maddah (a word-initial ā; b syllable-initial ʼā) + sub { + from boundary + "آ" + to "ā" + } + sub "آ" "ʼā" + + # Rule 18 - the Arabic article al (moon letters) and its assimilation + # (sun letters) + sub { + from boundary + "الت" + to "at-" + } + sub { + from boundary + "الث" + to "as-" + } + sub { + from boundary + "الد" + to "ad-" + } + sub { + from boundary + "الذ" + to "az-" + } + sub { + from boundary + "الر" + to "ar-" + } + sub { + from boundary + "الز" + to "az-" + } + sub { + from boundary + "الس" + to "as-" + } + sub { + from boundary + "الش" + to "ash-" + } + sub { + from boundary + "الص" + to "aṣ-" + } + sub { + from boundary + "الض" + to "aẓ-" + } + sub { + from boundary + "الط" + to "at̤-" + } + sub { + from boundary + "الظ" + to "az̤-" + } + sub { + from boundary + "الل" + to "al-" + } + sub { + from boundary + "الن" + to "an-" + } + sub { + from boundary + "ال" + to "al-" + } + + # Rule 16 - tanvin (borrowed-from-Arabic words) + sub "اً" "an" + sub "ً" "an" + sub "ٌ" "un" + sub "ٍ" "in" + + # Rule 14 - shaddah doubling (waw and yad render as consonants vv, yy) + sub "بّ" "bb" + sub "پّ" "pp" + sub "تّ" "tt" + sub "ٹّ" "ṭṭ" + sub "ثّ" "ss" + sub "جّ" "jj" + sub "چّ" "cc" + sub "حّ" "ḥḥ" + sub "خّ" "khkh" + sub "دّ" "dd" + sub "ڈّ" "ḍḍ" + sub "ذّ" "zz" + sub "رّ" "rr" + sub "ڑّ" "ṛṛ" + sub "زّ" "zz" + sub "ژّ" "zhzh" + sub "سّ" "ss" + sub "شّ" "shsh" + sub "صّ" "ṣṣ" + sub "ضّ" "ẓẓ" + sub "طّ" "t̤t̤" + sub "ظّ" "z̤z̤" + sub "عّ" "ʻʻ" + sub "غّ" "ghgh" + sub "فّ" "ff" + sub "قّ" "qq" + sub "كّ" "kk" + sub "کّ" "kk" + sub "ڪّ" "kk" + sub "گّ" "gg" + sub "لّ" "ll" + sub "مّ" "mm" + sub "نّ" "nn" + sub "ںّ" "nn" + sub "وّ" "vv" + sub "یّ" "yy" + + # Letters of the Alphabet + sub "ب" "b" + sub "پ" "p" + sub "ت" "t" + sub "ٹ" "ṭ" + sub "ث" "s" + sub "ج" "j" + sub "چ" "c" + sub "ح" "ḥ" + sub "خ" "kh" + sub "د" "d" + sub "ڈ" "ḍ" + sub "ذ" "z" + sub "ر" "r" + sub "ڑ" "ṛ" + sub "ز" "z" + sub "ژ" "zh" + sub "س" "s" + sub "ش" "sh" + sub "ص" "ṣ" + sub "ض" "ẓ" + sub "ط" "t̤" + sub "ظ" "z̤" + sub "ع" "ʻ" + sub "غ" "gh" + sub "ف" "f" + sub "ق" "q" + sub "ك" "k" + sub "ک" "k" + sub "ڪ" "k" + sub "گ" "g" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "ں" "n" + sub "ة" "t" + sub "ه" "h" + sub "ہ" "h" + sub "ھ" "h" + + # Rule 3 - bare alif: word-initial short a, after a consonant ā + sub { + from boundary + "ا" + to "a" + } + sub "ا" "ā" + + # Rule 15 and leftover marks + sub "ْ" "" + sub "ّ" "" + sub "َ" "a" + sub "ُ" "u" + sub "ِ" "i" + + # Rule 11 - yad: word-initial y, other bare yad e (note 5; the i and ai + # readings are marked or lexical) + sub { + from boundary + "ی" + to "y" + } + sub { + from boundary + "ي" + to "y" + } + sub "ی" "e" + sub "ي" "e" + sub "ے" "e" + sub "ى" "e" + + # Rule 7 - wau: word-finally the consonant v (dev); after a vowel it is + # the diphthong nucleus (aur); the bare alphabet-row reading is the + # consonant v (the ū/o readings are marked or lexical) + sub { + from "و" + to "v" + after boundary + } + sub { + from "و" + to "u" + before any(["a", "ā", "e", "i", "ī", "o", "u", "ū", "á"]) + } + sub "و" "v" + } + +} + +} diff --git a/maps/alalc-zsm-Arab-Latn-2011.isc b/maps/alalc-zsm-Arab-Latn-2011.isc new file mode 100644 index 0000000..ff25673 --- /dev/null +++ b/maps/alalc-zsm-Arab-Latn-2011.isc @@ -0,0 +1,246 @@ +system "ALA-LC:zsm-Arab:Latn:2011" { + +metadata { + authority_id alalc + id 2011 + language iso-639-2:zsm + source_script Arab + destination_script Latn + name "Romanization Table -- Malay (in Jawi-Arabic script) (2011)" + url http://catdir.loc.gov/catdir/cpso/romanization/malay.pdf + creation_date 2011 + confirmation_date 2011 + description { ALA-LC Romanization table for Malay (in Jawi-Arabic script), 2011 version (earlier version: 1997) + } + + notes { + note "Letters of the Alphabet (Romanization column; Jawi orthography is rendered with Unicode presentation forms in the source, normalized here to base codepoints): alif ا omit (see Note 1; per Rule 4 a word-initial alif or an alif following a consonant represents the vowel a); ب b; ت t; ث *th, s (see Note 2); ج j; چ c; ح h; خ kh; د d; ذ *dh, z (see Notes 2 and 3); ر r; ز z (see Note 3); س s; ش sy (see Note 3); ص *ṣ, s (see Notes 2 and 3); ض *ḍ, d (see Notes 2 and 3); ط *ṭ, t (see Notes 2 and 3); ظ *ẓ, l, z (see Notes 3 and 4); ع omit (see Note 3); غ gh (see Note 3); ڠ ng; ف *f, p (see Notes 3 and 5); ق *q, k (see Note 2); ڤ p; ك k; kaf with superscript dot ك̇ g; ل l; م m; ن n; ڽ ny; ه ة h. و w, u, o, au (see Note 6); ي y, i, e, ai (see Note 7)." + + note "Vowels and Diphthongs: alif with fatha اَ a; waw with damma وُ u; yad with kasra يِ i; unwritten ĕ (the schwa is not written in Jawi and must be supplied lexically); yad with fatha يَ e, ai; waw with fatha وَ o, au. This map encodes the marked vowel rows; the unmarked schwa reading is lexical." + + note "Note 1. For the use of alif see rules 3-5." + + note "Note 2. Letters in the romanization column marked with an asterisk (*) represent the romanized value of the equivalent Jawi letter when it occurs in Arabic words (not Arabic loan words): th (ث), dh (ذ), ṣ (ص), ḍ (ض), ṭ (ط), ẓ (ظ), f (ف), q (ق). The letter not designated with an asterisk represents the proper romanization value for the letter when it occurs in Malay words: s, z, s, d, t, l/z, p, k respectively. This map encodes the Malay values; the Arabic-word values are lexical (Rule 2: the boundary between Arabic loans and foreign Arabic terms is not always easy to draw; common usage should always be followed)." + + note "Note 3. Jawi letters typically found only in Arabic and Arabic loan words: ث ذ ص ض ط ظ ع غ ش ف ق (and the dotted-g kaf)." + + note "Note 4. Some words of Arabic origin with the letter ظ have come into the language with the equivalent l (e.g., lahir), others with the equivalent z (e.g., zalim). The l/z choice is lexical; this map defaults to z." + + note "Note 5. The letter ف is often used as a shorthand way of writing ڤ. When this is clearly the case, the letter ف should be romanized as p. This map encodes ف as p (the Malay value; the Arabic-word value f is lexical per note 2)." + + note "Note 6. On و (wau), see rules 6 and 8b." + + note "Note 7. On ي (yad), see rules 7 and 8b." + + note "Rule 1. Jawi orthography is far from standard, particularly in handwritten documents. Nevertheless, for the purposes of cataloging, it is essential to standardize the romanized form of every lexeme. Two widely accepted standards for writing Malay in the Latin script exist: the Indonesian and the Malaysian. In this table, the Indonesian standard, referred to as Ejaan Bahasa Indonesia yang Disempurnakan, has been employed." + + note "Rule 2. Arabic words (not Arabic loan words) appearing in a Malay text are analogous to French words and expressions in a Russian novel or Latin phrases in a Catholic theology text, and their distinctness should be preserved by transliterating them in accordance with the rules governing the romanization of the relevant language, Arabic or Malay. Malay words of Arabic origin whose orthography is the same as the Arabic might therefore be romanized differently at different points in the same text. Thus the word قدوس will be romanized kudus when it appears as a Malay word, but qudūs when it is used as an Arabic term or in an Arabic phrase. This map encodes the Malay reading." + + note "Rule 3. ا (alif), و (wau), and ي (yad) are used to support ء (hamzah); when so used these letters are not represented in romanization. See rule 8b." + + note "Rule 4. At the beginning of a word, alif represents an initial vowel or diphthong and is romanized accordingly as a, e, i, u, o (او), au (او), e (ايـ), or ai (ايـ). Following a consonant, alif represents the vowel romanized as a. This map renders bare alif as a (the rule-4 vocalic reading); the alif that merely supports a hamzah or carries no vowel value is the rule-3/rule-8 case." + + note "Rule 5. The optional alif gantung (for example, in the word tiang تيڠٰ), when used, does not change the romanized form of the word. This map renders the superscript alif as a." + + note "Rule 6. The letter و (wau) is used: (a) to represent the consonant romanized as w; (b) to represent the vowels and diphthong romanized as u, o, and au; and (c) to support ء (hamzah) (see rule 8b). Mechanically: word-initially and after a vowel it is the consonant w; word-finally and after a consonant it is the vowel u (the bare alif+wau spelling of the au diphthong renders as a+u); with fatha it is o." + + note "Rule 7. The letter ي (yad) is used: (a) to represent the consonant romanized as y; (b) to represent the vowels and diphthong romanized as i, e, and ai; and (c) to support ء (hamzah) (see rule 8b). Mechanically: word-initially and between vowels it is the consonant y; elsewhere it is the vowel i (the word-final yad after a vowel is the ai diphthong, rendered i); with fatha it is e; with kasra it is i." + + note "Rule 8. ء (hamzah): (a) In Arabic words, and most Arabic loans where it is found, hamzah is romanized according to the rules for Arabic (including use of the non-alphabetic mark ʼ (alif)). (b) Hamzah used to separate contiguous vowels, supported by ا, or و or ي, is not represented in romanization (for example, lain لاين, laut لاؤت, permintaan ڤرمنتأن). (c) Hamzah replacing initial alif in vowel-initial words to which the prefix ke- or se- has been attached is represented by the vowel value that it elided (keenam كئنم, seindah سئنده, seorang سئورڠ). (d) A hamzah used after the reduplicating numeral 2 in vowel-final roots followed by the suffixes -an or -i is not represented in romanization. (e) The occasional use of hamzah to represent a word-final glottal stop (for example, tidak تيداء) is romanized as k. This map renders: the high-hamza separator mark, alef-hamza أ and yeh-hamza ئ as silent; waw-hamza ؤ as u; word-final hamzah as k (rule 8e); other hamzah as ʼ (rule 8a). The rule-8c vowel value is lexical, so the keenam/seindah/seorang examples carry unwritten short vowels and are romanized here without them." + + note "Rule 9. Words doubled with the number 2 should be written out in full (for example, mata-mata مات٢). When the root word ends in a consonant such that an appended -an or -i suffix must reduplicate the final consonant, the doubled consonant is not represented in the romanization (for example: rumput-rumputan رمڤت٢ن). The reduplication numeral ٢ is a lexical instruction and is not expanded mechanically." + + note "Rule 10. In cases where the postpositive itu or prepositive yang are joined to the preceding or following word, they should be romanized as separate words. (Syntactic; not implemented mechanically.)" + + note "Rule 11. Alif maqsūrah, waṣlah, maddah, shaddah, and tanwīn are not commonly used in Jawi script except in Arabic words or phrases. If they do not appear as adornment on Malay words, they are not represented in the romanization. Ta marbutah, romanized as t, is not properly a Jawi script character either, but sometimes it may be found in Malay texts. The alphabet row assigns ه and ة the value h, which this map encodes; the rule-11 remark on t describes the Arabic-word treatment." + + note "The source document's text layer renders Jawi in Unicode presentation forms (joining shapes); these carry no letter-identity information in Jawi and are normalized to base codepoints before this map applies. Unwritten short vowels (the ĕ of the vowel table and the unwritten i/a of many lexemes) must be supplied lexically." + } +} + +tests { + # Alphabet rows (Malay values; asterisked Arabic values are lexical, note 2) + "ب" -> "b" + "ت" -> "t" + "ث" -> "s" + "ج" -> "j" + "چ" -> "c" + "ح" -> "h" + "خ" -> "kh" + "د" -> "d" + "ذ" -> "z" + "ر" -> "r" + "ز" -> "z" + "س" -> "s" + "ش" -> "sy" + "ص" -> "s" + "ض" -> "d" + "ط" -> "t" + "ظ" -> "z" # l/z is lexical (note 4) + "ع" -> "" + "غ" -> "gh" + "ڠ" -> "ng" + "ف" -> "p" # note 5 + "ق" -> "k" + "ڤ" -> "p" + "ك" -> "k" + "ك̇" -> "g" + "ک̇" -> "g" + "ل" -> "l" + "م" -> "m" + "ن" -> "n" + "ڽ" -> "ny" + "ه" -> "h" + "ة" -> "h" + "و" -> "w" + "ي" -> "y" + # Vowels and Diphthongs rows + "اَ" -> "a" + "وُ" -> "u" + "يِ" -> "i" + "يَ" -> "e" + "وَ" -> "o" + # Rule 2 example (Malay word reading) + "قودوس" -> "kudus" + # - the same word as an Arabic term is romanized qudūs (lexical, note 2) + # Rule 5 example (alif gantung) + "تيڠٰ" -> "tiang" + # Rule 8b examples + "لاين" -> "lain" + "لاؤت" -> "laut" + # - source: ڤرمنتأن, expected: permintaan (unwritten short vowels are + # lexical; mechanical: prmntn) + # Rule 8c examples (unwritten short vowels; mechanical without them) + # - source: كئنم, expected: keenam + # - source: سئنده, expected: seindah + # - source: سئورڠ, expected: seorang + # Rule 8e example (word-final glottal stop hamzah) + "تيداء" -> "tidak" + # Rule 9 examples (reduplication numeral ٢ is lexical) + # - source: مات٢, expected: mata-mata + # - source: رمڤت٢ن, expected: rumput-rumputan + # Bare alif as the vowel a (rule 4) + "سايا" -> "saya" + "باڤا" -> "bapa" + # Wau and yad context readings (rules 6-7) + "واڠ" -> "wang" + "کاوان" -> "kawan" + "سورات" -> "surat" + "دوا" -> "dua" + "بوکو" -> "buku" + "تاهو" -> "tahu" + "ياڠ" -> "yang" + "سيني" -> "sini" + "راماي" -> "ramai" +} + +stage main { + sequence { + # Marked vowels (Vowels and Diphthongs rows) + sub "وُ" "u" + sub "وَ" "o" + sub "يِ" "i" + sub "يَ" "e" + + # Rule 8 - hamzah + sub "ٴ" "" # the high-hamza separator mark (rule 8b) is not represented + sub "أ" "" # alef-hamza separator (rule 8b) + sub "ئ" "" # yeh-hamza (rule 8b/8c; the elided vowel value is lexical) + sub "ؤ" "u" # waw-hamza + sub { + from "ء" + to "k" + after boundary + } # rule 8e word-final glottal stop + sub "ء" "ʼ" # rule 8a Arabic reading + + # Rule 5 - alif gantung: the superscript alif marks the final a of the + # word, which romanizes before the nasal it sits over (tiang); swap the + # mark order before the letters convert + sub "ڠٰ" "aڠ" + sub "ٰ" "a" + + # Marks not represented (rule 11) and leftover vowel signs + sub "ْ" "" + sub "ّ" "" + sub "َ" "" + sub "ُ" "" + sub "ِ" "" + sub "ـ" "" + + # Final-form yad (alef maksura codepoint) joins the yad rules + sub "ى" "ي" + + # Letters of the alphabet (Malay values) + sub "ب" "b" + sub "ت" "t" + sub "ث" "s" + sub "ج" "j" + sub "چ" "c" + sub "ح" "h" + sub "خ" "kh" + sub "د" "d" + sub "ذ" "z" + sub "ر" "r" + sub "ز" "z" + sub "س" "s" + sub "ش" "sy" + sub "ص" "s" + sub "ض" "d" + sub "ط" "t" + sub "ظ" "z" + sub "ع" "" + sub "غ" "gh" + sub "ڠ" "ng" + sub "ف" "p" + sub "ق" "k" + sub "ڤ" "p" + sub "ك̇" "g" + sub "ک̇" "g" + sub "ك" "k" + sub "ک" "k" + sub "ل" "l" + sub "م" "m" + sub "ن" "n" + sub "ڽ" "ny" + sub "ه" "h" + sub "ة" "h" + + # Rule 4 - bare alif as the vowel a + sub "ا" "a" + + # Rule 7 - yad: word-initial and inter-vocalic y, else the vowel i + sub { + from boundary + "ي" + to "y" + } + sub { + from "ي" + to "y" + before any(["a", "e", "i", "o", "u"]) + after any(["a", "e", "i", "o", "u"]) + } + sub "ي" "i" + + # Rule 6 - wau: word-initial and post-vocalic w, word-final and + # post-consonantal u + sub { + from boundary + "و" + to "w" + } + sub { + from "و" + to "u" + after boundary + } + sub { + from "و" + to "w" + before any(["a", "e", "i", "o", "u"]) + } + sub "و" "u" + } + +} + +}