這個模組將轉寫蒙古文當中的文字。它被用於轉寫布里亞特語, 古典蒙古語, 達斡爾語, 蒙古語, 梵語, 杜漢語, 古典藏語, 中古蒙古語, and 哈米尼干語。 最好不要直接從模板或其他模組呼叫此模組;要從模板中使用它, 請使用{{xlit}}; 要從模組中使用它,請使用Module:languages#Language:transliterate

關於測試用例,請見Module:Mong-translit/testcases

函式

tr(text, lang, sc)
Transliterates a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When the transliteration fails, returns nil.

local export = {}

local oneChar = {
	["ᠠ"] = "a", ["ᠡ"] = "e", ["ᠢ"] = "i", ["ᠣ"] = "o", ["ᠤ"] = "u", ["ᠥ"] = "ö", ["ᠦ"] = "ü", ["ᠧ"] = "ē", ["ᠨ"] = "n", ["ᠩ"] = "ŋ", ["ᠪ"] = "b", ["ᠫ"] = "p", ["ᠬ"] = "q", ["ᠭ"] = "ɣ", ["ᠮ"] = "m", ["ᠯ"] = "l", ["ᠰ"] = "s", ["ᠱ"] = "š", ["ᠲ"] = "t", ["ᠳ"] = "d", ["ᠴ"] = "č", ["ᡸ"] = "š̤", ["ᠵ"] = "ǰ", ["ᠶ"] = "y", ["ᠷ"] = "r", ["ᠸ"] = "w", ["ᠹ"] = "f", ["ᠺ"] = "k", ["ᠻ"] = "kh", ["ᠼ"] = "c", ["ᠽ"] = "z", ["ᠾ"] = "h", ["ᠿ"] = "ž", ["ᡀ"] = "lh", ["ᡁ"] = "zh", ["ᡂ"] = "ch",
	["᠐"] = "0", ["᠑"] = "1", ["᠒"] = "2", ["᠓"] = "3", ["᠔"] = "4", ["᠕"] = "5", ["᠖"] = "6", ["᠗"] = "7", ["᠘"] = "8", ["᠙"] = "9",
	["᠂"] = ",", ["᠃"] = ".", ["᠄"] = ":", ["᠁"] = "…", ["︖"] = "?", ["︕"] = "!", [" "] = "-", ["᠊"] = "-",
	["᠋"] = "", ["᠌"] = "", ["᠍"] = "", ["᠏"] = "", ["᠎"] = "'"
}

local twoChars = {
	["ᠠᠢ"] = "ai̯", ["ᠡᠢ"] = "ei̯", ["ᠣᠢ"] = "oi̯", ["ᠤᠢ"] = "ui̯", ["ᠦᠢ"] = "üi̯", ["ᠧᠢ"] = "ēi̯"
}

function export.tr(text, lang, sc)
	if sc ~= "Mong" then
		return nil
	elseif mw.ustring.match(text, "ᠥᠢ") or mw.ustring.match(text, "ᠥᠶᠢ") then
		local diphthong = mw.ustring.match(text, "ᠥᠶ?ᠢ")
		error("Diphthong " .. diphthong .. " does not exist. Please replace with " .. mw.ustring.gsub(diphthong, "ᠥ", "ᠦ") .. ".")
	end
	for digraph, replacement in pairs(twoChars) do
		text = string.gsub(text, digraph, replacement)
	end
	text = mw.ustring.gsub(text, ".", oneChar)
	text = mw.ustring.gsub(text, "q([eöü ])", "k%1")
	text = mw.ustring.gsub(text, "q$", "k")
	text = mw.ustring.gsub(text, "ɣ([eöü ])", "g%1")
	text = mw.ustring.gsub(text, "ɣ$", "g")
	return text
end

return export