Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 430 → Rev 431

/trunk/api/fckeditor/editor/_source/internals/fcklanguagemanager.js
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() ;