New file |
0,0 → 1,93 |
/* |
* FCKeditor - The text editor for internet |
* Copyright (C) 2003-2005 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/ |
* |
* File Name: fcklanguagemanager.js |
* Defines the FCKLanguageManager object that is used for language |
* operations. |
* |
* File Authors: |
* Frederico Caldeira Knabben (fredck@fckeditor.net) |
*/ |
|
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 ) |
{ |
var aInputs = targetDocument.getElementsByTagName(tag) ; |
|
for ( var i = 0 ; i < aInputs.length ; i++ ) |
{ |
var sKey = aInputs[i].getAttribute( 'fckLang' ) ; |
|
if ( sKey ) |
{ |
var s = FCKLang[ sKey ] ; |
if ( s ) |
eval( 'aInputs[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' ) ; |
} |
|
if ( FCKLanguageManager.AvailableLanguages[ FCKConfig.DefaultLanguage ] ) |
FCKLanguageManager.DefaultLanguage = FCKConfig.DefaultLanguage ; |
else |
FCKLanguageManager.DefaultLanguage = 'en' ; |
|
FCKLanguageManager.ActiveLanguage = new Object() ; |
FCKLanguageManager.ActiveLanguage.Code = FCKLanguageManager.GetActiveLanguage() ; |
FCKLanguageManager.ActiveLanguage.Name = FCKLanguageManager.AvailableLanguages[ FCKLanguageManager.ActiveLanguage.Code ] ; |
|
FCK.Language = FCKLanguageManager ; |
|
// Load the language file and start the editor. |
LoadLanguageFile() ; |