模組:Xwo-translit

維基詞典,自由的多語言詞典

這個模組將轉寫書面衛拉特語的文字。 最好不要直接從模板或其他模組呼叫此模組;要從模板中使用它, 請使用{{xlit}}; 要從模組中使用它,請使用Module:languages#Language:transliterate

關於測試用例,請見Module:Xwo-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 MACRON    = mw.ustring.char(0x0304)

local tt = {
	["ᠠ"] = "a",	["ᡄ"] = "e",	["ᡅ"] = "i",	["ᡆ"] = "o",	["ᡇ"] = "u",
	["ᡈ"] = "ö",	["ᡉ"] = "ü",
	["ᡋ"] = "b",    ["ᡌ"] = "p",    ["ᡏ"] = "m",    ["ᠯ"] = "l",	
	["ᠰ"] = "s",	["ᠱ"] = "š",   	["ᠨ"] = "n",   	["ᡍ"] = "x",  
	["ᡎ"] = "ɣ",    ["ᡐ"] = "t",    ["ᡑ"] = "d",   ["ᡔ"] = "c",
	["ᡒ"] = "č",    ["ᡓ"] = "ǰ",    ["ᡕ"] = "y",   ["ᠷ"] = "r", 
	["ᡖ"] = "w",    ["ᡙ"] = "h",    ["ᡘ"] = "gh",  ["ᡗ"] = "q",
	["ᡚ"] = "ž",    ["ᡛ"] = "ń",    ["ᡜ"] = "dz",  ["ᡊ"] = "ng",
	["ᠴ"] = "z",
	["ᡃ"] = MACRON, ["᠎"] = "-",	["︖"] = "?",	["︕"] = "!",
	["᠂"] = ",",	["᠃"] = ".",	[" "] = "-",	["᠊"] = "-"
}

function export.tr(text)
	local velar_conv = { ["x"] = "k", ["ɣ"] = "g" }
	text = mw.ustring.gsub(text, ".", tt)
	text = mw.ustring.gsub(text, "([xɣ])(.?)", function(velar, vowel)
		return ((mw.ustring.match(vowel, "[eiöü ]") or vowel == "")
			and mw.ustring.gsub(velar, "[xɣ]", velar_conv) or velar) .. vowel end)
	text = mw.ustring.gsub(text, "zi", "ji")
	return text
end

return export