Modül:temalar/şablonlar

Vikisözlük sitesinden
Modül belgelemesi [Düzenle] [Tazele]


local cikart = {}

local dilDuzenle = require("Modül:tr-araçlar").dilDuzenle
local temalar = require("Modül:temalar").getirAsilAdaGore

local terimler = {}
local kategoriler = {}

local function ine(arg)
	if arg == "" then
		return nil
	else
		return arg
	end
end

function degisken(terim)
	local liste = {
		["örtmece"] = "örtmeceler",
		["yerleşim birimi"] = "yerleşim birimleri",
		["alay"] = "alay ifadeli sözcükler",
		["hakaret yollu"] = "hakaret yollu sözcükler",
		["konuşma dili"] = "konuşma dili ifadeleri",
		["şaka yollu"] = "şaka yollu sözcükler",
		["noktalama işaretleri"] = "noktalama işareti adları",
	}
	
	return liste[terim] and liste[terim] or terim
end

-- {{terim}} şablonu için
function cikart.goster(frame)
	local args = frame:getParent().args
	
	if args["dil"] then
		dil = require("Modül:diller").getirKodaGore(args["dil"]):getirAsilAd()
	end
	
	if not args["dilsiz"] then
		if not args["dil"] and mw.title.getCurrentTitle().nsText ~= "Şablon" then
			table.insert(kategoriler, "[[Kategori:Dil parametresi olmayan terim şablonları]]")
			return "<span style='color:red'>'''(Lütfen bir dil kodu girin.)</span>'''" .. table.concat(kategoriler, "\n")
		end
	end
	
	local terim = degisken(ine(args[1]))
	local i = 1
	
	if mw.title.getCurrentTitle().nsText == "Şablon" and frame.args["demo"] then
		terim = "terim"
		dil = require("Modül:diller").getirKodaGore("tr"):getirAsilAd()
	end
	
	while terim do
		terim = mw.ustring.gsub(mw.ustring.gsub( terim, "%s$", ""), "^%s", "")
		table.insert(terimler, terim)
		
		i = i + 1
		terim = degisken(ine(args[i]))
	end
	
	for x, y in ipairs(terimler) do
		if temalar(y) then
			if y == "eskimiş" then
				y = "artık kullanılmayan sözcükler"
			end
			if not args["dilsiz"] and dil then
				table.insert(kategoriler, "[[Kategori:" .. 
					((temalar(y) and (temalar(y):getirTip() == "konu" or temalar(y):getirTip() == "grup")) and dilDuzenle(dil) or dil) .. " " .. y .. "]]")
			end
		end
	end
	
	if mw.title.getCurrentTitle().nsText == "Şablon" then
		kategoriler = {}
	end
	
	--Alfabe kontrolü
	if dil and require("Modül:alfabekontrol").goster(mw.title.getCurrentTitle().subpageText, dil) == false then
		kategoriler = {}
		table.insert(kategoriler, "[[Kategori:Terim şablonunun yanlış kullanıldığı sayfalar]]")
	end
	
	return "(''" .. table.concat(terimler, "'', ''") .. "'')" .. table.concat(kategoriler, "\n")
end

return cikart