Modül:birleşim

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

local cizgiYok = {
	"ar",
	"ja",
	"ota",
}

--Bu fonksiyon girilen parametrenin boş olup olmadığını kontrol eder
local function ine(arg)
	if arg == "" then
		return nil
	else
		return arg
	end
end

--Tüm birleşim olayları bu fonksiyonda gerçekleşiyor.
--Şablon:birleşik, Şablon:ek ve Şablon:ön ek
function cikart.ek(frame)
	--Parametrelerimizi çağıralım:
	args = frame:getParent().args
	
	--İzleyici kategorileri yüklemek için bir array.
	local kategoriler = {}
	
	--Eğer dil kodu girilmemiş ise bir izleme kategorisi oluşturmalı.
	if not args  then
		table.insert(kategoriler, " .. " şablonları]]")
		return "<span style='color:red'>'''Lütfen bir dil kodu girin.'''</span>" .. table.concat(kategoriler, "\n")
	end	
	
	--Dil
	local dil = require("Modül:diller").getirKodaGore(args)
	
	--Girilen tüm birimlerin depolanacağı array
	local ilk = {}
	local son = {}
	
	--Eklerden önce veya sonra gelen tire
	local ciz = "-"
	
	for _,dKodu in ipairs(cizgiYok) do
		if dKodu == dil:getirKod() then
			ciz = ""
		end
	end
	
	--Bu da girilen ilk parametre, bunu döngü başlamadan önce
	--hata çıkmasını önlemek amacıyla dışarıda başlatıyoruz.
	--Eğer "ön ek" şablonu kullanılıyorsa, ekten sonra "-" eklenmeli,
	--çünkü bu şablonda ilk parametre daima ektir.
	ayrik = frame.args == "ön ek" and ine(args) .. ciz or ine(args)
	--bu da döngünün tekrar etmesini sağlayacak sabit herhangi bir sayı
	i = 1
	
	--Döngü burada başlıyor.
	while ayrik do
		--Girilen herhangi bir birimin çeviri anlamı belirtiliyorsa, bunu
		--"ç1, ç2, ç3..." gibi değerler ile belirtebiliriz
		anlam = ine(args) or ine(args)
		ceviri = ine(args) or ine(args)
		alt = ine(args)
		soz = ine(args)
		table.insert(ilk, ayrik)
		--Burada bağlantı oluşturabiliriz.
		table.insert(son, require("Modül:bağlantılar").tam_bag(
			{dil = dil, sozcuk = ayrik, alt = alt, c = ceviri, anlam = anlam, soz = soz}, "çeviri", true))
		
		--Burada da "ek" şablonu için izleme kategorileri bulunuyor.
		if frame.args == "ek" and mw.title.getCurrentTitle().namespace == 0 and i ~= 1 then
			table.insert(kategoriler, "[[Kategori:" .. dil:getirAsilAd()
				.. " " .. ayrik ..  " son ekiyle oluşmuş sözcükler]]")
		elseif frame.args == "ön ek" and mw.title.getCurrentTitle().namespace == 0 and i == 1 then
			table.insert(kategoriler, "[[Kategori:" .. dil:getirAsilAd()
				.. " " .. ayrik ..  " ön ekiyle oluşmuş sözcükler]]")
		end
		
		--Döngünün bir üst katmana devam etmesi için sabit sayıyı artırıyoruz.
		i = i + 1
		if frame.args == "ek" and args then
			--Eğer "ek" şablonu kullanılıyorsa tüm birimlerin başına "-" gelmeli,
			--çünkü bu şablonda ilk parametreden sonra girilen tüm birimler bir ek
			args = ciz .. args
		elseif frame.args == "ön ek" and args then
			--Eğer "ön ek" şablonu kullanılıyorsa, girilen tüm ön parametrelerde "-" gelmeli,
			--ta ki en son birime kadar, çünkü en son birim hariç girilen tüm birimler bir ön ektir
			args = args .. ciz
		end
		
		--ve son olarak da bir sonraki birimimizin boş olup olmadığını kontrol ediyoruz ki,
		--döngünün devam edip etmeyeceğine karar verilsin.
		ayrik = ine(args)
	end
	
	--Burada da "birleşik" şablonu için izleme kategorileri bulunuyor
	if frame.args == "birleşik" and mw.title.getCurrentTitle().namespace == 0 then
		table.insert(kategoriler, "]")
	end
	
	--Tüm her şeyi çıktı alma zamanı
	return table.concat(son, " + ") .. table.concat(kategoriler, "")
end

return cikart