Module:kk-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 = {}

-- A list of functions that do the work that is specific to each part of speech.
local pos_functions = {}

local lang = require("Module:languages").getByCode("kk")

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
	local args = frame:getParent().args
	PAGENAME = mw.title.getCurrentTitle().text
	
	local head = args["head"]; if head == "" then head = nil end
	
	-- The part of speech. This is also the name of the category that entries go in.
	local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
	
	-- Detect the script
	local sc = lang:findBestScript(PAGENAME)
	local tr = nil
	
	-- Generate or retrieve the transliteration, depending on the script.
	if sc == "Cyrl" then
		local m_translit = require("Module:kk-translit")
		tr = m_translit.tr(PAGENAME)
	elseif sc == "Arab" then
		tr = args["tr"]; if tr == "" then tr = nil end
	end
	
	local data = {lang = lang, sc = sc, pos_category = poscat, categories = {}, heads = {head}, translits = {tr}, inflections = {}}
	
	if pos_functions[poscat] then
		pos_functions[poscat](args, data)
	end
	
	return require("Module:headword").full_headword(data)
end

pos_functions["nouns"] = function(args, data)
	local plural = args["pl"]; if plural == "" then plural = nil end
	
	if plural then
		table.insert(data.inflections, {label = "nominative plural", plural})
	end
end

return export