Modul:ba-translit
This module will transliterate Bashkir text per WT:BA TR through the function tr.
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', ["ы"]="ï", ['Ы']='Ï', ["э"]="e", ['Э']='E',
["м"]="m", ['М']='M', ["о"]="o", ['О']='O', ["и"]="i", ['И']='I', ["ё"]="yo", ['Ё']='Yo', ["ж"]="ž", ['Ж']='Ž',
["к"]="k", ['К']='K', ["д"]="d", ['Д']='D', ["в"]="v", ['В']='V', ["ц"]="ts", ['Ц']='Ts', ["а"]="a", ['А']='A',
["ң"]="ñ", ['Ң']='Ñ', ["ғ"]="ğ", ['Ғ']='Ğ', ["ҙ"]="ð", ['Ҙ']='Đ', ["ҡ"]="q", ['Ҡ']='Q', ["ҫ"]="θ", ['Ҫ']='Θ',
["һ"]="h", ['Һ']='H', ["ә"]="ä", ['Ә']='Ä'
};
-- Transliterate any words or phrases
function export.tr(word)
if type(word) == 'table' then -- called directly from a template
word = word.args[1]
end
word = mw.ustring.gsub(word, "([АаЕеЭэЮюЯяӘәИиҮүУуӨөЫы])[үу]", "%1w") -- ү/у should be transliterated as w after vowels
word = mw.ustring.gsub(
word, "([АОӨӘУЫЕЯЁЮИЕаоөәуыэяёюиеъь%A][́̀]?)([Ее])",
function(a,e) return a..(e=='е' and 'ye' or 'Ye') end
):gsub("^Е",'Ye'):gsub("^е",'ye');
word = mw.ustring.gsub(word, '.', tt)
return word
end
return export