Module:User:Oyunqi/ug-headword2

From Wiktionary, the free dictionary
Jump to navigation Jump to search

This is a private module sandbox of Oyunqi, for their own experimentation. Items in this module may be added and removed at Oyunqi's discretion; do not rely on this module's stability.


local export = {}
local m_com = require("Module:User:Oyunqi/ug-common2")

local pos_functions = {}

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

local PAGENAME = mw.title.getCurrentTitle().subpageText

function export.make_plural_noun(singular, vv, change)
	local base, v, c = m_com.getLast(singular)
	if change == "yes" then
		if vv ~= nil and vv ~= "" then
			v = vv
		else
			if c == "" and (v == "ا" or v == "ە") then
				v = "ى"
			end
		end
	end
	local term = base .. v .. c
	local tongue = m_com.checkTongue(singular)
	if tongue == "front" then
		return term .. "لەر"
	elseif tongue == "back" then
		return term .. "لار"
	end
	return nil
end

function export.noun(frame)
	local params = {
		[1] = {}, -- Vowel, if there is a change
		["pl"] = {}, --plural override
		["head"] = {},
		["change"] = {}, -- yes or (else:no)
	}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)

	local data = {
		lang = lang,
		pos_category = "nouns",
		categories = {},
		heads = {args["head"]},
		inflections = {enable_auto_translit = true}
	}
	local pl = args["pl"] or nil
	local change = args["change"] or "yes"
	if pl == "-" then
		table.insert(data.inflections, {label = "[[Appendix:Glossary#uncountable|uncountable]]"})
		table.insert(data.categories, "Uyghur uncountable nouns")
	else
		if not pl then
			local plural = export.make_plural_noun(PAGENAME, args[1], change)
			if plural then
				pl = plural
			else
				table.insert(data.categories, "Uyghur nouns with unpredictable plurals")
			end
		end
		if pl then
			local infl = {label = 'plural', {term=pl}}
			table.insert(data.inflections, infl)
		-- else
		--	table.insert(data.categories, "Uyghur nouns needing plural inflection")
		end
	end
	
	if pl and not mw.title.new(pl).exists then
		table.insert(data.categories, "Missing Uyghur noun forms")
	end

	return require("Module:headword").full_headword(data)
end

return export