Modül:köken dilleri

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


local cikart = {}

local KokenDili = {}


function KokenDili:getirKod()
	return self._kod
end


function KokenDili:getirAsilAd()
	return self._rawData.asilAd
end


function KokenDili:getirDigerAdlari()
	return self._rawData.digerAdlari or {}
end


--function KokenDili:getirTumAdlar()
--	return self._rawData.adlar
--end


function KokenDili:getirKategoriAdi()
	return self:getirAsilAd()
end


function KokenDili:getirTip()
	return "köken dili"
end


function KokenDili:getirEbeveynKodu()
	return self._rawData.ebeveyn
end


function KokenDili:getirAile()
	return cikart.getirKodaGore(self._rawData.ebeveyn) or require("Modül:diller").getirKodaGore(self._rawData.ebeveyn)
end


function KokenDili:getirSoylar()
	if not self._soyNesneleri then
		self._soyNesneleri = {}
		
		for _, soy in ipairs(self._rawData.soylar or {}) do
			table.insert(self._soyNesneleri, cikart.getirKodaGore(soy) or require("Modül:diller").getirKodaGore(soy))
		end
	end
	
	return self._soyNesneleri
end


function KokenDili:getirVikipediMaddesi()
	return self._rawData.vikipedi_maddesi or self._rawData.asilAd
end


function KokenDili:yapVikipediBaglantisi()
	return "[[w:" .. self:getirVikipediMaddesi() .. "|" .. self:getirAsilAd() .. "]]"
end


function KokenDili:toJSON()
	local ret = {
		asilAd = self:getirAsilAd(),
		kategoriAdi = self:getirKategoriAdi(),
		kod = self._kod,
		digerAdlari = self:getirDigerAdlari(),
		ebeveyn = self._rawData.ebeveyn,
		tip = self:getirTip(),
		}
	
	return require("Modül:JSON").toJSON(ret)
end


function KokenDili:getRawData()
	return self._rawData
end


KokenDili.__index = KokenDili


function cikart.yapNesne(kod, veri)
	return veri and setmetatable({ _rawData = veri, _kod = kod }, KokenDili) or nil
end


function cikart.getirKodaGore(kod)
	return cikart.yapNesne(kod, mw.loadData("Modül:köken dilleri/veri")[kod])
end


function cikart.getirAsilAdaGore(ad)
	local kod = mw.loadData("Modül:köken dilleri/ada göre")[ad]
	
	if not kod then
		return nil
	end
	
	return cikart.yapNesne(kod, mw.loadData("Modül:köken dilleri/veri")[kod])
end


function cikart.ornek(ad)
	return cikart.getirKodaGore("sem-jar"):getirAsilAd()
end


return cikart