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 and require("Modül:diller").getirKodaGore(tum.par)
--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) or require("Modül:köken dilleri").getirKodaGore(tum.par)
or require("Modül:aileler").getirKodaGore(tum.par)
--en başta her zaman ana kategoriler ve tüm diller kategorileri yer almalı
table.insert(tablo, "]")
table.insert(tablo, "]")
--nesneyi hiyeraşiye eklemek için yardımcı fonksiyon
local function diladi(nesne)
table.insert(tablo, "]")
end
--eğer köken tipi bir köken dili ise
if not dil and koken:getirTip() == "köken dili" then
table.insert(tablo, "]")
table.insert(tablo, "[[:Kategori:".. koken:getirAile():getirKategoriAdi() ..
" halk ağzı|Halk ağzı]]")
end
if tum.par then
if dil then
diladi(dil)
table.insert(tablo, "]")
table.insert(tablo, ".." sözcükler|"..mw.getContentLanguage():ucfirst(tum.par).." sözcükler]]")
else
diladi(koken)
table.insert(tablo, "]")
end
table.insert(tablo, "'''"..require("Modül:tr-araçlar").dilDuzenle(koken:getirAsilAd()).."n "..tum.par.."'''")
elseif mw.ustring.find(mw.title.getCurrentTitle(), "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, "]")
table.insert(tablo, "]")
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)
end
table.insert(tablo, "'''" .. koken:getirKategoriAdi() .. "'''")
else
if koken:getirTip() == "dil ailesi" then
table.insert(tablo, "]")
ebeveyn = koken:getirAile()
while ebeveyn and ebeveyn:getirKod() ~= "qfa-iso" do
table.insert (zincir, "]")
ebeveyn = ebeveyn:getirAile()
end
for i = #zincir, 1, -1 do
table.insert(tablo, zincir)
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 and require("Modül:diller").getirKodaGore(tum.par)
local koken = require("Modül:diller").getirKodaGore(tum.par) or require("Modül:köken dilleri").getirKodaGore(tum.par)
or require("Modül:aileler").getirKodaGore(tum.par)
local ad = tum.par or mw.title.getCurrentTitle().text
if tum.par then
if dil then
table.insert(tum.kat, ".." sözcükler|" .. koken:getirKategoriAdi() .. "]]")
table.insert(tum.kat, "]")
table.insert(tum.kat, "[[Kategori:" .. require("Modül:tr-araçlar").dilDuzenle(koken:getirKategoriAdi())
.. "n "..tum.par.." sözcükler|"..dil:getirAsilAd().."]]")
else
table.insert (tum.kat, "]")
end
elseif mw.ustring.find(mw.title.getCurrentTitle(), "diğer dillerden alınan sözcükler$") then
table.insert(tum.kat, "]")
table.insert(tum.kat, "]")
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, "]")
end
table.insert(tum.kat, "]")
else
if koken:getirTip() == "dil ailesi" then
anahtar = mw.ustring.char(0x0020)
else
anahtar = "Kökenli sözcükler"
table.insert(tum.kat, "]")
end
table.insert(tum.kat, "]")
end
end
end
return p