Modul:category tree/famcatboiler

Dissen Vörlaag hef dokumentatsie neudig.
Maak de dokumentatsie veur dissen modul ovver t doel en gebroek op de dokumentatsieziede.

local export = {}
 
-- Category object
 
local Category = {}
Category.__index = Category
 
 
function Category.new(info)
	local self = setmetatable({}, Category)
	assert(type(info) == "table", "De \"info\"-parameter mot een tabel waen.")
	self._info = {}
 
	for key, val in pairs(info) do
		if key == "code" then
			self._info.code = val
			self._fam = require("Module:families").getByCode(val) or error("De Familiekode \"" .. val .. "\" is neet geldig.")
		else
			error("De parameter \"" .. key .. "\" is neet bekend.")
		end
	end
 
	return self
end
 
export.new = Category.new
 
 
function Category:getBreadcrumbName()
	if not self._fam then
		return "Spraakfamilien"
	else
		return self._fam:getCanonicalName()
	end
end
 
 
function Category:getDataModule()
	return "Module:category tree/famcatboiler"
end
 
 
function Category:canBeEmpty()
	return true
end
 
 
function Category:getCategoryName()
	local ret = nil
 
	if not self._fam then
		ret = "Spraakfamilien"
	else
		ret = self._fam:getCategoryName()
	end
 
	return mw.getContentLanguage():ucfirst(ret)
end
 
 
function Category:getDescription()
	if not self._fam then
		return "Düss is de Hööftkategorie vun all Spraken up Wiktionary, sorteerd bi Spraakfamilie."
	else
		local ret =
			mw.getCurrentFrame():expandTemplate{title = "sisterlinks", args = {self._fam:getCategoryName()}} ..
			mw.getCurrentFrame():expandTemplate{title = "wikipedia", args = {}} ..
			"Düss is de Hööftkategorie vun de '''" .. self._fam:getCategoryName() .. "''', " ..
			"mit de Code '''" .. self._fam:getCode() .. "''' in de Wöörbook. Et is "
 
		if self._fam:getFamily():getCode() == "qfa-not" then
			ret = ret .. "meer een Gruppe vun neet relateerde Spraken as een Spraakfamilie."
		elseif self._fam:getFamily():getCode() == "qfa-und" then
			ret = ret .. "een [[:Kategorie:Spraakfamilien|neet klassifiseerde Spraak of een Heufdspraakfamilie]]."
		else
			ret = ret .. "een Ünnerfamilie vun de [[:Kategorie:" .. mw.getContentLanguage():ucfirst(self._fam:getFamily():getCategoryName()) .. "|" .. self._fam:getFamily():getCategoryName() .. "]]."
		end
 
		return ret
	end
end
 
 
function Category:getParents()
	if not self._fam then
		return nil
	else
		local pinfo = mw.clone(self._info)
 
		if self._fam:getFamily():getCode() == "qfa-iso" or self._fam:getFamily():getCode() == "qfa-not" or self._fam:getFamily():getCode() == "qfa-und" then
			pinfo.code = nil
		else
			pinfo.code = self._fam:getFamily():getCode()
		end
 
		return {{name = Category.new(pinfo), sort = self._fam:getCanonicalName()}}
	end
end
 
 
function Category:getChildren()
	return nil
end
 
 
function Category:getUmbrella()
	return "Kategorie:Spraakfamilien"
end
 
function Category:getBild()
     return nil
end
 
return export