Modül:başlık başı/şablonlar

Merhaba, buraya Modül:başlık başı/şablonlar kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:başlık başı/şablonlar kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:başlık başı/şablonlar kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:başlık başı/şablonlar kelimesi hakkında bilmeniz gereken her şey burada. Modül:başlık başı/şablonlar 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


local cikart = {}

-- Çoğul hale getirilmemesi gereken söz türleri.
local invariable = mw.loadData("Modül:başlık başı/veri").invariable

function secSonUnlu(yazi)
	return mw.ustring.sub( mw.ustring.gsub( yazi, "", ""), -1 )
end

function cikart.sozTuruCogul(soz_kategorisi)
	-- Söz türünü çoğul hale çevir
	if mw.ustring.find(soz_kategorisi, "$") then
		soz_kategorisi = mw.ustring.gsub( soz_kategorisi, "()$", "%1leri" )
	elseif mw.ustring.find(soz_kategorisi, "dı$") then
		soz_kategorisi = mw.ustring.gsub( soz_kategorisi, "()$", "%1ları" )
	elseif secSonUnlu(soz_kategorisi):find("") or soz_kategorisi:find("sembol") or soz_kategorisi:find("harf") then
		soz_kategorisi = soz_kategorisi .. "ler"
	elseif secSonUnlu(soz_kategorisi):find("") then
		soz_kategorisi = soz_kategorisi .. "lar"
	else
		soz_kategorisi = soz_kategorisi
	end
	
	return soz_kategorisi
end

function cikart.bas_s(frame)
	local params = {
		 = {required = true, default = "und"},
		 = {},
		 = {},
		 = {},
		
		 = {required = true, default = "adlar"},
		 = {},
		 = {},
		 = {},
		
		 = {list = true, allow_holes = true, default = ""},
		 = {},
		 = {list = true, allow_holes = true},
		 = {alias_of = "ç", list = true},
		 = {list = true},
		
		 = {list = true, allow_holes = true},
		
		   = {list = true, allow_holes = true},
		 = {list = true, allow_holes = true},
		     = {list = true, allow_holes = true},
		      = {list = true, allow_holes = true},
		      = {list = true, allow_holes = true},
		      = {list = true, allow_holes = true},
		       = {list = true, allow_holes = true},
		    = {list = true, allow_holes = true},
		  = {list = true, allow_holes = true, type = "boolean"},
		    = {list = true, allow_holes = true},
	}
	
	local args = require("Modül:parameters").process(frame:getParent().args, params)
	
	-- Dil ve alfabe verisini al
	local veri = {}
	veri.dil = require("Modül:diller").getirKodaGore(args) or require("Modül:diller").err(args, 1)
	veri.sira_anahtari = args
	veri.baslar = args
	veri.id = args
	veri.alfabecevler = args
	veri.cinsiyetler = args
	
	-- Alfabe
	local kat_alf
	
	if args then
		veri.alf = (args and (require("Modül:alfabeler").getirKodaGore(args) or error("Alfabe kodu \"" .. args .. "\" geçerli değil.")) or nil)
		kat_alf = kat_alf
	else
		veri.alf = (args and (require("Modül:alfabeler").getirKodaGore(args) or error("Alfabe kodu \"" .. args .. "\" geçerli değil.")) or nil)
	end
	
	-- Söz türü kategorisi
	veri.soz_kategorisi = args
	
	if not invariable then
		veri.soz_kategorisi = cikart.sozTuruCogul(veri.soz_kategorisi)
	end
	
	if kat_alf then
		veri.soz_kategorisi = kat_alf:getirKategoriAdi() .. " ile yazılmış " .. veri.soz_kategorisi
	end
	
	-- Fazladan kategoriler
	veri.kategoriler = {}
	
	if args then
		table.insert(veri.kategoriler, veri.dil:getirAsilAd() .. " " .. args)
	end
	
	if args then
		table.insert(veri.kategoriler, veri.dil:getirAsilAd() .. " " .. args)
	end
	
	if args then
		table.insert(veri.kategoriler, veri.dil:getirAsilAd() .. " " .. args)
	end
	
	-- Çekim halleri
	veri.cekimler = {}
	
	for i = 1, math.ceil(args.maxindex / 2) do
		local cekim_kisim = {
			etiket   = args,
			accel    = args,
			istek    = args,
			}
		
		local bicim = {
			sozcuk       =  args,
			alt          =  args,
			cinsiyetler  = {args},
			id           =  args,
			dil          =  args,
			bagyok       =  args,
			belirticiler = {args},
			alf          =  args,
			alfabecev    =  args,
			}
		
		if bicim.dil then
			bicim.dil = require("Modül:diller").getirKodaGore(bicim.dil) or require("Modül:diller").err(bicim.dil, "f" .. i .. "dil")
		end
		
		if bicim.alf then
			bicim.alf = require("Modül:alfabeler").getirKodaGore(bicim.alf) or error("Alfabe kodu \"" .. bicim.alf .. "\" geçerli değil.")
		end
		
		-- Eğer hiçbir sözcük veya alternatif girilmediyse, o zaman etiket tek başına görüntülenir.
		if bicim.sozcuk or bicim.alt then
			table.insert(cekim_kisim, bicim)
		end
		
		if cekim_kisim.etiket == "veya" then
			-- Bir önceki çekim kısmını başa ekle, eğer varsa
			if #cekim_kisim > 0 and veri.cekimler then
				table.insert(veri.cekimler, bicim)
			end
		elseif cekim_kisim.etiket then
			-- Yeni bir çekim kısmı ekle
			table.insert(veri.cekimler, cekim_kisim)
		end
	end
	
	return require("Modül:başlık başı").tam_baslikbasi(veri)
end

return cikart