Mòdul:eu-lema/proves
La documentació d'ús d'aquest mòdul es pot crear a Mòdul:eu-lema/proves/ús
local p = {}
local pos_functions = {}
local m_lema = require("Mòdul:lema")
-- Funció d'entrada, l'única que s'invoca des d'una plantilla
function p.flex(frame)
local args = frame:getParent().args
pagename = args.pagename
if not pagename or pagename == "" then
pagename = mw.title.getCurrentTitle().subpageText
end
local data = {lang = "eu", sc = "Latn", heads = {}, categories = {}}
local lema = args.lema; if lema == "" then lema = nil end
table.insert(data.heads, lema)
local poscat = frame.args[1] or error("Falta especificar la categoria lèxica com a primer paràmetre.")
if pos_functions[poscat] then
pos_functions[poscat].func(args, data)
else
table.insert(data.categories, poscat .. " en basc")
end
if args.cat and args.cat ~= "" then
table.insert(data.categories, args.cat)
end
return m_lema.full_headword(data)
end
-- Informació per a substantius
pos_functions["Substantius"] = {func = function(args, data)
local genders = mw.text.split(args[1] or "", "/")
for _, g in ipairs(genders) do
table.insert(data.genders, string.gsub(g, "i$", "indef"))
end
if mw.ustring.find(pagename, "[^ ]+ [^ ]+") then
table.insert(data.categories, "Locucions nominals en basc")
else
table.insert(data.categories, "Substantius en basc")
end
return
end
}
-- Informació per a noms propis
pos_functions["Noms propis"] = {func = function(args, data)
local genere = args[1] or ""
table.insert(data.genders, (genere == "" and "?" or genere))
table.insert(data.categories, "Noms propis en basc")
return
end
}
return p