local m_utilities = require("Module:utilities")
local m_links = require("Module:links")
local m_translit = require("Module:Goth-translit")
local lang = require("Module:languages").getByCode("got")
local export = {}
local function postprocess(args, data)
data.sg = true
data.pl = true
if args == "pl" then
data.sg = false
table.insert(data.categories, lang:getCanonicalName() .. " pluralia tantum")
elseif args == "sg" then
data.pl = false
table.insert(data.categories, lang:getCanonicalName() .. " uncountable nouns")
end
for key, form in pairs(data.forms) do
-- Do not show singular or plural forms for nominals that don't have them
if (args == "pl" and key:find("_sg$")) or (args == "sg" and key:find("_pl$")) then
form = nil
end
data.forms = form
end
-- Check if the lemma form matches the page name
if data.forms or "sg")] and (lang:makeEntryName(m_translit.tr_reverse(data.forms or "sg")]))) ~= mw.title.getCurrentTitle().text then
table.insert(data.categories, lang:getCanonicalName() .. " entries with inflection not matching pagename")
end
end
local function make_Latn(args, names)
for _, name in ipairs(names) do
if args then
if type(args) == "table" then
for i, _ in ipairs(args) do
args = m_translit.tr(args)
end
else
args = m_translit.tr(args)
end
end
end
end
-- Inflection functions
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, "nomsg"})
if args and not (args == "ji" or args == "ei") then
error("Invalid value for parameter j=, must be \"ji\", \"ei\" or empty.")
end
local data = {forms = {}, info = "masculine " .. (args and "j" or "") .. "a-stem", categories = {lang:getCanonicalName() .. " masculine a-stem nouns"}}
data.forms = {args or ((args or args) .. (args or "") .. "s")}
data.forms = {(args or args) .. (args and "i" or "")}
data.forms = {(args or args) .. (args and "i" or "")}
data.forms = {args .. (args or "i") .. "s"}
data.forms = {args .. (args and "j" or "") .. "a"}
data.forms = {args .. (args and "j" or "") .. "ōs"}
data.forms = {args .. (args and "j" or "") .. "ōs"}
data.forms = {args .. (args and "j" or "") .. "ans"}
data.forms = {args .. (args and "j" or "") .. "ē"}
data.forms = {args .. (args and "j" or "") .. "am"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2})
if args and not (args == "ji" or args == "ei") then
error("Invalid value for parameter j=, must be \"ji\", \"ei\" or empty.")
end
local data = {forms = {}, info = "neuter " .. (args and "j" or "") .. "a-stem", categories = {lang:getCanonicalName() .. " neuter a-stem nouns"}}
data.forms = {(args or args) .. (args and "i" or "")}
data.forms = {(args or args) .. (args and "i" or "")}
data.forms = {(args or args) .. (args and "i" or "")}
data.forms = {args .. (args or "i") .. "s"}
data.forms = {args .. (args and "j" or "") .. "a"}
data.forms = {args .. (args and "j" or "") .. "a"}
data.forms = {args .. (args and "j" or "") .. "a"}
data.forms = {args .. (args and "j" or "") .. "a"}
data.forms = {args .. (args and "j" or "") .. "ē"}
data.forms = {args .. (args and "j" or "") .. "am"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "masculine an-stem", categories = {lang:getCanonicalName() .. " masculine an-stem nouns"}}
data.forms = {args .. "a"}
data.forms = {args .. "a"}
data.forms = {args .. "an"}
data.forms = {args .. "ins"}
data.forms = {args .. "in"}
data.forms = {args .. "ans"}
data.forms = {args .. "ans"}
data.forms = {args .. "ans"}
data.forms = {args .. "anē"}
data.forms = {args .. "am"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "neuter an-stem", categories = {lang:getCanonicalName() .. " neuter an-stem nouns"}}
data.forms = {args .. "ō"}
data.forms = {args .. "ō"}
data.forms = {args .. "ō"}
data.forms = {args .. "ins"}
data.forms = {args .. "in"}
data.forms = {args .. "ōna"}
data.forms = {args .. "ōna"}
data.forms = {args .. "ōna"}
data.forms = {args .. "anē"}
data.forms = {args .. "am"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, "nomsg", "datpl"})
local data = {forms = {}, info = "masculine/feminine consonant stem", categories = {lang:getCanonicalName() .. " consonant stem nouns"}}
data.forms = {args or args .. "s"}
data.forms = {args .. ""}
data.forms = {args .. ""}
data.forms = {args .. "s"}
data.forms = {args .. ""}
data.forms = {args .. "s"}
data.forms = {args .. "s"}
data.forms = {args .. "s"}
data.forms = {args .. "ē"}
data.forms = {args or args .. "um"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, "nomsg"})
local data = {forms = {}, info = "feminine i/ō-stem", categories = {lang:getCanonicalName() .. " i/ō-stem nouns"}}
data.forms = {args or (args or args) .. "s"}
data.forms = {(args or args) .. ""}
data.forms = {(args or args) .. ""}
data.forms = {args .. "ais"}
data.forms = {args .. "ai"}
data.forms = {args .. "ōs"}
data.forms = {args .. "ōs"}
data.forms = {args .. "ins"}
data.forms = {args .. "ō"}
data.forms = {args .. "im"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, "nomsg"})
local data = {forms = {}, info = "feminine i-stem", categories = {lang:getCanonicalName() .. " feminine i-stem nouns"}}
data.forms = {args or (args or args) .. "s"}
data.forms = {(args or args) .. ""}
data.forms = {(args or args) .. ""}
data.forms = {args .. "ais"}
data.forms = {args .. "ai"}
data.forms = {args .. "eis"}
data.forms = {args .. "eis"}
data.forms = {args .. "ins"}
data.forms = {args .. "ē"}
data.forms = {args .. "im"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, "nomsg"})
local data = {forms = {}, info = "masculine i-stem", categories = {lang:getCanonicalName() .. " masculine i-stem nouns"}}
data.forms = {args or (args or args) .. "s"}
data.forms = {(args or args) .. ""}
data.forms = {(args or args) .. ""}
data.forms = {args .. "is"}
data.forms = {args .. "a"}
data.forms = {args .. "eis"}
data.forms = {args .. "eis"}
data.forms = {args .. "ins"}
data.forms = {args .. "ē"}
data.forms = {args .. "im"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "feminine īn-stem", categories = {lang:getCanonicalName() .. " īn-stem nouns"}}
data.forms = {args .. "ei"}
data.forms = {args .. "ei"}
data.forms = {args .. "ein"}
data.forms = {args .. "eins"}
data.forms = {args .. "ein"}
data.forms = {args .. "eins"}
data.forms = {args .. "eins"}
data.forms = {args .. "eins"}
data.forms = {args .. "einō"}
data.forms = {args .. "eim"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{nom_sg}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{voc_sg}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{acc_sg}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{gen_sg}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{dat_sg}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{nom_pl}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{voc_pl}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{acc_pl}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{gen_pl}}}" or nil},
= {list = true, default = mw.title.getCurrentTitle().nsText == "Template" and "{{{dat_pl}}}" or nil},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {"nom_sg", "voc_sg", "acc_sg", "gen_sg", "dat_sg", "nom_pl", "voc_pl", "acc_pl", "gen_pl", "dat_pl"})
local data = {forms = {}, info = "loanword; irregular/mixed declension", categories = {lang:getCanonicalName() .. " irregularly declined borrowed nouns"}}
data.forms = args
data.forms = args
data.forms = args
data.forms = args
data.forms = args
data.forms = args
data.forms = args
data.forms = args
data.forms = args
data.forms = args
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "masculine nd-stem", categories = {lang:getCanonicalName() .. " nd-stem nouns"}}
data.forms = {args .. "s"}
data.forms = {args .. ""}
data.forms = {args .. ""}
data.forms = {args .. "is"}
data.forms = {args .. ""}
data.forms = {args .. "s"}
data.forms = {args .. "s"}
data.forms = {args .. "s"}
data.forms = {args .. "ē"}
data.forms = {args .. "am"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, "nomsg"})
local data = {forms = {}, info = "feminine ō-stem", categories = {lang:getCanonicalName() .. " ō-stem nouns"}}
data.forms = {args or args .. "a"}
data.forms = {args or args .. "a"}
data.forms = {args .. "a"}
data.forms = {args .. "ōs"}
data.forms = {args .. "ai"}
data.forms = {args .. "ōs"}
data.forms = {args .. "ōs"}
data.forms = {args .. "ōs"}
data.forms = {args .. "ō"}
data.forms = {args .. "ōm"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "feminine ōn-stem", categories = {lang:getCanonicalName() .. " ōn-stem nouns"}}
data.forms = {args .. "ō"}
data.forms = {args .. "ō"}
data.forms = {args .. "ōn"}
data.forms = {args .. "ōns"}
data.forms = {args .. "ōn"}
data.forms = {args .. "ōns"}
data.forms = {args .. "ōns"}
data.forms = {args .. "ōns"}
data.forms = {args .. "ōnō"}
data.forms = {args .. "ōm"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "masculine/feminine r-stem", categories = {lang:getCanonicalName() .. " r-stem nouns"}}
data.forms = {args .. "ar"}
data.forms = {args .. "ar"}
data.forms = {args .. "ar"}
data.forms = {args .. "rs"}
data.forms = {args .. "r"}
data.forms = {args .. "rjus"}
data.forms = {args .. "rjus"}
data.forms = {args .. "runs"}
data.forms = {args .. "rē"}
data.forms = {args .. "rum"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "masculine/feminine u-stem", categories = {lang:getCanonicalName() .. " masculine/feminine u-stem nouns"}}
data.forms = {args .. "us"}
data.forms = {args .. "au"}
data.forms = {args .. "u"}
data.forms = {args .. "aus"}
data.forms = {args .. "au"}
data.forms = {args .. "jus"}
data.forms = {args .. "jus"}
data.forms = {args .. "uns"}
data.forms = {args .. "iwē"}
data.forms = {args .. "um"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
= {required = true, default = "{{{1}}}"},
= {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "neuter u-stem", categories = {lang:getCanonicalName() .. " neuter u-stem nouns"}}
args = "sg" -- No plural forms attested
data.forms = {args .. "u"}
data.forms = {args .. "u"}
data.forms = {args .. "u"}
data.forms = {args .. "aus"}
data.forms = {args .. "au"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
-- Irregular nouns
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine an-stem, contraction in plural", categories = {lang:getCanonicalName() .. " an-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"aba"}
data.forms = {"*aba"}
data.forms = {"aban"}
data.forms = {"abins"}
data.forms = {"abin"}
data.forms = {"abans"}
data.forms = {"*abans"}
data.forms = {"*abans"}
data.forms = {"abnē"}
data.forms = {"abnam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine mixed i/a-stem", categories = {lang:getCanonicalName() .. " i-stem nouns", lang:getCanonicalName() .. " a-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"aiws"}
data.forms = {"aiw"}
data.forms = {"aiw"}
data.forms = {"aiwis"}
data.forms = {"aiwa"}
data.forms = {"*aiweis", "*aiwōs"}
data.forms = {"*aiweis", "*aiwōs"}
data.forms = {"aiwins"}
data.forms = {"aiwē"}
data.forms = {"aiwam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine mixed i/a-stem", categories = {lang:getCanonicalName() .. " i-stem nouns", lang:getCanonicalName() .. " a-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"andeis"}
data.forms = {"*andi"}
data.forms = {"andi"}
data.forms = {"*andeis"}
data.forms = {"andja"}
data.forms = {"*andjōs"}
data.forms = {"*andjōs"}
data.forms = {"andins"}
data.forms = {"*andjē", "*andē"}
data.forms = {"andjam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine mixed an/u stem, contraction in the plural", categories = {lang:getCanonicalName() .. " an-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"auhsa"}
data.forms = {"*auhsa"}
data.forms = {"auhsau"}
data.forms = {"*auhsaus?"}
data.forms = {"auhsau"}
data.forms = {"*auhsnjus"}
data.forms = {"*auhsnjus"}
data.forms = {"auhsnuns"}
data.forms = {"auhsne"}
data.forms = {"*auhsum"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "neuter an-stem, irregular nominative", categories = {lang:getCanonicalName() .. " an-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
args = "sg"
data.forms = {"fōn"}
data.forms = {"fōn"}
data.forms = {"fōn"}
data.forms = {"funins"}
data.forms = {"funin"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "feminine mixed i/ō-stem", categories = {lang:getCanonicalName() .. " i/ō-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"*haims"}
data.forms = {"*haim"}
data.forms = {"haim"}
data.forms = {"*haimais"}
data.forms = {"haimai"}
data.forms = {"*haimōs"}
data.forms = {"*haimōs"}
data.forms = {"haimōs"}
data.forms = {"haimō"}
data.forms = {"haimōm"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine mixed an/consonant stem", categories = {lang:getCanonicalName() .. " an-stem nouns", lang:getCanonicalName() .. " consonant stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"manna"}
data.forms = {"manna"}
data.forms = {"mannan"}
data.forms = {"mans"}
data.forms = {"mann"}
data.forms = {"mans", "mannans"}
data.forms = {"mans", "mannans"}
data.forms = {"mans", "mannans"}
data.forms = {"mannē"}
data.forms = {"mannam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "neuter an-stem, contraction in plural", categories = {lang:getCanonicalName() .. " an-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"namō"}
data.forms = {"namō"}
data.forms = {"namō"}
data.forms = {"namins"}
data.forms = {"namin"}
data.forms = {"namna"}
data.forms = {"namna"}
data.forms = {"namna"}
data.forms = {"namnē"}
data.forms = {"namnam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine mixed consonant/a-stem", categories = {lang:getCanonicalName() .. " consonant stem nouns", lang:getCanonicalName() .. " a-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"reiks"}
data.forms = {"*reik"}
data.forms = {"*reik"}
data.forms = {"reikis"}
data.forms = {"reik"}
data.forms = {"reiks"}
data.forms = {"*reiks"}
data.forms = {"*reiks"}
data.forms = {"reikē"}
data.forms = {"reikam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "neuter an-stem, contraction in plural", categories = {lang:getCanonicalName() .. " an-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"watō"}
data.forms = {"watō"}
data.forms = {"watō"}
data.forms = {"watins"}
data.forms = {"watin"}
data.forms = {"*watna"}
data.forms = {"*watna"}
data.forms = {"*watna"}
data.forms = {"*watnē"}
data.forms = {"watnam"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "masculine mixed i/a-stem", categories = {lang:getCanonicalName() .. " i-stem nouns", lang:getCanonicalName() .. " a-stem nouns", lang:getCanonicalName() .. " irregular nouns"}}
data.forms = {"wēgs"}
data.forms = {"*wēg"}
data.forms = {"*wēg"}
data.forms = {"*wēgis"}
data.forms = {"wēga"}
data.forms = {"wēgōs"}
data.forms = {"wēgōs"}
data.forms = {"*wēgans", "*wēgins"}
data.forms = {"*wēgē"}
data.forms = {"wēgim"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
-- Make the table
function make_table(data)
local function repl(param)
if param == "info" then
return mw.getContentLanguage():ucfirst(data.info or "")
end
local form = data.forms
if not form or #form == 0 then
return "—"
end
local ret_Goth = {}
local ret_Latn = {}
for key, subform in ipairs(form) do
table.insert(ret_Latn, m_links.full_link({lang = lang, term = subform, tr = "-"}))
table.insert(ret_Goth, m_links.full_link({lang = lang, term = m_translit.tr_reverse(subform), tr = "-"}))
end
return table.concat(ret_Goth, ", ") .. "<br/>" .. table.concat(ret_Latn, ", ")
end
local names = {
= "nominative",
= "vocative",
= "accusative",
= "genitive",
= "dative",
= "singular",
= "plural",
}
local numbers = {"sg", "pl"}
local cases = {"nom", "voc", "acc", "gen", "dat"}
local wikicode = {}
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = '{{{info}}}',
palette = 'grey',
tall = 'yes',
}
})
table.insert(wikicode, "|-")
table.insert(wikicode, "!")
for _, number in ipairs(numbers) do
table.insert(wikicode, "! " .. names)
end
for _, case in ipairs(cases) do
table.insert(wikicode, "|-")
table.insert(wikicode, "! " .. names)
for _, number in ipairs(numbers) do
table.insert(wikicode, "| {{{" .. case .. "_" .. number .. "}}}")
end
end
table.insert(wikicode, mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' })
wikicode = table.concat(wikicode, "\n")
return mw.ustring.gsub(wikicode, "{{{(+)}}}", repl)
end
return export