Module:Ce-translit

local export = {}

local tt = { ["а"]="a", ["б"]="b", ["в"]="w", ["г"]="g", ["д"]="d", ["е"]="e", ["ё"]="ë", ["ж"]="ž", ["з"]="z", ["и"]="i", ["й"]="j", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="o", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ф"]="f", ["х"]="χ", ["ц"]="c", ["ч"]="č", ["ш"]="š", ["щ"]="šč", ["ъ"]="ʾ", ["ы"]="y", ["ь"]="’", ["э"]="e", ["ю"]="ju", ["я"]="ja", ["ӏ"]="ʿ", ["А"]="A", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="Ë", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Х"]="Χ", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Šč", ["Ъ"]="ʾ", ["Ы"]="Y", ["Ь"]="’", ["Э"]="E", ["Ю"]="Ju", ["Я"]="Ja", ["ӏ"]="ʿ"};

local digraphs = { ["Аь"] = "Ä", ["аь"] = "ä", ["Гӏ"] = "Ġ", ["гӏ"] = "ġ", ["Дж"] = "Ǯ", ["дж"] = "ǯ", ["Дз"] = "Ʒ", ["дз"] = "ʒ", ["Ий"] = "Ī", ["ий"] = "ī", ["Кх"] = "Q", ["кх"] = "q", ["Кӏ"] = "Ḳ", ["кӏ"] = "ḳ", ["Къ"] = "Q̇", ["къ"] = "q̇", ["Оь"] = "Ö", ["оь"] = "ö", ["Пӏ"] = "Ṗ", ["пӏ"] = "ṗ", ["Тӏ"] = "Ṭ", ["тӏ"] = "ṭ", ["Уь"] = "Ü", ["уь"] = "ü", ["Хӏ"] = "H", ["хӏ"] = "h", ["Хь"] = "Ḥ", ["хь"] = "ḥ", ["Цӏ"] = "C̣", ["цӏ"] = "c̣", ["Чӏ"] = "Č̣", ["чӏ"] = "č̣", ["Юь"] = "Jü", ["юь"] = "jü", ["Яь"] = "Jä", ["яь"] = "jä", }

function export.tr(text, lang, sc) local str_gsub = string.gsub -- Convert capital to lowercase palochka. Lowercase is found in tables -- above. text = str_gsub(text, mw.ustring.char(0x4C0), mw.ustring.char(0x4CF)) text = str_gsub(text, "ккх", "qː") text = str_gsub(text, "Ккх", "Qː") for digraph, translit in pairs(digraphs) do		text = str_gsub(text, digraph, translit) end text = str_gsub(text, '[%z\1-127\194-\244][\128-\191]*', tt) -- UTF-8 character pattern return text end

return export