Bu Lua modülü, şu şablonların çıktısını vermektedir:
local cikart = {}
local soz_fonksiyonlari = {}
local legal_gender = {
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
}
local gender_names = {
= "eril",
= "eril",
= "eril",
= "eril",
= "eril",
= "eril",
= "dişil",
= "dişil",
= "dişil",
= "dişil",
= "dişil",
= "dişil",
= "nötr",
= "nötr",
= "nötr",
= "nötr",
= "nötr",
= "bilinmeyen",
= "bilinmeyen",
= "bilinmeyen",
= "bilinmeyen",
= "bilinmeyen",
= "bilinmeyen",
= "bilinmeyen",
}
local plural_genders = {
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
= true,
}
local dil = require("Modül:diller").getirKodaGore("lb")
-- The main entry point.
-- This is the only function that can be invoked from a template.
function cikart.goster(frame)
local args = frame:getParent().args
PAGENAME = mw.title.getCurrentTitle().text
local head = args; if head == "" then head = nil end
local poscat = frame.args or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local veri = {dil = dil, soz_kategorisi = poscat, kategoriler = {}, baslar = {args}, cinsiyetler = {}, cekimler = {}}
if soz_fonksiyonlari then
soz_fonksiyonlari(class, args, veri)
end
return
require("Modül:başlık başı").tam_baslikbasi(veri)
end
soz_fonksiyonlari = function(class, args, veri)
params = {
= {list = "m",
default = mw.ustring.match(PAGENAME, "ee$") ~= nil
and PAGENAME .. "ën"
or PAGENAME .. "en"},
= {list = "n",
default = mw.ustring.match(PAGENAME, "$") ~= nil
and PAGENAME
or mw.ustring.gsub(PAGENAME,
"()()()$",
"%1%2%2%3") .. "t"},
= {list = true},
= {list = true},
= {list = true,
default = mw.ustring.match(PAGENAME, "$") ~= nil
and mw.ustring.gsub(PAGENAME,
"()()()$",
"%1%2%2%3") .. "ten"
or mw.ustring.gsub(PAGENAME,
"()()(?)$",
"%1%2%2%3") .. "sten"
},
= {type = "boolean"},
= {default = PAGENAME},
= {type = "boolean"},
}
local args = require("Modül:parameters").process(args, params)
veri.baslar = {args}
if args then
table.insert(veri.cekimler, {etiket = 'predicate-only'})
table.insert(veri.kategoriler, 'Lüksemburgca predicate only adjectives')
else
for i, form in ipairs(args) do
args = {sozcuk = form}
end
args.etiket = "eril"
table.insert(veri.cekimler, args)
if #args.d > 0 then
for i, form in ipairs(args) do
args = {sozcuk = form}
end
args.etiket = "dişil"
table.insert(veri.cekimler, args)
end
for i, form in ipairs(args) do
args = {sozcuk = form}
end
args.etiket = "nötr"
table.insert(veri.cekimler, args)
end
if args == '-' then
table.insert(veri.cekimler, {etiket = 'not comparable'})
table.insert(veri.kategoriler, 'Lüksemburgca uncomparable adjectives')
else
if #args > 0 then
for i, form in ipairs(args) do
args = {sozcuk = form}
end
if not args then
table.insert(args, 1, "] " .. PAGENAME)
end
else
args = {"] " .. PAGENAME}
end
args.etiket = "]"
table.insert(veri.cekimler, args)
for i, form in ipairs(args) do
args = {sozcuk = 'am ]'}
end
args.etiket = "]"
table.insert(veri.cekimler, args)
end
end
soz_fonksiyonlari.adlar = function(class, args, veri)
params = {
= {list = 'c', default = '?'},
= {list = 'ç'},
= {list = true},
= {default = PAGENAME},
= {list = true},
= {list = true},
}
if veri.soz_kategorisi == 'adlar' then
params.default = mw.ustring.match(PAGENAME, "ee$") ~= nil
and PAGENAME .. "ën"
or PAGENAME .. "en"
end
local args = require("Modül:parameters").process(args, params)
veri.baslar = {args}
local plur_tant = false
for _, g in ipairs(args) do
if legal_gender then
table.insert(veri.cinsiyetler, g)
table.insert(veri.kategoriler, "Lüksemburgca " .. gender_names .. " adlar")
else
error("“" .. g .. "” cinsiyeti Lüksemburgca için geçerli değil.")
end
if plural_genders then
plur_tant = true
end
end
if plur_tant then
table.insert(veri.cekimler, {etiket = ']'})
table.insert(veri.kategoriler, 'Lüksemburgca topluluk adları')
elseif args == '-' then
table.insert(veri.cekimler, {etiket = ']'})
table.insert(veri.kategoriler, 'Lüksemburgca sayılamayan adlar')
elseif #args > 0 then
for i, form in ipairs(args) do
args = {sozcuk = form}
end
args.etiket = "çoğul"
table.insert(veri.cekimler, args)
if #args > 1 then
table.insert(veri.kategoriler, 'Lüksemburgca nouns with multiple plurals')
end
end
if #args > 0 then
for i, form in ipairs(args) do
args = {sozcuk = form}
end
args.etiket = "diminutive"
table.insert(veri.cekimler, args)
end
if #args.d > 0 then
args.d.etiket = "dişil"
table.insert(veri.cekimler, args.d)
end
if #args.e > 0 then
args.e.etiket = "eril"
table.insert(veri.cekimler, args.e)
end
end
soz_fonksiyonlari = soz_fonksiyonlari.adlar
local function make_verb_forms(prefix)
if prefix == nil then prefix = "" end
if mw.ustring.match(prefix, "n$") then
prefix = mw.ustring.gsub(
prefix,
"(.*)()(n+)$",
"%1%2"
) .. "n*"
end
local stem = mw.ustring.gsub(PAGENAME, "^(" .. prefix .. ")(.*)(n)$", "%2")
local dent_suff = mw.ustring.match(stem, "(+)$")
local conjugated = ""
if dent_suff then
conjugated = mw.ustring.gsub(stem, "(+)$", mw.ustring.rep("t", #dent_suff))
else
local lengthened = mw.ustring.gsub(stem,
"()()()$",
"%1%2%2%3")
conjugated = mw.ustring.match(lengthened, "(w)$") and mw.ustring.sub(lengthened, 1, -2) .. "ft" or lengthened .. "t"
end
return conjugated, (mw.ustring.match(conjugated, "^") and "gë" or "ge") .. conjugated
end
soz_fonksiyonlari.eylemler = function(class, args, veri)
third, pp = make_verb_forms(args.sep)
params = {
= {list = '3s pres', default = third},
= {list = 'pp', default = pp},
= {default = 'hunn'},
= {list = true},
= {list = true},
= {default = PAGENAME},
= {default = ""},
}
local args = require("Modül:parameters").process(args, params)
veri.baslar = {args}
local denasalized_prefix = mw.ustring.gsub(
args.sep,
"(.*)()(n+)$",
"%1%2"
)
for i, form in ipairs(args) do
args = {
sozcuk = form .. (#args.sep > 0 and " " .. args.sep or ""),
}
end
args.etiket = 'third-person singular present'
table.insert(veri.cekimler, args)
if #args.pret > 0 then
for i, form in ipairs(args.pret) do
args.pret = {
sozcuk = form .. (#args.sep > 0 and " " .. args.sep or ""),
}
end
args.pret.etiket = 'preterite'
table.insert(veri.cekimler, args.pret)
end
for i, form in ipairs(args) do
args = {
sozcuk = (mw.ustring.match(form, "^") and denasalized_prefix or args.sep) .. form,
}
end
args.etiket = 'past participle'
table.insert(veri.cekimler, args)
if #args.subj > 0 then
for i, form in ipairs(args.subj) do
args.subj = {
sozcuk = form .. (#args.sep > 0 and " " .. args.sep or ""),
}
end
args.subj.etiket = 'past subjunctive'
table.insert(veri.cekimler, args.subj)
end
if args == 'hunn' then
args = {'hunn'}
table.insert(veri.kategoriler, 'Lüksemburgca verbs using hunn as auxiliary')
elseif args == 'sinn' then
args = {'sinn'}
table.insert(veri.kategoriler, 'Lüksemburgca verbs using sinn as auxiliary')
elseif args == 'both' then
args = {'hunn', 'sinn'}
table.insert(veri.kategoriler, 'Lüksemburgca verbs using hunn and sinn as auxiliary')
else
error("Verb auxiliary “" .. args .. "” is not an valid Luxembourgish auxiliary (“hunn”, “sinn”, or “both”).")
end
args.etiket = "auxiliary verb"
table.insert(veri.cekimler, args)
end
return cikart