Modül:kategori ağacı/dil
Bu belgeleme Modül:kategori ağacı/dil/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ı/dil/deneme tahtası sayfası kullanılabilir.
local p = {}
local dilDuzenle = require("Modül:tr-araçlar").dilDuzenle
local diller = require('Modül:diller')
function makeCategoryLink(object, tip)
return "[[:Kategori:" .. object:getirKategoriAdi() .. "|" .. object:getirAsilAd() .. "]]"
end
function bagKutusu(lang, vikipedi, kardes, girdi)
local wiktionarylinks = "''Yok.''"
local canonicalName = lang:getirAsilAd()
local wikimediaLanguages = lang:getirVikimedyaDilleri()
local categoryName = lang:getirKategoriAdi()
local wikipediaArticle = lang:getirVikipediMaddesi() or vikipedi
if wikimediaLanguages and wikimediaLanguages[1] then
wiktionarylinks = {}
for _, wikimedialang in ipairs(wikimediaLanguages) do
table.insert(wiktionarylinks,
(wikimedialang:getirAsilAd() ~= canonicalName and "(''" .. wikimedialang:getirAsilAd() .. "'') " or "") ..
"'''[[:" .. wikimedialang:getirKod() .. ":|" .. wikimedialang:getirKod() .. ".wiktionary.org]]'''")
end
wiktionarylinks = table.concat(wiktionarylinks, "<br/>")
end
return table.concat{
[=[<div class="main-box right-box">
<div style="text-align: center; margin-bottom: 10px; margin-top: 5px">''']=], categoryName, [=['''</div>
{| style="border: 0; font-size: 90%;"
|-
| style="vertical-align: middle; height: 35px; width: 35px;" | [[Dosya:Vikisözlüklogo-Yazısız-TmY e12.png|35px|none|Vikisözlük]]
|| ''Vikisözlük'ün ]=], categoryName, [=[ versiyon]=], (wikimediaLanguages[2] and "ları" or "u"), [=[''
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | ]=], wiktionarylinks, [=[
|-
| style="vertical-align: middle; height: 35px" | [[Dosya:Wikipedia-logo.png|35px|none|Vikipedi]]
|| '']=], categoryName, [=[ hakkındaki Vikipedi maddesi''
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | ]=], (wikipediaArticle == "-" and "''Yok.''" or "'''[[w:" .. wikipediaArticle .. "|" .. wikipediaArticle .. "]]'''"), [=[
|-
| style="vertical-align: middle; height: 35px" | [[Dosya:Wikimedia-logo.svg|35px|none|Vikimedya Commons]]
|| ''Vikimedya Commons'ta bulunan ]=], categoryName, [=[ ile ilgili kardeş projelere olan bağlantılar''
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | ]=], (kardes == "-" and "''Yok.''" or "'''[[commons:Kategori:" .. (kardes or categoryName) .. "|" .. categoryName .. "]]'''"), [=[
|-
| style="vertical-align: middle; height: 35px" | [[Dosya:Crystal kfind.png|35px|none|Açıklamalar]]
|| ]=], categoryName, [=[ açıklamaları
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | '''[[Vikisözlük:]=], canonicalName, [=[ içerik politikası]]'''
|-
| style="vertical-align: middle; height: 35px" | [[Dosya:Incomplete list.svg|35px|none|Dizin]]
|| ]=], categoryName, [=[ dizini
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | '''[[Dizin:]=], canonicalName, [=[]]'''
|-
| style="vertical-align: middle; height: 35px" | [[Dosya:Open book nae 02.svg|35px|none|Girdi]]
|| ]=], categoryName, [=[ girdisi
|-
| colspan="2" style="padding-left: 10px;" | ''']=], require("Modül:bağlantılar").tam_bag({dil = require("Modül:diller").getirKodaGore("tr"), sozcuk = girdi or canonicalName}), [=['''
|}
</div>]=]
}
end
function bilgiKutusu(lang)
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:" .. require("Modül:diller").getirVeriModulAdi(lang:getirKod()) .. "&action=edit Dil verisini düzenle]</th>\n</tr>\n")
table.insert(ret, "<tr>\n<th>Asıl adı</th><td style='background:white;'>" .. lang:getirAsilAd() .. "</td>\n</tr>\n")
local digerAdlari = lang: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 = lang: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 = lang: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 style='background:white;'><ul>" .. table.concat(adlar, "\n") .. "</ul></td>\n</tr>\n")
end
end
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Diller|Dil kodu]]</th><td style='background:white;'><code>" .. lang:getirKod() .. "</code></td>\n</tr>\n")
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Dil aileleri|Dil ailesi]]</th>\n")
local fam = lang:getirAile()
local famCode = fam and fam:getirKod()
if not fam then
table.insert(ret, "<td style='background:white;'>sınıflandırılmamış</td>")
elseif famCode == "art" then
table.insert(ret, "<td style='background:white;'>[[:Kategori:Yapay diller|yapay dil]]</td>")
else
table.insert(ret, "<td style='background:white;'>" .. makeCategoryLink(fam, "fam") .. "</td>")
end
table.insert(ret, "\n</tr>\n<tr>\n<th>Soyu</th>\n")
local ancestors, ancestorChain = lang:getirSoylar(), lang:getirSoyZinciri()
if ancestors[2] then
local ancestorList = {}
for i, anc in ipairs(ancestors) do
ancestorList[i] = "<li>" .. makeCategoryLink(anc) .. "</li>"
end
table.insert(ret, "<td style='background:white;'><ul>\n" .. table.concat(ancestorList, "\n") .. "</ul></td>\n")
elseif ancestorChain[1] then
table.insert(ret, "<td style='background:white;'><ul>\n")
local chain = {}
for i, anc in ipairs(ancestorChain) do
chain[i] = "<li>" .. makeCategoryLink(anc) .. "</li>"
end
table.insert(ret, table.concat(chain, "\n<ul>\n"))
for _, _ in ipairs(chain) do
table.insert(ret, "</ul>")
end
table.insert(ret, "</td>\n")
else
table.insert(ret, "<td style='background:white;'>bilinmiyor</td>\n")
end
table.insert(ret, "</tr>\n")
local scripts = lang:getirAlfabeler()
if scripts[1] then
local script_text = {}
for _, sc in ipairs(scripts) do
local text = {}
local code = sc:getirKod()
if code ~= "Hira" then
if code == "musical" or code == "Zmth" or code == "Zsym" or code == "Ruminumerals" then
else
table.insert(text, "<li>" .. makeCategoryLink(sc))
end
end
if code == "Jpan" then
local m_scripts = require("Modül:alfabeler")
local Hani = m_scripts.getirKodaGore("Hani")
local Hira = m_scripts.getirKodaGore("Hira")
local Kana = m_scripts.getirKodaGore("Kana")
table.insert(text, "<ul>")
table.insert(text, "<li>" .. makeCategoryLink(Hani) .. "</li>")
table.insert(text, "<li>" .. makeCategoryLink(Hira) .. "</li>")
table.insert(text, "<li>" .. makeCategoryLink(Kana) .. "</li>")
table.insert(text, "</ul>")
elseif code == "Kore" then
local m_scripts = require("Modül:alfabeler")
local Hang = m_scripts.getirKodaGore("Hang")
local Hani = m_scripts.getirKodaGore("Hani")
table.insert(text, "<ul>")
table.insert(text, "<li>" .. makeCategoryLink(Hang) .. "</li>")
table.insert(text, "<li>" .. makeCategoryLink(Hani) .. "</li>")
table.insert(text, "</ul>")
end
table.insert(text, "</li>")
table.insert(script_text, table.concat(text, "\n"))
end
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Alfabeler|Alfabeler]]</th>\n<td style='background:white;'><ul>\n" .. table.concat(script_text, "\n") .. "</ul></td>\n</tr>\n")
else
table.insert(ret, "<tr>\n<th>[[Vikisözlük:Alfabeler|Alfabeler]]</th>\n<td style='background:white;'>belirtilmemiş</td>\n</tr>\n")
end
if lang:varmiCeviri() then
local translit_module = lang._rawData.ceviri_modulu
local translit_module_info = {}
table.insert(translit_module_info,
("[[Modül:%s]]"):format(translit_module))
if translit_module == "alfabeçeviri-yönlendirme" then
local data = mw.loadData("Modül:alfabeçeviri-yönlendirme/veri")[lang:getirKod()]
if data then
table.insert(translit_module_info, ":")
local redirects_to = {}
local m_scripts = require "Modül:alfabeler"
for script, data in require "Modül:table".sortedPairs(data) do
-- Skip boolean fields like "debug_mode" and "noError".
if type(data) == "table" then
table.insert(redirects_to,
("\n* <code>%s</code>: %s"):format(
script,
data.module and ("[[Modül:%s]]"):format(data.module)
or "(yok)"))
end
end
table.insert(translit_module_info, table.concat(redirects_to))
end
end
table.insert(ret, [=[
<tr>
<th>[[Vikisözlük:Alfabe çevirisi ve romanizasyon|Alfabe çevirisi<br>modülü]]</th>
<td style='background:white;'>]=] .. table.concat(translit_module_info) .. [=[</td>
</tr>
]=])
end
local wikidataItem = lang:getirVikiveriItemi()
if wikidataItem and mw.wikibase then
local URL = mw.wikibase.getEntityUrl(wikidataItem)
local link
if URL then
link = '[' .. URL .. ' ' .. wikidataItem .. ']'
else
link = '<span class="error">Geçersiz Vikiveri ögesi: <code>' .. wikidataItem .. '</code></span>'
end
table.insert(ret, "<tr><th>Vikiveri</th><td style='background:white;'>" .. link .. "</td></tr>")
end
table.insert(ret, "</table></div>")
local ok, tree_of_descendants = pcall(
require("Modül:aile ağacı").print_children,
lang:getirKod(), {
protolanguage_under_family = true,
must_have_descendants = true,
})
if ok then
if tree_of_descendants then
table.insert(ret, "<div style='clear:left;'></div>")
table.insert(ret, '<div class="NavFrame main-box" style="display:inline-block;padding:0;width:auto !important;">')
table.insert(ret, '<div class="NavHead" style="background: #f8f9fa; padding: 10px;"><span style="padding-right: 20px;">Aile ağacı</span></div>')
table.insert(ret, '<div class="NavContent" style="text-align: left; padding: 10px;">')
table.insert(ret, tree_of_descendants)
table.insert(ret, '</div></div>')
end
end
return table.concat(ret)
end
function alt(lang)
local tablo = {}
local can = lang:getirAsilAd()
local ekliDil = dilDuzenle(can)
table.insert(tablo, require("Modül:kategori ağacı/konu").yaziSoz(can, require("Modül:temalar").getirAsilAdaGore("maddeler"), ekliDil))
if mw.title.new("Kategori:Kullanıcı " .. lang:getirKod()).exists then
table.insert(tablo, "<ul><li> [[:Kategori:Kullanıcı " .. lang:getirKod() .. [=[]]: Akıcı bir seviyede ]=] .. can .. [=[ konuşabilen Vikisözlük kullanıcıları.</li></ul>]=])
end
return "\n\n"..table.concat(tablo, "\n")
end
function kategoriler(lang, tum)
if lang:getirKod() == "mul" then
table.insert(tum.kat, "[[Kategori:Tüm diller| ]]")
else
table.insert(tum.kat, "[[Kategori:Tüm diller]]")
end
local fam = lang:getirAile()
local famCode = fam and fam:getirKod()
if not fam then
table.insert(tum.kat, "[[Kategori:Sınıflandırılmamış diller]]")
elseif famCode == "art" then
if lang:getirTip() == "appendix-constructed" then
table.insert(tum.kat, "[[Kategori:Ek alan adında kullanılan yapay diller]]")
else
table.insert(tum.kat, "[[Kategori:Yapay diller]]")
end
for _, anc in ipairs(lang:getirSoylar()) do
table.insert(tum.kat, "[[Kategori:" .. anc:getirAsilAd() .. " tabanlı yapay diller]]")
end
else
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(fam:getirKategoriAdi()) .. "]]")
if lang:getirTip() == "reconstructed" then
table.insert(tum.kat, "[[Kategori:Proto diller|" .. mw.ustring.sub( lang:getirKategoriAdi(), 5 ) .. "]]")
end
if famCode == "crp" then
for _, anc in ipairs(lang:getirSoylar()) do
table.insert(tum.kat, "[[Kategori:" .. anc:getirAsilAd() .. " tabanlı kreyol veya pidgin dilleri]]")
end
end
end
for _, sc in ipairs(lang:getirAlfabeler()) do
local code = sc:getirKod()
if code == "musical" or code == "Zmth" or code == "Zsym" or code == "Ruminumerals" then
else
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(sc:getirKategoriAdi() .. " diller" .. (code== "None" and "" or "i")) .. "]]")
end
if sc:getirKod() == "Jpan" then
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(require("Modül:alfabeler").getirKodaGore("Hani"):getirKategoriAdi() .. " dilleri") .. "]]")
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(require("Modül:alfabeler").getirKodaGore("Hira"):getirKategoriAdi() .. " dilleri") .. "]]")
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(require("Modül:alfabeler").getirKodaGore("Kana"):getirKategoriAdi() .. " dilleri") .. "]]")
elseif sc:getirKod() == "Kore" then
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(require("Modül:alfabeler").getirKodaGore("Hang"):getirKategoriAdi() .. " dilleri") .. "]]")
table.insert(tum.kat, "[[Kategori:" .. mw.getContentLanguage():ucfirst(require("Modül:alfabeler").getirKodaGore("Hani"):getirKategoriAdi() .. " dilleri") .. "]]")
end
end
end
function p.kategoriAgaci(tum)
local lang = require("Modül:diller").getirKodaGore(tum.par['dil'])
local vikipedi = tum.par['vikipedi']
local kardes = tum.par['kardeşproje']
local girdi = tum.par['girdiadı']
if lang then
ret = ""
if lang:getirKod() == "und" then
ret =
"Bu kategori '''" .. lang:getirKategoriAdi() .. "''' sözcüklerin ana kategorisidir, Vikisözlük'de '''" .. lang:getirKod() .. "''' [[Vikisözlük:Diller|kodu]] ile bulunmaktadır. " ..
"Bu dil henüz akademisyenler tarafından anlamları çözülememiş sözcükleri içerir."
end
local canonicalName = lang:getirAsilAd()
ret = ret .. "Bu kategori '''" .. lang:getirKategoriAdi() .. "''' sözcüklerin ana kategorisidir.\n\n" .. canonicalName .. " hakkında bilgi:\n\n" .. bilgiKutusu(lang)
if lang:getirTip() == "reconstructed" then
ret = ret .. "\n\n" ..
canonicalName .. " bir yapay dildir. Bu dilin sözcükleri ve kökenleri direkt olarak hiçbir yazılı eserde geçmemektedir, ama ''karşılaştırmalı yöntem'' kullanılarak geliştirilmiştir, " ..
"ki bu yöntem diller arasındaki tesadüf veya sözcük alma ile açıklanamayan düzenli benzerlikleri bulur ve bu benzerliklerden yola çıkarak antik formları tahmin eder.\n\n" ..
"Vikisözlük'deki [[Vikisözlük:Kabul edilme kriterleri|kabul edilme kriterleri]]ne göre, " .. canonicalName ..
" altındaki kategoriler ana madde alanında '''eklenmemeli''', ama YeniKurum: alan adında eklenebilir."
elseif lang:getirTip() == "appendix-constructed" then
ret = ret .. "\n\n" ..
canonicalName .. " nadir kullanılan bir yapay dildir. " ..
"Vikisözlük'deki [[Vikisözlük:Kabul edilme kriterleri|kabul edilme kriterleri]]ne göre, " .. canonicalName ..
" altındaki kategoriler ana madde alanında '''eklenmemeli''', ama Ek: alan adında eklenebilir." ..
" Bu dildeki bütün sözcükler [[Ek:" .. canonicalName .. "]] sayfasında bulunabilir."
end
local about = mw.title.new("Vikisözlük:" .. canonicalName .. " içerik politikası")
if about.exists then
ret = ret .. "\n\n" ..
"Lütfen " .. lang:getirKategoriAdi() .. " girdileri oluşturmadan önce '''[[Vikisözlük:" .. canonicalName .. " içerik politikası]]''' sayfasından bu dil ile ilgili özel durumları ve diğer bilgileri öğrenin."
end
ret = ret .. alt(lang)
table.insert(tum.tab, bagKutusu(lang, vikipedi, kardes, girdi))
kategoriler(lang, tum)
else
error("Girdiğiniz " .. tum.par['dil'] .. " isimli dil adı geçerli bir dil değil")
end
table.insert(tum.gor, ret)
end
return p