Module:ba-translit

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