/*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\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-uk' : 1,\r
+ 'en-gb' : 1,\r
'en' : 1,\r
'eo' : 1,\r
'es' : 1,\r
*/\r
load : function( languageCode, defaultLanguage, callback )\r
{\r
- if ( !languageCode )\r
- languageCode = this.detect( defaultLanguage );\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
* @example\r
* alert( CKEDITOR.lang.detect( 'en' ) ); // e.g., in a German browser: "de"\r
*/\r
- detect : function( defaultLanguage )\r
+ detect : function( defaultLanguage, probeLanguage )\r
{\r
var languages = this.languages;\r
+ probeLanguage = probeLanguage || navigator.userLanguage || navigator.language;\r
\r
- var parts = ( navigator.userLanguage || navigator.language )\r
+ var parts = probeLanguage\r
.toLowerCase()\r
.match( /([a-z]+)(?:-([a-z]+))?/ ),\r
lang = parts[1],\r