Modül:bağlantılar/şablonlar

Vikisözlük sitesinden
Gezinti kısmına atla Arama kısmına atla
Test Template Info-Icon - Version (2).svgModül belgelemesi [Düzenle] [Tazele]


local cikart = {}

--[=[
	Kullanılan modüller:
	[[Modül:bağlantılar]]
	[[Modül:diller]]
	[[Modül:alfabeler]]
	[[Modül:parameters]]
	[[Modül:debug]]
]=]

-- {{b}} ve {{z}} şablonlarında kullanılır
function cikart.b_sozcuk_s(frame)
	local tip = frame.args["tip"] or frame.args["face"]
	local izinverKendiBag = frame.args["notself"]; izinverKendiBag = not izinverKendiBag or izinverKendiBag == ""
	
	local parametreler = {
		[1] = {required = true},
		[2] = {},
		[3] = {},
		[4] = {alias_of = "anlam"},
		["alt"] = {alias_of = 3},
		["accel"] = {},
		["g"] = {list = true},
		["c"] = {alias_of = "g"},
		["anlam"] = {},
		["id"] = {},
		["tam"] = {},
		["söz"] = {},
		["mana"] = {alias_of = "anlam"},
		["mânâ"] = {alias_of = "anlam"},
		["manalar"] = {alias_of = "anlam"},
		["mânâlar"] = {alias_of = "anlam"},
		["anlamlar"] = {alias_of = "anlam"},
		["tr"] = {alias_of = "ç"},
		["ç"] = {},
		["dk"] = {alias_of = "ak"},
		["ak"] = {},
	}
	
	-- Demo için
	if frame.args.demo then parametreler[1] = "tr" end
	
	local args = require("Modül:parameters").process(frame:getParent().args, parametreler)
	
	local dil = args[1] or "und"
	local alf = args["ak"]
	
	local sozcuk = args[2]
	local alt = args[3]
	
	-- Parametreleri kontrol et
	dil = require("Modül:diller").getirKodaGore(dil) or
		require("Modül:diller").err(dil, 1)
	
	if alf then
		alf = require("Modül:alfabeler").getirKodaGore(alf) or error("\"" .. alf .. "\" alfabe kodu geçerli değil.")
	end
	
	if not sozcuk and not alt and frame.args["demo"] then
		sozcuk = frame.args["demo"]
	end
	
	-- Tüm bilgiyi tam_bag fonksiyonuna yönlendir
	return require("Modül:bağlantılar").tam_bag( 
		{
			dil = dil, 
			alf = alf, 
			sozcuk = sozcuk,
			alt = alt, 
			id = args["id"], 
			c = args["ç"], 
			cinsiyetler = args["c"], 
			anlam = args["anlam"], 
			soz = args["söz"], 
			tam = args["tam"],
			accel = args["accel"],
		},
		tip,
		izinverKendiBag
	)
end
cikart.l_term_t = cikart.b_sozcuk_s

-- {{b_dil}} şablonu.
function cikart.b_dil(frame)
	local parametreler = {
		[1] = { required = true },
		[2] = { allow_empty = true },
		[3] = {},
		["notself"] = { type = "boolean", default = false },
		["id"] = {},
	}
	local args = require("Modül:parameters").process(frame:getParent().args, parametreler)
	local izinverKendiBag = not args["notself"]
	
	local dil = args[1]
	dil = require("Modül:diller").getirKodaGore(dil) or require("Modül:diller").err(dil, 1)
	
	local sozcuk = args[2]
	local alt = args[3]
	if sozcuk == "" then
		return alt or ""
	end
	
	local id = args["id"]
	
	return require("Modül:bağlantılar").dil_bag(
		{
			sozcuk = sozcuk,
			alt = alt,
			dil = dil,
			id = id
		},
		izinverKendiBag
	)
end

function cikart.anlam_s(frame)
	local parametreler = {
		[1] = {required = true, default = ""},
	}
	
	local args = require("Modül:parameters").process(frame:getParent().args, parametreler)
	
	return require("Modül:bağlantılar").turkce_bag(args[1])
end


function cikart.baglantilastir_s(frame)
	local parametreler = {
		[1] = {required = true, default = ""},
	}
	
	local args = require("Modül:parameters").process(frame:getParent().args, parametreler)
	
	args[1] = mw.text.trim(args[1])
	
	if args[1] == "" or args[1]:find("[[", nil, true) then
		return args[1]
	else
		return "[[" .. args[1] .. "]]"
	end
end

function cikart.kisim_bag_s(frame)
	local parametreler = {
		[1] = {},
	}
	
	local args = require("Modül:parameters").process(frame:getParent().args, parametreler)
	
	return require("Modül:bağlantılar").kisim_bag(args[1])
end

function cikart.dil_adi_bag_s(frame)
	local tip = frame.args["tip"] or frame.args["face"]
	local izinverKendiBag = frame.args["notself"]; izinverKendiBag = not izinverKendiBag or izinverKendiBag == ""
	
	local parametreler = {
		[1] = {required = true},
		[2] = {},
		[3] = {},
		[4] = {alias_of = "anlam"},
		["c"] = {list = true},
		["anlam"] = {},
		["id"] = {},
		["tam"] = {},
		["söz"] = {},
		["ç"] = {},
		["ak"] = {},
		["v"] = { type = "boolean", default = false },
	}
	
	local args = require("Modül:parameters").process(frame:getParent().args, parametreler)
	
	local dil = args[1] or "und"
	local alf = args["ak"]
	
	local sozcuk = args[2]
	local alt = args[3]
	
	-- Parametreleri kontrol et
	dil = require("Modül:diller").getirKodaGore(dil) or
		require("Modül:diller").err(dil, 1)
	if alf then
		alf = require("Modül:alfabeler").getirKodaGore(alf) or error("\"" .. alf .. "\" alfabe kodu geçerli değil.")
	end
	
	if not sozcuk and not alt and frame.args["demo"] then
		sozcuk = frame.args["demo"]
	end
	
	--[[
		Bir dil adı ekle, eğer Vikipedi parametresi varsa Vikipedi'ye bağlantı ver.
		Bilgilerin tamamını tam_bag'a yönlendir.
	]]
	return ( args.v and dil:yapVikipediBaglantisi() or dil:getirAsilAd() ) .. " " ..
		require("Modül:bağlantılar").tam_bag( 
			{
				dil = dil, 
				alf = alf, 
				sozcuk = sozcuk, 
				alt = alt, 
				id = args["id"], 
				c = args["ç"], 
				cinsiyetler = args["c"], 
				anlam = args["anlam"], 
				soz = args["söz"], 
				tam = args["tam"]
			},
			tip,
			izinverKendiBag
		)
end

function cikart.hafif_bag_s(frame)
	local parametreler = {
		[1] = { required = true },
		[2] = { required = true },
		[3] = {},
		["ak"] = {},
		["anahtar"] = {},
		["diladı"] = { required = true },
	}
	
	local args = frame:getParent().args
	
	for anahtar, deger in pairs (parametreler) do
		if deger.required then
			if not args[anahtar] then
				error('"' .. anahtar .. '" parametresi zorunludur.')
			end
		end
	end
	
	return require("Modül:bağlantılar").hafif_bag{  
		dilKodu = args[1], 
		sozcuk = args[2], 
		alt = args[3], 
		alfKodu = args.ak or "Latn",  
		dilAdi = args["diladı"]
	}
end

return cikart