Current File : /home/jvzmxxx/wiki/extensions/Wikibase/view/resources/wikibase/wikibase.getLanguageNameByCode.js
/**
 * JavaScript for 'wikibase' extension
 *
 * @see https://www.mediawiki.org/wiki/Extension:Wikibase
 *
 * @license GPL-2.0+
 * @author Daniel Werner < daniel.werner at wikimedia.de >
 * @author Adrian Heine <adrian.heine@wikimedia.de>
 */
( function ( wb, $ ) {
	'use strict';

	/**
	 * Tries to retrieve Universal Language Selector's set of languages.
	 *
	 * TODO: Further decouple this from ULS. Make the languages known to Wikibase a config thing
	 *  and use ULS as source for that language information, then inject it into Wikibase upon
	 *  initialization. This way, everything beyond extension initialization doesn't have to know
	 *  about ULS.
	 *
	 * @return {Object} Set of languages (empty object when ULS is not available)
	 */
	var getLanguages = function() {
		return $.uls && $.uls.data.languages || {};
	};

	/**
	 * Returns the name of a language in that language, if available (currently requires ULS).
	 * Falls back to the language code.
	 *
	 * @param {string} langCode
	 * @return {string}
	 */
	var getNativeLanguageName = function( langCode ) {
		var languages = getLanguages();
		return Object.prototype.hasOwnProperty.call( languages, langCode ) && languages[langCode][2]
			|| langCode;
	};

	/**
	 * Returns the name of a language in the UI language, if available (currently requires ULS).
	 * Falls back to getNativeLanguageName, which may fall back to the language code.
	 *
	 * @param {string} langCode
	 * @return {string}
	 */
	wb.getLanguageNameByCode = function( langCode ) {
		var ulsLanguages = $.fn.uls && $.fn.uls.defaults.languages;
		return ulsLanguages && Object.prototype.hasOwnProperty.call( ulsLanguages, langCode )
			&& ulsLanguages[ langCode ] || getNativeLanguageName( langCode );
	};

} )( wikibase, jQuery );