Modül:alfabeler

Merhaba, buraya Modül:alfabeler kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:alfabeler kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:alfabeler kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:alfabeler kelimesi hakkında bilmeniz gereken her şey burada. Modül:alfabeler kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
Modül belgelemesi


local cikart = {}
local Alfabe = {}

function Alfabe:getirKod()
	return self._kod
end

function Alfabe:getirAsilAd()
	return self._rawData.asilAd
end

function Alfabe:getirDigerAdlari(sadeceDigerAdlari)
	return require("Modül:dil-benzeri").getirDigerAdlari(self, sadeceDigerAdlari)
end

function Alfabe:getirDigerleri()
	return self._rawData.digerleri or {}
end

function Alfabe:getirCesitleri(flatten)
	return require("Modül:dil-benzeri").getirCesitleri(self, flatten)
end

function Alfabe:getirEbeveyn()
	return self._rawData.ebeveyn and self._rawData.ebeveyn
end

function Alfabe:getirEbeveynler()
	return {"tüm alfabeler"}
end

function Alfabe:getirSistem()
	if not self._sistemNesneleri then
		local m_sistemler = require("Modül:yazı sistemleri")
		self._sistemNesneleri = {}
		
		for _, sys in ipairs(self._rawData.sistemler or {}) do
			table.insert(self._sistemNesneleri, m_sistemler.getirKodaGore(sys))
		end
	end
	
	return self._sistemNesneleri
end

--function Alfabe:getirTumAdlar()
--	return self._rawData.adlar
--end


function Alfabe:getirTip()
	return "alfabe"
end


function Alfabe:getirKategoriAdi()
	local ad = self._rawData.asilAd
	
	-- If the name already has "code" or "semaphore" in it, don't add it.
	-- No names contain "script".
	if ad:find("ode$") or ad:find("emaphore$") or ad:find("lfabesi") then
		return ad
	else
		return ad .. " alfabesi"
	end
end


function Alfabe:getirVikipediMaddesi()
	return self._rawData.vikipedi_maddesi or self:getirKategoriAdi()
end


function Alfabe:getirKarakterler()
	if self._rawData.karakterler then
		return self._rawData.karakterler
	else
		return nil
	end
end


function Alfabe:sayKarakterler(yazi)
	if not self._rawData.karakterler then
		return 0
	else
		local _, num = mw.ustring.gsub(yazi, "", "")
		return num
	end
end

function Alfabe:getirYon()
	local yon = self._rawData.yon
	if not yon then
		return nil
	else
		return yon
	end
end


function Alfabe:getRawData()
	return self._rawData
end


function Alfabe:toJSON()
	local ret = {
		asilAd = self:getirAsilAd(),
		kategoriAdi = self:getirKategoriAdi(),
		kod = self._kod,
		digerAdlari = self:getirDigerAdlari(),
		tip = self:getirTip(),
		}
	
	return require("Modül:JSON").toJSON(ret)
end


Alfabe.__index = Alfabe


function cikart.yapNesne(kod, veri)
	return veri and setmetatable({ _rawData = veri, _kod = kod }, Alfabe) or nil
end


function cikart.getirKodaGore(kod)
	if kod == "IPAchar" then
		--require("Modül:debug").track("IPAchar")
	end
	return cikart.yapNesne(kod, mw.loadData("Modül:alfabeler/veri"))
end

function cikart.getirAsilAdaGore(ad)
	local kod = mw.loadData("Modül:alfabeler/ada göre")
	
	if not kod then
		return nil
	end
	
	return cikart.yapNesne(kod, mw.loadData("Modül:alfabeler/veri"))
end

-- Find the best script to use, based on the characters of a string.
function cikart.bulEnIyiAlfabe(yazi, dil)
	if not yazi or not dil or not dil.getirAlfabeler then
		return cikart.getirKodaGore("None")
	end
	
	local alfabeler = dil:getirAlfabeler()
	
	if not alfabeler then
		return alfabeler
	end
	
	--[=[
		Remove any HTML entities; catfix function in ]
		adds tagging to a no-break space ( ), which contains Latin characters;
		hence Latin was returned as the script if "Latn" is one of the language's scripts.
	]=]
	yazi = string.gsub(yazi, "&+;", "")
	
	-- Try to match every script against the text,
	-- and return the one with the most matching characters.
	local eniyisay = 0
	local eniyialfabe = nil
	
	-- Get length of text minus any spacing or punctuation characters.
	-- Counting instances of UTF-8 character pattern is faster than mw.ustring.len.
	local _, length = string.gsub(mw.ustring.gsub(yazi, "+", ""), "*", "")
	
	if length == 0 then
		return cikart.getirKodaGore("None")
	end
	
	for i, alfabe in ipairs(alfabeler) do
		local say = alfabe:sayKarakterler(yazi)
		
		if say >= length then
			return alfabe
		end
		
		if say > eniyisay then
			eniyisay = say
			eniyialfabe = alfabe
		end
	end
	
	if eniyialfabe then
		return eniyialfabe
	end
	
	-- No matching script was found. Return "None".
	return cikart.getirKodaGore("None")
end

function cikart.kodaDonustur(frame)
	alfabe = frame.args
	if cikart.getirAsilAdaGore(alfabe) then
		return cikart.getirAsilAdaGore(alfabe):getirKod()
	elseif cikart.getirKodaGore(alfabe) then
		return cikart.getirKodaGore(alfabe):getirAsilAd()
	end
end

function cikart.alfbul(frame)
	local args = frame:getParent().args
	local dil = require("Modül:diller").getirKodaGore(args)
	local yazi = args
	return cikart.bulEnIyiAlfabe(yazi, dil):getirAsilAd()
end

return cikart