|
|
Line 2: |
Line 2: |
|
| |
|
| local m_links = require("Module:links") | | local m_links = require("Module:links") |
| | | local m_data = mw.loadData("Module:form of/data") |
| local labels = { | |
| ["1"] = {label = "first-person", glossary = "first person"},
| |
| ["2"] = {label = "second-person", glossary = "second person"},
| |
| ["3"] = {label = "third-person", glossary = "third person"},
| |
| ["singular"] = {label = "singular", glossary = true},
| |
| ["dual"] = {label = "dual", glossary = true},
| |
| ["plural"] = {label = "plural", glossary = true},
| |
| ["inclusive"] = {label = "inclusive", glossary = "clusivity"},
| |
| ["exclusive"] = {label = "exclusive", glossary = "clusivity"},
| |
| ["impersonal"] = {label = "impersonal", glossary = true},
| |
| ["depersonal"] = {label = "depersonal", glossary = true},
| |
| ["active"] = {label = "active", glossary = "active voice"},
| |
| ["passive"] = {label = "passive", glossary = "passive voice"},
| |
| ["mediopassive"] = {label = "mediopassive", glossary = "mediopassive voice"},
| |
| ["indicative"] = {label = "indicative", glossary = "indicative mood"},
| |
| ["subjunctive"] = {label = "subjunctive", glossary = "subjunctive mood"},
| |
| ["conditional"] = {label = "conditional", glossary = "conditional mood"},
| |
| ["optative"] = {label = "optative", glossary = "optative mood"},
| |
| ["imperative"] = {label = "imperative", glossary = "imperative mood"},
| |
| ["past"] = {label = "past", glossary = "past tense"},
| |
| ["nonpast"] = {label = "non-past", glossary = "non-past tense"},
| |
| ["present"] = {label = "present", glossary = "present tense"},
| |
| ["future"] = {label = "future", glossary = "future tense"},
| |
| ["aorist"] = {label = "aorist", glossary = "aorist tense"},
| |
| ["negative"] = {label = "negative", glossary = true},
| |
| ["interrogative"] = {label = "interrogative", glossary = true},
| |
| ["perfective"] = {label = "perfective", glossary = "perfective aspect"},
| |
| ["imperfective"] = {label = "imperfective", glossary = "imperfective aspect"},
| |
| ["habitual"] = {label = "habitual", glossary = "habitual aspect"},
| |
| ["humble"] = {label = "humble", glossary = true},
| |
| ["animate"] = {label = "animate", glossary = true},
| |
| ["inanimate"] = {label = "inanimate", glossary = true},
| |
| ["nominative"] = {label = "nominative", glossary = "nominative case"},
| |
| ["accusative"] = {label = "accusative", glossary = "accusative case"},
| |
| }
| |
| local aliases = {
| |
| ["sg"] = "singular",
| |
| ["s"] = "singular",
| |
| ["du"] = "dual",
| |
| ["d"] = "du",
| |
| ["pl"] = "plural",
| |
| ["p"] = "pl",
| |
| ["inc"] = "inclusive",
| |
| ["incl"] = "inclusive",
| |
| ["exc"] = "exclusive",
| |
| ["excl"] = "exclusive",
| |
| ["impers"] = "impersonal",
| |
| ["impr"] = "impersonal",
| |
| ["deper"] = "depersonal",
| |
| ["depers"] = "depersonal",
| |
| ["act"] = "active",
| |
| ["pass"] = "passive",
| |
| ["ind"] = "indicative",
| |
| ["subj"] = "subjunctive",
| |
| ["sbj"] = "subjunctive",
| |
| ["sjv"] = "subjunctive",
| |
| ["cond"] = "conditional",
| |
| ["opt"] = "optative",
| |
| ["imp"] = "imperative",
| |
| ["pst"] = "past",
| |
| ["pres"] = "present",
| |
| ["npst"] = "nonpast",
| |
| ["fut"] = "future",
| |
| ["aor"] = "aorist",
| |
| ["neg"] = "negative",
| |
| ["interr"] = "interrogative",
| |
| ["intrg"] = "interrogative",
| |
| ["anim"] = "animate",
| |
| ["an"] = "animate",
| |
| ["in"] = "inanimate",
| |
| ["inan"] = "inanimate",
| |
| ["nom"] = "nominative",
| |
| ["acc"] = "accusative",
| |
| }
| |
|
| |
|
| local function make_labels(inflections) | | local function make_labels(inflections) |
| local out = {} | | local out = {} |
| for _, inflection in ipairs(inflections) do | | for _, inflection in ipairs(inflections) do |
| if aliases[inflection] then inflection = aliases[inflection] end | | if m_data.aliases[inflection] then inflection = m_data.aliases[inflection] end |
| local l = labels[inflection] | | local l = m_data.labels[inflection] |
| if l then | | if l then |
| local text = l.label or inflection | | local text = l.label or inflection |