Module:siwa-noun: Difference between revisions
No edit summary |
No edit summary |
||
| Line 15: | Line 15: | ||
local pagename = mw.title.getCurrentTitle().text | local pagename = mw.title.getCurrentTitle().text | ||
local vowels = "[aeiouyůõảẻỉỏủỷę̊]" | local vowels = "[aeiouyůõảẻỉỏủỷę̊]" | ||
local consonants = "[ | local consonants = "[mpbvntdsṡʦʨʥŋɲcɟħðrṁṅḥkgġhłƛɬḍ]" | ||
local stressedvowels = { | local stressedvowels = { | ||
| Line 21: | Line 21: | ||
["ay"] = "e", ["[iỉ]"] = "i", ["i[aeou]"] = "i", ["[oỏõ]"] = "o", ["[oõ]u"] = "o", | ["ay"] = "e", ["[iỉ]"] = "i", ["i[aeou]"] = "i", ["[oỏõ]"] = "o", ["[oõ]u"] = "o", | ||
["oi"] = "o", ["[uủ]"] = "u", ["u[oi]"] = "u", ["[yỷ]"] = "y", ["ů[ai]?"] = "y", ["ẻu"] = "y", ["ey"] = "y", | ["oi"] = "o", ["[uủ]"] = "u", ["u[oi]"] = "u", ["[yỷ]"] = "y", ["ů[ai]?"] = "y", ["ẻu"] = "y", ["ey"] = "y", | ||
} | |||
local digraphs_to_single = { | |||
["ts"] = "ʦ", ["tṡ"] = "ʨ", ["dį"] = "ʥ", ["ng"] = "ŋ", ["nį"] = "ɲ", ["kį"] = "c", ["gį"] = "ɟ", ["hh"] = "ħ", ["ḍḍ"] = "ð", ["dl"] = "ɬ", | |||
} | } | ||
local lenition = { | local lenition = { | ||
["bb"] = "b", ["dd"] = "d", ["gg"] = "g", [" | ["bb"] = "b", ["dd"] = "d", ["gg"] = "g", ["ɟ"] = "į", ["mm"] = "m", ["ll"] = "l", ["nn"] = "n", | ||
["rr"] = "r", ["bġ"] = "p", ["pr"] = "p", ["dġ"] = "t", ["tr"] = "t", ["ḍb"] = "p", [" | ["rr"] = "r", ["bġ"] = "p", ["pr"] = "p", ["dġ"] = "t", ["tr"] = "t", ["ḍb"] = "p", ["ð"] = "hh", | ||
["ḍg"] = "k", ["bm"] = "m", ["dn"] = "n", ["kn"] = "ng", ["([lr])pp"] = "%1p", ["([lr])tt"] = "%1t", ["([lrms])kk"] = "%1k", | ["ḍg"] = "k", ["bm"] = "m", ["dn"] = "n", ["kn"] = "ng", ["([lr])pp"] = "%1p", ["([lr])tt"] = "%1t", ["([lrms])kk"] = "%1k", | ||
["k([lvs])"] = "g%1", ["ps"] = "bs", ["[vųbhḥg]"] = "", ["d[ | ["k([lvs])"] = "g%1", ["ps"] = "bs", ["[vųbhḥg]"] = "", ["d[aou]"] = "l", ["ġ[aou]"] = "vv", ["[dġ][eůy]"] = "", ["[rġ]i"] = "ṡi", | ||
["di"] = "", [" | ["di"] = "", ["ɲi"] = "ɟi", ["ħį"] = "ṡ", ["[ou]ų"] = "ů", ["ɬ"] = "l", | ||
} | } | ||
local | local function dedigraphize(word) | ||
function | |||
for digraph, repl in pairs(digraphs_to_single) do | for digraph, repl in pairs(digraphs_to_single) do | ||
word = gsub(word, digraph, repl) | word = gsub(word, digraph, repl) | ||
end | end | ||
return word | |||
end | |||
local pattern = "(" .. | |||
function syll_count(word) | |||
local pattern = "(" .. consonants .. "?" .. vowels .. "+ː?" .. consonants .. "*)" | |||
word = dedigraphize(word) | |||
syllable, n = gsub(word, pattern, "%1") | syllable, n = gsub(word, pattern, "%1") | ||
syllable = match(syllable, pattern) | syllable = match(syllable, pattern) | ||