ข้ามไปเนื้อหา

มอดูล:mnw-pron

จาก วิกิพจนานุกรม พจนานุกรมเสรี

local export = {}

local m_IPA = require("Module:IPA")
local lang = require("Module:languages").getByCode("mnw")
local rsub = mw.ustring.gsub
local rlower = mw.ustring.lower

local function phonetic(text)
	text = rlower(text)
	text = rsub(text, "", "aʔ")
	text = rsub(text, "က", "k")
	text = rsub(text, "ခ", "kʰ")
	text = rsub(text, "ဂ", "k")
	text = rsub(text, "ဃ", "kʰ")
	text = rsub(text, "ၚ", "ŋ")
	text = rsub(text, "စ", "c")
	text = rsub(text, "ဆ", "cʰ")
	text = rsub(text, "ဇ", "c")
	text = rsub(text, "ၛ", "c")
	text = rsub(text, "ည", "ɲ")
	text = rsub(text, "ဋ", "t")
	text = rsub(text, "ဌ", "tʰ")
	text = rsub(text, "ဍ", "ɗ")
	text = rsub(text, "ဎ", "tʰ")
	text = rsub(text, "ဏ", "n")
	text = rsub(text, "တ", "t")
	text = rsub(text, "ထ", "tʰ")
	text = rsub(text, "ဒ", "t")
	text = rsub(text, "ဓ", "tʰ")
	text = rsub(text, "န", "n")
	text = rsub(text, "ပ", "p")
	text = rsub(text, "ဖ", "pʰ")
	text = rsub(text, "ဗ", "p")
	text = rsub(text, "ဘ", "pʰ")
	text = rsub(text, "မ", "m")
	text = rsub(text, "ယ", "j")
	text = rsub(text, "ရ", "r")
	text = rsub(text, "လ", "l")
	text = rsub(text, "ဝ", "w")
	text = rsub(text, "သ", "s")
	text = rsub(text, "ဟ", "h")
	text = rsub(text, "ဠ", "l")
	text = rsub(text, "ၜ", "ɓ")
	text = rsub(text, "အ", "ʔ")
	text = rsub(text, "ၝ", "b")
	text = rsub(text, "္က", "kaʔ")
	text = rsub(text, "္ခ", "kʰaʔ")
	text = rsub(text, "္ဂ", "kɛ̤ʔ")
	text = rsub(text, "္ဃ", "kʰɛ̤ʔ")
	text = rsub(text, "္ၚ", "ŋ")
	text = rsub(text, "္စ", "caʔ")
	text = rsub(text, "္ဆ", "cʰaʔ")
	text = rsub(text, "္ဇ", "cɛ̤ʔ")
	text = rsub(text, "ည္ည", "ɲɛ̤")
	text = rsub(text, "္ည", "ɲɛ̤ʔ")
	text = rsub(text, "္ဋ", "taʔ")
	text = rsub(text, "္ဌ", "tʰaʔ")
	text = rsub(text, "္ဍ", "ɗaʔ")
	text = rsub(text, "္ဎ", "tʰɛ̤ʔ")
	text = rsub(text, "္ဏ", "naʔ")
	text = rsub(text, "္တ", "taʔ")
	text = rsub(text, "္ထ", "tʰaʔ")
	text = rsub(text, "္ဒ", "tɛ̤ʔ")
	text = rsub(text, "္ဓ", "tʰɛ̤ʔ")
	text = rsub(text, "္န", "nɛ̤ʔ")
	text = rsub(text, "္ပ", "paʔ")
	text = rsub(text, "္ဖ", "pʰaʔ")
	text = rsub(text, "္ဗ", "pɛ̤ʔ")
	text = rsub(text, "္ဘ", "pʰɛ̤ʔ")
	text = rsub(text, "္မ", "mɛ̤ʔ")
	text = rsub(text, "္ယ", "jɛ̤ʔ")
	text = rsub(text, "္လ", "lɛ̤ʔˀ")
	text = rsub(text, "္သ", "saʔ")
	text = rsub(text, "္ဟ", "haʔ")
	text = rsub(text, "္ၜ", "ɓaʔ")
	text = rsub(text, "္အ", "aʔ")
	text = rsub(text, "ၞ", "͡na")
	text = rsub(text, "ၟ", "͡ma")
	text = rsub(text, "ျ", "͡ʒa")
	text = rsub(text, "ြ", "͡la")
	text = rsub(text, "ၠ", "͡la")
	text = rsub(text, "ွ", "͡wa")
	text = rsub(text, "း", "ˀ")
	text = rsub(text, "ဳ", "ə")
	text = rsub(text, "ဲ", "oə")
	text = rsub(text, "ဴ", "ɤ̀")
	text = rsub(text, "ူ", "ù")
	text = rsub(text, "ိုက်", "aɪːk")
	text = rsub(text, "ံက်", "ɒk")
	text = rsub(text, "ေါက်", "ʊk")
	text = rsub(text, "ောက်", "ʊk")
	text = rsub(text, "ေက်", "ɔɪk")
	text = rsub(text, "ုက်", "eɪk")
	text = rsub(text, "ိက်", "oɪk")
	text = rsub(text, "ါက်", "aɪk")
	text = rsub(text, "ာက်", "aɪk")
	text = rsub(text, "က်", "ɛ̀k")
	text = rsub(text, "ိုၚ်", "aɪːn")
	text = rsub(text, "ံၚ်", "ɒŋ")
	text = rsub(text, "ေါၚ်", "ɔːŋ")
	text = rsub(text, "ောၚ်", "ɔːŋ")
	text = rsub(text, "ေၚ်", "ɔiŋ")
	text = rsub(text, "ုၚ်", "eɪn")
	text = rsub(text, "ိၚ်", "oɪŋ")
	text = rsub(text, "ါၚ်", "aɪn")
	text = rsub(text, "ာၚ်", "aɪn")
	text = rsub(text, "ၚ်", "ɛ̀ŋ")
	text = rsub(text, "ိုတ်", "ɒːt")
	text = rsub(text, "ေါတ်", "ʊt")
	text = rsub(text, "ောတ်", "ʊt")
	text = rsub(text, "ေတ်", "ɪt")
	text = rsub(text, "ုတ်", "uːt")
	text = rsub(text, "ိတ်", "ɪt")
	text = rsub(text, "ါတ်", "ɑt")
	text = rsub(text, "ာတ်", "ɑt")
	text = rsub(text, "တ်", "ɔt")
	text = rsub(text, "ိုန်", "ɜːn")
	text = rsub(text, "ောန်", "ɔːn")
	text = rsub(text, "ေန်", "ən")
	text = rsub(text, "ုန်", "un")
	text = rsub(text, "ိန်", "ɪːn")
	text = rsub(text, "ါန်", "ʌn")
	text = rsub(text, "ာန်", "ʌn")
	text = rsub(text, "န်", "ɔn")
	text = rsub(text, "ိုပ်", "ɔːp")
	text = rsub(text, "ေါပ်", "ʊp")
	text = rsub(text, "ောပ်", "ʊp")
	text = rsub(text, "ေပ်", "ɪp")
	text = rsub(text, "ုပ်", "up")
	text = rsub(text, "ိပ်", "ɪːp")
	text = rsub(text, "ါပ်", "ʌp")
	text = rsub(text, "ာပ်", "ʌp")
	text = rsub(text, "ပ်", "ɔp")
	text = rsub(text, "ိုံ", "ɒm")
	text = rsub(text, "ေါံ", "ɔːm")
	text = rsub(text, "ောံ", "ɔːm")
	text = rsub(text, "ေံ", "ɪm")
	text = rsub(text, "ုံ", "um")
	text = rsub(text, "ိံ", "ɪːm")
	text = rsub(text, "ါံ", "ɑːm")
	text = rsub(text, "ာံ", "ɑːm")
	text = rsub(text, "ံ", "ɒm")
	text = rsub(text, "ိုမ်", "ɒm")
	text = rsub(text, "ေါမ်", "ɔːm")
	text = rsub(text, "ောမ်", "ɔːm")
	text = rsub(text, "ေမ်", "ɪm")
	text = rsub(text, "ုမ်", "um")
	text = rsub(text, "ိမ်", "ɪːm")
	text = rsub(text, "ါမ်", "ɑːm")
	text = rsub(text, "ာမ်", "ɑːm")
	text = rsub(text, "မ်", "ɒm")
	text = rsub(text, "ိုဲ", "ɜːi")
	text = rsub(text, "ေါဲ", "uə")
	text = rsub(text, "ောဲ", "uə")
	text = rsub(text, "ေဲ", "iə")
	text = rsub(text, "ုဲ", "ui")
	text = rsub(text, "ါဲ", "ɑi")
	text = rsub(text, "ာဲ", "ɑi")
	text = rsub(text, "ဲ", "oa")
	text = rsub(text, "ိုယ်", "ɜːi")
	text = rsub(text, "ေါယ်", "uə")
	text = rsub(text, "ောယ်", "uə")
	text = rsub(text, "ေယ်", "iə")
	text = rsub(text, "ုယ်", "ui")
	text = rsub(text, "ါယ်", "ɑi")
	text = rsub(text, "ာယ်", "ɑi")
	text = rsub(text, "ယ်", "oa")
	text = rsub(text, "ိုဝ်", "ɜːə")
	text = rsub(text, "ဵု", "ɜːə")
	text = rsub(text, "ေါဝ်", "ɔːə")
	text = rsub(text, "ောဝ်", "ɔːə")
	text = rsub(text, "ေဝ်", "ei")
	text = rsub(text, "ဝ်", "ɔ̀")
	text = rsub(text, "ေါဟ်", "ɤh")
	text = rsub(text, "ောဟ်", "ɤh")
	text = rsub(text, "ေဟ်", "eh")
	text = rsub(text, "ုဟ်", "uːh")
	text = rsub(text, "ိဟ်", "iːh")
	text = rsub(text, "ဟ်", "ɔh")
	text = rsub(text, "ိုံ", "ɜ̀ˀ")
	text = rsub(text, "ောံ", "ɒʔ")
	text = rsub(text, "ိံ", "iˀ")
	text = rsub(text, "ိုံ", "ɜ̀ˀ")
	text = rsub(text, "ေါံ", "ɒʔ")
	text = rsub(text, "ေံ", "iˀ")
	text = rsub(text, "ံ", "ɔˀ")
	text = rsub(text, "ိုအ်", "ɜ̀ˀ")
	text = rsub(text, "ောအ်", "ɒʔ")
	text = rsub(text, "ိအ်", "iˀ")
	text = rsub(text, "ိုအ်", "ɜ̀ˀ")
	text = rsub(text, "ေါအ်", "ɒʔ")
	text = rsub(text, "ေအ်", "iˀ")
	text = rsub(text, "အ်", "ɔˀ")
	text = rsub(text, "ှ", "a")
	text = rsub(text, "ါ", "ɛ̀ə")
	text = rsub(text, "ာ", "ɛ̀ə")
	text = rsub(text, "ၠိ", "͡lɒəˀ")
	text = rsub(text, "ၠဴ", "͡lau")
	text = rsub(text, "ၠၚ်", "ʌŋ")
	text = rsub(text, "ၠတ်", "ɒt")
	text = rsub(text, "ါ်", "ɪk")
	text = rsub(text, "ာ်", "ɪk")
	text = rsub(text, "ိၚ်", "oɪŋ")
	text = rsub(text, "ုီ", "ɒm")
	text = rsub(text, "ီ", "m")
	text = rsub(text, "ှဳ", "fɪ")
	text = rsub(text, "္ၚဲ", "ŋuə")
	text = rsub(text, "ၠဵု", "lə")
	text = rsub(text, "ၠဵု", "lə")
	text = rsub(text, "ၟုဲ", "͡mɑi")
	text = rsub(text, "ှံၚ်", "ɒŋ")
	text = rsub(text, "ေဲ", "iə")
	text = rsub(text, "ၞာန်", "nʌn")
	text = rsub(text, "ၞါန်", "nʌn")
	text = rsub(text, "ၞန်", "nʌ")

	return text
end

function export.IPA(frame)
	local words = {}
	
	for _, word in ipairs(frame:getParent().args) do
		table.insert(words, word)
	end
	
	if #words == 0 then
		error("Have to put in the first parameter with stress!")
	end
	
	local IPA_results = {}
	
	for _, word in ipairs(words) do
		table.insert(IPA_results, { pron = "[" .. phonetic(word) .. "]" })
	end
	
	return m_IPA.format_IPA_full(lang, IPA_results)
end

return export