このモジュールについての説明文ページを Module:Declension/doc に作成できます
local p = {}
local langlist = {
pl = { -- polish
adjective = { -- Declension of Regular adjectives / Deklinacja Przymiotnikow regularnych
singular = { -- Number: singular / Liczba pojedyncza
N = { 'y', 'a', 'e'}, -- nominative: masculine, singular, neutral / mianownik , rodzaj: męski, żenski, nijaki (np. zielonY chlopiec, zielonA dziewczynka, zielonE dziecko)
L = {'ym', 'ej', 'ym'} -- locative : masculine, singular, neutral / miejscownik, rodzaj: męski, żenski, nijaki (np. na zielonYM chlopiecu, na zielonEJ dziewczynce, na zielonym dziecku)
},
plural = { -- Number: plural / Liczba mnoga
N = {'i', 'e', 'e' }, -- nominative: masculine, singular, neutral / mianownik , rodzaj: męski, żenski, nijaki (np. zielonI chlopiecy, zielonE dziewczynki, zielonE dzieci)
L = {'ych', 'ych', 'ych'} -- locative : masculine, singular, neutral / miejscownik, rodzaj: męski, żenski, nijaki (np. na zielonI chlopiecy, na zielonYCH dziewczynkach, na zielonYCH dzieciach)
}
}
}
}
function p.makeregular(lang, word, wordtype, number, gender, case)
if wordtype == "adj" then
wordtype = 'adjective'
end
if gender == 'm' or 'masc' or 'masculine' then
gender = 1
elseif gender == 'f' or 'fem' or 'feminine' then
gender = 2
elseif gender == 'n' or 'neutral' then
gender = 3
else
return 'unsupported gender'
end
if number == "p" then
number = "plural"
end
if number == "sing" or number == "s" or not number then
number = "singular"
end
if not case then
case = 'N'
end
-- clip endings
if lang == 'pl' then
if wordtype == 'adjective' then -- clip "y" at the end
if mw.ustring.sub(word, mw.ustring.len(word), mw.ustring.len(word)) == 'y' -- use string libraries ?
then word = mw.ustring.sub(word, 1, mw.ustring.len(word)-1)
end
end
end
return word .. langlist[lang][wordtype][number][case][gender]
end
return p