Module:sei-headword
Appearance
- The following documentation is located at Module:sei-headword/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module implements the following template:
{{sei-verb}}
local export = {}
local lang = require("Module:languages").getByCode("sei")
--verbs
function export.show_verb(frame)
local args = frame:getParent().args
local data = {lang = lang, pos_category = "verbs", categories = {}, sort_key = args.sort, heads = {args.head}, genders = {"pf-s"}, inflections = {}, nogendercat =1} --the nogendercat parameter is necessary as otherwise plural verbs will be added to "Seri pluralia tantum"
local tracking_categories = {}
local stem = mw.title.getCurrentTitle().text
local stem_s = stem
local ending = ""
if args[2] == "tr" then
table.insert(data.inflections, {label = "transitive"})
table.insert(data.categories, "Seri transitive verbs")
elseif args[2] == "in" then
table.insert(data.inflections, {label = "intransitive"})
table.insert(data.categories, "Seri intransitive verbs")
else
error("No transitivity parameter has been provided.")
end
if args[1] == "pf-s" then
table.insert(data.categories, "Seri singular verbs")
table.insert(data.categories, "Seri perfective verbs")
if args.is then
table.insert(data.inflections, {label = "imperfective singular", args.is})
end
if args.pp then
table.insert(data.inflections, {label = "perfective plural", args.pp})
end
if args.ip then
table.insert(data.inflections, {label = "imperfective plural", args.ip})
end
elseif args[1] == "pf-p" then
data.genders = {args[1]}
table.insert(data.categories, "Seri plural verbs")
table.insert(data.categories, "Seri perfective verbs")
elseif args[1] == "impf-s" then
data.genders = {args[1]}
table.insert(data.categories, "Seri singular verbs")
table.insert(data.categories, "Seri imperfective verbs")
elseif args[1] == "impf-p" then
data.genders = {args[1]}
table.insert(data.categories, "Seri plural verbs")
table.insert(data.categories, "Seri imperfective verbs")
else
error("No number/perfectivity parameter has been provided.")
end
return require("Module:headword").full_headword(data) ..
require("Module:utilities").format_categories(tracking_categories, lang, args.sort)
end
--nouns (the handling of multiple plurals can be done better)
function export.show_noun(frame)
local args = frame:getParent().args
local data = {lang = lang, pos_category = "nouns", categories = {}, sort_key = args.sort, heads = {args.head}, inflections = {}, genders = {}}
local tracking_categories = {}
local stem = mw.title.getCurrentTitle().text
local stem_s = stem
local ending = ""
--add info about article
if args[1] == "cop" then
table.insert(data.inflections, {label = "article", "cop"})
elseif args[1] == "quij" then
table.insert(data.inflections, {label = "article", "quij"})
elseif args[1] == "com" then
table.insert(data.inflections, {label = "article", "com"})
elseif args[1] == "quih" then
table.insert(data.inflections, {label = "article", "quih"})
elseif args[1] == "hac" then
table.insert(data.inflections, {label = "article", "hac"})
end
if args[2] == "pl" then
data.genders = {"p"}
elseif args[2] then
if args[3] then
if args[4] then
table.insert(data.inflections, {label = "plural", args[2], args[3], args[4]})
else
table.insert(data.inflections, {label = "plural", args[2], args[3]})
end
else
table.insert(data.inflections, {label = "plural", args[2] })
end
end
if args.pls then
if args.pls2 then
if args.pls3 then
table.insert(data.inflections, {label = "plural with singular possessor", args.pls, args.pls2, args.pls3})
else
table.insert(data.inflections, {label = "plural with singular possessor", args.pls, args.pls2})
end
else
table.insert(data.inflections, {label = "plural with singular possessor", args.pls})
end
end
if args.plp then
if args.plp2 then
if args.plp3 then
table.insert(data.inflections, {label = "plural with plural possessor", args.plp, args.plp2, args.plp3})
else
table.insert(data.inflections, {label = "plural with plural possessor", args.plp, args.plp2})
end
else
table.insert(data.inflections, {label = "plural with plural possessor", args.plp})
end
end
return require("Module:headword").full_headword(data) ..
require("Module:utilities").format_categories(tracking_categories, lang, args.sort)
end
return export