Модуль:languages/templates
Бул модулда Module:languages жеткиликтүүлүгүн камсыз сакталган маалымат пайдалана алабыз деп, калыптар келген.
Колдонуу
түзөтүүСиз тилдин коду (мисалы, "ky"), анда сен анын канонго ысмын билүү үчүн, бул колдоно аласыз:
- {{#invoke:languages/templates|getByCode|en|getCanonicalName}} (returns "English")
Сиз тилдин канондук ысмын билип болсо, (мисалы, "Кыргыз") жана анын кодду таап келет, бул колдонулат:
- {{#invoke:languages/templates|getByCanonicalName|English|getCode}} (returns "en")
Ушул иш-милдеттерди жүзөгө ашыруунун эки челпек болуп саналат: ала (type {{subst:#invoke:...).
Экспорттолгон милдеттери
түзөтүүбар
түзөтүү{{#invoke:languages/templates|exists|(language code)}}
Тил коду бар жана анык экенин текшерүү. андай эмес болсо, анда "1" тил коду бар болсо, ал эми бош сап «» кайтып келет.
Бул кимдир бирөө туура эмес, бир кодду колдонуп, бир скрипт ката алып келет, анткени сейрек, зарыл, ошондуктан, жөн эле каталарды текшерип туруу үчүн, бул керек эмес. Бирок, сиз бир параметр башка тил коду же бир нерсе эмес экенин, туура же негизинде ар кандай иш-чараларды кабыл алышыбыз керек, бул милдет пайдалуу болушу мүмкүн.
getByCode
түзөтүү{{#invoke:languages/templates|getByCode|(language code)|(item to look up)|(index)}}
Queries information about a language code.
- The language code should be one of the codes that is defined in Module:languages data. If it is missing or does not exist, the result will be a script error.
- The item is the name of one of the functions of a language object, such as
getCanonicalName
orgetScripts
. If no item has been provided, the result will be a script error. - The index is optional, and is used for items that are lists, such as
getOtherNames
orgetScripts
. It selects which item in the list to return. On items that are single strings, likegetFamily
, it has no effect. If an index is given that is higher than the number of items in the list, the result will be an empty string.
For example, to request the canonical name of the language whose code is en
:
{{#invoke:languages/templates|getByCode|ky|getCanonicalName}}
- Result:
English
To request its second name, if any:
{{#invoke:languages/templates|getByCode|ky|getOtherNames|1}}
- Result:
Modern English
To request its family:
{{#invoke:languages/templates|getByCode|ky|getFamily}}
- Result:
gmw-ang
getByCanonicalName
түзөтүүlocal concat = table.concat
local insert = table.insert
local sort = table.sort
local export = {}
function export.exists(frame)
return require("Module:languages").getByCode(
require("Module:parameters").process(frame.args, {
[1] = {required = true}
})[1]
) and "1" or ""
end
do
local function getByCode(frame, allow_etym)
local plain = {}
local args = require("Module:parameters").process(frame.args, {
[1] = {required = true, type = allow_etym and "language" or "full language"},
[2] = {required = true},
[3] = plain,
[4] = {type = "script"},
[5] = plain,
})
return require("Module:language-like").templateGetByCode(args,
function(itemname)
local list
if itemname == "getWikimediaLanguages" then
list = args[1]:getWikimediaLanguages()
elseif itemname == "getScripts" then
list = args[1]:getScriptCodes()
elseif itemname == "getAncestors" then
list = args[1]:getAncestors()
end
if list then
local retval = list[tonumber(args[3]) or error("Please specify the numeric index of the desired item.")]
if retval then
if type(retval) == "string" then
return retval
else
return retval:getCode()
end
else
return ""
end
end
if itemname == "transliterate" then
return (args[1]:transliterate(args[3], args[4], args[5])) or ""
elseif itemname == "makeDisplayText" then
return (args[1]:makeDisplayText(args[3], args[4])) or ""
elseif itemname == "makeEntryName" then
return (args[1]:makeEntryName(args[3], args[4])) or ""
elseif itemname == "makeSortKey" then
return (args[1]:makeSortKey(args[3], args[4])) or ""
elseif itemname == "countCharacters" then
return args[4]:countCharacters(args[3] or "")
elseif itemname == "findBestScript" then
return args[1]:findBestScript(args[3] or ""):getCode()
end
end
)
end
-- Used by the following JS:
-- * [[WT:ACCEL]]
-- * [[WT:EDIT]]
-- * [[WT:NEC]]
function export.getByCode(frame)
return getByCode(frame, false)
end
function export.getByCodeAllowEtym(frame)
return getByCode(frame, true)
end
end
function export.getByCanonicalName(frame)
local lang = require("Module:languages").getByCanonicalName(
require("Module:parameters").process(frame.args, {
[1] = {required = true}
})[1],
nil,
true
)
return lang and lang:getCode() or ""
end
function export.getCanonicalName(frame)
local args = require("Module:parameters").process(
require("Module:yesno")(frame.args.parent) and frame:getParent().args or frame.args,
{
[1] = {required = true},
["return_if_invalid"] = {type = "boolean"},
}
)
local lang = require("Module:languages").getByCode(args[1], nil, true)
return lang and lang:getCanonicalName() or not args.return_if_invalid and "" or args[1]
end
function export.getFull(frame)
local args = require("Module:parameters").process(
require("Module:yesno")(frame.args.parent) and frame:getParent().args or frame.args,
{
[1] = {required = true, type = "language"},
}
)
return args[1]:getFullCode()
end
function export.getChildren(frame)
local args = require("Module:parameters").process(
require("Module:yesno")(frame.args.parent) and frame:getParent().args or frame.args,
{
[1] = {required = true, type = "language"},
}
)
local children = args[1]:getChildren()
sort(children, function(a, b)
return a:getCanonicalName() < b:getCanonicalName()
end)
local list = {}
for _, child in ipairs(children) do
insert(list, "* " .. child:makeWikipediaLink() .. ": " .. "<code>" .. child:getCode() .. "</code>")
end
return concat(list, "\n")
end
return export