source: trunk/phpgwapi/js/ckeditor/_source/core/lang.js @ 2862

Revision 2862, 3.8 KB checked in by rodsouza, 14 years ago (diff)

Ticket #663 - Atualizando e centralizando o CKEditor (v. 3.2.1)

Line 
1/*
2Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6(function()
7{
8        var loadedLangs = {};
9
10        CKEDITOR.lang =
11        {
12                /**
13                 * The list of languages available in the editor core.
14                 * @type Object
15                 * @example
16                 * alert( CKEDITOR.lang.en );  // "true"
17                 */
18                languages :
19                {
20                        'af'    : 1,
21                        'ar'    : 1,
22                        'bg'    : 1,
23                        'bn'    : 1,
24                        'bs'    : 1,
25                        'ca'    : 1,
26                        'cs'    : 1,
27                        'cy'    : 1,
28                        'da'    : 1,
29                        'de'    : 1,
30                        'el'    : 1,
31                        'en-au' : 1,
32                        'en-ca' : 1,
33                        'en-gb' : 1,
34                        'en'    : 1,
35                        'eo'    : 1,
36                        'es'    : 1,
37                        'et'    : 1,
38                        'eu'    : 1,
39                        'fa'    : 1,
40                        'fi'    : 1,
41                        'fo'    : 1,
42                        'fr-ca' : 1,
43                        'fr'    : 1,
44                        'gl'    : 1,
45                        'gu'    : 1,
46                        'he'    : 1,
47                        'hi'    : 1,
48                        'hr'    : 1,
49                        'hu'    : 1,
50                        'is'    : 1,
51                        'it'    : 1,
52                        'ja'    : 1,
53                        'km'    : 1,
54                        'ko'    : 1,
55                        'lt'    : 1,
56                        'lv'    : 1,
57                        'mn'    : 1,
58                        'ms'    : 1,
59                        'nb'    : 1,
60                        'nl'    : 1,
61                        'no'    : 1,
62                        'pl'    : 1,
63                        'pt-br' : 1,
64                        'pt'    : 1,
65                        'ro'    : 1,
66                        'ru'    : 1,
67                        'sk'    : 1,
68                        'sl'    : 1,
69                        'sr-latn'       : 1,
70                        'sr'    : 1,
71                        'sv'    : 1,
72                        'th'    : 1,
73                        'tr'    : 1,
74                        'uk'    : 1,
75                        'vi'    : 1,
76                        'zh-cn' : 1,
77                        'zh'    : 1
78                },
79
80                /**
81                 * Loads a specific language file, or auto detect it. A callback is
82                 * then called when the file gets loaded.
83                 * @param {String} languageCode The code of the language file to be
84                 *              loaded. If "autoDetect" is set to true, this language will be
85                 *              used as the default one, if the detect language is not
86                 *              available in the core.
87                 * @param {Boolean} autoDetect Indicates that the function must try to
88                 *              detect the user language and load it instead.
89                 * @param {Function} callback The function to be called once the
90                 *              language file is loaded. Two parameters are passed to this
91                 *              function: the language code and the loaded language entries.
92                 * @example
93                 */
94                load : function( languageCode, defaultLanguage, callback )
95                {
96                        // If no languageCode - fallback to browser or default.
97                        // If languageCode - fallback to no-localized version or default.
98                        if ( !languageCode || !CKEDITOR.lang.languages[ languageCode ] )
99                                languageCode = this.detect( defaultLanguage, languageCode );
100
101                        if ( !this[ languageCode ] )
102                        {
103                                CKEDITOR.scriptLoader.load( CKEDITOR.getUrl(
104                                        '_source/' +    // @Packager.RemoveLine
105                                        'lang/' + languageCode + '.js' ),
106                                        function()
107                                                {
108                                                        callback( languageCode, this[ languageCode ] );
109                                                }
110                                                , this );
111                        }
112                        else
113                                callback( languageCode, this[ languageCode ] );
114                },
115
116                /**
117                 * Returns the language that best fit the user language. For example,
118                 * suppose that the user language is "pt-br". If this language is
119                 * supported by the editor, it is returned. Otherwise, if only "pt" is
120                 * supported, it is returned instead. If none of the previous are
121                 * supported, a default language is then returned.
122                 * @param {String} defaultLanguage The default language to be returned
123                 *              if the user language is not supported.
124                 * @returns {String} The detected language code.
125                 * @example
126                 * alert( CKEDITOR.lang.detect( 'en' ) );  // e.g., in a German browser: "de"
127                 */
128                detect : function( defaultLanguage, probeLanguage )
129                {
130                        var languages = this.languages;
131                        probeLanguage = probeLanguage || navigator.userLanguage || navigator.language;
132
133                        var parts = probeLanguage
134                                        .toLowerCase()
135                                        .match( /([a-z]+)(?:-([a-z]+))?/ ),
136                                lang = parts[1],
137                                locale = parts[2];
138
139                        if ( languages[ lang + '-' + locale ] )
140                                lang = lang + '-' + locale;
141                        else if ( !languages[ lang ] )
142                                lang = null;
143
144                        CKEDITOR.lang.detect = lang ?
145                                function() { return lang; } :
146                                function( defaultLanguage ) { return defaultLanguage; };
147
148                        return lang || defaultLanguage;
149                }
150        };
151
152})();
Note: See TracBrowser for help on using the repository browser.