Модуль: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:
Kyrgyz
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:
trk-kip
getByCanonicalName[түзөтүү]
local export = {}
function export.exists(frame)
local args = frame.args
local lang = args[1] or error("Language code has not been specified. Please pass parameter 1 to the module invocation.")
lang = require("Module:languages").getByCode(lang)
if lang then
return "1"
else
return ""
end
end
-- Used by the following JS:
-- * [[WT:ACCEL]]
-- * [[WT:EDIT]]
-- * [[WT:NEC]]
function export.getByCode(frame)
local iparams = {
[1] = {required = true},
[2] = {required = true},
[3] = {},
[4] = {},
[5] = {},
}
local iargs = require("Module:parameters").process(frame.args, iparams, nil, "languages/templates", "getByCode")
local langcode = iargs[1]
local lang = require("Module:languages").getByCode(langcode, true)
return require("Module:language-like").templateGetByCode(lang, iargs,
function(itemname)
local list
if itemname == "getWikimediaLanguages" then
list = lang:getWikimediaLanguages()
elseif itemname == "getScripts" then
list = lang:getScriptCodes()
elseif itemname == "getAncestors" then
list = lang:getAncestors()
end
if list then
local index = iargs[3]
index = tonumber(index) or error("Please specify the numeric index of the desired item.")
local retval = list[index]
if retval then
if type(retval) == "string" then
return retval
else
return retval:getCode()
end
else
return ""
end
end
if itemname == "transliterate" then
local text = iargs[3]
local module_override = iargs[5]
local sc = require("Module:scripts").getByCode(iargs[4], 4)
return (lang:transliterate(text, sc, module_override)) or ""
elseif itemname == "makeDisplayText" then
local text = iargs[3]
local sc = require("Module:scripts").getByCode(iargs[4], 4)
return (lang:makeDisplayText(text, sc)) or ""
elseif itemname == "makeEntryName" then
local text = iargs[3]
local sc = require("Module:scripts").getByCode(iargs[4], 4)
return (lang:makeEntryName(text, sc)) or ""
elseif itemname == "makeSortKey" then
local text = iargs[3]
local sc = require("Module:scripts").getByCode(iargs[4], 4)
return (lang:makeSortKey(text, sc)) or ""
elseif itemname == "countCharacters" then
local text = iargs[3] or ""
local sc = require("Module:scripts").getByCode(iargs[4], 4, "disallow nil")
return sc:countCharacters(text)
elseif itemname == "findBestScript" then
local text = iargs[3] or ""
return lang:findBestScript(text):getCode()
end
end
)
end
function export.getByCanonicalName(frame)
local args = frame.args
local langname = args[1] or error("Language name has not been specified. Please pass parameter 1 to the module invocation.")
local lang = require("Module:languages").getByCanonicalName(langname)
if lang then
return lang:getCode()
else
return ""
end
end
function export.getByName(frame)
local args = frame.args
local langname = args[1] or error("Language name has not been specified. Please pass parameter 1 to the module invocation.")
local lang = require("Module:languages").getByName(langname)
if lang then
return lang:getCode()
else
return ""
end
end
function export.makeEntryName(frame)
local args = frame.args
local langname = args[1] or error("Language name has not been specified. Please pass parameter 1 to the module invocation.")
local lang = require("Module:languages").getByCode(langname)
if lang then
return lang:makeEntryName(args[2])
else
return ""
end
end
function export.getCanonicalName(frame)
local langCode, args
if require("Module:yesno")(frame.args.parent) then
args = frame:getParent().args
else
args = frame.args
end
langCode = args[1]
if not langCode or langCode == "" then
error("Supply a language code in parameter 1.")
end
return mw.loadData("Module:languages/code to canonical name")[langCode]
or not args.return_if_invalid and "" or langCode
end
function export.getNonEtymological(frame)
local langCode, args
if require("Module:yesno")(frame.args.parent) then
args = frame:getParent().args
else
args = frame.args
end
langCode = args[1]
if not langCode or langCode == "" then
error("Supply a language code in parameter 1.")
end
local lang = require("Module:languages").getByCode(langCode, nil, true)
local nonEtym_lang = lang:getNonEtymological()
return nonEtym_lang:getCode()
or not args.return_if_invalid and "" or langCode
end
return export