+++ /dev/null
-/*\r
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
-*/\r
-\r
-(function()\r
-{\r
- var loadedLangs = {};\r
-\r
- /**\r
- * @namespace Holds language related functions.\r
- */\r
- CKEDITOR.lang =\r
- {\r
- /**\r
- * The list of languages available in the editor core.\r
- * @type Object\r
- * @example\r
- * alert( CKEDITOR.lang.en ); // "true"\r
- */\r
- languages :\r
- {\r
- 'af' : 1,\r
- 'ar' : 1,\r
- 'bg' : 1,\r
- 'bn' : 1,\r
- 'bs' : 1,\r
- 'ca' : 1,\r
- 'cs' : 1,\r
- 'cy' : 1,\r
- 'da' : 1,\r
- 'de' : 1,\r
- 'el' : 1,\r
- 'en-au' : 1,\r
- 'en-ca' : 1,\r
- 'en-gb' : 1,\r
- 'en' : 1,\r
- 'eo' : 1,\r
- 'es' : 1,\r
- 'et' : 1,\r
- 'eu' : 1,\r
- 'fa' : 1,\r
- 'fi' : 1,\r
- 'fo' : 1,\r
- 'fr-ca' : 1,\r
- 'fr' : 1,\r
- 'gl' : 1,\r
- 'gu' : 1,\r
- 'he' : 1,\r
- 'hi' : 1,\r
- 'hr' : 1,\r
- 'hu' : 1,\r
- 'is' : 1,\r
- 'it' : 1,\r
- 'ja' : 1,\r
- 'ka' : 1,\r
- 'km' : 1,\r
- 'ko' : 1,\r
- 'ku' : 1,\r
- 'lt' : 1,\r
- 'lv' : 1,\r
- 'mn' : 1,\r
- 'ms' : 1,\r
- 'nb' : 1,\r
- 'nl' : 1,\r
- 'no' : 1,\r
- 'pl' : 1,\r
- 'pt-br' : 1,\r
- 'pt' : 1,\r
- 'ro' : 1,\r
- 'ru' : 1,\r
- 'sk' : 1,\r
- 'sl' : 1,\r
- 'sr-latn' : 1,\r
- 'sr' : 1,\r
- 'sv' : 1,\r
- 'th' : 1,\r
- 'tr' : 1,\r
- 'ug' : 1,\r
- 'uk' : 1,\r
- 'vi' : 1,\r
- 'zh-cn' : 1,\r
- 'zh' : 1\r
- },\r
-\r
- /**\r
- * Loads a specific language file, or auto detect it. A callback is\r
- * then called when the file gets loaded.\r
- * @param {String} languageCode The code of the language file to be\r
- * loaded. If null or empty, autodetection will be performed. The\r
- * same happens if the language is not supported.\r
- * @param {String} defaultLanguage The language to be used if\r
- * languageCode is not supported or if the autodetection fails.\r
- * @param {Function} callback A function to be called once the\r
- * language file is loaded. Two parameters are passed to this\r
- * function: the language code and the loaded language entries.\r
- * @example\r
- */\r
- load : function( languageCode, defaultLanguage, callback )\r
- {\r
- // If no languageCode - fallback to browser or default.\r
- // If languageCode - fallback to no-localized version or default.\r
- if ( !languageCode || !CKEDITOR.lang.languages[ languageCode ] )\r
- languageCode = this.detect( defaultLanguage, languageCode );\r
-\r
- if ( !this[ languageCode ] )\r
- {\r
- CKEDITOR.scriptLoader.load( CKEDITOR.getUrl(\r
- '_source/' + // @Packager.RemoveLine\r
- 'lang/' + languageCode + '.js' ),\r
- function()\r
- {\r
- callback( languageCode, this[ languageCode ] );\r
- }\r
- , this );\r
- }\r
- else\r
- callback( languageCode, this[ languageCode ] );\r
- },\r
-\r
- /**\r
- * Returns the language that best fit the user language. For example,\r
- * suppose that the user language is "pt-br". If this language is\r
- * supported by the editor, it is returned. Otherwise, if only "pt" is\r
- * supported, it is returned instead. If none of the previous are\r
- * supported, a default language is then returned.\r
- * @param {String} defaultLanguage The default language to be returned\r
- * if the user language is not supported.\r
- * @param {String} [probeLanguage] A language code to try to use,\r
- * instead of the browser based autodetection.\r
- * @returns {String} The detected language code.\r
- * @example\r
- * alert( CKEDITOR.lang.detect( 'en' ) ); // e.g., in a German browser: "de"\r
- */\r
- detect : function( defaultLanguage, probeLanguage )\r
- {\r
- var languages = this.languages;\r
- probeLanguage = probeLanguage || navigator.userLanguage || navigator.language || defaultLanguage;\r
-\r
- var parts = probeLanguage\r
- .toLowerCase()\r
- .match( /([a-z]+)(?:-([a-z]+))?/ ),\r
- lang = parts[1],\r
- locale = parts[2];\r
-\r
- if ( languages[ lang + '-' + locale ] )\r
- lang = lang + '-' + locale;\r
- else if ( !languages[ lang ] )\r
- lang = null;\r
-\r
- CKEDITOR.lang.detect = lang ?\r
- function() { return lang; } :\r
- function( defaultLanguage ) { return defaultLanguage; };\r
-\r
- return lang || defaultLanguage;\r
- }\r
- };\r
-\r
-})();\r