Module:bnt-headword

From Wiktionary, the free dictionary
Jump to navigation Jump to search
This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local export = {}

local lang = require("Module:languages").getByCode("bnt-pro")


function export.noun(frame)
	local params = {
		[1] = {},
		[2] = {},
		["head"] = {},
		}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)
	
	local data = {lang = lang, pos_category = "nouns", categories = {}, heads = {args["head"]}, genders = {args[1] or "?"}, inflections = {}}
	
	local prefixes = {
		["1"] =  {"mʊ̀"},
		["1a"] = {""},
		["2"] =  {"bà"},
		["3"] =  {"mʊ̀"},
		["4"] =  {"mɪ̀"},
		["5"] =  {"ì"},
		["6"] =  {"mà"},
		["7"] =  {"kɪ̀"},
		["8"] =  {"bì"},
		["9"] =  {"n", "m"},
		["10"] = {"n", "m"},
		["11"] = {"dʊ̀"},
		["12"] = {"kà"},
		["13"] = {"tʊ̀"},
		["14"] = {"bʊ̀"},
		["15"] = {"kʊ̀"},
		["16"] = {"pà"},
		["17"] = {"kʊ̀"},
		["18"] = {"mʊ̀"},
		["19"] = {"pì"}
	}
	
	local stem = mw.title.getCurrentTitle().subpageText
	
	if args[1] then
		for key, prefix in ipairs(prefixes[args[1]]) do
			if mw.ustring.find(stem, "^" .. prefix) then
				stem = stem:gsub("^" .. prefix, "")
				break
			end
		end
		
		table.insert(data.categories, lang:getCanonicalName() .. " class " .. args[1] .. " nouns")
	end
	
	data.sort_key = lang:makeSortKey(stem)
	
	if args[2] then
		local plural = prefixes[args[2]][1] .. stem
		
		if args[2] == "9" or args[2] == "10" then
			if mw.ustring.find(stem, "^[bp]") then
				plural = "m" .. stem
			end
		end
		
		table.insert(data.inflections, {label = "plural", {term = "*" .. plural, genders = {"c" .. args[2]}}})
	end
	
	return require("Module:headword").full_headword(data)
end


return export