• The account request system seems to be hiding some requests. Join the Linguifex Discord server for support if you haven't been granted access after more than 24 hours. Be sure to check your spam folder! • The request form is only for screening out spambots. No need to share private info, just some conlanging experience to prove you're not a bot! • Donations for Linguifex upkeep can be given at Liberapay. Thank you! |
Module:siwa-noun/common
Jump to navigation
Jump to search
- The following documentation is located at Module:siwa-noun/common/doc.[edit]
- Useful links: root page • root page's subpages • links • transclusions • testcases • sandbox
local export = {}
function export.lenition(frame)
local word = frame:getParent().args[1]
local lenited = ""
local v = "([aeiouyůõảẻỉỏủỷę])"
local lenition_patterns = {
[v.."[vųbhḥg]"..v] = "%1%2", ["bb"] = "b", ["dd"] = "d", ["gg"] = "g", ["gį"] = "į", ["mm"] = "m", ["ll"] = "l", ["nn"] = "n",
["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",
["k([lvs])"] = "g%1", ["ps"] = "bs", ["d[aou]"] = "l", ["ġ[aou]"] = "vv", ["[dġ][eůy]"] = "", ["[rġ]i"] = "ṡi",
["di"] = "", ["nįi"] = "ɟi", ["hhį"] = "ṡ", ["[ou]ų"] = "ů", ["dl"] = "l",
}
for regex, repl in pairs(lenition_patterns) do
lenited = mw.ustring.gsub(word, regex, repl, 1)
if lenited ~= word then return lenited end
end
end
export.stressed_vowels = {
["a"] = "a", ["ả"] = "a", ["au"] = "a", ["ai"] = "a", ["oa"] = "a",
["e"] = "e", ["ẻ"] = "e", ["ę"] = "e", ["ei"] = "e", ["ay"] = "e", ["eu"] = "e",
["i"] = "i", ["ỉ"] = "i", ["ia"] = "i", ["ie"] = "i", ["io"] = "i", ["iu"] = "i",
["o"] = "o", ["ỏ"] = "o", ["õ"] = "o", ["õu"] = "o", ["oi"] = "o", ["ou"] = "o",
["u"] = "u", ["ủ"] = "u", ["uo"] = "u", ["ui"] = "u",
["y"] = "y", ["ỷ"] = "y", ["ů"] = "y", ["ẻu"] = "y", ["ey"] = "y", ["ůa"] = "y", ["ůi"] = "y",
}
export.digraphs_to_single = {
["ts"] = "ʦ", ["tṡ"] = "ʨ", ["dį"] = "ʥ", ["ng"] = "ŋ", ["nį"] = "ɲ",
["kį"] = "c", ["gį"] = "ɟ", ["hh"] = "ħ", ["ḍḍ"] = "ð", ["dl"] = "ɬ", ["o̊"] = "ȯ",
["õu"] = "ở", ["ẻu"] = "ử",
}
export.lenition_patterns = {
{"bb", "b"}, {"dd", "d"}, {"gg", "g"}, {"ɟ", "į"}, {"mm", "m"}, {"ll", "l"}, {"nn", "n"},
{"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"},
{"k([lvs])", "g%1"}, {"ps", "bs"}, {"(.)[vųbhḥg](.)", "%1%2"}, {"d[aou]", "l"}, {"ġ[aou]", "vv"}, {"[dġ][eůy]", ""}, {"[rġ]i", "ṡi"},
{"di", ""}, {"ɲi", "ɟi"}, {"ħį", "ṡ"}, {"[ou]ų", "ů"}, {"ɬ", "l"},
}
--[[
I'm sure someone more experienced than I am (not too difficult to achieve)
would do this more elegantly and more efficient, but I couldn't come up with anything better.
]]
export.endings = {}
-- [gender]-[declension]-[subgroup]
export.endings.a = {
["m"] = "i-a-mV", ["n"] = "i-a-nV", ["p"] = "i-a-pV", ["b"] = "i-a-bV", ["t"] = "i-a-tV",
["r"] = "i-a-rV", ["vv"] = "i-a-vvV", ["lk"] = "i-a-CkV", ["rk"] = "i-a-CkV", ["sk"] = "i-a-CkV",
}
-- [gender]-[declension]-[final vowel(s)]-[subgroup]
export.endings.e = {
["na"] = "i-e-ae-n", ["ne"] = "i-e-ae-n",
["ba"] = "i-e-ae-b", ["be"] = "i-e-ae-b",
["ka"] = "i-e-ae-k", ["ke"] = "i-e-ae-k",
["ma"] = "i-e-ae-m", ["me"] = "i-e-ae-m",
["va"] = "i-e-ae-v", ["ve"] = "i-e-ae-v",
["tsa"] = "i-e-ae-ts", ["tse"] = "i-e-ae-ts",
["ta"] = "i-e-ae-t", ["te"] = "i-e-ae-t",
["sa"] = "i-e-ae-s", ["se"] = "i-e-ae-s",
["la"] = "i-e-ae-l", ["le"] = "i-e-ae-l",
["ha"] = "i-e-ae-h/ġ", ["he"] = "i-e-ae-h/ġ", ["ġa"] = "i-e-ae-h/ġ", ["ġe"] = "i-e-ae-h/ġ",
["a"] = "i-e-ae", ["e"] = "i-e-ae",
["mi"] = "i-e-i-m",
["pi"] = "i-e-i-p/b", ["bi"] = "i-e-i-p/b",
["vi"] = "i-e-i-v",
["ni"] = "i-e-i-n",
["ri"] = "i-e-i-r",
["li"] = "i-e-i-l",
["ki"] = "i-e-i-k/g", ["gi"] = "i-e-i-k/g",
["i"] = "i-e-i",
["o"] = "i-e-o",
-- U = front vowel
["mu"] = "i-e-U-m/n", ["my"] = "i-e-U-m/n", ["mů"] = "i-e-U-m/n", ["nu"] = "i-e-U-m/n", ["ny"] = "i-e-U-m/n", ["nů"] = "i-e-U-m/n",
["ku"] = "i-e-U-k", ["ky"] = "i-e-U-k", ["ků"] = "i-e-U-k",
["u"] = "i-e-U", ["y"] = "i-e-U", ["ů"] = "i-e-U",
}
-- [gender]-[declension]-[subgroup]
export.endings.i = {
["m"] = "i-i-mV", ["n"] = "i-i-nV", ["um"] = "i-i-uomnV", ["om"] = "i-i-uomnV", ["un"] = "i-i-uomnV", ["on"] = "i-i-uomnV",
["v"] = "i-i-vV", ["g"] = "i-i-gV", ["s"] = "i-i-gV", ["r"] = "i-i-rV", ["h"] = "i-i-hV", ["k"] = "i-i-kV",
["l"] = "i-i-lV", ["i"] = "i-i-i", -- else -V
}
-- [gender]-[declension]-[final vowel(s)]-[subgroup]
export.endings.o = {
["ba"] = "i-o-ae-b/t", ["be"] = "i-o-ae-b/t", ["ta"] = "i-o-ae-b/t", ["te"] = "i-o-ae-b/t",
["va"] = "i-o-ae-v/m/n", ["ve"] = "i-o-ae-v/m/n", ["ma"] = "i-o-ae-v/m/n", ["me"] = "i-o-ae-v/m/n", ["na"] = "i-o-ae-v/m/n", ["ne"] = "i-o-ae-v/m/n",
["ra"] = "i-o-ae-r/h/g", ["re"] = "i-o-ae-r/h/g", ["ha"] = "i-o-ae-r/h/g", ["he"] = "i-o-ae-r/h/g", ["ga"] = "i-o-ae-r/h/g", ["ge"] = "i-o-ae-r/h/g",
["ka"] = "i-o-ae-k", ["ke"] = "i-o-ae-k",
["la"] = "i-o-ae-l", ["le"] = "i-o-ae-l",
["mi"] = "i-o-i-m/n/k/g", ["ni"] = "i-o-i-m/n/k/g", ["ki"] = "i-o-i-m/n/k/g", ["gi"] = "i-o-i-m/n/k/g",
["lki"] = "i-o-i-lk",
["rki"] = "i-o-i-rk",
["ski"] = "i-o-i-sk", ["sġi"] = "i-o-i-sk",
["li"] = "i-o-i-l",
["ri"] = "i-o-i-r/h", ["hi"] = "i-o-i-r/h",
["ṡi"] = "i-o-i-ṡ", ["hhįi"] = "i-o-i-ṡ",
["b"] = "i-o-ouyů-b/p/t/d", ["p"] = "i-o-ouyů-b/p/t/d", ["t"] = "i-o-ouyů-b/p/t/d", ["d"] = "i-o-ouyů-b/p/t/d",
["v"] = "i-o-ouyů-v/m/n", ["m"] = "i-o-ouyů-v/m/n", ["n"] = "i-o-ouyů-v/m/n",
["r"] = "i-o-ouyů-r/h/g/k", ["h"] = "i-o-ouyů-r/h/g/k", ["g"] = "i-o-ouyů-r/h/g/k", ["k"] = "i-o-ouyů-r/h/g/k",
["l"] = "i-o-ouyů-l",
["a"] = "i-o-ae", ["e"] = "i-o-ae",
["i"] = "i-o-i", --else -ouyů
}
export.endings.u = {
["ba"] = "i-u-aei-b/p/t/d", ["pa"] = "i-u-aei-b/p/t/d", ["ta"] = "i-u-aei-b/p/t/d", ["da"] = "i-u-aei-b/p/t/d",
["be"] = "i-u-aei-b/p/t/d", ["pe"] = "i-u-aei-b/p/t/d", ["te"] = "i-u-aei-b/p/t/d", ["de"] = "i-u-aei-b/p/t/d",
["bi"] = "i-u-aei-b/p/t/d", ["pi"] = "i-u-aei-b/p/t/d", ["ti"] = "i-u-aei-b/p/t/d", ["di"] = "i-u-aei-b/p/t/d",
["va"] = "", ["ma"] = "", ["na"] = "",
["ve"] = "", ["me"] = "", ["ne"] = "",
["vi"] = "", ["mi"] = "", ["ni"] = "",
["ra"] = "", ["ha"] = "", ["ga"] = "", ["ka"] = "",
["re"] = "", ["he"] = "", ["ge"] = "", ["ke"] = "",
["ri"] = "", ["hi"] = "", ["gi"] = "", ["ki"] = "",
["la"] = "", ["le"] = "", ["li"] = "",
["a"] = "", ["e"] = "", ["i"] = "",
["bo"] = "", ["bu"] = "", ["by"] = "", ["bů"] = "",
["po"] = "", ["pu"] = "", ["py"] = "", ["pů"] = "",
["to"] = "", ["tu"] = "", ["ty"] = "", ["tů"] = "",
["do"] = "", ["du"] = "", ["dy"] = "", ["dů"] = "",
["vo"] = "", ["vu"] = "", ["vy"] = "", ["vů"] = "",
["mo"] = "", ["mu"] = "", ["my"] = "", ["mů"] = "",
["no"] = "", ["nu"] = "", ["ny"] = "", ["nů"] = "",
["ro"] = "", ["ru"] = "", ["ry"] = "", ["rů"] = "",
["ho"] = "", ["hu"] = "", ["hy"] = "", ["hů"] = "",
["go"] = "", ["gu"] = "", ["gy"] = "", ["gů"] = "",
["ko"] = "", ["ku"] = "", ["ky"] = "", ["ků"] = "",
["lo"] = "", ["lu"] = "", ["ly"] = "", ["lů"] = "",
["o"] = "", ["u"] = "", ["y"] = "", ["ů"] = "",
}
return export