Module:sju-common
Appearance
- The following documentation is located at Module:sju-common/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local export = {}
local langdata = {
consonant = {
"^(.-)([^aáeēiïouūüǖyåäöAÁEĒIÏOUŪÜǕYÅÄÖ" .. mw.ustring.char(0x0304) .. "{}-]*)$",
},
vowel = {
"^(.-)(eä)$",
"^(.-)(i[eä])$",
"^(.-)(u[aeoö])$",
"^(.-)(yö)$",
"^(.-)(å̄)$",
"^(.-)([aáeēiïuūüǖyåä]?)$",
},
scons = {
[1] = {
},
[2] = {
{"^bm$", "m", "bˈm"},
{"^dn(j?)$", "n%1", "dˈn%1"},
{"^gŋ$", "ŋ", "gˈŋ"},
{"^([đjlmnŋrsv])%1$", "%1", "%1ˈ%1"},
{"^hp$", "b", "hpp"},
{"^ht$", "d", "htt"},
{"^ht([js])$", "t%1", "htt%1"},
{"^hk$", "g", "hkk"},
{"^([ns])%1j$", "%1j", "%1ˈ%1j"},
},
[3] = {
{"^bˈb$", "bb"},
{"^gˈg$", "gg"},
{"^dˈt([js])$", "dt%1"},
{"^(l)%1([j])$", "%1%2"},
{"^(s)%1(j?[kmnŋptv])$", "%1%2"},
{"^(b)([dđjlr])%2$", "%1%2"},
{"^(đ)([gv])%2$", "%1%2"},
{"^(g)([l])%2$", "%1%2"},
{"^(j)([bdđgklprstv])%2$", "%1%2"},
{"^(js)s(j)$", "%1%2"},
{"^(jt)t([js])$", "%1%2"},
{"^(k)([s])%2$", "%1%2"},
{"^(ks)s(j)$", "%1%2"},
{"^(kt)t([js])$", "%1%2"},
{"^(l)([dfksv])%2$", "%1%2"},
{"^(ls)s(j)$", "%1%2"},
{"^(lt)t([js])$", "%1%2"},
{"^(m)([bgkps])%2$", "%1%2"},
{"^(mt)t([js])$", "%1%2"},
{"^(nj?)([dst])%2$", "%1%2"},
{"^(nj?t)t([js])$", "%1%2"},
{"^(ŋ)([gks])%2$", "%1%2"},
{"^(p)([kst])%2$", "%1%2"},
{"^(ps)s(j)$", "%1%2"},
{"^(pt)t([js])$", "%1%2"},
{"^(r)([dfjstv])%2$", "%1%2"},
{"^(rs)s(j)$", "%1%2"},
{"^(rt)t([js])$", "%1%2"},
{"^(s)([m])%2$", "%1%2"},
{"^(ŧ)([km])%2$", "%1%2"},
{"^(v)([đjklrs])%2$", "%1%2"},
{"^(vs)s(j)$", "%1%2"},
{"^(vt)t([js])$", "%1%2"},
{"^([j])d(n)$", "%1%2"},
},
},
vowel_variants = {
normal = { ["ie"] = {"ie", "R"}, },
v = {["a"] = {"u"}, ["ie"] = {"ie", "R"}, },
j = {["a"] = {"i"}, ["ie"] = {"i", "I"} , },
je = {["a"] = {"i"}, ["ie"] = {"á", "L"} , ["uo"] = {"i", "U"}},
},
postprocess = function(form, vowel_effect)
-- Vowel changes before Q1/Q2
if form.quantity < 3 then
if form.svowel == "eä" then
form.svowel = "iä"
end
else
if form.svowel == "ie" or form.svowel == "iä" then
form.svowel = "eä"
end
end
if vowel_effect == "L" then
if form.svowel == "i" then
form.svowel = "ï"
elseif form.svowel == "ü" then
form.svowel = "u"
elseif form.svowel == "ie" then
form.svowel = "iä"
elseif form.svowel == "uö" then
form.svowel = "ua"
end
elseif vowel_effect == "R" then
if form.svowel == "iä" then
form.svowel = "ie"
end
elseif vowel_effect == "I" then
if form.svowel == "a" then
form.svowel = "e"
elseif form.svowel == "ï" then
form.svowel = "i"
elseif form.svowel == "u" or form.svowel == "å" then
form.svowel = "ü"
elseif form.svowel == "á" then
form.svowel = "ä"
elseif form.svowel == "eä" or form.svowel == "ie" or form.svowel == "iä" then
form.svowel = "ē"
elseif form.svowel == "ua" or form.svowel == "uö" then
form.svowel = "ue"
elseif form.svowel == "å̄" then
form.svowel = "ǖ"
end
elseif vowel_effect == "U" then
if form.svowel == "a" then
form.svowel = "å"
elseif form.svowel == "i" or form.svowel == "ï" then
form.svowel = "y"
elseif form.svowel == "ü" or form.svowel == "å" then
form.svowel = "u"
elseif form.svowel == "á" then
form.svowel = "å̄"
elseif form.svowel == "eä" or form.svowel == "ie" or form.svowel == "iä" then
form.svowel = "yö"
elseif form.svowel == "ua" or form.svowel == "uö" then
form.svowel = "ū"
end
end
end,
}
export.Stem = require("Module:smi-common").make_constructor(langdata)
return export