Модул:languages/templates
This module provides access to Module:languages from templates, so that they can make use of the information stored there.
Употреба уреди
If you know a language's code (for example, "en") and you want to find out its canonical name, you can use this:
{{#invoke:languages/templates|getByCode|en|getCanonicalName}}
(returns "Енглески")
If you know a language's canonical name (for example, "Енглески") and you want to find out its code, use this:
{{#invoke:languages/templates|getByCanonicalName|Енглески|getCode}}
(returns "en")
Both of these functions are subst:able (type {{subst:#invoke:
...).
Извезене функције уреди
exists уреди
{{#invoke:languages/templates|exists|language code}}
Check whether a language code exists and is valid. It will return "1" if the language code exists, and the empty string "" if it does not.
This is rarely needed, because a script error will result when someone uses a code that is not valid, so you do not need this just to check for errors. However, in case you need to decide different actions based on whether a certain parameter is a language code or something else, this function can be useful.
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|en|getCanonicalName}}
- Result:
Енглески
To request its second name, if any:
{{#invoke:languages/templates|getByCode|en|getOtherNames|1}}
- Result:
Modern English
To request its family:
{{#invoke:languages/templates|getByCode|en|getFamily}}
- Result:
gmw
getByCanonicalName уреди
{{#invoke:languages/templates|getByCanonicalName|language name}}
Gets the language code corresponding to a canonical name.
{{#invoke:languages/templates|getByCanonicalName|English}}
- ↓
getByName уреди
{{#invoke:languages/templates|getByName|language name}}
Like the above, except it will also accept other names for the language that are listed in the language's otherNames
field. For instance:
{{#invoke:languages/templates|getByName|Modern English}}
- ↓
- Lua грешка in package.lua at line 80: module 'Module:languages/canonical names/serialized' not found.
getCanonicalName уреди
{{#invoke:languages/templates|getCanonicalName|language code}}
Gets the canonical name for a language code. It uses a table that converts language code to canonical name, generated by Module:languages/code to canonical name. Requires more Lua memory than getByCode
(about 10 megabytes) for a single instance, but may require less memory on pages that call the function many times.
As with getByCode
, an invalid language code will yield a script error.
{{#invoke:languages/templates|getCanonicalName|en}}
- ↓
English
Видите такође уреди
- Модул:JSON data — for exporting all the data at once
Горња документација је укључена са странице Модул:languages/templates/док. (уреди | историја) Уредници могу да експериментишу на подстраницама песак (направи | дуплирај) и тест (направи) овог модула. Подстранице овог модула. |
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("Модул: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("Модул:parameters").process(frame.args, iparams)
local langcode = iargs[1]
local lang = require("Модул:languages").getByCode(langcode, true)
return require("Модул: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 sc = iargs[4]
local module_override = iargs[5]
sc = sc and require("Модул:scripts").getByCode(sc, 4) or nil
return lang:transliterate(text, sc, module_override) or ""
elseif itemname == "makeEntryName" then
local text = iargs[3]
return lang:makeEntryName(text) or ""
elseif itemname == "makeSortKey" then
local text = iargs[3]
return lang:makeSortKey(text) or ""
elseif itemname == "countCharacters" then
local text = args[3] or ""
local sc = require("Модул:scripts").getByCode(iargs[4], 4)
return sc:countCharacters(text)
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("Модул: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("Модул: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("Модул:languages").getByCode(langname)
if lang then
return lang:makeEntryName(args[2])
else
return ""
end
end
function export.getCanonicalName(frame)
local langCode, args
if require("Модул: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("Модул:languages/code to canonical name")[langCode]
or not args.return_if_invalid and "" or langCode
end
return export