Module:ysr-translit
Jump to navigation
Jump to search
- The following documentation is generated by Module:documentation/functions/translit. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module will transliterate Sirenik language text.
The module should preferably not be called directly from templates or other modules.
To use it from a template, use {{xlit}}
.
Within a module, use Module:languages#Language:transliterate.
For testcases, see Module:ysr-translit/testcases.
Functions
[edit]tr(text, lang, sc)
- Transliterates a given piece of
text
written in the script specified by the codesc
, and language specified by the codelang
. - When the transliteration fails, returns
nil
.
local export = {}
local u = mw.ustring.char
local MACRON = u(0x0304)
local DOTABOVE = u(0x0307)
local tab = {
["А"]='A', ["а"]='a', ["В"]='V', ["в"]='v',
["Е"]='E', ["е"]='e', ["Ё"]='Jo', ["ё"]='jo',
["Г"]='G', ["г"]='g', ["Ӷ"]='Ǧ',["ӷ"]='ǧ',
["И"]='I', ["и"]='i', ["Ӣ"]='Ī', ["ӣ"]='ī',
["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["Ӄ"]='Q', ["ӄ"]='q',
["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӈ"]='Ŋ', ["ӈ"]='ŋ', ["О"]='O', ["о"]='o',
["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s',
["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Х"]='H', ["х"]='h',
["Ч"]='Č', ["ч"]='č', ["Ӽ"]='X̌', ["ӽ"]='x̌',["Ы"]='Y', ["ы"]='y',
["Э"]='Ə', ["э"]='ə', ["Ю"]='Ju', ["ю"]='ju',["Я"]='Ja', ["я"]='ja', ['Ъ']='ʺ', ['ъ']='ʺ',
["А́"]='Á', ["а́"]='á',
["Е́"]='É', ["е́"]='é',
["И́"]='Í', ["и́"]='í',
["О́"]='Ó', ["о́"]='ó',
["У́"]='Ú', ["у́"]='ú',
["Ы́"]='Ý', ["ы́"]='ý',
["Я́"]='Já', ["я́"]='já',
["Ю́"]='Jú', ["ю́"]='jú',
["Ё́"]='Jó', ["ё́"]='jó',
["А̄"]='Ā', ["а̄"]='ā',
["Е̄"]='Ē', ["е̄"]='ē',
["Ӣ"]='Ī', ["ӣ"]='ī',
["О̄"]='Ō', ["о̄"]='ō',
["Ӯ"]='Ū', ["ӯ"]='ū',
["Ы̄"]='Ȳ', ["ы̄"]='ȳ',
["Я̄"]='Jā', ["я̄"]='jā',
["Ю̄"]='Jū', ["ю̄"]='jū',
["Ё̄"]='Jō', ["ё̄"]='jō',
["А̄́"]='Ā́', ["а̄́"]='ā́',
["Е̄́"]='Ḗ', ["е̄́"]='ḗ',
["Ӣ́"]='Ī́', ["ӣ́"]='ī́',
["О̄́"]='Ṓ', ["о̄́"]='ṓ',
["Ӯ́"]='Ū́', ["ӯ́"]='ū́',
["Ы̄́"]='Ȳ́', ["ы̄́"]='ȳ́',
["Я̄́"]='Jā́', ["я̄́"]='jā́',
["Ю̄́"]='Jū́', ["ю̄́"]='jū́',
["Ё̄́"]='Jṓ', ["ё̄́"]='jṓ',
-- Not present in the original latinisation
-- non-native letters
["Ж"]='Z', ["ж"]='z', ["З"]='Ž', ["з"]='ž',
["Ц"]='C', ["ц"]='c', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Šč', ["щ"]='šč',
['Ъ']='ʺ', ['ъ']='ʺ', ["Ь"]="’", ["ь"]="’",["Ф"]='F', ["ф"]='f',
["Б"]='B', ["б"]='ʙ',["Д"]='D', ["д"]='d',
-- non-standard letters
["Ҕ"]='Γ', ["ҕ"]='γ', ["Ҥ"]='Ŋ', ["ҥ"]='ŋ',
["Ӄ"]='Q', ["ӄ"]='q', ["Ҕ"]='Ǧ', ["ҕ"]='ǧ',
["Йъ"]='J̊', ["йъ"]='j̊', ["Лъ"]='L̊', ["лъ"]='l̊',
["Нъ"]='N̊', ["нъ"]='n̊'
}
local iotatedTranslit = {
["е"] = "je",
["я"] = "ja",
["и"] = "ji",
["Е"] = "Je",
["Я"] = "Ja",
}
text = str_gsub(text, UTF8char, tab)
return text