summaryrefslogtreecommitdiff
path: root/frontend/delta/js/Clipperz/PM/Strings.js
Unidiff
Diffstat (limited to 'frontend/delta/js/Clipperz/PM/Strings.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/delta/js/Clipperz/PM/Strings.js285
1 files changed, 285 insertions, 0 deletions
diff --git a/frontend/delta/js/Clipperz/PM/Strings.js b/frontend/delta/js/Clipperz/PM/Strings.js
new file mode 100644
index 0000000..7e855ff
--- a/dev/null
+++ b/frontend/delta/js/Clipperz/PM/Strings.js
@@ -0,0 +1,285 @@
1/*
2
3Copyright 2008-2013 Clipperz Srl
4
5This file is part of Clipperz, the online password manager.
6For further information about its features and functionalities please
7refer to http://www.clipperz.com.
8
9* Clipperz is free software: you can redistribute it and/or modify it
10 under the terms of the GNU Affero General Public License as published
11 by the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13
14* Clipperz is distributed in the hope that it will be useful, but
15 WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 See the GNU Affero General Public License for more details.
18
19* You should have received a copy of the GNU Affero General Public
20 License along with Clipperz. If not, see http://www.gnu.org/licenses/.
21
22*/
23
24if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
25if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
26if (typeof(Clipperz.PM.Strings) == 'undefined') { Clipperz.PM.Strings = {}; }
27if (typeof(Clipperz.PM.Strings.Languages) == 'undefined') { Clipperz.PM.Strings.Languages = {}; }
28
29//-----------------------------------------------------------------------------
30/*
31Clipperz.PM.Strings.standardStrings = {
32 'loginPanelSwitchLanguageSelectOptions':[
33/ *
34 {tag:'option', html:"Arabic (Oman) (العربية)", value:'ar-OM', disabled:true},
35 {tag:'option', html:"Arabic (Syria) (العربية)", value:'ar-SY', disabled:true},
36 {tag:'option', html:"Bahasa Indonesia", value:'id-ID', disabled:true},
37 {tag:'option', html:"Bulgarian (Български)", value:'bg-BG', disabled:true},
38 {tag:'option', html:"Català", value:'ca-ES', disabled:true},
39 {tag:'option', html:"Chinese (Simplified) (简体中文)", value:'zh-CN', disabled:true},
40 {tag:'option', html:"Chinese (Traditional) (正體中文)", value:'zh-TW', disabled:true},
41 {tag:'option', html:"Czech (Česky)", value:'cs-CZ', disabled:true},
42 {tag:'option', html:"Dansk", value:'da-DK', disabled:true},
43 {tag:'option', html:"Deutsch", value:'de-DE'/ *, disabled:true* /},
44 {tag:'option', html:"English (American)", value:'en-US'/ *, disabled:true* /},
45 {tag:'option', html:"English (British)", value:'en-GB'/ *, disabled:true* /},
46 {tag:'option', html:"English (Canadian)", value:'en-CA'/ *, disabled:true* /},
47 {tag:'option', html:"Español", value:'es-ES', disabled:true},
48 {tag:'option', html:"Eesti", value:'et-EE', disabled:true},
49 {tag:'option', html:"Français", value:'fr-FR', disabled:true},
50 {tag:'option', html:"Galego", value:'gl-ES', disabled:true},
51 {tag:'option', html:"Greek (Ελληνικά)", value:'el-GR', disabled:true},
52 {tag:'option', html:"Íslenska", value:'is-IS', disabled:true},
53 {tag:'option', html:"Italiano", value:'it-IT'/ *, disabled:true* /},
54 {tag:'option', html:"Japanese (日本語)", value:'ja-JP', disabled:true},
55 {tag:'option', html:"Korean (한국어)", value:'ko-KR', disabled:true},
56 {tag:'option', html:"Latviešu", value:'lv-LV', disabled:true},
57 {tag:'option', html:"Lietuvių", value:'lt-LT', disabled:true},
58 {tag:'option', html:"Macedonian (Македонски)", value:'mk-MK', disabled:true},
59 {tag:'option', html:"Magyar", value:'hu-HU', disabled:true},
60 {tag:'option', html:"Nederlands", value:'nl-NL', disabled:true},
61 {tag:'option', html:"Norsk bokmål", value:'nb-NO', disabled:true},
62 {tag:'option', html:"Norsk nynorsk", value:'nn-NO', disabled:true},
63 {tag:'option', html:"Persian (Western) (فارسى)", value:'fa-IR', disabled:true},
64 {tag:'option', html:"Polski", value:'pl-PL', disabled:true},
65 {tag:'option', html:"Português", value:'pt-PT'/ *, disabled:true* /},
66 {tag:'option', html:"Português Brasileiro", value:'pt-BR'/ *, disabled:true* /},
67 {tag:'option', html:"Românä", value:'ro-RO', disabled:true},
68 {tag:'option', html:"Russian (Русский)", value:'ru-RU', disabled:true},
69 {tag:'option', html:"Slovak (Slovenčina)", value:'sk-SK', disabled:true},
70 {tag:'option', html:"Slovenian (Slovenščina)", value:'sl-SI', disabled:true},
71 {tag:'option', html:"Suomi", value:'fi-FI', disabled:true},
72 {tag:'option', html:"Svenska", value:'sv-SE', disabled:true},
73 {tag:'option', html:"Thai (ไทย)", value:'th-TH', disabled:true},
74 {tag:'option', html:"Türkçe", value:'tr-TR', disabled:true},
75 {tag:'option', html:"Ukrainian (Українська)", value:'uk-UA', disabled:true}
76* /
77 {tag:'option', html:"Arabic (العربية)", value:"ar", disabled:true, cls:'disabledOption'},
78 // {tag:'option', html:"Chinese (中文)", value:"zh", disabled:true},
79 {tag:'option', html:"Chinese (Simplified) (简体中文)", value:'zh-CN'},
80 {tag:'option', html:"Dutch (Nederlands)", value:"nl-NL", disabled:true, cls:'disabledOption'},
81 {tag:'option', html:"English", value:"en-US"},
82 {tag:'option', html:"French (Français)", value:"fr-FR"},
83 {tag:'option', html:"German (Deutsch)", value:"de-DE", disabled:true, cls:'disabledOption'},
84 {tag:'option', html:"Greek (Ελληνικά)", value:"el-GR", disabled:true, cls:'disabledOption'},
85 {tag:'option', html:"Hebrew (עברית)", value:"he-IL", disabled:true, cls:'disabledOption'},
86 {tag:'option', html:"Italian (Italiano)", value:"it-IT"},
87 {tag:'option', html:"Japanese (日本語)", value:"ja-JP"},
88 {tag:'option', html:"Korean (한국어)", value:"ko-KR", disabled:true, cls:'disabledOption'},
89 {tag:'option', html:"Norwegian (Norsk)", value:"no", disabled:true, cls:'disabledOption'},
90 {tag:'option', html:"Persian (فارسی)", value:"fa-IR", disabled:true, cls:'disabledOption'},
91 {tag:'option', html:"Polish (Polski)", value:"pl-PL", disabled:true, cls:'disabledOption'},
92 {tag:'option', html:"Portuguese (Português)", value:"pt-BR"},
93 {tag:'option', html:"Russian (Русский)", value:"ru-RU", disabled:true, cls:'disabledOption'},
94 {tag:'option', html:"Spanish (Español)", value:"es-ES"},
95 {tag:'option', html:"Swedish (Svenska)", value:"sv-SE", disabled:true, cls:'disabledOption'},
96 {tag:'option', html:"Turkish (Türkçe)", value:"tr-TR", disabled:true, cls:'disabledOption'},
97 {tag:'option', html:"Vietnamese (Tiếng Việt)", value:"vi-VN", disabled:true, cls:'disabledOption'}
98 ]
99}
100*/
101
102Clipperz.PM.Strings.GeneralSettings = {
103 'defaults': {
104 // 'loginFormAarghThatsBadUrl':"http://www.clipperz.com/support/faq/account_faq",
105 // 'loginFormVerifyTheCodeUrl':"http://www.clipperz.com/learn_more/reviewing_the_code",
106
107 // 'donateHeaderLinkUrl': "http://www.clipperz.com/donations",
108 // 'creditsHeaderLinkUrl': "http://www.clipperz.com/credits",
109 // 'feedbackHeaderLinkUrl': "http://www.clipperz.com/contact",
110 // 'helpHeaderLinkUrl': "http://www.clipperz.com/support/user_guide",
111 // 'forumHeaderLinkUrl': "http://www.clipperz.com/forum",
112
113 // 'httpAuthBookmarkletConfiguration':{tag:'textarea', id:'httpAuthDefaultConfiguration', html:"" +
114 // "{ \"page\":{\"title\":\"HTTP authentication\"}," + "\n" +
115 // " \"form\":{\"attributes\": {" + "\n" +
116 // " \"action\":\"\"," + "\n" +
117 // " \"type\":\"http_auth\"" + "\n" +
118 // " }, \"inputs\": [" + "\n" +
119 // " {\"type\":\"text\",\"name\":\"url\",\"value\":\"\"}," + "\n" +
120 // " {\"type\":\"text\",\"name\":\"username\",\"value\":\"\"}," + "\n" +
121 // " {\"type\":\"password\",\"name\":\"password\",\"value\":\"\"}" + "\n" +
122 // " ]}, \"version\":\"0.2.3\"}"
123 // },
124
125 'directLoginJumpPageUrl':"",
126 'defaultFaviconUrl': "data:application/octet-stream;charset=utf-8;base64,AAABAAEAFxcAAAEAGAD8BgAAFgAAACgAAAAXAAAALgAAAAEAGAAAAAAAAAAAABIXAAASFwAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////9zAC////////////////////////////////////////////////////////////////////////////////////////////9pAG////////////////////////////////////////////////////////////////////////////////////////////9rAC////////////////////////////////////////////////////////////////////////////////////////////9yAHP////////////////////////IyMizs7O6urrq6ur////////////Ozs6zs7Ozs7Pq6ur///////////////////////8AAAD////////////////////V1dWXl5eXl5eXl5elpaX4+Pj////Ozs6Xl5eXl5eXl5eenp7///////////////////////8AAAD////////////////////Ozs6Xl5eXl5eXl5eXl5fBwcHq6uqenp6Xl5eXl5eXl5eXl5f///////////////////////8AAAD////////////////////j4+OXl5eXl5eXl5eXl5eXl5elpaWXl5eXl5eXl5eXl5ezs7P///////////////////////8AAAD////////////////////////IyMiXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eenp7x8fH////////////////////////////////////////////////////4+PilpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5fOzs7////////////////////////////////////////////////////////q6uq6urqXl5eXl5eXl5eXl5eXl5eXl5eenp7V1dX4+Pj///////////////////////8AAAD////////////4+PjOzs6lpaWXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e6urrj4+P///////////////8AAAD////////////BwcGXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fx8fH///////////8AAAD///////////+zs7OXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5fj4+P///////////8AAAD////////////IyMiXl5eXl5eXl5eXl5e6urqXl5eXl5eXl5eXl5esrKylpaWXl5eXl5eXl5eenp7x8fH///////////8AAAD////////////////Ozs7Ozs7V1dX4+Pj///+Xl5eXl5eXl5eXl5fOzs7////q6urOzs7Ozs7q6ur///////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD///////////////////////////////////+Xl5eXl5eXl5eXl5fOzs7///////////////////////////////////8AAAD////////////////////////////////////IyMiXl5eXl5eenp7x8fH///////////////////////////////////8AAAD////////////////////////////////////////j4+Pj4+Px8fH///////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAD///////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo=",
127 'defaultFaviconUrl_IE': "https://www.clipperz.com/images/icons/misc/favicon.ico",
128
129 // 'icons_baseUrl':"https://www.clipperz.com/images/icons",
130
131 // 'passwordGeneratorLowercaseCharset':"abcdefghijklmnopqrstuvwxyz",
132 // 'passwordGeneratorUppercaseCharset':"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
133 // 'passwordGeneratorNumberCharset': "0123456789",
134 // 'passwordGeneratorSymbolCharset': "!@#$%^&*+?[]{}/|\\<>,.;:~=-_",
135
136 // 'passwordGenerator': {
137 // 'lowercaseCharset':"abcdefghijklmnopqrstuvwxyz",
138 // 'uppercaseCharset':"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
139 // 'numberCharset':"0123456789",
140 // 'symbolCharset':"!@#$%^&*+?[]{}/|\\<>,.;:~=-_",
141 // },
142
143 '_': ""
144 }
145}
146
147Clipperz.PM.Strings.defaultLanguages = {
148 'default':"en-us",
149
150 // 'de':"de-de",
151 // 'el':"el-gr",
152 // 'he':"he-il",
153 // 'ru':"ru-ru",
154
155 'fr':"fr-fr",
156 'es':"es-es",
157 'zh':"zh-cn",
158 'ja':"ja-jp",
159 'pt':"pt-br",
160 'it':"it-it",
161 'en': "en-us"
162}
163
164Clipperz.PM.Strings.inputTypeToRecordFieldType = {
165 'text': 'TXT',
166 'password': 'PWD',
167 'checkbox': 'CHECK',
168 'radio': 'RADIO',
169 'select': 'SELECT'
170};
171
172//-----------------------------------------------------------------------------
173
174Clipperz.PM.Strings.translateBookmarklet = function (aBookmarkletString) {
175 var result;
176
177 result = aBookmarkletString;
178
179 result = result.replace(/@BOOKMARKLET_NO_EXCEPTION_MESSAGE@/,Clipperz.PM.Strings.getValue('bookmarkletCopy.noExceptionMessage'));
180 result = result.replace(/@BOOKMARKLET_EXCEPTION_MESSAGE@/, Clipperz.PM.Strings.getValue('bookmarkletCopy.exceptionMessage'));
181 result = result.replace(/@BOOKMARKLET_COPY@/, Clipperz.PM.Strings.getValue('bookmarkletCopy.copy'));
182 result = result.replace(/@BOOKMARKLET_SUCCESSFUL_MESSAGE@/, Clipperz.PM.Strings.getValue('bookmarkletCopy.successfulMessage'));
183 result = result.replace(/@BOOKMARKLET_FAIL_MESSAGE@/, Clipperz.PM.Strings.getValue('bookmarkletCopy.failMessage'));
184
185 return result;
186}
187
188//-----------------------------------------------------------------------------
189
190Clipperz.PM.Strings.Languages.setSelectedLanguage = function(aLanguage) {
191 var language;
192 varselectedLanguage;
193
194 language = (aLanguage || Clipperz.PM.Strings.preferredLanguage || 'default').toLowerCase();
195 if (typeof(Clipperz.PM.Strings.defaultLanguages[language]) != 'undefined') {
196 language = Clipperz.PM.Strings.defaultLanguages[language];
197 }
198
199 if (typeof(Clipperz.PM.Strings.Languages[language]) != 'undefined') {
200 selectedLanguage = language;
201 } else if (typeof(Clipperz.PM.Strings.defaultLanguages[language.substr(0,2)]) != 'undefined') {
202 selectedLanguage = Clipperz.PM.Strings.defaultLanguages[language.substr(0,2)];
203 } else {
204 selectedLanguage = Clipperz.PM.Strings.defaultLanguages['default'];
205 }
206
207 if (selectedLanguage != Clipperz.PM.Strings.selectedLanguage) {
208 vartranslations;
209
210 Clipperz.PM.Strings.selectedLanguage = selectedLanguage;
211
212 translations = {};
213 // MochiKit.Base.update(translations, Clipperz.PM.Strings.standardStrings)
214
215 MochiKit.Base.updatetree(translations, Clipperz.PM.Strings.Languages['defaults']);
216 MochiKit.Base.updatetree(translations, Clipperz.PM.Strings.GeneralSettings['defaults']);
217
218 MochiKit.Base.updatetree(translations, Clipperz.PM.Strings.Languages[Clipperz.PM.Strings.defaultLanguages['default']]);
219 MochiKit.Base.updatetree(translations, Clipperz.PM.Strings.GeneralSettings[Clipperz.PM.Strings.defaultLanguages['default']]);
220
221 MochiKit.Base.updatetree(translations, Clipperz.PM.Strings.Languages[selectedLanguage]);
222 MochiKit.Base.updatetree(translations, Clipperz.PM.Strings.GeneralSettings[selectedLanguage]);
223
224 Clipperz.PM.Strings.stringsObjectStore = new Clipperz.KeyValueObjectStore(/*{'name':'String.stringsObjectStore [1]'}*/);
225 Clipperz.PM.Strings.stringsObjectStore.initWithValues(translations);
226
227 if (typeof(bookmarklet) != 'undefined') {
228 Clipperz.PM.Strings.stringsObjectStore.setValue('bookmarklet', Clipperz.PM.Strings.translateBookmarklet(bookmarklet));
229 }
230
231 MochiKit.Signal.signal(Clipperz.PM.Strings.Languages, 'switchLanguage', selectedLanguage);
232 }
233}
234
235//-----------------------------------------------------------------------------
236
237Clipperz.PM.Strings.getValue = function (aKeyPath, someKeyValues) {
238 varresult;
239
240 result = Clipperz.PM.Strings.stringsObjectStore.getValue(aKeyPath);
241
242 if (typeof(result) == 'string') {
243 if (typeof (someKeyValues) != 'undefined') {
244 varkey;
245
246 for (key in someKeyValues) {
247 result = result.replace( new RegExp(key), someKeyValues[key]);
248 }
249 }
250
251 result = result.replace(new RegExp('\n'), '<br>');
252 }
253
254 return result;
255}
256
257Clipperz.PM.Strings.errorDescriptionForException = function (anException) {
258 var result;
259
260 result = Clipperz.PM.Strings.getValue('exceptionsMessages' + '.' + anException.name);
261
262 if (result == null) {
263 result = anException.message;
264 }
265
266 return result;
267},
268
269//-----------------------------------------------------------------------------
270
271Clipperz.PM.Strings.Languages.initSetup = function() {
272 varlanguage;
273 varlanguageParser;
274
275 language = navigator.language || navigator.userLanguage; //en, en-US, .... "de", "nb-no"
276 languageParser = new RegExp("language=([a-z]{2}(?:\-[a-z]{2})?)(\&|$)", "i");
277 if (languageParser.test(window.location.search)) {
278 language = RegExp.$1;
279 }
280
281 Clipperz.PM.Strings.preferredLanguage = language.toLowerCase();
282 Clipperz.PM.Strings.Languages.setSelectedLanguage(Clipperz.PM.Strings.preferredLanguage);
283}
284
285//-----------------------------------------------------------------------------