Modül:Ototaksonkutu/şablon arayüzü

Modül belgelemesi[gör] [değiştir] [geçmiş] [temizle]
Otomatik taksonkutu sistemi belgelemesi

Şablonlar

Modüller

Bu modül, Modül:Ototaksonkutu'da bulunan fonksiyonları kullanarak {{otomatik taksonkutu}}'yu oluşturmaya yarar. Yaptığı asıl işlem, şablona girilen parametreleri tanıyıp, Ototaksonkutu modülündeki fonksiyonlarda bu parametreleri işletip, sonrasında da bilgi kutusu oluşturmaktır.

Bu parametreleri işlerken Modül:Ototaksonkutu'dan farklı olarak yaptığı şey ise, alt cins ve altındaki taksonomik basamakları tanımaktır. Şu anda tanıdığı ekstra basamaklar: tür, alt tür, varyete basamaklarıdır. Ayrıca virüsler için mutasyon (İngilizcestrain) basamağıdır.

Bilgi kutusunun biyolojik sınıflandırma başlığı altında bu ekstra basamakları tanıyarak eklemelerini yapar. Ayrıca Modül:Jeolojik aralık ve Modül:Korunma durumu modüllerini de kullanır.

Jeolojik aralık modülü üzerinden, eğer belirtildiyse mevcut taksonun yaşam aralığını gösteren tabloyu oluşturur. Korunma durumu modülü üzerinden ise eğer belirtildiyse mevcut taksonun korunma durumunu gösterir.

require('Modül:Küresel değil')
local ItalikTakson = require('Modül:Taksonİtalik')
local Ototaksonkutu = require('Modül:Ototaksonkutu')
local ItalikBaslik = require('Modül:Eğik sayfa adı')
local p = {}

-- tükenmiş simgesi
local hancer = '<span style="font-style:normal;font-weight:normal;" alt="Tükenmiş">†</span>'

