Модуль:languages/templates

Wiktionary дан

Бул модулда 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 or getScripts. 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 or getScripts. It selects which item in the list to return. On items that are single strings, like getFamily, 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[түзөтүү]

Бул документтешитирүү эскирген.
Бул баракта же бөлүгү боюнча документтер мындан ары анын учурдагы абалын чагылдырган, ал эми кээ бир маалымат жок же туура эмес болушу мүмкүн. мындан ары колдонулуучу маалыматтарды алып, ал эми маянасы өзгөчөлүктөрү жөнүндө the документтерди бет, жана кошумча маалымат түзөтүп, жардам берчи.

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