Modül:temalar
Bu belgeleme Modül:temalar/belge (düzenle | geçmiş) sayfasından yansıtılmaktadır. Arayüz düzenleyicilerinin deney yapabilmeleri için ayrıca Modül:temalar/deneme tahtası sayfası kullanılabilir.
Modülün alt sayfaları:
local cikart = {}
local Tema = {}
function Tema:getirAsilAd()
return mw.getContentLanguage():ucfirst(self._asilAd)
end
function Tema:getirKategori()
return self._asilAd
end
function Tema:getirBaslikAdi()
return self._rawData.baslikAdi
end
function Tema:getirEbeveynler()
ebeveynler = self._rawData.ebeveynler
return ebeveynler or {}
end
function Tema:direktMi()
return self._rawData.direkt
end
function Tema:varmiDilKategorisi()
if self._rawData.dil_kategorisi == false then
return nil
else
return true
end
end
function Tema:getirAciklama(ekliDil)
if self._rawData.aciklama then
if ekliDil then
return ekliDil .. " " .. self._rawData.aciklama[1]
else
return mw.getContentLanguage():ucfirst(self._rawData.aciklama[1])
end
else
return ""
end
end
function Tema:getirYanlisYazimlar()
return self._rawData.yanlisYazimlar
end
function Tema:getirTip()
return self._rawData.tip or self._tip or nil
end
function Tema:getirOrtak()
if self._rawData.ortak == false then
return false
else
return true
end
end
function Tema:getirAnahtar()
return self._rawData.anahtar or false
end
function Tema:getirGizli()
return self._rawData.gizli or false
end
function Tema:getirVeriModulu()
return "Modül:temalar/veri" .. (self._tip == "" and "" or "/") .. self._tip
end
function Tema:getirSiraAnahtari()
return self._rawData.sira_anahtari or mw.getContentLanguage():ucfirst(self._asilAd)
end
function Tema:getirKategoriAdi(ekliDil)
if self._asilAd == "ana kategoriler" or self._asilAd == "tüm diller" or not ekliDil then
return mw.getContentLanguage():ucfirst(self._asilAd)
else
return mw.getContentLanguage():ucfirst(ekliDil .. " " .. self._asilAd)
end
end
function Tema:toJSON()
local ret = {
ebeveynler = self:getirEbeveynler(),
alt = self:getirAlt(),
aciklama = self:getirAciklama(),
direkt = self:direktMi(),
tip = _tip,
asilAd = _asilAd,
sira_anahtari = self:getirSiraAnahtari(),
dil_kategorisi = self:varmiDilKategorisi(),
}
return require("Modül:JSON").toJSON(ret)
end
function Tema:getRawData()
return self._rawData
end
Tema.__index = Tema
function cikart.olusturNesne(asilAd, veri, tip)
return veri and setmetatable({ _rawData = veri, _asilAd = asilAd, _tip = tip }, Tema) or nil
end
function cikart.getirBaslikAdinaGore(baslik)
tablo = {}
for ad, veri in pairs(mw.loadData("Modül:temalar/veri/söz türü")) do
if veri.baslikAdi then
tablo[veri.baslikAdi] = ad
end
end
local asilAd = tablo[baslik]
return cikart.olusturNesne(asilAd, require("Modül:temalar/veri/söz türü")[asilAd], "söz türü")
end
function cikart.getirAsilAdaGore(asilAd, anah)
local altsayfalar = {
"",
"konu",
"grup",
"şablon",
"söz türü",
"söz biçim"
}
local verimodulu
for _, altsayfa in ipairs(altsayfalar) do
verimodulu = "Modül:temalar/veri" .. (altsayfa == "" and "" or "/") .. altsayfa
tip = altsayfa
if require(verimodulu)[asilAd] then
break
end
end
local tablo = mw.loadData(verimodulu)
if mw.ustring.find(asilAd, "Dillerine göre") then
tablo = {[asilAd] = {
ebeveynler = {mw.ustring.gsub( asilAd, "Dillerine göre ", "" )},
sira_anahtari = "+"
}}
end
if mw.ustring.find(asilAd, "son ekiyle oluşmuş sözcükler") then
tablo = {[asilAd] = {
ebeveynler = {"son eklerine göre sözcükler"},
sira_anahtari = mw.ustring.sub( asilAd, 2, -1 ),
ortak = false
}}
end
if mw.ustring.find(asilAd, "ön ekiyle oluşmuş sözcükler") then
tablo = {[asilAd] = {
ebeveynler = {"ön eklerine göre sözcükler"},
sira_anahtari = mw.ustring.sub( asilAd, 1, 1 ),
ortak = false
}}
end
if mw.ustring.len( asilAd ) == 1 then
tablo = {[asilAd] = {
ebeveynler = {"bireysel karakterlerine göre sözcükler"},
}}
end
return cikart.olusturNesne(asilAd, tablo[asilAd], tip)
end
return cikart