Modül:tr-başlıkbaşı

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]


-- Gerekli çekimleme modüllerini yükle
local tr_ad = require("Modül:tr-ad")
local tr_eylem = require("Modül:tr-eylem")

local dil = require("Modül:diller").getirKodaGore("tr")

local cikart = {}
local soz_fonksiyonlari = {}

-- Eğer boş değilse
local function ebd(arg)
	if arg == "" then
		return nil
	else
		return arg
	end
end

-- Asıl girdi çıktısı
function cikart.goster(frame)
	local sozkat = frame.args[1] or error("Söz türü belirtilmedi. Lütfen 1 numaralı parametreyi giriniz.")
	
	local params = {
		[1] = {list = "baş", allow_holes = true, default = ""},
		["baş"] = {default = ""},
		["istisna"] = {},
		["k"] = {},
		["a"] = {},
		["d"] = {},
	}
	
	local args = frame:getParent().args  -- YAPILACAK: Burada [[Modül:parameters]] kullan
	
	-- Gather parameters
	local veri = {dil = dil, soz_kategorisi = sozkat, kategoriler = {}, baslar = {}, cekimler = { etkin_oto_alfabecev = true }}
	
	local bas = args["baş"] or args[1] or ""
	local i = 1
	
	while bas do
		table.insert(veri.baslar, bas)

		i = i + 1
		bas = ebd(args["baş" .. i])
	end
	
	if soz_fonksiyonlari[sozkat] then
		soz_fonksiyonlari[sozkat].fonk(args, veri)
	end
	
	return require("Modül:başlık başı").tam_baslikbasi(veri)
end

soz_fonksiyonlari["adlar"] = {
	fonk = function(args, veri)
		local bas = args[1] or mw.title.getCurrentTitle().subpageText
		local ak = args["k"] or args["a"]
		
		if ak == "1" then
			veri.soz_kategorisi = "özel adlar"
		end
		
		belirtme = tr_ad.ayarla(bas, args["istisna"], "tekil", "ı", "i", "u", "ü", "belirtme", ak)
		cogul = tr_ad.ayarla(bas, args["istisna"], "çoğul", "", "", "", "", "yalın", ak)
		
		table.insert(veri.cekimler, {{sozcuk = belirtme}, etiket = "belirtme hâli"})
		if mw.ustring.find(mw.ustring.sub( bas, -4 ), "l[ae][(rı)(ri)r]") or args["istisna"] == "çoğulsuz" then
			table.insert(veri.kategoriler, "Türkçe topluluk adları")
			table.insert(veri.cekimler, {etiket = "[[Ek:Açıklamalar#topluluk adı|topluluk adı]]"})
		else
			table.insert(veri.cekimler, {{sozcuk = cogul}, etiket = "çoğulu"})
		end
	end
}

soz_fonksiyonlari["özel adlar"] = {
	fonk = function(args, veri)
		local bas = args[1] or mw.title.getCurrentTitle().subpageText
		local ak = args["k"] or args["a"]
		
		belirtme = tr_ad.ayarla(bas, args["istisna"], "tekil", "ı", "i", "u", "ü", "belirtme", ak)
		cogul = tr_ad.ayarla(bas, args["istisna"], "çoğul", "", "", "", "", "yalın", ak)
		
		table.insert(veri.cekimler, {{sozcuk = belirtme}, etiket = "belirtme hâli"})
		if not mw.ustring.find(mw.ustring.sub( bas, -4 ), "l[ae][(rı)(ri)r]") and args["istisna"] ~= "çoğulsuz" then
			table.insert(veri.cekimler, {{sozcuk = cogul}, etiket = "çoğulu"})
		end
	end
}

soz_fonksiyonlari["eylemler"] = {
	fonk = function(args, veri)
		local bas = args[1] or mw.title.getCurrentTitle().subpageText
		local eylem = require("Modül:tr-araçlar").yalinYap(bas)
		
		tip = "olumlu"
		
		if mw.ustring.find(mw.ustring.sub( eylem, -2 ), "m[ea]") then
			eylem = mw.ustring.sub( eylem, 1, -3 )
			tip = "olumsuz"
		end
		
		cekim = tr_eylem.genis(eylem, tip, "o")
		if type(cekim) == "table" then
			cekim = cekim[1]
		end
		
		table.insert(veri.cekimler, {{sozcuk = cekim}, etiket = "üçüncü tekil şahıs geniş zaman çekimi"})
	end
}

soz_fonksiyonlari["ön adlar"] = {
	fonk = function(args, veri)
		local bas = args[1] or mw.title.getCurrentTitle().subpageText
		
		if args.d == "-" then else
			table.insert(veri.cekimler, {{sozcuk = "[[daha]] " .. bas}, etiket = "karşılaştırma"})
			table.insert(veri.cekimler, {{sozcuk = "[[en]] " .. bas}, etiket = "üstünlük"})
		end
	end
}

return cikart