Module:Inflect senra
Documentation for this module may be created at Module:Inflect senra/doc
local p = {}
local function change_suffix(word, suffix)
return (word:gsub("u$", suffix))
end
local i18n = {}
local function template(language, word, tmpl)
local lang = i18n[language] or i18n.en
return (tmpl:gsub("[%$-][^%s]+", function(text)
local suffix = text:match "%-(.*)"
local translation = text:match "%$(.*)"
if suffix then
return change_suffix(word, suffix)
elseif translation then
return lang[translation]
end
end))
end
function p.table(frame)
local language, word = frame.args[1], frame.args[2]
word = word:gsub("%s*$", "")
word = word:gsub("^%s*", "")
if not word:match"u$" then
error("content word must be lemma (end with -u): "..word)
end
return frame:preprocess(template(language, word, [[
{{|class="wikitext"
|+ $inflections
! !! $regular !! $infinitive $imperative $adverbial
|-
! | || -u
|-
! $intransitive | -i | -ui | -e | -iń
|-
! $transitive | -a | -ua | -ea | -ań
}}
]]))
end
i18n.en = {
inflections = "inflections",
regular = "regular",
infinitive = "infinitive",
imperative = "imperative",
adverbial = "adverbial",
intransitive = "intransitive",
transitive = "transitive",
}
return p