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.
tr(text, lang, sc)
text
written in the script specified by the code sc
, and language specified by the code lang
.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,
"(?)()",
function(a, e)
return a .. iotated
end)
text = ugsub(text,
"^",
iotated)
text = str_gsub(text, '*', tt)
return text
end
return export