Modul:dara kategoriyan/lihevanînkatbike
Documentation for this module may be created at Modul:dara kategoriyan/lihevanînkatbike/belge
local export = {}
local b = require("Module:bingeh")
-- Category object
local Category = {}
Category.__index = Category
function Category.new_main(frame)
local params = {
[1] = {},
[2] = {required = true},
}
args = require("Module:parameters").process(frame:getParent().args, params)
return Category.new({code = args[1], label = args[2]})
end
function Category.new(info)
for key, val in pairs(info) do
if not (key == "code" or key == "label") then
error("The parameter \"" .. key .. "\" was not recognized.")
end
end
local self = setmetatable({}, Category)
self._info = info
if not self._info.label then
error("No label was specified.")
end
self._lang = self._info.code and (require("Module:ziman").getByCode(self._info.code) or error("The language code \"" .. self._info.code .. "\" is not valid.")) or nil
self._source =
require("Module:families").getByCode(self._info.label) or
require("Module:etymology languages").getByCode(self._info.label) or
require("Module:languages").getByCode(self._info.label) or
error("\"" .. self._info.label .. "\" is not a valid language, family or etymology-only language code.")
return self
end
export.new = Category.new
export.new_main = Category.new_main
function Category:getInfo()
return self._info
end
function Category:getBreadcrumbName()
local ret = nil
if self._source:getType() == "family" then
ret = self._source:getCategoryName()
else
ret = self._source:getCanonicalName()
end
return (not self._lang and "Lihevanîna dengî-wateyî ji " or "") .. ret
end
function Category:getDataModule()
return "Modul:dara kategoriyan/lihevanînkatbike"
end
function Category:canBeEmpty()
return false
end
function Category:isHidden()
return false
end
function Category:getCategoryName()
local ret = nil
if self._source:getType() == "family" then
ret = self._source:getCategoryName()
else
if self._source:getCode() == "mul-tax" then
ret = "taxonomic names"
else
ret = self._source:getCanonicalName()
end
end
if self._lang then
return "Peyvên " .. self._lang:getCanonicalName() .. " yên lihevanîna dengî wateyî ji " .. ret
else
return "Peyvên lihevanîna dengî wateyî ji " .. ret
end
end
function Category:getDescription()
local ret = nil
if not self._lang then
if self._source:getType() == "family" then
return "Zimanên ku ji zimanên têvel yên " .. self._source:getCategoryName() .. " peyv wek [[Wîkîferheng:Etîmolojî#Lihevanîna dengî-wateyî|lihevanîna dengî wateyî]] wergirtine."
else
return "Zimanên ku ji zimanê " .. self._source:getCanonicalName() .. " peyv wek [[Wîkîferheng:Etîmolojî#Lihevanîna dengî-wateyî|lihevanîna dengî wateyî]] wergirtine."
end
else
if self._source:getType() == "family" then
return
"Peyvên " .. self._lang:getCanonicalName() .. " yên ku ji " ..
"[[:Kategorî:" .. mw.getContentLanguage():ucfirst(self._source:getCategoryName()) .. "|" .. self._source:getCategoryName() .. "]] wek [[Wîkîferheng:Etîmolojî#Lihevanîna dengî-wateyî|lihevanîna dengî wateyî]] hatine wergirtin.\n\n" ..
"Divê di vê kategoriyê de tenê binkategorî hebin. Dema jêdera peyvekê baş nayê zanîn, dibe ku li vir jî gotar hebin.\n\n" ..
"Heke zimanê jêder yê vê peyvê tê zanîn ji kerema xwe vê gotarê ji vê rûpelê rakin."
elseif self._source:getType() == "etymology language" then
return "Peyvên " .. self._lang:getCanonicalName() .. " yên ji [[:Kategorî:" .. mw.getContentLanguage():ucfirst(self._source:getCategoryName()) .. "|" .. b.lcfirst(self._source:getCategoryName()) .. "]] wek [[Wîkîferheng:Etîmolojî#Lihevanîna dengî-wateyî|lihevanîna dengî wateyî]] hatine wergirtin."
else
return "Peyvên " .. self._lang:getCanonicalName() .. " yên ji [[:Kategorî:" .. mw.getContentLanguage():ucfirst(self._source:getCategoryName()) .. "|" .. self._source:getCategoryName() .. "]] wek [[Wîkîferheng:Etîmolojî#Lihevanîna dengî-wateyî|lihevanîna dengî wateyî]] hatine wergirtin."
end
end
end
function Category:getParents()
local derived_from_subvariety_of_self = false
local sortkey = nil
if self._source:getType() == "family" then
sortkey = self._source:getCanonicalName()
else
sortkey = self._source:getCanonicalName()
end
if self._lang then
return {
{
name = require("Modul:dara kategoriyan/ferhengokkatbike")
.new {
code = self._info.code,
label = "lihevanînên dengî-wateyî"
},
sort = sortkey,
},
{
name = require("Modul:dara kategoriyan/deynkirîkatbike")
.new {
code = self._info.code,
label = self._info.label
},
sort = " ",
}
}
else
return {
{
name = require("Modul:dara kategoriyan/deynkirîkatbike")
.new {
code = nil,
label = self._info.label
},
sort = " ",
}
}
end
end
function Category:getChildren()
return nil
end
function Category:getUmbrella()
if not self._lang then
return nil
end
return Category.new({label = self._source:getCode()})
end
return export