Module:ba-translit
Jump to navigation
Jump to search
- The following documentation is located at Module:ba-translit/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module will transliterate Bashkir language text per WT:BA TR.
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:ba-translit/testcases.
Functions
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 tt = {
["ү"]="ü", ['Ү']='Ü', ["т"]="t", ['Т']='T', ["р"]="r", ['Р']='R', ["ф"]="f", ['Ф']='F', ["ө"]="ö", ['Ө']='Ö',
["ю"]="yu", ['Ю']='Yu', ["ш"]="ş", ['Ш']='Ş', ["ь"]="ʹ", ['Ь']='ʹ', ["ъ"]="ʺ", ['Ъ']='ʺ', ["н"]="n", ['Н']='N',
["п"]="p", ['П']='P', ["й"]="y", ['Й']='Y', ["л"]="l", ['Л']='L', ["з"]="z", ['З']='Z', ["е"]="e", ['Е']='E',
["г"]="g", ['Г']='G', ["б"]="b", ['Б']='B', ["у"]="u", ['У']='U', ["с"]="s", ['С']='S', ["х"]="x", ['Х']='X',
["ч"]="ç", ['Ч']='Ç', ["щ"]="şç", ['Щ']='Şç', ["я"]="ya", ['Я']='Ya', ["ы"]="ı", ['Ы']='I', ["э"]="e", ['Э']='E',
["м"]="m", ['М']='M', ["о"]="o", ['О']='O', ["и"]="i", ['И']='İ', ["ё"]="yo", ['Ё']='Yo', ["ж"]="j", ['Ж']='j',
["к"]="k", ['К']='K', ["д"]="d", ['Д']='D', ["в"]="v", ['В']='V', ["ц"]="ts", ['Ц']='Ts', ["а"]="a", ['А']='A',
["ң"]="ñ", ['Ң']='Ñ', ["ғ"]="ğ", ['Ғ']='Ğ', ["ҙ"]="ź", ['Ҙ']='Ź', ["ҡ"]="q", ['Ҡ']='Q', ["ҫ"]="ś", ['Ҫ']='Ś',
["һ"]="h", ['Һ']='H', ["ә"]="ə", ['Ә']='Ə'
};
local iotated = {
['е'] = 'ye',
['Е'] = 'Ye',
}
function export.tr(text, lang, sc)
local str_gsub = string.gsub
local ugsub = mw.ustring.gsub
-- ү/у should be transliterated as w before uniotated vowels and after all vowels
text = ugsub(text, "([АаЕеЭэЁёИиОоӨөУуҮүЫыӘәЮюЯя])[уү]", "%1w")
text = ugsub(text, "[уү]([АаЭэИиОоӨөЫыӘә])", "w%1")
text = ugsub(text,
"([АаЕеЭэЁёИиОоӨөУуҮүЪъЫыЬьӘәЮюЯя%A][́̀]?)([Ее])",
function(a, e)
return a .. iotated[e]
end)
text = ugsub(text,
"^[Ее]",
iotated)
text = str_gsub(text, '[\1-\127\194-\244][\128-\191]*', tt)
return text
end
return export