İçeriğe atla

Modül:vikimedya dilleri

Vikisözlük sitesinden
Modül belgelemesi [Oluştur]


local cikart = {}

local VikimedyaDili = {}

function VikimedyaDili:getirKod()
	return self._code
end

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

--function VikimedyaDili:getAllNames()
--	return self._rawData.names
--end

function VikimedyaDili:getirTip()
	return "Wikimedia"
end

function VikimedyaDili:getirVikisozlukDili()
	if not self._vikisozlukDilNesnesi then
		self._vikisozlukDilNesnesi = require("Modül:diller").getirKodaGore(self._rawData.vikisozluk_kodu)
	end
	
	return self._vikisozlukDilNesnesi
end

-- Do NOT use this method!
-- All uses should be pre-approved on the talk page!
function VikimedyaDili:getRawData()
	return self._rawData
end

VikimedyaDili.__index = VikimedyaDili


function cikart.getirKodaGore(code)
	-- Only accept codes the software recognises
	if not mw.language.isKnownLanguageTag(code) then
		return nil
	end
	
	local rawData = mw.loadData("Modül:vikimedya dilleri/veri")[code]
	
	-- If there is no specific Wikimedia code, then "borrow" the information
	-- from the general Wiktionary language code
	if not rawData then
		local lang = require("Modül:diller").getirKodaGore(code)
		
		if not lang then
			return nil
		end
		
		rawData = {asilAd = lang:getirAsilAd(), vikisozluk_kodu = code}
	elseif not rawData.asilAd then
		rawData = {asilAd = require("Modül:diller").getirKodaGore(rawData.vikisozluk_kodu):getirAsilAd(), vikisozluk_kodu = rawData.vikisozluk_kodu}
	end
	
	return setmetatable({ _rawData = rawData, _code = code }, VikimedyaDili)
end

function cikart.getirKodaGoreGeriCekilmeyle(code)
	local object = cikart.getirKodaGore(code)
	
	if object then
		return object
	end
	
	local lang = require("Modül:diller").getirKodaGore(code)
	
	if not lang then
		return nil
	end
	
	return lang:getirVikimedyaDilleri()[1]
end

return cikart