Module:anui-pron: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 20: | Line 20: | ||
local back_vowel = "uɯɔɑ" | local back_vowel = "uɯɔɑ" | ||
local front_vowel = "iea" | local front_vowel = "iea" | ||
local vowel = "[" .. back_vowel .. front_vowel .. " | local vowel = "[" .. back_vowel .. front_vowel .. "]" | ||
local export = {} | local export = {} | ||
Line 26: | Line 26: | ||
local rules = { | local rules = { | ||
{"ʇ", "ǀ"}, {"([ḛḭṵ])", {["ḛ"] = "è", ["ḭ"] = "ì", ["ṵ"] = "ù"}}, {"([ao])" .. TILDEBELOW, mw.ustring.toNFC("%1" .. GRAVE)}, | {"ʇ", "ǀ"}, {"([ḛḭṵ])", {["ḛ"] = "è", ["ḭ"] = "ì", ["ṵ"] = "ù"}}, {"([ao])" .. TILDEBELOW, mw.ustring.toNFC("%1" .. GRAVE)}, | ||
{"([uùm]ʼ?)m", "%1ᴍ"}, {"m(ʼᴍ)", "ᴍ%1"} | {"([uùm]ʼ?)m", "%1ᴍ"}, {"m(ʼᴍ)", "ᴍ%1"}, -- tell apart between regular and syllabic <m> | ||
{vowel .. vowel, { | |||
["aa"] = "aː", ["ee"] = "eː", ["ii"] = "iː", ["ɔɔ"] = "ɔː", ["uu"] = "uː", | |||
}}, | |||
} | } |
Revision as of 19:15, 1 July 2021
- The following documentation is located at Module:anui-pron/doc.[edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local sub = mw.ustring.sub
local find = mw.ustring.find
local gmatch = mw.ustring.gmatch
local gsub = mw.ustring.gsub
local u = mw.ustring.char
local split = mw.text.split
local gsplit = mw.text.gsplit
-- To avoid weird annoying cursor behavior
local TILDE, NASAL = u(0x0303), u(0x0303) -- COMBINING TILDE ̃
local TILDEBELOW, CREAKY = u(0x0330), u(0x0330) -- COMBINING TILDE BELOW ̰
local GRAVE = u(0x0300) -- COMBINING GRAVE ACCENT ̀
local HIGH = u(0x02E6) -- MODIFIER LETTER HIGH TONE BAR ˦
local HIGHFALL = "˥˦"
local LOW = u(0x02E8) -- MODIFIER LETTER LOW TONE BAR ˨
local MID = u(0x02E7) -- MODIFIER LETTER MID TONE BAR ˧
local SYLLABIC = u(0x0329) -- COMBINING VERTICAL LINE BELOW ̩
local SYLLABICA = u(0x030D) -- COMBINING VERTICAL LINE ABOVE ̍
local back_vowel = "uɯɔɑ"
local front_vowel = "iea"
local vowel = "[" .. back_vowel .. front_vowel .. "]"
local export = {}
local rules = {
{"ʇ", "ǀ"}, {"([ḛḭṵ])", {["ḛ"] = "è", ["ḭ"] = "ì", ["ṵ"] = "ù"}}, {"([ao])" .. TILDEBELOW, mw.ustring.toNFC("%1" .. GRAVE)},
{"([uùm]ʼ?)m", "%1ᴍ"}, {"m(ʼᴍ)", "ᴍ%1"}, -- tell apart between regular and syllabic <m>
{vowel .. vowel, {
["aa"] = "aː", ["ee"] = "eː", ["ii"] = "iː", ["ɔɔ"] = "ɔː", ["uu"] = "uː",
}},
}
function export.crux(term)
term=mw.ustring.lower(term)
for _, rule in ipairs(rules) do
term = gsub(term, rule[1], rule[2])
end
return term
end
return export