local export = {}
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local conv = {
= "k", = "kh", = "g", = "ng",
= "c", = "ch", = "j", = "ny",
= "t", = "th", = "d", = "n",
= "p", = "ph", = "b", = "m",
= "ts", = "tsh", = "dz", = "w",
= "zh", = "z", = "‘", = "y",
= "r", = "l", = "sh", = "s",
= "h", = "a",
= "ṭ", = "ṭh", = "ḍ", = "ṇ", = "ṣ",
= "i",
= "u",
= "e",
= "o",
= "ā",
= "ī",
= "ū",
= "ai",
= "au",
= "ṛ",
= "ṝ",
= "ḷ",
= "ḹ",
= "ṃ",
= "ṃ",
= "aḥ",
= "oṃ",
= "k", = "kh", = "g", = "ng",
= "c", = "ch", = "j", = "ny",
= "t", = "th", = "d", = "n",
= "p", = "ph", = "b", = "m",
= "ts", = "tsh", = "dz", = "w",
= "zh", = "z", = "‘", = "y",
= "r", = "l", = "sh", = "s",
= "h", = "a",
= "ṭ", = "ṭh", = "ḍ", = "ṇ", = "ṣ"
}
local symbol = {
= "0", = "1", = "2", = "3", = "4",
= "5", = "6", = "7", = "8", = "9",
= "0.5", = "1.5", = "2.5", = "3.5", = "4.5",
= "5.5", = "6.5", = "7.5", = "8.5", = "9.5",
= " ", = "·", = "'",
}
function export.tr(text, lang, sc, debug_mode)
text = gsub(text, "+ ?", "་")
text = gsub(text, "+$", "")
text = gsub(text, "()(འ)", "%1་‘་%2")
for Tibetan_word in mw.ustring.gmatch(text, "+") do
Tibetan_word = gsub(Tibetan_word, "་$", "")
for syllable in mw.ustring.gmatch(Tibetan_word, "+") do
local tr = {}
local syl = gsub(syllable, "ཨ()", "%1")
syl = gsub(syl, "(+)(*)$", "%1a%2")
letter = mw.text.split(syl, "", true)
for i = 1, #letter do
tr = conv] or letter
end
if not match(syllable,"") then
if #letter < 5 then
if #letter > 3 then
if letter ~= "འ" and letter ~= "འ" then
table.insert(tr, 3, "a")
end
elseif #letter > 2 then
if letter == "འ" then
if letter == "འ" then
tr = { "‘", tr, "a", "‘" }
else
tr = { tr, tr, "a", "‘" }
end
elseif not match(letter, "") or (match(letter..letter..letter, "ས")) then
table.insert(tr, 2, "a")
else
table.insert(tr, 3, "a")
end
elseif match(letter, "") and not match(letter or "", "") then
table.insert(tr, "a")
else
table.insert(tr, 2, "a")
end
end
end
tr = table.concat(tr)
if match(syllable, "གཡ") then
tr = gsub(tr, "gy", "g.y")
end
text = gsub(text, syllable, tr, 1)
end
end
text = gsub(text, ".", symbol)
text = gsub(text, " ' ", "")
text = gsub(text, " *· *·? *", " · ")
text = gsub(text, " *%.", ".")
if match(text, "") and not debug_mode then
return nil
else
return text
end
end
return export