Modul:wikimedia languages

Vikilug‘atdan olingan

Tillarni topish va qabul[tahrirlash]

Moduli tillarni topish uchun ishlatiladi vazifalari bir qator eksport qilmoqda.

getByCode[tahrirlash]

getByCode(code)

Kimning kodi taqdim birini pas Vikipediya tilini topadi. U mavjud boʻlsa, u til vakili boʻlgan WikimediaLanguage obyekti qaytaradi. Aks holda, u nil qaytaradi.

Qiyoslash[tahrirlash]

Qabul tillarda turli yoʻllar oʻrtasidagi farqlar ayrim misollar yordamida, bu erda koʻrish mumkin.

Kode Module:tili
.getByCode
Module:tili
.getByCode():getWikimediaLanguages()
Module:wikimedia tili
.getByCode
Module:wikimedia tili
.getByCodeWithFallback
Eslatma
fr fr/Fransuzchada fr/Fransuzchada fr/Fransuzchada fr/Fransuzchada Code used by both Wikimedia and Wiktionary.
bs nil (error) bs/Bosnian bs/Bosnian Code used only by Wikimedia, not Wiktionary.
sh sh/Serb-xorvatchada sh/Serb-xorvatchada
bs/Bosnian
hr/Croatian
sr/Serbian
sh/Serb-xorvatchada sh/Serb-xorvatchada Code used by both Wikimedia and Wiktionary.
Module:wikimedia languages returns sh as that is a valid Wikimedia code.
:getWikimediaLanguages() maps the code to multiple possible Wikimedia codes.
cmn cmn/Mandarin zh/Xitoychada nil zh/Xitoychada Code is used only by Wiktionary, not Wikimedia.
The code is mapped by :getWikimediaLanguages() to the equivalent Wikimedia code zh.
wym wym/Vilamovian nil nil nil Code is used only by Wiktionary, not Wikimedia.
The code is not mapped onto another by :getWikimediaLanguages(), so nil is returned.

WikimediaLanguage objects[tahrirlash]

A WikimediaLanguage obʼekt ustida vazifalari biri qaytarilur. Bu Vikipediya tili Lua vakillik va u bilan bogʻliq boʻlgan maʼlumotdir. : Bu foydalanib, unga daʼvat mumkin usullari bir qator bor. Masalan:

local m_wmlanguages = require("Module:wikimedia languages")
local tili = m_wmlanguages.getByCode("bs")
local name = tili:getCanonicalName()
-- "name" will now be "Bosnian"

Language:getCode[tahrirlash]

:getCode()

Tilining til kodi qaytaradi. Misol: frantsuz uchun "fr".

Language:getCanonicalName[tahrirlash]

:getCanonicalName()

Tilning kanonik nomini qaytaradi. Bu Vikilugʻat bu tilni vakillik qilish uchun ishlatiladi nomidir. Misol: frantsuz uchun "French".

Language:getAllNames[tahrirlash]

:getAllNames()

Kanonik nomi, shu jumladan til bilan tanilgan barcha nomlari, bir stol qaytaradi. Nomlari baʼzan bir necha til bir xil nom bilan tanilgan, noyob boʻlishi kafolat boʻlmaydi. Misol: frantsuz uchun {"French", "Modern French"}.

Language:getType[tahrirlash]

:getType()

"Vikimediya" qaytaradi.

Language:getWiktionaryLanguage[tahrirlash]

:getWiktionaryLanguage()

Bu Wikimedia Language teng Vikilugʼat-ona tilini ifodalaydi: a Til obʼekt (Module:tili qarang) qaytaradi. Koʻp hollarda, bu original Vikimediya til sifatida bir xil kod va nomi boʻladi, lekin ulardan bir necha xil.

Til obʼektlari boʻyicha getWikimediaLanguages usul ham, bu faqat bir obʼekt qaytaradi: farqli oʻlaroq unutmang. Teglar va skript formatlash qoʻllash aniq ekanligini, shuning uchun bu amalga oshiriladi.

Language:getRawData[tahrirlash]

:getRawData()

Ushbu funktsiya yozuvlari yoki boshqa tarkib sahifalarida foydalanish uchun emas.

Til haqida maʼlumotlar bir tomchi qaytaradi. Bu BLOB formati hujjatsiz va ehtimol beqaror boʻladi; u bor moduli bilan "yaqin do'st" va hozirgi format oʻzgarishlar sifatida qoʻyiladi moduli oʻz birlik-test, kabi ishlar uchun moʻljallangan ekan.


local export = {}

local WikimediaLanguage = {}

function WikimediaLanguage:getCode()
	return self._code
end

function WikimediaLanguage:getCanonicalName()
	return self._rawData.canonicalName
end

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

function WikimediaLanguage:getType()
	return "Vikimediya"
end

function WikimediaLanguage:getWiktionaryLanguage()
	if not self._wiktionaryLanguageObject then
		self._wiktionaryLanguageObject = require("Module:tili").getByCode(self._rawData.wiktionary_code)
	end
	
	return self._wiktionaryLanguageObject
end

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

WikimediaLanguage.__index = WikimediaLanguage


function export.getByCode(code)
	-- Only accept codes the software recognises
	if not mw.language.isKnownLanguageTag(code) then
		return nil
	end
	
	local rawData = mw.loadData("Module:wikimedia languages/data")[code]
	
	-- If there is no specific Wikimedia code, then "borrow" the information
	-- from the general Wiktionary language code
	if not rawData then
		local tili = require("Module:tili").getByCode(code)
		
		if not tili then
			return nil
		end
		
		rawData = {canonicalName = tili:getCanonicalName(), wiktionary_code = code}
	elseif not rawData.canonicalName then
		rawData = {canonicalName = require("Module:tili").getByCode(rawData.wiktionary_code):getCanonicalName(), wiktionary_code = rawData.wiktionary_code}
	end
	
	return setmetatable({ _rawData = rawData, _code = code }, WikimediaLanguage)
end

function export.getByCodeWithFallback(code)
	local object = export.getByCode(code)
	
	if object then
		return object
	end
	
	local tili = require("Module:tili").getByCode(code)
	
	if not tili then
		return nil
	end
	
	return tili:getWikimediaLanguages()[1]
end

return export