[ Index ] |
|
Code source de FCKeditor 2.4 |
1 /* 2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 3 * Copyright (C) 2003-2007 Frederico Caldeira Knabben 4 * 5 * == BEGIN LICENSE == 6 * 7 * Licensed under the terms of any of the following licenses at your 8 * choice: 9 * 10 * - GNU General Public License Version 2 or later (the "GPL") 11 * http://www.gnu.org/licenses/gpl.html 12 * 13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") 14 * http://www.gnu.org/licenses/lgpl.html 15 * 16 * - Mozilla Public License Version 1.1 or later (the "MPL") 17 * http://www.mozilla.org/MPL/MPL-1.1.html 18 * 19 * == END LICENSE == 20 * 21 * File Name: fcklanguagemanager.js 22 * Defines the FCKLanguageManager object that is used for language 23 * operations. 24 * 25 * File Authors: 26 * Frederico Caldeira Knabben (www.fckeditor.net) 27 */ 28 29 var FCKLanguageManager = FCK.Language = 30 { 31 AvailableLanguages : 32 { 33 af : 'Afrikaans', 34 ar : 'Arabic', 35 bg : 'Bulgarian', 36 bn : 'Bengali/Bangla', 37 bs : 'Bosnian', 38 ca : 'Catalan', 39 cs : 'Czech', 40 da : 'Danish', 41 de : 'German', 42 el : 'Greek', 43 en : 'English', 44 'en-au' : 'English (Australia)', 45 'en-ca' : 'English (Canadian)', 46 'en-uk' : 'English (United Kingdom)', 47 eo : 'Esperanto', 48 es : 'Spanish', 49 et : 'Estonian', 50 eu : 'Basque', 51 fa : 'Persian', 52 fi : 'Finnish', 53 fo : 'Faroese', 54 fr : 'French', 55 gl : 'Galician', 56 he : 'Hebrew', 57 hi : 'Hindi', 58 hr : 'Croatian', 59 hu : 'Hungarian', 60 it : 'Italian', 61 ja : 'Japanese', 62 km : 'Khmer', 63 ko : 'Korean', 64 lt : 'Lithuanian', 65 lv : 'Latvian', 66 mn : 'Mongolian', 67 ms : 'Malay', 68 nb : 'Norwegian Bokmal', 69 nl : 'Dutch', 70 no : 'Norwegian', 71 pl : 'Polish', 72 pt : 'Portuguese (Portugal)', 73 'pt-br' : 'Portuguese (Brazil)', 74 ro : 'Romanian', 75 ru : 'Russian', 76 sk : 'Slovak', 77 sl : 'Slovenian', 78 sr : 'Serbian (Cyrillic)', 79 'sr-latn' : 'Serbian (Latin)', 80 sv : 'Swedish', 81 th : 'Thai', 82 tr : 'Turkish', 83 uk : 'Ukrainian', 84 vi : 'Vietnamese', 85 zh : 'Chinese Traditional', 86 'zh-cn' : 'Chinese Simplified' 87 }, 88 89 GetActiveLanguage : function() 90 { 91 if ( FCKConfig.AutoDetectLanguage ) 92 { 93 var sUserLang ; 94 95 // IE accepts "navigator.userLanguage" while Gecko "navigator.language". 96 if ( navigator.userLanguage ) 97 sUserLang = navigator.userLanguage.toLowerCase() ; 98 else if ( navigator.language ) 99 sUserLang = navigator.language.toLowerCase() ; 100 else 101 { 102 // Firefox 1.0 PR has a bug: it doens't support the "language" property. 103 return FCKConfig.DefaultLanguage ; 104 } 105 106 // Some language codes are set in 5 characters, 107 // like "pt-br" for Brasilian Portuguese. 108 if ( sUserLang.length >= 5 ) 109 { 110 sUserLang = sUserLang.substr(0,5) ; 111 if ( this.AvailableLanguages[sUserLang] ) return sUserLang ; 112 } 113 114 // If the user's browser is set to, for example, "pt-br" but only the 115 // "pt" language file is available then get that file. 116 if ( sUserLang.length >= 2 ) 117 { 118 sUserLang = sUserLang.substr(0,2) ; 119 if ( this.AvailableLanguages[sUserLang] ) return sUserLang ; 120 } 121 } 122 123 return this.DefaultLanguage ; 124 }, 125 126 TranslateElements : function( targetDocument, tag, propertyToSet, encode ) 127 { 128 var e = targetDocument.getElementsByTagName(tag) ; 129 var sKey, s ; 130 for ( var i = 0 ; i < e.length ; i++ ) 131 { 132 // The extra () is to avoid a warning with strict error checking. This is ok. 133 if ( (sKey = e[i].getAttribute( 'fckLang' )) ) 134 { 135 // The extra () is to avoid a warning with strict error checking. This is ok. 136 if ( (s = FCKLang[ sKey ]) ) 137 { 138 if ( encode ) 139 s = FCKTools.HTMLEncode( s ) ; 140 eval( 'e[i].' + propertyToSet + ' = s' ) ; 141 } 142 } 143 } 144 }, 145 146 TranslatePage : function( targetDocument ) 147 { 148 this.TranslateElements( targetDocument, 'INPUT', 'value' ) ; 149 this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ; 150 this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ; 151 this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ; 152 }, 153 154 Initialize : function() 155 { 156 if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] ) 157 this.DefaultLanguage = FCKConfig.DefaultLanguage ; 158 else 159 this.DefaultLanguage = 'en' ; 160 161 this.ActiveLanguage = new Object() ; 162 this.ActiveLanguage.Code = this.GetActiveLanguage() ; 163 this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ; 164 } 165 } ;
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 15:28:05 2007 | par Balluche grâce à PHPXref 0.7 |