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 "]"
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"))
end
function cikart.getirAsilAdaGore(ad)
local kod = mw.loadData("Modül:köken dilleri/ada göre")
if not kod then
return nil
end
return cikart.yapNesne(kod, mw.loadData("Modül:köken dilleri/veri"))
end
function cikart.ornek(ad)
return cikart.getirKodaGore("sem-jar"):getirAsilAd()
end
return cikart