Modul:Substantiv
Aus KGS-Wiki
Dieses Modul erzeugt lateinische Konjugationstabellen aus gegebenen Stämmen.
Beispiel
{{subst:#invoke:Substantiv|render|metus|met|u|m|52}}
für ein Substantiv mit Singular und Plural. Optional kannnumeri=SP
ergänzt werden, muss aber nicht{{subst:#invoke:Substantiv|render|moenia|moen|i|n|51|numeri=P}}
für ein Pluraletantum{{subst:#invoke:Substantiv|render|aurum|aur|o|n|67|numeri=S}}
für ein Singularetantum
{{subst:
|
Immer nur mit subst einbinden, damit die Formen im Seitenquelltext landen und für die Suchfunktion auffindbar sind.
|
---|---|
#invoke:Substantiv|
|
Name des Moduls |
render|
|
rufe die Funktion render auf
|
iter|
|
Grundform |
itiner|
|
Stamm |
k|
|
Deklination (erlaubt sind a , e , i , k , o und u )
|
n|
|
Genus (erlaubt sind m , f und n )
|
44|
|
Optional: Lektion, in der die Vokabel eingeführt wird (Standard: 0, d.h. nicht in Campus enthalten) |
numeri=SP
|
Optional: Verfügbare Numeri
|
Hinweis
Dieses Modul sollte immer mit subst:
eingebunden werden, damit alle Formen im durchsuchbaren Seitenquelltext landen und eine Suche nach ducum auch zu dux führt.
local p = {}
local KASUS = {'Nominativ', 'Genitiv', 'Dativ', 'Akkusativ', 'Ablativ'}
local NUMERI = {S = 'Singular', P = 'Plural'}
local DEKLS = {
o = {
m = {
S = {'', 'i', 'o', 'um', 'o'};
P = {'i', 'orum', 'is', 'os', 'is'}
};
f = {
S = {'', 'i', 'o', 'um', 'o'};
P = {'i', 'orum', 'is', 'os', 'is'}
};
n = {
S = {'', 'i', 'o', 'um', 'o'};
P = {'a', 'orum', 'is', 'a', 'is'}
}
};
a = {
m = {
S = {'', 'ae', 'ae', 'am', 'ā'};
P = {'ae', 'arum', 'is', 'as', 'is'}
};
f = {
S = {'', 'ae', 'ae', 'am', 'ā'};
P = {'ae', 'arum', 'is', 'as', 'is'}
};
n = {
S = {'', 'ae', 'ae', 'am', 'ā'};
P = {'ae', 'arum', 'is', 'as', 'is'}
}
};
k = {
m = {
S = {'', 'is', 'i', 'em', 'e'};
P = {'es', 'um', 'ibus', 'es', 'ibus'}
};
f = {
S = {'', 'is', 'i', 'em', 'e'};
P = {'es', 'um', 'ibus', 'es', 'ibus'}
};
n = {
S = {'', 'is', 'i', 'em', 'e'};
P = {'a', 'um', 'ibus', 'a', 'ibus'}
}
};
e = {
m = {
S = {'', 'ei', 'ei', 'em', 'e'};
P = {'es', 'erum', 'ebus', 'es', 'ebus'}
};
f = {
S = {'', 'ei', 'ei', 'em', 'e'};
P = {'es', 'erum', 'ebus', 'es', 'ebus'}
};
n = {
S = {'', 'ei', 'ei', 'em', 'e'};
P = {'es', 'erum', 'ebus', 'es', 'ebus'}
}
};
i = {
m = {
S = {'', 'is', 'i', 'em', 'i'};
P = {'es', 'ium', 'ibus', 'es', 'ibus'}
};
f = {
S = {'', 'is', 'i', 'em', 'i'};
P = {'es', 'ium', 'ibus', 'es', 'ibus'}
};
n = {
S = {'', 'is', 'i', 'em', 'i'};
P = {'ia', 'ium', 'ibus', 'ia', 'ibus'}
}
};
u = {
m = {
S = {'', 'ūs', 'ui', 'um', 'u'};
P = {'ūs', 'uum', 'ibus', 'ūs', 'ibus'}
};
f = {
S = {'', 'ūs', 'ui', 'um', 'u'};
P = {'ūs', 'uum', 'ibus', 'ūs', 'ibus'}
};
n = {
S = {'', 'ūs', 'ui', 'u', 'u'};
P = {'ūa', 'uum', 'ibus', 'ūa', 'ibus'}
}
}
}
function bildeFormen(basic, stamm, dekl, genus, numeri)
formen = {}
formen[numeri:sub(1,1)] = {}
formen[numeri:sub(-1,-1)] = {}
formen[numeri:sub(1,1)][1] = basic
for nk,nv in pairs(formen) do
for kk,kv in pairs(DEKLS[dekl][genus][nk]) do
formen[nk][kk] = stamm .. kv
end
end
formen[numeri:sub(1,1)][1] = basic
return formen
end
function p.render()
local frame = mw.getCurrentFrame()
local basic = frame.args[1] or frame:getParent().args[1] or 'exemplum'
local stamm = frame.args[2] or frame:getParent().args[2] or 'exempl'
local dekl = frame.args[3] or frame:getParent().args[3] or 'o'
local genus = frame.args[4] or frame:getParent().args[4] or 'n'
local numeri= frame.args.numeri or frame:getParent().numeri or 'SP'
local formen = bildeFormen(basic, stamm, dekl, genus, numeri)
local pagecontent = ''
if not mw.isSubsting() then
pagecontent = pagecontent .. renderTemplate("Achtung", {"Dieses Modul sollte nur mit <code>{{subst:#invoke:Verb|...}}</code> eingebunden werden! "})
end
pagecontent = pagecontent .. "{{DISPLAYTITLE:" .. basic .. "}}\n"
pagecontent = pagecontent .. renderTemplate("Thumbnailbox", {INHALT= renderTemplate("Wortwolke", {basic, ""})}) .. "\n"
pagecontent = pagecontent .. ";[[Lernformen]]: " .. enclose(basic) .. ", " .. enclose(formen[numeri:sub(1,1)][2]) .. ", " .. genus
pagecontent = pagecontent .. '\n\n'
pagecontent = pagecontent .. ";Bedeutungen\n\n"
pagecontent = pagecontent .. ";Feste Wendungen\n\n"
pagecontent = pagecontent .. ";Aufbau\n\n"
pagecontent = pagecontent .. ";Verwandte Wörter\n\n"
pagecontent = pagecontent .. ";In anderen Sprachen\n\n"
pagecontent = pagecontent .. "== Formen ==\n\n"
return pagecontent
end
return p