local export = {}
local tt = {
="b", ="p", ="f", ="v", ="m",
="d", ="t", ="j", ="n", ="z", ="c",
="s", ="ž", ="ş", ="şç",
="l", ="č", ="r", ="g", ="k", ="χ",
="ʾ", ="a", ="e", ="y", ="i", ="o", ="u",
="ë", ="’", ="e", ="ju", ="ja",
="B", ="P", ="F", ="V", ="M",
="D", ="T", ="J", ="N", ="Z", ="C",
="S", ="Ž", ="Ş", ="Şç",
="L", ="Ç", ="R", ="G", ="K", ="Χ",
="ʾ", ="A", ="E", ="Y", ="I", ="O", ="U",
="Ë", ="’", ="E", ="Ju", ="Ja"};
local trigraphs = {
= 'q°',
= 'Q°',
= 'q̄°',
= 'Q̄°',
= 'q̇°',
= 'Q̇°',
= 'ġ°',
= 'Ġ°',
= 'ḳ°',
= 'Ḳ°',
= 'k̄°',
= 'K̄°',
}
local digraphs = {
= 'ž°',
= 'Ž°',
= 'č°',
= 'Č°',
= 'č̄°',
= 'Č̄°',
= 'č̣',
= 'Č̣',
= 'š°',
= 'Š°',
= 'χ°',
= 'Χ°',
= 'p̄',
= 'ṗ',
= 't̄',
= 'P̄',
= 'Ṗ',
= 'T̄',
= 'c̣',
= 'c̄',
= 'ṭ',
= 'č̄',
= 'č̣',
= 'q̇',
= 'k̄',
= 'ḳ',
= 'q',
= 'q̄',
= 'ġ',
= 'h',
= 'C̣',
= 'C̄',
= 'Ṭ',
= 'Č̄',
= 'Č̣',
= 'Q̇',
= 'K̄',
= 'Ḳ',
= 'Q',
= 'Q̄',
= 'Ġ',
= 'H',
= 'u̱',
= 'U̱',
= 'x',
= 'X',
= 'g°',
= 'G°',
= 'k°',
= 'K°',
= 'a̱',
= 'A̱',
}
function export.tr(text, lang, sc)
local str_gsub = string.gsub
local UTF8char = '*'
-- Convert uppercase palochka to lowercase. Lowercase is found in tables
-- above.
text = str_gsub(text, mw.ustring.char(0x4C0), mw.ustring.char(0x4CF))
for trigraph, translit in pairs(trigraphs) do
text = str_gsub(text, trigraph, translit)
end
for digraph, translit in pairs(digraphs) do
text = str_gsub(text, digraph, translit)
end
text = str_gsub(text, UTF8char, tt)
return text
end
return export