Module:ba-translit: difference between revisions

From Wiktionary, the free dictionary
Jump to navigation Jump to search
Content deleted Content added
mNo edit summary
No edit summary
Line 13: Line 13:
};
};


function M.tr(f)--translit any words or phrases
function M.tr(word)--translit any words or phrases
if type(word) == 'table' then -- called directly from a template
local word = f.args[1]
word = word.args[1]
end
word = mw.ustring.gsub(word, "([АаЕеЭэЮюЯяӘәИиҮүУуӨөЫы])[үу]", "%1w") -- ү/у should be transliterated as w after vowels
word = mw.ustring.gsub(word, "([АаЕеЭэЮюЯяӘәИиҮүУуӨөЫы])[үу]", "%1w") -- ү/у should be transliterated as w after vowels
word = mw.ustring.gsub(
word = mw.ustring.gsub(

Revision as of 14:22, 30 June 2013

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.

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 M={}

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',   ["ә"]="ä",['Ә']='Ä'
};

function M.tr(word)--translit any words or phrases
    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');
    return (mw.ustring.gsub(word, '.', tt))
end
return M