Modul:LateinUtils
Aus KGS-Wiki
Die Dokumentation für dieses Modul kann unter Modul:LateinUtils/Doku erstellt werden
local p = {}
p.KASUS = {'Nominativ', 'Genitiv', 'Dativ', 'Akkusativ', 'Ablativ', 'Vokativ'}
p.NUMERI = {S = 'Singular', P = 'Plural'}
p.NABBRV = {S = 'Sg.', P = 'Pl.'}
p.STUFEN = {p = "[[Positiv (Steigerungsform)|]]", k = "[[Komparativ]]", s = "[[Superlativ]]"}
p.GENERA = {m = 'maskulinum', f = 'femininum', n = 'neutrum'}
p.KONS = 'bcdfghlmnpqrstvx'
p.DEKLS = {
o = {
m = {
S = {'', 'i', 'o', 'um', 'o', 'e'};
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'}
};
name = 'o-Deklination'
};
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'}
};
name = 'a-Deklination'
};
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'}
};
name = '3. Deklination'
};
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'}
};
name = 'e-Deklination'
};
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'}
};
name = 'i-Deklination'
};
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 = {'ua', 'uum', 'ibus', 'ua', 'ibus'}
};
name = 'u-Deklination'
}
}
p.FT_PARAM_ORDER = {
Substantiv = {
{'S1', 'P1'};
{'S2', 'P2'};
{'S3', 'P3'};
{'S4', 'P4'};
{'S5', 'P5'};
{'S6'}
};
Adjektiv = {
{'S1m', 'S1f', 'S1n'};
{'S2m', 'S2f', 'S2n'};
{'S3m', 'S3f', 'S3n'};
{'S4m', 'S4f', 'S4n'};
{'S5m', 'S5f', 'S5n'};
{'S6m'};
{'P1m', 'P1f', 'P1n'};
{'P2m', 'P2f', 'P2n'};
{'P3m', 'P3f', 'P3n'};
{'P4m', 'P4f', 'P4n'};
{'P5m', 'P5f', 'P5n'};
};
Verb = {
{'1SIA', '1SIP', '1SKA', '1SKP'};
{'2SIA', '2SIP', '2SKA', '2SKP', 'ImpS'};
{'3SIA', '3SIP', '3SKA', '3SKP'};
{'1PIA', '1PIP', '1PKA', '1PKP'};
{'2PIA', '2PIP', '2PKA', '2PKP', 'ImpP'};
{'3PIA', '3PIP', '3PKA', '3PKP'};
}
}
function p.renderFT(wortart, formen, additionalParams)
if mw.isSubsting() then
local formentabelle = '{{Formentabelle/' .. wortart
for k,v in pairs(additionalParams) do
formentabelle = formentabelle .. '|' .. k .. '=' .. v
end
for _, zeile in pairs(p.FT_PARAM_ORDER[wortart]) do
formentabelle = formentabelle .. '\n'
for _,zelle in pairs(zeile) do
if formen[zelle] then
formentabelle = formentabelle .. '|' .. zelle .. '=' .. formen[zelle]
end
end
end
formentabelle = formentabelle .. '}}\n\n'
return formentabelle
else
for k,v in pairs(additionalParams) do
formen[k] = v
end
return p.renderTemplate('Formentabelle/' .. wortart, formen)
end
end
function p.renderTemplate(name, params)
local frame = mw.getCurrentFrame()
local templateText
if mw.isSubsting() then
templateText = '{{' .. name
for k,v in pairs(params) do
templateText = templateText .. '|' .. k .. '=' .. v
end
templateText = templateText .. '}}'
else
templateText = frame:expandTemplate{title=name, args=params}
end
return templateText
end
function p.enclose(text)
return tostring(mw.html.create('span'):attr('lang', 'la'):wikitext(text))
end
function p.setIfPossible(maybeArray,index,value)
if maybeArray then
maybeArray[index] = value
end
end
function p.addCampusCategoryIfSet(lesson)
if lesson and tonumber(lesson) ~= 0 and lesson ~= '' then
return '[[Kategorie:Campus Lektion ' .. lesson .. ']]\n'
end
return ''
end
function p.parseArray(frame)
res = {}
for k, v in string.gmatch(frame.args[1], "([^,]+):([^,]+)") do
res[k] = v
end
return mw.af.export(res)
end
function p.renderLernformen(formen, erklaerung)
local innerDiv = mw.html.create('div')
:addClass('mw-collapsible-content')
:wikitext(erklaerung)
local outerDiv = mw.html.create('div')
:addClass('mw-collapsible')
:addClass('mw-collapsed')
:css('display','table;')
:attr('data-expandtext', 'Was heißt das?')
:attr('data-collapsetext', 'Erklärung verbergen')
:wikitext(formen .. ' ' .. tostring(innerDiv))
return tostring(outerDiv)
end
function p.renderVokabelbox(templatename, lernformen)
return p.renderTemplate('Vokabelbox', {
Lernformen = p.renderTemplate(templatename, lernformen);
Bedeutungen = '';
Aufbau = '';
Wendungen = '';
Verwandte = '';
AndereSprachen = ''
}):gsub('|','\n|')
end
function p.renderWortwolke(grundform)
return p.renderTemplate("Thumbnailbox", {INHALT = p.renderTemplate("Wortwolke", {grundform, ""})})
end
function p.renderFooter(navigium, georges, lektionen)
local pagecontent = ""
pagecontent = pagecontent .. "\n\n== Weblinks ==\n\n"
pagecontent = pagecontent .. "* " .. p.renderTemplate('Navigium', {navigium}) .. "\n"
pagecontent = pagecontent .. "* " .. p.renderTemplate("Georges", {georges}) .. "\n"
pagecontent = pagecontent .. p.renderTemplate("Vokabel-Kategorien", {table.concat(lektionen,",")})
return pagecontent
end
return p