[очистить]
Эта страница документации, она будет включена в основную страницу. Больше информации на странице Шаблон:Документация.Этот модуль хранит информацию о всех формах склонения прилагательных по родам, числам и падежам.
Используется преимущественно в модуле Инвентарный слот/Псевдонимы.
-- https://ru.wiktionary.org/wiki/Викисловарь:Использование_словаря_Зализняка
-- Так как этот модуль только для падежей и не предназначен для образования
-- кратких / сравнительных / превосходных форм, дополнительные склонения —
-- помимо цифра+буква — здесь не нужны.
local declensions = {
['1a'] = {
["м"] = { ["и"] = "ый", ["р"] = "ого", ["д"] = "ому", ["в"] = "ый", ["т"] = "ым", ["п"] = "ом" },
["ж"] = { ["и"] = "ая", ["р"] = "ой", ["д"] = "ой", ["в"] = "ую", ["т"] = "ой", ["п"] = "ой" },
["с"] = { ["и"] = "ое", ["р"] = "ого", ["д"] = "ому", ["в"] = "ое", ["т"] = "ым", ["п"] = "ом" },
["н"] = { ["и"] = "ые", ["р"] = "ых", ["д"] = "ым", ["в"] = "ые", ["т"] = "ыми", ["п"] = "ых" },
},
['1b'] = {
["м"] = { ["и"] = "ой", ["р"] = "ого", ["д"] = "ому", ["в"] = "ой", ["т"] = "ым", ["п"] = "ом" },
["ж"] = { ["и"] = "ая", ["р"] = "ой", ["д"] = "ой", ["в"] = "ую", ["т"] = "ой", ["п"] = "ой" },
["с"] = { ["и"] = "ое", ["р"] = "ого", ["д"] = "ому", ["в"] = "ое", ["т"] = "ым", ["п"] = "ом" },
["н"] = { ["и"] = "ые", ["р"] = "ых", ["д"] = "ым", ["в"] = "ые", ["т"] = "ыми", ["п"] = "ых" },
},
['2a'] = {
["м"] = { ["и"] = "ий", ["р"] = "его", ["д"] = "ему", ["в"] = "ий", ["т"] = "им", ["п"] = "ем" },
["ж"] = { ["и"] = "яя", ["р"] = "ей", ["д"] = "ей", ["в"] = "юю", ["т"] = "ей", ["п"] = "ей" },
["с"] = { ["и"] = "ее", ["р"] = "его", ["д"] = "ему", ["в"] = "ее", ["т"] = "им", ["п"] = "ем" },
["н"] = { ["и"] = "ие", ["р"] = "их", ["д"] = "им", ["в"] = "ие", ["т"] = "ими", ["п"] = "их" },
},
['4a'] = {
["м"] = { ["и"] = "ий", ["р"] = "его", ["д"] = "ему", ["в"] = "ий", ["т"] = "им", ["п"] = "ем" },
["ж"] = { ["и"] = "ая", ["р"] = "ей", ["д"] = "ей", ["в"] = "ую", ["т"] = "ей", ["п"] = "ей" },
["с"] = { ["и"] = "ее", ["р"] = "его", ["д"] = "ему", ["в"] = "ее", ["т"] = "им", ["п"] = "ем" },
["н"] = { ["и"] = "ие", ["р"] = "их", ["д"] = "им", ["в"] = "ие", ["т"] = "ими", ["п"] = "их" },
},
}
local adjectives = {
-- Цвета
["белый"] = '1a',
["оранжевый"] = '1a',
["сиреневый"] = '1a',
["светло-синий"] = '2a',
["жёлтый"] = '1a',
["лаймовый"] = '1a',
["розовый"] = '1a',
["серый"] = '1a',
["светло-серый"] = '1a',
["бирюзовый"] = '1a',
["фиолетовый"] = '1a',
["синий"] = '2a',
["коричневый"] = '1a',
["зелёный"] = '1a',
["красный"] = '1a',
["чёрный"] = '1a',
-- приставки для слотов
["любой"] = '1b',
["соответствующий"] = '4a',
["повреждённый"] = '1a', -- вообще-то это причастие, но...
["цветной"] = '1b',
-- материалы
["деревянный"] = '1a',
["каменный"] = '1a',
["железный"] = '1a',
["золотой"] = '1b',
["алмазный"] = '1a',
["незеритовый"] = '1a',
}
local declensed = {}
for adjective, declension in pairs(adjectives) do
local adj_decl = assert(declensions[declension], ("неизвестное склонение «%s» для прилагательного «%s»"):format(declension, adjective))
local stem = mw.ustring.gsub(adjective, '..$', '')
local declensed_data = {}
for gender, gender_data in pairs(adj_decl) do
local declensed_gender_data = {}
for case, case_format in pairs(gender_data) do
declensed_gender_data[case] = stem .. case_format
end
declensed_data[gender] = declensed_gender_data
end
declensed[adjective] = declensed_data
end
return declensed