Module:pine-pron: Difference between revisions
No edit summary |
No edit summary |
||
| Line 20: | Line 20: | ||
["a" .. c.hook] = "æː", ["e" .. c.hook] = "eː", ["i" .. c.hook] = "iː", | ["a" .. c.hook] = "æː", ["e" .. c.hook] = "eː", ["i" .. c.hook] = "iː", | ||
["o" .. c.hook] = "oː", ["u" .. c.hook] = "uː", ["y" .. c.hook] = "yː", | ["o" .. c.hook] = "oː", ["u" .. c.hook] = "uː", ["y" .. c.hook] = "yː", | ||
} | } | ||
| Line 33: | Line 28: | ||
term = term:gsub("[aeiou]", laxen); term = term:gsub("ů", "œ") | term = term:gsub("[aeiou]", laxen); term = term:gsub("ů", "œ") | ||
-- long vowels | -- long vowels | ||
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, long_vowels) | ||
term = mw.ustring.toNFC(nfd_term) | term = mw.ustring.toNFC(nfd_term) | ||
term = term:gsub("ɔɑ", "ɑː"); term = term:gsub("ɛœ", "øː") | term = term:gsub("ɔɑ", "ɑː"); term = term:gsub("ɛœ", "øː") | ||
-- diphthongized vowels | -- diphthongized vowels | ||
| Line 47: | Line 37: | ||
term = term:gsub("vʏy", "ᶣy"); term = term:gsub("vøy", "ᶣø"); term = term:gsub("vʊu", "ʷu") | term = term:gsub("vʏy", "ᶣy"); term = term:gsub("vøy", "ᶣø"); term = term:gsub("vʊu", "ʷu") | ||
term = term:gsub("^ᶣ", "ɥ"); term = term:gsub("^ʷ", "w") | term = term:gsub("^ᶣ", "ɥ"); term = term:gsub("^ʷ", "w") | ||
-- diphthongs | |||
term = term:gsub("([ɛɑ])ʏ", "%1y"); term = term:gsub("ɑy", "æy") | |||
term = term:gsub("([ɛɑɪ]ʊ)", "%1u"); term = term:gsub("ɪœ", "ɪy") | |||
-- geminate consonants | |||
term = term:gsub("(.)%1", "%1ː"); term = term:gsub("ng", "ŋː") | |||
-- simple consonant subtitutions | |||
term = term:gsub("tṡ", "ʧ"); term = term:gsub("ts", "ʦ") | |||
term = term:gsub("ḷ", "ɬ"); term = term:gsub("ḥ", "ʔ") | |||
-- final substitutions | |||
local final_subs = { | |||
["ʧ"] = "t͡ʃ", | |||
["ʦ"] = "t͡s", | |||
["g"] = "ɡ", | |||
["ƛ"] = "t͡ɬ", | |||
["ṃ"] = "m" .. c.ringbelow, | |||
["ṇ"] = "n" .. c.ringbelow, | |||
["ṛ"] = "r" .. c.ringbelow, | |||
} | |||
term = term:gsub("[ʧʦgƛṃṇṛ]", final_subs) | |||
return term | return term | ||