source: trunk/admin/inc/FCKeditor/editor/_source/internals/fcklanguagemanager.js@ 2

Last change on this file since 2 was 2, checked in by root, 15 years ago

importo il progetto

File size: 4.1 KB
Line 
1/*
2 * FCKeditor - The text editor for internet
3 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
4 *
5 * Licensed under the terms of the GNU Lesser General Public License:
6 * http://www.opensource.org/licenses/lgpl-license.php
7 *
8 * For further information visit:
9 * http://www.fckeditor.net/
10 *
11 * "Support Open Source software. What about a donation today?"
12 *
13 * File Name: fcklanguagemanager.js
14 * Defines the FCKLanguageManager object that is used for language
15 * operations.
16 *
17 * File Authors:
18 * Frederico Caldeira Knabben (fredck@fckeditor.net)
19 */
20var FCKLanguageManager = FCK.Language = new Object() ;
21
22FCKLanguageManager.AvailableLanguages =
23{
24 'ar' : 'Arabic',
25 'bg' : 'Bulgarian',
26 'bn' : 'Bengali/Bangla',
27 'bs' : 'Bosnian',
28 'ca' : 'Catalan',
29 'cs' : 'Czech',
30 'da' : 'Danish',
31 'de' : 'German',
32 'el' : 'Greek',
33 'en' : 'English',
34 'en-au' : 'English (Australia)',
35 'en-ca' : 'English (Canadian)',
36 'en-uk' : 'English (United Kingdom)',
37 'eo' : 'Esperanto',
38 'es' : 'Spanish',
39 'et' : 'Estonian',
40 'eu' : 'Basque',
41 'fa' : 'Persian',
42 'fi' : 'Finnish',
43 'fo' : 'Faroese',
44 'fr' : 'French',
45 'gl' : 'Galician',
46 'he' : 'Hebrew',
47 'hi' : 'Hindi',
48 'hr' : 'Croatian',
49 'hu' : 'Hungarian',
50 'it' : 'Italian',
51 'ja' : 'Japanese',
52 'km' : 'Khmer',
53 'ko' : 'Korean',
54 'lt' : 'Lithuanian',
55 'lv' : 'Latvian',
56 'mn' : 'Mongolian',
57 'ms' : 'Malay',
58 'nb' : 'Norwegian Bokmal',
59 'nl' : 'Dutch',
60 'no' : 'Norwegian',
61 'pl' : 'Polish',
62 'pt' : 'Portuguese (Portugal)',
63 'pt-br' : 'Portuguese (Brazil)',
64 'ro' : 'Romanian',
65 'ru' : 'Russian',
66 'sk' : 'Slovak',
67 'sl' : 'Slovenian',
68 'sr' : 'Serbian (Cyrillic)',
69 'sr-latn' : 'Serbian (Latin)',
70 'sv' : 'Swedish',
71 'th' : 'Thai',
72 'tr' : 'Turkish',
73 'uk' : 'Ukrainian',
74 'vi' : 'Vietnamese',
75 'zh' : 'Chinese Traditional',
76 'zh-cn' : 'Chinese Simplified'
77}
78
79FCKLanguageManager.GetActiveLanguage = function()
80{
81 if ( FCKConfig.AutoDetectLanguage )
82 {
83 var sUserLang ;
84
85 // IE accepts "navigator.userLanguage" while Gecko "navigator.language".
86 if ( navigator.userLanguage )
87 sUserLang = navigator.userLanguage.toLowerCase() ;
88 else if ( navigator.language )
89 sUserLang = navigator.language.toLowerCase() ;
90 else
91 {
92 // Firefox 1.0 PR has a bug: it doens't support the "language" property.
93 return FCKConfig.DefaultLanguage ;
94 }
95
96 // Some language codes are set in 5 characters,
97 // like "pt-br" for Brasilian Portuguese.
98 if ( sUserLang.length >= 5 )
99 {
100 sUserLang = sUserLang.substr(0,5) ;
101 if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
102 }
103
104 // If the user's browser is set to, for example, "pt-br" but only the
105 // "pt" language file is available then get that file.
106 if ( sUserLang.length >= 2 )
107 {
108 sUserLang = sUserLang.substr(0,2) ;
109 if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
110 }
111 }
112
113 return this.DefaultLanguage ;
114}
115
116FCKLanguageManager.TranslateElements = function( targetDocument, tag, propertyToSet, encode )
117{
118 var e = targetDocument.getElementsByTagName(tag) ;
119 var sKey, s ;
120 for ( var i = 0 ; i < e.length ; i++ )
121 {
122 if ( sKey = e[i].getAttribute( 'fckLang' ) )
123 {
124 if ( s = FCKLang[ sKey ] )
125 {
126 if ( encode )
127 s = FCKTools.HTMLEncode( s ) ;
128 eval( 'e[i].' + propertyToSet + ' = s' ) ;
129 }
130 }
131 }
132}
133
134FCKLanguageManager.TranslatePage = function( targetDocument )
135{
136 this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
137 this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
138 this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
139 this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;
140}
141
142FCKLanguageManager.Initialize = function()
143{
144 if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
145 this.DefaultLanguage = FCKConfig.DefaultLanguage ;
146 else
147 this.DefaultLanguage = 'en' ;
148
149 this.ActiveLanguage = new Object() ;
150 this.ActiveLanguage.Code = this.GetActiveLanguage() ;
151 this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;
152}
Note: See TracBrowser for help on using the repository browser.