Modül:köken

Vikisözlük sitesinden
Gezinti kısmına atla Arama kısmına atla
[oluştur] Template-info.svg Modül belgelemesi


local cikart = {}

local temalar = require("Modül:temalar").getirAsilAdaGore
local kategoriler = {}

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

function cikart.getirKokenDiliOlmayan(frame, dil)
	if not dil then
		dil = frame:getParent().args[1]
	end
	
	dil = require("Modül:diller").getirKodaGore(dil)
		or require("Modül:köken dilleri").getirKodaGore(dil)
		or require("Modül:aileler").getirKodaGore(dil)
	
	while dil:getirTip() == "etymology language" do
		local ebeveynKodu = dil:getirEbeveynKodu()
		local ebeveyn = require("Modül:diller").getirKodaGore(ebeveynKodu)
			or require("Modül:köken dilleri").getirKodaGore(ebeveynKodu)
			or require("Modül:aileler").getirKodaGore(ebeveynKodu)
		
		dil = ebeveyn
--		mw.log(terminfo.dil:getirTip() .. " " .. terminfo.dil:getirTip())
	end
	
	return dil:getirKod()
end

function cikart.goster(frame)
	local args = frame:getParent().args
	
	local koken = require("Modül:köken dilleri").getirKodaGore(args[1]) or require("Modül:diller").getirKodaGore(args[1])
	if args["dil"] then
		dil = require("Modül:diller").getirKodaGore(args["dil"])
	end
	
	if not args["dil"] then
		table.insert(kategoriler, "[[Kategori:Dil parametresi olmayan köken şablonları]]")
	end
	
	if args["dil"] == args[1] then
		table.insert(kategoriler, "[[Kategori:Köken şablonunun yanlış kullanıldığı sayfalar]]")
	else
		--Alfabe kontrolü
		if dil and require("Modül:alfabekontrol").goster(mw.title.getCurrentTitle().subpageText, dil:getirAsilAd()) ~= false then
			table.insert(kategoriler, "[[Kategori:" .. koken:getirAsilAd() .. " kökenli " .. dil:getirAsilAd() .. " sözcükler]]")
		else
			table.insert(kategoriler, "[[Kategori:Köken şablonunun yanlış kullanıldığı sayfalar]]")
		end
	end
	
	if mw.title.getCurrentTitle().nsText == "Şablon" then
		kategoriler = {}
	end
	
	return "[[w:" .. koken:getirAsilAd() .. "|" .. koken:getirAsilAd() .. "]]" .. table.concat(kategoriler, "\n")
end

return cikart