Module:pine-pron: Difference between revisions

No edit summary
No edit summary
Line 18: Line 18:


local long_vowels = {
local long_vowels = {
["a" .. c.hook] = "æː", ["e" .. c.hook] = "eː", ["i" .. c.hook] = "iː",
["a"] = "æː", ["e"] = "eː", ["i"] = "iː",
["o" .. c.hook] = "oː", ["u" .. c.hook] = "uː", ["y" .. c.hook] = "yː",
["o"] = "oː", ["u"] = "uː", ["y"] = "yː",
["ả"] = "æː", ["ẻ"] = "eː", ["ỉ"] = "iː",
["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː",
}
}


Line 29: Line 31:
-- long vowels
-- long vowels
local nfd_term = mw.ustring.toNFD(term)
local nfd_term = mw.ustring.toNFD(term)
nfd_term = nfd_term:gsub("[aeiouy]" .. c.hook, long_vowels)
nfd_term = nfd_term:gsub("([aeiouy])" .. c.hook, function(v)
return long_vowels[v] or long_vowels[v .. c.hook]
end)
term = mw.ustring.toNFC(nfd_term)
term = mw.ustring.toNFC(nfd_term)
term = term:gsub("ɔɑ", "ɑː"); term = term:gsub("ɛœ", "øː")
term = term:gsub("ɔɑ", "ɑː"); term = term:gsub("ɛœ", "øː")