Modül:kategori ağacı/aile
Bu belgeleme Modül:kategori ağacı/aile/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ı/aile/deneme tahtası sayfası kullanılabilir.
p = {}
function p.hiyerasi(tum)
local fam = require("Modül:aileler").getirKodaGore(tum.par["aile"])
local tablo = {}
local zincir = {}
local son = ""
if fam then
son = "'''" .. fam:getirKategoriAdi() .. "'''"
end
table.insert (tablo, "[[:Kategori:Ana kategoriler|Ana kategoriler]]")
table.insert (tablo, "[[:Kategori:Tüm diller|Tüm diller]]")
table.insert (tablo, "[[:Kategori:Ailelerine göre diller|Ailelerine göre diller]]")
local parent = fam:getirAile()
if fam:getirAile() and fam:getirAile():getirKod() == "qfa-not" then
else
while parent do
table.insert (zincir, "[[:Kategori:" .. parent:getirKategoriAdi() .. "|" .. parent:getirAsilAd() .. "]]")
parent = parent:getirAile()
end
for i = #zincir, 1, -1 do
table.insert(tablo, zincir[i])
end
end
table.insert (tablo, son)
return "<p class=\"clearThis\"><small>" .. table.concat(tablo, " » ") .. "</small></p>"
end
local function bilgiKutusu(fam)
local ret = {}
table.insert(ret, "<div class=\"main-box\" style=\"display:inline-block;padding:0;\">\n")
table.insert(ret, "<table class=\"main-table\">\n")
table.insert(ret, "<tr>\n<th colspan=\"2\" class=\"plainlinks\">[//tr.wiktionary.org/w/index.php?title=Modül:aileler/veri&action=edit Aile verisini düzenle]</th>\n</tr>\n")
table.insert(ret, "<tr>\n<th>Asıl adı</th><td style='background:white;'>" .. fam:getirAsilAd() .. "</td>\n</tr>\n")
local digerAdlari = fam:getirDigerAdlari(true)
if digerAdlari then
local adlar = {}
for _, ad in ipairs(digerAdlari) do
table.insert(adlar, "<li>" .. ad .. "</li>")
end
if #adlar > 0 then
table.insert(ret, "<tr>\n<th>Diğer adları</th><td style='background:white;'><ul>" .. table.concat(adlar, "\n") .. "</ul></td>\n</tr>\n")
end
end
local digerleri = fam:getirDigerleri()
if digerleri then
local adlar = {}
for _, ad in ipairs(digerleri) do
table.insert(adlar, "<li>" .. ad .. "</li>")
end
if #adlar > 0 then
table.insert(ret, "<tr>\n<th>Diğer adları</th><td style='background:white;'><ul>" .. table.concat(adlar, "\n") .. "</ul></td>\n</tr>\n")
end
end
local cesitleri = fam:getirCesitleri()
if cesitleri then
local adlar = {}
for _, ad in ipairs(cesitleri) do
if type(ad) == "string" then
table.insert(adlar, "<li>" .. ad .. "</li>")
else
assert(type(ad) == "table")
local first_var
local subvars = {}
for i, var in ipairs(ad) do
if i == 1 then
first_var = var
else
table.insert(subvars, "<li>" .. var .. "</li>")
end
end
if #subvars > 0 then
table.insert(adlar, "<li><dl><dt>" .. first_var .. "</dt>\n<dd><ul>" .. table.concat(subvars, "\n") .. "</ul></dd></dl></li>")
elseif first_var then
table.insert(adlar, "<li>" .. first_var .. "</li>")
end
end
end
if #adlar > 0 then
table.insert(ret, "<tr>\n<th>Çeşitleri</th><td><ul>" .. table.concat(adlar, "\n") .. "</ul></td>\n</tr>\n")
end
end
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Dil aileleri|Aile kodu]]</th><td style='background:white;'><code>" .. fam:getirKod() .. "</code></td>\n</tr>\n")
table.insert(ret, "<tr>\n<th>[[w:Proto dil|Yaygın ata]]</th><td style='background:white;'>")
local protoLanguage = fam:getirProtoDili()
if protoLanguage then
table.insert(ret, "[[:Kategori:" .. mw.getContentLanguage():ucfirst(protoLanguage:getirKategoriAdi()) .. "|" .. protoLanguage:getirAsilAd() .. "]]")
else
table.insert(ret, "yok")
end
table.insert(ret, "</td>\n")
table.insert(ret, "\n</tr>\n")
local parent = fam:getirAile()
if not parent then
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Dil aileleri|Soyu]]</th>\n<td style='background:white;'>")
table.insert(ret, "sınıflandırılmamış")
elseif parent:getirKod() == "qfa-not" then
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Dil aileleri|Soyu]]</th>\n<td style='background:white;'>")
table.insert(ret, "bir dil ailesi değil")
else
local chain = {}
while parent do
table.insert(chain, "[[:Kategori:" .. mw.ustring.gsub(parent:getirKategoriAdi(), "^.", mw.ustring.upper) .. "|" .. parent:getirAsilAd() .. "]]")
parent = parent:getirAile()
end
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Dil aileleri|Soyu]]</th>\n<td style='background:white;'>")
for i = #chain, 1, -1 do
table.insert(ret, "<ul><li>" .. chain[i])
end
table.insert(ret, string.rep("</li></ul>", #chain))
end
table.insert(ret, "</td>\n</tr>\n")
if fam:getirVikiveriItemi() and mw.wikibase then
local link = '[' .. mw.wikibase.getEntityUrl(fam:getirVikiveriItemi()) .. ' ' .. fam:getirVikiveriItemi() .. ']'
table.insert(ret, "<tr><th>Vikiveri</th><td style='background:white;'>" .. link .. "</td></tr>")
end
table.insert(ret, "</table></div>")
return table.concat(ret)
end
function kategoriler(fam, tum, aile)
if fam then
if fam:getirAile() then
if fam:getirAile():getirKod() == "qfa-not" then
table.insert (tum.kat, "[[Kategori:Ailelerine göre diller| ]]")
else
table.insert (tum.kat, "[[Kategori:" .. fam:getirAile():getirKategoriAdi() .. "]]")
end
else
table.insert (tum.kat, "[[Kategori:Ailelerine göre diller]]")
end
end
table.insert (tum.kat, "[[Kategori:Tüm dil aileleri]]")
end
function p.kategoriAgaci(tum)
local ad = mw.title.getCurrentTitle()["text"]
local aile = tum.par["aile"]
local fam = require("Modül:aileler").getirKodaGore(aile)
if not fam then
kategoriler(fam, tum, aile)
else
i = mw.ustring.find(mw.ustring.sub( fam:getirKategoriAdi(), -1 ), "[aAeEıIiİoOöÖuUüÜ]$")
local ret =
"Bu kategori '''" .. fam:getirKategoriAdi() .. (i and "n" or "") .. "in''' ana kategorisidir.\n\n" .. fam:getirKategoriAdi() .. " hakkında bilgi:\n\n" .. bilgiKutusu(fam)
table.insert(tum.tab, mw.getCurrentFrame():expandTemplate{title = "kardeşbağlantılar", args = {fam:getirKategoriAdi()}})
table.insert(tum.tab, mw.getCurrentFrame():expandTemplate{title = "Vikipedi", args = {}})
table.insert(tum.gor, ret)
kategoriler(fam, tum, aile)
end
end
return p