jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/760232 )
Change subject: [IMPR] Add 'lo', 'ml', 'pa', 'te' to NON_LATIN_DIGITS ......................................................................
[IMPR] Add 'lo', 'ml', 'pa', 'te' to NON_LATIN_DIGITS
- move NON_LATIN_DIGITS to userinterfaces/transliteration - add 'lo', 'ml', 'pa', 'te' digits to NON_LATIN_DIGITS - import NON_LATIN_DIGITS in textlib - add km digits to transliteration _trans dict - update transliteration _trans dict from NON_LATIN_DIGITS - fix for 'E̩', 'e̩', 'e', 'I', 'i', 'J' transliteration - move table validating to tests - additional _trans table tests
Change-Id: I4b3fee27b3c87aff74dd83ee67f30a36b374dce8 --- M pywikibot/textlib.py M pywikibot/userinterfaces/transliteration.py M tests/ui_tests.py 3 files changed, 238 insertions(+), 228 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py index fedb60e..48ecf41 100644 --- a/pywikibot/textlib.py +++ b/pywikibot/textlib.py @@ -25,6 +25,7 @@ from pywikibot.exceptions import InvalidTitleError, SiteDefinitionError from pywikibot.family import Family from pywikibot.tools import deprecated +from pywikibot.userinterfaces.transliteration import NON_LATIN_DIGITS
try: @@ -114,17 +115,6 @@ ]] """
-NON_LATIN_DIGITS = { - 'ckb': '٠١٢٣٤٥٦٧٨٩', - 'fa': '۰۱۲۳۴۵۶۷۸۹', - 'hi': '०१२३४५६७८९', - 'km': '០១២៣៤៥៦៧៨៩', - 'kn': '೦೧೨೩೪೫೬೭೮೯', - 'bn': '০১২৩৪৫৬৭৮৯', - 'gu': '૦૧૨૩૪૫૬૭૮૯', - 'or': '୦୧୨୩୪୫୬୭୮୯', -} - # Used in TimeStripper. When a timestamp-like line has longer gaps # than this between year, month, etc in it, then the line will not be # considered to contain a timestamp. diff --git a/pywikibot/userinterfaces/transliteration.py b/pywikibot/userinterfaces/transliteration.py index 387acc8..9e63800 100644 --- a/pywikibot/userinterfaces/transliteration.py +++ b/pywikibot/userinterfaces/transliteration.py @@ -4,6 +4,21 @@ # # Distributed under the terms of the MIT license. # +NON_LATIN_DIGITS = { + 'bn': '০১২৩৪৫৬৭৮৯', + 'ckb': '٠١٢٣٤٥٦٧٨٩', + 'fa': '۰۱۲۳۴۵۶۷۸۹', + 'gu': '૦૧૨૩૪૫૬૭૮૯', + 'hi': '०१२३४५६७८९', + 'km': '០១២៣៤៥៦៧៨៩', + 'kn': '೦೧೨೩೪೫೬೭೮೯', + 'lo': '໐໑໒໓໔໕໖໗໘໙', + 'ml': '൦൧൨൩൪൫൬൭൮൯', + 'or': '୦୧୨୩୪୫୬୭୮୯', + 'pa': '੦੧੨੩੪੫੬੭੮੯', + 'te': '౦౧౨౩౪౫౬౭౮౯', +} + _trans = { 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ầ': 'A', 'Ấ': 'A', 'Ẫ': 'A', 'Ẩ': 'A', 'Ậ': 'A', 'Ã': 'A', 'Ā': 'A', 'Ă': 'A', 'Ằ': 'A', 'Ắ': 'A', 'Ẵ': 'A', @@ -22,69 +37,69 @@ 'ḋ': 'd', 'ḍ': 'd', 'ḏ': 'd', 'ḑ': 'd', 'ḓ': 'd', 'đ': 'd', 'ɖ': 'd', 'ɗ': 'd', 'ƌ': 'd', 'È': 'E', 'Ȅ': 'E', 'É': 'E', 'Ê': 'E', 'Ḛ': 'E', 'Ë': 'E', 'Ē': 'E', 'Ḕ': 'E', 'Ḗ': 'E', 'Ĕ': 'E', 'Ė': 'E', 'Ẹ': 'E', - 'E': 'E', '̩': 'e', 'Ȇ': 'E', 'Ȩ': 'E', 'Ḝ': 'E', 'Ę': 'E', 'Ě': 'E', - 'Ẽ': 'E', 'Ḙ': 'E', 'Ẻ': 'E', 'Ề': 'Ê', 'Ế': 'Ê', 'Ễ': 'Ê', 'Ệ': 'Ê', - 'Ể': 'Ê', 'è': 'e', 'ȅ': 'e', 'é': 'e', 'ê': 'e', 'ḛ': 'e', 'ë': 'e', - 'ē': 'e', 'ḕ': 'e', 'ḗ': 'e', 'ĕ': 'e', 'ė': 'e', 'ẹ': 'e', 'e': 'e', - 'ȇ': 'e', 'ȩ': 'e', 'ḝ': 'e', 'ę': 'e', 'ě': 'e', 'ẽ': 'e', 'ḙ': 'e', - 'ẻ': 'e', 'ề': 'ê', 'ế': 'ê', 'ễ': 'ê', 'ệ': 'ê', 'ể': 'ê', 'Ḟ': 'F', - 'Ƒ': 'F', 'ḟ': 'f', 'ƒ': 'f', 'Ǵ': 'G', 'Ḡ': 'G', 'Ğ': 'G', 'Ġ': 'G', - 'Ģ': 'G', 'Ǧ': 'G', 'Ǥ': 'G', 'Ɠ': 'G', 'ǵ': 'g', 'ḡ': 'g', 'ğ': 'g', - 'ġ': 'g', 'ģ': 'g', 'ǧ': 'g', 'ǥ': 'g', 'ɠ': 'g', 'Ĝ': 'Gx', 'ĝ': 'gx', - 'Ḣ': 'H', 'Ḥ': 'H', 'Ḧ': 'H', 'Ȟ': 'H', 'Ḩ': 'H', 'Ḫ': 'H', '̱': 'h', - 'Ħ': 'H', 'ḣ': 'h', 'ḥ': 'h', 'ḧ': 'h', 'ȟ': 'h', 'ḩ': 'h', 'ḫ': 'h', - 'ẖ': 'h', 'ħ': 'h', 'I': 'I', 'Ì': 'I', 'Ȉ': 'I', 'Í': 'I', 'Î': 'I', - 'Ĩ': 'I', 'Ḭ': 'I', 'Ï': 'I', 'Ḯ': 'I', 'Ī': 'I', 'Ĭ': 'I', 'Ȋ': 'I', - 'Į': 'I', 'Ǐ': 'I', 'İ': 'I', 'Ị': 'I', 'Ỉ': 'I', 'Ɨ': 'I', 'ı': 'i', - 'ì': 'i', 'ȉ': 'i', 'í': 'i', 'î': 'i', 'ĩ': 'i', 'ḭ': 'i', 'ï': 'i', - 'ḯ': 'i', 'ī': 'i', 'ĭ': 'i', 'ȋ': 'i', 'į': 'i', 'ǐ': 'i', 'i': 'i', - 'ị': 'i', 'ỉ': 'i', 'ɨ': 'i', 'Ĵ': 'J', 'J': 'J', 'ɟ': 'j', 'ĵ': 'j', - '̌': 'j', 'ǰ': 'j', 'Ḱ': 'K', 'Ǩ': 'K', 'Ķ': 'K', 'Ḳ': 'K', 'Ḵ': 'K', - 'Ƙ': 'K', 'ḱ': 'k', 'ǩ': 'k', 'ķ': 'k', 'ḳ': 'k', 'ḵ': 'k', 'ƙ': 'k', - 'Ĺ': 'L', 'Ļ': 'L', 'Ľ': 'L', 'Ḷ': 'L', 'Ḹ': 'L', 'Ḻ': 'L', 'Ḽ': 'L', - 'Ƚ': 'L', 'Ł': 'L', 'ĺ': 'l', 'ļ': 'l', 'ľ': 'l', 'ḷ': 'l', 'ḹ': 'l', - 'ḻ': 'l', 'ḽ': 'l', 'ƚ': 'l', 'ł': 'l', 'ɫ': 'l', 'Ḿ': 'M', 'Ṁ': 'M', - 'Ṃ': 'M', 'ḿ': 'm', 'ṁ': 'm', 'ṃ': 'm', 'ɱ': 'm', 'Ǹ': 'N', 'Ń': 'N', - 'Ñ': 'N', 'Ņ': 'N', 'Ň': 'N', 'Ṅ': 'N', 'Ṇ': 'N', 'Ṉ': 'N', 'Ṋ': 'N', - 'Ɲ': 'N', 'ɲ': 'n', 'Ƞ': 'N', 'ǹ': 'n', 'ń': 'n', 'ñ': 'n', 'ņ': 'n', - 'ň': 'n', 'ṅ': 'n', 'ṇ': 'n', 'ṉ': 'n', 'ṋ': 'n', 'ƞ': 'n', 'Ò': 'O', - 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ṍ': 'O', 'Ṏ': 'O', 'Ȭ': 'O', 'Ö': 'O', - 'Ō': 'O', 'Ṑ': 'O', 'Ṓ': 'O', 'Ŏ': 'O', 'Ǒ': 'O', 'Ȯ': 'O', 'Ȱ': 'O', - 'Ọ': 'O', 'Ǫ': 'O', 'Ǭ': 'O', 'Ơ': 'O', 'Ờ': 'O', 'Ớ': 'O', 'Ỡ': 'O', - 'Ợ': 'O', 'Ở': 'O', 'Ỏ': 'O', 'Ɵ': 'O', 'Ø': 'O', 'Ǿ': 'O', 'ò': 'o', - 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ṍ': 'o', 'ṏ': 'o', 'ȭ': 'o', 'ö': 'o', - 'ō': 'o', 'ṑ': 'o', 'ṓ': 'o', 'ŏ': 'o', 'ǒ': 'o', 'ȯ': 'o', 'ȱ': 'o', - 'ọ': 'o', 'ǫ': 'o', 'ǭ': 'o', 'ơ': 'o', 'ờ': 'o', 'ớ': 'o', 'ỡ': 'o', - 'ợ': 'o', 'ở': 'o', 'ỏ': 'o', 'ɵ': 'o', 'ø': 'o', 'ǿ': 'o', 'Ȍ': 'Ö', - 'Ő': 'Ö', 'Ȫ': 'Ö', 'ȍ': 'ö', 'ő': 'ö', 'ȫ': 'ö', 'Ồ': 'Ô', 'Ố': 'Ô', - 'Ỗ': 'Ô', 'Ộ': 'Ô', 'Ổ': 'Ô', 'Ȏ': 'Ô', 'ồ': 'ô', 'ố': 'ô', 'ỗ': 'ô', - 'ộ': 'ô', 'ổ': 'ô', 'ȏ': 'ô', 'Ṕ': 'P', 'Ṗ': 'P', 'Ƥ': 'P', 'ṕ': 'p', - 'ṗ': 'p', 'ƥ': 'p', 'ᵽ': 'q', 'Ȑ': 'R', 'Ŕ': 'R', 'Ŗ': 'R', 'Ř': 'R', - 'Ȓ': 'R', 'Ṙ': 'R', 'Ṛ': 'R', 'Ṝ': 'R', 'Ṟ': 'R', 'ȑ': 'r', 'ŕ': 'r', - 'ŗ': 'r', 'ř': 'r', 'ȓ': 'r', 'ṙ': 'r', 'ṛ': 'r', 'ṝ': 'r', 'ṟ': 'r', - 'ɽ': 'r', 'Ś': 'S', 'Ṥ': 'S', 'Ş': 'S', 'Ș': 'S', 'Š': 'S', 'Ṧ': 'S', - 'Ṡ': 'S', 'Ṣ': 'S', 'Ṩ': 'S', 'ś': 's', 'ṥ': 's', 'ş': 's', 'ș': 's', - 'š': 's', 'ṧ': 's', 'ṡ': 's', 'ṣ': 's', 'ṩ': 's', 'ȿ': 's', 'Ŝ': 'Sx', - 'ŝ': 'sx', 'Ţ': 'T', 'Ț': 'T', 'Ť': 'T', 'Ṫ': 'T', 'Ṭ': 'T', 'Ṯ': 'T', - 'Ṱ': 'T', 'Ŧ': 'T', 'Ƭ': 'T', 'Ʈ': 'T', 'ţ': 't', 'ț': 't', 'ť': 't', - 'ṫ': 't', 'ṭ': 't', 'ṯ': 't', 'ṱ': 't', 'ŧ': 't', 'Ⱦ': 't', 'ƭ': 't', - 'ʈ': 't', 'Ù': 'U', 'Ú': 'U', 'Ũ': 'U', 'Ṹ': 'U', 'Ṵ': 'U', 'Ü': 'U', - 'Ṳ': 'U', 'Ū': 'U', 'Ṻ': 'U', 'Ŭ': 'U', 'Ụ': 'U', 'Ů': 'U', 'Ų': 'U', - 'Ǔ': 'U', 'Ṷ': 'U', 'Ủ': 'U', 'Ư': 'U', 'Ữ': 'U', 'Ự': 'U', 'Ử': 'U', - 'ù': 'u', 'ú': 'u', 'ũ': 'u', 'ṹ': 'u', 'ṵ': 'u', 'ü': 'u', 'ṳ': 'u', - 'ū': 'u', 'ṻ': 'u', 'ŭ': 'u', 'ụ': 'u', 'ů': 'u', 'ų': 'u', 'ǔ': 'u', - 'ṷ': 'u', 'ủ': 'u', 'ư': 'u', 'ữ': 'u', 'ự': 'u', 'ử': 'u', 'Ȕ': 'Ü', - 'Ű': 'Ü', 'Ǜ': 'Ü', 'Ǘ': 'Ü', 'Ǖ': 'Ü', 'Ǚ': 'Ü', 'ȕ': 'ü', 'ű': 'ü', - 'ǜ': 'ü', 'ǘ': 'ü', 'ǖ': 'ü', 'ǚ': 'ü', 'Û': 'Ux', 'û': 'ux', 'Ȗ': 'Û', - 'ȗ': 'û', 'Ừ': 'Ù', 'ừ': 'ù', 'Ứ': 'Ú', 'ứ': 'ú', 'Ṽ': 'V', 'Ṿ': 'V', - 'ṽ': 'v', 'ṿ': 'v', 'Ẁ': 'W', 'Ẃ': 'W', 'Ŵ': 'W', 'Ẅ': 'W', 'Ẇ': 'W', - 'Ẉ': 'W', 'ẁ': 'w', 'ẃ': 'w', 'ŵ': 'w', 'ẅ': 'w', 'ẇ': 'w', 'ẉ': 'w', - 'Ẋ': 'X', 'Ẍ': 'X', 'ẋ': 'x', 'ẍ': 'x', 'Ỳ': 'Y', 'Ý': 'Y', 'Ŷ': 'Y', - 'Ÿ': 'Y', 'Ỹ': 'Y', 'Ȳ': 'Y', 'Ẏ': 'Y', 'Ỵ': 'Y', 'Ỷ': 'Y', 'Ƴ': 'Y', - 'ỳ': 'y', 'ý': 'y', 'ŷ': 'y', 'ÿ': 'y', 'ỹ': 'y', 'ȳ': 'y', 'ẏ': 'y', - 'ỵ': 'y', 'ỷ': 'y', 'ƴ': 'y', 'Ź': 'Z', 'Ẑ': 'Z', 'Ż': 'Z', 'Ẓ': 'Z', - 'Ž': 'Z', 'Ẕ': 'Z', 'Ƶ': 'Z', 'Ȥ': 'Z', 'ź': 'z', 'ẑ': 'z', 'ż': 'z', - 'ẓ': 'z', 'ž': 'z', 'ẕ': 'z', 'ƶ': 'z', 'ȥ': 'z', 'ɀ': 'zv', + 'E̩': 'E', 'Ȇ': 'E', 'Ȩ': 'E', 'Ḝ': 'E', 'Ę': 'E', 'Ě': 'E', 'Ẽ': 'E', + 'Ḙ': 'E', 'Ẻ': 'E', 'Ề': 'Ê', 'Ế': 'Ê', 'Ễ': 'Ê', 'Ệ': 'Ê', 'Ể': 'Ê', + 'è': 'e', 'ȅ': 'e', 'é': 'e', 'ê': 'e', 'ḛ': 'e', 'ë': 'e', 'ē': 'e', + 'ḕ': 'e', 'ḗ': 'e', 'ĕ': 'e', 'ė': 'e', 'ẹ': 'e', 'e̩': 'e', 'ȇ': 'e', + 'ȩ': 'e', 'ḝ': 'e', 'ę': 'e', 'ě': 'e', 'ẽ': 'e', 'ḙ': 'e', 'ẻ': 'e', + 'ề': 'ê', 'ế': 'ê', 'ễ': 'ê', 'ệ': 'ê', 'ể': 'ê', 'Ḟ': 'F', 'Ƒ': 'F', + 'ḟ': 'f', 'ƒ': 'f', 'Ǵ': 'G', 'Ḡ': 'G', 'Ğ': 'G', 'Ġ': 'G', 'Ģ': 'G', + 'Ǧ': 'G', 'Ǥ': 'G', 'Ɠ': 'G', 'ǵ': 'g', 'ḡ': 'g', 'ğ': 'g', 'ġ': 'g', + 'ģ': 'g', 'ǧ': 'g', 'ǥ': 'g', 'ɠ': 'g', 'Ĝ': 'Gx', 'ĝ': 'gx', 'Ḣ': 'H', + 'Ḥ': 'H', 'Ḧ': 'H', 'Ȟ': 'H', 'Ḩ': 'H', 'Ḫ': 'H', 'H̱': 'H', 'Ħ': 'H', + 'ḣ': 'h', 'ḥ': 'h', 'ḧ': 'h', 'ȟ': 'h', 'ḩ': 'h', 'ḫ': 'h', 'ẖ': 'h', + 'ħ': 'h', 'Ì': 'I', 'Ȉ': 'I', 'Í': 'I', 'Î': 'I', 'Ĩ': 'I', 'Ḭ': 'I', + 'Ï': 'I', 'Ḯ': 'I', 'Ī': 'I', 'Ĭ': 'I', 'Ȋ': 'I', 'Į': 'I', 'Ǐ': 'I', + 'İ': 'I', 'Ị': 'I', 'Ỉ': 'I', 'Ɨ': 'I', 'ı': 'i', 'ì': 'i', 'ȉ': 'i', + 'í': 'i', 'î': 'i', 'ĩ': 'i', 'ḭ': 'i', 'ï': 'i', 'ḯ': 'i', 'ī': 'i', + 'ĭ': 'i', 'ȋ': 'i', 'į': 'i', 'ǐ': 'i', 'ị': 'i', 'ỉ': 'i', 'ɨ': 'i', + 'Ĵ': 'J', 'ɟ': 'j', 'ĵ': 'j', 'ǰ': 'j', 'Ḱ': 'K', 'Ǩ': 'K', 'Ķ': 'K', + 'Ḳ': 'K', 'Ḵ': 'K', 'Ƙ': 'K', 'ḱ': 'k', 'ǩ': 'k', 'ķ': 'k', 'ḳ': 'k', + 'ḵ': 'k', 'ƙ': 'k', 'Ĺ': 'L', 'Ļ': 'L', 'Ľ': 'L', 'Ḷ': 'L', 'Ḹ': 'L', + 'Ḻ': 'L', 'Ḽ': 'L', 'Ƚ': 'L', 'Ł': 'L', 'ĺ': 'l', 'ļ': 'l', 'ľ': 'l', + 'ḷ': 'l', 'ḹ': 'l', 'ḻ': 'l', 'ḽ': 'l', 'ƚ': 'l', 'ł': 'l', 'ɫ': 'l', + 'Ḿ': 'M', 'Ṁ': 'M', 'Ṃ': 'M', 'ḿ': 'm', 'ṁ': 'm', 'ṃ': 'm', 'ɱ': 'm', + 'Ǹ': 'N', 'Ń': 'N', 'Ñ': 'N', 'Ņ': 'N', 'Ň': 'N', 'Ṅ': 'N', 'Ṇ': 'N', + 'Ṉ': 'N', 'Ṋ': 'N', 'Ɲ': 'N', 'ɲ': 'n', 'Ƞ': 'N', 'ǹ': 'n', 'ń': 'n', + 'ñ': 'n', 'ņ': 'n', 'ň': 'n', 'ṅ': 'n', 'ṇ': 'n', 'ṉ': 'n', 'ṋ': 'n', + 'ƞ': 'n', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ṍ': 'O', 'Ṏ': 'O', + 'Ȭ': 'O', 'Ö': 'O', 'Ō': 'O', 'Ṑ': 'O', 'Ṓ': 'O', 'Ŏ': 'O', 'Ǒ': 'O', + 'Ȯ': 'O', 'Ȱ': 'O', 'Ọ': 'O', 'Ǫ': 'O', 'Ǭ': 'O', 'Ơ': 'O', 'Ờ': 'O', + 'Ớ': 'O', 'Ỡ': 'O', 'Ợ': 'O', 'Ở': 'O', 'Ỏ': 'O', 'Ɵ': 'O', 'Ø': 'O', + 'Ǿ': 'O', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ṍ': 'o', 'ṏ': 'o', + 'ȭ': 'o', 'ö': 'o', 'ō': 'o', 'ṑ': 'o', 'ṓ': 'o', 'ŏ': 'o', 'ǒ': 'o', + 'ȯ': 'o', 'ȱ': 'o', 'ọ': 'o', 'ǫ': 'o', 'ǭ': 'o', 'ơ': 'o', 'ờ': 'o', + 'ớ': 'o', 'ỡ': 'o', 'ợ': 'o', 'ở': 'o', 'ỏ': 'o', 'ɵ': 'o', 'ø': 'o', + 'ǿ': 'o', 'Ȍ': 'Ö', 'Ő': 'Ö', 'Ȫ': 'Ö', 'ȍ': 'ö', 'ő': 'ö', 'ȫ': 'ö', + 'Ồ': 'Ô', 'Ố': 'Ô', 'Ỗ': 'Ô', 'Ộ': 'Ô', 'Ổ': 'Ô', 'Ȏ': 'Ô', 'ồ': 'ô', + 'ố': 'ô', 'ỗ': 'ô', 'ộ': 'ô', 'ổ': 'ô', 'ȏ': 'ô', 'Ṕ': 'P', 'Ṗ': 'P', + 'Ƥ': 'P', 'ṕ': 'p', 'ṗ': 'p', 'ƥ': 'p', 'ᵽ': 'q', 'Ȑ': 'R', 'Ŕ': 'R', + 'Ŗ': 'R', 'Ř': 'R', 'Ȓ': 'R', 'Ṙ': 'R', 'Ṛ': 'R', 'Ṝ': 'R', 'Ṟ': 'R', + 'ȑ': 'r', 'ŕ': 'r', 'ŗ': 'r', 'ř': 'r', 'ȓ': 'r', 'ṙ': 'r', 'ṛ': 'r', + 'ṝ': 'r', 'ṟ': 'r', 'ɽ': 'r', 'Ś': 'S', 'Ṥ': 'S', 'Ş': 'S', 'Ș': 'S', + 'Š': 'S', 'Ṧ': 'S', 'Ṡ': 'S', 'Ṣ': 'S', 'Ṩ': 'S', 'ś': 's', 'ṥ': 's', + 'ş': 's', 'ș': 's', 'š': 's', 'ṧ': 's', 'ṡ': 's', 'ṣ': 's', 'ṩ': 's', + 'ȿ': 's', 'Ŝ': 'Sx', 'ŝ': 'sx', 'Ţ': 'T', 'Ț': 'T', 'Ť': 'T', 'Ṫ': 'T', + 'Ṭ': 'T', 'Ṯ': 'T', 'Ṱ': 'T', 'Ŧ': 'T', 'Ƭ': 'T', 'Ʈ': 'T', 'ţ': 't', + 'ț': 't', 'ť': 't', 'ṫ': 't', 'ṭ': 't', 'ṯ': 't', 'ṱ': 't', 'ŧ': 't', + 'Ⱦ': 't', 'ƭ': 't', 'ʈ': 't', 'Ù': 'U', 'Ú': 'U', 'Ũ': 'U', 'Ṹ': 'U', + 'Ṵ': 'U', 'Ü': 'U', 'Ṳ': 'U', 'Ū': 'U', 'Ṻ': 'U', 'Ŭ': 'U', 'Ụ': 'U', + 'Ů': 'U', 'Ų': 'U', 'Ǔ': 'U', 'Ṷ': 'U', 'Ủ': 'U', 'Ư': 'U', 'Ữ': 'U', + 'Ự': 'U', 'Ử': 'U', 'ù': 'u', 'ú': 'u', 'ũ': 'u', 'ṹ': 'u', 'ṵ': 'u', + 'ü': 'u', 'ṳ': 'u', 'ū': 'u', 'ṻ': 'u', 'ŭ': 'u', 'ụ': 'u', 'ů': 'u', + 'ų': 'u', 'ǔ': 'u', 'ṷ': 'u', 'ủ': 'u', 'ư': 'u', 'ữ': 'u', 'ự': 'u', + 'ử': 'u', 'Ȕ': 'Ü', 'Ű': 'Ü', 'Ǜ': 'Ü', 'Ǘ': 'Ü', 'Ǖ': 'Ü', 'Ǚ': 'Ü', + 'ȕ': 'ü', 'ű': 'ü', 'ǜ': 'ü', 'ǘ': 'ü', 'ǖ': 'ü', 'ǚ': 'ü', 'Û': 'Ux', + 'û': 'ux', 'Ȗ': 'Û', 'ȗ': 'û', 'Ừ': 'Ù', 'ừ': 'ù', 'Ứ': 'Ú', 'ứ': 'ú', + 'Ṽ': 'V', 'Ṿ': 'V', 'ṽ': 'v', 'ṿ': 'v', 'Ẁ': 'W', 'Ẃ': 'W', 'Ŵ': 'W', + 'Ẅ': 'W', 'Ẇ': 'W', 'Ẉ': 'W', 'ẁ': 'w', 'ẃ': 'w', 'ŵ': 'w', 'ẅ': 'w', + 'ẇ': 'w', 'ẉ': 'w', 'Ẋ': 'X', 'Ẍ': 'X', 'ẋ': 'x', 'ẍ': 'x', 'Ỳ': 'Y', + 'Ý': 'Y', 'Ŷ': 'Y', 'Ÿ': 'Y', 'Ỹ': 'Y', 'Ȳ': 'Y', 'Ẏ': 'Y', 'Ỵ': 'Y', + 'Ỷ': 'Y', 'Ƴ': 'Y', 'ỳ': 'y', 'ý': 'y', 'ŷ': 'y', 'ÿ': 'y', 'ỹ': 'y', + 'ȳ': 'y', 'ẏ': 'y', 'ỵ': 'y', 'ỷ': 'y', 'ƴ': 'y', 'Ź': 'Z', 'Ẑ': 'Z', + 'Ż': 'Z', 'Ẓ': 'Z', 'Ž': 'Z', 'Ẕ': 'Z', 'Ƶ': 'Z', 'Ȥ': 'Z', 'ź': 'z', + 'ẑ': 'z', 'ż': 'z', 'ẓ': 'z', 'ž': 'z', 'ẕ': 'z', 'ƶ': 'z', 'ȥ': 'z', + 'ɀ': 'zv', # Latin: extended Latin alphabet 'ɑ': 'a', 'Æ': 'AE', 'Ǽ': 'AE', 'Ǣ': 'AE', 'æ': 'ae', 'ǽ': 'ae', 'ǣ': 'ae', 'Ǝ': 'E', 'Ə': 'E', 'Ɛ': 'E', 'ǝ': 'e', 'ə': 'e', 'ɛ': 'e', 'Ɣ': 'G', @@ -119,24 +134,23 @@ 'Ґ': 'G', 'Ҝ': 'G', 'ґ': 'g', 'ҝ': 'g', 'Ђ': 'Dj', 'ђ': 'dj', 'Љ': 'Lj', 'љ': 'lj', 'Њ': 'Nj', 'њ': 'nj', 'Ћ': 'Cj', 'ћ': 'cj', 'Җ': 'Zhj', 'Ѓ': 'Gj', 'ѓ': 'gj', 'Ќ': 'Kj', 'ќ': 'kj', 'Ӣ': 'Ii', 'ӣ': 'ii', 'Ҳ': 'H', - 'ҳ': 'h', 'Ҷ': 'Dzh', 'Ө': 'Ô', 'Ӫ': 'Ô', 'ө': 'ô', 'ӫ': 'ô', - 'Һ': 'H', 'һ': 'h', 'Ә': 'AE', 'Ӕ': 'AE', 'ә': 'ae', - 'Ӛ': 'Ë', 'Ӭ': 'Ë', 'ӛ': 'ë', 'ӭ': 'ë', 'җ': 'zhj', 'Ұ': 'U', 'ў': 'ù', - 'Ў': 'Ù', 'ѝ': 'ì', 'Ѝ': 'Ì', 'Ӑ': 'A', 'Ӓ': 'Ä', 'Ҽ': 'Ts', - 'Ҿ': 'Ts', 'ҽ': 'ts', 'ҿ': 'ts', 'Ҙ': 'Dh', 'ҙ': 'dh', 'Ӏ': '', 'ӏ': '', - 'Ӆ': 'L', 'ӆ': 'l', 'Ӎ': 'M', 'ӎ': 'm', 'Ӧ': 'Ö', 'ӧ': 'ö', 'Ҩ': 'u', - 'ҩ': 'u', 'Ҧ': 'Ph', 'ҧ': 'ph', 'Ҏ': 'R', 'ҏ': 'r', 'Ҫ': 'Th', 'ҫ': 'th', - 'Ҭ': 'T', 'ҭ': 't', 'Ӯ': 'Û', 'ӯ': 'û', 'Ӹ': 'U', 'ұ': 'u', 'ӹ': 'u', - 'Ҵ': 'Tts', 'ҵ': 'tts', 'Ӵ': 'Ch', 'ӵ': 'ch', + 'ҳ': 'h', 'Ҷ': 'Dzh', 'Ө': 'Ô', 'Ӫ': 'Ô', 'ө': 'ô', 'ӫ': 'ô', 'Һ': 'H', + 'һ': 'h', 'Ә': 'AE', 'Ӕ': 'AE', 'ә': 'ae', 'Ӛ': 'Ë', 'Ӭ': 'Ë', 'ӛ': 'ë', + 'ӭ': 'ë', 'җ': 'zhj', 'Ұ': 'U', 'ў': 'ù', 'Ў': 'Ù', 'ѝ': 'ì', 'Ѝ': 'Ì', + 'Ӑ': 'A', 'Ӓ': 'Ä', 'Ҽ': 'Ts', 'Ҿ': 'Ts', 'ҽ': 'ts', 'ҿ': 'ts', 'Ҙ': 'Dh', + 'ҙ': 'dh', 'Ӏ': '', 'ӏ': '', 'Ӆ': 'L', 'ӆ': 'l', 'Ӎ': 'M', 'ӎ': 'm', + 'Ӧ': 'Ö', 'ӧ': 'ö', 'Ҩ': 'u', 'ҩ': 'u', 'Ҧ': 'Ph', 'ҧ': 'ph', 'Ҏ': 'R', + 'ҏ': 'r', 'Ҫ': 'Th', 'ҫ': 'th', 'Ҭ': 'T', 'ҭ': 't', 'Ӯ': 'Û', 'ӯ': 'û', + 'Ӹ': 'U', 'ұ': 'u', 'ӹ': 'u', 'Ҵ': 'Tts', 'ҵ': 'tts', 'Ӵ': 'Ch', 'ӵ': 'ch', 'Ј': 'J', 'Ӥ': 'J', 'Ҋ': 'J', 'ј': 'j', 'ӥ': 'j', 'ҋ': 'j', 'Џ': 'Dzh', - 'Ӂ': 'Dzh', 'Ӝ': 'Dzh', 'џ': 'dzh', 'ӂ': 'dzh', 'ӝ': 'dzh', - 'ҷ': 'dzh', 'Ѕ': 'Dz', 'Ӟ': 'Dz', 'Ӡ': 'Dz', 'Ӌ': 'Dz', 'Ҹ': 'Dz', - 'ѕ': 'dz', 'ӟ': 'dz', 'ӡ': 'dz', 'ӌ': 'dz', 'ҹ': 'dz', 'Ғ': 'G', - 'Ӷ': 'G', 'Ҕ': 'G', 'ғ': 'g', 'ӷ': 'g', 'ҕ': 'g', 'Қ': 'Q', 'Ҟ': 'Q', - 'Ҡ': 'Q', 'Ӄ': 'Q', 'қ': 'q', 'ҟ': 'q', 'ҡ': 'q', 'ӄ': 'q', 'Ң': 'Ng', - 'Ҥ': 'Ng', 'Ӊ': 'Ng', 'Ӈ': 'Ng', 'ң': 'ng', 'ҥ': 'ng', 'ӊ': 'ng', - 'ӈ': 'ng', 'Ӗ': 'E', 'Ҍ': 'E', 'ӗ': 'e', 'ҍ': 'e', - 'Ӳ': 'Ü', 'Ӱ': 'Ü', 'Ү': 'Ü', 'ӳ': 'ü', 'ӱ': 'ü', 'ү': 'ü', + 'Ӂ': 'Dzh', 'Ӝ': 'Dzh', 'џ': 'dzh', 'ӂ': 'dzh', 'ӝ': 'dzh', 'ҷ': 'dzh', + 'Ѕ': 'Dz', 'Ӟ': 'Dz', 'Ӡ': 'Dz', 'Ӌ': 'Dz', 'Ҹ': 'Dz', 'ѕ': 'dz', + 'ӟ': 'dz', 'ӡ': 'dz', 'ӌ': 'dz', 'ҹ': 'dz', 'Ғ': 'G', 'Ӷ': 'G', 'Ҕ': 'G', + 'ғ': 'g', 'ӷ': 'g', 'ҕ': 'g', 'Қ': 'Q', 'Ҟ': 'Q', 'Ҡ': 'Q', 'Ӄ': 'Q', + 'қ': 'q', 'ҟ': 'q', 'ҡ': 'q', 'ӄ': 'q', 'Ң': 'Ng', 'Ҥ': 'Ng', 'Ӊ': 'Ng', + 'Ӈ': 'Ng', 'ң': 'ng', 'ҥ': 'ng', 'ӊ': 'ng', 'ӈ': 'ng', 'Ӗ': 'E', 'Ҍ': 'E', + 'ӗ': 'e', 'ҍ': 'e', 'Ӳ': 'Ü', 'Ӱ': 'Ü', 'Ү': 'Ü', 'ӳ': 'ü', 'ӱ': 'ü', + 'ү': 'ü', # Archaic Cyrillic letters 'Ѹ': 'Ou', 'ѹ': 'ou', 'Ѡ': 'O', 'Ѻ': 'O', 'ѡ': 'o', 'ѻ': 'o', 'Ѿ': 'Ot', 'ѿ': 'ot', 'Ѣ': 'E', 'ѣ': 'e', 'Ѥ': 'Ei', 'Ѧ': 'Ei', 'ѥ': 'ei', 'ѧ': 'ei', @@ -168,15 +182,11 @@ 'ﻬ': 'h', 'ﻫ': 'h', 'و': 'w', 'ﻭ': 'w', 'ﻮ': 'w', 'ی': 'y', 'ي': 'y', 'ﻱ': 'y', 'ﻲ': 'y', 'ﻴ': 'y', 'ﻳ': 'y', # Arabic - additional letters, modified letters and ligatures - 'ﺀ': "'", 'آ': "'a", 'ﺁ': "'a", 'ﺂ': "'a", 'ة': 'th', 'ﺓ': 'th', - 'ﺔ': 'th', 'ى': 'á', 'ﻯ': 'á', 'ﻰ': 'á', 'ﯼ': 'y', 'ﯽ': 'y', - 'ﯿ': 'y', 'ﯾ': 'y', 'ﻻ': 'la', 'ﻼ': 'la', 'ﷲ': 'llah', - 'إ': "a'", 'أ': "a'", 'ؤ': "w'", 'ئ': "y'", + 'ﺀ': "'", 'آ': "'a", 'ﺁ': "'a", 'ﺂ': "'a", 'ة': 'th', 'ﺓ': 'th', 'ﺔ': 'th', + 'ى': 'á', 'ﻯ': 'á', 'ﻰ': 'á', 'ﯼ': 'y', 'ﯽ': 'y', 'ﯿ': 'y', 'ﯾ': 'y', + 'ﻻ': 'la', 'ﻼ': 'la', 'ﷲ': 'llah', 'إ': "a'", 'أ': "a'", 'ؤ': "w'", + 'ئ': "y'", '◌': 'iy', # indicates absence of vowels - # Arab numerals - '٠': '0', '۰': '0', '١': '1', '۱': '1', '٢': '2', '۲': '2', '٣': '3', - '۳': '3', '٤': '4', '۴': '4', '٥': '5', '۵': '5', '٦': '6', '۶': '6', - '٧': '7', '۷': '7', '٨': '8', '۸': '8', '٩': '9', '۹': '9', # Perso-Arabic 'پ': 'p', 'ﭙ': 'p', 'چ': 'ch', 'ژ': 'zh', 'گ': 'g', 'ﮔ': 'g', 'ﮕ': 'g', 'ﮓ': 'g', @@ -189,10 +199,10 @@ 'σ': 's', 'ς': 's', 'Τ': 'T', 'τ': 't', 'Υ': 'Y', 'υ': 'y', 'Φ': 'F', 'φ': 'f', 'Ψ': 'Ps', 'ψ': 'ps', 'Ω': 'O', 'ω': 'o', 'ϗ': '&', 'Ϛ': 'St', 'ϛ': 'st', 'Ϙ': 'Q', 'Ϟ': 'Q', 'ϙ': 'q', 'ϟ': 'q', 'Ϻ': 'S', 'ϻ': 's', - 'Ϡ': 'Ss', 'ϡ': 'ss', 'Ϸ': 'Sh', 'ϸ': 'sh', 'Ά': 'Á', - 'ά': 'á', 'Έ': 'É', 'Ή': 'É', 'έ': 'é', 'ή': 'é', 'Ί': 'Í', 'ί': 'í', - 'Ϊ': 'Ï', 'ϊ': 'ï', 'ΐ': 'ï', 'Ό': 'Ó', 'ό': 'ó', 'Ύ': 'Ý', 'ύ': 'ý', - 'Ϋ': 'Y', 'ϋ': 'ÿ', 'ΰ': 'ÿ', 'Ώ': 'Ó', 'ώ': 'ó', + 'Ϡ': 'Ss', 'ϡ': 'ss', 'Ϸ': 'Sh', 'ϸ': 'sh', 'Ά': 'Á', 'ά': 'á', 'Έ': 'É', + 'Ή': 'É', 'έ': 'é', 'ή': 'é', 'Ί': 'Í', 'ί': 'í', 'Ϊ': 'Ï', 'ϊ': 'ï', + 'ΐ': 'ï', 'Ό': 'Ó', 'ό': 'ó', 'Ύ': 'Ý', 'ύ': 'ý', 'Ϋ': 'Y', 'ϋ': 'ÿ', + 'ΰ': 'ÿ', 'Ώ': 'Ó', 'ώ': 'ó', # Japanese (katakana and hiragana) 'ア': 'a', 'ァ': 'a', 'あ': 'a', 'イ': 'i', 'ィ': 'i', 'い': 'i', 'ウ': 'u', 'う': 'u', 'エ': 'e', 'ェ': 'e', 'え': 'e', 'オ': 'o', 'ォ': 'o', 'お': 'o', @@ -237,40 +247,38 @@ 'ძ': 'dz', 'წ': "ts'", 'ჭ': "ch'", 'ხ': 'kh', 'ჯ': 'j', 'ჰ': 'h', 'ჳ': 'w', 'ჵ': 'o', 'ჶ': 'f', # Devanagari - 'प': 'pa', 'आ': 'aa', 'ा': 'aa', 'इ': 'i', 'ि': 'i', - 'ई': 'ii', 'ी': 'ii', 'उ': 'u', 'ु': 'u', 'ऊ': 'uu', 'ू': 'uu', - 'ए': 'e', 'े': 'e', 'ऐ': 'ai', 'ै': 'ai', 'ओ': 'o', 'ो': 'o', 'औ': 'au', - 'ौ': 'au', 'ऋ': 'r', 'ृ': 'r', 'र': 'r', 'ॠ': 'rr', 'ॄ': 'rr', 'ऌ': 'l', - 'ॢ': 'l', 'ल': 'l', 'ॡ': 'll', 'ॣ': 'll', 'क': 'q', 'ग': 'g', - 'घ': 'gh', 'ङ': 'ng', 'च': 'c', 'छ': 'ch', 'ज': 'z', 'झ': 'jh', - 'ञ': 'ñ', 'ट': 't', 'ठ': 'th', 'थ': 'th', 'ड': 'r', - 'ढ': 'r', 'ध': 'dh', 'ण': 'n', 'न': 'n', 'फ': 'f', 'ब': 'b', 'भ': 'bh', - 'म': 'm', 'य': 'y', 'व': 'v', 'ष': 's', 'स': 's', + 'प': 'pa', 'आ': 'aa', 'ा': 'aa', 'इ': 'i', 'ि': 'i', 'ई': 'ii', + 'ी': 'ii', 'उ': 'u', 'ु': 'u', 'ऊ': 'uu', 'ू': 'uu', 'ए': 'e', 'े': 'e', + 'ऐ': 'ai', 'ै': 'ai', 'ओ': 'o', 'ो': 'o', 'औ': 'au', 'ौ': 'au', + 'ऋ': 'r', 'ृ': 'r', 'र': 'r', 'ॠ': 'rr', 'ॄ': 'rr', 'ऌ': 'l', 'ॢ': 'l', + 'ल': 'l', 'ॡ': 'll', 'ॣ': 'll', 'क': 'q', 'ग': 'g', 'घ': 'gh', 'ङ': 'ng', + 'च': 'c', 'छ': 'ch', 'ज': 'z', 'झ': 'jh', 'ञ': 'ñ', 'ट': 't', 'ठ': 'th', + 'थ': 'th', 'ड': 'r', 'ढ': 'r', 'ध': 'dh', 'ण': 'n', 'न': 'n', 'फ': 'f', + 'ब': 'b', 'भ': 'bh', 'म': 'm', 'य': 'y', 'व': 'v', 'ष': 's', 'स': 's', '़': 'q', 'H': 'gh', # Devanagari ligatures (possibly incomplete and/or incorrect) 'ख': 'khn', '्': 'fn', 'त': 'tn', 'द': 'dn', 'श': 'cn', 'ह': 'fn', - 'अ': 'm', 'ँ': 'm', '॒': '', '॑': '', '०': '0', '१': '1', '२': '2', - '३': '3', '४': '4', '५': '5', '६': '6', '७': '7', '८': '8', '९': '9', + 'अ': 'm', 'ँ': 'm', '॒': '', '॑': '', # Armenian 'Ա': 'A', 'ա': 'a', 'Բ': 'B', 'բ': 'b', 'Գ': 'G', 'գ': 'g', 'Դ': 'D', 'դ': 'd', 'Ե': 'Je', 'ե': 'e', 'Զ': 'Z', 'զ': 'z', 'Է': 'É', 'է': 'é', - 'Ը': 'Ë', 'ը': 'ë', 'Թ': 'Th', 'թ': 'th', 'Ժ': 'Zh', 'ժ': 'zh', - 'Ի': 'I', 'ի': 'i', 'Լ': 'L', 'լ': 'l', 'Խ': 'Ch', 'խ': 'ch', 'Ծ': 'Ts', - 'ծ': 'ts', 'Կ': 'K', 'կ': 'k', 'Հ': 'H', 'հ': 'h', 'Ձ': 'Dz', 'ձ': 'dz', - 'Ղ': 'R', 'ղ': 'r', 'Ճ': 'Cz', 'ճ': 'cz', 'Մ': 'M', 'մ': 'm', 'Յ': 'J', - 'յ': 'j', 'Ն': 'N', 'ն': 'n', 'Շ': 'Vo', 'շ': 'o', 'Չ': 'Tsh', - 'չ': 'tsh', 'Պ': 'P', 'պ': 'p', 'Ջ': 'Dz', 'ջ': 'dz', 'Ռ': 'R', - 'ռ': 'r', 'Ս': 'S', 'ս': 's', 'Վ': 'V', 'վ': 'v', 'Տ': "T'", 'տ': "t'", - 'Ր': 'R', 'ր': 'r', 'Ց': 'Tsh', 'ց': 'tsh', 'Ւ': 'V', 'ւ': 'v', - 'Փ': 'Ph', 'փ': 'ph', 'Ք': 'Kh', 'ք': 'kh', 'Օ': 'O', 'օ': 'o', - 'Ֆ': 'F', 'ֆ': 'f', 'և': '&', '՟': '.', '՝': ';', '՛': '', + 'Ը': 'Ë', 'ը': 'ë', 'Թ': 'Th', 'թ': 'th', 'Ժ': 'Zh', 'ժ': 'zh', 'Ի': 'I', + 'ի': 'i', 'Լ': 'L', 'լ': 'l', 'Խ': 'Ch', 'խ': 'ch', 'Ծ': 'Ts', 'ծ': 'ts', + 'Կ': 'K', 'կ': 'k', 'Հ': 'H', 'հ': 'h', 'Ձ': 'Dz', 'ձ': 'dz', 'Ղ': 'R', + 'ղ': 'r', 'Ճ': 'Cz', 'ճ': 'cz', 'Մ': 'M', 'մ': 'm', 'Յ': 'J', 'յ': 'j', + 'Ն': 'N', 'ն': 'n', 'Շ': 'Vo', 'շ': 'o', 'Չ': 'Tsh', 'չ': 'tsh', 'Պ': 'P', + 'պ': 'p', 'Ջ': 'Dz', 'ջ': 'dz', 'Ռ': 'R', 'ռ': 'r', 'Ս': 'S', 'ս': 's', + 'Վ': 'V', 'վ': 'v', 'Տ': "T'", 'տ': "t'", 'Ր': 'R', 'ր': 'r', 'Ց': 'Tsh', + 'ց': 'tsh', 'Ւ': 'V', 'ւ': 'v', 'Փ': 'Ph', 'փ': 'ph', 'Ք': 'Kh', 'ք': 'kh', + 'Օ': 'O', 'օ': 'o', 'Ֆ': 'F', 'ֆ': 'f', 'և': '&', '՟': '.', '՝': ';', + '՛': '', # Tamil 'க': 'x', '்': 'x', 'ங': 'n', 'ண': 'n', 'ந': 'n', 'ன': 'n', 'ச': 'c', 'ஞ': 'ñ', 'ட': 'th', 'த': 't', 'ப': 'p', 'ம': 'm', 'ய': 'y', 'ர': 'r', 'ழ': 'r', 'ற': 'r', 'ல': 'l', 'ள': 'l', 'வ': 'v', 'ஜ': 'j', 'ஷ': 'x', - 'ஸ': 's', 'ஹ': 'h', 'அ': 'a', 'ஆ': 'aa', 'இ': 'i', 'ஈ': 'ii', 'உ': 'u', - 'ஊ': 'uu', 'எ': 'e', 'ஏ': 'ee', 'ஐ': 'ai', 'ஒ': 'o', 'ஓ': 'oo', - 'ஔ': 'au', 'ஃ': '', + 'ஸ': 's', 'ஹ': 'h', 'அ': 'a', 'ஆ': 'aa', 'இ': 'i', 'ஈ': 'ii', + 'உ': 'u', 'ஊ': 'uu', 'எ': 'e', 'ஏ': 'ee', 'ஐ': 'ai', 'ஒ': 'o', + 'ஓ': 'oo', 'ஔ': 'au', 'ஃ': '', # Bengali 'অ': 'ô', 'আ': 'a', 'া': 'a', 'ই': 'i', 'ি': 'i', 'ঈ': 'i', 'ী': 'i', 'উ': 'u', 'ু': 'u', 'ঊ': 'u', 'ূ': 'u', 'ঋ': 'ri', 'ৃ': 'ri', 'এ': 'e', @@ -278,26 +286,25 @@ 'ঔ': 'ou', 'ৌ': 'ou', '্': '', 'ৎ': 't', 'ং': 'n', 'ঃ': 'h', 'ঁ': 'ñ', 'ক': 'k', 'খ': 'kh', 'গ': 'g', 'ঘ': 'gh', 'ঙ': 'ng', 'চ': 'ch', 'ছ': 'chh', 'জ': 'j', 'ঝ': 'jh', 'ঞ': 'n', 'ট': 't', 'ত': 't', - 'ঠ': 'th', 'থ': 'th', 'ড': 'r', 'দ': 'd', 'ঢ': 'rh', 'ধ': 'dh', - 'ণ': 'n', 'ন': 'n', 'প': 'p', 'ফ': 'ph', 'ব': 'b', 'ভ': 'bh', 'ম': 'm', - 'র': 'r', 'ল': 'l', 'শ': 's', 'হ': 'h', '০': '0', '১': '1', '২': '2', - '৩': '3', '৪': '4', '৫': '5', '৬': '6', '৭': '7', '৮': '8', '৯': '9', + 'ঠ': 'th', 'থ': 'th', 'ড': 'r', 'দ': 'd', 'ঢ': 'rh', 'ধ': 'dh', 'ণ': 'n', + 'ন': 'n', 'প': 'p', 'ফ': 'ph', 'ব': 'b', 'ভ': 'bh', 'ম': 'm', 'র': 'r', + 'ল': 'l', 'শ': 's', 'হ': 'h', # Thai (because of complications of the alphabet, self.transliterations # are very imprecise here) - 'ก': 'k', 'ข': 'kh', 'ฃ': 'kh', 'ค': 'kh', 'ฅ': 'kh', 'ฆ': 'kh', 'ง': - 'ng', 'จ': 'ch', 'ฉ': 'ch', 'ช': 'ch', 'ฌ': 'ch', 'ซ': 's', - 'ศ': 's', 'ษ': 's', 'ส': 's', 'ญ': 'y', 'ย': 'y', 'ฎ': 'd', 'ด': 'd', - 'ฏ': 't', 'ต': 't', 'ฐ': 'th', 'ฑ': 'th', 'ฒ': 'th', 'ถ': 'th', - 'ท': 'th', 'ธ': 'th', 'ณ': 'n', 'น': 'n', 'บ': 'b', 'ป': 'p', 'ผ': 'ph', - 'พ': 'ph', 'ภ': 'ph', 'ฝ': 'f', 'ฟ': 'f', 'ม': 'm', 'ร': 'ü', - 'ฤ': 'rue', 'ๅ': ':', 'ล': 'l', 'ฬ': 'l', 'ฦ': 'lue', 'ว': 'u', - 'ห': 'h', 'ฮ': 'h', 'อ': 'o', 'โ': 'o', 'ิ': 'i', 'ะ': 'a', 'ั': 'a', - 'า': 'a', 'ำ': 'am', 'ี': 'i:', 'ึ': 'ue', 'ื': 'ue:', 'ุ': 'u', - 'ู': 'u:', 'เ': 'e', '็': '', 'แ': 'ae', 'ใ': 'ai', 'ไ': 'ai', '่': '', - '้': '', '๊': '', '๋': '', '์': '', 'ฯ': '.', 'ๆ': '(2)', + 'ก': 'k', 'ข': 'kh', 'ฃ': 'kh', 'ค': 'kh', 'ฅ': 'kh', 'ฆ': 'kh', 'ง': 'ng', + 'จ': 'ch', 'ฉ': 'ch', 'ช': 'ch', 'ฌ': 'ch', 'ซ': 's', 'ศ': 's', 'ษ': 's', + 'ส': 's', 'ญ': 'y', 'ย': 'y', 'ฎ': 'd', 'ด': 'd', 'ฏ': 't', 'ต': 't', + 'ฐ': 'th', 'ฑ': 'th', 'ฒ': 'th', 'ถ': 'th', 'ท': 'th', 'ธ': 'th', + 'ณ': 'n', 'น': 'n', 'บ': 'b', 'ป': 'p', 'ผ': 'ph', 'พ': 'ph', 'ภ': 'ph', + 'ฝ': 'f', 'ฟ': 'f', 'ม': 'm', 'ร': 'ü', 'ฤ': 'rue', 'ๅ': ':', 'ล': 'l', + 'ฬ': 'l', 'ฦ': 'lue', 'ว': 'u', 'ห': 'h', 'ฮ': 'h', 'อ': 'o', 'โ': 'o', + 'ิ': 'i', 'ะ': 'a', 'ั': 'a', 'า': 'a', 'ำ': 'am', 'ี': 'i:', 'ึ': 'ue', + 'ื': 'ue:', 'ุ': 'u', 'ู': 'u:', 'เ': 'e', '็': '', 'แ': 'ae', 'ใ': 'ai', + 'ไ': 'ai', '่': '', '้': '', '๊': '', '๋': '', '์': '', 'ฯ': '.', + 'ๆ': '(2)', # Korean (Revised Romanization system within possible, incomplete) - '국': 'guk', '명': 'myeong', '검': 'geom', '타': 'ta', '분': 'bun', '사': - 'sa', '류': 'ryu', '포': 'po', '르': 'reu', '투': 'tu', '갈': 'gal', + '국': 'guk', '명': 'myeong', '검': 'geom', '타': 'ta', '분': 'bun', + '사': 'sa', '류': 'ryu', '포': 'po', '르': 'reu', '투': 'tu', '갈': 'gal', '어': 'eo', '노': 'no', '웨': 'we', '이': 'i', '라': 'ra', '틴': 'tin', '루': 'ru', '마': 'ma', '니': 'ni', '아': 'a', '독': 'dok', '일': 'il', '모': 'mo', '크': 'keu', '샤': 'sya', '영': 'yeong', '불': 'bul', '가': 'ga', @@ -313,38 +320,33 @@ 'ಙ': 'ng', 'ಚ': 'c', 'ಛ': 'ch', 'ಜ': 'j', 'ಝ': 'ny', 'ಟ': 'tt', 'ಠ': 'tth', 'ಡ': 'dd', 'ಢ': 'ddh', 'ಣ': 'nn', 'ತ': 't', 'ಥ': 'th', 'ದ': 'd', 'ಧ': 'dh', 'ನ': 'n', 'ಪ': 'p', 'ಫ': 'ph', 'ಬ': 'b', 'ಭ': 'bh', - 'ಮ': 'm', 'ಯ': 'y', 'ರ': 'r', 'ಲ': 'l', 'ವ': 'v', 'ಶ': 'sh', 'ಷ': 'ss', - 'ಸ': 's', 'ಹ': 'h', 'ಳ': 'll', '೦': '0', '೧': '1', '೨': '2', '೩': '3', - '೪': '4', '೫': '5', '೬': '6', '೭': '7', '೮': '8', '೯': '9', + 'ಮ': 'm', 'ಯ': 'y', 'ರ': 'r', 'ಲ': 'l', 'ವ': 'v', 'ಶ': 'sh', + 'ಷ': 'ss', 'ಸ': 's', 'ಹ': 'h', 'ಳ': 'll', # Telugu - 'అ': 'a', 'ఆ': 'aa', 'ా': 'aa', 'ఇ': 'i', 'ి': 'i', 'ఈ': 'ii', 'ీ': - 'ii', 'ఉ': 'u', 'ు': 'u', 'ఊ': 'uu', 'ూ': 'uu', 'ఋ': "r'", - 'ృ': "r'", 'ౠ': 'r"', 'ౄ': 'r"', 'ఌ': "l'", 'ౡ': 'l"', 'ఎ': 'e', - 'ె': 'e', 'ఏ': 'ee', 'ే': 'ee', 'ఐ': 'ai', 'ై': 'ai', 'ఒ': 'o', - 'ొ': 'o', 'ఓ': 'oo', 'ో': 'oo', 'ఔ': 'au', 'ౌ': 'au', 'ం': '^', - 'ః': '-', 'క': 'k', 'ఖ': 'kh', 'గ': 'g', 'ఘ': 'gh', 'ఙ': 'ng', - 'చ': 'ts', 'ఛ': 'tsh', 'జ': 'j', 'ఝ': 'jh', 'ఞ': 'ñ', 'ట': 't', - 'త': 't', 'ఠ': 'th', 'థ': 'th', 'డ': 'd', 'ద': 'd', 'ఢ': 'dh', - 'ధ': 'dh', 'ణ': 'n', 'న': 'n', 'ప': 'p', 'ఫ': 'ph', 'బ': 'b', 'భ': 'bh', - 'మ': 'm', 'య': 'y', 'ర': 'r', 'ఱ': 'r', 'ల': 'l', 'ళ': 'l', 'వ': 'v', - 'శ': 'sh', 'ష': 's', 'స': 's', 'హ': 'h', '్': '', 'ఁ': '^', '౦': '0', - '౧': '1', '౨': '2', '౩': '3', '౪': '4', '౫': '5', '౬': '6', '౭': '7', - '౮': '8', '౯': '9', '౹': '1/4', '౺': '1/2', '౻': '3/4', '౼': '1/16', - '౽': '1/8', '౾': '3/16', + 'అ': 'a', 'ఆ': 'aa', 'ా': 'aa', 'ఇ': 'i', 'ి': 'i', 'ఈ': 'ii', 'ీ': 'ii', + 'ఉ': 'u', 'ు': 'u', 'ఊ': 'uu', 'ూ': 'uu', 'ఋ': "r'", 'ృ': "r'", + 'ౠ': 'r"', 'ౄ': 'r"', 'ఌ': "l'", 'ౡ': 'l"', 'ఎ': 'e', 'ె': 'e', + 'ఏ': 'ee', 'ే': 'ee', 'ఐ': 'ai', 'ై': 'ai', 'ఒ': 'o', 'ొ': 'o', 'ఓ': 'oo', + 'ో': 'oo', 'ఔ': 'au', 'ౌ': 'au', 'ం': '^', 'ః': '-', 'క': 'k', 'ఖ': 'kh', + 'గ': 'g', 'ఘ': 'gh', 'ఙ': 'ng', 'చ': 'ts', 'ఛ': 'tsh', 'జ': 'j', + 'ఝ': 'jh', 'ఞ': 'ñ', 'ట': 't', 'త': 't', 'ఠ': 'th', 'థ': 'th', + 'డ': 'd', 'ద': 'd', 'ఢ': 'dh', 'ధ': 'dh', 'ణ': 'n', 'న': 'n', 'ప': 'p', + 'ఫ': 'ph', 'బ': 'b', 'భ': 'bh', 'మ': 'm', 'య': 'y', 'ర': 'r', 'ఱ': 'r', + 'ల': 'l', 'ళ': 'l', 'వ': 'v', 'శ': 'sh', 'ష': 's', 'స': 's', 'హ': 'h', + '్': '', 'ఁ': '^', '౹': '1/4', '౺': '1/2', + '౻': '3/4', '౼': '1/16', '౽': '1/8', '౾': '3/16', # Lao - note: pronunciation in initial position is used; # different pronunciation in final position is ignored - 'ກ': 'k', 'ຂ': 'kh', 'ຄ': 'kh', 'ງ': 'ng', 'ຈ': 'ch', 'ສ': 's', 'ຊ': - 's', 'ຍ': 'i', 'ດ': 'd', 'ຕ': 't', 'ຖ': 'th', 'ທ': 'th', 'ນ': 'n', - 'ບ': 'b', 'ປ': 'p', 'ຜ': 'ph', 'ພ': 'ph', 'ຝ': 'f', 'ຟ': 'f', 'ມ': 'm', - 'ໝ': 'm', 'ຢ': 'y', 'ຣ': 'r', 'ຼ': 'l', 'ລ': 'l', 'ວ': 'v', 'ຮ': 'h', - 'ອ': "'", 'ະ': 'a', 'ັ': 'a', 'ິ': 'i', 'ຶ': 'ue', 'ຸ': 'u', 'ເ': 'e', - 'ແ': 'ei', 'ໂ': 'o', 'ົ': 'o', 'າ': 'aa', 'ໍ': 'o', 'ຽ': 'ia', - 'ເຶ': 'uea', 'ໄ': 'ai', 'ໃ': 'ai', 'ຳ': 'am', 'ີ': 'ii', 'ື': 'yy', - 'ູ': 'uu', '໐': '0', '໑': '1', '໒': '2', '໓': '3', '໔': '4', '໕': '5', - '໖': '6', '໗': '7', '໘': '8', '໙': '9', + 'ກ': 'k', 'ຂ': 'kh', 'ຄ': 'kh', 'ງ': 'ng', 'ຈ': 'ch', 'ສ': 's', 'ຊ': 's', + 'ຍ': 'i', 'ດ': 'd', 'ຕ': 't', 'ຖ': 'th', 'ທ': 'th', 'ນ': 'n', 'ບ': 'b', + 'ປ': 'p', 'ຜ': 'ph', 'ພ': 'ph', 'ຝ': 'f', 'ຟ': 'f', 'ມ': 'm', 'ໝ': 'm', + 'ຢ': 'y', 'ຣ': 'r', 'ຼ': 'l', 'ລ': 'l', 'ວ': 'v', 'ຮ': 'h', 'ອ': "'", + 'ະ': 'a', 'ັ': 'a', 'ິ': 'i', 'ຶ': 'ue', 'ຸ': 'u', 'ເ': 'e', 'ແ': 'ei', + 'ໂ': 'o', 'ົ': 'o', 'າ': 'aa', 'ໍ': 'o', 'ຽ': 'ia', 'ເຶ': 'uea', 'ໄ': 'ai', + 'ໃ': 'ai', 'ຳ': 'am', 'ີ': 'ii', 'ື': 'yy', 'ູ': 'uu', # Chinese -- note: incomplete - '埃': 'ai', '挨': 'ai', '哎': 'ai', '唉': 'ai', '哀': 'ai', '皑': 'ai', '癌': - 'ai', '蔼': 'ai', '矮': 'ai', '艾': 'ai', '碍': 'ai', '爱': 'ai', + '埃': 'ai', '挨': 'ai', '哎': 'ai', '唉': 'ai', '哀': 'ai', '皑': 'ai', + '癌': 'ai', '蔼': 'ai', '矮': 'ai', '艾': 'ai', '碍': 'ai', '爱': 'ai', '隘': 'ai', '鞍': 'an', '氨': 'an', '安': 'an', '俺': 'an', '按': 'an', '暗': 'an', '岸': 'an', '胺': 'an', '案': 'an', '肮': 'ang', '昂': 'ang', '盎': 'ang', '凹': 'ao', '敖': 'ao', '熬': 'ao', '翱': 'ao', '袄': 'ao', @@ -1022,66 +1024,62 @@ 'ଂ': 'anusvara', 'ઇ': 'i', 'എ': 'e', 'ગ': 'ga', 'ਜ': 'ja', 'ഞ': 'nya', 'ଢ': 'ddha', 'ધ': 'dha', 'ਬ': 'ba', 'മ': 'ma', 'ଲ': 'la', 'ષ': 'ssa', '਼': 'nukta', 'ാ': 'aa', 'ୂ': 'uu', 'ે': 'e', 'ੌ': 'au', 'ൎ': 'reph', - 'ੜ': 'rra', '՞': '?', 'ୢ': 'l', '૧': '1', '੬': '6', '൮': '8', - '୲': 'quarter', 'ൾ': 'll', 'ਇ': 'i', 'ഉ': 'u', 'ઌ': 'l', 'ਗ': 'ga', - 'ങ': 'nga', 'ଝ': 'jha', 'જ': 'ja', '؟': '?', 'ਧ': 'dha', 'ഩ': 'nnna', - 'ଭ': 'bha', 'બ': 'ba', 'ഹ': 'ha', 'ଽ': 'avagraha', '઼': 'nukta', - 'ੇ': 'ee', '୍': 'virama', 'ૌ': 'au', '੧': '1', '൩': '3', '୭': '7', - '૬': '6', '൹': 'mark', 'ਖ਼': 'khha', 'ਂ': 'bindi', 'ഈ': 'ii', 'ઍ': 'e', - 'ଌ': 'l', 'ഘ': 'gha', 'ઝ': 'jha', 'ଡ଼': 'rra', 'ਢ': 'ddha', 'ന': 'na', - 'ભ': 'bha', 'ବ': 'ba', 'ਲ': 'la', 'സ': 'sa', 'ઽ': 'avagraha', - '଼': 'nukta', 'ੂ': 'uu', 'ൈ': 'ai', '્': 'virama', 'ୌ': 'au', '൨': '2', - '૭': '7', '୬': '6', 'ੲ': 'iri', 'ഃ': 'visarga', 'ં': 'anusvara', - 'ଇ': 'i', 'ഓ': 'oo', 'ଗ': 'ga', 'ਝ': 'jha', 'ണ': 'nna', + 'ੜ': 'rra', '՞': '?', 'ୢ': 'l', '୲': 'quarter', 'ൾ': 'll', 'ਇ': 'i', + 'ഉ': 'u', 'ઌ': 'l', 'ਗ': 'ga', 'ങ': 'nga', 'ଝ': 'jha', 'જ': 'ja', + '؟': '?', 'ਧ': 'dha', 'ഩ': 'nnna', 'ଭ': 'bha', 'બ': 'ba', 'ഹ': 'ha', + 'ଽ': 'avagraha', '઼': 'nukta', 'ੇ': 'ee', '୍': 'virama', 'ૌ': 'au', + '൹': 'mark', 'ਖ਼': 'khha', 'ਂ': 'bindi', 'ഈ': 'ii', 'ઍ': 'e', 'ଌ': 'l', + 'ഘ': 'gha', 'ઝ': 'jha', 'ଡ଼': 'rra', 'ਢ': 'ddha', 'ന': 'na', 'ભ': 'bha', + 'ବ': 'ba', 'ਲ': 'la', 'സ': 'sa', 'ઽ': 'avagraha', '଼': 'nukta', 'ੂ': 'uu', + 'ൈ': 'ai', '્': 'virama', 'ୌ': 'au', 'ੲ': 'iri', 'ഃ': 'visarga', + 'ં': 'anusvara', 'ଇ': 'i', 'ഓ': 'oo', 'ଗ': 'ga', 'ਝ': 'jha', 'ണ': 'nna', 'ઢ': 'ddha', 'ଧ': 'dha', 'ਭ': 'bha', 'ള': 'lla', 'લ': 'la', 'ଷ': 'ssa', 'ൃ': 'r', 'ૂ': 'uu', 'େ': 'e', '੍': 'virama', 'ୗ': 'mark', 'ൣ': 'll', - 'ૢ': 'l', '୧': '1', '੭': '7', '൳': '1/4', '୷': 'sixteenths', 'ଆ': 'aa', - 'ઋ': 'r', 'ഊ': 'uu', 'ਐ': 'ai', 'ଖ': 'kha', 'છ': 'cha', 'ച': 'ca', - 'ਠ': 'ttha', 'ଦ': 'da', 'ફ': 'pha', 'പ': 'pa', 'ਰ': 'ra', 'ଶ': 'sha', - 'ഺ': 'ttta', 'ੀ': 'ii', 'ો': 'o', 'ൊ': 'o', 'ୖ': 'mark', '୦': '0', - '૫': '5', '൪': '4', 'ੰ': 'tippi', '୶': 'eighth', 'ൺ': 'nn', - 'ଁ': 'candrabindu', 'അ': 'a', 'ઐ': 'ai', 'ക': 'ka', 'ਸ਼': 'sha', - 'ਛ': 'cha', 'ଡ': 'dda', 'ઠ': 'ttha', 'ഥ': 'tha', 'ਫ': 'pha', 'ર': 'ra', - 'വ': 'va', 'ୁ': 'u', 'ી': 'ii', 'ੋ': 'oo', 'ૐ': 'om', 'ୡ': 'll', - 'ૠ': 'rr', '੫': '5', 'ୱ': 'wa', '૰': 'sign', '൵': 'quarters', - 'ਫ਼': 'fa', 'ઁ': 'candrabindu', 'ਆ': 'aa', 'ઑ': 'o', 'ଐ': 'ai', - 'ഔ': 'au', 'ਖ': 'kha', 'ડ': 'dda', 'ଠ': 'ttha', 'ത': 'ta', 'ਦ': 'da', - 'ର': 'ra', 'ഴ': 'llla', 'ુ': 'u', 'ୀ': 'ii', 'ൄ': 'rr', 'ૡ': 'll', - 'ୠ': 'rr', '੦': '0', '૱': 'sign', '୰': 'isshar', '൴': '1/2', - 'ਁ': 'bindi', 'આ': 'aa', 'ଋ': 'r', 'ഏ': 'ee', 'ખ': 'kha', 'ଛ': 'cha', - 'ട': 'tta', 'ਡ': 'dda', 'દ': 'da', 'ଫ': 'pha', 'യ': 'ya', 'શ': 'sha', - 'ി': 'i', 'ੁ': 'u', 'ୋ': 'o', 'ੑ': 'udaat', '૦': '0', '୫': '5', - '൯': '9', 'ੱ': 'addak', 'ൿ': 'k', 'ആ': 'aa', 'ଊ': 'uu', 'એ': 'e', - 'ਔ': 'au', 'ഖ': 'kha', 'ଚ': 'ca', 'ટ': 'tta', 'ਤ': 'ta', 'ദ': 'da', - 'ପ': 'pa', 'ય': 'ya', 'ശ': 'sha', 'િ': 'i', 'െ': 'e', '൦': '0', - '୪': '4', '૯': '9', 'ੴ': 'onkar', 'ଅ': 'a', 'ਏ': 'ee', 'କ': 'ka', - 'ઔ': 'au', 'ਟ': 'tta', 'ഡ': 'dda', 'ଥ': 'tha', 'ત': 'ta', 'ਯ': 'ya', - 'റ': 'rra', 'ଵ': 'va', 'ਿ': 'i', 'ു': 'u', 'ૄ': 'rr', 'ൡ': 'll', - '੯': '9', '൱': '100', '୵': 'sixteenth', 'અ': 'a', 'ਊ': 'uu', 'ഐ': 'ai', - 'ક': 'ka', 'ଔ': 'au', 'ਚ': 'ca', 'ഠ': 'ttha', 'થ': 'tha', 'ତ': 'ta', - 'ਪ': 'pa', 'ര': 'ra', 'વ': 'va', 'ീ': 'ii', 'ૅ': 'e', 'ୄ': 'rr', - 'ൠ': 'rr', 'ਜ਼': 'za', '੪': '4', '൰': '10', '୴': 'quarters', 'ਅ': 'a', - 'ഋ': 'r', 'ઊ': 'uu', 'ଏ': 'e', 'ਕ': 'ka', 'ഛ': 'cha', 'ચ': 'ca', - 'ଟ': 'tta', 'ਥ': 'tha', 'ഫ': 'pha', 'પ': 'pa', 'ଯ': 'ya', 'ਵ': 'va', - 'ି': 'i', 'ോ': 'oo', 'ୟ': 'yya', '൫': '5', '૪': '4', '୯': '9', - 'ੵ': 'yakash', 'ൻ': 'n', 'ઃ': 'visarga', 'ം': 'anusvara', 'ਈ': 'ii', - 'ઓ': 'o', 'ഒ': 'o', 'ਘ': 'gha', 'ଞ': 'nya', 'ણ': 'nna', 'ഢ': 'ddha', - 'ਲ਼': 'lla', 'ਨ': 'na', 'ମ': 'ma', 'ળ': 'lla', 'ല': 'la', 'ਸ': 'sa', - 'ା': 'aa', 'ૃ': 'r', 'ൂ': 'uu', 'ੈ': 'ai', 'ૣ': 'll', - 'ൢ': 'l', '੨': '2', '୮': '8', '൲': '1000', 'ਃ': 'visarga', 'ଉ': 'u', - 'ઈ': 'ii', 'ਓ': 'oo', 'ଙ': 'nga', 'ઘ': 'gha', 'ഝ': 'jha', 'ਣ': 'nna', - 'ન': 'na', 'ഭ': 'bha', 'ଜ': 'ja', 'ହ': 'ha', 'સ': 'sa', 'ഽ': 'avagraha', - 'ૈ': 'ai', '്': 'virama', '୩': '3', '૨': '2', '൭': '7', 'ੳ': 'ura', + 'ૢ': 'l', '൳': '1/4', '୷': 'sixteenths', 'ଆ': 'aa', 'ઋ': 'r', 'ഊ': 'uu', + 'ਐ': 'ai', 'ଖ': 'kha', 'છ': 'cha', 'ച': 'ca', 'ਠ': 'ttha', 'ଦ': 'da', + 'ફ': 'pha', 'പ': 'pa', 'ਰ': 'ra', 'ଶ': 'sha', 'ഺ': 'ttta', 'ੀ': 'ii', + 'ો': 'o', 'ൊ': 'o', 'ୖ': 'mark', 'ੰ': 'tippi', '୶': 'eighth', + 'ൺ': 'nn', 'ଁ': 'candrabindu', 'അ': 'a', 'ઐ': 'ai', 'ക': 'ka', + 'ਸ਼': 'sha', 'ਛ': 'cha', 'ଡ': 'dda', 'ઠ': 'ttha', 'ഥ': 'tha', 'ਫ': 'pha', + 'ર': 'ra', 'വ': 'va', 'ୁ': 'u', 'ી': 'ii', 'ੋ': 'oo', 'ૐ': 'om', + 'ୡ': 'll', 'ૠ': 'rr', 'ୱ': 'wa', '૰': 'sign', '൵': 'quarters', 'ਫ਼': 'fa', + 'ઁ': 'candrabindu', 'ਆ': 'aa', 'ઑ': 'o', 'ଐ': 'ai', 'ഔ': 'au', + 'ਖ': 'kha', 'ડ': 'dda', 'ଠ': 'ttha', 'ത': 'ta', 'ਦ': 'da', 'ର': 'ra', + 'ഴ': 'llla', 'ુ': 'u', 'ୀ': 'ii', 'ൄ': 'rr', 'ૡ': 'll', 'ୠ': 'rr', + '૱': 'sign', '୰': 'isshar', '൴': '1/2', 'ਁ': 'bindi', 'આ': 'aa', + 'ଋ': 'r', 'ഏ': 'ee', 'ખ': 'kha', 'ଛ': 'cha', 'ട': 'tta', 'ਡ': 'dda', + 'દ': 'da', 'ଫ': 'pha', 'യ': 'ya', 'શ': 'sha', 'ി': 'i', 'ੁ': 'u', + 'ୋ': 'o', 'ੑ': 'udaat', 'ੱ': 'addak', 'ൿ': 'k', 'ആ': 'aa', 'ଊ': 'uu', + 'એ': 'e', 'ਔ': 'au', 'ഖ': 'kha', 'ଚ': 'ca', 'ટ': 'tta', 'ਤ': 'ta', + 'ദ': 'da', 'ପ': 'pa', 'ય': 'ya', 'ശ': 'sha', 'િ': 'i', 'െ': 'e', + 'ੴ': 'onkar', 'ଅ': 'a', 'ਏ': 'ee', 'କ': 'ka', 'ઔ': 'au', 'ਟ': 'tta', + 'ഡ': 'dda', 'ଥ': 'tha', 'ત': 'ta', 'ਯ': 'ya', 'റ': 'rra', 'ଵ': 'va', + 'ਿ': 'i', 'ു': 'u', 'ૄ': 'rr', 'ൡ': 'll', '൱': '100', '୵': 'sixteenth', + 'અ': 'a', 'ਊ': 'uu', 'ഐ': 'ai', 'ક': 'ka', 'ଔ': 'au', 'ਚ': 'ca', + 'ഠ': 'ttha', 'થ': 'tha', 'ତ': 'ta', 'ਪ': 'pa', 'ര': 'ra', 'વ': 'va', + 'ീ': 'ii', 'ૅ': 'e', 'ୄ': 'rr', 'ൠ': 'rr', 'ਜ਼': 'za', '൰': '10', + '୴': 'quarters', 'ਅ': 'a', 'ഋ': 'r', 'ઊ': 'uu', 'ଏ': 'e', 'ਕ': 'ka', + 'ഛ': 'cha', 'ચ': 'ca', 'ଟ': 'tta', 'ਥ': 'tha', 'ഫ': 'pha', 'પ': 'pa', + 'ଯ': 'ya', 'ਵ': 'va', 'ି': 'i', 'ോ': 'oo', 'ୟ': 'yya', 'ੵ': 'yakash', + 'ൻ': 'n', 'ઃ': 'visarga', 'ം': 'anusvara', 'ਈ': 'ii', 'ઓ': 'o', + 'ഒ': 'o', 'ਘ': 'gha', 'ଞ': 'nya', 'ણ': 'nna', 'ഢ': 'ddha', 'ਲ਼': 'lla', + 'ਨ': 'na', 'ମ': 'ma', 'ળ': 'lla', 'ല': 'la', 'ਸ': 'sa', 'ା': 'aa', + 'ૃ': 'r', 'ൂ': 'uu', 'ੈ': 'ai', 'ૣ': 'll', 'ൢ': 'l', '൲': '1000', + 'ਃ': 'visarga', 'ଉ': 'u', 'ઈ': 'ii', 'ਓ': 'oo', 'ଙ': 'nga', 'ઘ': 'gha', + 'ഝ': 'jha', 'ਣ': 'nna', 'ન': 'na', 'ഭ': 'bha', 'ଜ': 'ja', 'ହ': 'ha', + 'સ': 'sa', 'ഽ': 'avagraha', 'ૈ': 'ai', '്': 'virama', 'ੳ': 'ura', 'ൽ': 'l', 'ઉ': 'u', 'ଈ': 'ii', 'ഌ': 'l', 'ઙ': 'nga', 'ଘ': 'gha', 'ജ': 'ja', 'ਞ': 'nya', 'ନ': 'na', 'ബ': 'ba', 'ਮ': 'ma', 'હ': 'ha', - 'ସ': 'sa', 'ਾ': 'aa', 'ૉ': 'o', 'ୈ': 'ai', 'ൌ': 'au', '૩': '3', - '୨': '2', '൬': '6', '੮': '8', 'ർ': 'rr', 'ଃ': 'visarga', 'ഇ': 'i', - 'ਉ': 'u', 'ଓ': 'o', 'ഗ': 'ga', 'ਙ': 'nga', 'ઞ': 'nya', 'ଣ': 'nna', - 'ധ': 'dha', 'મ': 'ma', 'ଳ': 'lla', 'ഷ': 'ssa', 'ਹ': 'ha', 'ਗ਼': 'ghha', - 'ા': 'aa', 'ୃ': 'r', 'േ': 'ee', 'ൗ': 'mark', 'ଢ଼': 'rha', 'ୣ': 'll', - '൧': '1', '੩': '3', '૮': '8', '୳': 'half', + 'ସ': 'sa', 'ਾ': 'aa', 'ૉ': 'o', 'ୈ': 'ai', 'ൌ': 'au', 'ർ': 'rr', + 'ଃ': 'visarga', 'ഇ': 'i', 'ਉ': 'u', 'ଓ': 'o', 'ഗ': 'ga', 'ਙ': 'nga', + 'ઞ': 'nya', 'ଣ': 'nna', 'ധ': 'dha', 'મ': 'ma', 'ଳ': 'lla', 'ഷ': 'ssa', + 'ਹ': 'ha', 'ਗ਼': 'ghha', 'ા': 'aa', 'ୃ': 'r', 'േ': 'ee', 'ൗ': 'mark', + 'ଢ଼': 'rha', 'ୣ': 'll', '୳': 'half', }
+for digits in NON_LATIN_DIGITS.values(): + _trans.update({char: str(i) for i, char in enumerate(digits)}) +
class transliterator: # noqa: N801
@@ -1100,8 +1098,6 @@ continue while (value.encode(encoding, 'replace').decode(encoding) == '?' and value in trans): - assert value != trans[value], \ - '{0!r} == trans[{0!r}]!'.format(value) value = trans[value] trans[char] = value self.trans = trans diff --git a/tests/ui_tests.py b/tests/ui_tests.py index 20fcf87..e34fb3f 100644 --- a/tests/ui_tests.py +++ b/tests/ui_tests.py @@ -30,6 +30,8 @@ terminal_interface_unix, terminal_interface_win32, ) +from pywikibot.userinterfaces.transliteration import _trans, NON_LATIN_DIGITS + from tests.aspects import TestCase, TestCaseBase from tests.utils import FakeModule
@@ -386,6 +388,28 @@ '\x1b[93mu\x1b[0m\x1b[93me\x1b[0m\x1b[93mo\x1b[0m\n')
+class TestTransliterationTable(TestCase): + + """Test transliteration table.""" + + net = False + + def test_latin_digits(self): + """Test that non latin digits are in transliteration table.""" + for lang, digits in NON_LATIN_DIGITS.items(): + with self.subTest(lang=lang): + for char in digits: + self.assertIn(char, _trans, + '{!r} not in transliteration table' + .format(char)) + + def test_transliteration_table(self): + """Test transliteration table consistency.""" + for k, v in _trans.items(): + with self.subTest(): + self.assertNotEqual(k, v) + + # TODO: add tests for background colors. class FakeUITest(TestCase):