Modül:kategori ağacı/alfabe
Görünüm
Bu belgeleme Modül:kategori ağacı/alfabe/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ı/alfabe/deneme tahtası sayfası kullanılabilir.
p = {}
local temaAlt = {
["alfabe"] = {
ebeveynler = {"tüm alfabeler"},
alt = {"diller"}
},
["diller"] = {
kategori = "dilleri",
ebeveynler = {"alfabe"},
aciklama = "ni kullanan dillerin listesi."
}
}
local function buyukHarf(x)
return mw.getContentLanguage():ucfirst(x)
end
function p.hiyerasi(tum)
local scr = require("Modül:alfabeler").getirKodaGore(tum.par["alfabe"])
local tema = tum.par['tema']
local tablo = {}
table.insert(tablo, "[[:Kategori:Ana kategoriler|Ana kategoriler]]")
table.insert(tablo, "[[:Kategori:Tüm alfabeler|Tüm alfabeler]]")
if tema then
table.insert(tablo, "[[:Kategori:" .. scr:getirKategoriAdi() .. "|" .. scr:getirKategoriAdi() .. "]]")
table.insert(tablo, "'''" .. buyukHarf(temaAlt[tema].kategori) .. "'''")
else
table.insert(tablo, "'''" .. scr:getirKategoriAdi() .. "'''")
end
return "<p class=\"clearThis\"><small>" .. table.concat(tablo, " » ") .. "</small></p>"
end
function bagKutu(scr, vikipedi)
local canonicalName = scr:getirAsilAd()
local categoryName = scr:getirKategoriAdi()
local wikipediaArticle = vikipedi or scr:getirVikipediMaddesi()
return [=[<div style="clear: right; border: solid #aaa 1px; margin: 1 1 1 1; background: #f9f9f9; width: 250px; padding: 5px; text-align: left; float: right">
<div style="text-align: center; margin-bottom: 10px; margin-top: 5px">''']=] .. categoryName .. [=['''</div>
{| style="font-size: 90%; background: #f9f9f9"
| style="vertical-align: middle; height: 35px;" | [[Dosya:Wikipedia-logo.png|35px|none|Vikipedi]] || '']=] .. categoryName .. [=[ hakkındaki Vikipedi maddesi''
|-
| colspan="2" style="padding-left: 50px; border-bottom: 1px solid lightgray;" | '''[[w:]=] .. wikipediaArticle .. [=[|]=] .. wikipediaArticle .. [=[]]'''
|-
| style="vertical-align: middle; height: 35px;" | [[Dosya:Crystal kfind.png|35px|none|Açıklamalar]] || ]=] .. categoryName .. [=[ açıklamaları
|-
| colspan="2" style="padding-left: 50px; border-bottom: 1px solid lightgray;" | '''[[Vikisözlük:]=] .. categoryName .. [=[ hakkında]]'''
|-
| style="vertical-align: middle; height: 35px;" | [[Dosya:Book notice.png|35px|none|Bilgi]] || ]=] .. categoryName .. [=[ bilgileri
|-
| colspan="2" style="padding-left: 50px; border-bottom: 1px solid lightgray;" | '''[[Ek:]=] .. categoryName .. [=[]]'''
|-
| style="vertical-align: Middle; height: 35px;" | [[Dosya:Abc box.svg|35px|none|Kod]] || ]=] .. categoryName .. [=[ kodu
|-
| colspan="2" style="padding-left: 50px;" | ''']=] .. scr:getirKod() .. [=['''
|}
</div>]=]
end
function kodlar(scr, tum)
local kodlar = {}
for code, data in pairs(mw.loadData("Modül:alfabeler/veri")) do
if data.asilAd == scr:getirAsilAd() then
table.insert(kodlar, "'''" .. code .. "'''")
end
end
local tek = 1
if kodlar[2] then
tek = 2
end
if kodlar[2] then
table.sort(
kodlar,
-- Dört harfli kodların uzunluğu 10'dur, çünkü kalınlaştırmaları var: '''Latn'''.
function(code1, code2)
if #code1 == 10 then
if #code2 == 10 then
return code1 < code2
else
return true
end
else
if #code2 == 10 then
return false -- dört harfli kodlar diğerlerinden önce gelir
else
return code1 < code2
end
end
end)
end
table.insert(tum.gor, scr:getirKategoriAdi() .. " hakkında bilgi, [[Ek:" .. scr:getirKategoriAdi() .. "]] sayfasında bulunabilir.")
table.insert(tum.gor, "Vikisözlük'ün çeşitli yerlerinde " .. scr:getirKategoriAdi() ..
(tek == 2 and "; " or ", ") .. table.concat(kodlar, ", ") .. (tek == 2 and " [[Vikisözlük:Alfabeler|kodları]]" or " [[Vikisözlük:Alfabeler|kodu]]") .. " ile sunulmuştur.")
end
function kategoriler(scr, tema, tum)
if tema then
table.insert(tum.kat, "[[Kategori:" .. scr:getirKategoriAdi() .. "|" .. tema .. "]]")
table.insert(tum.kat, "[[Kategori:Alfabelerine göre diller]]")
else
table.insert(tum.kat, "[[Kategori:Tüm alfabeler]]")
end
end
function alt(scr, tema)
local tablo = {}
for _, child in ipairs(temaAlt["alfabe"].alt) do
i = mw.ustring.find(mw.ustring.sub( scr:getirKategoriAdi(), -1 ), "[aAeEıIiİoOöÖuUüÜ]$")
if mw.title.new("Kategori:" .. scr:getirKategoriAdi() .. " " .. temaAlt[child].kategori).exists then
table.insert(tablo, "<li>[[:Kategori:" .. scr:getirKategoriAdi() .. " " .. temaAlt[child].kategori .. "]]: "
.. scr:getirKategoriAdi() .. (i and "n" or "") .. temaAlt[child].aciklama .. "</li>")
elseif mw.title.new("Kategori:" .. scr:getirKategoriAdi() .. " " .. child).exists then
table.insert(tablo, "<li>[[:Kategori:" .. scr:getirKategoriAdi() .. " " .. child .. "]]: "
.. scr:getirKategoriAdi() .. (i and "n" or "") .. temaAlt[child].aciklama .. "</li>")
end
end
return table.concat(tablo, "\n")
end
function p.kategoriAgaci(tum)
local alfabe = tum.par['alfabe']
local tema = tum.par['tema']
local scr = require("Modül:alfabeler").getirKodaGore(alfabe)
local vikipedi = tum.par['vikipedi']
if scr then
vikipedi = tum.par['vikipedi'] or scr:getirKategoriAdi()
end
if scr then
if tema then
table.insert(tum.gor, scr:getirKategoriAdi() .. temaAlt[tema].aciklama)
else
i = mw.ustring.find(mw.ustring.sub( scr:getirKategoriAdi(), -1 ), "[aAeEıIiİoOöÖuUüÜ]$")
table.insert(tum.gor, "Bir yazı sistemi olan '''" .. scr:getirKategoriAdi() .. (i and "n" or "") .. "in''' ana kategorisi.")
kodlar(scr, tum)
table.insert(tum.tab, bagKutu(scr, vikipedi))
table.insert(tum.gor, alt(scr, tema))
end
end
kategoriler(scr, tema, tum)
end
return p