Modul:Adjektiv: Unterschied zwischen den Versionen
Aus KGS-Wiki
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) (removed dead code) |
||
(49 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
utils = require('Modul:LateinUtils') | utils = require('Modul:LateinUtils') | ||
local | local ERKLAERUNGEN = { | ||
"'''Einendiges [[Adjektiv]]:''' der Nominativ Singular ist in allen drei Geschlechtern gleich (1. Form). Dafür müssen wir den Genitiv Singular mitlernen (2. Form). Daraus können wir den [[Stamm und Endung|Stamm]] ablesen, indem wir die Endung " .. utils.enclose('-is') .. ' abschneiden.'; | |||
"'''Zweiendiges [[Adjektiv]]:''' der Nominativ Singular ist im Maskulinum und Femininum gleich (1. Form). Lediglich im Neutrum weicht der Nominativ Singular ab (2. Form). Indem wir vom Nominativ Singular die Endung " .. utils.enclose('-is') .. ' bzw. ' .. utils.enclose('-e') .. ' abschneiden, können wir den [[Stamm und Endung|Stamm]] ablesen.'; | |||
"'''Dreiendiges [[Adjektiv]]:''' Alle drei Geschlechter haben unterschiedliche Endungen, die wir lernen müssen (1. Form: maskulinum, 2. Form: femininum, 3. Form: neutrum). Aus diesen Formen können wir den [[Stamm und Endung|Stamm]] ablesen, indem wir die unterschiedlichen Endungen abschneiden." | |||
} | } | ||
function | function bilde(m,f,n,stamm,dekl) | ||
formen = { | formen = {} | ||
for k, | for k = 1,5 do | ||
formen['S' | formen['S' .. k .. 'm'] = stamm .. utils.DEKLS[dekl]['m']['S'][k] | ||
formen['P' | formen['S' .. k .. 'f'] = stamm .. utils.DEKLS[dekl == 'o' and 'a' or dekl]['f']['S'][k] | ||
formen['S' .. k .. 'n'] = stamm .. utils.DEKLS[dekl]['n']['S'][k] | |||
formen['P' .. k .. 'm'] = stamm .. utils.DEKLS[dekl]['m']['P'][k] | |||
formen['P' .. k .. 'f'] = stamm .. utils.DEKLS[dekl == 'o' and 'a' or dekl]['f']['P'][k] | |||
formen['P' .. k .. 'n'] = stamm .. utils.DEKLS[dekl]['n']['P'][k] | |||
end | |||
formen['S1m'] = m | |||
formen['S1f'] = f | |||
formen['S1n'] = n | |||
formen['S4n'] = n | |||
if dekl == 'o' then | |||
formen['S6m'] = stamm .. 'e' | |||
end | end | ||
return formen | return formen | ||
end | end | ||
function | function adverb(stamm, dekl) | ||
if dekl == 'o' then | |||
return stamm .. "e" | |||
elseif stamm:match("nt$") then | |||
return stamm .. "er" | |||
else | |||
return stamm .. "iter" | |||
end | |||
end | end | ||
Zeile 69: | Zeile 43: | ||
local baseF = frame.args[2] or frame:getParent().args[2] or 'acris' | local baseF = frame.args[2] or frame:getParent().args[2] or 'acris' | ||
local baseN = frame.args[3] or frame:getParent().args[3] or 'acre' | local baseN = frame.args[3] or frame:getParent().args[3] or 'acre' | ||
local | local posiS = frame.args[4] or frame:getParent().args[4] or 'acr' | ||
local dekl = frame.args[5] or frame:getParent().args[5] or 'k' | local dekl = frame.args[5] or frame:getParent().args[5] or 'k' | ||
local lekt = frame.args[6] or frame:getParent().args[6] or 32 | local lekt = frame.args[6] or frame:getParent().args[6] or 32 | ||
local | local kompS = frame.args.komp or frame:getParent().args.komp or (posiS .. 'ior') | ||
local superS= frame.args.superl or frame:getParent().args.superl or (posiS .. 'issim') | |||
local positiv = bilde(baseM, baseF, baseN, posiS, dekl) | |||
local komparativ = bilde(kompS, kompS, kompS:gsub("or$","us"), kompS, 'k') | |||
local superlativ = bilde(superS .. 'us', superS .. 'a', superS .. 'um', superS, 'o') | |||
local lernformen = {} | |||
local erk = 2 | |||
table.insert(lernformen, baseM) | |||
if baseF ~= baseM then | |||
table.insert(lernformen, baseF) | |||
erk = 3 | |||
end | |||
if baseN ~= baseM then | |||
table.insert(lernformen, baseN) | |||
else | |||
table.insert(lernformen, positiv['S2m']) | |||
erk = 1 | |||
end | |||
lernformen['lekt'] = lekt | |||
lernformen['endig'] = erk | |||
local pagecontent = '' | local pagecontent = '' | ||
if not mw.isSubsting() then | if not mw.isSubsting() then | ||
pagecontent = pagecontent .. utils.renderTemplate("Achtung", {"Dieses Modul sollte nur mit <code>{{subst:#invoke:Adjektiv|...}}</code> eingebunden werden! "}) | pagecontent = pagecontent .. utils.renderTemplate("Achtung", {"Dieses Modul sollte nur mit <code>{{subst:#invoke:Adjektiv|...}}</code> eingebunden werden! "}) | ||
end | end | ||
pagecontent = pagecontent .. "{{DISPLAYTITLE:" .. | pagecontent = pagecontent .. "{{DISPLAYTITLE:" .. baseM .. "}}\n" | ||
pagecontent = pagecontent .. utils. | pagecontent = pagecontent .. utils.renderWortwolke(baseM) .. "\n" | ||
pagecontent = pagecontent .. utils.renderTemplate('Vokabelbox', { | |||
Lernformen = utils.renderTemplate("Lernformen Adjektiv", lernformen); | |||
Steigerungen = utils.enclose(baseM) .. ", " | |||
.. utils.enclose(kompS) .. ", " | |||
.. utils.enclose(superS .. "us"); | |||
Adverbien = utils.enclose(adverb(posiS, dekl)) .. ", " | |||
.. utils.enclose(kompS:gsub("or$", "us")) .. ", " | |||
.. utils.enclose(superS .. "e"); | |||
Bedeutungen = ''; | |||
Aufbau = ''; | |||
Wendungen = ''; | |||
Verwandte = ''; | |||
AndereSprachen = '' | |||
}) | |||
if kompS ~= (posiS .. "ior") or superS ~= (posiS .. "issim") then | |||
pagecontent = pagecontent .. utils.renderTemplate("Unregelmäßiges Adjektiv", {}) .. "\n" | |||
end | |||
pagecontent = pagecontent .. "== Formen ==\n\n" | pagecontent = pagecontent .. "== Formen ==\n\n" | ||
pagecontent = pagecontent .. | pagecontent = pagecontent .. utils.renderFT('Adjektiv', positiv, {Steigerung = 'p'}) | ||
pagecontent = pagecontent .. utils.renderFT('Adjektiv', komparativ, {Steigerung = 'k'}) | |||
pagecontent = pagecontent .. utils.renderFT('Adjektiv', superlativ, {Steigerung = 's'}) | |||
pagecontent = pagecontent | pagecontent = pagecontent .. utils.renderFooter(baseM, baseM, {lekt}) | ||
pagecontent = pagecontent | |||
pagecontent = pagecontent .. utils. | |||
return pagecontent | return pagecontent | ||
end | end | ||
return p | return p |
Aktuelle Version vom 17. Oktober 2024, 14:52 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Adjektiv/Doku erstellt werden
local p = {}
utils = require('Modul:LateinUtils')
local ERKLAERUNGEN = {
"'''Einendiges [[Adjektiv]]:''' der Nominativ Singular ist in allen drei Geschlechtern gleich (1. Form). Dafür müssen wir den Genitiv Singular mitlernen (2. Form). Daraus können wir den [[Stamm und Endung|Stamm]] ablesen, indem wir die Endung " .. utils.enclose('-is') .. ' abschneiden.';
"'''Zweiendiges [[Adjektiv]]:''' der Nominativ Singular ist im Maskulinum und Femininum gleich (1. Form). Lediglich im Neutrum weicht der Nominativ Singular ab (2. Form). Indem wir vom Nominativ Singular die Endung " .. utils.enclose('-is') .. ' bzw. ' .. utils.enclose('-e') .. ' abschneiden, können wir den [[Stamm und Endung|Stamm]] ablesen.';
"'''Dreiendiges [[Adjektiv]]:''' Alle drei Geschlechter haben unterschiedliche Endungen, die wir lernen müssen (1. Form: maskulinum, 2. Form: femininum, 3. Form: neutrum). Aus diesen Formen können wir den [[Stamm und Endung|Stamm]] ablesen, indem wir die unterschiedlichen Endungen abschneiden."
}
function bilde(m,f,n,stamm,dekl)
formen = {}
for k = 1,5 do
formen['S' .. k .. 'm'] = stamm .. utils.DEKLS[dekl]['m']['S'][k]
formen['S' .. k .. 'f'] = stamm .. utils.DEKLS[dekl == 'o' and 'a' or dekl]['f']['S'][k]
formen['S' .. k .. 'n'] = stamm .. utils.DEKLS[dekl]['n']['S'][k]
formen['P' .. k .. 'm'] = stamm .. utils.DEKLS[dekl]['m']['P'][k]
formen['P' .. k .. 'f'] = stamm .. utils.DEKLS[dekl == 'o' and 'a' or dekl]['f']['P'][k]
formen['P' .. k .. 'n'] = stamm .. utils.DEKLS[dekl]['n']['P'][k]
end
formen['S1m'] = m
formen['S1f'] = f
formen['S1n'] = n
formen['S4n'] = n
if dekl == 'o' then
formen['S6m'] = stamm .. 'e'
end
return formen
end
function adverb(stamm, dekl)
if dekl == 'o' then
return stamm .. "e"
elseif stamm:match("nt$") then
return stamm .. "er"
else
return stamm .. "iter"
end
end
function p.render()
local frame = mw.getCurrentFrame()
local baseM = frame.args[1] or frame:getParent().args[1] or 'acer'
local baseF = frame.args[2] or frame:getParent().args[2] or 'acris'
local baseN = frame.args[3] or frame:getParent().args[3] or 'acre'
local posiS = frame.args[4] or frame:getParent().args[4] or 'acr'
local dekl = frame.args[5] or frame:getParent().args[5] or 'k'
local lekt = frame.args[6] or frame:getParent().args[6] or 32
local kompS = frame.args.komp or frame:getParent().args.komp or (posiS .. 'ior')
local superS= frame.args.superl or frame:getParent().args.superl or (posiS .. 'issim')
local positiv = bilde(baseM, baseF, baseN, posiS, dekl)
local komparativ = bilde(kompS, kompS, kompS:gsub("or$","us"), kompS, 'k')
local superlativ = bilde(superS .. 'us', superS .. 'a', superS .. 'um', superS, 'o')
local lernformen = {}
local erk = 2
table.insert(lernformen, baseM)
if baseF ~= baseM then
table.insert(lernformen, baseF)
erk = 3
end
if baseN ~= baseM then
table.insert(lernformen, baseN)
else
table.insert(lernformen, positiv['S2m'])
erk = 1
end
lernformen['lekt'] = lekt
lernformen['endig'] = erk
local pagecontent = ''
if not mw.isSubsting() then
pagecontent = pagecontent .. utils.renderTemplate("Achtung", {"Dieses Modul sollte nur mit <code>{{subst:#invoke:Adjektiv|...}}</code> eingebunden werden! "})
end
pagecontent = pagecontent .. "{{DISPLAYTITLE:" .. baseM .. "}}\n"
pagecontent = pagecontent .. utils.renderWortwolke(baseM) .. "\n"
pagecontent = pagecontent .. utils.renderTemplate('Vokabelbox', {
Lernformen = utils.renderTemplate("Lernformen Adjektiv", lernformen);
Steigerungen = utils.enclose(baseM) .. ", "
.. utils.enclose(kompS) .. ", "
.. utils.enclose(superS .. "us");
Adverbien = utils.enclose(adverb(posiS, dekl)) .. ", "
.. utils.enclose(kompS:gsub("or$", "us")) .. ", "
.. utils.enclose(superS .. "e");
Bedeutungen = '';
Aufbau = '';
Wendungen = '';
Verwandte = '';
AndereSprachen = ''
})
if kompS ~= (posiS .. "ior") or superS ~= (posiS .. "issim") then
pagecontent = pagecontent .. utils.renderTemplate("Unregelmäßiges Adjektiv", {}) .. "\n"
end
pagecontent = pagecontent .. "== Formen ==\n\n"
pagecontent = pagecontent .. utils.renderFT('Adjektiv', positiv, {Steigerung = 'p'})
pagecontent = pagecontent .. utils.renderFT('Adjektiv', komparativ, {Steigerung = 'k'})
pagecontent = pagecontent .. utils.renderFT('Adjektiv', superlativ, {Steigerung = 's'})
pagecontent = pagecontent .. utils.renderFooter(baseM, baseM, {lekt})
return pagecontent
end
return p