-- tür, alt tür, varyete ve mutasyon sıraları için tabloda satır oluşturan fonksiyon
local function tabloSatiri(args, sira, renk)
	local son = {}
	
	-- burada gerekli tüm parametreleri alalım
	local t1, t2, t3 = args["takson"], args["tür"], sira == "alt_tür" and args["alt_tür"] or (args["varyete"] or args["form"] or "")
	-- arasında "_" olan ifadeleri " " ile değiştir
	sira = mw.ustring.sub(mw.ustring.gsub(sira, "%_", " "), 1, -1)
	
	-- sol taraftaki hücrede daima sıra adı görünecek
	table.insert(son, "\n|-\n|"..mw.getContentLanguage():ucfirst((mw.ustring.find(t2, "×") and "melez " or "")..sira)..":\n|")
	-- bu değer, tür ve altında kullanılacak olan ilk sözcüğün baş harfidir
	local bir = t1 and mw.ustring.sub(t1, 1, 1) .. ". "
	-- bu değer, alt tür ve altında kullanılacak olan ikinci sözcüğün baş harfidir
	local iki = t2 and mw.ustring.sub(t2, 1, 1) .. ". "
	-- bu değer, son sözcükten önce bitkilerde gelecek olan ifadeleri belirler
	local kis = renk == "rgb(180,250,180)" and (sira == "varyete" and "''var. ''" or (sira == "alt tür" and "''subsp. ''" or "''f. ''")) or ""
	
	-- burada taksonun görünecek olan adını oluşturuyoruz;
	local takson = sira == "tür" and 
		(args["virüs"] == "evet" and "" or bir) -- virüslerde ilk sözcüğün baş harfi olmaz
		.. t2 or -- tür ise sadece ikinci sözcüğe ihtiyacımız var
		(sira == "mutasyon" and args["mutasyon"] -- mutasyon ise direk mutasyon adı görünür
			or bir .. iki .. kis .. t3) -- burası da alt tür ve varyetelerin yazımı, 3 sözcüklü
		
	-- eğer tür veya alt tür için özel bağlantı değeri belirtildiyse
	local bag = sira == "tür" and args["tür_bağ"] or (sira == "alt tür" and args["alt_tür_bağ"])
	-- belirtilmediyse de normal Latince adına bağlantı ver
	local baglanti = bag or (sira == "tür" and (args["virüs"] == "evet" and "" or t1 .." ").. t2 or (sira == "mutasyon" and t1 or t1.." "..t2.." "..kis .. t3))
	
	-- eğer taksonun üst basamağında tür mevcut ise türe bağlantı vermeliyiz, kalın göstermemeliyiz
	local turK = sira == "tür" and (args["mutasyon"] or args["alt_tür"] or args["varyete"] or args["kültivar"] or args["form"])
	-- eğer taksonun üst basamağında alt tür mevcut ise türe bağlantı vermeliyiz, kalın göstermemeliyiz
	local altturK = sira == "alt tür" and (args["varyete"] or args["form"])
	-- eğer taksonun üst basamağında varyete mevcut ise türe bağlantı vermeliyiz, kalın göstermemeliyiz
	local varyeteK = sira == "varyete" and (args["form"])
	-- üstteki üçlünün sebebi de, her zaman en alt kademe kalın, üstündekiler bağlantı şeklinde olmalı
	
	if turK or altturK or varyeteK then table.insert(son, "''[[" .. baglanti .. "|")
	elseif args["mutasyon"] then table.insert(son, "'''")
	else table.insert(son, "'''''")
	end
	
	local tukenmis = ""
	if args["varyete"] and args["alt_tür"] and args["tür"] then
		tukenmis = ((args["tükenmiş"] and sira == "varyete") and hancer or "")
		tukenmis = ((args["tükenmiş_üst"] and sira == "alt tür") and hancer or tukenmis)
	elseif args["alt_tür"] and args["tür"] then
		tukenmis = ((args["tükenmiş"] and sira == "alt tür") and hancer or "")
		tukenmis = ((args["tükenmiş_üst"] and sira == "tür") and hancer or tukenmis)
	else
		tukenmis = (args["tükenmiş"] and hancer or "")
	end
	
	table.insert(son, tukenmis..takson)
	
	if turK or altturK or varyeteK then table.insert(son, "]]''")
	elseif args["mutasyon"] then table.insert(son, "'''")
	else table.insert(son, "'''''") end
	
	if sira == "tür" and args["varyete"] and args["alt_tür"] then
		if args["büst_sıralama"] then
			table.insert(son, "<br><small>"..args["büst_sıralama"].."</small>")
		end
	elseif sira == "tür" and (args["varyete"] or args["alt_tür"])
		or (sira == "alt tür" and args["varyete"]) then
		if args["üst_sıralama"] then
			table.insert(son, "<br><small>"..args["üst_sıralama"].."</small>")
		end
	end
	
	return table.concat(son)
end

-- =============================================================================
-- Şablon:Otomatik taksonkutu'nun çıktısını verir; şablon hakkındaki detaylar
-- için şablonun belgeleme sayfasına bakabilirsiniz.
-- =============================================================================

