Rev 1372 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 Frederico Caldeira Knabben** Licensed under the terms of the GNU Lesser General Public License:* http://www.opensource.org/licenses/lgpl-license.php** For further information visit:* http://www.fckeditor.net/** "Support Open Source software. What about a donation today?"** File Name: fcklanguagemanager.js* Defines the FCKLanguageManager object that is used for language* operations.** File Authors:* Frederico Caldeira Knabben (fredck@fckeditor.net)*/var FCKLanguageManager = FCK.Language = new Object() ;FCKLanguageManager.AvailableLanguages ={'ar' : 'Arabic','bg' : 'Bulgarian','bn' : 'Bengali/Bangla','bs' : 'Bosnian','ca' : 'Catalan','cs' : 'Czech','da' : 'Danish','de' : 'German','el' : 'Greek','en' : 'English','en-au' : 'English (Australia)','en-ca' : 'English (Canadian)','en-uk' : 'English (United Kingdom)','eo' : 'Esperanto','es' : 'Spanish','et' : 'Estonian','eu' : 'Basque','fa' : 'Persian','fi' : 'Finnish','fo' : 'Faroese','fr' : 'French','gl' : 'Galician','he' : 'Hebrew','hi' : 'Hindi','hr' : 'Croatian','hu' : 'Hungarian','it' : 'Italian','ja' : 'Japanese','km' : 'Khmer','ko' : 'Korean','lt' : 'Lithuanian','lv' : 'Latvian','mn' : 'Mongolian','ms' : 'Malay','nb' : 'Norwegian Bokmal','nl' : 'Dutch','no' : 'Norwegian','pl' : 'Polish','pt' : 'Portuguese (Portugal)','pt-br' : 'Portuguese (Brazil)','ro' : 'Romanian','ru' : 'Russian','sk' : 'Slovak','sl' : 'Slovenian','sr' : 'Serbian (Cyrillic)','sr-latn' : 'Serbian (Latin)','sv' : 'Swedish','th' : 'Thai','tr' : 'Turkish','uk' : 'Ukrainian','vi' : 'Vietnamese','zh' : 'Chinese Traditional','zh-cn' : 'Chinese Simplified'}FCKLanguageManager.GetActiveLanguage = function(){if ( FCKConfig.AutoDetectLanguage ){var sUserLang ;// IE accepts "navigator.userLanguage" while Gecko "navigator.language".if ( navigator.userLanguage )sUserLang = navigator.userLanguage.toLowerCase() ;else if ( navigator.language )sUserLang = navigator.language.toLowerCase() ;else{// Firefox 1.0 PR has a bug: it doens't support the "language" property.return FCKConfig.DefaultLanguage ;}// Some language codes are set in 5 characters,// like "pt-br" for Brasilian Portuguese.if ( sUserLang.length >= 5 ){sUserLang = sUserLang.substr(0,5) ;if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;}// If the user's browser is set to, for example, "pt-br" but only the// "pt" language file is available then get that file.if ( sUserLang.length >= 2 ){sUserLang = sUserLang.substr(0,2) ;if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;}}return this.DefaultLanguage ;}FCKLanguageManager.TranslateElements = function( targetDocument, tag, propertyToSet, encode ){var e = targetDocument.getElementsByTagName(tag) ;var sKey, s ;for ( var i = 0 ; i < e.length ; i++ ){if ( sKey = e[i].getAttribute( 'fckLang' ) ){if ( s = FCKLang[ sKey ] ){if ( encode )s = FCKTools.HTMLEncode( s ) ;eval( 'e[i].' + propertyToSet + ' = s' ) ;}}}}FCKLanguageManager.TranslatePage = function( targetDocument ){this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;}FCKLanguageManager.Initialize = function(){if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )this.DefaultLanguage = FCKConfig.DefaultLanguage ;elsethis.DefaultLanguage = 'en' ;this.ActiveLanguage = new Object() ;this.ActiveLanguage.Code = this.GetActiveLanguage() ;this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;}