Modul:wikimedia languages
Tillarni topish va qabul
tahrirlashModuli tillarni topish uchun ishlatiladi vazifalari bir qator eksport qilmoqda.
getByCode
tahrirlashgetByCode(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
tahrirlashQabul 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 /French
|
fr /French
|
fr /French
|
fr /French
|
Code used by both Wikimedia and Wiktionary. |
bs
|
nil
|
(error) | bs /Bosnian
|
bs /Bosnian
|
Code used only by Wikimedia, not Wiktionary. |
sh
|
sh /Serbo-Croatian
|
sh /Serbo-Croatianbs /Bosnianhr /Croatiansr /Serbian
|
sh /Serbo-Croatian
|
sh /Serbo-Croatian
|
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 /Chinese
|
nil
|
zh /Chinese
|
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
tahrirlashA 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
--[==[Given a list of types as strings, returns true if the Wikimedia language has all of them. Possible types are explained in [[Module:wikimedia languages/data]].]==]
function WikimediaLanguage:hasType(...)
if not self._type then
self._type = {["Wikimedia language"] = true}
if self._rawData.type then
for _, type in ipairs(mw.text.split(self._rawData.type, "%s*,%s*")) do
self._type[type] = true
end
end
end
for _, type in ipairs{...} do
if not self._type[type] then
return false
end
end
return true
end
function WikimediaLanguage:getWiktionaryLanguage()
if not self._wiktionaryLanguageObject then
self._wiktionaryLanguageObject = require("Module:tili").getByCode(self._rawData.wiktionary_code, nil, "allow etym")
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 lang = require("Module:tili").getByCode(code, nil, "allow etym")
if not lang then
return nil
end
rawData = {canonicalName = lang:getCanonicalName(), wiktionary_code = code}
elseif not rawData.canonicalName then
rawData = {
canonicalName = require("Module:tili").getByCode(rawData.wiktionary_code, nil, "allow etym"):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 lang = require("Module:tili").getByCode(code, nil, "allow etym")
if not lang then
return nil
end
return lang:getWikimediaLanguages()[1]
end
return export