Модуль:Pronouns
Перейти к навигации
Перейти к поиску
Для документации этого модуля может быть создана страница Модуль:Pronouns/doc
local p = {}
local cache = {}
local pronouns = {
["им"] = "",
["род"] = "",
["дат"] = "",
["вин"] = "",
["твор"] = "",
["пред"] = "",
["мжим"] = "",
["мжрод"] = "",
["мждат"] = "",
["мжвин"] = "",
["мжтвор"] = "",
["мжпред"] = "",
["мприл"] = "",
["жприл"] = "",
["срприл"] = "",
["мжприл"] = ""
}
function p.pronouns(frame)
local word = frame.args[1]
local case = frame.args[2]
local pronounsed_word
-- проверяем, есть ли результат в кэше
if cache[word] and cache[word][case] then
pronounsed_word = cache[word][case]
else
local pronouns_table = require("Модуль:Pronouns/item")
local word_pronouns = pronouns_table[word]
if word_pronouns ~= nil then
pronounsed_word = word_pronouns[case] or word
else
if pronouns[case] == nil then
error("Неверный падеж: " .. case)
end
pronounsed_word = word .. (pronouns[case] or "")
end
-- сохраняем результат в кэше
if not cache[word] then
cache[word] = {}
end
cache[word][case] = pronounsed_word
end
return pronounsed_word
end
return p