Модуль:Песочница/Pok: различия между версиями

Материал из Space Station 14 Вики
мНет описания правки
мНет описания правки
Строка 16: Строка 16:
-- Функция преобразования в множественное число для каждого слова
-- Функция преобразования в множественное число для каждого слова
function p.main(frame)
function p.main(frame)
    local text = frame.args[1] or ""
     local words = {}
     local words = {}
     for word in frame:gmatch("%S+") do
     for word in text:gmatch("%S+") do
         local pluralized = word
         local pluralized = word
         -- Применяем правила для образования множественного числа
         -- Применяем правила для образования множественного числа

Версия от 22:16, 3 апреля 2025

Для документации этого модуля может быть создана страница Модуль:Песочница/Pok/doc

local p = {}

-- Простые правила образования множественного числа
local rules = {
    {"ие$", "ие", "ия"},  -- здание -> здания
    {"ка$", "ка", "ки"},  -- собака -> собаки
    {"ок$", "ок", "ки"},  -- носок -> носки
    {"ец$", "ец", "цы"},  -- молодец -> молодцы
    {"ье$", "ье", "ья"},  -- зелье -> зелья
    {"о$", "о", "а"},     -- окно -> окна
    {"е$", "е", "я"},     -- поле -> поля
    {"й$", "й", "и"},     -- край -> края
    {"ь$", "ь", "и"}      -- лошадь -> лошади
}

-- Функция преобразования в множественное число для каждого слова
function p.main(frame)
    local text = frame.args[1] or ""
    local words = {}
    for word in text:gmatch("%S+") do
        local pluralized = word
        -- Применяем правила для образования множественного числа
        for _, rule in ipairs(rules) do
            if word:match(rule[1]) then
                pluralized = word:gsub(rule[2].."$", rule[3])
                break
            end
        end
        table.insert(words, pluralized)
    end
    return table.concat(words, " ")
end

return p