Module:lumb-conj: Difference between revisions
No edit summary |
No edit summary |
||
| (6 intermediate revisions by the same user not shown) | |||
| Line 63: | Line 63: | ||
local irregulars = { | local irregulars = { | ||
[""] = { | ["berijana"] = { | ||
fut_1s = "skrōgijōna", | |||
fut_2s = "skrōgijōnt", | |||
fut_3s = "skrōgijōnahþ", | |||
fut_1p = "skrōgijōnha", | |||
fut_2p = "skrōgijōnta", | |||
fut_3p = "skrōgijōnahþa", | |||
past_1s = "pākīr", | |||
past_2s = "pākīnt", | |||
past_3s = "pākīþ", | |||
past_1p = "pākīra", | |||
past_2p = "pākīnta", | |||
past_3p = "pākīþa", | |||
past_part = "pākijar", | |||
} | } | ||
} | } | ||
| Line 133: | Line 146: | ||
local root = args.root | local root = args.root | ||
local | local strong = args.strong | ||
local strong_classes = { | |||
a = { | |||
past = "ū", | |||
future = "ō", | |||
}, | |||
e = { | |||
past = "ā", | |||
future = "i", | |||
}, | |||
} | |||
local strong_categories = { | |||
a = "Lumbaieric class 1 strong verbs", | |||
e = "Lumbaieric class 2 strong verbs", | |||
} | |||
local forms = {} | local forms = {} | ||
local used_irregular = false | |||
for slot, ending in pairs(endings) do | for slot, ending in pairs(endings) do | ||
| Line 144: | Line 175: | ||
elseif irregulars[title] and irregulars[title][slot] then | elseif irregulars[title] and irregulars[title][slot] then | ||
forms[slot] = irregulars[title][slot] | forms[slot] = irregulars[title][slot] | ||
used_irregular = true | |||
else | else | ||
| Line 156: | Line 188: | ||
-- STRONG VERBS | -- STRONG VERBS | ||
if | if strong and strong_classes[strong] then | ||
if | local grade | ||
if mw.ustring.match(slot, "^past_") then | |||
grade = strong_classes[strong].past | |||
elseif mw.ustring.match(slot, "^fut_") then | |||
grade = strong_classes[strong].future | |||
end | |||
if grade then | |||
if rootPart then | if rootPart then | ||
rootPart = mw.ustring.gsub(rootPart, "a", | rootPart = mw.ustring.gsub(rootPart, "a", grade) | ||
currentStem = rootPart .. suffixPart | currentStem = rootPart .. suffixPart | ||
else | else | ||
currentStem = mw.ustring.gsub(currentStem, "a", | currentStem = mw.ustring.gsub(currentStem, "a", grade) | ||
end | end | ||
end | end | ||
| Line 179: | Line 212: | ||
end | end | ||
end | end | ||
local conjugation_type | |||
if strong_categories[strong] then | |||
conjugation_type = " (strong class " .. strong_categories[strong]:match("class (%d+)") .. ")" | |||
else | |||
conjugation_type = " (weak)" | |||
end | |||
---------------------------------------------------------------- | ---------------------------------------------------------------- | ||
| Line 187: | Line 228: | ||
table.insert(t, | table.insert(t, | ||
'{| class="wikitable mw-collapsible mw-collapsed"\n' | |||
.. '|+ Conjugation of [[Contionary:' .. title .. '|' .. title .. ']]' | |||
.. conjugation_type .. '\n' | |||
) | |||
table.insert(t, | table.insert(t, | ||
| Line 360: | Line 402: | ||
table.insert(t, '|}') | table.insert(t, '|}') | ||
return table.concat(t) | if strong_categories[strong] then | ||
table.insert(t, | |||
"\n[[Category:" .. strong_categories[strong] .. "]]") | |||
else | |||
table.insert(t, | |||
"\n[[Category:Lumbaieric weak verbs]]") | |||
end | |||
if used_irregular then | |||
table.insert(t, | |||
"\n[[Category:Lumbaieric irregular verbs]]") | |||
end | |||
return table.concat(t) | |||
end | end | ||
return p | return p | ||