Module:uum-translit

From Wiktionary, the free dictionary
Jump to navigation Jump to search

A user suggests that this Urum module be cleaned up.
Please see the discussion on Requests for cleanup(+) for more information and remove this template after the problem has been dealt with.

This module will transliterate Urum language text per WT:UUM 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:uum-translit/testcases.

Functions

tr(text, lang, sc)
Transliterates a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When the transliteration fails, returns nil.

local export = {}
local tab =  
             {["А"] ="A" ,    ["Б"] ="B",   ["В"] ="V",   ["Г"] ="G",   ["Д"] ="D",   ["Е"] ="E",   ["Ж"] ="Ž",                                       ["З"] ="Z",   ["И"] ="I",   ["Й"] ="J",
	
     ["К"]="K",  ["Л"]="L", ["М"]="M", ["Н"]="N",  ["О"]="O",  ["Ӧ"]="Ö", ["П"]="P", ["Р"]="R", ["С"]="S",  ["Т"]="T",
["У"]="U",  ["Ӱ"]="Ü", ["Ф"]="F", ["Х"]="H", ["Ч"]="Č", ["Ш"]="Š",   ["Ґ"]="Ǧ", ["Ы"]="Y", ["Э"]="E",
['а']='a', ['б']='b', ['в']='v', ['г']='g',  ['д']='d', ['е']='e',  ['ж']='ž',  ['з']='z', ['и']='i', ['й']='j',
['к']='k', ['л']='l', ['м']='m', ['н']='n',  ['о']='o', ['ӧ']='ö',  ['п']='p',  ['р']='r', ['с']='s', ['т']='t',
['у']='u', ['ӱ']='ü', ['ф']='f', ['х']='h',  ['ч']='č',  ['ш']='š', ['ґ']='ǧ', ['ы']='y', ['э']='e',
['дж']= 'dž' , ['Дж']= 'Dž',
}                  

local iotated = {
	["Е"] = "Je",
	["е"] = "je",
}

function export.tr(text, lang, sc)
	local ugsub = mw.ustring.gsub
	
	-- е after a vowel or at the beginning of a word becomes je	
	text = ugsub(text, "([АОӨУҮЫЯЁЮИЪЬаоөуүыяёюиъь%A][́̀]?)е", "%1je")
	--text = mw.ustring.gsub(text, "([АОӨУҮЫЕЯЁЮИЕЪЬаоөуүыэяёюиеъь%A][́̀]?)е", "%1je")
	text = ugsub(text, "^[Ее]", iotated)
	text = ugsub(text, "([^Ѐ-ӿ])([Ее])", function(a, b)
			return a .. iotated[b]
		end)
	
	return (ugsub(text, '.', tab))
end
 
return export