एकक:kpt-translit
Disnnem
Documentation for this module may be created at एकक:kpt-translit/doc
local u = require("Module:string/char")
local export = {}
local mapping1 = {
["п"] = "p", ["б"] = "b",
["т"] = "t", ["д"] = "d",
["к"] = "k", ["г"] = "g",
["ц"] = "c", ["ч"] = "č",
["с"] = "s", ["з"] = "z",
["ш"] = "š", ["ж"] = "ž",
["х"] = "x", ["щ"] = "šš",
["м"] = "m", ["н"] = "n",
["р"] = "r", ["л"] = "l",
["в"] = "v", ["й"] = "j",
["и"] = "i", ["е"] = "e",
["э"] = "e", ["а"] = "a",
["о"] = "o", ["у"] = "u",
["ъ"] = "ʾ", ["ь"] = "ʾ",
["ᵸ"] = "̃", ["’"] = "ʾ",
}
local mapping2 = {
["пӏ"] = "ṗ", ["тӏ"] = "ṭ",
["кӏ"] = "ḳ", ["къ"] = "qq",
["дж"] = "ǯ", ["цӏ"] = "c̣",
["лӏ"] = "ƛ", ["кь"] = "ƛ̣ƛ̣",
["чӏ"] = "č̣", ["хъ"] = "q̇q̇",
["лъ"] = "λ", ["гъ"] = "ġ",
["хӏ"] = "ḥ", ["гӏ"] = "ʕ",
["гь"] = "h", ["хь"] = "ç",
["кьӏ"] = "ƛ̣",
["аᵸ"] = "ã", ["еᵸ"] = "ẽ",
["иᵸ"] = "ĩ", ["оᵸ"] = "õ",
["уᵸ"] = "ũ",
["а̄"] = "aa", ["е̄"] = "ee",
["ӣ"] = "ii", ["о̄"] = "oo",
["ӯ"] = "uu",
["а̄ᵸ"] = "ãã", ["е̄ᵸ"] = "ẽẽ",
}
function export.tr(text, lang, sc)
local str_gsub = string.gsub
local UTF8_char = "[%z\1-\127\194-\244][\128-\191]*"
-- Convert capital to lowercase palochka.
text = str_gsub(text, u(0x4C0), u(0x4CF))
for pat, repl in pairs(mapping2) do
text = str_gsub(text, pat, repl)
end
text = str_gsub(text, UTF8_char, mapping1)
return text
end
return export