Module:nn-decl
Appearance
- This module lacks a documentation subpage. Please create it.
- Useful links: subpage list • links • transclusions • testcases • sandbox
local p = {}
function p.main(frame)
local PAGENAME = mw.title.getCurrentTitle().text
args = frame:getParent().args
if args[1] then
gender = args[1]
else
gender = '?'
end
if args[2] then
stem = args[2]
else
stem = '?'
end
if args[3] then
wordroot = args[3]
end
if args[4] then
form = args[4]
else
form = ''
end
if args[5] then
decl = args[5]
else
decl = ''
end
-- Landsmål
if form == 'aasen' then
-- Feminine
if gender == 'f' then
if stem == 'o' then
nasi = wordroot .. ''
gsi = wordroot .. 'ar-'
nasd = wordroot .. 'i'
dsd = wordroot .. 'enne'
napi = wordroot .. 'er'
gpi = wordroot .. 'e-'
napd = wordroot .. 'erna'
dpd = wordroot .. 'om'
elseif stem == 'jo' then
nasi = wordroot .. ''
gsi = wordroot .. 'ar-'
nasd = wordroot .. 'i'
dsd = wordroot .. 'enne'
napi = wordroot .. 'ar'
gpi = wordroot .. 'e-'
napd = wordroot .. 'arne'
dpd = wordroot .. 'om'
elseif stem == 'jo-j' then
nasi = wordroot .. ''
gsi = wordroot .. 'jar-'
nasd = wordroot .. 'i'
dsd = wordroot .. 'enne'
napi = wordroot .. 'jar'
gpi = wordroot .. 'je-'
napd = wordroot .. 'jarne'
dpd = wordroot .. 'jom'
elseif stem == 'on' then
nasi = wordroot .. 'a'
gsi = wordroot .. 'e-'
nasd = wordroot .. 'a'
dsd = wordroot .. 'onne'
napi = wordroot .. 'or'
gpi = ''
napd = wordroot .. 'orna'
dpd = wordroot .. 'om'
end
-- Masculine
elseif gender == 'm' then
if stem == 'a' then
nasi = wordroot .. ''
gsi = wordroot .. 's-'
nasd = wordroot .. 'en'
dsd = wordroot .. 'e'
napi = wordroot .. 'ar'
gpi = wordroot .. 'e-'
napd = wordroot .. 'arne'
dpd = wordroot .. 'om'
elseif stem == 'an' then
nasi = wordroot .. 'e'
nasd = wordroot .. 'en'
dsd = wordroot .. 'a'
napi = wordroot .. 'ar'
napd = wordroot .. 'arne'
dpd = wordroot .. 'om'
elseif stem == 'i' then
nasi = wordroot .. ''
gsi = ''
nasd = wordroot .. 'en'
dsd = wordroot .. 'e'
napi = wordroot .. 'er'
gpi = wordroot .. 'e-'
napd = wordroot .. 'erne'
dpd = wordroot .. 'om'
end
-- Neuter
elseif gender == 'n' then
if stem == 'a' then
nasi = wordroot .. ''
gsi = wordroot .. 's-'
nasd = wordroot .. 'et'
dsd = wordroot .. 'e'
napi = wordroot .. ''
gpi = wordroot .. 'e-'
napd = wordroot .. 'i'
dpd = wordroot .. 'om'
elseif stem == 'an' then
nasi = wordroot .. 'a'
gsi = wordroot .. 'e-'
nasd = wordroot .. 'at'
dsd = wordroot .. 'a'
napi = wordroot .. 'o'
gpi = wordroot .. 'ne-'
napd = wordroot .. 'o'
dpd = wordroot .. 'om'
elseif stem == 'ija' then
nasi = wordroot .. 'e'
gsi = wordroot .. 'es-'
nasd = wordroot .. 'et'
dsd = wordroot .. 'e'
napi = wordroot .. 'e'
gpi = wordroot .. 'e-'
napd = wordroot .. 'i'
dpd = wordroot .. 'om'
elseif stem == 'ija-j' then
nasi = wordroot .. 'e'
gsi = wordroot .. 'es-'
nasd = wordroot .. 'et'
dsd = wordroot .. 'e'
napi = wordroot .. 'e'
gpi = wordroot .. 'je-'
napd = wordroot .. 'i'
dpd = wordroot .. 'jom'
end
end
------------------------------------------------
-- Official standard (2012-)
else
-- Femninine
if gender == 'f' then
if stem == 'o' then
nasi = wordroot .. ''
gsi = wordroot .. 'e-'
nasd = wordroot .. 'a'
napi = wordroot .. 'er'
gpi = wordroot .. 'e-'
napd = wordroot .. 'ene'
elseif stem == 'on' then
nasi = wordroot .. 'e'
gsi = wordroot .. 'e-'
nasd = wordroot .. 'a'
napi = wordroot .. 'er'
gpi = ''
napd = wordroot .. 'ene'
end
-- Masculine
elseif gender == 'm' then
if stem == 'a' then
nasi = wordroot .. ''
gsi = wordroot .. 's-'
nasd = wordroot .. 'en'
napi = wordroot .. 'ar'
gpi = wordroot .. 'e-'
napd = wordroot .. 'ane'
elseif stem == 'an' then
nasi = wordroot .. 'e'
gsi = wordroot .. 'e-'
nasd = wordroot .. 'en'
napi = wordroot .. 'ar'
gpi = wordroot .. 'e-'
napd = wordroot .. 'ane'
elseif stem == 'i' then
nasi = wordroot .. ''
gsi = wordroot .. 'e-'
nasd = wordroot .. 'en'
napi = wordroot .. 'er'
gpi = wordroot .. 'e-'
napd = wordroot .. 'ene'
end
end
end
if decl == 'nasi' then
decl = nasi
elseif decl == 'gsi' then
decl = gsi
elseif decl == 'nasd' then
decl = nasd
elseif decl == 'dsd' then
decl = dsd
elseif decl == 'napi' then
decl = napi
elseif decl == 'gpi' then
decl = gpi
elseif decl == 'napd' then
decl = napd
elseif decl == 'dpd' then
decl = dpd
elseif form == 'aasen' then
decl = 'Landsmål'
elseif form == 'setesdal' then
decl = 'Setesdal'
else
decl = ''
end
template = decl
return template
end
function p.stem(frame)
local PAGENAME = mw.title.getCurrentTitle().text
args = frame:getParent().args
if args[1] then
stem = args[1]
end
if stem == 'f' then
stem = 'feminine'
elseif stem == 'm' then
stem = 'masculine'
elseif stem == 'n' then
stem = 'neuter'
elseif stem == 'o' then
stem = 'ō'
elseif stem == 'jo' then
stem = 'jō'
elseif stem == 'jo-j' then
stem = 'jō'
elseif stem == 'on' then
stem = 'ōn'
elseif stem == 'a' then
stem = 'a'
elseif stem == 'an' then
stem = 'an'
elseif stem == 'i' then
stem = 'i'
elseif stem == 'u' then
stem = 'u'
elseif stem == 'jo' then
stem = 'jō'
elseif stem == 'jo-j' then
stem = 'jō'
elseif stem == 'ijo' then
stem = 'ijō'
elseif stem == 'ija' then
stem = 'ija'
elseif stem == 'ija-j' then
stem = 'ija'
end
template = stem
return template
end
return p