Модуль:conj uz
Модуль предназначен для определения основы узбекского глагола и вызова соответствующего шаблона склонения в зависимости от окончания основы на гласную {{гл 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;