local p = {}
function p.get_description( frame )
local new_args = p._getParameters( frame.args, {'s'} )
local s = new_args['s'] or ''
local l = string.len(s)
local language_m = require( "Module:language" )
local lang = language_m.get({args={ lang='eo', param='Name'}})
local base
local base_page
local s_end = string.sub(s, l-2, l)
if s_end == 'ojn' then
base = string.sub(s, 0, l-2)
base_page = '[[' .. base .. '#' .. lang .. '|' .. base .. ']]'
return 'Форма множественного числа, винительного падежа существительного ' .. base_page .. '.'
end
local s_end = string.sub(s, l-1, l)
if s_end == 'oj' then
base = string.sub(s, 0, l-1)
base_page = '[[' .. base .. '#' .. lang .. '|' .. base .. ']]'
return 'Форма множественного числа, именительного падежа существительного ' .. base_page .. '.'
elseif s_end == 'on' then
base = string.sub(s, 0, l-1)
base_page = '[[' .. base .. '#' .. lang .. '|' .. base .. ']]'
return 'Форма единственного числа, винительного падежа существительного ' .. base_page .. '.'
end
local s_end = string.sub(s, l, l)
if s_end == 'o' then
base_page = '[[' .. s .. '#' .. lang .. '|' .. s .. ']]'
return 'Форма единственного числа, именительного падежа существительного ' .. base_page .. '.'
end
return ''
end
function p.poetic_elision(frame)
local result;
local new_args = p._getParameters( frame.args, {'s'} );
local s = new_args['s'] or '';
local l = string.len(s);
local s_end = string.sub(s, l, l);
local l_end = string.len(s_end);
if s_end == 'o' and l > 1 then
result = string.sub(s, 0, l-l_end) .. "'";
else
result = '-';
end
return result;
end
function p._getParameters( frame_args, arg_list )
local new_args = {};
local index = 1;
local value;
for i,arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index];
index = index + 1;
end
new_args[arg] = value;
end
return new_args;
end
return p