|
|
| (41 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| local m_links = require("Module:links")
| |
| local lang = require("Module:languages").getByCode("non")
| |
| local export = {}
| |
|
| |
|
| local accel_forms = {
| |
| --NOUNS
| |
| nsi = "nom|s",
| |
| nsd = "def|nom|s",
| |
| npi = "nom|p",
| |
| npd = "def|nom|p",
| |
| asi = "acc|s",
| |
| asd = "def|acc|s",
| |
| api = "acc|p",
| |
| apd = "def|acc|p",
| |
| dsi = "dat|s",
| |
| dsd = "def|dat|s",
| |
| dpi = "dat|p",
| |
| dpd = "def|dat|p",
| |
| gsi = "gen|s",
| |
| gsd = "def|gen|s",
| |
| gpi = "gen|p",
| |
| gpd = "def|gen|p",
| |
|
| |
| --LAUDATIVES
| |
| nsi_la = "nom|s|la",
| |
| nsd_la = "def|nom|s|la",
| |
| npi_la = "nom|p|la",
| |
| npd_la = "def|nom|p|la",
| |
| asi_la = "acc|s|la",
| |
| as_lad = "def|acc|s|la",
| |
| api_la = "acc|p|la",
| |
| apd_la = "def|acc|p|la",
| |
| dsi_la = "dat|s|la",
| |
| dsd_la = "def|dat|s|la",
| |
| dpi_la = "dat|p|la",
| |
| dpd_la = "def|dat|p|la",
| |
| gsi_la = "gen|s|la",
| |
| gsd_la = "def|gen|s|la",
| |
| gpi_la = "gen|p|la",
| |
| gpd_la = "def|gen|p|la",
| |
|
| |
| }
| |
| function export.create(frame)
| |
| local args = frame.args
| |
| local root = args[1] or error("No root provided.")
| |
| local decltype = args["type"] or error("No declension type provided.")
| |
|
| |
| local decl = decls[decltype]
| |
| if not decl then
| |
| error("Unknown declension type: " .. decltype)
| |
| end
| |
|
| |
| local data = { forms = {} }
| |
| decl({ root }, data)
| |
|
| |
| local function showForm(case, number)
| |
| local key = cases[case].short_form .. "-" .. number
| |
| return data.forms[key] or "—"
| |
| end
| |
|
| |
| local function small(text)
| |
| return frame:preprocess("{{small|" .. text .. "}}")
| |
| end
| |
|
| |
| local out = {}
| |
| table.insert(out, '{| class="wikitable" style="text-align:center;"')
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! Number !! Case !! Declension')
| |
|
| |
| -- Singular rows
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! rowspan=4 | Singular')
| |
| table.insert(out, '! ' .. small("nom."))
| |
| table.insert(out, '| ' .. showForm("nominative", "sg"))
| |
|
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! ' .. small("acc."))
| |
| table.insert(out, '| ' .. showForm("accusative", "sg"))
| |
|
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! ' .. small("dat."))
| |
| table.insert(out, '| ' .. showForm("dative", "sg"))
| |
|
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! ' .. small("gen."))
| |
| table.insert(out, '| ' .. showForm("genitive", "sg"))
| |
|
| |
| -- Plural rows
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! rowspan=4 | Plural')
| |
| table.insert(out, '! ' .. small("nom."))
| |
| table.insert(out, '| ' .. showForm("nominative", "pl"))
| |
|
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! ' .. small("acc."))
| |
| table.insert(out, '| ' .. showForm("accusative", "pl"))
| |
|
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! ' .. small("dat."))
| |
| table.insert(out, '| ' .. showForm("dative", "pl"))
| |
|
| |
| table.insert(out, '|-')
| |
| table.insert(out, '! ' .. small("gen."))
| |
| table.insert(out, '| ' .. showForm("genitive", "pl"))
| |
|
| |
| table.insert(out, '|}')
| |
| return table.concat(out, '\n')
| |
| end
| |
|
| |
| return export
| |