Documentation for this module may be created at Module:uga-translit/doc

local export = {}

local tt = {
	["πŽ€"] = "αΊ£", ["𐎁"] = "b", ["πŽ‚"] = "g", ["πŽƒ"] = "αΈ«", ["πŽ„"] = "d",
	["πŽ…"] = "h", ["πŽ†"] = "w", ["πŽ‡"] = "z", ["𐎈"] = "αΈ₯", ["πŽ‰"] = "αΉ­",
	["𐎊"] = "y", ["πŽ‹"] = "k", ["𐎌"] = "Ε‘", ["𐎍"] = "l", ["𐎎"] = "m",
	["𐎏"] = "ḏ", ["𐎐"] = "n", ["πŽ‘"] = "αΊ“", ["πŽ’"] = "s", ["πŽ“"] = "ΚΏ",
	["πŽ”"] = "p", ["πŽ•"] = "αΉ£", ["πŽ–"] = "q", ["πŽ—"] = "r", ["𐎘"] = "αΉ―",
	["πŽ™"] = "Δ‘", ["𐎚"] = "t", ["πŽ›"] = "ỉ",["𐎜"] = "α»§", ["𐎝"] = "sΜ€",
	["𐎟"] = " · ", -- word divider
}

local reverse = {
    ["αΊ£"] = "πŽ€", ["b"] = "𐎁", ["g"] = "πŽ‚", ["αΈ«"] = "πŽƒ", ["d"] = "πŽ„",
    ["h"] = "πŽ…", ["w"] = "πŽ†", ["z"] = "πŽ‡", ["αΈ₯"] = "𐎈", ["αΉ­"] = "πŽ‰",
    ["y"] = "𐎊", ["k"] = "πŽ‹", ["Ε‘"] = "𐎌", ["l"] = "𐎍", ["m"] = "𐎎",
    ["ḏ"] = "𐎏", ["n"] = "𐎐", ["αΊ“"] = "πŽ‘", ["s"] = "πŽ’", ["ΚΏ"] = "πŽ“",
    ["p"] = "πŽ”", ["αΉ£"] = "πŽ•", ["q"] = "πŽ–", ["r"] = "πŽ—", ["αΉ―"] = "𐎘",
    ["Δ‘"] = "πŽ™", ["t"] = "𐎚", ["ỉ"] = "πŽ›",["α»§"] = "𐎜", ["Ε›"] = "𐎝",
    ["·"] = "𐎟", -- word divider
}

local get_glottal = {
	["a"] = "αΊ£",
	["i"] = "ỉ",
	["u"] = "α»§",
}

local aliases = {
	["a"] = "αΊ£",
	["i"] = "ỉ",
	["u"] = "α»§",
	["ΞΈ"] = "αΉ―",
	["ð"] = "ḏ",
	["x"] = "αΈ«",
	["αΊ–"] = "αΈ«",
	["Ι£"] = "Δ‘",
	["αΈ‘"] = "Δ‘",
	["Δ§"] = "αΈ₯",
	["αΈ³"] = "q",
	["αΈ“"] = "αΊ“",
}

function export.tr(text, lang, sc)
	text = mw.ustring.gsub(text, ".", tt)
	return text
end

function export.reverse(text)
	if type(text) == "table" then
		text = text.args[1]
	end
	text = mw.ustring.gsub(text, " *[.Β·] *", "Β·")
	text = mw.ustring.gsub(text, "[ΚΏΛΚ•β€˜]", "ΚΏ")
	text = mw.ustring.gsub(text, "[ʾˀʔ’]", "ΚΎ")
	text = mw.ustring.gsub(text, "ΚΎ([aiu])", get_glottal)
	text = mw.ustring.gsub(text, "s[Μ€2β‚‚]", "Ε›")
	text = mw.ustring.gsub(text, "s<sub>2</sub>", "Ε›")
	text = mw.ustring.gsub(text, ".", reverse)
	return text
end

return export