Modul:Wörterbuch/Work

Aus FürthWiki

Die Dokumentation für dieses Modul kann unter Modul:Wörterbuch/Work/Doku erstellt werden

local p = {}

local com = require("Modul:Common")
local smw = require("Modul:SMW")
local wik = require("Modul:Wiki")

function p.Mehrzahl(frame)
	return p.mehrzahl(frame.args[1] or "")
end

function p.mehrzahl(ez)
	local mehrzahl = {															-- ACHTUNG!
		["Attribut"]				= "Attribute",								-- Die Mehrzahl-Einträge beim Attribut haben Vorrang!
		["Audio"]					= "Audios",
		["Buchreihe"]				= "Buchreihen",
		["Faktenbox"]				= "Faktenboxen",
		["Grundstück"]				= "Grundstücke",
		["Jahrestag"]				= "Jahrestage",
		["Monat"]					= "Monate",
		["Publikation"]				= "Publikationen",
		["Stadtwiki"]				= "Stadtwikis",
		["Video"]					= "Videos",
	}
	-- Attribut-Wörterbuch abfragen
	local query = {"[[Attribut:+]]" ..
		"[[SubObjektTyp::AttributKlasse]]" ..
		"[[Einzahl::" .. ez .. "]]",
		"?Mehrzahl", mainlabel = "-"}
	query = mw.smw.ask(query) or {{}}
	return query[1]["Mehrzahl"] or mehrzahl[ez] or ez
end

function p.setEntry(entry, val, attrlist)
	-- Kommandozeilen zum Debuggen:
	-- attrlist={}; p.setEntry("e", "v", attrlist); mw.logObject(attrlist)
	if not com.isEmpty(val) then
		entry = entry .. "=" .. val
		if attrlist ~= nil then
			smw.addAttrToList(attrlist, "Wörterbuch", entry)
		else
			mw.smw.set{["Wörterbuch"] = entry}
		end
	end
end

function p.getEntry(page, entry)
	-- Kommandozeilen zum Debuggen:
	-- mw.logObject(p.getEntry("Testberuf","MehrzahlFemininum"))
	local val
	page = page or wik.fullpagename()
	local query = mw.smw.ask("[[" .. page .. "]]|?Wörterbuch") or {}
	query = query[1]["Wörterbuch"]
	if query ~= nil then
		val = {}
		for i, q in ipairs(query) do
			local delim_start, delim_end = string.find(q, "=")
			val[string.sub(q, 1, delim_start - 1)] =
				string.sub(q, delim_end + 1)
		end
		if entry ~= nil then
			val = val[entry]
		end
	end
	return val
end

return p