local p = {}
local dilDuzenle = require("Modül:tr-araçlar").dilDuzenle
local diller = require('Modül:diller')
function makeCategoryLink(object, tip)
return "]"
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 then
wiktionarylinks = {}
for _, wikimedialang in ipairs(wikimediaLanguages) do
table.insert(wiktionarylinks,
(wikimedialang:getirAsilAd() ~= canonicalName and "(''" .. wikimedialang:getirAsilAd() .. "'') " or "") ..
"''']'''")
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;" | ]
|| ''Vikisözlük'ün ]=], categoryName, =], (wikimediaLanguages and "ları" or "u"), [=[''
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | ]=], wiktionarylinks, [=[
|-
| style="vertical-align: middle; height: 35px" | ]
|| '']=], categoryName, [=[ hakkındaki Vikipedi maddesi''
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | ]=], (wikipediaArticle == "-" and "''Yok.''" or "''']'''"), [=[
|-
| style="vertical-align: middle; height: 35px" | ]
|| ''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 "''']'''"), [=[
|-
| style="vertical-align: middle; height: 35px" | ]
|| ]=], categoryName, [=[ açıklamaları
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | '''=], canonicalName, ]'''
|-
| style="vertical-align: middle; height: 35px" | ]
|| ]=], categoryName, [=[ dizini
|-
| colspan="2" style="padding-left: 10px; border-bottom: 1px solid lightgray;" | '''=], canonicalName, ]'''
|-
| style="vertical-align: middle; height: 35px" | ]
|| ]=], 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\"></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>]</th><td style='background:white;'><code>" .. lang:getirKod() .. "</code></td>\n</tr>\n")
table.insert(ret, "<tr>\n<th>]</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;'>]</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 then
local ancestorList = {}
for i, anc in ipairs(ancestors) do
ancestorList = "<li>" .. makeCategoryLink(anc) .. "</li>"
end
table.insert(ret, "<td style='background:white;'><ul>\n" .. table.concat(ancestorList, "\n") .. "</ul></td>\n")
elseif ancestorChain then
table.insert(ret, "<td style='background:white;'><ul>\n")
local chain = {}
for i, anc in ipairs(ancestorChain) do
chain = "<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 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>]</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>]</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,
("]"):format(translit_module))
if translit_module == "alfabeçeviri-yönlendirme" then
local data = mw.loadData("Modül:alfabeçeviri-yönlendirme/veri")
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 ("]"):format(data.module)
or "(yok)"))
end
end
table.insert(translit_module_info, table.concat(redirects_to))
end
end
table.insert(ret, [=[
<tr>
<th>]</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 = ''
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> ]: Akıcı bir seviyede ]=] .. can .. =])
end
return "\n\n"..table.concat(tablo, "\n")
end
function kategoriler(lang, tum)
if lang:getirKod() == "mul" then
table.insert(tum.kat, "]")
else
table.insert(tum.kat, "]")
end
local fam = lang:getirAile()
local famCode = fam and fam:getirKod()
if not fam then
table.insert(tum.kat, "]")
elseif famCode == "art" then
if lang:getirTip() == "appendix-constructed" then
table.insert(tum.kat, "]")
else
table.insert(tum.kat, "]")
end
for _, anc in ipairs(lang:getirSoylar()) do
table.insert(tum.kat, "]")
end
else
table.insert(tum.kat, "]")
if lang:getirTip() == "reconstructed" then
table.insert(tum.kat, "]")
end
if famCode == "crp" then
for _, anc in ipairs(lang:getirSoylar()) do
table.insert(tum.kat, "]")
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, "]")
end
if sc:getirKod() == "Jpan" then
table.insert(tum.kat, "]")
table.insert(tum.kat, "]")
table.insert(tum.kat, "]")
elseif sc:getirKod() == "Kore" then
table.insert(tum.kat, "]")
table.insert(tum.kat, "]")
end
end
end
function p.kategoriAgaci(tum)
local lang = require("Modül:diller").getirKodaGore(tum.par)
local vikipedi = tum.par
local kardes = tum.par
local girdi = tum.par
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() .. "''' ] 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 ]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 ]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 ] 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 ''']''' 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 .. " isimli dil adı geçerli bir dil değil")
end
table.insert(tum.gor, ret)
end
return p