Modül:lb-başlıkbaşı

Merhaba, buraya Modül:lb-başlıkbaşı kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:lb-başlıkbaşı kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:lb-başlıkbaşı kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:lb-başlıkbaşı kelimesi hakkında bilmeniz gereken her şey burada. Modül:lb-başlıkbaşı kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
Modül belgelemesi

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