Modul:no-noun
Dokumentasjon for denne modulen kan opprettes på Modul:no-noun/dok
--Under development: Just trying
local gt = require("Modul:grammar-table")
gt.setLanguage("no")
local export = {}
local inflection_rows = mw.loadData("Modul:no-noun/patterns")
--midlertidlig løsning
function getNorm(code)
local norm_d = {}
norm_d["nn"] = "nynorsk"
norm_d["nb"] = "bokmål"
norm_d["nrm"] = "riksmål"
norm_d["nb/nrm"] = "bokmål/riksmål"
norm_d["nb/nn"] = "bokmål/nynorsk"
norm_d["no"] = "bokmål/riksmål/nynorsk"
return '(<span style="font-variant:small-caps; font-size:0.9em;">' .. norm_d[code] .. '</span>)'
end
function export.getStem(pagename, rule)
local last = mw.ustring.sub(pagename, -1, -1)
local last_2 = mw.ustring.sub(pagename, -2, -1)
if(rule=="nn-m-fl" and last_2=="ar") then
return mw.ustring.sub(pagename, 1, -3)
elseif(rule=="nb-m-fl" and last_2=="er") then
return mw.ustring.sub(pagename, 1, -3)
elseif(rule=="no-n-sg" or rule=="nn-n-sg" or rule=="nb-n-sg") then
if(last=="e") then
return mw.ustring.sub(pagename,1,-2)
else
return pagename
end
end
return ""
end
function export.getInflectionRow(arglist)
local pagename = mw.title.getCurrentTitle().text
local rule = arglist.args[2]
local infl_row = inflection_rows[rule]
local stem = export.getStem(pagename, rule)
local norm = getNorm(mw.ustring.sub(rule, 1, 2))
if(rule=="nn-m-fl") then
local form1 = stem .. infl_row.upl
local form2 = stem .. infl_row.dpl
return gt.getRow({'|colspan="2"', "(''kun flertall'')"}, form1, form2, norm)
elseif(rule=="nb-m-fl") then
local form1 = stem .. infl_row.upl
local form2 = stem .. infl_row.dpl
return gt.getRow({'|colspan="2"', "(''kun flertall'')"}, form1, form2, norm)
elseif(rule=="no-n-sg" or rule=="nn-n-sg" or rule=="nb-n-sg") then
local form1 = pagename
local form2 = stem .. infl_row.dsg
return gt.getRow(form1, form2, {'|colspan="2"', "(''[[Tillegg:Substantiv som ikke telles|utellelig]]'')"}, norm)
end
return "error"
end
return export;