İçeriğe atla

Modül:köken

Vikisözlük sitesinden
Modül belgelemesi [Düzenle] [Tazele]
local cikart = {}

local araclar = require("Modül:tr-araçlar")
local alfabeler = require("Modül:alfabeler")

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

function onislem(veri)
	if veri.dil:getirKod() == veri.koken:getirKod() then
		table.insert(veri.kategoriler, "[[Kategori:Köken şablonunun yanlış kullanıldığı sayfalar]]")
	else
		--Alfabe kontrolü
		if veri.dil and require("Modül:alfabekontrol").goster(mw.title.getCurrentTitle().subpageText, veri.dil:getirAsilAd()) ~= false then
			table.insert(veri.kategoriler, "[[Kategori:" .. veri.koken:getirKategoriAdi() .. " kökenli " .. veri.dil:getirKategoriAdi() .. " sözcükler]]")
		else
			table.insert(veri.kategoriler, "[[Kategori:Köken şablonunun yanlış kullanıldığı sayfalar]]")
		end
	end
end

function getirKokenDiliOlmayan(dil)
	while dil:getirTip() == "köken dili" 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
end

function cikart.kokenSozcuk(veri, sablon)
	if sablon ~= "diğer" then
		onislem(veri)
	end
	
	veri.koken = getirKokenDiliOlmayan(veri.koken)
	
	if sablon == "devralınan" or sablon == "nakledilen" then
		table.insert(veri.kategoriler, "[[Kategori:" .. araclar.dilDuzenle(veri.koken:getirKategoriAdi()) .. "n "..sablon.." "
			.. veri.dil:getirKategoriAdi() .. " sözcükler]]")
	end
	
	if mw.title.getCurrentTitle().nsText == "" then else
		veri.kategoriler = {}
	end
	
	veri.dil = veri.koken
	
	-- sözcük Latin harfleriyle yazılmış ise italik yazılsın.
	local enIyiAlfabe = alfabeler.bulEnIyiAlfabe(veri.sozcuk, veri.dil)
	
	if enIyiAlfabe and enIyiAlfabe:getirKod() == "Latn" then
		tip = "sözcük"
	end

	return "[[w:" .. veri.koken:getirKategoriAdi() .. "|" .. veri.koken:getirKategoriAdi() .. "]] "
		.. (veri.sozcuk == "-" and " bilinmeyen bir " or require("Modül:bağlantılar").tam_bag(veri, tip, true))
		.. table.concat(veri.kategoriler)
end

function cikart.koken(veri)
	onislem(veri)
	
	if mw.title.getCurrentTitle().nsText == "" then else
		veri.kategoriler = {}
	end
	
	return "[[w:" .. veri.koken:getirKategoriAdi() .. "|" .. veri.koken:getirKategoriAdi() .. "]]" .. table.concat(veri.kategoriler)
end

return cikart