Modül:kategori ağacı/köken
Görünüm
Bu belgeleme Modül:kategori ağacı/köken/belge (düzenle | geçmiş) sayfasından yansıtılmaktadır. Arayüz düzenleyicilerinin deney yapabilmeleri için ayrıca Modül:kategori ağacı/köken/deneme tahtası sayfası kullanılabilir.
p = {}
--köken kategorilerinin hiyeraşisini oluşturan fonksiyon
function p.hiyerasi(tum)
--gerekli tabloları oluştur
local tablo = {}
local zincir = {}
--girilen dil koduna göre dil nesnesini çağır
local dil = tum.par["dil"] and require("Modül:diller").getirKodaGore(tum.par["dil"])
--girilen köken dil koduna göre köken dilin veya köken dil ailesinin nesnesini çağır
local koken = require("Modül:diller").getirKodaGore(tum.par["köken"]) or require("Modül:köken dilleri").getirKodaGore(tum.par["köken"])
or require("Modül:aileler").getirKodaGore(tum.par["köken"])
--en başta her zaman ana kategoriler ve tüm diller kategorileri yer almalı
table.insert(tablo, "[[:Kategori:Ana kategoriler|Ana kategoriler]]")
table.insert(tablo, "[[:Kategori:Tüm diller|Tüm diller]]")
--nesneyi hiyeraşiye eklemek için yardımcı fonksiyon
local function diladi(nesne)
table.insert(tablo, "[[:Kategori:".. nesne:getirKategoriAdi() .."|".. nesne:getirKategoriAdi() .."]]")
end
--eğer köken tipi bir köken dili ise
if not dil and koken:getirTip() == "köken dili" then
table.insert(tablo, "[[:Kategori:".. koken:getirAile():getirKategoriAdi() .."|".. koken:getirAile():getirKategoriAdi() .."]]")
table.insert(tablo, "[[:Kategori:".. koken:getirAile():getirKategoriAdi() ..
" halk ağzı|Halk ağzı]]")
end
if tum.par["tip"] then
if dil then
diladi(dil)
table.insert(tablo, "[[:Kategori:"..dil:getirAsilAd().." kökenlerine göre sözcükler|Kökenlerine göre sözcükler]]")
table.insert(tablo, "[[:Kategori:"..dil:getirAsilAd().." "..tum.par["tip"].." sözcükler|"..mw.getContentLanguage():ucfirst(tum.par["tip"]).." sözcükler]]")
else
diladi(koken)
table.insert(tablo, "[[:Kategori:"..koken:getirAsilAd().." kökenli sözcükler|Kökenli sözcükler]]")
end
table.insert(tablo, "'''"..require("Modül:tr-araçlar").dilDuzenle(koken:getirAsilAd()).."n "..tum.par["tip"].."'''")
elseif mw.ustring.find(mw.title.getCurrentTitle()["text"], "diğer dillerden alınan sözcükler$") then
diladi(dil)
table.insert(tablo, "'''Diğer dillerden alınan sözcükler'''")
else
if dil then
diladi(dil)
table.insert(tablo, "[[:Kategori:"..dil:getirAsilAd().." kökenlerine göre sözcükler|Kökenlerine göre sözcükler]]")
table.insert(tablo, "[[:Kategori:"..dil:getirAsilAd().." diğer dillerden alınan sözcükler|Diğer dillerden alınan sözcükler]]")
ebeveyn = koken:getirAile()
while ebeveyn and ebeveyn:getirKod() ~= "qfa-iso" do
table.insert (zincir, "[[:Kategori:" .. ebeveyn:getirKategoriAdi() .. " kökenli "
.. dil:getirAsilAd() .. " sözcükler|" .. ebeveyn:getirKategoriAdi() .. "]]")
ebeveyn = ebeveyn:getirAile()
end
for i = #zincir, 1, -1 do
table.insert(tablo, zincir[i])
end
table.insert(tablo, "'''" .. koken:getirKategoriAdi() .. "'''")
else
if koken:getirTip() == "dil ailesi" then
table.insert(tablo, "[[:Kategori:Ailelerine göre diller|Ailelerine göre diller]]")
ebeveyn = koken:getirAile()
while ebeveyn and ebeveyn:getirKod() ~= "qfa-iso" do
table.insert (zincir, "[[:Kategori:" .. ebeveyn:getirKategoriAdi() .. "|" .. ebeveyn:getirAsilAd() .. "]]")
ebeveyn = ebeveyn:getirAile()
end
for i = #zincir, 1, -1 do
table.insert(tablo, zincir[i])
end
end
diladi(koken)
table.insert(tablo, "'''Kökenli sözcükler'''")
end
end
return "<p class=\"clearThis\"><small>" .. table.concat(tablo, " » ") .. "</small></p>"
end
function p.kategoriAgaci(tum)
local dil = tum.par["dil"] and require("Modül:diller").getirKodaGore(tum.par["dil"])
local koken = require("Modül:diller").getirKodaGore(tum.par["köken"]) or require("Modül:köken dilleri").getirKodaGore(tum.par["köken"])
or require("Modül:aileler").getirKodaGore(tum.par["köken"])
local ad = tum.par['ad'] or mw.title.getCurrentTitle().text
if tum.par["tip"] then
if dil then
table.insert(tum.kat, "[[Kategori:" .. dil:getirAsilAd() .. " "..tum.par["tip"].." sözcükler|" .. koken:getirKategoriAdi() .. "]]")
table.insert(tum.kat, "[[Kategori:" .. koken:getirKategoriAdi() .. " kökenli " .. dil:getirAsilAd() .. " sözcükler| ]]")
table.insert(tum.kat, "[[Kategori:" .. require("Modül:tr-araçlar").dilDuzenle(koken:getirKategoriAdi())
.. "n "..tum.par["tip"].." sözcükler|"..dil:getirAsilAd().."]]")
else
table.insert (tum.kat, "[[Kategori:" .. koken:getirKategoriAdi() .. " kökenli sözcükler| ]]")
end
elseif mw.ustring.find(mw.title.getCurrentTitle()["text"], "diğer dillerden alınan sözcükler$") then
table.insert(tum.kat, "[[Kategori:Dillerine göre diğer dillerden alınan sözcükler|".. dil .. "]]")
table.insert(tum.kat, "[[Kategori:" .. dil:getirAsilAd() .. "|Diğer dillerden alınan sözcükler]]")
else
if dil then
ebeveyn = koken:getirAile()
if ebeveyn and ebeveyn:getirKod() ~= "qfa-iso" then
table.insert (tum.kat, "[[Kategori:" .. ebeveyn:getirKategoriAdi() .. " kökenli "
.. dil:getirAsilAd() .. " sözcükler|" .. koken:getirKategoriAdi() .. "]]")
else
table.insert(tum.kat, "[[Kategori:" .. dil:getirAsilAd() .. " diğer dillerden alınan sözcükler|" .. koken:getirAsilAd() .. "]]")
end
table.insert(tum.kat, "[[Kategori:" .. koken:getirKategoriAdi() .. " kökenli sözcükler|" .. dil:getirAsilAd() .. "]]")
else
if koken:getirTip() == "dil ailesi" then
anahtar = mw.ustring.char(0x0020)
else
anahtar = "Kökenli sözcükler"
table.insert(tum.kat, "[[Kategori:Kökenlerine göre sözcükler|".. koken:getirAsilAd() .. "]]")
end
table.insert(tum.kat, "[[Kategori:" .. koken:getirKategoriAdi() .. "|" .. anahtar .. "]]")
end
end
end
return p