Modul:scripts
Ushbu modul Vikilugʻat turli yozuv tizimlari va ular bilan bogʻliq maʼlumotlarni olish va boshqarish uchun ishlatiladi. Vikipediya qarang: Qoʻshimcha ma'lumot olish uchun Wiktionary:Scripts.
Axborot oʻzi moduli saqlanadi: Module:scripts/data / maʼlumotlarni. Skriptlari: Ushbu modul har qanday boshqa modul tomonidan toʻgʻridan-toʻgʻri foydalanish kerak emas, maʼlumotlar faqat moduli tomonidan taqdim vazifalari orqali boʻlishi kerak.
Skriptlari topish va qabul[tahrirlash]
Moduli skript topish uchun ishlatiladi vazifalari bir qator eksport qilmoqda.
getByCode[tahrirlash]
getByCode(code)
Kimning kodi taqdim birini pas skript topadi. U mavjud boʻlsa, u Script
ifodalovchi bir skript obyekti qaytaradi. Aks holda, u nil
qaytaradi.
findBestScript[tahrirlash]
findBestScript(text, lang)
Bu til skript orqali baʼzi matn va til obʼekt, bu vazifani tekrara berilgan va eng yaxshi matn pas skript topishga harakat qiladi. Bu buyruq fayli vakili boʻlgan Script
obyekti qaytaradi. No oʻyin barcha topilsa, u None
skript obyekti qaytaradi.
Skript obʼektlar[tahrirlash]
A Script
obʼekt ustida vazifalari biri qaytarilur. Bu skript bir Lua vakillik va u bilan bogʻliq boʻlgan maʼlumotdir. Sintaksisi :
Bu foydalanib, bu chaqirdi mumkin usullari, bir qator bor. Masalan:
local m_scripts = require("Module:scripts")
local sc = m_scripts.getByCode("Latn")
local name = sc:getCanonicalName()
-- "name" will now be "Latin"
Script:getCode[tahrirlash]
:getCode()
Tilning skript kodini qaytaradi. Misol: kirillcha uchun "Cyrl"
.
Script:getCanonicalName[tahrirlash]
:getCanonicalName()
Senariy kanonik nomini qaytaradi. Bu Vikilugʻat bu skript vakillik qilish uchun ishlatiladi nomidir. Misol: kirillcha uchun "Cyrillic"
.
Script:getAllNames[tahrirlash]
:getAllNames()
Kanonik nomi, shu jumladan, skript bilan tanilgan barcha nomlari, bir stol qaytaradi. Nomlari baʼzan bir necha skript shu nom bilan tanilgan, noyob boʻlishi kafolat boʻlmaydi. Misol: lotin yozuviga uchun {"Latin", "Roman"}
.
Script:countCharacters[tahrirlash]
:countCharacters(text)
Bu skript qismi boʻlgan matn belgilar sonini qaytaradi.
Eslatma: Siz bir xil skript butunlay topgan matni tayanib hech qachon kerak. Strings joylar, tinish va hatto wiki belgilarini yoki HTML teglar oʻz ichiga olishi mumkin. Ular lotin-skript belgilarni oʻz ichiga olgan boʻlib, HTML teglar, soni Nohaq boʻladi. Bas, u ularni oldini olish uchun eng yaxshi ekan.
Script:getCategoryName[tahrirlash]
:getCategoryName()
Bu skript asosiy kategoriya nomini qaytaradi. Misol: kimning turkum da kirillcha uchun "Cyrillic script"
,: Category:Kirill skript.
local export = {}
local U = mw.ustring.char
--[[
-- redirect_to: tracking conditions to redirect to (allows multiple languages
to use the same conditions)
-- path: added to Template:tracking; default is language code (or code under
tracking conditions are listed)
-- Template:tracking/Greek
-- Template:tracking/ang
-- code: added after path
-- Template:tracking/Greek/spacing-coronis
-- Template:tracking/ang/acute
-- chars: what to search for in the text; can be a table containing multiple
patterns
]]
export.allTrackingConditions = {
["ang"] = {
{ chars = U(0x301), code = "acute", decompose = true },
},
["grc"] = {
{ redirect_to = "Greek" },
path = "Ancient Greek",
{ chars = U(0x1FBD), code = "spacing-coronis" },
{ chars = U(0x1FBF), code = "spacing-smooth-breathing" },
{ chars = "[" .. U(0x1FBD) .. U(0x1FBF) .. "]", code = "wrong-apostrophe" },
},
["el"] = {
{ redirect_to = "Greek" },
},
["Greek"] = {
{ chars = "ϑ", code = "wrong-theta" },
{ chars = "ϰ", code = "wrong-kappa" },
{ chars = "ϱ", code = "wrong-rho" },
{ chars = "ϕ", code = "wrong-phi" },
},
["ru"] = {
path = "Russian",
{ chars = U(0x300), code = "grave-accent", decompose = true },
},
["bo"] = {
path = "Tibetan",
{ chars = { "[་།]$", "[་།]%]%]$" }, code = "trailing-punctuation" },
},
["th"] = {
path = "Thai",
{ chars = "เ".."เ", code = "broken-ae" },
{ chars = "ํ[่้๊๋]?า", code = "broken-am" },
{ chars = "[ฤฦ]า", code = "wrong-rue-lue" },
},
["lo"] = {
path = "Lao",
{ chars = "ເ".."ເ", code = "broken-ae" },
{ chars = "ໍ[່້໊໋]?າ", code = "broken-am" },
{ chars = "ຫນ", code = "possible-broken-ho-no" },
{ chars = "ຫມ", code = "possible-broken-ho-mo" },
{ chars = "ຫລ", code = "possible-broken-ho-lo" },
},
["khb"] = {
path = "Lü",
{ chars = "ᦵ".."ᦵ", code = "broken-ae" },
{ chars = "[ᦀ-ᦫ][ᦵᦶᦷᦺ]", code = "possible-wrong-sequence" },
},
}
local function interpretCondition(condition, text, path)
-- Ignore conditions that don't have "chars" or "code".
local required = { "chars", "code" }
for i, param in pairs(required) do
if not condition[param] then
return nil
end
end
if type(condition.chars) ~= "table" then
condition.chars = { condition.chars }
end
for i, char in pairs(condition.chars) do
local text = condition.decompose and mw.ustring.toNFD(text) or text
if type(char) == "string" and mw.ustring.find(text, char) then
require("Module:debug").track("script/" .. path .. "/" .. condition.code)
end
end
end
local function interpretConditions(text, code)
if not text then
return nil
end
local trackingConditions = export.allTrackingConditions[code]
if trackingConditions then
local path = trackingConditions.path or code
for i, condition in ipairs(trackingConditions) do
local target = condition.redirect_to
if target then
interpretConditions(text, target)
else
local path = condition.path or path
interpretCondition(condition, text, path)
end
end
end
end
function export.track(text, lang)
local langCode = lang:getCode()
interpretConditions(text, langCode)
end
return export