function p.otomatikTaksonkutu(frame)
	local args
	local kategoriler = {}
	if frame.args['doğrudan'] == 'evet' then args = frame.args
	else args = frame:getParent().args end
	
	--istisna
	if args["alt tür"] then args["alt_tür"] = args["alt tür"] end
	
	-- ---------------------------------------------------------------------
	-- işleme sokulması gereken parametreleri toplayalım;
	-- yine de birçoğu değişmeden aktarılıyor
	-- ---------------------------------------------------------------------
	local sayfaadi = args['sayfaadı'] or mw.title.getCurrentTitle().text
	local italikBaslik = args['italik_başlık'] or ''
	local ad = args['ad'] or mw.title.getCurrentTitle().text
	local fosilAralik = args['en_eski_fosil'] and
		require("Modül:Jeolojik aralık")._goster({args['en_eski_fosil'], args['en_genç_fosil'], en_erken=args['en_erken'], en_son=args['en_son'], ["kaynak"]=args["fosil_kaynak"], tip = "tam"}) or ''
	local takson = args['takson'] or sayfaadi or ''
	local altbolum = args['altbölüm'] or ''
	local altbolumKay = args['altbölüm_kaynak'] or ''
	local altbolumSira = args['altbölüm_sıra'] or ''
	local ikiliad = args['ikili_ad']
	local ikiliadSira = args['ikili_ad_sıra']
	local ucluad = args['üçlü_ad']
	local ucluadSira = args['üçlü_ad_sıra']
	local siralama = args['alt_sıralama'] or args['sıralama']

	-- ------------------------------------------------------
	-- taksonkutu parametrelerinin düzenlenmesi
	-- ------------------------------------------------------
	local asilSayfaadi = mw.ustring.gsub(sayfaadi, '%s+%b()$', '', 1)
	
	-- sayfa adının ve taksonkutu adının italik olup olmamasına karar ver;
	-- eğer italik_başlık girilmediyse, adlar takson ile eşleştiyse, taksonun sırasına göre karar ver
	local ok, taksonSira = Ototaksonkutu.getirTaksonBilgiOgesi(frame, takson, 'sıra') -- taksonSıra burada olmasa da ileride lazım olacak
	if args["kültivar"] then taksonSira = "kültivar"
	elseif args["form"] then taksonSira = "form"
	elseif args["varyete"] then taksonSira = "varyete"
	elseif args["alt_tür"] then taksonSira = "alt tür"
	elseif args["mutasyon"] then taksonSira = "mutasyon"
	elseif args["tür"] then taksonSira = "tür"
	end
	if italikBaslik == '' then
		if not (ok and taksonSira ~= '' and Ototaksonkutu.getirItalikTakson(taksonSira) == 'evet') then
			italikBaslik = 'hayır'
		end
	end
	
	if args["tür"] and args["tür"] ~= "" then
		args["tür"] = mw.ustring.gsub(args["tür"], "×", "''×''")
	end
	
	--   taksonun adından herhangi " (ANLAM AYRIMI)" veya "/AYIRICI" kısımları kaldır;
	--   eğer sayfanın adıyla taksonun adı aynı ise, italikleştirme uygulanabilir
	local asilTakson = mw.ustring.gsub(mw.ustring.gsub(takson, '%s+%b()$', '', 1), '/.*$', '', 1)
	if italikBaslik == '' and asilSayfaadi == asilTakson then
		italikBaslik = 'evet'
	end
	
	-- eğer gerekliyse sayfa adını italikleştir
	if italikBaslik == 'evet' and mw.title.getCurrentTitle().namespace == 0 then
		ItalikBaslik._main({})
	end
	
	-- eğer hala bir taksonkutu adı yoksa, gerekliyse italikleştirerek ekle.
	if ad == '' then
		ad = asilSayfaadi
	end
	if italikBaslik == 'evet' then
		ad = ItalikTakson.italicizeTaxonName(ad, false, false)
	end
	
	if args["otomatik"] == "hayır" then
		takson = "incertae sedis"
	end
	
	-- taksonun tükenmiş olup olmadığını sapta
	local ok2, taksonTukenmis = Ototaksonkutu.getirTaksonBilgiOgesi(frame, takson, 'tükenmiş')
	if ok2 and taksonTukenmis == "evet" then
		args["tükenmiş"] = "evet"
	end
	
	-- taksonkutu rengini belirle
	local renkPara = args['renk'] and args['renk'] or takson
	if mw.ustring.find(taksonSira, "^ikno") then renkPara = "ikno" end
	local colour = Ototaksonkutu.getirTaksonkutuRengi(frame, renkPara, kategoriler)

	-- girilmediyse eğer, altbölüm_sıra parametresini belirle
	if altbolum ~= '' and altbolumSira == '' and ok and taksonSira ~= '' then
		altbolumSira =  Ototaksonkutu.getirCogulSira(Ototaksonkutu.getirAltSira(taksonSira))
	end
	
	-- elle girilen sıraları hallet
	local boldFirst = ''
	
	-- tabloya girmeden son çıkışta bunları düzeltelim
	-- eğer varyete, alt_tür veya tür parametrelerinden biri veya hepsi varsa
	-- durumlara göre yazarları kaydırmamız gerekmekte
	local offset = (args["varyete"] and args["alt_tür"] and args["tür"]) and 3
			or (((args["varyete"] or args["alt_tür"]) and args["tür"]) and 2
			or (args["tür"] and 1 or 0))
	
	-- eğer takson bir virüs türü ise, tür adı ikili ad şeklinde olmayacak
	-- fakat virüs değil ise tür adını ikili ada çevir
	if args['virüs'] then else
		-- ya da alt tür mevcut ise tür adını değil de alt tür adını
		-- üçlü ada dönüştürmemiz gerekiyor
		if args["alt_tür"] or args["varyete"] or args["form"] then
			if ucluad then else
				ucluad = (args["tükenmiş"] and hancer or "")
					.."''" .. args["takson"] .. " " .. args["tür"] .. " "
					.. (args["form"] and "''f. ''" or 
							(args["varyete"] and "''var. ''" or
								(colour == "rgb(180,250,180)" and "''subsp. ''" or "")
							)
						)
					.. (args["form"] or args["varyete"] or args["alt_tür"]) .. "''"
			end
			if ucluadSira then else
				ucluadSira = siralama
			end
		elseif args["tür"] then
			if ikiliad then else
				local taksonYeni = args["takson"]
				taksonYeni = string.gsub(taksonYeni, " %(bitki%)", "")
				taksonYeni = string.gsub(taksonYeni, " %(hayvan%)", "")
				taksonYeni = string.gsub(taksonYeni, " %(böcek%)", "")
				
				ikiliad = (args["tükenmiş"] and hancer or "")
					.."''" .. taksonYeni .. " " .. args["tür"] .. "''"
			end
			if ikiliadSira then else
				ikiliadSira = siralama
			end
		end
	end
	
	-- anne ya da baba parametrelerini eşitlememiz gerekli
	if args["anne"] and args["baba"] then
		args["tür1"], args["tür2"] = args["anne"], args["baba"]
		args["bağ1"], args["bağ2"] = args["anne_bağ"], args["baba_bağ"]
	end
	
	-- parafiletik gruplarda en alttaki takson her zaman bağlantı olarak görünmeli
	if args["içerdiği_gruplar"] or args["içermediği_gruplar"] or
	   args["tür"] or args["tür1"] or args["tür2"] or args["kültivar"] then
		boldFirst = "link"
	end
	
	-- çeşitlilik kullanan taksonkutulara izleme kategorisi ekle
	if args["çeşitlilik"] then
		table.insert(kategoriler, "[[Kategori:Çeşitlilik kullanan taksonkutular]]")
	end
	
	-- buradaki kısım biyolojik sınıflandırmanın son satırını oluşturur
	local tabloSonSatir = ""
	-- tür ve aşağısındaki sıralar
	local turAlti = {"tür", "alt_tür", "mutasyon", "varyete", "form"}
	for _,i in ipairs(turAlti) do
		if args[i] then
			tabloSonSatir = tabloSonSatir .. tabloSatiri(args, i, colour)
		end
	end
	
	-- eğer melez bir türse
	if args["tür1"] and args["tür2"] then
		tabloSonSatir = tabloSonSatir ..
			"\n|<span style='white-space: nowrap;'>Melez tür:</span>\n|" .. "'''''"
			.. (args["bağ1"] and "[[" .. args["bağ1"] .. "|" or "")
			.. mw.ustring.sub(args["takson"], 1, 1) .. ". " .. args["tür1"] .. (args["bağ1"] and "]]"or "")
			.. "''" .. (args["anne"] and "♀" or "") .. " × ''"
			.. (args["bağ2"] and "[[" .. args["bağ2"] .. "|" or "")
			.. mw.ustring.sub(args["takson"], 1, 1) .. ". " .. args["tür2"] .. (args["bağ2"] and "]]"or "")
			.. "''" .. (args["baba"] and "♂" or "") .. "'''"
	end
	
	if args["kültivar"] then
		tabloSonSatir = tabloSonSatir ..
			"\n|-\n|Kültivar:\n|" .. "'" .. args["kültivar"] .. "'"
		if ikiliad then
			ucluad = ikiliad .. " '" .. args["kültivar"] .. "'"
			ucluadSira = ikiliadSira
			ikiliad = nil
			ikiliadSira = nil
		elseif taksonSira == "cins" then
			ikiliad = takson .. " '" .. args["kültivar"] .. "'"
			ikiliadSira = siralama
			siralama = nil
		end
	end
	
	-- mevcut sayfanın vikiveri ögesini bulalım
	-- almak istediğimiz veriler olabilir kutu için
	local ID = mw.wikibase.getEntityIdForCurrentPage()
	local oge = ID and mw.wikibase.getEntity(ID)
	
	local resim
	local altyazi
	
	if args['resim'] ~= '' then
		resim = args['resim']
	else
		if oge ~= nil then
			if oge.claims then
				local _res = oge.claims["P18"]
			
				if _res ~= nil then
					resim = _res[1].mainsnak.datavalue.value
					
					local qua = _res[1].qualifiers
					
					if qua ~= nil then
						local altyazi_qua = qua["P2096"]
					
						if altyazi_qua ~= nil then
							for k, v in pairs(altyazi_qua) do
								if v.datavalue.value["language"] == "tr" then
									altyazi = v.datavalue.value["text"]
								end
							end
						end
					end
				end
			end
		end
	end
	
	-- vikiveri'de bulunan aralık haritasını çek
	local vikiveriHarita = {}
	local har = oge and oge:formatPropertyValues("P181").value
	if har then
		for x in string.gmatch(har, "([^,]+)") do
			table.insert(vikiveriHarita, x)
		end
	end
	if vikiveriHarita[1] then
		table.insert(kategoriler, "[[Kategori:Vikiveri'de aralık haritası bulunan taksonkutular]]")
	end
	if vikiveriHarita[1] and
		((args["aralık_haritası"] and args["aralık_haritası"] ~= "")
		 or (args["harita"] and args["harita"] ~= "")
		 or (args["aralık_haritası2"] and args["aralık_haritası2"] ~= "")
		 or (args["aralık_haritası3"] and args["aralık_haritası3"] ~= "")
		 or (args["aralık_haritası4"] and args["aralık_haritası4"] ~= "")
		) then
		table.insert(kategoriler, "[[Kategori:Hem Vikiveri'de hem de Vikipedi'de aralık haritası bulunan taksonkutular]]")
		end

	if not oge then
		table.insert(kategoriler, "[[Kategori:Vikiveri ögesine bağlı olmayan taksonlar]]")
	else
		-- vikiveri'de takson için herhangi bir etiket girilmiş mi?
		local vikiveriEtiket = oge:getLabel("tr")
		if vikiveriEtiket then else
			table.insert(kategoriler, "[[Kategori:Vikiveri'de etiketi eksik olan taksonlar]]")
		end
		
		-- vikiveri'de takson için herhangi bir açıklama girilmiş mi?
		local vikiveriAciklama = oge:getDescription("tr")
		if vikiveriAciklama then else
			table.insert(kategoriler, "[[Kategori:Vikiveri'de açıklaması eksik olan taksonlar]]")
		end
	end

	-- ------------------------------------------------
	-- Burada bilgi kutusu şablonu oluşturuyoruz
	-- ------------------------------------------------
	local res = frame:expandTemplate{ title = 'Bilgi kutusu', args =
		{ ["gövdebiçimi"] = "font-size: 100%; width: 200px;", ["veribiçimi"] = "text-align: center;",
			["üst"] = ad .. (fosilAralik ~= "" and "<br/><div style='font-size: 80%;'>"..fosilAralik.."</div>" or ""),
			["üstbiçim"] = "font-size: 100%; background-color: " .. (colour) .. ";",
			resim = require("Modül:Bilgi kutusu resmi").InfoboxImage({args=
				{
					image= resim or '',
					size=args['resim_genişlik'] or '',
					sizedefault='frameless',
					upright=args['sağüst'] or '1',
					alt=args['resim_alt'] or '',
				}}),
			["altyazıbiçimi"] = "font-size: 88%;",
			["altyazı"] = args['resim_altyazı'] or args['resim_bilgi'] or altyazi,
			resim2 = require("Modül:Bilgi kutusu resmi").InfoboxImage({args=
				{
					image=args['resim2'] or '',
					size=args['resim2_genişlik'] or '',
					sizedefault='frameless',
					upright=args['resim2_sağüst'] or args['sağüst'] or '1',
					alt=args['resim2_alt'] or '',
				}}),
			["altyazı2"] = args['resim2_altyazı'] or args['resim2_bilgi'],
			["başlıkbiçimi"] = "background-color: "..(colour)..";",
			["başlık1"] = args["durum"] and "[[Korunma durumu]]",
			etiket2 = "",
			veri2 = require("Modül:Korunma durumu").durum({
					args["durum_sistemi"],
					args["durum"],
					args["durum_kaynak"],
					["tükenmiş"] = args["tükenme_tarihi"],
				}),
			etiket3 = "",
			veri3 = require("Modül:Korunma durumu").durum({
					args["durum2_sistemi"],
					args["durum2"],
					args["durum2_kaynak"],
					["tükenmiş"] = args["tükenme_tarihi"],
				}),
			["başlık4"] = args["otomatik"] == "hayır" and "" or ((args["virüs"] == "evet" and "[[Virüs sınıflandırması]]" or (renkPara == "ikno" and "[[İz fosili sınıflandırması]]" or "[[Biyolojik sınıflandırma]]")) .. " "
				.."<span class='plainlinks' style='font-size:smaller; float:right; padding-right:0.4em; margin-left:-4em;'>[[File:OOjs UI icon edit-ltr.svg|15px|link=Şablon:Taksonomi/"..takson.."|Bu sınıflandırmayı düzenle]]</span>"
				..(args["sınıflandırma_durumu"] and "<br/><span style='font-weight:normal'>("..args["sınıflandırma_durumu"]..")</span>" or "")),
			etiket5 = "",
			veri5 = args["otomatik"] == "hayır" and "" or ("{| style='width: 100%; display:table !important;font-size: 100%'\n"..Ototaksonkutu.taksonkutuListe(frame, {
				takson,
				["taks_üst_sayısı"] = args["taks_üst_sayısı"],
				["sıralama"] = siralama,
				["üst_sıralama"] = args["üst_sıralama"],
				["büst_sıralama"] = args["büst_sıralama"],
				["bbüst_sıralama"] = args["bbüst_sıralama"],
				["bbbüst_sıralama"] = args["bbbüst_sıralama"],
				["offset"] = offset,
				["seçili_kalın"] = boldFirst == "" and 'kalın' or boldFirst,
				["virüs"] = args["virüs"],
				["tür"] = args["tür"],
				["alt_tür"] = args["alt_tür"],
				["varyete"] = args["varyete"],
				["mutasyon"] = args["mutasyon"]
			})..tabloSonSatir.."\n|}"),
			["başlık6"] = args["içerdiği_gruplar"] and (args["içerdiği_gruplar_yazı"] or "İçerdiği gruplar"),
			etiket7 = "",
			["sırahücrebiçimi7"] = "text-align:left",
			veri7 = args["içerdiği_gruplar"],
			["başlık8"] = args["içermediği_gruplar"] and (args["içermediği_gruplar_yazı"] or "[[Kladistik]] açıdan içerdiği fakat geleneksel olarak içermediği taksonlar"),
			etiket9 = "",
			["sırahücrebiçimi9"] = "text-align:left",
			veri9 = args["içermediği_gruplar"],
			["başlık15"] = ikiliad and "[[İkili adlandırma]]",
			etiket16 = "",
			veri16 = ikiliad and "<b>"..(ikiliad or "")
				.."</b><div style='font-size: 85%;'>"..(ikiliadSira or "").."</div>",
			["başlık17"] = ucluad and "[[Üçlü adlandırma]]",
			etiket18 = "",
			veri18 = ucluad and "<b>"..(ucluad or "")
				.."</b><div style='font-size: 85%;'>"..(ucluadSira or "").."</div>",
			["başlık19"] = args["tip_cins"] and "[[Tip cins]]",
			etiket20 = "",
			veri20 = args["tip_cins"] and "<b>"..(args["tip_cins"] or "")
				.."</b><div style='font-size: 85%;'>"..(args["tip_cins_sıra"] or "").."</div>",
			["başlık21"] = args["tip_tür"] and "[[Tip tür]]",
			etiket22 = "",
			veri22 = args["tip_tür"] and "<b>"..(args["tip_tür"] or "")
				.."</b><div style='font-size: 85%;'>"..(args["tip_tür_sıra"] or "").."</div>",
			["başlık23"] = args["tip_örnek"] and "[[Tip örnek]]",
			etiket24 = "",
			veri24 = args["tip_örnek"] and "<b>"..(args["tip_örnek"] or "")
				.."</b><div style='font-size: 85%;'>"..(args["tip_örnek_sıra"] or "").."</div>",
			["başlık25"] = altbolum and altbolumSira .. " " .. altbolumKay,
			etiket26 = "",
			["sırahücrebiçimi26"] = "text-align:left",
			veri26 = altbolum,
			["başlık27"] = args["çeşitlilik"] and "[[Biyoçeşitlilik|Çeşitlilik]]" .. (args["çeşitlilik_kaynak"] or ""),
			etiket28 = "",
			veri28 = args["çeşitlilik_bağ"] and "[["..args["çeşitlilik_bağ"].."|"..args["çeşitlilik"].."]]" or args["çeşitlilik"],
			etiket29 = "",
			veri29 = require("Modül:Bilgi kutusu resmi").InfoboxImage({args=
				{
					image=args['aralık_haritası'] or args['harita'] or vikiveriHarita[1] or '',
					size=args['aralık_haritası_genişlik'] or '',
					sizedefault='frameless',
					upright=args['aralık_haritası_sağüst'] or args['sağüst'] or '1',
					alt=args['aralık_haritası_alt'] or '',
				}}),
			etiket30 = "",
			["sırabiçimi30"] = "font-size: 88%;",
			veri30 = args["aralık_haritası_altyazı"] or args["harita_bilgi"] or (vikiveriHarita[1] and "Dağılımı" or ""),
			etiket31 = "",
			veri31 = require("Modül:Bilgi kutusu resmi").InfoboxImage({args=
				{
					image=args['aralık_haritası2'] or vikiveriHarita[2] or '',
					size=args['aralık_haritası2_genişlik'] or '',
					sizedefault='frameless',
					upright=args['aralık_haritası2_sağüst'] or args['sağüst'] or '1',
					alt=args['aralık_haritası2_alt'] or '',
				}}),
			etiket32 = "",
			["sırabiçimi32"] = "font-size: 88%;",
			veri32 = args["aralık_haritası2_altyazı"],
			etiket33 = "",
			veri33 = require("Modül:Bilgi kutusu resmi").InfoboxImage({args=
				{
					image=args['aralık_haritası3'] or vikiveriHarita[3] or '',
					size=args['aralık_haritası3_genişlik'] or '',
					sizedefault='frameless',
					upright=args['aralık_haritası3_sağüst'] or args['sağüst'] or '1',
					alt=args['aralık_haritası3_alt'] or '',
				}}),
			etiket34 = "",
			["sırabiçimi34"] = "font-size: 88%;",
			veri34 = args["aralık_haritası3_altyazı"],
			etiket35 = "",
			veri35 = require("Modül:Bilgi kutusu resmi").InfoboxImage({args=
				{
					image=args['aralık_haritası4'] or vikiveriHarita[4] or '',
					size=args['aralık_haritası4_genişlik'] or '',
					sizedefault='frameless',
					upright=args['aralık_haritası4_sağüst'] or args['sağüst'] or '1',
					alt=args['aralık_haritası4_alt'] or '',
				}}),
			etiket36 = "",
			["sırabiçimi36"] = "font-size: 88%;",
			veri36 = args["aralık_haritası4_altyazı"],
			["başlık37"] = args["sinonimler"] and "[[Sinonim (taksonomi)|Sinonimler]] " .. (args["sinonimler_kaynak"] or ""),
			etiket38 = "",
			["sırahücrebiçimi38"] = "text-align:left",
			veri38 = args["sinonimler"],
		} }
	return res .. frame:expandTemplate{ title = 'Ana diğer', args = {table.concat(kategoriler)} }
	.. frame:expandTemplate{ title = 'Vikiveri görsel', args = {resim} }
	.. (args['resim2'] and frame:expandTemplate{ title = 'Vikiveri görsel', args = {args['resim2']} } or "")
end

return p