Pronunciation module for Nuosu. See {{ii-pron}}
.
local export = {}
local translit = require("Module:ii-translit")
local gsub = mw.ustring.gsub
local find = mw.ustring.find
local convert_initial = {
= "p", = "pʰ", = "b", = "mb",
= "m̥", = "m", = "f", = "v",
= "t", = "tʰ", = "d", = "nd",
= "n̥", = "n", = "ɬ", = "l",
= "tɕ", = "tɕʰ", = "dʑ", = "ndʑ",
= "n̠ʲ", = "ɕj", = "ʑ",
= "k", = "kʰ", = "ɡ", = "ŋɡ",
= "h", = "ŋ", = "x", = "ɣ",
= "ts", = "tsʰ", = "dz",
= "ndz", = "s", = "z",
= "tʂ", = "tʂʰ", = "dʐ",
= "ndʐ", = "ʂ", = "ʐ", = "",
}
local convert_final = {
= "i", = "ɛ", = "a",
= "z̩", = "z̩̱", = "ɯ",
= "ʐ̩", = "ʐ̩̱",
= "u", = "u̱", = "o", = "ɔ",
}
local convert_tone = {
= "˥˥", = "˧˦", = "˧˧", = "˨˩"
}
function export.ipa(text)
text = string.lower(translit.tr(text))
local syllables = mw.text.split(text, " ")
for i, syllable in ipairs(syllables) do
if syllable == "w" then
syllables = syllables
else
local initial, final, tone = syllable:match("(??)(?)(?)$")
if (find(initial, "h") or find(initial, "r")) and find(final, "^yr?$") then
final = gsub(final, "y", "Y")
end
syllables = convert_initial .. convert_final .. convert_tone
end
end
return table.concat(syllables, " ")
end
return export