Moduł:etymologia
Moduł wykorzystywany przez szablon {{etymologia}}.
local m = {}
local dstrip = require("Module:linki").dstrip
local langs = require("Module:etymologia/kody").langs
local function gen_cat(iso1, iso2, typ)
cattext = "[[Kategoria:%s (%s %s)]]"
lang1 = langs[iso1][1]
if langs[iso2][4] then
lang2 = langs[iso2][4]
elseif mw.ustring.sub(langs[iso2][1], -2) == "ki" then
lang2 = langs[iso2][1] .. "ego"
else
lang2 = langs[iso2][1]
end
return mw.ustring.format(cattext, lang1, typ, lang2)
end
local function gen_link(pargs)
return mw.ustring.format("[[%s#%s|%s]]", dstrip(pargs[3], pargs[2]), pargs[2], (pargs["alt"] or pargs[3]))
end
local function gen_abbr(args, pargs)
switch = (args["typ"] == "link+" and 1) or 2
langabbr = langs[pargs[switch]][2]
langname = langs[pargs[switch]][1]
if not langabbr then
langabbr = langname
elseif mw.ustring.sub(langabbr, -1) == ")" then
elseif mw.ustring.sub(langabbr, -1) == "-" then
langabbr = mw.ustring.sub(langabbr, 1, -2)
else
langabbr = langabbr .. "."
end
return mw.ustring.format('<abbr title="%s">%s</abbr> ', langname, langabbr)
end
local function gen_typ(ptyp)
if ptyp == "zapożyczenie" or ptyp == "zapożyczone" or ptyp == "zap" or ptyp == "pożyczka" or ptyp == "poż" then
return "zapożyczenia z"
elseif ptyp == "odziedziczenie" or ptyp == "dziedziczenie" or ptyp == "odz" then
return "terminy odziedziczone z"
elseif ptyp == "zapożyczenie ponowne" or ptyp == "zapożyczone ponownie" or ptyp == "pożyczka pownowna" or ptyp == "zappon" or ptyp == "pożpon"
or ptyp == "zapożyczenie powtórne" or ptyp == "pożyczka powtórna" or ptyp == "zappowt" or ptyp == "pożpowt" then
return "zapożyczenia powtórne z"
else
return "terminy pochodzące z"
end
end
function m.main(frame)
args = frame.args
pargs = frame:getParent().args
link = gen_link(pargs)
typ = args["typ"]
ptyp = pargs["typ"]
if typ == "link" then
return link
elseif typ == "etym" then
return gen_abbr(typ, pargs) .. link .. gen_cat(pargs[1], pargs[2], gen_typ(ptyp))
end
end
return m