public/ckeditor/_source/core/lang.js
function( defaultLanguage, probeLanguage )
		{
			var languages = this.languages;
			probeLanguage = probeLanguage || navigator.userLanguage || navigator.language || defaultLanguage;

			var parts = probeLanguage
					.toLowerCase()
					.match( /([a-z]+)(?:-([a-z]+))?/ ),
				lang = parts[1],
				locale = parts[2];

			if ( languages[ lang + '-' + locale ] )
				lang = lang + '-' + locale;
			else if ( !languages[ lang ] )
				lang = null;

			CKEDITOR.lang.detect = lang ?
				function() { return lang; } :
				function( defaultLanguage ) { return defaultLanguage; };

			return lang || defaultLanguage;
		}
function( defaultLanguage, probeLanguage )
		{
			var languages = this.languages;
			probeLanguage = probeLanguage || navigator.userLanguage || navigator.language || defaultLanguage;

			var parts = probeLanguage
					.toLowerCase()
					.match( /([a-z]+)(?:-([a-z]+))?/ ),
				lang = parts[1],
				locale = parts[2];

			if ( languages[ lang + '-' + locale ] )
				lang = lang + '-' + locale;
			else if ( !languages[ lang ] )
				lang = null;

			CKEDITOR.lang.detect = lang ?
				function() { return lang; } :
				function( defaultLanguage ) { return defaultLanguage; };

			return lang || defaultLanguage;
		}
function ( defaultLanguage , probeLanguage ) { var languages = this . languages ; probeLanguage = probeLanguage || navigator . userLanguage || navigator . language || defaultLanguage ; var parts = probeLanguage . toLowerCase ( ) . match ( / ([a-z]+)(?:-([a-z]+))? / ) , lang = parts [ 1 ] , locale = parts [ 2 ] ; if ( languages [ lang + '-' + locale ] ) lang = lang + '-' + locale ; else if ( ! languages [ lang ] ) lang = null ; CKEDITOR . lang . detect = lang ? function ( ) { return lang ; } : function ( defaultLanguage ) { return defaultLanguage ; } ; return lang || defaultLanguage ; }
Returns the language that best fit the user language. For example,
suppose that the user language is "pt-br". If this language is
supported by the editor, it is returned. Otherwise, if only "pt" is
supported, it is returned instead. If none of the previous are
supported, a default language is then returned.
@param {String} defaultLanguage The default language to be returned
if the user language is not supported.
@param {String} [probeLanguage] A language code to try to use,
instead of the browser based autodetection.
@returns {String} The detected language code.
@example
alert( CKEDITOR.lang.detect( 'en' ) );  // e.g., in a German browser: "de"
Returns the language that best fit the user language . For example suppose that the user language is pt - br . If this language is supported by the editor it is returned . Otherwise if only pt is supported it is returned instead . If none of the previous are supported a default language is then returned .