İçeriğe atla

Modül:kategori ağacı: Revizyonlar arasındaki fark

Vikisözlük sitesinden
İçerik silindi İçerik eklendi
Güncelleme
for döngüsü eklendi
45. satır: 45. satır:
if dil == "" then
if dil == "" then
table.insert(tumKat, "[[Kategori:Konu listeleri]]")
table.insert(tumKat, "[[Kategori:Konu listeleri]]")
if konuAlt[konu].ebeveynler[1] then
for i = 1, 4, 1 do
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[1]) .. "]]")
if konuAlt[konu].ebeveynler[i] then
end
if konuAlt[konu].ebeveynler[2] then
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[i]) .. "]]")
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[2]) .. "]]")
end
if konuAlt[konu].ebeveynler[3] then
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[3]) .. "]]")
end
if konuAlt[konu].ebeveynler[4] then
table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[4]) .. "]]")
end
end
end

else
else
if dil == "Dillerarası" then
if dil == "Dillerarası" then

16.54, 13 Eylül 2017 tarihindeki hâli

Modül belgelemesi [Düzenle] [Tazele]

Bu modül şu şablonlarda kullanılmaktadır:

Şablona girilmiş olan yanlış parametreleri takip etmeye yarayan kategoriler:

Modülün alt sayfaları:


local p = {}

-- Şablon:kategori konu isimli şablonda kullanılan fonksiyonu oluştur.
function p.konuKat(frame)
	-- Girilen "dil" parametresini modülde erişilebilir hale getir.
	local dil = frame.args['dil']
	
	-- Girilen dil parametresinin son kelimesi "dili" ile bitiyorsa onu belirt, çünkü dilden sonra gelecek ek buna göre ayarlanacaktır.
	local sonHece1 = mw.ustring.sub( dil, -4 )
	
	-- Girilen dil parametresinin son iki hecesini ayırt et, çünkü dilden sonra gelecek ek buna göre ayarlanacaktır.
	local sonHece2 = mw.ustring.sub( dil, -2 )
	
	-- Tüm konuların listesini ayırt et.
	local konu = frame.args['konu']
	
	-- Daha önceden son heceleri/kelimesi ayırt edilen dil adlarının sonrasına "de", "da", "nde", "nda" eklerini ekle.
	local ekliDil = ""
	
	-- Son iki harfi "si" ile biten (Örneğin: İskoç İngilizcesi) veya son kelimesi "dili" olan (Örneğin: İdo dili) dil adlarından sonra "nde" ekini ekle.
    if frame.args['dil'] and sonHece1 == "dili" or  sonHece2 == "si" then
    	ekliDil = ekliDil .. frame.args['dil'] .. "nde"
    	
	-- Son iki harfi "sı" ile (Örneğin: İsviçre Almancası) dil adlarından sonra "nda" ekini ekle.
    elseif frame.args['dil'] and sonHece2 == "sı" then
    	ekliDil = ekliDil .. frame.args['dil'] .. "nda" 
    
    -- Son iki harfi "ce" ile (Örneğin: İngilizce) veya "çe" ile biten (Örneğin: Türkçe) dil adlarından sonra "de" ekini ekle.
    elseif frame.args['dil'] and sonHece2 == "ce" or sonHece2 == "çe" then
    	ekliDil = ekliDil .. frame.args['dil'] .. "de" 
    
    -- Son iki harfi "ca" ile (Örneğin: Almanca) veya "ça" ile biten (Örneğin: Başkça) dil adlarından sonra "da" ekini ekle.
    elseif frame.args['dil'] and sonHece2 == "ca" or sonHece2 == "ça" then
    	ekliDil = ekliDil .. frame.args['dil'] .. "da" 
    end
    
    -- Yukarıda belirtilen bütün durumlara göre kategori eklemelerini yap. Bu eklemeler konuların listesinin bulunduğu dizine göre eklenmektedir.
    -- Mesela listede "kriptografi" konusu için {"formal bilimler", "matematik", "bilgisayar bilimi"} tablosu oluşturulmuştur. Burada bulunan 3 girdi şunları ifade etmektedir:
    -- #1 ("formal bilimler") -> eklenmesi gereken kategori türünden birincisi.
    -- #2 ("matematik") -> eklenmesi gereken kategori türünden ikincisi.
    -- #3 ("bilgisayar bilimi") -> eklenmesi gereken kategori türünden üçüncüsü.
    local veri = require("Modül:kategori ağacı/liste")
    local konuAlt = veri.konuAlt
    local tumKat = {}
    if dil == "" then
    	table.insert(tumKat, "[[Kategori:Konu listeleri]]")
    	
    for i = 1, 4, 1 do
        if konuAlt[konu].ebeveynler[i] then
    		table.insert(tumKat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(konuAlt[konu].ebeveynler[i]) .. "]]")
    	end
    end

    else
    	if dil == "Dillerarası" then
    		table.insert(tumKat, "[[Kategori:Dillerine göre " .. konu .. "| ]]")
    	else
    		table.insert(tumKat, "[[Kategori:Dillerine göre " .. konu .. "]]")
    	end
    	table.insert(tumKat, "[[Kategori:" .. ekliDil .. " konu listeleri|".. konu .. "]]")
    	if konuAlt[konu].ebeveynler[1] then
    		table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[1] .. "|".. konu .. "]]")
    	end
    	if konuAlt[konu].ebeveynler[2] then
    		table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[2] .. "|".. konu .. "]]")
    	end
    	if konuAlt[konu].ebeveynler[3] then
    	table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[3] .. "|".. konu .. "]]")
    	end
    	if konuAlt[konu].ebeveynler[4] then
    		table.insert(tumKat, "[[Kategori:" .. ekliDil .. " " .. konuAlt[konu].ebeveynler[4] .. "|".. konu .. "]]")
    	end
    end
    if tumKat[6] then
    		return tumKat[1] .. tumKat[2] .. tumKat[3] .. tumKat[4] .. tumKat[5] .. tumKat[6]
    elseif tumKat[5] then
    	return tumKat[1] .. tumKat[2] .. tumKat[3] .. tumKat[4] .. tumKat[5]
    elseif tumKat[4] then
    	return tumKat[1] .. tumKat[2] .. tumKat[3] .. tumKat[4]
    elseif tumKat[3] then
    	return tumKat[1] .. tumKat[2] .. tumKat[3]
    elseif tumKat[2] then
    	return tumKat[1] .. tumKat[2]
    elseif tumKat[1] then
    	return tumKat[1]
    end
end

return p