Документация

Модуль предназначен для определения основы узбекского глагола и вызова соответствующего шаблона склонения в зависимости от окончания основы на гласную {{гл uz y}} или {{гл uz a}} в противном случае.

Описание функций и параметров

  • call — вызов шаблона спряжения
    Принимает один неименованный параметр — узбекский глагол в инфинитиве
    • Вызов из шаблона: {{#invoke:conj uz|call|{{PAGENAME}}}}
local p = {}

local function substparam(frame, base)
	local param = { base };
	local parentargs = frame:getParent().args
	if parentargs ~= nil then
		for name, value in pairs(parentargs) do
			param[name] = value -- copy template parameters
		end
	end
	return param;
end

function p.call(frame)
	local template = 'гл uz -';
	local w = frame.args[1];
	local base = w;
	if w ~= nil then
		base = mw.ustring.gsub( w, '(.+)moq', '%1', 1 );
		if base ~= w then
			local ch = mw.ustring.sub(base, -1);
			if ch == "ʻ" or ch == "'" or ch == "`" then
				ch = mw.ustring.sub(base, -2, -2);
			end
			local vowels = {
				['a'] = true, 
				['e'] = true, 
				['i'] = true, 
				['u'] = true,
				['o'] = true
			};
			if vowels[ch] then
				if mw.ustring.sub(base, -2) == "la" then
					template = 'гл uz la';
				else
					template = 'гл uz y';
				end
			else 
				if ch == 'l' then
					template = 'гл uz l';
				else
					template = 'гл uz a';
				end
			end
		end
	end
	return frame:expandTemplate{ title = template, args = substparam(frame, base) };
end

return p;