Module:qay-headword: Difference between revisions

No edit summary
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 18: Line 18:
["in"] = true, ["i"] = true,
["in"] = true, ["i"] = true,
["an"] = true, ["a"] = true,
["an"] = true, ["a"] = true,
["in-p"] = true, ["an-p"] = true,
["?"] = true,
["?"] = true,
}
}


local gender_names = {
local gender_names = {
["in"] = "inanimate", ["i"] = "inanimate",
["in"] = "in", ["i"] = "in", ["in-p"] = "in-p",
["an"] = "animate", ["a"] = "animate",
["an"] = "an", ["a"] = "an", ["an-p"] = "an-p",
["?"] = "unknown",
["?"] = "unknown",
}
}


local lang = require("Module:languages").getByCode("qay")
local lang = require("Module:languages").getByCode("qay")
local sc = require("Module:scripts").getByCode("Ayer")
local m_data = require("Module:qay-noun/data")
local m_data = require("Module:qay-noun/data")


Line 49: Line 51:
local parent_args = frame:getParent().args
local parent_args = frame:getParent().args
local head = '<span style="font-family:Tagati">' .. (parent_args[2] or PAGENAME) .. '</span>'
local head = parent_args[2] or PAGENAME
local translit = PAGENAME
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
Line 57: Line 58:
local data = {
local data = {
lang = lang,
lang = lang,
heads = head,
heads = {head},
translits = translit,
inflections = {},
inflections = {},
genders = {},
genders = {},
pos_category = poscat,
pos_category = poscat,
categories = {"Contionary"},
categories = {"Contionary"},
affix = frame.args["affix"]
}
}
Line 77: Line 78:
[2] = {required = true},
[2] = {required = true},
["nopl"] = {},
["nopl"] = {},
["pl"] = {},
["pl"] = {list=true},
["affix"] = {list=true},
}
}
local args = require("Module:parameters").process(args, params)
local args = require("Module:parameters").process(args, params)
--data.heads = {args["head"]}
--data.heads = {args["head"]}
data.affix = args.affix
table.insert(data.genders, sub(gender_names[args[1]], 1, 2))
table.insert(data.genders, gender_names[args[1]])
table.insert(data.categories, lang:getCanonicalName() .. " " .. (args[1] == "?" and "" or gender_names[args[1]]) .. " " .. data.pos_category)
--table.insert(data.categories, lang:getCanonicalName() .. " " .. (args[1] == "?" and "" or gender_names[args[1]]) .. " " .. data.pos_category)
if not args["nopl"] then
local plurals = {}
args["pl"] = generate_plural(PAGENAME, sub(gender_names[args[1]], 1, 2))
if not args["nopl"] and not match(gender_names[args[1]],"p") then
plurals = #args.pl ~= 0 and args.pl or generate_plural(PAGENAME, gender_names[args[1]])
for i, form in ipairs(args["pl"]) do
for i, form in ipairs(plurals) do
args["pl"][i] = {term = form}
plurals[i] = {term = form}
plurals[i].sc = require("Module:scripts").getByCode("Latn")
end
end
args["pl"].label = "plural"
plurals.label = "plural"
table.insert(data.inflections, args["pl"])
table.insert(data.inflections, plurals)
else
else
table.insert(data.categories, lang:getCanonicalName() .. " uncountable nouns")
table.insert(data.categories, lang:getCanonicalName() .. " uncountable nouns")
Line 101: Line 108:
end
end


--[[pos_functions.adjectives = function(class, args, data)
pos_functions.adjectives = function(class, args, data)
local params = {
local params = {
[1] = {list = "eq"},
[1] = {},
[2] = {list = "comp"},
[3] = {list = "sup"},
["unc"] = {type = "boolean"},
["unc"] = {type = "boolean"},
["indecl"] = {type = "boolean"},
["head"] = {},
["head"] = {},
["affix"] = {list=true},
}
}
local args = require("Module:parameters").process(args, params)
local args = require("Module:parameters").process(args, params)
local isdet = data.pos_category == "determiners"
data.heads = {args["head"] or args[1]}
data.heads = {args["head"]}
data.affix = args.affix
table.insert(data.categories, "High Valyrian " .. data.pos_category)
table.insert(data.categories, "Ayeri " .. data.pos_category)
if args["unc"] or isdet then
table.insert(data.inflections, {label = "not " .. glossary_link("comparable")})
if not isdet then table.insert(data.categories, "High Valyrian uncomparable adjectives") end
elseif args["indecl"] then
table.insert(data.inflections, {label = glossary_link("indeclinable")})
table.insert(data.categories, "High Valyrian indeclinable " .. data.pos_category)
else
args[1] = require("Module:qhv-adj/head").fetch("eq")
args[2] = require("Module:qhv-adj/head").fetch("comp")
args[3] = require("Module:qhv-adj/head").fetch("sup")
args[1].label = glossary_link("equative")
args[2].label = glossary_link("comparative")
args[3].label = glossary_link("superlative")
table.insert(data.inflections, args[1])
table.insert(data.inflections, args[2])
table.insert(data.inflections, args[3])
end
end
end


pos_functions["proper nouns"] = pos_functions.nouns
--[[pos_functions["proper nouns"] = pos_functions.nouns
pos_functions["determiners"] = pos_functions.adjectives
pos_functions["determiners"] = pos_functions.adjectives