Modül:otomatik kategori

Merhaba, buraya Modül:otomatik kategori kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:otomatik kategori kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:otomatik kategori kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:otomatik kategori kelimesi hakkında bilmeniz gereken her şey burada. Modül:otomatik kategori 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 getirDil = require("Modül:diller").getirAsilAdaGore
local getirTema = require("Modül:temalar").getirAsilAdaGore
local ekEkle = require("Modül:tr-araçlar").dilDuzenle

--bu fonksiyon girilen bir yazıda birinci değeri bulup
--onu ikinci değer ile değiştirmeye yarar
local function bulvedeg(yazi, bir, iki)
	return mw.ustring.sub( mw.ustring.gsub(yazi, bir, iki), 1, -1 )
end

function saptaTema(sayfa)
	local ek = nil
	
	local function dilBul(d, s)
		for i=1,5 do
			if getirDil(d) then
				return d
			else
				d = d .. (d~="" and " " or "") .. bulvedeg(s, "%s.*", "")
				s = bulvedeg(s, "^*%s*", "")
			end
		end
	end
	
	--kategorinin dilini saptayalım
	--
	
	--burası ilk kontrol
	local dilBulma = dilBul("", sayfa)
	
	--eğer hala bir dil bulamadıysak, belki de dil eki vardır?
	if not getirDil(dilBulma) then
		sayfa2 = bulvedeg(bulvedeg(sayfa, "nd%s", " "), "d%s", " ")
		dilBulma = dilBul("", sayfa2)
		if getirDil(dilBulma) then ek = true end
	end
	
	--hataları aştıysak, dil nesnesini çağıralım
	local dil = getirDil(dilBulma)
	
	--şimdi de temayı bulalım
	--
	
	--şimdi sıra temayı saptamada
	dilBulma = dilBulma and bulvedeg(dilBulma, "%-", "%-")
	local tema = dil and (ek and bulvedeg(sayfa, ekEkle(dilBulma).."%s", "") or bulvedeg(sayfa, dilBulma.."%s", "")) or ""
	
	if not dil then tema = mw.language.getContentLanguage():lcfirst(sayfa) end
	
	--şablonları ve modülleri istisnası
	if tema == "modülleri" or tema == "şablonları" then tema = mw.ustring.sub(tema, 1, -2) end

	return (dil and dil:getirKod() or nil), tema
end

function goster(frame, args)
	local sayfa = mw.title.getCurrentTitle()
	local dil, tema
	
	--{{kategori tema}} şablonu için
	if args == "konu" then
		args, args = saptaTema(sayfa.text)
		
	--{{kategori dil}} şablonu için
	elseif args == "dil" then
		args = getirDil(sayfa.text):getirKod()
	end
	
	return args
end

--deneme çalışması için
function deneme(frame, args)
	local sayfa = mw.title.getCurrentTitle()
	local dil, tema
	
	if args == "konu" then
		args, args = saptaTema(sayfa.text)
	end
	
	return args
end

return {goster = goster, deneme = deneme}