local export = {}
local tt = {
="b", ="p", ="f", ="w", ="m",
="d", ="t", ="j", ="n", ="z", ="c",
="s", ="ž", ="š", ="š̄",
="l", ="č", ="r", ="g", ="k", ="χ",
="ʾ", ="a", ="e", ="ə", ="i", ="o", ="u",
="ë", ="’", ="è", ="ju", ="ja",
="B", ="P", ="F", ="W", ="M",
="D", ="T", ="J", ="N", ="Z", ="C",
="S", ="Ž", ="Š", ="Š̄",
="L", ="Č", ="R", ="G", ="K", ="Χ",
="ʾ", ="A", ="E", ="Ə", ="I", ="O", ="U",
="Ë", ="’", ="È", ="Ju", ="Ja"};
local tetragraphs = {
= 'c̣̄',
= 'č̣̄',
= 'ḳ̄',
= 'ł̄',
= 'C̣̄',
= 'Č̣̄',
= 'Ḳ̄',
= 'Ł̄',
}
local digraphs = {
= 'c̣',
= 'c̄',
= 'ṭ',
= 'kl',
= 's̄',
= 'ł',
= 'č̄',
= 'č̣',
= 'kḷ',
= 'k̄',
= 'ḳ',
= 'x',
= 'q̄',
= 'q̇̄',
= 'ġ',
= 'χ̄',
= 'ʿ',
= 'ḥ',
= 'h',
= 'C̣',
= 'C̄',
= 'Ṭ',
= 'Kl',
= 'S̄',
= 'Ł',
= 'Č̄',
= 'Č̣',
= 'Kḷ',
= 'K̄',
= 'Ḳ',
= 'X',
= 'Q̄',
= 'Q̇̄',
= 'Ġ',
= 'Χ̄',
= 'ʿ',
= 'Ḥ',
= 'H',
}
function export.tr(text, lang, sc)
local str_gsub = string.gsub
-- Convert uppercase palochka to lowercase. Lowercase is found in tables
-- above.
text = str_gsub(text, mw.ustring.char(0x4C0), mw.ustring.char(0x4CF))
for grapheme, replacement in pairs(tetragraphs) do
text = str_gsub(text, grapheme, replacement)
end
for grapheme, replacement in pairs(digraphs) do
text = str_gsub(text, grapheme, replacement)
end
text = str_gsub(text, '*', tt)
return text
end
return export