Module:ug-translit

ئورنى Wiktionary

Documentation for this module may be created at Module:ug-translit/doc

--[[
Transliteration for Uyghur.
]]--

local export = {}

local UEYtoULYtable = {
    -- consonants
    ["م"] = "m",  ["ن"] = "n",  ["د"] = "d",  ["ت"] = "t",
    ["ب"] = "b",  ["پ"] = "p",  ["ف"] = "f",  ["ق"] = "q",
    ["ك"] = "k",  ["ڭ"] = "ng", ["گ"] = "g",  ["غ"] = "gh",
    ["ھ"] = "h",  ["خ"] = "x",  ["چ"] = "ch", ["ج"] = "j",
    ["ژ"] = "zh", ["ز"] = "z",  ["س"] = "s",  ["ش"] = "sh",
    ["ر"] = "r",  ["ل"] = "l",  ["ئ"] = "'",
    ["ي"] = "y",  ["ۋ"] = "w",
    -- vowels
    ["ا"] = "a", ["ە"] = "e", ["ې"] = "ë", ["ى"] = "i",
    ["و"] = "o", ["ۆ"] = "ö", ["ۇ"] = "u", ["ۈ"] = "ü",
    -- punctuation
    ["؟"]="?",
    ["،"]=",",
    ["؛"]=";"
}

local UEYtoUSYtable = {
    --bashqa herpler
    --ы ё ц э ю я
    --ya = я,  yu = ю
   
    -- uzuk tawushlar       

    ["م"] = "м",  ["ن"] = "н",  ["د"] = "д",  ["ت"] = "т",
    ["ب"] = "б",  ["پ"] = "п",  ["ف"] = "ф",  ["ق"] = "қ",
    ["ك"] = "к",  ["ڭ"] = "ң", ["گ"] = "г",  ["غ"] = "ғ",
    ["ھ"] = "һ",  ["خ"] = "х",  ["چ"] = "ч", ["ج"] = "җ",
    ["ژ"] = "ж", ["ز"] = "з",  ["س"] = "с",  ["ش"] = "ш",
    ["ر"] = "р",  ["ل"] = "л",  ["ئ"] = "",
    ["ي"] = "й",  ["ۋ"] = "в",
    -- sozuq tawushlar 
    ["ا"] = "а", ["ە"] = "ә", ["ې"] = "е", ["ى"] = "и",
    ["و"] = "о", ["ۆ"] = "ө", ["ۇ"] = "у", ["ۈ"] = "ү",
    -- belgiler
    ["؟"]="?",
    ["،"]=",",
    ["؛"]=";"
    

}

function export.tr(text)
    if type(text) == "table" then text = text.args[1] end

    -- transliterate from UEY to ULY
    -- remove initial hamza
    text = mw.ustring.gsub(text, "^ئ(.)", "%1")
    text = mw.ustring.gsub(text, "%sئ(.)", " %1")
    -- transliterate letters one to one
    text = mw.ustring.gsub(text, ".", UEYtoULYtable)

    return text
end

function export.tr2(text)
    if type(text) == "table" then text = text.args[1] end

    -- transliterate from UEY to USY
    -- remove initial hamza
    text = mw.ustring.gsub(text, "^ئ(.)", "%1")
    text = mw.ustring.gsub(text, "%sئ(.)", " %1")
    --qoshma sozler uchun
    text = mw.ustring.gsub(text, "يۇ", "ю")
    text = mw.ustring.gsub(text, "يا", "я")
--    text = mw.ustring.gsub(text, "يو", "ё")
    -- transliterate letters one to one
    text = mw.ustring.gsub(text, ".", UEYtoUSYtable)

    return text
end

return export