Transposh WordPress Translation - Version 0.9.0

Version Description

= 0.8.0 = The widgets can have multiple instances, you need to change the current instance If you want to use a google/msn API key, it is now possible = 0.7.0 = New edit interface, tons of other fixes = 0.6.6 = Fixed two XSS vulnerabilities = 0.6.3 = Support .po/.mo files = 0.6.0 = Much improved translation interface engine = 0.5.7 = Fix for critical bug in 0.5.6 = 0.5.6 = Support pluggable widgets = 0.5.5 = Support for buddypress URLs = 0.5.3 = Support URL translation = 0.5.2 = Improved lang attribute support, changed default language translation option = 0.5.1 = Improved speed and database structure = 0.5.0 = Ability to translate all content, backup service for human translations = 0.4.3 = Minor bug fixes, more compatability = 0.4.2 = This version provides Haitian support, auto translate with bing support = 0.4.0 = This version provides integration with google-sitemaps-xml and wp-super-cache = 0.3.9 = This version allows sorting of languages within the widget

Download this release

Release Info

Developer oferwald
Plugin Icon 128x128 Transposh WordPress Translation
Version 0.9.0
Comparing to
See all releases

Code changes from version 0.8.5 to 0.9.0

Files changed (68) hide show
  1. core/FirePHP.class.php +1753 -0
  2. core/constants.php +6 -12
  3. core/logging.php +168 -0
  4. core/parser.php +50 -37
  5. core/shd/simple_html_dom.php +3 -3
  6. core/utils.php +20 -20
  7. css/admin.css +1 -0
  8. css/transposh.css +1 -1
  9. img/tplogo32.png +0 -0
  10. js/{transposhbackend.js → admin/backendtranslate.js} +2 -2
  11. js/{transposhcommentslang.js → admin/commentslang.js} +2 -2
  12. js/admin/languages.js +14 -0
  13. js/admin/utils.js +16 -0
  14. js/admin/warningclose.js +11 -0
  15. js/l/de.js +2 -2
  16. js/l/es.js +2 -2
  17. js/l/fa.js +2 -2
  18. js/l/he.js +2 -2
  19. js/l/it.js +2 -2
  20. js/l/nl.js +2 -2
  21. js/l/ru.js +2 -2
  22. js/transposh.js +8 -8
  23. js/transposhedit.js +16 -15
  24. js/transposhsettings.js +0 -22
  25. langs/transposh-de_DE.po +452 -208
  26. langs/transposh-es_ES.po +452 -208
  27. langs/transposh-fa_IR.po +451 -207
  28. langs/transposh-he_IL.mo +0 -0
  29. langs/transposh-he_IL.po +469 -218
  30. langs/transposh-it_IT.mo +0 -0
  31. langs/transposh-it_IT.po +490 -239
  32. langs/transposh-nl_NL.po +451 -207
  33. langs/transposh-pt_BR.po +452 -208
  34. langs/transposh-ru_RU.po +453 -209
  35. langs/transposh-tr_TR.po +452 -208
  36. readme.txt +22 -4
  37. screenshot-1.png +0 -0
  38. screenshot-2.png +0 -0
  39. screenshot-3.png +0 -0
  40. screenshot-4.png +0 -0
  41. screenshot-5.png +0 -0
  42. transposh.php +176 -151
  43. widgets/default/tpw_default.php +2 -2
  44. widgets/dropdown/tpw_image_dropdown.css +4 -30
  45. widgets/dropdown/tpw_image_dropdown.js +1 -1
  46. widgets/dropdown/tpw_image_dropdown.php +3 -3
  47. widgets/flags/tpw_flags.css +4 -2
  48. widgets/flags/tpw_flags.php +2 -2
  49. widgets/flags/tpw_flags_css.css +2 -0
  50. widgets/flags/tpw_flags_css.php +2 -2
  51. widgets/flagslist/tpw_list_with_flags.php +2 -2
  52. widgets/flagslist/tpw_list_with_flags_css.php +2 -2
  53. widgets/select2/select2.css +524 -0
  54. widgets/select2/select2.js +2407 -0
  55. widgets/select2/select2.min.js +82 -0
  56. widgets/select2/select2.png +0 -0
  57. widgets/select2/select2x2.png +0 -0
  58. widgets/select2/spinner.gif +0 -0
  59. widgets/select2/tpw_select2.js +21 -0
  60. widgets/select2/tpw_select2.php +51 -0
  61. wp/transposh_3rdparty.php +21 -16
  62. wp/transposh_admin.php +572 -448
  63. wp/transposh_ajax.php +2 -2
  64. wp/transposh_backup.php +7 -8
  65. wp/transposh_db.php +81 -79
  66. wp/transposh_options.php +235 -387
  67. wp/transposh_postpublish.php +23 -18
  68. wp/transposh_widget.php +27 -23
core/FirePHP.class.php ADDED
@@ -0,0 +1,1753 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Authors:
4
+ // - cadorn, Christoph Dorn <christoph@christophdorn.com>, Copyright 2007, New BSD License
5
+ // - qbbr, Sokolov Innokenty <sokolov.innokenty@gmail.com>, Copyright 2011, New BSD License
6
+ // - cadorn, Christoph Dorn <christoph@christophdorn.com>, Copyright 2011, MIT License
7
+
8
+ /**
9
+ * *** BEGIN LICENSE BLOCK *****
10
+ *
11
+ * [MIT License](http://www.opensource.org/licenses/mit-license.php)
12
+ *
13
+ * Copyright (c) 2007+ [Christoph Dorn](http://www.christophdorn.com/)
14
+ *
15
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ * of this software and associated documentation files (the "Software"), to deal
17
+ * in the Software without restriction, including without limitation the rights
18
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ * copies of the Software, and to permit persons to whom the Software is
20
+ * furnished to do so, subject to the following conditions:
21
+ *
22
+ * The above copyright notice and this permission notice shall be included in
23
+ * all copies or substantial portions of the Software.
24
+ *
25
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
31
+ * THE SOFTWARE.
32
+ *
33
+ * ***** END LICENSE BLOCK *****
34
+ *
35
+ * @copyright Copyright (C) 2007+ Christoph Dorn
36
+ * @author Christoph Dorn <christoph@christophdorn.com>
37
+ * @license [MIT License](http://www.opensource.org/licenses/mit-license.php)
38
+ * @package FirePHPCore
39
+ */
40
+ /**
41
+ * @see http://code.google.com/p/firephp/issues/detail?id=112
42
+ */
43
+ if (!defined('E_STRICT')) {
44
+ define('E_STRICT', 2048);
45
+ }
46
+ if (!defined('E_RECOVERABLE_ERROR')) {
47
+ define('E_RECOVERABLE_ERROR', 4096);
48
+ }
49
+ if (!defined('E_DEPRECATED')) {
50
+ define('E_DEPRECATED', 8192);
51
+ }
52
+ if (!defined('E_USER_DEPRECATED')) {
53
+ define('E_USER_DEPRECATED', 16384);
54
+ }
55
+
56
+ /**
57
+ * Sends the given data to the FirePHP Firefox Extension.
58
+ * The data can be displayed in the Firebug Console or in the
59
+ * "Server" request tab.
60
+ *
61
+ * For more information see: http://www.firephp.org/
62
+ *
63
+ * @copyright Copyright (C) 2007+ Christoph Dorn
64
+ * @author Christoph Dorn <christoph@christophdorn.com>
65
+ * @license [MIT License](http://www.opensource.org/licenses/mit-license.php)
66
+ * @package FirePHPCore
67
+ */
68
+ // added _tp suffix to avoid conflict with other plugins including same library
69
+ class FirePHP_tp {
70
+ /**
71
+ * FirePHP version
72
+ *
73
+ * @var string
74
+ */
75
+
76
+ const VERSION = '1.0.0b1rc7';
77
+
78
+ /**
79
+ * Firebug LOG level
80
+ *
81
+ * Logs a message to firebug console.
82
+ *
83
+ * @var string
84
+ */
85
+ const LOG = 'LOG';
86
+
87
+ /**
88
+ * Firebug INFO level
89
+ *
90
+ * Logs a message to firebug console and displays an info icon before the message.
91
+ *
92
+ * @var string
93
+ */
94
+ const INFO = 'INFO';
95
+
96
+ /**
97
+ * Firebug WARN level
98
+ *
99
+ * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise.
100
+ *
101
+ * @var string
102
+ */
103
+ const WARN = 'WARN';
104
+
105
+ /**
106
+ * Firebug ERROR level
107
+ *
108
+ * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.
109
+ *
110
+ * @var string
111
+ */
112
+ const ERROR = 'ERROR';
113
+
114
+ /**
115
+ * Dumps a variable to firebug's server panel
116
+ *
117
+ * @var string
118
+ */
119
+ const DUMP = 'DUMP';
120
+
121
+ /**
122
+ * Displays a stack trace in firebug console
123
+ *
124
+ * @var string
125
+ */
126
+ const TRACE = 'TRACE';
127
+
128
+ /**
129
+ * Displays an exception in firebug console
130
+ *
131
+ * Increments the firebug error count.
132
+ *
133
+ * @var string
134
+ */
135
+ const EXCEPTION = 'EXCEPTION';
136
+
137
+ /**
138
+ * Displays an table in firebug console
139
+ *
140
+ * @var string
141
+ */
142
+ const TABLE = 'TABLE';
143
+
144
+ /**
145
+ * Starts a group in firebug console
146
+ *
147
+ * @var string
148
+ */
149
+ const GROUP_START = 'GROUP_START';
150
+
151
+ /**
152
+ * Ends a group in firebug console
153
+ *
154
+ * @var string
155
+ */
156
+ const GROUP_END = 'GROUP_END';
157
+
158
+ /**
159
+ * Singleton instance of FirePHP
160
+ *
161
+ * @var FirePHP
162
+ */
163
+ protected static $instance = null;
164
+
165
+ /**
166
+ * Flag whether we are logging from within the exception handler
167
+ *
168
+ * @var boolean
169
+ */
170
+ protected $inExceptionHandler = false;
171
+
172
+ /**
173
+ * Flag whether to throw PHP errors that have been converted to ErrorExceptions
174
+ *
175
+ * @var boolean
176
+ */
177
+ protected $throwErrorExceptions = true;
178
+
179
+ /**
180
+ * Flag whether to convert PHP assertion errors to Exceptions
181
+ *
182
+ * @var boolean
183
+ */
184
+ protected $convertAssertionErrorsToExceptions = true;
185
+
186
+ /**
187
+ * Flag whether to throw PHP assertion errors that have been converted to Exceptions
188
+ *
189
+ * @var boolean
190
+ */
191
+ protected $throwAssertionExceptions = false;
192
+
193
+ /**
194
+ * Wildfire protocol message index
195
+ *
196
+ * @var integer
197
+ */
198
+ protected $messageIndex = 1;
199
+
200
+ /**
201
+ * Options for the library
202
+ *
203
+ * @var array
204
+ */
205
+ protected $options = array('maxDepth' => 10,
206
+ 'maxObjectDepth' => 5,
207
+ 'maxArrayDepth' => 5,
208
+ 'useNativeJsonEncode' => true,
209
+ 'includeLineNumbers' => true);
210
+
211
+ /**
212
+ * Filters used to exclude object members when encoding
213
+ *
214
+ * @var array
215
+ */
216
+ protected $objectFilters = array(
217
+ 'firephp' => array('objectStack', 'instance', 'json_objectStack'),
218
+ 'firephp_test_class' => array('objectStack', 'instance', 'json_objectStack')
219
+ );
220
+
221
+ /**
222
+ * A stack of objects used to detect recursion during object encoding
223
+ *
224
+ * @var object
225
+ */
226
+ protected $objectStack = array();
227
+
228
+ /**
229
+ * Flag to enable/disable logging
230
+ *
231
+ * @var boolean
232
+ */
233
+ protected $enabled = true;
234
+
235
+ /**
236
+ * The insight console to log to if applicable
237
+ *
238
+ * @var object
239
+ */
240
+ protected $logToInsightConsole = null;
241
+
242
+ /**
243
+ * When the object gets serialized only include specific object members.
244
+ *
245
+ * @return array
246
+ */
247
+ public function __sleep() {
248
+ return array('options', 'objectFilters', 'enabled');
249
+ }
250
+
251
+ /**
252
+ * Gets singleton instance of FirePHP
253
+ *
254
+ * @param boolean $autoCreate
255
+ * @return FirePHP
256
+ */
257
+ public static function getInstance($autoCreate = false) {
258
+ if ($autoCreate === true && !self::$instance) {
259
+ self::init();
260
+ }
261
+ return self::$instance;
262
+ }
263
+
264
+ /**
265
+ * Creates FirePHP object and stores it for singleton access
266
+ *
267
+ * @return FirePHP
268
+ */
269
+ public static function init() {
270
+ return self::setInstance(new self());
271
+ }
272
+
273
+ /**
274
+ * Set the instance of the FirePHP singleton
275
+ *
276
+ * @param FirePHP $instance The FirePHP object instance
277
+ * @return FirePHP
278
+ */
279
+ public static function setInstance($instance) {
280
+ return self::$instance = $instance;
281
+ }
282
+
283
+ /**
284
+ * Set an Insight console to direct all logging calls to
285
+ *
286
+ * @param object $console The console object to log to
287
+ * @return void
288
+ */
289
+ public function setLogToInsightConsole($console) {
290
+ if (is_string($console)) {
291
+ if (get_class($this) != 'FirePHP_Insight' && !is_subclass_of($this, 'FirePHP_Insight')) {
292
+ throw new Exception('FirePHP instance not an instance or subclass of FirePHP_Insight!');
293
+ }
294
+ $this->logToInsightConsole = $this->to('request')->console($console);
295
+ } else {
296
+ $this->logToInsightConsole = $console;
297
+ }
298
+ }
299
+
300
+ /**
301
+ * Enable and disable logging to Firebug
302
+ *
303
+ * @param boolean $enabled TRUE to enable, FALSE to disable
304
+ * @return void
305
+ */
306
+ public function setEnabled($enabled) {
307
+ $this->enabled = $enabled;
308
+ }
309
+
310
+ /**
311
+ * Check if logging is enabled
312
+ *
313
+ * @return boolean TRUE if enabled
314
+ */
315
+ public function getEnabled() {
316
+ return $this->enabled;
317
+ }
318
+
319
+ /**
320
+ * Specify a filter to be used when encoding an object
321
+ *
322
+ * Filters are used to exclude object members.
323
+ *
324
+ * @param string $class The class name of the object
325
+ * @param array $filter An array of members to exclude
326
+ * @return void
327
+ */
328
+ public function setObjectFilter($class, $filter) {
329
+ $this->objectFilters[strtolower($class)] = $filter;
330
+ }
331
+
332
+ /**
333
+ * Set some options for the library
334
+ *
335
+ * Options:
336
+ * - maxDepth: The maximum depth to traverse (default: 10)
337
+ * - maxObjectDepth: The maximum depth to traverse objects (default: 5)
338
+ * - maxArrayDepth: The maximum depth to traverse arrays (default: 5)
339
+ * - useNativeJsonEncode: If true will use json_encode() (default: true)
340
+ * - includeLineNumbers: If true will include line numbers and filenames (default: true)
341
+ *
342
+ * @param array $options The options to be set
343
+ * @return void
344
+ */
345
+ public function setOptions($options) {
346
+ $this->options = array_merge($this->options, $options);
347
+ }
348
+
349
+ /**
350
+ * Get options from the library
351
+ *
352
+ * @return array The currently set options
353
+ */
354
+ public function getOptions() {
355
+ return $this->options;
356
+ }
357
+
358
+ /**
359
+ * Set an option for the library
360
+ *
361
+ * @param string $name
362
+ * @param mixed $value
363
+ * @return void
364
+ * @throws Exception
365
+ */
366
+ public function setOption($name, $value) {
367
+ if (!isset($this->options[$name])) {
368
+ throw $this->newException('Unknown option: ' . $name);
369
+ }
370
+ $this->options[$name] = $value;
371
+ }
372
+
373
+ /**
374
+ * Get an option from the library
375
+ *
376
+ * @param string $name
377
+ * @return mixed
378
+ * @throws Exception
379
+ */
380
+ public function getOption($name) {
381
+ if (!isset($this->options[$name])) {
382
+ throw $this->newException('Unknown option: ' . $name);
383
+ }
384
+ return $this->options[$name];
385
+ }
386
+
387
+ /**
388
+ * Register FirePHP as your error handler
389
+ *
390
+ * Will throw exceptions for each php error.
391
+ *
392
+ * @return mixed Returns a string containing the previously defined error handler (if any)
393
+ */
394
+ public function registerErrorHandler($throwErrorExceptions = false) {
395
+ //NOTE: The following errors will not be caught by this error handler:
396
+ // E_ERROR, E_PARSE, E_CORE_ERROR,
397
+ // E_CORE_WARNING, E_COMPILE_ERROR,
398
+ // E_COMPILE_WARNING, E_STRICT
399
+
400
+ $this->throwErrorExceptions = $throwErrorExceptions;
401
+
402
+ return set_error_handler(array($this, 'errorHandler'));
403
+ }
404
+
405
+ /**
406
+ * FirePHP's error handler
407
+ *
408
+ * Throws exception for each php error that will occur.
409
+ *
410
+ * @param integer $errno
411
+ * @param string $errstr
412
+ * @param string $errfile
413
+ * @param integer $errline
414
+ * @param array $errcontext
415
+ */
416
+ public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext) {
417
+ // Don't throw exception if error reporting is switched off
418
+ if (error_reporting() == 0) {
419
+ return;
420
+ }
421
+ // Only throw exceptions for errors we are asking for
422
+ if (error_reporting() & $errno) {
423
+
424
+ $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);
425
+ if ($this->throwErrorExceptions) {
426
+ throw $exception;
427
+ } else {
428
+ $this->fb($exception);
429
+ }
430
+ }
431
+ }
432
+
433
+ /**
434
+ * Register FirePHP as your exception handler
435
+ *
436
+ * @return mixed Returns the name of the previously defined exception handler,
437
+ * or NULL on error.
438
+ * If no previous handler was defined, NULL is also returned.
439
+ */
440
+ public function registerExceptionHandler() {
441
+ return set_exception_handler(array($this, 'exceptionHandler'));
442
+ }
443
+
444
+ /**
445
+ * FirePHP's exception handler
446
+ *
447
+ * Logs all exceptions to your firebug console and then stops the script.
448
+ *
449
+ * @param Exception $exception
450
+ * @throws Exception
451
+ */
452
+ function exceptionHandler($exception) {
453
+ $this->inExceptionHandler = true;
454
+
455
+ header('HTTP/1.1 500 Internal Server Error');
456
+
457
+ try {
458
+ $this->fb($exception);
459
+ } catch (Exception $e) {
460
+ echo 'We had an exception: ' . $e;
461
+ }
462
+
463
+ $this->inExceptionHandler = false;
464
+ }
465
+
466
+ /**
467
+ * Register FirePHP driver as your assert callback
468
+ *
469
+ * @param boolean $convertAssertionErrorsToExceptions
470
+ * @param boolean $throwAssertionExceptions
471
+ * @return mixed Returns the original setting or FALSE on errors
472
+ */
473
+ public function registerAssertionHandler($convertAssertionErrorsToExceptions = true, $throwAssertionExceptions = false) {
474
+ $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;
475
+ $this->throwAssertionExceptions = $throwAssertionExceptions;
476
+
477
+ if ($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
478
+ throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');
479
+ }
480
+
481
+ return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));
482
+ }
483
+
484
+ /**
485
+ * FirePHP's assertion handler
486
+ *
487
+ * Logs all assertions to your firebug console and then stops the script.
488
+ *
489
+ * @param string $file File source of assertion
490
+ * @param integer $line Line source of assertion
491
+ * @param mixed $code Assertion code
492
+ */
493
+ public function assertionHandler($file, $line, $code) {
494
+ if ($this->convertAssertionErrorsToExceptions) {
495
+
496
+ $exception = new ErrorException('Assertion Failed - Code[ ' . $code . ' ]', 0, null, $file, $line);
497
+
498
+ if ($this->throwAssertionExceptions) {
499
+ throw $exception;
500
+ } else {
501
+ $this->fb($exception);
502
+ }
503
+ } else {
504
+ $this->fb($code, 'Assertion Failed', FirePHP_tp::ERROR, array('File' => $file, 'Line' => $line));
505
+ }
506
+ }
507
+
508
+ /**
509
+ * Start a group for following messages.
510
+ *
511
+ * Options:
512
+ * Collapsed: [true|false]
513
+ * Color: [#RRGGBB|ColorName]
514
+ *
515
+ * @param string $name
516
+ * @param array $options OPTIONAL Instructions on how to log the group
517
+ * @return true
518
+ * @throws Exception
519
+ */
520
+ public function group($name, $options = null) {
521
+
522
+ if (!$name) {
523
+ throw $this->newException('You must specify a label for the group!');
524
+ }
525
+
526
+ if ($options) {
527
+ if (!is_array($options)) {
528
+ throw $this->newException('Options must be defined as an array!');
529
+ }
530
+ if (array_key_exists('Collapsed', $options)) {
531
+ $options['Collapsed'] = ($options['Collapsed']) ? 'true' : 'false';
532
+ }
533
+ }
534
+
535
+ return $this->fb(null, $name, FirePHP_tp::GROUP_START, $options);
536
+ }
537
+
538
+ /**
539
+ * Ends a group you have started before
540
+ *
541
+ * @return true
542
+ * @throws Exception
543
+ */
544
+ public function groupEnd() {
545
+ return $this->fb(null, null, FirePHP_tp::GROUP_END);
546
+ }
547
+
548
+ /**
549
+ * Log object with label to firebug console
550
+ *
551
+ * @see FirePHP_tp::LOG
552
+ * @param mixes $object
553
+ * @param string $label
554
+ * @return true
555
+ * @throws Exception
556
+ */
557
+ public function log($object, $label = null, $options = array()) {
558
+ return $this->fb($object, $label, FirePHP_tp::LOG, $options);
559
+ }
560
+
561
+ /**
562
+ * Log object with label to firebug console
563
+ *
564
+ * @see FirePHP_tp::INFO
565
+ * @param mixes $object
566
+ * @param string $label
567
+ * @return true
568
+ * @throws Exception
569
+ */
570
+ public function info($object, $label = null, $options = array()) {
571
+ return $this->fb($object, $label, FirePHP_tp::INFO, $options);
572
+ }
573
+
574
+ /**
575
+ * Log object with label to firebug console
576
+ *
577
+ * @see FirePHP_tp::WARN
578
+ * @param mixes $object
579
+ * @param string $label
580
+ * @return true
581
+ * @throws Exception
582
+ */
583
+ public function warn($object, $label = null, $options = array()) {
584
+ return $this->fb($object, $label, FirePHP_tp::WARN, $options);
585
+ }
586
+
587
+ /**
588
+ * Log object with label to firebug console
589
+ *
590
+ * @see FirePHP_tp::ERROR
591
+ * @param mixes $object
592
+ * @param string $label
593
+ * @return true
594
+ * @throws Exception
595
+ */
596
+ public function error($object, $label = null, $options = array()) {
597
+ return $this->fb($object, $label, FirePHP_tp::ERROR, $options);
598
+ }
599
+
600
+ /**
601
+ * Dumps key and variable to firebug server panel
602
+ *
603
+ * @see FirePHP_tp::DUMP
604
+ * @param string $key
605
+ * @param mixed $variable
606
+ * @return true
607
+ * @throws Exception
608
+ */
609
+ public function dump($key, $variable, $options = array()) {
610
+ if (!is_string($key)) {
611
+ throw $this->newException('Key passed to dump() is not a string');
612
+ }
613
+ if (strlen($key) > 100) {
614
+ throw $this->newException('Key passed to dump() is longer than 100 characters');
615
+ }
616
+ if (!preg_match_all('/^[a-zA-Z0-9-_\.:]*$/', $key, $m)) {
617
+ throw $this->newException('Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:]');
618
+ }
619
+ return $this->fb($variable, $key, FirePHP_tp::DUMP, $options);
620
+ }
621
+
622
+ /**
623
+ * Log a trace in the firebug console
624
+ *
625
+ * @see FirePHP_tp::TRACE
626
+ * @param string $label
627
+ * @return true
628
+ * @throws Exception
629
+ */
630
+ public function trace($label) {
631
+ return $this->fb($label, FirePHP_tp::TRACE);
632
+ }
633
+
634
+ /**
635
+ * Log a table in the firebug console
636
+ *
637
+ * @see FirePHP_tp::TABLE
638
+ * @param string $label
639
+ * @param string $table
640
+ * @return true
641
+ * @throws Exception
642
+ */
643
+ public function table($label, $table, $options = array()) {
644
+ return $this->fb($table, $label, FirePHP_tp::TABLE, $options);
645
+ }
646
+
647
+ /**
648
+ * Insight API wrapper
649
+ *
650
+ * @see Insight_Helper::to()
651
+ */
652
+ public static function to() {
653
+ $instance = self::getInstance();
654
+ if (!method_exists($instance, '_to')) {
655
+ throw new Exception('FirePHP_tp::to() implementation not loaded');
656
+ }
657
+ $args = func_get_args();
658
+ return call_user_func_array(array($instance, '_to'), $args);
659
+ }
660
+
661
+ /**
662
+ * Insight API wrapper
663
+ *
664
+ * @see Insight_Helper::plugin()
665
+ */
666
+ public static function plugin() {
667
+ $instance = self::getInstance();
668
+ if (!method_exists($instance, '_plugin')) {
669
+ throw new Exception('FirePHP_tp::plugin() implementation not loaded');
670
+ }
671
+ $args = func_get_args();
672
+ return call_user_func_array(array($instance, '_plugin'), $args);
673
+ }
674
+
675
+ /**
676
+ * Check if FirePHP is installed on client
677
+ *
678
+ * @return boolean
679
+ */
680
+ public function detectClientExtension() {
681
+ // Check if FirePHP is installed on client via User-Agent header
682
+ if (@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si', $this->getUserAgent(), $m) &&
683
+ version_compare($m[1][0], '0.0.6', '>=')) {
684
+ return true;
685
+ } else
686
+ // Check if FirePHP is installed on client via X-FirePHP-Version header
687
+ if (@preg_match_all('/^([\.\d]*)$/si', $this->getRequestHeader('X-FirePHP-Version'), $m) &&
688
+ version_compare($m[1][0], '0.0.6', '>=')) {
689
+ return true;
690
+ }
691
+ return false;
692
+ }
693
+
694
+ /**
695
+ * Log varible to Firebug
696
+ *
697
+ * @see http://www.firephp.org/Wiki/Reference/Fb
698
+ * @param mixed $object The variable to be logged
699
+ * @return boolean Return TRUE if message was added to headers, FALSE otherwise
700
+ * @throws Exception
701
+ */
702
+ public function fb($object) {
703
+ if ($this instanceof FirePHP_Insight && method_exists($this, '_logUpgradeClientMessage')) {
704
+ if (!FirePHP_Insight::$upgradeClientMessageLogged) { // avoid infinite recursion as _logUpgradeClientMessage() logs a message
705
+ $this->_logUpgradeClientMessage();
706
+ }
707
+ }
708
+
709
+ static $insightGroupStack = array();
710
+
711
+ if (!$this->getEnabled()) {
712
+ return false;
713
+ }
714
+
715
+ if ($this->headersSent($filename, $linenum)) {
716
+ // If we are logging from within the exception handler we cannot throw another exception
717
+ if ($this->inExceptionHandler) {
718
+ // Simply echo the error out to the page
719
+ echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>' . $filename . '</b> on line <b>' . $linenum . '</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';
720
+ } else {
721
+ throw $this->newException('Headers already sent in ' . $filename . ' on line ' . $linenum . '. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
722
+ }
723
+ }
724
+
725
+ $type = null;
726
+ $label = null;
727
+ $options = array();
728
+
729
+ if (func_num_args() == 1) {
730
+
731
+ } else if (func_num_args() == 2) {
732
+ switch (func_get_arg(1)) {
733
+ case self::LOG:
734
+ case self::INFO:
735
+ case self::WARN:
736
+ case self::ERROR:
737
+ case self::DUMP:
738
+ case self::TRACE:
739
+ case self::EXCEPTION:
740
+ case self::TABLE:
741
+ case self::GROUP_START:
742
+ case self::GROUP_END:
743
+ $type = func_get_arg(1);
744
+ break;
745
+ default:
746
+ $label = func_get_arg(1);
747
+ break;
748
+ }
749
+ } else if (func_num_args() == 3) {
750
+ $type = func_get_arg(2);
751
+ $label = func_get_arg(1);
752
+ } else if (func_num_args() == 4) {
753
+ $type = func_get_arg(2);
754
+ $label = func_get_arg(1);
755
+ $options = func_get_arg(3);
756
+ } else {
757
+ throw $this->newException('Wrong number of arguments to fb() function!');
758
+ }
759
+
760
+ if ($this->logToInsightConsole !== null && (get_class($this) == 'FirePHP_Insight' || is_subclass_of($this, 'FirePHP_Insight'))) {
761
+ $trace = debug_backtrace();
762
+ if (!$trace) return false;
763
+ for ($i = 0; $i < sizeof($trace); $i++) {
764
+ if (isset($trace[$i]['class'])) {
765
+ if ($trace[$i]['class'] == 'FirePHP' || $trace[$i]['class'] == 'FB') {
766
+ continue;
767
+ }
768
+ }
769
+ if (isset($trace[$i]['file'])) {
770
+ $path = $this->_standardizePath($trace[$i]['file']);
771
+ if (substr($path, -18, 18) == 'FirePHPCore/fb.php' || substr($path, -29, 29) == 'FirePHPCore/FirePHP.class.php') {
772
+ continue;
773
+ }
774
+ }
775
+ if (isset($trace[$i]['function']) && $trace[$i]['function'] == 'fb' &&
776
+ isset($trace[$i - 1]['file']) && substr($this->_standardizePath($trace[$i - 1]['file']), -18, 18) == 'FirePHPCore/fb.php') {
777
+ continue;
778
+ }
779
+ if (isset($trace[$i]['class']) && $trace[$i]['class'] == 'FB' &&
780
+ isset($trace[$i - 1]['file']) && substr($this->_standardizePath($trace[$i - 1]['file']), -18, 18) == 'FirePHPCore/fb.php') {
781
+ continue;
782
+ }
783
+ break;
784
+ }
785
+ // adjust trace offset
786
+ $msg = $this->logToInsightConsole->option('encoder.trace.offsetAdjustment', $i);
787
+
788
+ if ($object instanceof Exception) {
789
+ $type = self::EXCEPTION;
790
+ }
791
+ if ($label && $type != self::TABLE && $type != self::GROUP_START) {
792
+ $msg = $msg->label($label);
793
+ }
794
+ switch ($type) {
795
+ case self::DUMP:
796
+ case self::LOG:
797
+ return $msg->log($object);
798
+ case self::INFO:
799
+ return $msg->info($object);
800
+ case self::WARN:
801
+ return $msg->warn($object);
802
+ case self::ERROR:
803
+ return $msg->error($object);
804
+ case self::TRACE:
805
+ return $msg->trace($object);
806
+ case self::EXCEPTION:
807
+ return $this->plugin('error')->handleException($object, $msg);
808
+ case self::TABLE:
809
+ if (isset($object[0]) && !is_string($object[0]) && $label) {
810
+ $object = array($label, $object);
811
+ }
812
+ return $msg->table($object[0], array_slice($object[1], 1), $object[1][0]);
813
+ case self::GROUP_START:
814
+ $insightGroupStack[] = $msg->group(md5($label))->open();
815
+ return $msg->log($label);
816
+ case self::GROUP_END:
817
+ if (count($insightGroupStack) == 0) {
818
+ throw new Error('Too many groupEnd() as opposed to group() calls!');
819
+ }
820
+ $group = array_pop($insightGroupStack);
821
+ return $group->close();
822
+ default:
823
+ return $msg->log($object);
824
+ }
825
+ }
826
+
827
+ if (!$this->detectClientExtension()) {
828
+ return false;
829
+ }
830
+
831
+ $meta = array();
832
+ $skipFinalObjectEncode = false;
833
+
834
+ if ($object instanceof Exception) {
835
+
836
+ $meta['file'] = $this->_escapeTraceFile($object->getFile());
837
+ $meta['line'] = $object->getLine();
838
+
839
+ $trace = $object->getTrace();
840
+ if ($object instanceof ErrorException
841
+ && isset($trace[0]['function'])
842
+ && $trace[0]['function'] == 'errorHandler'
843
+ && isset($trace[0]['class'])
844
+ && $trace[0]['class'] == 'FirePHP') {
845
+
846
+ $severity = false;
847
+ switch ($object->getSeverity()) {
848
+ case E_WARNING:
849
+ $severity = 'E_WARNING';
850
+ break;
851
+
852
+ case E_NOTICE:
853
+ $severity = 'E_NOTICE';
854
+ break;
855
+
856
+ case E_USER_ERROR:
857
+ $severity = 'E_USER_ERROR';
858
+ break;
859
+
860
+ case E_USER_WARNING:
861
+ $severity = 'E_USER_WARNING';
862
+ break;
863
+
864
+ case E_USER_NOTICE:
865
+ $severity = 'E_USER_NOTICE';
866
+ break;
867
+
868
+ case E_STRICT:
869
+ $severity = 'E_STRICT';
870
+ break;
871
+
872
+ case E_RECOVERABLE_ERROR:
873
+ $severity = 'E_RECOVERABLE_ERROR';
874
+ break;
875
+
876
+ case E_DEPRECATED:
877
+ $severity = 'E_DEPRECATED';
878
+ break;
879
+
880
+ case E_USER_DEPRECATED:
881
+ $severity = 'E_USER_DEPRECATED';
882
+ break;
883
+ }
884
+
885
+ $object = array('Class' => get_class($object),
886
+ 'Message' => $severity . ': ' . $object->getMessage(),
887
+ 'File' => $this->_escapeTraceFile($object->getFile()),
888
+ 'Line' => $object->getLine(),
889
+ 'Type' => 'trigger',
890
+ 'Trace' => $this->_escapeTrace(array_splice($trace, 2)));
891
+ $skipFinalObjectEncode = true;
892
+ } else {
893
+ $object = array('Class' => get_class($object),
894
+ 'Message' => $object->getMessage(),
895
+ 'File' => $this->_escapeTraceFile($object->getFile()),
896
+ 'Line' => $object->getLine(),
897
+ 'Type' => 'throw',
898
+ 'Trace' => $this->_escapeTrace($trace));
899
+ $skipFinalObjectEncode = true;
900
+ }
901
+ $type = self::EXCEPTION;
902
+ } else if ($type == self::TRACE) {
903
+
904
+ $trace = debug_backtrace();
905
+ if (!$trace) return false;
906
+ for ($i = 0; $i < sizeof($trace); $i++) {
907
+
908
+ if (isset($trace[$i]['class'])
909
+ && isset($trace[$i]['file'])
910
+ && ($trace[$i]['class'] == 'FirePHP'
911
+ || $trace[$i]['class'] == 'FB')
912
+ && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php'
913
+ || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) {
914
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
915
+ } else
916
+ if (isset($trace[$i]['class'])
917
+ && isset($trace[$i + 1]['file'])
918
+ && $trace[$i]['class'] == 'FirePHP'
919
+ && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') {
920
+ /* Skip fb() */
921
+ } else
922
+ if ($trace[$i]['function'] == 'fb'
923
+ || $trace[$i]['function'] == 'trace'
924
+ || $trace[$i]['function'] == 'send') {
925
+
926
+ $object = array('Class' => isset($trace[$i]['class']) ? $trace[$i]['class'] : '',
927
+ 'Type' => isset($trace[$i]['type']) ? $trace[$i]['type'] : '',
928
+ 'Function' => isset($trace[$i]['function']) ? $trace[$i]['function'] : '',
929
+ 'Message' => $trace[$i]['args'][0],
930
+ 'File' => isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '',
931
+ 'Line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : '',
932
+ 'Args' => isset($trace[$i]['args']) ? $this->encodeObject($trace[$i]['args']) : '',
933
+ 'Trace' => $this->_escapeTrace(array_splice($trace, $i + 1)));
934
+
935
+ $skipFinalObjectEncode = true;
936
+ $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '';
937
+ $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : '';
938
+ break;
939
+ }
940
+ }
941
+ } else
942
+ if ($type == self::TABLE) {
943
+
944
+ if (isset($object[0]) && is_string($object[0])) {
945
+ $object[1] = $this->encodeTable($object[1]);
946
+ } else {
947
+ $object = $this->encodeTable($object);
948
+ }
949
+
950
+ $skipFinalObjectEncode = true;
951
+ } else if ($type == self::GROUP_START) {
952
+
953
+ if (!$label) {
954
+ throw $this->newException('You must specify a label for the group!');
955
+ }
956
+ } else {
957
+ if ($type === null) {
958
+ $type = self::LOG;
959
+ }
960
+ }
961
+
962
+ if ($this->options['includeLineNumbers']) {
963
+ if (!isset($meta['file']) || !isset($meta['line'])) {
964
+
965
+ $trace = debug_backtrace();
966
+ for ($i = 0; $trace && $i < sizeof($trace); $i++) {
967
+
968
+ if (isset($trace[$i]['class'])
969
+ && isset($trace[$i]['file'])
970
+ && ($trace[$i]['class'] == 'FirePHP'
971
+ || $trace[$i]['class'] == 'FB')
972
+ && (substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php'
973
+ || substr($this->_standardizePath($trace[$i]['file']), -29, 29) == 'FirePHPCore/FirePHP.class.php')) {
974
+ /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
975
+ } else
976
+ if (isset($trace[$i]['class'])
977
+ && isset($trace[$i + 1]['file'])
978
+ && $trace[$i]['class'] == 'FirePHP'
979
+ && substr($this->_standardizePath($trace[$i + 1]['file']), -18, 18) == 'FirePHPCore/fb.php') {
980
+ /* Skip fb() */
981
+ } else
982
+ if (isset($trace[$i]['file'])
983
+ && substr($this->_standardizePath($trace[$i]['file']), -18, 18) == 'FirePHPCore/fb.php') {
984
+ /* Skip FB::fb() */
985
+ } else {
986
+ $meta['file'] = isset($trace[$i]['file']) ? $this->_escapeTraceFile($trace[$i]['file']) : '';
987
+ $meta['line'] = isset($trace[$i]['line']) ? $trace[$i]['line'] : '';
988
+ break;
989
+ }
990
+ }
991
+ }
992
+ } else {
993
+ unset($meta['file']);
994
+ unset($meta['line']);
995
+ }
996
+
997
+ $this->setHeader('X-Wf-Protocol-1', 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
998
+ $this->setHeader('X-Wf-1-Plugin-1', 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/' . self::VERSION);
999
+
1000
+ $structureIndex = 1;
1001
+ if ($type == self::DUMP) {
1002
+ $structureIndex = 2;
1003
+ $this->setHeader('X-Wf-1-Structure-2', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
1004
+ } else {
1005
+ $this->setHeader('X-Wf-1-Structure-1', 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
1006
+ }
1007
+
1008
+ if ($type == self::DUMP) {
1009
+ $msg = '{"' . $label . '":' . $this->jsonEncode($object, $skipFinalObjectEncode) . '}';
1010
+ } else {
1011
+ $msgMeta = $options;
1012
+ $msgMeta['Type'] = $type;
1013
+ if ($label !== null) {
1014
+ $msgMeta['Label'] = $label;
1015
+ }
1016
+ if (isset($meta['file']) && !isset($msgMeta['File'])) {
1017
+ $msgMeta['File'] = $meta['file'];
1018
+ }
1019
+ if (isset($meta['line']) && !isset($msgMeta['Line'])) {
1020
+ $msgMeta['Line'] = $meta['line'];
1021
+ }
1022
+ $msg = '[' . $this->jsonEncode($msgMeta) . ',' . $this->jsonEncode($object, $skipFinalObjectEncode) . ']';
1023
+ }
1024
+
1025
+ $parts = explode("\n", chunk_split($msg, 5000, "\n"));
1026
+
1027
+ for ($i = 0; $i < count($parts); $i++) {
1028
+
1029
+ $part = $parts[$i];
1030
+ if ($part) {
1031
+
1032
+ if (count($parts) > 2) {
1033
+ // Message needs to be split into multiple parts
1034
+ $this->setHeader('X-Wf-1-' . $structureIndex . '-' . '1-' . $this->messageIndex, (($i == 0) ? strlen($msg) : '')
1035
+ . '|' . $part . '|'
1036
+ . (($i < count($parts) - 2) ? '\\' : ''));
1037
+ } else {
1038
+ $this->setHeader('X-Wf-1-' . $structureIndex . '-' . '1-' . $this->messageIndex, strlen($part) . '|' . $part . '|');
1039
+ }
1040
+
1041
+ $this->messageIndex++;
1042
+
1043
+ if ($this->messageIndex > 99999) {
1044
+ throw $this->newException('Maximum number (99,999) of messages reached!');
1045
+ }
1046
+ }
1047
+ }
1048
+
1049
+ $this->setHeader('X-Wf-1-Index', $this->messageIndex - 1);
1050
+
1051
+ return true;
1052
+ }
1053
+
1054
+ /**
1055
+ * Standardizes path for windows systems.
1056
+ *
1057
+ * @param string $path
1058
+ * @return string
1059
+ */
1060
+ protected function _standardizePath($path) {
1061
+ return preg_replace('/\\\\+/', '/', $path);
1062
+ }
1063
+
1064
+ /**
1065
+ * Escape trace path for windows systems
1066
+ *
1067
+ * @param array $trace
1068
+ * @return array
1069
+ */
1070
+ protected function _escapeTrace($trace) {
1071
+ if (!$trace) return $trace;
1072
+ for ($i = 0; $i < sizeof($trace); $i++) {
1073
+ if (isset($trace[$i]['file'])) {
1074
+ $trace[$i]['file'] = $this->_escapeTraceFile($trace[$i]['file']);
1075
+ }
1076
+ if (isset($trace[$i]['args'])) {
1077
+ $trace[$i]['args'] = $this->encodeObject($trace[$i]['args']);
1078
+ }
1079
+ }
1080
+ return $trace;
1081
+ }
1082
+
1083
+ /**
1084
+ * Escape file information of trace for windows systems
1085
+ *
1086
+ * @param string $file
1087
+ * @return string
1088
+ */
1089
+ protected function _escapeTraceFile($file) {
1090
+ /* Check if we have a windows filepath */
1091
+ if (strpos($file, '\\')) {
1092
+ /* First strip down to single \ */
1093
+
1094
+ $file = preg_replace('/\\\\+/', '\\', $file);
1095
+
1096
+ return $file;
1097
+ }
1098
+ return $file;
1099
+ }
1100
+
1101
+ /**
1102
+ * Check if headers have already been sent
1103
+ *
1104
+ * @param string $filename
1105
+ * @param integer $linenum
1106
+ */
1107
+ protected function headersSent(&$filename, &$linenum) {
1108
+ return headers_sent($filename, $linenum);
1109
+ }
1110
+
1111
+ /**
1112
+ * Send header
1113
+ *
1114
+ * @param string $name
1115
+ * @param string $value
1116
+ */
1117
+ protected function setHeader($name, $value) {
1118
+ return header($name . ': ' . $value);
1119
+ }
1120
+
1121
+ /**
1122
+ * Get user agent
1123
+ *
1124
+ * @return string|false
1125
+ */
1126
+ protected function getUserAgent() {
1127
+ if (!isset($_SERVER['HTTP_USER_AGENT'])) return false;
1128
+ return $_SERVER['HTTP_USER_AGENT'];
1129
+ }
1130
+
1131
+ /**
1132
+ * Get all request headers
1133
+ *
1134
+ * @return array
1135
+ */
1136
+ public static function getAllRequestHeaders() {
1137
+ static $_cachedHeaders = false;
1138
+ if ($_cachedHeaders !== false) {
1139
+ return $_cachedHeaders;
1140
+ }
1141
+ $headers = array();
1142
+ if (function_exists('getallheaders')) {
1143
+ foreach (getallheaders() as $name => $value) {
1144
+ $headers[strtolower($name)] = $value;
1145
+ }
1146
+ } else {
1147
+ foreach ($_SERVER as $name => $value) {
1148
+ if (substr($name, 0, 5) == 'HTTP_') {
1149
+ $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value;
1150
+ }
1151
+ }
1152
+ }
1153
+ return $_cachedHeaders = $headers;
1154
+ }
1155
+
1156
+ /**
1157
+ * Get a request header
1158
+ *
1159
+ * @return string|false
1160
+ */
1161
+ protected function getRequestHeader($name) {
1162
+ $headers = self::getAllRequestHeaders();
1163
+ if (isset($headers[strtolower($name)])) {
1164
+ return $headers[strtolower($name)];
1165
+ }
1166
+ return false;
1167
+ }
1168
+
1169
+ /**
1170
+ * Returns a new exception
1171
+ *
1172
+ * @param string $message
1173
+ * @return Exception
1174
+ */
1175
+ protected function newException($message) {
1176
+ return new Exception($message);
1177
+ }
1178
+
1179
+ /**
1180
+ * Encode an object into a JSON string
1181
+ *
1182
+ * Uses PHP's jeson_encode() if available
1183
+ *
1184
+ * @param object $object The object to be encoded
1185
+ * @param boolean $skipObjectEncode
1186
+ * @return string The JSON string
1187
+ */
1188
+ public function jsonEncode($object, $skipObjectEncode = false) {
1189
+ if (!$skipObjectEncode) {
1190
+ $object = $this->encodeObject($object);
1191
+ }
1192
+
1193
+ if (function_exists('json_encode')
1194
+ && $this->options['useNativeJsonEncode'] != false) {
1195
+
1196
+ return json_encode($object);
1197
+ } else {
1198
+ return $this->json_encode($object);
1199
+ }
1200
+ }
1201
+
1202
+ /**
1203
+ * Encodes a table by encoding each row and column with encodeObject()
1204
+ *
1205
+ * @param array $table The table to be encoded
1206
+ * @return array
1207
+ */
1208
+ protected function encodeTable($table) {
1209
+ if (!$table) return $table;
1210
+
1211
+ $newTable = array();
1212
+ foreach ($table as $row) {
1213
+
1214
+ if (is_array($row)) {
1215
+ $newRow = array();
1216
+
1217
+ foreach ($row as $item) {
1218
+ $newRow[] = $this->encodeObject($item);
1219
+ }
1220
+
1221
+ $newTable[] = $newRow;
1222
+ }
1223
+ }
1224
+
1225
+ return $newTable;
1226
+ }
1227
+
1228
+ /**
1229
+ * Encodes an object including members with
1230
+ * protected and private visibility
1231
+ *
1232
+ * @param object $object The object to be encoded
1233
+ * @param integer $Depth The current traversal depth
1234
+ * @return array All members of the object
1235
+ */
1236
+ protected function encodeObject($object, $objectDepth = 1, $arrayDepth = 1, $maxDepth = 1) {
1237
+ if ($maxDepth > $this->options['maxDepth']) {
1238
+ return '** Max Depth (' . $this->options['maxDepth'] . ') **';
1239
+ }
1240
+
1241
+ $return = array();
1242
+
1243
+ if (is_resource($object)) {
1244
+
1245
+ return '** ' . (string) $object . ' **';
1246
+ } else if (is_object($object)) {
1247
+
1248
+ if ($objectDepth > $this->options['maxObjectDepth']) {
1249
+ return '** Max Object Depth (' . $this->options['maxObjectDepth'] . ') **';
1250
+ }
1251
+
1252
+ foreach ($this->objectStack as $refVal) {
1253
+ if ($refVal === $object) {
1254
+ return '** Recursion (' . get_class($object) . ') **';
1255
+ }
1256
+ }
1257
+ array_push($this->objectStack, $object);
1258
+
1259
+ $return['__className'] = $class = get_class($object);
1260
+ $classLower = strtolower($class);
1261
+
1262
+ $reflectionClass = new ReflectionClass($class);
1263
+ $properties = array();
1264
+ foreach ($reflectionClass->getProperties() as $property) {
1265
+ $properties[$property->getName()] = $property;
1266
+ }
1267
+
1268
+ $members = (array) $object;
1269
+
1270
+ foreach ($properties as $plainName => $property) {
1271
+
1272
+ $name = $rawName = $plainName;
1273
+ if ($property->isStatic()) {
1274
+ $name = 'static:' . $name;
1275
+ }
1276
+ if ($property->isPublic()) {
1277
+ $name = 'public:' . $name;
1278
+ } else if ($property->isPrivate()) {
1279
+ $name = 'private:' . $name;
1280
+ $rawName = "\0" . $class . "\0" . $rawName;
1281
+ } else if ($property->isProtected()) {
1282
+ $name = 'protected:' . $name;
1283
+ $rawName = "\0" . '*' . "\0" . $rawName;
1284
+ }
1285
+
1286
+ if (!(isset($this->objectFilters[$classLower])
1287
+ && is_array($this->objectFilters[$classLower])
1288
+ && in_array($plainName, $this->objectFilters[$classLower]))) {
1289
+
1290
+ if (array_key_exists($rawName, $members) && !$property->isStatic()) {
1291
+ $return[$name] = $this->encodeObject($members[$rawName], $objectDepth + 1, 1, $maxDepth + 1);
1292
+ } else {
1293
+ if (method_exists($property, 'setAccessible')) {
1294
+ $property->setAccessible(true);
1295
+ $return[$name] = $this->encodeObject($property->getValue($object), $objectDepth + 1, 1, $maxDepth + 1);
1296
+ } else
1297
+ if ($property->isPublic()) {
1298
+ $return[$name] = $this->encodeObject($property->getValue($object), $objectDepth + 1, 1, $maxDepth + 1);
1299
+ } else {
1300
+ $return[$name] = '** Need PHP 5.3 to get value **';
1301
+ }
1302
+ }
1303
+ } else {
1304
+ $return[$name] = '** Excluded by Filter **';
1305
+ }
1306
+ }
1307
+
1308
+ // Include all members that are not defined in the class
1309
+ // but exist in the object
1310
+ foreach ($members as $rawName => $value) {
1311
+
1312
+ $name = $rawName;
1313
+
1314
+ if ($name{0} == "\0") {
1315
+ $parts = explode("\0", $name);
1316
+ $name = $parts[2];
1317
+ }
1318
+
1319
+ $plainName = $name;
1320
+
1321
+ if (!isset($properties[$name])) {
1322
+ $name = 'undeclared:' . $name;
1323
+
1324
+ if (!(isset($this->objectFilters[$classLower])
1325
+ && is_array($this->objectFilters[$classLower])
1326
+ && in_array($plainName, $this->objectFilters[$classLower]))) {
1327
+
1328
+ $return[$name] = $this->encodeObject($value, $objectDepth + 1, 1, $maxDepth + 1);
1329
+ } else {
1330
+ $return[$name] = '** Excluded by Filter **';
1331
+ }
1332
+ }
1333
+ }
1334
+
1335
+ array_pop($this->objectStack);
1336
+ } elseif (is_array($object)) {
1337
+
1338
+ if ($arrayDepth > $this->options['maxArrayDepth']) {
1339
+ return '** Max Array Depth (' . $this->options['maxArrayDepth'] . ') **';
1340
+ }
1341
+
1342
+ foreach ($object as $key => $val) {
1343
+
1344
+ // Encoding the $GLOBALS PHP array causes an infinite loop
1345
+ // if the recursion is not reset here as it contains
1346
+ // a reference to itself. This is the only way I have come up
1347
+ // with to stop infinite recursion in this case.
1348
+ if ($key == 'GLOBALS'
1349
+ && is_array($val)
1350
+ && array_key_exists('GLOBALS', $val)) {
1351
+ $val['GLOBALS'] = '** Recursion (GLOBALS) **';
1352
+ }
1353
+
1354
+ if (!$this->is_utf8($key)) {
1355
+ $key = utf8_encode($key);
1356
+ }
1357
+
1358
+ $return[$key] = $this->encodeObject($val, 1, $arrayDepth + 1, $maxDepth + 1);
1359
+ }
1360
+ } else {
1361
+ if ($this->is_utf8($object)) {
1362
+ return $object;
1363
+ } else {
1364
+ return utf8_encode($object);
1365
+ }
1366
+ }
1367
+ return $return;
1368
+ }
1369
+
1370
+ /**
1371
+ * Returns true if $string is valid UTF-8 and false otherwise.
1372
+ *
1373
+ * @param mixed $str String to be tested
1374
+ * @return boolean
1375
+ */
1376
+ protected function is_utf8($str) {
1377
+ if (function_exists('mb_detect_encoding')) {
1378
+ return (
1379
+ mb_detect_encoding($str, 'UTF-8', true) == 'UTF-8' &&
1380
+ ($str === null || $this->jsonEncode($str, true) !== 'null')
1381
+ );
1382
+ }
1383
+ $c = 0;
1384
+ $b = 0;
1385
+ $bits = 0;
1386
+ $len = strlen($str);
1387
+ for ($i = 0; $i < $len; $i++) {
1388
+ $c = ord($str[$i]);
1389
+ if ($c > 128) {
1390
+ if (($c >= 254)) return false;
1391
+ elseif ($c >= 252) $bits = 6;
1392
+ elseif ($c >= 248) $bits = 5;
1393
+ elseif ($c >= 240) $bits = 4;
1394
+ elseif ($c >= 224) $bits = 3;
1395
+ elseif ($c >= 192) $bits = 2;
1396
+ else return false;
1397
+ if (($i + $bits) > $len) return false;
1398
+ while ($bits > 1) {
1399
+ $i++;
1400
+ $b = ord($str[$i]);
1401
+ if ($b < 128 || $b > 191) return false;
1402
+ $bits--;
1403
+ }
1404
+ }
1405
+ }
1406
+ return ($str === null || $this->jsonEncode($str, true) !== 'null');
1407
+ }
1408
+
1409
+ /**
1410
+ * Converts to and from JSON format.
1411
+ *
1412
+ * JSON (JavaScript Object Notation) is a lightweight data-interchange
1413
+ * format. It is easy for humans to read and write. It is easy for machines
1414
+ * to parse and generate. It is based on a subset of the JavaScript
1415
+ * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
1416
+ * This feature can also be found in Python. JSON is a text format that is
1417
+ * completely language independent but uses conventions that are familiar
1418
+ * to programmers of the C-family of languages, including C, C++, C#, Java,
1419
+ * JavaScript, Perl, TCL, and many others. These properties make JSON an
1420
+ * ideal data-interchange language.
1421
+ *
1422
+ * This package provides a simple encoder and decoder for JSON notation. It
1423
+ * is intended for use with client-side Javascript applications that make
1424
+ * use of HTTPRequest to perform server communication functions - data can
1425
+ * be encoded into JSON notation for use in a client-side javascript, or
1426
+ * decoded from incoming Javascript requests. JSON format is native to
1427
+ * Javascript, and can be directly eval()'ed with no further parsing
1428
+ * overhead
1429
+ *
1430
+ * All strings should be in ASCII or UTF-8 format!
1431
+ *
1432
+ * LICENSE: Redistribution and use in source and binary forms, with or
1433
+ * without modification, are permitted provided that the following
1434
+ * conditions are met: Redistributions of source code must retain the
1435
+ * above copyright notice, this list of conditions and the following
1436
+ * disclaimer. Redistributions in binary form must reproduce the above
1437
+ * copyright notice, this list of conditions and the following disclaimer
1438
+ * in the documentation and/or other materials provided with the
1439
+ * distribution.
1440
+ *
1441
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
1442
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1443
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
1444
+ * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
1445
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
1446
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
1447
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
1448
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
1449
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
1450
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
1451
+ * DAMAGE.
1452
+ *
1453
+ * @category
1454
+ * @package Services_JSON
1455
+ * @author Michal Migurski <mike-json@teczno.com>
1456
+ * @author Matt Knapp <mdknapp[at]gmail[dot]com>
1457
+ * @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
1458
+ * @author Christoph Dorn <christoph@christophdorn.com>
1459
+ * @copyright 2005 Michal Migurski
1460
+ * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
1461
+ * @license http://www.opensource.org/licenses/bsd-license.php
1462
+ * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
1463
+ */
1464
+
1465
+ /**
1466
+ * Keep a list of objects as we descend into the array so we can detect recursion.
1467
+ */
1468
+ private $json_objectStack = array();
1469
+
1470
+ /**
1471
+ * convert a string from one UTF-8 char to one UTF-16 char
1472
+ *
1473
+ * Normally should be handled by mb_convert_encoding, but
1474
+ * provides a slower PHP-only method for installations
1475
+ * that lack the multibye string extension.
1476
+ *
1477
+ * @param string $utf8 UTF-8 character
1478
+ * @return string UTF-16 character
1479
+ * @access private
1480
+ */
1481
+ private function json_utf82utf16($utf8) {
1482
+ // oh please oh please oh please oh please oh please
1483
+ if (function_exists('mb_convert_encoding')) {
1484
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
1485
+ }
1486
+
1487
+ switch (strlen($utf8)) {
1488
+ case 1:
1489
+ // this case should never be reached, because we are in ASCII range
1490
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1491
+ return $utf8;
1492
+
1493
+ case 2:
1494
+ // return a UTF-16 character from a 2-byte UTF-8 char
1495
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1496
+ return chr(0x07 & (ord($utf8{0}) >> 2))
1497
+ . chr((0xC0 & (ord($utf8{0}) << 6))
1498
+ | (0x3F & ord($utf8{1})));
1499
+
1500
+ case 3:
1501
+ // return a UTF-16 character from a 3-byte UTF-8 char
1502
+ // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1503
+ return chr((0xF0 & (ord($utf8{0}) << 4))
1504
+ | (0x0F & (ord($utf8{1}) >> 2)))
1505
+ . chr((0xC0 & (ord($utf8{1}) << 6))
1506
+ | (0x7F & ord($utf8{2})));
1507
+ }
1508
+
1509
+ // ignoring UTF-32 for now, sorry
1510
+ return '';
1511
+ }
1512
+
1513
+ /**
1514
+ * encodes an arbitrary variable into JSON format
1515
+ *
1516
+ * @param mixed $var any number, boolean, string, array, or object to be encoded.
1517
+ * see argument 1 to Services_JSON() above for array-parsing behavior.
1518
+ * if var is a strng, note that encode() always expects it
1519
+ * to be in ASCII or UTF-8 format!
1520
+ *
1521
+ * @return mixed JSON string representation of input var or an error if a problem occurs
1522
+ * @access public
1523
+ */
1524
+ private function json_encode($var) {
1525
+ if (is_object($var)) {
1526
+ if (in_array($var, $this->json_objectStack)) {
1527
+ return '"** Recursion **"';
1528
+ }
1529
+ }
1530
+
1531
+ switch (gettype($var)) {
1532
+ case 'boolean':
1533
+ return $var ? 'true' : 'false';
1534
+
1535
+ case 'NULL':
1536
+ return 'null';
1537
+
1538
+ case 'integer':
1539
+ return (int) $var;
1540
+
1541
+ case 'double':
1542
+ case 'float':
1543
+ return (float) $var;
1544
+
1545
+ case 'string':
1546
+ // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
1547
+ $ascii = '';
1548
+ $strlen_var = strlen($var);
1549
+
1550
+ /*
1551
+ * Iterate over every character in the string,
1552
+ * escaping with a slash or encoding to UTF-8 where necessary
1553
+ */
1554
+ for ($c = 0; $c < $strlen_var; ++$c) {
1555
+
1556
+ $ord_var_c = ord($var{$c});
1557
+
1558
+ switch (true) {
1559
+ case $ord_var_c == 0x08:
1560
+ $ascii .= '\b';
1561
+ break;
1562
+ case $ord_var_c == 0x09:
1563
+ $ascii .= '\t';
1564
+ break;
1565
+ case $ord_var_c == 0x0A:
1566
+ $ascii .= '\n';
1567
+ break;
1568
+ case $ord_var_c == 0x0C:
1569
+ $ascii .= '\f';
1570
+ break;
1571
+ case $ord_var_c == 0x0D:
1572
+ $ascii .= '\r';
1573
+ break;
1574
+
1575
+ case $ord_var_c == 0x22:
1576
+ case $ord_var_c == 0x2F:
1577
+ case $ord_var_c == 0x5C:
1578
+ // double quote, slash, slosh
1579
+ $ascii .= '\\' . $var{$c};
1580
+ break;
1581
+
1582
+ case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
1583
+ // characters U-00000000 - U-0000007F (same as ASCII)
1584
+ $ascii .= $var{$c};
1585
+ break;
1586
+
1587
+ case (($ord_var_c & 0xE0) == 0xC0):
1588
+ // characters U-00000080 - U-000007FF, mask 110XXXXX
1589
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1590
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
1591
+ $c += 1;
1592
+ $utf16 = $this->json_utf82utf16($char);
1593
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
1594
+ break;
1595
+
1596
+ case (($ord_var_c & 0xF0) == 0xE0):
1597
+ // characters U-00000800 - U-0000FFFF, mask 1110XXXX
1598
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1599
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}), ord($var{$c + 2}));
1600
+ $c += 2;
1601
+ $utf16 = $this->json_utf82utf16($char);
1602
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
1603
+ break;
1604
+
1605
+ case (($ord_var_c & 0xF8) == 0xF0):
1606
+ // characters U-00010000 - U-001FFFFF, mask 11110XXX
1607
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1608
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}), ord($var{$c + 2}), ord($var{$c + 3}));
1609
+ $c += 3;
1610
+ $utf16 = $this->json_utf82utf16($char);
1611
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
1612
+ break;
1613
+
1614
+ case (($ord_var_c & 0xFC) == 0xF8):
1615
+ // characters U-00200000 - U-03FFFFFF, mask 111110XX
1616
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1617
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}), ord($var{$c + 2}), ord($var{$c + 3}), ord($var{$c + 4}));
1618
+ $c += 4;
1619
+ $utf16 = $this->json_utf82utf16($char);
1620
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
1621
+ break;
1622
+
1623
+ case (($ord_var_c & 0xFE) == 0xFC):
1624
+ // characters U-04000000 - U-7FFFFFFF, mask 1111110X
1625
+ // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
1626
+ $char = pack('C*', $ord_var_c, ord($var{$c + 1}), ord($var{$c + 2}), ord($var{$c + 3}), ord($var{$c + 4}), ord($var{$c + 5}));
1627
+ $c += 5;
1628
+ $utf16 = $this->json_utf82utf16($char);
1629
+ $ascii .= sprintf('\u%04s', bin2hex($utf16));
1630
+ break;
1631
+ }
1632
+ }
1633
+
1634
+ return '"' . $ascii . '"';
1635
+
1636
+ case 'array':
1637
+ /*
1638
+ * As per JSON spec if any array key is not an integer
1639
+ * we must treat the the whole array as an object. We
1640
+ * also try to catch a sparsely populated associative
1641
+ * array with numeric keys here because some JS engines
1642
+ * will create an array with empty indexes up to
1643
+ * max_index which can cause memory issues and because
1644
+ * the keys, which may be relevant, will be remapped
1645
+ * otherwise.
1646
+ *
1647
+ * As per the ECMA and JSON specification an object may
1648
+ * have any string as a property. Unfortunately due to
1649
+ * a hole in the ECMA specification if the key is a
1650
+ * ECMA reserved word or starts with a digit the
1651
+ * parameter is only accessible using ECMAScript's
1652
+ * bracket notation.
1653
+ */
1654
+
1655
+ // treat as a JSON object
1656
+ if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
1657
+
1658
+ $this->json_objectStack[] = $var;
1659
+
1660
+ $properties = array_map(array($this, 'json_name_value'), array_keys($var), array_values($var));
1661
+
1662
+ array_pop($this->json_objectStack);
1663
+
1664
+ foreach ($properties as $property) {
1665
+ if ($property instanceof Exception) {
1666
+ return $property;
1667
+ }
1668
+ }
1669
+
1670
+ return '{' . join(',', $properties) . '}';
1671
+ }
1672
+
1673
+ $this->json_objectStack[] = $var;
1674
+
1675
+ // treat it like a regular array
1676
+ $elements = array_map(array($this, 'json_encode'), $var);
1677
+
1678
+ array_pop($this->json_objectStack);
1679
+
1680
+ foreach ($elements as $element) {
1681
+ if ($element instanceof Exception) {
1682
+ return $element;
1683
+ }
1684
+ }
1685
+
1686
+ return '[' . join(',', $elements) . ']';
1687
+
1688
+ case 'object':
1689
+ $vars = self::encodeObject($var);
1690
+
1691
+ $this->json_objectStack[] = $var;
1692
+
1693
+ $properties = array_map(array($this, 'json_name_value'), array_keys($vars), array_values($vars));
1694
+
1695
+ array_pop($this->json_objectStack);
1696
+
1697
+ foreach ($properties as $property) {
1698
+ if ($property instanceof Exception) {
1699
+ return $property;
1700
+ }
1701
+ }
1702
+
1703
+ return '{' . join(',', $properties) . '}';
1704
+
1705
+ default:
1706
+ return null;
1707
+ }
1708
+ }
1709
+
1710
+ /**
1711
+ * array-walking function for use in generating JSON-formatted name-value pairs
1712
+ *
1713
+ * @param string $name name of key to use
1714
+ * @param mixed $value reference to an array element to be encoded
1715
+ *
1716
+ * @return string JSON-formatted name-value pair, like '"name":value'
1717
+ * @access private
1718
+ */
1719
+ private function json_name_value($name, $value) {
1720
+ // Encoding the $GLOBALS PHP array causes an infinite loop
1721
+ // if the recursion is not reset here as it contains
1722
+ // a reference to itself. This is the only way I have come up
1723
+ // with to stop infinite recursion in this case.
1724
+ if ($name == 'GLOBALS'
1725
+ && is_array($value)
1726
+ && array_key_exists('GLOBALS', $value)) {
1727
+ $value['GLOBALS'] = '** Recursion **';
1728
+ }
1729
+
1730
+ $encodedValue = $this->json_encode($value);
1731
+
1732
+ if ($encodedValue instanceof Exception) {
1733
+ return $encodedValue;
1734
+ }
1735
+
1736
+ return $this->json_encode(strval($name)) . ':' . $encodedValue;
1737
+ }
1738
+
1739
+ /**
1740
+ * @deprecated
1741
+ */
1742
+ public function setProcessorUrl($URL) {
1743
+ trigger_error('The FirePHP_tp::setProcessorUrl() method is no longer supported', E_USER_DEPRECATED);
1744
+ }
1745
+
1746
+ /**
1747
+ * @deprecated
1748
+ */
1749
+ public function setRendererUrl($URL) {
1750
+ trigger_error('The FirePHP_tp::setRendererUrl() method is no longer supported', E_USER_DEPRECATED);
1751
+ }
1752
+
1753
+ }
core/constants.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  //Language indicator in URL. i.e. lang=en
@@ -130,10 +130,8 @@ class transposh_consts {
130
  // @updated 2010-Oct-01 (hy,az,eu,ka,la,ur)
131
  // @updated 2011-Nov-04
132
  // @updated 2012-Feb-24 (eo)
133
- // $google_languages = array('en', 'af', 'sq', 'ar', 'hy', 'az', 'eu', 'be', 'bg', 'ca', 'zh', 'zh-tw', 'hr', 'cs', 'da', 'nl', 'et', 'fi', 'fr', 'gl', 'ka', 'de', 'el', 'ht', 'he', 'hi', 'hu', 'id', 'it', 'is', 'ga', 'ja', 'ko', 'lv', 'lt', 'mk', 'ms', 'mt', 'no', 'fa', 'pl', 'pt', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'sw', 'sv', 'tl', 'th', 'tr', 'uk', 'ur', 'vi', 'cy', 'yi');
134
  public static $google_languages = array('en', 'af', 'sq', 'ar', 'be', 'bg', 'ca', 'zh', 'zh-tw', 'hr', 'cs', 'da', 'nl', 'et', 'fi', 'fr', 'gl', 'de', 'el', 'ht', 'he', 'hi', 'hu', 'id', 'it', 'is', 'ga', 'ja', 'ko', 'lo', 'lv', 'lt', 'mk', 'ms', 'mt', 'no', 'fa', 'pl', 'pt', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'sw', 'sv', 'tl', 'th', 'tr', 'uk', 'vi', 'cy', 'yi', 'hy', 'az', 'eu', 'ka', 'la', 'ur', 'ta', 'te', 'kn', 'bn', 'gu', 'eo');
135
- // public static $google_languages = array('en', 'af', 'sq', 'ar', 'be', 'bg', 'ca', 'zh', 'zh-tw', 'hr', 'cs', 'da', 'nl', 'et', 'fi', 'fr', 'gl', 'de', 'el', 'ht', 'he', 'hi', 'hu', 'id', 'it', 'is', 'ga', 'ja', 'ko', 'lv', 'lt', 'mk', 'ms', 'mt', 'no', 'fa', 'pl', 'pt', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'sw', 'sv', 'tl', 'th', 'tr', 'uk', 'vi', 'cy', 'yi');
136
- // public static $google_proxied_languages = array('hy', 'az', 'eu', 'ka', 'la', 'ur', 'ta', 'te', 'kn', 'bn', 'gu');
137
  // Bing supported languages
138
  // (got this using Microsoft.Translator.GetLanguages() - fixed to match our codes)
139
  // @updated 2012-Feb-14 (mww)
@@ -149,7 +147,6 @@ class transposh_consts {
149
  //Dari fa-af
150
  //Kazakh kk-kz
151
  //Khmer km-kh
152
- //Lao lo-la
153
  //Pashto ps
154
  //Uzbek uz-uz
155
  public static $oht_languages = array('en', 'sq', 'ar', 'bn', 'bg', 'ca', 'zh', 'zh-tw', 'hr', 'cs', 'da', 'nl', 'et', 'fa', 'fi', 'fr', 'ka', 'de', 'el', 'he', 'hi', 'hu', 'id', 'it', 'jp', 'ko', 'lo', 'lv', 'lt', 'mk', 'ms', 'no', 'pl', 'pt', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'sv', 'tl', 'ta', 'th', 'tr', 'uk', 'ur', 'vi');
@@ -166,24 +163,21 @@ class transposh_consts {
166
  define('TRANSLATOR', 'translator');
167
 
168
  //Define for transposh plugin version
169
- define('TRANSPOSH_PLUGIN_VER', '0.8.5');
170
 
171
  //Current jQuery UI
172
- define('JQUERYUI_VER', '1.8.23');
173
 
174
  //Define segment id prefix, will be included in span tag. also used as class identifier
175
  define('SPAN_PREFIX', 'tr_');
176
 
177
- //The name of our admin page
178
- define('TRANSPOSH_ADMIN_PAGE_NAME', 'transposh');
179
-
180
  //Our text domain
181
  define('TRANSPOSH_TEXT_DOMAIN', 'transposh');
182
 
183
  //0.3.5 - Storing all options in this config option
184
  define('TRANSPOSH_OPTIONS', 'transposh_options');
185
 
186
- //0.9.0 - Storing oht project
187
  define('TRANSPOSH_OPTIONS_OHT', 'transposh_options_oht');
188
  define('TRANSPOSH_OPTIONS_OHT_PROJECTS', 'transposh_options_oht_projects');
189
  define('TRANSPOSH_OHT_DELAY', 600);
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Sun, 16 Dec 2012 07:53:29 +0200
12
  */
13
 
14
  //Language indicator in URL. i.e. lang=en
130
  // @updated 2010-Oct-01 (hy,az,eu,ka,la,ur)
131
  // @updated 2011-Nov-04
132
  // @updated 2012-Feb-24 (eo)
133
+ // @updated 2012-Sep-17 (la)
134
  public static $google_languages = array('en', 'af', 'sq', 'ar', 'be', 'bg', 'ca', 'zh', 'zh-tw', 'hr', 'cs', 'da', 'nl', 'et', 'fi', 'fr', 'gl', 'de', 'el', 'ht', 'he', 'hi', 'hu', 'id', 'it', 'is', 'ga', 'ja', 'ko', 'lo', 'lv', 'lt', 'mk', 'ms', 'mt', 'no', 'fa', 'pl', 'pt', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'sw', 'sv', 'tl', 'th', 'tr', 'uk', 'vi', 'cy', 'yi', 'hy', 'az', 'eu', 'ka', 'la', 'ur', 'ta', 'te', 'kn', 'bn', 'gu', 'eo');
 
 
135
  // Bing supported languages
136
  // (got this using Microsoft.Translator.GetLanguages() - fixed to match our codes)
137
  // @updated 2012-Feb-14 (mww)
147
  //Dari fa-af
148
  //Kazakh kk-kz
149
  //Khmer km-kh
 
150
  //Pashto ps
151
  //Uzbek uz-uz
152
  public static $oht_languages = array('en', 'sq', 'ar', 'bn', 'bg', 'ca', 'zh', 'zh-tw', 'hr', 'cs', 'da', 'nl', 'et', 'fa', 'fi', 'fr', 'ka', 'de', 'el', 'he', 'hi', 'hu', 'id', 'it', 'jp', 'ko', 'lo', 'lv', 'lt', 'mk', 'ms', 'no', 'pl', 'pt', 'ro', 'ru', 'sr', 'sk', 'sl', 'es', 'sv', 'tl', 'ta', 'th', 'tr', 'uk', 'ur', 'vi');
163
  define('TRANSLATOR', 'translator');
164
 
165
  //Define for transposh plugin version
166
+ define('TRANSPOSH_PLUGIN_VER', '0.9.0');
167
 
168
  //Current jQuery UI
169
+ define('JQUERYUI_VER', '1.9.2');
170
 
171
  //Define segment id prefix, will be included in span tag. also used as class identifier
172
  define('SPAN_PREFIX', 'tr_');
173
 
 
 
 
174
  //Our text domain
175
  define('TRANSPOSH_TEXT_DOMAIN', 'transposh');
176
 
177
  //0.3.5 - Storing all options in this config option
178
  define('TRANSPOSH_OPTIONS', 'transposh_options');
179
 
180
+ //0.8.4 - Storing oht project
181
  define('TRANSPOSH_OPTIONS_OHT', 'transposh_options_oht');
182
  define('TRANSPOSH_OPTIONS_OHT_PROJECTS', 'transposh_options_oht_projects');
183
  define('TRANSPOSH_OHT_DELAY', 600);
core/logging.php ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Transposh v0.9.0
5
+ * http://transposh.org/
6
+ *
7
+ * Copyright 2012, Team Transposh
8
+ * Licensed under the GPL Version 2 or higher.
9
+ * http://transposh.org/license
10
+ *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
+ */
13
+
14
+ /*
15
+ * Logging utility class
16
+ */
17
+
18
+ // Report all PHP errors
19
+ //error_reporting(E_ALL);
20
+ require_once('FirePHP.class.php');
21
+
22
+ class tp_logger {
23
+
24
+ /** @var string Name of file to log into */
25
+ private $logfile;
26
+
27
+ /** @var int Tracing level, 0 is disabled (almost) and higher numbers show more debug info */
28
+ private $debug_level = 3;
29
+
30
+ /** @var boolean should logging be outputted to stdout */
31
+ public $printout = false;
32
+
33
+ /** @var boolean should logging outputted to stdout include an EOL */
34
+ public $eolprint = false;
35
+
36
+ /** @var boolean shell we show which function called the logger */
37
+ public $show_caller = true;
38
+
39
+ /** @var FirePHP used for outputing into firephp output */
40
+ private $firephp;
41
+
42
+ /** @var used for remote firephp debugging */
43
+ private $remoteip;
44
+
45
+ /** @var logger Singelton instance of our logger */
46
+ protected static $instance = null;
47
+
48
+ function __construct() {
49
+ // If not outputting to stdout, we should buffer so firephp will work
50
+ if (!$this->printout) {
51
+ ob_start();
52
+ }
53
+ $this->firephp = FirePHP_tp::getInstance(true);
54
+ }
55
+
56
+ /**
57
+ * Print a message to log.
58
+ * @param mixed $msg
59
+ * @param int $severity
60
+ */
61
+ function do_log($msg, $severity = 3, $do_backtrace = false, $nest = 0) {
62
+ if ($severity <= $this->debug_level) {
63
+ if ($this->show_caller) {
64
+ $trace = debug_backtrace();
65
+ if ($do_backtrace) $this->firephp->log($trace[3]);
66
+ if (isset($trace[2 + $nest]['class'])) {
67
+ $log_prefix = str_pad("{$trace[2 + $nest]['class']}::{$trace[2 + $nest]['function']} {$trace[1 + $nest]['line']}", 55 + $nest, '_');
68
+ } else {
69
+ $prefile = substr($trace[1 + $nest]['file'], strrpos($trace[1 + $nest]['file'], "/"));
70
+ $log_prefix = str_pad("{$prefile}::{$trace[1 + $nest]['function']} {$trace[1 + $nest]['line']}", 55 + $nest, '_');
71
+ }
72
+ }
73
+ if (isset($this->logfile) && $this->logfile) {
74
+ if (!is_array($msg) && !is_object($msg)) {
75
+ error_log(date(DATE_W3C) . " $log_prefix: " . $msg . "\n", 3, $this->logfile);
76
+ } else {
77
+ if (is_array($msg)) {
78
+ error_log(date(DATE_W3C) . " $log_prefix: Array start\n", 3, $this->logfile);
79
+ } else {
80
+ error_log(date(DATE_W3C) . " $log_prefix: Object start\n", 3, $this->logfile);
81
+ }
82
+ foreach ($msg as $key => $item) {
83
+ if (!is_array($item)) {
84
+ if (!is_object($item) || method_exists($item, '__toString'))
85
+ error_log(date(DATE_W3C) . " $log_prefix: $key => $item\n", 3, $this->logfile);
86
+ } else {
87
+ error_log(date(DATE_W3C) . " $log_prefix: subarray -> $key\n", 3, $this->logfile);
88
+ $this->do_log($item, $severity, false, $nest + 1);
89
+ }
90
+ }
91
+ error_log(date(DATE_W3C) . " $log_prefix: Array stop\n", 3, $this->logfile);
92
+ }
93
+ }
94
+ if ($this->printout || !isset($this->firephp)) {
95
+ echo "$log_prefix:$msg";
96
+ echo ($this->eolprint) ? "\n" : "<br/>";
97
+ } else {
98
+ if ($this->remoteip != $_SERVER['REMOTE_ADDR']) return;
99
+ if ((is_array($msg) || is_object($msg)) && $this->show_caller) {
100
+ $this->firephp->group("$log_prefix: object/array", array('Collapsed' => true,
101
+ 'Color' => '#FF00FF'));
102
+ //$this->firephp->log("$log_prefix:");
103
+ $this->firephp->log($msg);
104
+ $this->firephp->groupEnd();
105
+ } else {
106
+ if (is_array($msg) || is_object($msg)) {
107
+ $this->firephp->log($msg);
108
+ } else {
109
+ $this->firephp->log("$log_prefix:$msg");
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ /**
117
+ * Gets singleton instance of logger
118
+ * @param boolean $AutoCreate
119
+ * @return logger
120
+ */
121
+ public static function getInstance($AutoCreate = false) {
122
+ if ($AutoCreate === true && !self::$instance) {
123
+ self::init();
124
+ }
125
+ return self::$instance;
126
+ }
127
+
128
+ /**
129
+ * Creates logger object and stores it for singleton access
130
+ * @return logger
131
+ */
132
+ public static function init() {
133
+ return self::$instance = new self();
134
+ }
135
+
136
+ public function set_debug_level($int) {
137
+ $this->debug_level = $int;
138
+ }
139
+
140
+ public function set_log_file($filename) {
141
+ $this->logfile = $filename;
142
+ }
143
+
144
+ public function set_remoteip($remoteip) {
145
+ $this->remoteip = $remoteip;
146
+ }
147
+
148
+ }
149
+
150
+ // We create a global singelton instance
151
+ $GLOBALS['tp_logger'] = tp_logger::getInstance(true);
152
+
153
+ /**
154
+ * This function provides easier access to logging using the singleton object
155
+ * @param mixed $msg
156
+ * @param int $severity
157
+ */
158
+ /* function tp_logger($msg, $severity = 3, $do_backtrace = false) {
159
+ $GLOBALS['tp_logger']->do_log($msg, $severity, $do_backtrace);
160
+ } */
161
+
162
+ /*
163
+ * sample of how to modify logging parameters from anywhere
164
+ *
165
+ $GLOBALS['tp_logger'] = tp_logger::getInstance(true);
166
+ $GLOBALS['tp_logger']->show_caller = true;
167
+ */
168
+ ?>
core/parser.php CHANGED
@@ -1,25 +1,21 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  require_once("shd/simple_html_dom.php");
15
  require_once("constants.php");
16
-
17
  require_once("utils.php");
18
 
19
- define('PUNCT_BREAKS', TRUE); // Will punctiations such as , . ( and such will break a phrase
20
- define('NUM_BREAKS', TRUE); // Will a number break a phrase
21
- define('ENT_BREAKS', TRUE); // Will an HTML entity break a phrase
22
-
23
  /**
24
  * parserstats class - holds parser statistics
25
  */
@@ -99,7 +95,10 @@ class parserstats {
99
  */
100
  class parser {
101
 
102
- // funnctions that need to be defined... //
 
 
 
103
  public $url_rewrite_func = null;
104
  public $fetch_translate_func = null;
105
  public $prefetch_translate_func = null;
@@ -287,10 +286,10 @@ class parser {
287
  &Yuml; &#376; latin capital letter Y with diaeresis
288
  */
289
  function is_entity_letter($entity) {
290
-
291
  $entnum = (int) substr($entity, 2);
292
- if (($entnum >= 192 && $entnum <= 214) || ($entnum >= 216 && $entnum <= 246) || ($entnum >= 248 && $entnum <= 255)
293
- || $entnum == 338 || $entnum == 339 || $entnum == 352 || $entnum == 353 || $entnum == 376) {
294
  return true;
295
  }
296
  $entities = '&Agrave;&Aacute;&Acirc;&Atilde;&Auml;&Aring;&AElig;&Ccedil;&Egrave;&Eacute;&Ecirc;&Euml;&Igrave;&Iacute;&Icirc;&Iuml;&ETH;' .
@@ -336,14 +335,14 @@ class parser {
336
  function tag_phrase($string, $start, $end) {
337
  $phrase = trim(substr($string, $start, $end - $start));
338
  // $logstr = str_replace(array(chr(1),chr(2),chr(3),chr(4)), array('[1]','[2]','[3]','[4]'), $string);
339
- //
340
- //
341
  if ($this->in_get_text > $this->in_get_text_inner) {
342
-
343
  return;
344
  }
345
  if ($phrase) {
346
-
347
  $node = new simple_html_dom_node($this->html);
348
  $node->tag = 'phrase';
349
  $node->parent = $this->currentnode;
@@ -377,10 +376,10 @@ class parser {
377
 
378
  while ($pos < strlen($string)) {
379
  // Some HTML entities make us break, almost all but apostrophies
380
- if (ENT_BREAKS && $len_of_entity = $this->is_html_entity($string, $pos)) {
381
  $entity = substr($string, $pos, $len_of_entity);
382
  if (($this->is_white_space(@$string[$pos + $len_of_entity]) || $this->is_entity_breaker($entity)) && !$this->is_entity_letter($entity)) {
383
-
384
  $this->tag_phrase($string, $start, $pos);
385
  $start = $pos + $len_of_entity;
386
  }
@@ -397,7 +396,7 @@ class parser {
397
  } elseif ($string[$pos] == TP_GTXT_BRK || $string[$pos] == TP_GTXT_BRK_CLOSER) {
398
  // $logstr = str_replace(array(chr(1),chr(2),chr(3),chr(4)), array('[1]','[2]','[3]','[4]'), $string);
399
  // $closers = ($string[$pos] == TP_GTXT_BRK) ? '': 'closer';
400
- //
401
  $this->tag_phrase($string, $start, $pos);
402
  ($string[$pos] == TP_GTXT_BRK) ? $this->in_get_text += 1 : $this->in_get_text -= 1;
403
  $pos++;
@@ -408,8 +407,8 @@ class parser {
408
  } elseif ($string[$pos] == TP_GTXT_IBRK || $string[$pos] == TP_GTXT_IBRK_CLOSER) {
409
  // $logstr = str_replace(array(chr(1),chr(2),chr(3),chr(4)), array('[1]','[2]','[3]','[4]'), $string);
410
  // $closers = ($string[$pos] == TP_GTXT_IBRK) ? '': 'closer';
411
- //
412
- //
413
  $this->tag_phrase($string, $start, $pos);
414
  if ($this->in_get_text)
415
  ($string[$pos] == TP_GTXT_IBRK) ? $this->in_get_text_inner += 1 : $this->in_get_text_inner -=1;
@@ -418,26 +417,26 @@ class parser {
418
  //$this->in_get_text_inner = !$this->in_get_text_inner;
419
  }
420
  // will break translation unit when there's a breaker ",.[]()..."
421
- elseif (PUNCT_BREAKS && $senb_len = $this->is_sentence_breaker($string[$pos], @$string[$pos + 1], @$string[$pos + 2])) {
422
- //
423
  $this->tag_phrase($string, $start, $pos);
424
  $pos += $senb_len;
425
  $start = $pos;
426
  }
427
  // Numbers also break, if they are followed by whitespace (or a sentence breaker) (don't break 42nd) // TODO: probably by breaking entities too...
428
  // also prefixed by whitespace?
429
- elseif (NUM_BREAKS && $num_len = $this->is_number($string, $pos)) {
430
- //
431
  // this is the case of B2 or B2,
432
  if (($start == $pos) || ($this->is_white_space($string[$pos - 1])
433
  || ($this->is_sentence_breaker(@$string[$pos + $num_len - 1], @$string[$pos + $num_len], @$string[$pos + $num_len + 1]))) &&
434
  ($this->is_white_space(@$string[$pos + $num_len]) || $this->is_sentence_breaker(@$string[$pos + $num_len], @$string[$pos + $num_len + 1], @$string[$pos + $num_len + 2]))) {
435
  // we will now compensate on the number followed by breaker case, if we need to
436
- //
437
  if (!(($start == $pos) || $this->is_white_space($string[$pos - 1]))) {
438
- //
439
  if ($this->is_sentence_breaker($string[$pos + $num_len - 1], $string[$pos + $num_len], $string[$pos + $num_len + 1])) {
440
- //
441
  $num_len--; //this makes the added number shorter by one, and the pos will be at a sentence breaker next so we don't have to compensate
442
  }
443
  $pos += $num_len;
@@ -447,7 +446,7 @@ class parser {
447
  $start = $pos + $num_len /* +1 */;
448
  }
449
  $pos += $num_len/* + 1 */;
450
- //
451
  } else {
452
  // smarter marking of start location
453
  if ($start == $pos && $this->is_white_space($string[$pos]))
@@ -548,7 +547,7 @@ class parser {
548
  elseif ($node->tag == 'iframe') {
549
  if ($this->url_rewrite_func) {
550
  $node->src = call_user_func_array($this->url_rewrite_func, array($node->src));
551
-
552
  }
553
  }
554
 
@@ -626,6 +625,18 @@ class parser {
626
  }
627
  }
628
 
 
 
 
 
 
 
 
 
 
 
 
 
629
  /**
630
  * Main function - actually translates a given HTML
631
  * @param string $string containing HTML
@@ -639,7 +650,7 @@ class parser {
639
  if ($string[0] == '{') {
640
  $jsoner = json_decode($string);
641
  if ($jsoner != null) {
642
-
643
  // currently we only handle contents (which buddypress heavily use)
644
  if ($jsoner->contents) {
645
  $jsoner->contents = $this->fix_html($jsoner->contents);
@@ -675,7 +686,7 @@ class parser {
675
  // fix feed
676
  if ($this->feed_fix) {
677
  // fix urls on feed
678
-
679
  foreach (array('link', 'wfw:commentrss', 'comments') as $tag) {
680
  foreach ($this->html->find($tag) as $e) {
681
  $e->innertext = htmlspecialchars(call_user_func_array($this->url_rewrite_func, array($e->innertext)));
@@ -710,7 +721,8 @@ class parser {
710
  }
711
  foreach (array('title', 'value') as $title) {
712
  foreach ($this->html->find('[' . $title . ']') as $e) {
713
- if (isset($e->nodes)) foreach ($e->nodes as $ep) {
 
714
  if ($ep->phrase) $originals[$ep->phrase] = true;
715
  }
716
  }
@@ -811,8 +823,9 @@ class parser {
811
  if (isset($e->parent->_[HDOM_INFO_OUTER])) {
812
  $saved_outertext = $e->outertext;
813
  }
814
-
815
- if (isset($e->nodes)) foreach ($e->nodes as $ep) {
 
816
  if ($ep->tag == 'phrase') {
817
  list ($source, $translated_text) = call_user_func_array($this->fetch_translate_func, array($ep->phrase, $this->lang));
818
  // more stats
@@ -834,7 +847,7 @@ class parser {
834
  if (!in_array($ep->phrase, $hidden_phrases)) {
835
  $this->stats->hidden_translateable_phrases++;
836
  $span .= $this->create_edit_span($ep->phrase, $translated_text, $source, true, $ep->srclang);
837
- //
838
  $hidden_phrases[] = $ep->phrase;
839
  }
840
  }
@@ -884,7 +897,7 @@ class parser {
884
  $hiddenspans .= $this->create_edit_span($ep->phrase, $translated_text, $source, true, $ep->srclang);
885
  }
886
  if (!$translated_text && $this->is_auto_translate && !$this->is_edit_mode) {
887
-
888
  if ($this->is_edit_mode || $this->is_auto_translate) { // FIX
889
  }
890
  }
@@ -892,7 +905,7 @@ class parser {
892
  }
893
  if ($newtext) {
894
  $e->content = $newtext . $right;
895
-
896
  }
897
  }
898
 
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
  require_once("shd/simple_html_dom.php");
15
  require_once("constants.php");
16
+ require_once("logging.php");
17
  require_once("utils.php");
18
 
 
 
 
 
19
  /**
20
  * parserstats class - holds parser statistics
21
  */
95
  */
96
  class parser {
97
 
98
+ private $punct_breaks = true;
99
+ private $num_breaks = true;
100
+ private $ent_breaks = true;
101
+ // functions that need to be defined... //
102
  public $url_rewrite_func = null;
103
  public $fetch_translate_func = null;
104
  public $prefetch_translate_func = null;
286
  &Yuml; &#376; latin capital letter Y with diaeresis
287
  */
288
  function is_entity_letter($entity) {
289
+ tp_logger("checking ($entity) - " . htmlentities($entity), 4);
290
  $entnum = (int) substr($entity, 2);
291
+ // skip multiply and divide (215, 247)
292
+ if (($entnum >= 192 && $entnum <= 214) || ($entnum >= 216 && $entnum <= 246) || ($entnum >= 248 && $entnum <= 696)) {
293
  return true;
294
  }
295
  $entities = '&Agrave;&Aacute;&Acirc;&Atilde;&Auml;&Aring;&AElig;&Ccedil;&Egrave;&Eacute;&Ecirc;&Euml;&Igrave;&Iacute;&Icirc;&Iuml;&ETH;' .
335
  function tag_phrase($string, $start, $end) {
336
  $phrase = trim(substr($string, $start, $end - $start));
337
  // $logstr = str_replace(array(chr(1),chr(2),chr(3),chr(4)), array('[1]','[2]','[3]','[4]'), $string);
338
+ // logger ("p:$phrase, s:$logstr, st:$start, en:$end, gt:{$this->in_get_text}, gti:{$this->in_get_text_inner}");
339
+ // logger ('');
340
  if ($this->in_get_text > $this->in_get_text_inner) {
341
+ tp_logger('not tagging ' . $phrase . ' assumed gettext translated', 4);
342
  return;
343
  }
344
  if ($phrase) {
345
+ tp_logger('tagged phrase: ' . $phrase, 4);
346
  $node = new simple_html_dom_node($this->html);
347
  $node->tag = 'phrase';
348
  $node->parent = $this->currentnode;
376
 
377
  while ($pos < strlen($string)) {
378
  // Some HTML entities make us break, almost all but apostrophies
379
+ if ($this->ent_breaks && $len_of_entity = $this->is_html_entity($string, $pos)) {
380
  $entity = substr($string, $pos, $len_of_entity);
381
  if (($this->is_white_space(@$string[$pos + $len_of_entity]) || $this->is_entity_breaker($entity)) && !$this->is_entity_letter($entity)) {
382
+ tp_logger("entity ($entity) breaks", 4);
383
  $this->tag_phrase($string, $start, $pos);
384
  $start = $pos + $len_of_entity;
385
  }
396
  } elseif ($string[$pos] == TP_GTXT_BRK || $string[$pos] == TP_GTXT_BRK_CLOSER) {
397
  // $logstr = str_replace(array(chr(1),chr(2),chr(3),chr(4)), array('[1]','[2]','[3]','[4]'), $string);
398
  // $closers = ($string[$pos] == TP_GTXT_BRK) ? '': 'closer';
399
+ // tp_logger(" $closers TEXT breaker $logstr start:$start pos:$pos gt:" . $this->in_get_text, 3);
400
  $this->tag_phrase($string, $start, $pos);
401
  ($string[$pos] == TP_GTXT_BRK) ? $this->in_get_text += 1 : $this->in_get_text -= 1;
402
  $pos++;
407
  } elseif ($string[$pos] == TP_GTXT_IBRK || $string[$pos] == TP_GTXT_IBRK_CLOSER) {
408
  // $logstr = str_replace(array(chr(1),chr(2),chr(3),chr(4)), array('[1]','[2]','[3]','[4]'), $string);
409
  // $closers = ($string[$pos] == TP_GTXT_IBRK) ? '': 'closer';
410
+ // tp_logger(" $closers INNER text breaker $logstr start:$start pos:$pos gt:" . $this->in_get_text_inner, 3);
411
+ //tp_logger("inner text breaker $start $pos $string " . (($this->in_get_text_inner) ? 'true' : 'false'), 5);
412
  $this->tag_phrase($string, $start, $pos);
413
  if ($this->in_get_text)
414
  ($string[$pos] == TP_GTXT_IBRK) ? $this->in_get_text_inner += 1 : $this->in_get_text_inner -=1;
417
  //$this->in_get_text_inner = !$this->in_get_text_inner;
418
  }
419
  // will break translation unit when there's a breaker ",.[]()..."
420
+ elseif ($this->punct_breaks && $senb_len = $this->is_sentence_breaker($string[$pos], @$string[$pos + 1], @$string[$pos + 2])) {
421
+ // logger ("sentence breaker...");
422
  $this->tag_phrase($string, $start, $pos);
423
  $pos += $senb_len;
424
  $start = $pos;
425
  }
426
  // Numbers also break, if they are followed by whitespace (or a sentence breaker) (don't break 42nd) // TODO: probably by breaking entities too...
427
  // also prefixed by whitespace?
428
+ elseif ($this->num_breaks && $num_len = $this->is_number($string, $pos)) {
429
+ // logger ("numnum... $num_len");
430
  // this is the case of B2 or B2,
431
  if (($start == $pos) || ($this->is_white_space($string[$pos - 1])
432
  || ($this->is_sentence_breaker(@$string[$pos + $num_len - 1], @$string[$pos + $num_len], @$string[$pos + $num_len + 1]))) &&
433
  ($this->is_white_space(@$string[$pos + $num_len]) || $this->is_sentence_breaker(@$string[$pos + $num_len], @$string[$pos + $num_len + 1], @$string[$pos + $num_len + 2]))) {
434
  // we will now compensate on the number followed by breaker case, if we need to
435
+ // logger ("compensate part1?");
436
  if (!(($start == $pos) || $this->is_white_space($string[$pos - 1]))) {
437
+ // logger ("compensate part2?");
438
  if ($this->is_sentence_breaker($string[$pos + $num_len - 1], $string[$pos + $num_len], $string[$pos + $num_len + 1])) {
439
+ // logger ("compensate 3?");
440
  $num_len--; //this makes the added number shorter by one, and the pos will be at a sentence breaker next so we don't have to compensate
441
  }
442
  $pos += $num_len;
446
  $start = $pos + $num_len /* +1 */;
447
  }
448
  $pos += $num_len/* + 1 */;
449
+ // logger ("numnumpos... $pos");
450
  } else {
451
  // smarter marking of start location
452
  if ($start == $pos && $this->is_white_space($string[$pos]))
547
  elseif ($node->tag == 'iframe') {
548
  if ($this->url_rewrite_func) {
549
  $node->src = call_user_func_array($this->url_rewrite_func, array($node->src));
550
+ tp_logger('iframe: ' . $node->src, 4);
551
  }
552
  }
553
 
625
  }
626
  }
627
 
628
+ /**
629
+ * Allow changing of parsing rules, yeah, I caved
630
+ * @param type $puncts
631
+ * @param type $numbers
632
+ * @param type $entities
633
+ */
634
+ function change_parsing_rules($puncts, $numbers, $entities) {
635
+ $this->punct_breaks = $puncts;
636
+ $this->num_breaks = $numbers;
637
+ $this->ent_breaks = $entities;
638
+ }
639
+
640
  /**
641
  * Main function - actually translates a given HTML
642
  * @param string $string containing HTML
650
  if ($string[0] == '{') {
651
  $jsoner = json_decode($string);
652
  if ($jsoner != null) {
653
+ tp_logger("json detected (buddypress?)", 4);
654
  // currently we only handle contents (which buddypress heavily use)
655
  if ($jsoner->contents) {
656
  $jsoner->contents = $this->fix_html($jsoner->contents);
686
  // fix feed
687
  if ($this->feed_fix) {
688
  // fix urls on feed
689
+ tp_logger('fixing rss feed', 3);
690
  foreach (array('link', 'wfw:commentrss', 'comments') as $tag) {
691
  foreach ($this->html->find($tag) as $e) {
692
  $e->innertext = htmlspecialchars(call_user_func_array($this->url_rewrite_func, array($e->innertext)));
721
  }
722
  foreach (array('title', 'value') as $title) {
723
  foreach ($this->html->find('[' . $title . ']') as $e) {
724
+ if (isset($e->nodes))
725
+ foreach ($e->nodes as $ep) {
726
  if ($ep->phrase) $originals[$ep->phrase] = true;
727
  }
728
  }
823
  if (isset($e->parent->_[HDOM_INFO_OUTER])) {
824
  $saved_outertext = $e->outertext;
825
  }
826
+ tp_logger("$title-original: $e->$title}", 4);
827
+ if (isset($e->nodes))
828
+ foreach ($e->nodes as $ep) {
829
  if ($ep->tag == 'phrase') {
830
  list ($source, $translated_text) = call_user_func_array($this->fetch_translate_func, array($ep->phrase, $this->lang));
831
  // more stats
847
  if (!in_array($ep->phrase, $hidden_phrases)) {
848
  $this->stats->hidden_translateable_phrases++;
849
  $span .= $this->create_edit_span($ep->phrase, $translated_text, $source, true, $ep->srclang);
850
+ // logger ($span);
851
  $hidden_phrases[] = $ep->phrase;
852
  }
853
  }
897
  $hiddenspans .= $this->create_edit_span($ep->phrase, $translated_text, $source, true, $ep->srclang);
898
  }
899
  if (!$translated_text && $this->is_auto_translate && !$this->is_edit_mode) {
900
+ tp_logger('untranslated meta for ' . $ep->phrase . ' ' . $this->lang);
901
  if ($this->is_edit_mode || $this->is_auto_translate) { // FIX
902
  }
903
  }
905
  }
906
  if ($newtext) {
907
  $e->content = $newtext . $right;
908
+ tp_logger("content-phrase: $newtext", 4);
909
  }
910
  }
911
 
core/shd/simple_html_dom.php CHANGED
@@ -530,7 +530,7 @@ class simple_html_dom {
530
  // prepare
531
  $this->prepare($str, $lowercase);
532
  // strip out comments
533
- //
534
  /* $this->remove_noise("'<?xml(.*?)?>'is", true);*/
535
  $this->remove_noise("'<!--(.*?)-->'is");
536
  // strip out cdata
@@ -934,7 +934,7 @@ class simple_html_dom {
934
  // remove noise from html content
935
  protected function remove_noise($pattern, $remove_tag=false) {
936
  $count = preg_match_all($pattern, $this->doc, $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE);
937
- //
938
 
939
  for ($i=$count-1; $i>-1; --$i) {
940
  $key = '___noise___'.sprintf('% 3d', count($this->noise)+100);
@@ -950,7 +950,7 @@ class simple_html_dom {
950
 
951
  // restore noise to html content
952
  function restore_noise($text) {
953
- //
954
  while(($pos=strpos($text, '___noise___'))!==false) {
955
  $key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];
956
  if (isset($this->noise[$key]))
530
  // prepare
531
  $this->prepare($str, $lowercase);
532
  // strip out comments
533
+ // logger ("hi");
534
  /* $this->remove_noise("'<?xml(.*?)?>'is", true);*/
535
  $this->remove_noise("'<!--(.*?)-->'is");
536
  // strip out cdata
934
  // remove noise from html content
935
  protected function remove_noise($pattern, $remove_tag=false) {
936
  $count = preg_match_all($pattern, $this->doc, $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE);
937
+ // logger ("meo:" . $pattern . $count);
938
 
939
  for ($i=$count-1; $i>-1; --$i) {
940
  $key = '___noise___'.sprintf('% 3d', count($this->noise)+100);
950
 
951
  // restore noise to html content
952
  function restore_noise($text) {
953
+ // logger ("noise:".$text);
954
  while(($pos=strpos($text, '___noise___'))!==false) {
955
  $key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];
956
  if (isset($this->noise[$key]))
core/utils.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /**
@@ -17,7 +17,7 @@
17
  *
18
  */
19
  require_once("constants.php");
20
-
21
 
22
  /**
23
  * This is a static class to reduce chance of namespace collisions with other plugins
@@ -59,9 +59,9 @@ class transposh_utils {
59
  //cleanup lang identifier in permalinks
60
  //remove the language from the url permalink (if in start of path, and is a defined language)
61
  $home_path = rtrim(@parse_url($home_url, PHP_URL_PATH), "/");
62
-
63
  if ($home_path && strpos($parsedurl['path'], $home_path) === 0) {
64
-
65
  $parsedurl['path'] = substr($parsedurl['path'], strlen($home_path));
66
  $gluebackhome = true;
67
  }
@@ -71,7 +71,7 @@ class transposh_utils {
71
  if (!$secondslashpos) $secondslashpos = strlen($parsedurl['path']);
72
  $prevlang = substr($parsedurl['path'], 1, $secondslashpos - 1);
73
  if (isset(transposh_consts::$languages[$prevlang])) {
74
-
75
  $parsedurl['path'] = substr($parsedurl['path'], $secondslashpos);
76
  }
77
  }
@@ -94,8 +94,8 @@ class transposh_utils {
94
  */
95
  // Should send a transposh interface to here TODO - enable permalinks rewrite
96
  // TODO - Should be able to not write default language for url (done with empty lang?)
97
- public static function rewrite_url_lang_param($url, $home_url, $enable_permalinks_rewrite, $lang, $is_edit, $use_params_only=FALSE) {
98
-
99
 
100
  $newurl = str_replace('&#038;', '&', $url);
101
  $newurl = html_entity_decode($newurl, ENT_NOQUOTES);
@@ -120,9 +120,9 @@ class transposh_utils {
120
  // remove the language from the url permalink (if in start of path, and is a defined language)
121
  $gluebackhome = false;
122
  $home_path = rtrim(@parse_url($home_url, PHP_URL_PATH), "/");
123
-
124
  if ($home_path && strpos($parsedurl['path'], $home_path) === 0) {
125
-
126
  $parsedurl['path'] = substr($parsedurl['path'], strlen($home_path));
127
  $gluebackhome = true;
128
  }
@@ -131,7 +131,7 @@ class transposh_utils {
131
  if (!$secondslashpos) $secondslashpos = strlen($parsedurl['path']);
132
  $prevlang = substr($parsedurl['path'], 1, $secondslashpos - 1);
133
  if (isset(transposh_consts::$languages[$prevlang])) {
134
-
135
  $parsedurl['path'] = substr($parsedurl['path'], $secondslashpos);
136
  }
137
  }
@@ -159,7 +159,7 @@ class transposh_utils {
159
  // insert params to url
160
  if (isset($params) && $params) {
161
  $parsedurl['query'] = implode('&', $params);
162
-
163
  }
164
 
165
  // more cleanups
@@ -167,7 +167,7 @@ class transposh_utils {
167
  //$url = preg_replace("/\?$/", "", $url);
168
  // $url = htmlentities($url, ENT_NOQUOTES);
169
  $url = transposh_utils::glue_url($parsedurl);
170
-
171
  return $url;
172
  }
173
 
@@ -191,9 +191,9 @@ class transposh_utils {
191
  // cleanup lang identifier in permalinks
192
  // remove the language from the url permalink (if in start of path, and is a defined language)
193
  $home_path = rtrim(@parse_url($home_url, PHP_URL_PATH), "/");
194
- //
195
  if ($home_path && strpos($parsedurl['path'], $home_path) === 0) {
196
- //
197
  $parsedurl['path'] = substr($parsedurl['path'], strlen($home_path));
198
  // $gluebackhome = true;
199
  }
@@ -203,7 +203,7 @@ class transposh_utils {
203
  if (!$secondslashpos) $secondslashpos = strlen($parsedurl['path']);
204
  $prevlang = substr($parsedurl['path'], 1, $secondslashpos - 1);
205
  if (isset(transposh_consts::$languages[$prevlang])) {
206
- //
207
  //$parsedurl['path'] = substr($parsedurl['path'],$secondslashpos);
208
  return $prevlang;
209
  }
@@ -288,7 +288,7 @@ class transposh_utils {
288
  else {
289
  // now the same attempt with '-' replaced to ' '
290
  list($source, $translated_text) = call_user_func_array($fetch_translation_func, array(str_replace('-', ' ', $part), $target_language));
291
- //
292
  if ($translated_text)
293
  $url .= '/' . str_replace(' ', '-', $translated_text);
294
  else $url .= '/' . $part;
@@ -337,10 +337,10 @@ class transposh_utils {
337
  if ($url2 == '') $url2 = '/';
338
  // TODO: Consider sanitize_title_with_dashes
339
  // TODO : need to handle params....
340
- //
341
  //if (substr($url,strlen($url)-1) == '/') $url2 .= '/';
342
  //$url2 = rtrim($url2,'/');
343
- //
344
  //$href = $this->home_url.$url2;
345
  if (substr($href, strlen($href) - 1) == '/') $url2.='/';
346
  $url2 = str_replace('//', '/', $url2);
@@ -381,7 +381,7 @@ class transposh_utils {
381
  * @param string $http_accept_language a HTTP_ACCEPT_LANGUAGE string (read from $_SERVER['HTTP_ACCEPT_LANGUAGE'] if left out)
382
  * @return string
383
  */
384
- public static function prefered_language($available_languages, $default_lang="auto", $http_accept_language="auto") {
385
  // if $http_accept_language was left out, read it from the HTTP-Header
386
  if ($http_accept_language == "auto")
387
  $http_accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
  /**
17
  *
18
  */
19
  require_once("constants.php");
20
+ require_once("logging.php");
21
 
22
  /**
23
  * This is a static class to reduce chance of namespace collisions with other plugins
59
  //cleanup lang identifier in permalinks
60
  //remove the language from the url permalink (if in start of path, and is a defined language)
61
  $home_path = rtrim(@parse_url($home_url, PHP_URL_PATH), "/");
62
+ tp_logger("home: $home_path " . $parsedurl['path'], 5);
63
  if ($home_path && strpos($parsedurl['path'], $home_path) === 0) {
64
+ tp_logger("homein!: $home_path", 5);
65
  $parsedurl['path'] = substr($parsedurl['path'], strlen($home_path));
66
  $gluebackhome = true;
67
  }
71
  if (!$secondslashpos) $secondslashpos = strlen($parsedurl['path']);
72
  $prevlang = substr($parsedurl['path'], 1, $secondslashpos - 1);
73
  if (isset(transposh_consts::$languages[$prevlang])) {
74
+ tp_logger("prevlang: " . $prevlang, 4);
75
  $parsedurl['path'] = substr($parsedurl['path'], $secondslashpos);
76
  }
77
  }
94
  */
95
  // Should send a transposh interface to here TODO - enable permalinks rewrite
96
  // TODO - Should be able to not write default language for url (done with empty lang?)
97
+ public static function rewrite_url_lang_param($url, $home_url, $enable_permalinks_rewrite, $lang, $is_edit, $use_params_only = FALSE) {
98
+ tp_logger("rewrite old url: $url, permalinks: $enable_permalinks_rewrite, lang: $lang, is_edit: $is_edit, home_url: $home_url", 5);
99
 
100
  $newurl = str_replace('&#038;', '&', $url);
101
  $newurl = html_entity_decode($newurl, ENT_NOQUOTES);
120
  // remove the language from the url permalink (if in start of path, and is a defined language)
121
  $gluebackhome = false;
122
  $home_path = rtrim(@parse_url($home_url, PHP_URL_PATH), "/");
123
+ tp_logger("home: $home_path " . $parsedurl['path'], 5);
124
  if ($home_path && strpos($parsedurl['path'], $home_path) === 0) {
125
+ tp_logger("homein!: $home_path", 5);
126
  $parsedurl['path'] = substr($parsedurl['path'], strlen($home_path));
127
  $gluebackhome = true;
128
  }
131
  if (!$secondslashpos) $secondslashpos = strlen($parsedurl['path']);
132
  $prevlang = substr($parsedurl['path'], 1, $secondslashpos - 1);
133
  if (isset(transposh_consts::$languages[$prevlang])) {
134
+ tp_logger("prevlang: " . $prevlang, 4);
135
  $parsedurl['path'] = substr($parsedurl['path'], $secondslashpos);
136
  }
137
  }
159
  // insert params to url
160
  if (isset($params) && $params) {
161
  $parsedurl['query'] = implode('&', $params);
162
+ tp_logger($params, 4);
163
  }
164
 
165
  // more cleanups
167
  //$url = preg_replace("/\?$/", "", $url);
168
  // $url = htmlentities($url, ENT_NOQUOTES);
169
  $url = transposh_utils::glue_url($parsedurl);
170
+ tp_logger("new url: $url", 5);
171
  return $url;
172
  }
173
 
191
  // cleanup lang identifier in permalinks
192
  // remove the language from the url permalink (if in start of path, and is a defined language)
193
  $home_path = rtrim(@parse_url($home_url, PHP_URL_PATH), "/");
194
+ // logger ("home: $home_path ".$parsedurl['path'],5);
195
  if ($home_path && strpos($parsedurl['path'], $home_path) === 0) {
196
+ // logger ("homein!: $home_path",5);
197
  $parsedurl['path'] = substr($parsedurl['path'], strlen($home_path));
198
  // $gluebackhome = true;
199
  }
203
  if (!$secondslashpos) $secondslashpos = strlen($parsedurl['path']);
204
  $prevlang = substr($parsedurl['path'], 1, $secondslashpos - 1);
205
  if (isset(transposh_consts::$languages[$prevlang])) {
206
+ //logger ("prevlang: ".$prevlang,4);
207
  //$parsedurl['path'] = substr($parsedurl['path'],$secondslashpos);
208
  return $prevlang;
209
  }
288
  else {
289
  // now the same attempt with '-' replaced to ' '
290
  list($source, $translated_text) = call_user_func_array($fetch_translation_func, array(str_replace('-', ' ', $part), $target_language));
291
+ //logger ($part. ' '.str_replace('-', ' ', $part).' '.$translated_text);
292
  if ($translated_text)
293
  $url .= '/' . str_replace(' ', '-', $translated_text);
294
  else $url .= '/' . $part;
337
  if ($url2 == '') $url2 = '/';
338
  // TODO: Consider sanitize_title_with_dashes
339
  // TODO : need to handle params....
340
+ //tp_logger(substr($url,strlen($url)-1));
341
  //if (substr($url,strlen($url)-1) == '/') $url2 .= '/';
342
  //$url2 = rtrim($url2,'/');
343
+ // tp_logger("h $home_url hr $href ur $url ur2 $url2");
344
  //$href = $this->home_url.$url2;
345
  if (substr($href, strlen($href) - 1) == '/') $url2.='/';
346
  $url2 = str_replace('//', '/', $url2);
381
  * @param string $http_accept_language a HTTP_ACCEPT_LANGUAGE string (read from $_SERVER['HTTP_ACCEPT_LANGUAGE'] if left out)
382
  * @return string
383
  */
384
+ public static function prefered_language($available_languages, $default_lang = "auto", $http_accept_language = "auto") {
385
  // if $http_accept_language was left out, read it from the HTTP-Header
386
  if ($http_accept_language == "auto")
387
  $http_accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
css/admin.css ADDED
@@ -0,0 +1 @@
 
1
+ #icon-transposh-logo{background:url('../img/tplogo32.png') no-repeat;}#sortable{list-style-type:none;margin:0;padding:0;}#sortable li,#default_lang li{margin:3px 3px 3px 0;padding:5px;float:left;width:190px;height:14px;}.languages{-moz-border-radius:6px;-khtml-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border-style:solid;border-width:1px;line-height:1;}.highlight{-moz-border-radius:6px;-khtml-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border-style:solid;border-width:1px;line-height:1;background:#FFE45C;width:190px;height:14px;}.highlight_default{background:#FFE45C;}.lng_active{background:#45FF51;}.hidden{display:none;}.logoicon{float:right;margin-left:2px;margin-top:-1px;}
css/transposh.css CHANGED
@@ -1 +1 @@
1
- .tr-icon{background-image:url(../img/tr_imgs.png);height:12px;width:12px;background-repeat:no-repeat;overflow:hidden;text-indent:-99999px;display:inline-block;cursor:pointer;}.tr-icon-yellow{background-position:-12px 0;}.tr-icon-green{background-position:-24px 0;}.tr-icon-google{background-image:url(../img/googleicon.png)!important;}.tr-icon-bing{background-image:url(../img/bingicon.png)!important;}.tr-icon-apertium{background-image:url(../img/apertiumicon.png)!important;}.tr-icon-oht{background-image:url(../img/ohticon.png)!important;}
1
+ .tr-icon{background-image:url(../img/tr_imgs.png);height:12px;width:12px;background-repeat:no-repeat;overflow:hidden;text-indent:-99999px;display:inline-block;cursor:pointer;box-shadow:0;}.tr-icon-yellow{background-position:-12px 0;}.tr-icon-green{background-position:-24px 0;}.tr-icon-google{background-image:url(../img/googleicon.png)!important;}.tr-icon-bing{background-image:url(../img/bingicon.png)!important;}.tr-icon-apertium{background-image:url(../img/apertiumicon.png)!important;}.tr-icon-oht{background-image:url(../img/ohticon.png)!important;}
img/tplogo32.png ADDED
Binary file
js/{transposhbackend.js → admin/backendtranslate.js} RENAMED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  (function(e){function t(b,a){n+=1;e("#progress_bar").progressbar("value",n/o*100);e("#p").text("("+a+") "+b);n===o&&e("#tr_loading").data("done",true)}function j(b,a,c,f){a=e("<div>"+e.trim(a)+"</div>").text();t(a,c);clearTimeout(p);l+=1;k.push(b);g.push(a);h.push(c);i.push(f);p=setTimeout(function(){var a={action:"tp_translation",items:l},d;for(d=0;d<l;d+=1)k[d]!==k[d-1]&&(a["tk"+d]=k[d]),h[d]!==h[d-1]&&(a["ln"+d]=h[d]),g[d]!==g[d-1]&&(a["tr"+d]=g[d]),i[d]!==i[d-1]&&(a["sr"+d]=i[d]);e.ajax({type:"POST",
12
  url:t_jp.ajaxurl,data:a,success:function(){},error:function(){}});l=0;g=[];k=[];h=[];i=[]},200)}function u(b,a,c){var f=c;f==="zh"?f="zh-chs":f==="zh-tw"&&(f="zh-cht");t_jp.dmt(a,function(a){e(a).each(function(a){j(b[a],this.TranslatedText,c,2)})},f)}function v(b,a,c){t_jp.dat(a,function(a){a.responseStatus>=200&&a.responseStatus<300&&(a.responseData.translatedText!==void 0?j(b[0],a.responseData.translatedText):e(a.responseData).each(function(a){this.responseStatus===200&&j(b[a],this.responseData.translatedText,
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  (function(e){function t(b,a){n+=1;e("#progress_bar").progressbar("value",n/o*100);e("#p").text("("+a+") "+b);n===o&&e("#tr_loading").data("done",true)}function j(b,a,c,f){a=e("<div>"+e.trim(a)+"</div>").text();t(a,c);clearTimeout(p);l+=1;k.push(b);g.push(a);h.push(c);i.push(f);p=setTimeout(function(){var a={action:"tp_translation",items:l},d;for(d=0;d<l;d+=1)k[d]!==k[d-1]&&(a["tk"+d]=k[d]),h[d]!==h[d-1]&&(a["ln"+d]=h[d]),g[d]!==g[d-1]&&(a["tr"+d]=g[d]),i[d]!==i[d-1]&&(a["sr"+d]=i[d]);e.ajax({type:"POST",
12
  url:t_jp.ajaxurl,data:a,success:function(){},error:function(){}});l=0;g=[];k=[];h=[];i=[]},200)}function u(b,a,c){var f=c;f==="zh"?f="zh-chs":f==="zh-tw"&&(f="zh-cht");t_jp.dmt(a,function(a){e(a).each(function(a){j(b[a],this.TranslatedText,c,2)})},f)}function v(b,a,c){t_jp.dat(a,function(a){a.responseStatus>=200&&a.responseStatus<300&&(a.responseData.translatedText!==void 0?j(b[0],a.responseData.translatedText):e(a.responseData).each(function(a){this.responseStatus===200&&j(b[a],this.responseData.translatedText,
js/{transposhcommentslang.js → admin/commentslang.js} RENAMED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  (function(a){var c={en:"English - English",af:"Afrikaans - Afrikaans",sq:"Albanian - Shqip",ar:"Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629",hy:"Armenian - \u0540\u0561\u0575\u0565\u0580\u0565\u0576",az:"Azerbaijani - az\u0259rbaycan dili",eu:"Basque - Euskara",be:"Belarusian - \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f",bn:"Bengali - \u09ac\u09be\u0982\u09b2\u09be",bg:"Bulgarian - \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"Catalan - Catal\u00e0",zh:"Chinese (Simplified) - \u4e2d\u6587(\u7b80\u4f53)",
12
  "zh-tw":"Chinese (Traditional) - \u4e2d\u6587(\u6f22\u5b57)",hr:"Croatian - Hrvatski",cs:"Czech - \u010ce\u0161tina",da:"Danish - Dansk",nl:"Dutch - Nederlands",eo:"Esperanto - Esperanto",et:"Estonian - Eesti keel",fi:"Finnish - Suomi",fr:"French - Fran\u00e7ais",gl:"Galician - Galego",ka:"Georgian - \u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",de:"German - Deutsch",el:"Greek - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",gu:"Gujarati - \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0",ht:"Haitian - Krey\u00f2l ayisyen",
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  (function(a){var c={en:"English - English",af:"Afrikaans - Afrikaans",sq:"Albanian - Shqip",ar:"Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629",hy:"Armenian - \u0540\u0561\u0575\u0565\u0580\u0565\u0576",az:"Azerbaijani - az\u0259rbaycan dili",eu:"Basque - Euskara",be:"Belarusian - \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f",bn:"Bengali - \u09ac\u09be\u0982\u09b2\u09be",bg:"Bulgarian - \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"Catalan - Catal\u00e0",zh:"Chinese (Simplified) - \u4e2d\u6587(\u7b80\u4f53)",
12
  "zh-tw":"Chinese (Traditional) - \u4e2d\u6587(\u6f22\u5b57)",hr:"Croatian - Hrvatski",cs:"Czech - \u010ce\u0161tina",da:"Danish - Dansk",nl:"Dutch - Nederlands",eo:"Esperanto - Esperanto",et:"Estonian - Eesti keel",fi:"Finnish - Suomi",fr:"French - Fran\u00e7ais",gl:"Galician - Galego",ka:"Georgian - \u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",de:"German - Deutsch",el:"Greek - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",gu:"Gujarati - \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0",ht:"Haitian - Krey\u00f2l ayisyen",
js/admin/languages.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Transposh v0.9.0
3
+ * http://transposh.org/
4
+ *
5
+ * Copyright 2012, Team Transposh
6
+ * Licensed under the GPL Version 2 or higher.
7
+ * http://transposh.org/license
8
+ *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
+ */
11
+ (function(a){a(function(){a("#sortable").sortable({placeholder:"highlight",update:function(c,b){b.item.unbind("click");b.item.one("click",function(b){b.stopImmediatePropagation();a(this).click(clickfunction)})}});a("#sortable").disableSelection();a("#changename").click(function(){a(".langname").toggleClass("hidden");return false});a("#selectall").click(function(){a("#sortable .languages").addClass("lng_active");a("#sortable .lng_active").each(function(){a("input",this).val(a(this).attr("id")+",v")});
12
+ return false});clickfunction=function(){a(this).attr("id")!=a("#default_list li").attr("id")&&(a(this).toggleClass("lng_active"),a("input",this).val(a(this).attr("id")+(a(this).hasClass("lng_active")?",v":",")))};a(".languages").dblclick(clickfunction).click(clickfunction);a("#default_lang").droppable({accept:".languages",activeClass:"highlight_default",drop:function(c,b){a("#default_list").empty();a(b.draggable.clone().removeAttr("style").removeClass("lng_active")).appendTo("#default_list").show("slow");
13
+ a("#default_list .logoicon").remove();a("#sortable").find("#"+b.draggable.attr("id")).addClass("lng_active")}});a("#sortiso").click(function(){a("#sortable li").sort(function(c,b){return a(c).attr("id")==a("#default_list li").attr("id")?-1:a(b).attr("id")==a("#default_list li").attr("id")?1:a(c).attr("id")>a(b).attr("id")?1:-1}).remove().appendTo("#sortable").dblclick(clickfunction).click(clickfunction);return false});a("#sortname").click(function(){a("#sortable li").sort(function(c,b){langa=a(".langname",
14
+ c).filter(function(){return!a(this).hasClass("hidden")}).text();langb=a(".langname",b).filter(function(){return!a(this).hasClass("hidden")}).text();langdef=a(".langname","#default_list li").filter(function(){return!a(this).hasClass("hidden")}).text();return langa==langdef?-1:langb==langdef?1:langa>langb?1:-1}).remove().appendTo("#sortable").dblclick(clickfunction).click(clickfunction);return false})})})(jQuery);
js/admin/utils.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Transposh v0.9.0
3
+ * http://transposh.org/
4
+ *
5
+ * Copyright 2012, Team Transposh
6
+ * Licensed under the GPL Version 2 or higher.
7
+ * http://transposh.org/license
8
+ *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
+ */
11
+ (function(a){a(function(){a.ajaxSetup({cache:false});a("#transposh-reset-options").click(function(){if(!confirm("Are you sure you want to do this?"))return false;if(!confirm("Are you REALLY sure you want to do this, your configuration will be reset?"))return false;a.post(ajaxurl,{action:"tp_reset"})});backupclick=function(){a("#transposh-backup").unbind("click").click(function(){return false}).text("Backup In Progress");a.post(ajaxurl,{action:"tp_backup"},function(b){var c="red";b[0]=="2"&&(c="green");
12
+ a("#backup_result").html(b).css("color",c);a("#transposh-backup").unbind("click").click(backupclick).text("Do Backup Now")});return false};a("#transposh-backup").click(backupclick);cleanautoclick=function(b,c){if(!confirm("Are you sure you want to do this?"))return false;if(b==0&&!confirm("Are you REALLY sure you want to do this?"))return false;var d=c.text();c.unbind("click").click(function(){return false}).text("Cleanup in progress");a.post(ajaxurl,{action:"tp_cleanup",days:b},function(){c.unbind("click").click(function(){cleanautoclick(b,
13
+ c);return false}).text(d)});return false};a("#transposh-clean-auto").click(function(){cleanautoclick(0,a(this));return false});a("#transposh-clean-auto14").click(function(){cleanautoclick(14,a(this));return false});maintclick=function(b){if(!confirm("Are you sure you want to do this?"))return false;var c=b.text();b.unbind("click").click(function(){return false}).text("Maintenance in progress");a.post(ajaxurl,{action:"tp_maint"},function(){b.unbind("click").click(function(){maintclick(b);return false}).text(c)});
14
+ return false};a("#transposh-maint").click(function(){maintclick(a(this));return false});do_translate_all=function(){a("#progress_bar_all").progressbar({value:0});stop_translate_var=false;a("#tr_loading").data("done",true);a.ajaxSetup({cache:false});a.ajax({url:ajaxurl,dataType:"json",data:{action:"tp_translate_all"},cache:false,success:function(b){dotimer=function(c){a("#tr_allmsg").text("");clearTimeout(timer2);a("#tr_loading").data("done")||a("#tr_loading").data("attempt")>4?(a("#progress_bar_all").progressbar("value",
15
+ (c+1)/b.length*100),a("#tr_loading").data("attempt",0),translate_post(b[c]),typeof b[c+1]!=="undefined"&&!stop_translate_var&&(timer2=setTimeout(function(){dotimer(c+1)},5E3),a("#tr_allmsg").text("Waiting 5 seconds..."))):(a("#tr_loading").data("attempt",a("#tr_loading").data("attempt")+1),timer2=setTimeout(function(){dotimer(c)},15E3),a("#tr_allmsg").text("Translation incomplete - Waiting 15 seconds - attempt "+a("#tr_loading").data("attempt")+"/5"))};timer2=setTimeout(function(){dotimer(0)},0)}});
16
+ a("#transposh-translate").text("Stop translate");a("#transposh-translate").unbind("click").click(stop_translate);return false};stop_translate=function(){clearTimeout(timer2);stop_translate_var=true;a("#transposh-translate").text("Translate All Now");a("#transposh-translate").unbind("click").click(do_translate_all);return false};a("#transposh-translate").click(do_translate_all)})})(jQuery);
js/admin/warningclose.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Transposh v0.9.0
3
+ * http://transposh.org/
4
+ *
5
+ * Copyright 2012, Team Transposh
6
+ * Licensed under the GPL Version 2 or higher.
7
+ * http://transposh.org/license
8
+ *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
+ */
11
+ (function(a){a(function(){a(".warning-close").click(function(){a(this).parents("div:first").hide();a.post(ajaxurl,{action:"tp_close_warning",id:a(this).attr("id")})})})})(jQuery);
js/l/de.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"Schlie\u00dfen ohne Speichern?","You have made a change to the translation. Are you sure you want to discard it?":"Sie haben die \u00dcbersetzung bearbeitet. Sind Sie sicher, dass Sie abbrechen wollen?",History:"Verlauf","Loading...":"Laden...",Translated:"\u00dcbersetzt",By:"von",At:"\u00fcber",google:"Google",bing:"Bing",apertium:"Apertium","manual translation":"manuelle \u00dcbersetzung","bing suggest":"Bing Suggest","google suggest":"Google Suggest","apertium suggest":"Apertium Suggest",
12
  "Edit Translation":"\u00dcbersetzung bearbeiten","Original text":"Originaltext","read alternate translations":"alternative \u00dcbersetzung lesen","previous translation":"Vorherige","find on page":"Auf Seite suchen","next translation":"N\u00e4chste","Translate to":"\u00dcbersetzen nach","view translation log":"\u00dcbersetzungsprotokoll anzeigen","virtual keyboard":"virtuelle Tastatur","approve translation":"\u00dcbersetzung genehmigen","delete":"L\u00f6schen",Discard:"Verwerfen",Cancel:"Abbrechen"};
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"Schlie\u00dfen ohne Speichern?","You have made a change to the translation. Are you sure you want to discard it?":"Sie haben die \u00dcbersetzung bearbeitet. Sind Sie sicher, dass Sie abbrechen wollen?",History:"Verlauf","Loading...":"Laden...",Translated:"\u00dcbersetzt",By:"von",At:"\u00fcber",google:"Google",bing:"Bing",apertium:"Apertium","manual translation":"manuelle \u00dcbersetzung","bing suggest":"Bing Suggest","google suggest":"Google Suggest","apertium suggest":"Apertium Suggest",
12
  "Edit Translation":"\u00dcbersetzung bearbeiten","Original text":"Originaltext","read alternate translations":"alternative \u00dcbersetzung lesen","previous translation":"Vorherige","find on page":"Auf Seite suchen","next translation":"N\u00e4chste","Translate to":"\u00dcbersetzen nach","view translation log":"\u00dcbersetzungsprotokoll anzeigen","virtual keyboard":"virtuelle Tastatur","approve translation":"\u00dcbersetzung genehmigen","delete":"L\u00f6schen",Discard:"Verwerfen",Cancel:"Abbrechen"};
js/l/es.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"Cerrar sin guardar?","You have made a change to the translation. Are you sure you want to discard it?":"Has cambiado la traducion. Estas seguro que lo quieres eliminar?",History:"Historia","Loading...":"Cargando...",Translated:"Traducido",By:"Por",At:"En",google:"google",bing:"bing",apertium:"apertium","manual translation":"traducci\u00f3n manual","bing suggest":"sugerencia de bing","google suggest":"sugerencia de google","apertium suggest":"sugerencia de apertium",
12
  "Edit Translation":"Editar traducci\u00f3n","Original text":"Texto original","read alternate translations":"lee traducci\u00f3nes alternativas","previous translation":"traducci\u00f3n anterior","find on page":"encuentra en la pagina","next translation":"siguiente traducci\u00f3n","Translate to":"Traducir a","view translation log":"muestra diario de traducion","virtual keyboard":"teclado virtual","approve translation":"aprueba traducion","delete":"eliminar",Discard:"Descartar",Cancel:"Cancelar"};
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"Cerrar sin guardar?","You have made a change to the translation. Are you sure you want to discard it?":"Has cambiado la traducion. Estas seguro que lo quieres eliminar?",History:"Historia","Loading...":"Cargando...",Translated:"Traducido",By:"Por",At:"En",google:"google",bing:"bing",apertium:"apertium","manual translation":"traducci\u00f3n manual","bing suggest":"sugerencia de bing","google suggest":"sugerencia de google","apertium suggest":"sugerencia de apertium",
12
  "Edit Translation":"Editar traducci\u00f3n","Original text":"Texto original","read alternate translations":"lee traducci\u00f3nes alternativas","previous translation":"traducci\u00f3n anterior","find on page":"encuentra en la pagina","next translation":"siguiente traducci\u00f3n","Translate to":"Traducir a","view translation log":"muestra diario de traducion","virtual keyboard":"teclado virtual","approve translation":"aprueba traducion","delete":"eliminar",Discard:"Descartar",Cancel:"Cancelar"};
js/l/fa.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"\u0628\u062f\u0648\u0646 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc \u0628\u0628\u0646\u062f\u06cc\u0645\u061f","You have made a change to the translation. Are you sure you want to discard it?":"\u0634\u0645\u0627 \u062f\u0631 \u062a\u0631\u062c\u0645\u0647 \u06cc\u06a9 \u062f\u06af\u0631\u06af\u0648\u0646\u06cc \u0633\u0627\u062e\u062a\u0647 \u0627\u06cc\u062f \u0622\u06cc\u0627 \u0622\u06af\u0627\u0647\u0627\u0646\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0648\u0631 \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u062f\u061f ",
12
  History:"\u067e\u06cc\u0634\u06cc\u0646\u0647","Loading...":"\u0628\u0627\u0631\u06af\u06cc\u0631\u06cc...",Translated:"\u062a\u0631\u062c\u0645\u0647 \u0634\u062f\u0647",By:"\u0628\u0627",At:"\u062f\u0631",google:"\u06af\u0648\u06af\u0644",bing:"\u0628\u06cc\u0646\u06af",apertium:"\u0627\u0650\u06cc \u067e\u0650\u0631\u0634\u0650\u0645","manual translation":"\u062a\u0631\u062c\u0645\u0647 \u06cc \u062f\u0633\u062a\u06cc","bing suggest":"\u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0628\u06cc\u0646\u06af",
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"\u0628\u062f\u0648\u0646 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc \u0628\u0628\u0646\u062f\u06cc\u0645\u061f","You have made a change to the translation. Are you sure you want to discard it?":"\u0634\u0645\u0627 \u062f\u0631 \u062a\u0631\u062c\u0645\u0647 \u06cc\u06a9 \u062f\u06af\u0631\u06af\u0648\u0646\u06cc \u0633\u0627\u062e\u062a\u0647 \u0627\u06cc\u062f \u0622\u06cc\u0627 \u0622\u06af\u0627\u0647\u0627\u0646\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0648\u0631 \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u062f\u061f ",
12
  History:"\u067e\u06cc\u0634\u06cc\u0646\u0647","Loading...":"\u0628\u0627\u0631\u06af\u06cc\u0631\u06cc...",Translated:"\u062a\u0631\u062c\u0645\u0647 \u0634\u062f\u0647",By:"\u0628\u0627",At:"\u062f\u0631",google:"\u06af\u0648\u06af\u0644",bing:"\u0628\u06cc\u0646\u06af",apertium:"\u0627\u0650\u06cc \u067e\u0650\u0631\u0634\u0650\u0645","manual translation":"\u062a\u0631\u062c\u0645\u0647 \u06cc \u062f\u0633\u062a\u06cc","bing suggest":"\u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0628\u06cc\u0646\u06af",
js/l/he.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"\u05dc\u05e1\u05d2\u05d5\u05e8 \u05d1\u05dc\u05d9 \u05dc\u05e9\u05de\u05d5\u05e8?","You have made a change to the translation. Are you sure you want to discard it?":"\u05d1\u05d9\u05e6\u05e2\u05ea \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05ea\u05e8\u05d2\u05d5\u05dd, \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05d5\u05d5\u05ea\u05e8 \u05e2\u05dc\u05d9\u05d5?",History:"\u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4",
12
  "Loading...":"\u05d8\u05d5\u05e2\u05df...",Translated:"\u05ea\u05d5\u05e8\u05d2\u05dd",By:"\u05e2\u05dc \u05d9\u05d3\u05d9",At:"\u05d1",google:"\u05d2\u05d5\u05d2\u05dc",bing:"\u05d1\u05d9\u05e0\u05d2",apertium:"\u05d0\u05e4\u05e8\u05d8\u05d9\u05d5\u05dd","manual translation":"\u05ea\u05e8\u05d2\u05d5\u05dd \u05d9\u05d3\u05e0\u05d9","bing suggest":"\u05d4\u05e6\u05e2\u05d5\u05ea \u05d1\u05d9\u05e0\u05d2","google suggest":"\u05d4\u05e6\u05e2\u05d5\u05ea \u05d2\u05d5\u05d2\u05dc","apertium suggest":"\u05d4\u05e6\u05e2\u05d5\u05ea \u05d0\u05e4\u05e8\u05d8\u05d9\u05d5\u05dd",
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"\u05dc\u05e1\u05d2\u05d5\u05e8 \u05d1\u05dc\u05d9 \u05dc\u05e9\u05de\u05d5\u05e8?","You have made a change to the translation. Are you sure you want to discard it?":"\u05d1\u05d9\u05e6\u05e2\u05ea \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d1\u05ea\u05e8\u05d2\u05d5\u05dd, \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05d5\u05d5\u05ea\u05e8 \u05e2\u05dc\u05d9\u05d5?",History:"\u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4",
12
  "Loading...":"\u05d8\u05d5\u05e2\u05df...",Translated:"\u05ea\u05d5\u05e8\u05d2\u05dd",By:"\u05e2\u05dc \u05d9\u05d3\u05d9",At:"\u05d1",google:"\u05d2\u05d5\u05d2\u05dc",bing:"\u05d1\u05d9\u05e0\u05d2",apertium:"\u05d0\u05e4\u05e8\u05d8\u05d9\u05d5\u05dd","manual translation":"\u05ea\u05e8\u05d2\u05d5\u05dd \u05d9\u05d3\u05e0\u05d9","bing suggest":"\u05d4\u05e6\u05e2\u05d5\u05ea \u05d1\u05d9\u05e0\u05d2","google suggest":"\u05d4\u05e6\u05e2\u05d5\u05ea \u05d2\u05d5\u05d2\u05dc","apertium suggest":"\u05d4\u05e6\u05e2\u05d5\u05ea \u05d0\u05e4\u05e8\u05d8\u05d9\u05d5\u05dd",
js/l/it.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"Chiudere senza salvare?","You have made a change to the translation. Are you sure you want to discard it?":"&Egrave; stata fatta una modifica alla traduzione. Si &egrave; sicuri di volerla scartare?",History:"Storia","Loading...":"Caricamento...",Translated:"Tradotto",By:"Da",At:"A",google:"google",bing:"bing",apertium:"apertium","manual translation":"traduzione manuale","bing suggest":"bing suggerisce","google suggest":"google suggerisce","apertium suggest":"apertium suggerisce",
12
  "Edit Translation":"Modifica Traduzione","Original text":"Testo Originale","read alternate translations":"leggi le traduzioni alternative","previous translation":"traduzione precedente","find on page":"trova nella pagina","next translation":"prossima traduzione","Translate to":"Tradotto in","view translation log":"guarda il log delle traduzioni","virtual keyboard":"tastiera virtuale","approve translation":"approva traduzione","delete":"cancella",Discard:"Scarta",Cancel:"Cancella"};
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"Chiudere senza salvare?","You have made a change to the translation. Are you sure you want to discard it?":"&Egrave; stata fatta una modifica alla traduzione. Si &egrave; sicuri di volerla scartare?",History:"Storia","Loading...":"Caricamento...",Translated:"Tradotto",By:"Da",At:"A",google:"google",bing:"bing",apertium:"apertium","manual translation":"traduzione manuale","bing suggest":"bing suggerisce","google suggest":"google suggerisce","apertium suggest":"apertium suggerisce",
12
  "Edit Translation":"Modifica Traduzione","Original text":"Testo Originale","read alternate translations":"leggi le traduzioni alternative","previous translation":"traduzione precedente","find on page":"trova nella pagina","next translation":"prossima traduzione","Translate to":"Tradotto in","view translation log":"guarda il log delle traduzioni","virtual keyboard":"tastiera virtuale","approve translation":"approva traduzione","delete":"cancella",Discard:"Scarta",Cancel:"Cancella"};
js/l/nl.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"Sluiten zonder op te slaan?","You have made a change to the translation. Are you sure you want to discard it?":"Je hebt de vertaling aangepast. Weet je zeker dat je dat wilt annuleren?",History:"Geschiedenis","Loading...":"Aan het laden...",Translated:"Vertaald",By:"Door",At:"Op",google:"google",bing:"bing",apertium:"apertium","manual translation":"eigen vertaling","bing suggest":"bing suggestie","google suggest":"google suggestie","apertium suggest":"apertium suggestie",
12
  "Edit Translation":"Vertaling aanpassen","Original text":"Oorspronkelijke tekst","read alternate translations":"bekijk alternatieve vertaling","previous translation":"vorige","find on page":"laat op de pagina zien","next translation":"volgende","Translate to":"Vertaal naar","view translation log":"Bekijk vertaallog","virtual keyboard":"virtueel toetsenbord","approve translation":"vertaling goedkeuren","delete":"verwijder",Discard:"weggooien",Cancel:"Annuleren"};
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"Sluiten zonder op te slaan?","You have made a change to the translation. Are you sure you want to discard it?":"Je hebt de vertaling aangepast. Weet je zeker dat je dat wilt annuleren?",History:"Geschiedenis","Loading...":"Aan het laden...",Translated:"Vertaald",By:"Door",At:"Op",google:"google",bing:"bing",apertium:"apertium","manual translation":"eigen vertaling","bing suggest":"bing suggestie","google suggest":"google suggestie","apertium suggest":"apertium suggestie",
12
  "Edit Translation":"Vertaling aanpassen","Original text":"Oorspronkelijke tekst","read alternate translations":"bekijk alternatieve vertaling","previous translation":"vorige","find on page":"laat op de pagina zien","next translation":"volgende","Translate to":"Vertaal naar","view translation log":"Bekijk vertaallog","virtual keyboard":"virtueel toetsenbord","approve translation":"vertaling goedkeuren","delete":"verwijder",Discard:"weggooien",Cancel:"Annuleren"};
js/l/ru.js CHANGED
@@ -1,12 +1,12 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  t_jp.l={"Close without saving?":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f?","You have made a change to the translation. Are you sure you want to discard it?":"\u0412\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u044d\u0442\u043e?",
12
  History:"\u0418\u0441\u0442\u043e\u0440\u0438\u044f","Loading...":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430...",Translated:"\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e",By:"",At:"\u0412",google:"",bing:"",apertium:"","manual translation":"\u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","bing suggest":"\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 bing","google suggest":"\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 google",
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  t_jp.l={"Close without saving?":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f?","You have made a change to the translation. Are you sure you want to discard it?":"\u0412\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u044d\u0442\u043e?",
12
  History:"\u0418\u0441\u0442\u043e\u0440\u0438\u044f","Loading...":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430...",Translated:"\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e",By:"",At:"\u0412",google:"",bing:"",apertium:"","manual translation":"\u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434","bing suggest":"\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 bing","google suggest":"\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 google",
js/transposh.js CHANGED
@@ -1,19 +1,19 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  (function(c){function A(b,a){if(c.trim(a).length!==0){var d=function(){var b=c(this).attr("id").substr(c(this).attr("id").lastIndexOf("_")+1),a=c("#"+e+"img_"+b);c("#"+e+b).attr("data-source",1);a.removeClass("tr-icon-yellow").removeClass("tr-icon-green").addClass("tr-icon-yellow")};c("*[data-token='"+b+"'][data-hidden!='y']").html(a).each(d);c("*[data-token='"+b+"'][data-hidden='y']").attr("data-trans",a).each(d)}}function B(b,a){clearTimeout(q);h.push(b);o.push(a);A(b,a);q=setTimeout(function(){var b=
12
  {ln0:t_jp.lang,sr0:p,action:"tp_translation",items:h.length},a;for(a=0;a<h.length;a+=1)b["tk"+a]=h[a],b["tr"+a]=o[a],r+=c("*[data-token='"+h[a]+"']").size();c.ajax({type:"POST",url:t_jp.ajaxurl,data:b,success:function(){var b=r/i*100;t_jp.progress&&c("#"+k).progressbar("value",b)}});o=[];h=[]},200)}function j(b,a){B(b,c("<div>"+c.trim(a)+"</div>").text());var d=(i-c("."+e+'[data-source=""]').size())/i*100;t_jp.progress&&c("#"+l).progressbar("value",d)}function s(b,a,d){c.ajax({url:t_jp.ajaxurl,dataType:"json",
13
  data:{action:"tp_gp",tl:d,q:b},success:a})}function t(b,a){s(a,function(a){c(a.results).each(function(a){j(b[a],this)})},t_jp.lang)}function u(b,a,d){c.ajax({url:"https://www.googleapis.com/language/translate/v2",dataType:"jsonp",data:{key:t_jp.google_key,q:b,target:d,source:t_jp.olang},traditional:true,success:a})}function C(b,a){u(a,function(d){typeof d.error!=="undefined"?t(b,a):c(d.data.translations).each(function(a){j(b[a],this.translatedText)})},t_jp.lang)}function m(b,a,d){if(t_jp.msn_key){var f=
14
- "[";c(b).each(function(a){f+='"'+encodeURIComponent(b[a].replace(/[\\"]/g,"\\$&"))+'",'});f=f.slice(0,-1)+"]";c.ajax({url:"http://api.microsofttranslator.com/V2/Ajax.svc/TranslateArray?appId="+t_jp.msn_key+"&to="+d+"&texts="+f,dataType:"jsonp",jsonp:"oncomplete",success:a})}else v===1?setTimeout(function(){m(b,a,d)},500):(v=1,c.getScript("http://www.microsofttranslator.com/ajax/v2/toolkit.ashx?loc=en&toolbar=none",function(){t_jp.msn_key=_mstConfig.appId;m(b,a,d)}))}function D(b,a){p=2;m(a,function(a){c(a).each(function(a){j(b[a],
15
- this.TranslatedText)})},t_jp.binglang)}function w(b,a,d){c.ajax({url:"http://api.apertium.org/json/translate",data:{q:b,langpair:t_jp.olang+"|"+d,markUnknown:"no"},dataType:"jsonp",traditional:true,success:a})}function E(b,a){p=3;w(a,function(a){a.responseStatus>=200&&a.responseStatus<300&&(a.responseData.translatedText!==void 0?j(b[0],a.responseData.translatedText):c(a.responseData).each(function(a){this.responseStatus===200&&j(b[a],this.responseData.translatedText)}))},t_jp.lang)}function x(b,a){t_jp.msn&&
16
- (t_jp.preferred==="2"||t_jp.google===void 0)?D(b,a):t_jp.apertium&&(t_jp.olang==="en"||t_jp.olang==="es")?E(b,a):t_jp.google_key?C(b,a):t(b,a)}function y(){var b=[],a=0,d=[],f=[];c("."+e+'[data-source=""]').each(function(){var e=c(this).attr("data-token"),g=c(this).attr("data-orig");g===void 0&&(g=c(this).html());b[g]!==1&&(b[g]=1,a+encodeURIComponent(g).length>F&&(x(f,d),a=0,d=[],f=[]),a+=encodeURIComponent(g).length,f.push(e),d.push(g))});x(f,d)}function z(b){typeof c.xLazyLoader==="function"?b():
17
- (t_jp.$=c,c.getScript(t_jp.plugin_url+"/js/lazy.js",b))}function n(b){n.hit?b():(n.hit=true,z(function(){c.fn.propAttr=c.fn.prop||c.fn.attr;c.xLazyLoader({js:t_jp.jQueryUI+"jquery-ui.min.js",css:t_jp.jQueryUI+"themes/"+t_jp.theme+"/jquery-ui.css",success:b})}))}var F=1024,i,e=t_jp.prefix,l=e+"pbar",k=l+"_s",p=1,r=0,q,h=[],o=[],v=0;t_jp.jQueryUI="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/";t_jp.dgpt=s;t_jp.dgt=u;t_jp.dmt=m;t_jp.dat=w;t_jp.tfl=z;t_jp.tfju=n;c(function(){if(t_jp.msn)if(t_jp.binglang=
18
- t_jp.lang,t_jp.binglang==="zh")t_jp.binglang="zh-chs";else if(t_jp.binglang==="zh-tw")t_jp.binglang="zh-cht";else if(t_jp.binglang==="mw")t_jp.binglang="mww";c("."+e+"setdeflang").click(function(){c.ajax({url:t_jp.ajaxurl,data:{action:"tp_cookie"},cache:false});c("."+e+"setdeflang").hide("slow");return false});i=c("."+e+'[data-source=""]').size();c.ajaxSetup({cache:true});if(i&&!t_jp.noauto&&(t_jp.google||t_jp.msn||t_jp.apertium))t_jp.progress?n(function(){c("#"+e+"credit").css({overflow:"auto"}).append('<div style="float: left;width: 90%;height: 10px" id="'+
19
- l+'"/><div style="margin-bottom:10px;float:left;width: 90%;height: 10px" id="'+k+'"/>');c("#"+l).progressbar({value:0});c("#"+k).progressbar({value:0});c("#"+k+" > div").css({background:"#28F828",border:"#08A908 1px solid"});y()}):y();t_jp.edit&&c.getScript(t_jp.plugin_url+"/js/transposhedit.js")})})(jQuery);
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  (function(c){function A(b,a){if(c.trim(a).length!==0){var d=function(){var b=c(this).attr("id").substr(c(this).attr("id").lastIndexOf("_")+1),a=c("#"+e+"img_"+b);c("#"+e+b).attr("data-source",1);a.removeClass("tr-icon-yellow").removeClass("tr-icon-green").addClass("tr-icon-yellow")};c("*[data-token='"+b+"'][data-hidden!='y']").html(a).each(d);c("*[data-token='"+b+"'][data-hidden='y']").attr("data-trans",a).each(d)}}function B(b,a){clearTimeout(q);h.push(b);o.push(a);A(b,a);q=setTimeout(function(){var b=
12
  {ln0:t_jp.lang,sr0:p,action:"tp_translation",items:h.length},a;for(a=0;a<h.length;a+=1)b["tk"+a]=h[a],b["tr"+a]=o[a],r+=c("*[data-token='"+h[a]+"']").size();c.ajax({type:"POST",url:t_jp.ajaxurl,data:b,success:function(){var b=r/i*100;t_jp.progress&&c("#"+k).progressbar("value",b)}});o=[];h=[]},200)}function j(b,a){B(b,c("<div>"+c.trim(a)+"</div>").text());var d=(i-c("."+e+'[data-source=""]').size())/i*100;t_jp.progress&&c("#"+l).progressbar("value",d)}function s(b,a,d){c.ajax({url:t_jp.ajaxurl,dataType:"json",
13
  data:{action:"tp_gp",tl:d,q:b},success:a})}function t(b,a){s(a,function(a){c(a.results).each(function(a){j(b[a],this)})},t_jp.lang)}function u(b,a,d){c.ajax({url:"https://www.googleapis.com/language/translate/v2",dataType:"jsonp",data:{key:t_jp.google_key,q:b,target:d,source:t_jp.olang},traditional:true,success:a})}function C(b,a){u(a,function(d){typeof d.error!=="undefined"?t(b,a):c(d.data.translations).each(function(a){j(b[a],this.translatedText)})},t_jp.lang)}function m(b,a,d){if(t_jp.msn_key){var f=
14
+ "[";c(b).each(function(a){f+='"'+encodeURIComponent(b[a].replace(/[\\"]/g,"\\$&").replace(/(\r\n|\n|\r)/gm," "))+'",'});f=f.slice(0,-1)+"]";c.ajax({url:"http://api.microsofttranslator.com/V2/Ajax.svc/TranslateArray?appId="+t_jp.msn_key+"&to="+d+"&texts="+f,dataType:"jsonp",jsonp:"oncomplete",success:a})}else v===1?setTimeout(function(){m(b,a,d)},500):(v=1,c.getScript("http://www.microsofttranslator.com/ajax/v2/toolkit.ashx?loc=en&toolbar=none",function(){t_jp.msn_key=_mstConfig.appId;m(b,a,d)}))}
15
+ function D(b,a){p=2;m(a,function(a){c(a).each(function(a){j(b[a],this.TranslatedText)})},t_jp.binglang)}function w(b,a,d){c.ajax({url:"http://api.apertium.org/json/translate",data:{q:b,langpair:t_jp.olang+"|"+d,markUnknown:"no"},dataType:"jsonp",traditional:true,success:a})}function E(b,a){p=3;w(a,function(a){a.responseStatus>=200&&a.responseStatus<300&&(a.responseData.translatedText!==void 0?j(b[0],a.responseData.translatedText):c(a.responseData).each(function(a){this.responseStatus===200&&j(b[a],
16
+ this.responseData.translatedText)}))},t_jp.lang)}function x(b,a){t_jp.msn&&(t_jp.preferred==="2"||t_jp.google===void 0)?D(b,a):t_jp.apertium&&(t_jp.olang==="en"||t_jp.olang==="es")?E(b,a):t_jp.google_key?C(b,a):t(b,a)}function y(){var b=[],a=0,d=[],f=[];c("."+e+'[data-source=""]').each(function(){var e=c(this).attr("data-token"),g=c(this).attr("data-orig");g===void 0&&(g=c(this).html());b[g]!==1&&(b[g]=1,a+encodeURIComponent(g).length>F&&(x(f,d),a=0,d=[],f=[]),a+=encodeURIComponent(g).length,f.push(e),
17
+ d.push(g))});x(f,d)}function z(b){typeof c.xLazyLoader==="function"?b():(t_jp.$=c,c.getScript(t_jp.plugin_url+"/js/lazy.js",b))}function n(b){n.hit?b():(n.hit=true,z(function(){c.fn.propAttr=c.fn.prop||c.fn.attr;c.xLazyLoader({js:t_jp.jQueryUI+"jquery-ui.min.js",css:t_jp.jQueryUI+"themes/"+t_jp.theme+"/jquery-ui.css",success:b})}))}var F=1024,i,e=t_jp.prefix,l=e+"pbar",k=l+"_s",p=1,r=0,q,h=[],o=[],v=0;t_jp.jQueryUI="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/";t_jp.dgpt=s;t_jp.dgt=u;t_jp.dmt=
18
+ m;t_jp.dat=w;t_jp.tfl=z;t_jp.tfju=n;c(function(){if(t_jp.msn)if(t_jp.binglang=t_jp.lang,t_jp.binglang==="zh")t_jp.binglang="zh-chs";else if(t_jp.binglang==="zh-tw")t_jp.binglang="zh-cht";else if(t_jp.binglang==="mw")t_jp.binglang="mww";c("."+e+"setdeflang").click(function(){c.ajax({url:t_jp.ajaxurl,data:{action:"tp_cookie"},cache:false});c("."+e+"setdeflang").hide("slow");return false});i=c("."+e+'[data-source=""]').size();c.ajaxSetup({cache:true});if(i&&!t_jp.noauto&&(t_jp.google||t_jp.msn||t_jp.apertium))t_jp.progress?
19
+ n(function(){c("#"+e+"credit").css({overflow:"auto"}).append('<div style="float: left;width: 90%;height: 10px" id="'+l+'"/><div style="margin-bottom:10px;float:left;width: 90%;height: 10px" id="'+k+'"/>');c("#"+l).progressbar({value:0});c("#"+k).progressbar({value:0});c("#"+k+" > div").css({background:"#28F828",border:"#08A908 1px solid"});y()}):y();t_jp.edit&&c.getScript(t_jp.plugin_url+"/js/transposhedit.js")})})(jQuery);
js/transposhedit.js CHANGED
@@ -1,19 +1,19 @@
1
  /*
2
- * Transposh v0.8.5
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
  */
11
  (function(a){function e(a){var b;return typeof t_jp.l==="object"&&(b=t_jp.l[a])?b:a}function n(c,d,e){a.trim(d).length===0&&(d=a("[data-token='"+c+"']").attr("data-orig"));var f=function(){var c=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),d=a(b+"img_"+c);a(b+c).attr("data-source",e);d.removeClass("tr-icon-yellow").removeClass("tr-icon-green");e==0?d.addClass("tr-icon-green"):e&&d.addClass("tr-icon-yellow")};a("*[data-token='"+c+"'][data-hidden!='y']").html(d).each(f);a("*[data-token='"+
12
- c+"'][data-hidden='y']").attr("data-trans",d).each(f);a(b+"translation").data("origval",d);a(b+"translation").keyup()}function o(b,d){n(b,d,0);a.ajax({type:"POST",url:t_jp.ajaxurl,data:{action:"tp_translation",ln0:t_jp.lang,sr0:0,items:1,tk0:b,tr0:d},error:function(a){n(b,"",1);alert("Problem saving translation, contact support.\n\nServer's message: "+a.statusText)}})}function w(){t_jp.google_key?t_jp.dgt(a(b+"original").val(),function(c){a(b+"translation").val(a("<div>"+a.trim(c.data.translations[0].translatedText)+
13
- "</div>").text()).keyup()},t_jp.lang):a.ajax({url:t_jp.ajaxurl,dataType:"json",data:{action:"tp_gsp",tl:t_jp.lang,sl:a(b+"original").data("srclang"),q:a(b+"original").val()},success:function(c){console.log(c);a(b+"translation").val(a("<div>"+a.trim(c.result)+"</div>").text()).keyup()}})}function x(){t_jp.dmt([a(b+"original").val()],function(c){a(b+"translation").val(a("<div>"+a.trim(c[0].TranslatedText)+"</div>").text()).keyup()},t_jp.binglang)}function y(){t_jp.dat(a(b+"original").val(),function(c){a(b+
14
- "translation").val(a("<div>"+a.trim(c.responseData.translatedText)+"</div>").text()).keyup()},t_jp.lang)}function p(b){var d,e,f;d=a(b).dialog("widget").find(".ui-dialog-title");e=d.css("margin-right");f=d.css("margin-left");d.css({"float":i,"margin-right":f,"margin-left":e});b=a(b).dialog("widget").find(".ui-dialog-titlebar-close");e=b.css("right");f=b.css("left");b.css({right:f,left:e})}function z(){var c=b+"confirmdialog";a(c).remove();a('<div id="'+d+'confirmdialog" title="'+e("Close without saving?")+
15
  '"><span class="ui-icon ui-icon-alert" style="float:'+i+"; margin-bottom:20px; margin-"+k+':7px"></span><span style="clear:both">'+e("You have made a change to the translation. Are you sure you want to discard it?")+'<span><span id="'+d+'dcbar" style="display:block"><button id="'+d+'cancel">'+e("Cancel")+'</button><button id="'+d+'discard">'+e("Discard")+"</button></span>NaN").appendTo("body").dialog({resizable:false,modal:true,minHeight:50,overlay:{backgroundColor:"#000",opacity:0.5}});a(b+"cancel").button({icons:{primary:"ui-icon-closethick"},
16
- text:false}).click(function(){a(c).dialog("close")});a(b+"discard").button({icons:{primary:"ui-icon-check"},text:false}).click(function(){a(b+"translation").data("changed",false);a(c).dialog("close");a(b+"dialog").dialog("close")});a(b+"dcbar").css({"float":k}).buttonset();a("html").attr("dir")==="rtl"&&(p(c),a(b+"dcbar button:first").addClass("ui-corner-"+i).removeClass("ui-corner-"+k),a(b+"dcbar button:last").addClass("ui-corner-"+k).removeClass("ui-corner-"+i))}function A(c){var h=b+"historydialog";
17
  a(h).remove();a('<div id="'+d+'historydialog" title="'+e("History")+'">'+e("Loading...")+"</div>").appendTo("body");a(h).css("padding",0).dialog({width:"450px",show:"slide"});a("html").attr("dir")==="rtl"&&p(h);a.ajax({url:t_jp.ajaxurl,data:{action:"tp_history",token:a(b+c).attr("data-token"),lang:t_jp.lang},dataType:"json",cache:false,success:function(l){var f,j,g,r;a(h).empty().append('<table width="100%"><col style="width: 80%;"><col><col><thead><tr> <th>'+e("Translated")+"</th><th>"+e("By")+"</th><th>"+
18
  e("At")+"</th></tr></thead><tbody></tbody></table>");a.each(l,function(b,c){switch(c.source){case "1":f="tr-icon-google";j=e("google");break;case "2":f="tr-icon-bing";j=e("bing");break;case "3":f="tr-icon-apertium";j=e("apertium");break;default:f="ui-icon-person",j=e("manual translation")}if(c.user_login===null)c.user_login=c.translated_by;g='<span class="ui-button ui-widget ui-button-icon-only" style="width: 18px; border: 0px; margin-'+k+': 3px"><span title="'+j+'" style="cursor: default" class="ui-button-icon-primary ui-icon '+
19
  f+'"></span><span class="ui-button-text" style="display: inline-block; "></span></span>';r=c.can_delete?'<span class="'+d+'delete" title="'+e("delete")+'" style="width: 18px; margin-'+i+': 3px">':"";a(h+" tbody").append("<tr><td>"+c.translated+'</td><td id="'+d+'histby">'+g+c.user_login+'</td><td id="'+d+'histstamp">'+c.timestamp+r+"</td></tr>")});a(b+"histby,"+b+"histstamp").css("white-space","nowrap");a(h+" th").addClass("ui-widget-header").css("padding","3px");a(h+" td").addClass("ui-widget-content").css("padding",
@@ -26,14 +26,15 @@ a(b+"utlbar,"+b+"ltlbar").css({"float":k}).buttonset();a(g+" textarea").css({wid
26
  dataType:"json",cache:false,success:function(e){var h;if(!(h=a(b+c).attr("data-srclang")))h=t_jp.olang;var f='<li data-translated="'+a(b+c).attr("data-orig")+'"><a href="#">'+m[h]+"</a></li>";a(e).each(function(a,b){b.lang!==t_jp.lang&&(f=f+'<li data-translated="'+b.translated+'"><a href="#">'+m[b.lang]+"</a></li>")});a('<ul style="position: absolute; top: 0px" id="'+d+'langmenu">'+f).appendTo(g);a(b+"langmenu").menu({select:function(c,d){a(this).hide();a(b+"original").val(d.item.attr("data-translated"));
27
  a(b+"orglang").text(d.item.text()).addClass("ui-state-highlight");m[h]===d.item.text()&&a(b+"orglang").removeClass("ui-state-highlight")},input:a(this)}).show().css({top:0,left:0}).position({my:i+" top",at:i+" bottom",of:a(b+"orglang")})}})}})});return false});a(b+"prev").button({icons:{primary:"ui-icon-seek-"+t},text:false});a(b+"zoom").button({icons:{primary:"ui-icon-search"},text:false});a(b+"next").button({icons:{primary:"ui-icon-seek-"+u},text:false});a(b+"prev").click(function(){if(a(b+"translation").data("changed")){var d=
28
  a(b+"translation").val(),e=a(b+c).attr("data-token");o(e,d)}c=Number(c)-1;q(c)});a(b+"next").click(function(){if(a(b+"translation").data("changed")){var d=a(b+"translation").val(),e=a(b+c).attr("data-token");o(e,d)}c=Number(c)+1;q(c)});a(b+"zoom").click(function(){a("html, body").animate({scrollTop:a(b+c).offset().top},500);a(g).dialog("widget").css({top:a(g).dialog("widget").offset().top-window.scrollY,position:"fixed"});a(b+c).animate({opacity:0.1},"slow",function(){a(g).dialog("widget").css({top:a(g).dialog("widget").offset().top,
29
- position:"absolute"})}).animate({opacity:1},"slow").animate({opacity:0.1},"slow").animate({opacity:1},"slow").animate({opacity:0.1},"slow").animate({opacity:1},"slow")});a(b+"history").button({icons:{primary:"ui-icon-clipboard"},text:false}).click(function(){A(c)});a(b+"keyboard").button({icons:{primary:"ui-icon-calculator"},text:false}).click(function(){t_jp.tfl(function(){a.xLazyLoader({js:[t_jp.plugin_url+"/js/keyboard.js"],css:[t_jp.plugin_url+"/css/keyboard.css"],success:function(){VKI_attach(a(b+
30
- "translation").get(0));VKI_show(a(b+"translation").get(0))}})})});a(b+"google").button({icons:{primary:"tr-icon-google"},text:false}).click(function(){w();a("."+d+"suggest").button("enable");a(this).button("disable")});a(b+"bing").button({icons:{primary:"tr-icon-bing"},text:false}).click(function(){x();a("."+d+"suggest").button("enable");a(this).button("disable")});a(b+"apertium").button({icons:{primary:"tr-icon-apertium"},text:false}).click(function(){y();a("."+d+"suggest").button("enable");a(this).button("disable")});
31
  a(b+"oht").button({icons:{primary:"tr-icon-oht"},text:false}).click(function(){var d=a(this);a.ajax({url:t_jp.ajaxurl,data:{action:"tp_oht",q:a(b+"original").val(),token:a(b+c).attr("data-token"),orglang:a(b+c).attr("data-srclang"),lang:t_jp.lang},dataType:"json",cache:false,success:function(a){a?d.addClass("ui-state-highlight"):d.removeClass("ui-state-highlight")}})});a(b+"approve").button({icons:{primary:"ui-icon-check"},text:false}).click(function(){var d=a(b+"translation").val(),e=a(b+c).attr("data-token");
32
  (a(b+"translation").data("changed")||a(b+c).attr("data-source")!=="0")&&o(e,d)});a(b+"translation").keyup(function(){a(this).data("origval")!==a(this).val()?(a(this).addClass("ui-state-highlight"),a(b+"approve").button("enable"),a(this).data("changed",true)):(a(this).removeClass("ui-state-highlight"),a(b+c).attr("data-source")==="0"&&a(b+"approve").button("disable"),a(this).data("changed",false))});q(c);a(g).dialog({resizable:false,width:500,zIndex:99999});a("html").attr("dir")==="rtl"&&p(g);a(b+
33
- "orglang").blur();a(g).bind("dialogclose",function(){typeof VKI_close==="function"&&VKI_close(a(b+"translation").get(0));a(b+"historydialog").remove()});a(g).bind("dialogbeforeclose",function(){return a(b+"translation").data("changed")?(z(),false):true})}var m={en:"English - English",af:"Afrikaans - Afrikaans",sq:"Albanian - Shqip",ar:"Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629",hy:"Armenian - \u0540\u0561\u0575\u0565\u0580\u0565\u0576",az:"Azerbaijani - az\u0259rbaycan dili",eu:"Basque - Euskara",
34
- be:"Belarusian - \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f",bn:"Bengali - \u09ac\u09be\u0982\u09b2\u09be",bg:"Bulgarian - \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"Catalan - Catal\u00e0",zh:"Chinese (Simplified) - \u4e2d\u6587(\u7b80\u4f53)","zh-tw":"Chinese (Traditional) - \u4e2d\u6587(\u6f22\u5b57)",hr:"Croatian - Hrvatski",cs:"Czech - \u010ce\u0161tina",da:"Danish - Dansk",nl:"Dutch - Nederlands",eo:"Esperanto - Esperanto",et:"Estonian - Eesti keel",fi:"Finnish - Suomi",
35
- fr:"French - Fran\u00e7ais",gl:"Galician - Galego",ka:"Georgian - \u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",de:"German - Deutsch",el:"Greek - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",gu:"Gujarati - \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0",ht:"Haitian - Krey\u00f2l ayisyen",he:"Hebrew - \u05e2\u05d1\u05e8\u05d9\u05ea",hi:"Hindi - \u0939\u093f\u0928\u094d\u0926\u0940; \u0939\u093f\u0902\u0926\u0940",hu:"Hungarian - Magyar",is:"Icelandic - \u00cdslenska",id:"Indonesian - Bahasa Indonesia",
36
- ga:"Irish - Gaeilge",it:"Italian - Italiano",ja:"Japanese - \u65e5\u672c\u8a9e",kn:"Kannada - \u0c95\u0ca8\u0ccd\u0ca8\u0ca1",ko:"Korean - \uc6b0\ub9ac\ub9d0",la:"Latin - Lat\u012bna",lv:"Latvian - Latvie\u0161u valoda",lt:"Lithuanian - Lietuvi\u0173 kalba",mk:"Macedonian - \u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a",ms:"Malay - Bahasa Melayu",mt:"Maltese - Malti",no:"Norwegian - Norsk",fa:"Persian - \u067e\u0627\u0631\u0633\u06cc",pl:"Polish - Polski",
37
- pt:"Portuguese - Portugu\u00eas",ro:"Romanian - Rom\u00e2n\u0103",ru:"Russian - \u0420\u0443\u0441\u0441\u043a\u0438\u0439",sr:"Serbian - C\u0440\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a",sk:"Slovak - Sloven\u010dina",sl:"Slovene - Sloven\u0161\u010dina",es:"Spanish - Espa\u00f1ol",sw:"Swahili - Kiswahili",sv:"Swedish - Svenska",tl:"Tagalog - Tagalog",ta:"Tamil - \u0ba4\u0bae\u0bbf\u0bb4\u0bcd",te:"Telugu - \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41",th:"Thai - \u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22",
38
- tr:"Turkish - T\u00fcrk\u00e7e",uk:"Ukrainian - \u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",ur:"Urdu - \u0627\u0631\u062f\u0648",vi:"Vietnamese - Ti\u1ebfng Vi\u1ec7t",cy:"Welsh - Cymraeg",yi:"Yiddish - \u05d9\u05d9\u05b4\u05d3\u05d9\u05e9"},d=t_jp.prefix,b="#"+d,v=false,t="prev",u="next",k="right",i="left";a("html").attr("dir")==="rtl"&&(k="left",i="right",t="next",u="prev");a("."+d).each(function(){var c=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),e;a(this).after('<span id="'+
39
- d+"img_"+c+'" class="tr-icon" title="'+a(this).attr("data-orig")+'"></span>');e=a(b+"img_"+c);var i=function(){t_jp.locale&&!v?a.getScript(t_jp.plugin_url+"/js/l/"+t_jp.lang+".js",function(){v=true;s(c)}):s(c)};e.click(function(){t_jp.tfju(function(){i()});return false}).css({border:"0px",margin:"1px",padding:"0px"});a(this).attr("data-source")==="0"?e.addClass("tr-icon-green"):a(this).attr("data-source")&&e.addClass("tr-icon-yellow");a(this).attr("data-hidden")==="y"&&e.css({opacity:"0.6"})})})(jQuery);
 
1
  /*
2
+ * Transposh v0.9.0
3
  * http://transposh.org/
4
  *
5
  * Copyright 2012, Team Transposh
6
  * Licensed under the GPL Version 2 or higher.
7
  * http://transposh.org/license
8
  *
9
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
10
  */
11
  (function(a){function e(a){var b;return typeof t_jp.l==="object"&&(b=t_jp.l[a])?b:a}function n(c,d,e){a.trim(d).length===0&&(d=a("[data-token='"+c+"']").attr("data-orig"));var f=function(){var c=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),d=a(b+"img_"+c);a(b+c).attr("data-source",e);d.removeClass("tr-icon-yellow").removeClass("tr-icon-green");e==0?d.addClass("tr-icon-green"):e&&d.addClass("tr-icon-yellow")};a("*[data-token='"+c+"'][data-hidden!='y']").html(d).each(f);a("*[data-token='"+
12
+ c+"'][data-hidden='y']").attr("data-trans",d).each(f);a(b+"translation").data("origval",d);a(b+"translation").keyup()}function o(b,d){n(b,d,0);a.ajax({type:"POST",url:t_jp.ajaxurl,data:{action:"tp_translation",ln0:t_jp.lang,sr0:0,items:1,tk0:b,tr0:d},error:function(a){n(b,"",1);alert("Problem saving translation, contact support.\n\nServer's message: "+a.statusText)}})}function y(){t_jp.google_key?t_jp.dgt(a(b+"original").val(),function(c){a(b+"translation").val(a("<div>"+a.trim(c.data.translations[0].translatedText)+
13
+ "</div>").text()).keyup()},t_jp.lang):a.ajax({url:t_jp.ajaxurl,dataType:"json",data:{action:"tp_gsp",tl:t_jp.lang,sl:a(b+"original").data("srclang"),q:a(b+"original").val()},success:function(c){console.log(c);a(b+"translation").val(a("<div>"+a.trim(c.result)+"</div>").text()).keyup()}})}function z(){t_jp.dmt([a(b+"original").val()],function(c){a(b+"translation").val(a("<div>"+a.trim(c[0].TranslatedText)+"</div>").text()).keyup()},t_jp.binglang)}function A(){t_jp.dat(a(b+"original").val(),function(c){a(b+
14
+ "translation").val(a("<div>"+a.trim(c.responseData.translatedText)+"</div>").text()).keyup()},t_jp.lang)}function p(b){var d,e,f;d=a(b).dialog("widget").find(".ui-dialog-title");e=d.css("margin-right");f=d.css("margin-left");d.css({"float":i,"margin-right":f,"margin-left":e});b=a(b).dialog("widget").find(".ui-dialog-titlebar-close");e=b.css("right");f=b.css("left");b.css({right:f,left:e})}function B(){var c=b+"confirmdialog";a(c).remove();a('<div id="'+d+'confirmdialog" title="'+e("Close without saving?")+
15
  '"><span class="ui-icon ui-icon-alert" style="float:'+i+"; margin-bottom:20px; margin-"+k+':7px"></span><span style="clear:both">'+e("You have made a change to the translation. Are you sure you want to discard it?")+'<span><span id="'+d+'dcbar" style="display:block"><button id="'+d+'cancel">'+e("Cancel")+'</button><button id="'+d+'discard">'+e("Discard")+"</button></span>NaN").appendTo("body").dialog({resizable:false,modal:true,minHeight:50,overlay:{backgroundColor:"#000",opacity:0.5}});a(b+"cancel").button({icons:{primary:"ui-icon-closethick"},
16
+ text:false}).click(function(){a(c).dialog("close")});a(b+"discard").button({icons:{primary:"ui-icon-check"},text:false}).click(function(){a(b+"translation").data("changed",false);a(c).dialog("close");a(b+"dialog").dialog("close")});a(b+"dcbar").css({"float":k}).buttonset();a("html").attr("dir")==="rtl"&&(p(c),a(b+"dcbar button:first").addClass("ui-corner-"+i).removeClass("ui-corner-"+k),a(b+"dcbar button:last").addClass("ui-corner-"+k).removeClass("ui-corner-"+i))}function C(c){var h=b+"historydialog";
17
  a(h).remove();a('<div id="'+d+'historydialog" title="'+e("History")+'">'+e("Loading...")+"</div>").appendTo("body");a(h).css("padding",0).dialog({width:"450px",show:"slide"});a("html").attr("dir")==="rtl"&&p(h);a.ajax({url:t_jp.ajaxurl,data:{action:"tp_history",token:a(b+c).attr("data-token"),lang:t_jp.lang},dataType:"json",cache:false,success:function(l){var f,j,g,r;a(h).empty().append('<table width="100%"><col style="width: 80%;"><col><col><thead><tr> <th>'+e("Translated")+"</th><th>"+e("By")+"</th><th>"+
18
  e("At")+"</th></tr></thead><tbody></tbody></table>");a.each(l,function(b,c){switch(c.source){case "1":f="tr-icon-google";j=e("google");break;case "2":f="tr-icon-bing";j=e("bing");break;case "3":f="tr-icon-apertium";j=e("apertium");break;default:f="ui-icon-person",j=e("manual translation")}if(c.user_login===null)c.user_login=c.translated_by;g='<span class="ui-button ui-widget ui-button-icon-only" style="width: 18px; border: 0px; margin-'+k+': 3px"><span title="'+j+'" style="cursor: default" class="ui-button-icon-primary ui-icon '+
19
  f+'"></span><span class="ui-button-text" style="display: inline-block; "></span></span>';r=c.can_delete?'<span class="'+d+'delete" title="'+e("delete")+'" style="width: 18px; margin-'+i+': 3px">':"";a(h+" tbody").append("<tr><td>"+c.translated+'</td><td id="'+d+'histby">'+g+c.user_login+'</td><td id="'+d+'histstamp">'+c.timestamp+r+"</td></tr>")});a(b+"histby,"+b+"histstamp").css("white-space","nowrap");a(h+" th").addClass("ui-widget-header").css("padding","3px");a(h+" td").addClass("ui-widget-content").css("padding",
26
  dataType:"json",cache:false,success:function(e){var h;if(!(h=a(b+c).attr("data-srclang")))h=t_jp.olang;var f='<li data-translated="'+a(b+c).attr("data-orig")+'"><a href="#">'+m[h]+"</a></li>";a(e).each(function(a,b){b.lang!==t_jp.lang&&(f=f+'<li data-translated="'+b.translated+'"><a href="#">'+m[b.lang]+"</a></li>")});a('<ul style="position: absolute; top: 0px" id="'+d+'langmenu">'+f).appendTo(g);a(b+"langmenu").menu({select:function(c,d){a(this).hide();a(b+"original").val(d.item.attr("data-translated"));
27
  a(b+"orglang").text(d.item.text()).addClass("ui-state-highlight");m[h]===d.item.text()&&a(b+"orglang").removeClass("ui-state-highlight")},input:a(this)}).show().css({top:0,left:0}).position({my:i+" top",at:i+" bottom",of:a(b+"orglang")})}})}})});return false});a(b+"prev").button({icons:{primary:"ui-icon-seek-"+t},text:false});a(b+"zoom").button({icons:{primary:"ui-icon-search"},text:false});a(b+"next").button({icons:{primary:"ui-icon-seek-"+u},text:false});a(b+"prev").click(function(){if(a(b+"translation").data("changed")){var d=
28
  a(b+"translation").val(),e=a(b+c).attr("data-token");o(e,d)}c=Number(c)-1;q(c)});a(b+"next").click(function(){if(a(b+"translation").data("changed")){var d=a(b+"translation").val(),e=a(b+c).attr("data-token");o(e,d)}c=Number(c)+1;q(c)});a(b+"zoom").click(function(){a("html, body").animate({scrollTop:a(b+c).offset().top},500);a(g).dialog("widget").css({top:a(g).dialog("widget").offset().top-window.scrollY,position:"fixed"});a(b+c).animate({opacity:0.1},"slow",function(){a(g).dialog("widget").css({top:a(g).dialog("widget").offset().top,
29
+ position:"absolute"})}).animate({opacity:1},"slow").animate({opacity:0.1},"slow").animate({opacity:1},"slow").animate({opacity:0.1},"slow").animate({opacity:1},"slow")});a(b+"history").button({icons:{primary:"ui-icon-clipboard"},text:false}).click(function(){C(c)});a(b+"keyboard").button({icons:{primary:"ui-icon-calculator"},text:false}).click(function(){t_jp.tfl(function(){a.xLazyLoader({js:[t_jp.plugin_url+"/js/keyboard.js"],css:[t_jp.plugin_url+"/css/keyboard.css"],success:function(){VKI_attach(a(b+
30
+ "translation").get(0));VKI_show(a(b+"translation").get(0))}})})});a(b+"google").button({icons:{primary:"tr-icon-google"},text:false}).click(function(){y();a("."+d+"suggest").button("enable");a(this).button("disable")});a(b+"bing").button({icons:{primary:"tr-icon-bing"},text:false}).click(function(){z();a("."+d+"suggest").button("enable");a(this).button("disable")});a(b+"apertium").button({icons:{primary:"tr-icon-apertium"},text:false}).click(function(){A();a("."+d+"suggest").button("enable");a(this).button("disable")});
31
  a(b+"oht").button({icons:{primary:"tr-icon-oht"},text:false}).click(function(){var d=a(this);a.ajax({url:t_jp.ajaxurl,data:{action:"tp_oht",q:a(b+"original").val(),token:a(b+c).attr("data-token"),orglang:a(b+c).attr("data-srclang"),lang:t_jp.lang},dataType:"json",cache:false,success:function(a){a?d.addClass("ui-state-highlight"):d.removeClass("ui-state-highlight")}})});a(b+"approve").button({icons:{primary:"ui-icon-check"},text:false}).click(function(){var d=a(b+"translation").val(),e=a(b+c).attr("data-token");
32
  (a(b+"translation").data("changed")||a(b+c).attr("data-source")!=="0")&&o(e,d)});a(b+"translation").keyup(function(){a(this).data("origval")!==a(this).val()?(a(this).addClass("ui-state-highlight"),a(b+"approve").button("enable"),a(this).data("changed",true)):(a(this).removeClass("ui-state-highlight"),a(b+c).attr("data-source")==="0"&&a(b+"approve").button("disable"),a(this).data("changed",false))});q(c);a(g).dialog({resizable:false,width:500,zIndex:99999});a("html").attr("dir")==="rtl"&&p(g);a(b+
33
+ "orglang").blur();a(g).bind("dialogclose",function(){typeof VKI_close==="function"&&VKI_close(a(b+"translation").get(0));a(b+"historydialog").remove()});a(g).keydown(function(c){if(c.ctrlKey)switch(c.keyCode){case v:a(b+"prev").click();break;case w:a(b+"next").click()}});a(g).bind("dialogbeforeclose",function(){return a(b+"translation").data("changed")?(B(),false):true})}var m={en:"English - English",af:"Afrikaans - Afrikaans",sq:"Albanian - Shqip",ar:"Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629",
34
+ hy:"Armenian - \u0540\u0561\u0575\u0565\u0580\u0565\u0576",az:"Azerbaijani - az\u0259rbaycan dili",eu:"Basque - Euskara",be:"Belarusian - \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f",bn:"Bengali - \u09ac\u09be\u0982\u09b2\u09be",bg:"Bulgarian - \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",ca:"Catalan - Catal\u00e0",zh:"Chinese (Simplified) - \u4e2d\u6587(\u7b80\u4f53)","zh-tw":"Chinese (Traditional) - \u4e2d\u6587(\u6f22\u5b57)",hr:"Croatian - Hrvatski",cs:"Czech - \u010ce\u0161tina",
35
+ da:"Danish - Dansk",nl:"Dutch - Nederlands",eo:"Esperanto - Esperanto",et:"Estonian - Eesti keel",fi:"Finnish - Suomi",fr:"French - Fran\u00e7ais",gl:"Galician - Galego",ka:"Georgian - \u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8",de:"German - Deutsch",el:"Greek - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",gu:"Gujarati - \u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0",ht:"Haitian - Krey\u00f2l ayisyen",mw:"Hmong Daw - Hmoob Daw",he:"Hebrew - \u05e2\u05d1\u05e8\u05d9\u05ea",hi:"Hindi - \u0939\u093f\u0928\u094d\u0926\u0940; \u0939\u093f\u0902\u0926\u0940",
36
+ hu:"Hungarian - Magyar",is:"Icelandic - \u00cdslenska",id:"Indonesian - Bahasa Indonesia",ga:"Irish - Gaeilge",it:"Italian - Italiano",ja:"Japanese - \u65e5\u672c\u8a9e",kn:"Kannada - \u0c95\u0ca8\u0ccd\u0ca8\u0ca1",ko:"Korean - \uc6b0\ub9ac\ub9d0",lo:"Lao - \u0e9e\u0eb2\u0eaa\u0eb2\u0ea5\u0eb2\u0ea7",la:"Latin - Lat\u012bna",lv:"Latvian - Latvie\u0161u valoda",lt:"Lithuanian - Lietuvi\u0173 kalba",mk:"Macedonian - \u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0458\u0430\u0437\u0438\u043a",
37
+ ms:"Malay - Bahasa Melayu",mt:"Maltese - Malti",no:"Norwegian - Norsk",fa:"Persian - \u067e\u0627\u0631\u0633\u06cc",pl:"Polish - Polski",pt:"Portuguese - Portugu\u00eas",ro:"Romanian - Rom\u00e2n\u0103",ru:"Russian - \u0420\u0443\u0441\u0441\u043a\u0438\u0439",sr:"Serbian - C\u0440\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a",sk:"Slovak - Sloven\u010dina",sl:"Slovene - Sloven\u0161\u010dina",es:"Spanish - Espa\u00f1ol",sw:"Swahili - Kiswahili",sv:"Swedish - Svenska",tl:"Tagalog - Tagalog",
38
+ ta:"Tamil - \u0ba4\u0bae\u0bbf\u0bb4\u0bcd",te:"Telugu - \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41",th:"Thai - \u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22",tr:"Turkish - T\u00fcrk\u00e7e",uk:"Ukrainian - \u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",ur:"Urdu - \u0627\u0631\u062f\u0648",vi:"Vietnamese - Ti\u1ebfng Vi\u1ec7t",cy:"Welsh - Cymraeg",yi:"Yiddish - \u05d9\u05d9\u05b4\u05d3\u05d9\u05e9"},d=t_jp.prefix,b="#"+d,x=false,t="prev",u="next",k="right",i="left",w=39,v=37;a("html").attr("dir")===
39
+ "rtl"&&(k="left",i="right",v=39,w=37,t="next",u="prev");a("."+d).each(function(){var c=a(this).attr("id").substr(a(this).attr("id").lastIndexOf("_")+1),e;a(this).after('<span id="'+d+"img_"+c+'" class="tr-icon" title="'+a(this).attr("data-orig")+'"></span>');e=a(b+"img_"+c);var i=function(){t_jp.locale&&!x?a.getScript(t_jp.plugin_url+"/js/l/"+t_jp.lang+".js",function(){x=true;s(c)}):s(c)};e.click(function(){t_jp.tfju(function(){i()});return false}).css({border:"0px",margin:"1px",padding:"0px"});a(this).attr("data-source")===
40
+ "0"?e.addClass("tr-icon-green"):a(this).attr("data-source")&&e.addClass("tr-icon-yellow");a(this).attr("data-hidden")==="y"&&e.css({opacity:"0.6"})})})(jQuery);
js/transposhsettings.js DELETED
@@ -1,22 +0,0 @@
1
- /*
2
- * Transposh v0.8.5
3
- * http://transposh.org/
4
- *
5
- * Copyright 2012, Team Transposh
6
- * Licensed under the GPL Version 2 or higher.
7
- * http://transposh.org/license
8
- *
9
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
10
- */
11
- jQuery(function(){jQuery("#tr_anon").click(function(){jQuery("#tr_anon").attr("checked")&&(jQuery(".translateable").addClass("active").removeClass("translateable"),jQuery("#sortable .active").each(function(){jQuery("input",this).val(jQuery(this).attr("id")+",v,t")}));jQuery("#yellowcolor").toggleClass("hidden")});jQuery("#sortable").sortable({placeholder:"highlight",update:function(b,a){a.item.unbind("click");a.item.one("click",function(a){a.stopImmediatePropagation();jQuery(this).click(clickfunction)})}});
12
- jQuery("#sortable").disableSelection();jQuery("#changename").click(function(){jQuery(".langname").toggleClass("hidden");return false});jQuery("#selectall").click(function(){jQuery("#sortable .languages").addClass("active").removeClass("translateable");jQuery("#sortable .active").each(function(){jQuery("input",this).val(jQuery(this).attr("id")+",v,t")});return false});clickfunction=function(){jQuery(this).attr("id")!=jQuery("#default_list li").attr("id")&&(jQuery("#tr_anon").attr("checked")?jQuery(this).toggleClass("active"):
13
- jQuery(this).hasClass("active")?(jQuery(this).removeClass("active"),jQuery(this).addClass("translateable")):jQuery(this).hasClass("translateable")?jQuery(this).removeClass("translateable"):jQuery(this).addClass("active"),jQuery("input",this).val(jQuery(this).attr("id")+(jQuery(this).hasClass("active")?",v":",")+(jQuery(this).hasClass("translateable")?",t":",")))};jQuery(".languages").dblclick(clickfunction).click(clickfunction);jQuery("#default_lang").droppable({accept:".languages",activeClass:"highlight_default",
14
- drop:function(b,a){jQuery("#default_list").empty();jQuery(a.draggable.clone().removeAttr("style").removeClass("active").removeClass("translateable")).appendTo("#default_list").show("slow");jQuery("#default_list .logoicon").remove();jQuery("#sortable").find("#"+a.draggable.attr("id")).addClass("active")}});jQuery("#sortiso").click(function(){jQuery("#sortable li").sort(function(b,a){return jQuery(b).attr("id")==jQuery("#default_list li").attr("id")?-1:jQuery(a).attr("id")==jQuery("#default_list li").attr("id")?
15
- 1:jQuery(b).attr("id")>jQuery(a).attr("id")?1:-1}).remove().appendTo("#sortable").dblclick(clickfunction).click(clickfunction);return false});jQuery("#sortname").click(function(){jQuery("#sortable li").sort(function(b,a){langa=jQuery(".langname",b).filter(function(){return!jQuery(this).hasClass("hidden")}).text();langb=jQuery(".langname",a).filter(function(){return!jQuery(this).hasClass("hidden")}).text();langdef=jQuery(".langname","#default_list li").filter(function(){return!jQuery(this).hasClass("hidden")}).text();
16
- return langa==langdef?-1:langb==langdef?1:langa>langb?1:-1}).remove().appendTo("#sortable").dblclick(clickfunction).click(clickfunction);return false});jQuery.ajaxSetup({cache:false});backupclick=function(){jQuery("#transposh-backup").unbind("click").click(function(){return false}).text("Backup In Progress");jQuery.post(ajaxurl,{action:"tp_backup"},function(b){var a="red";b[0]=="2"&&(a="green");jQuery("#backup_result").html(b).css("color",a);jQuery("#transposh-backup").unbind("click").click(backupclick).text("Do Backup Now")});
17
- return false};jQuery("#transposh-backup").click(backupclick);cleanautoclick=function(b,a){if(!confirm("Are you sure you want to do this?"))return false;if(b==0&&!confirm("Are you REALLY sure you want to do this?"))return false;var c=a.text();a.unbind("click").click(function(){return false}).text("Cleanup in progress");jQuery.post(ajaxurl,{action:"tp_cleanup",days:b},function(){a.unbind("click").click(function(){cleanautoclick(b,a);return false}).text(c)});return false};jQuery("#transposh-clean-auto").click(function(){cleanautoclick(0,
18
- jQuery(this));return false});jQuery("#transposh-clean-auto14").click(function(){cleanautoclick(14,jQuery(this));return false});maintclick=function(b){if(!confirm("Are you sure you want to do this?"))return false;var a=b.text();b.unbind("click").click(function(){return false}).text("Maintenance in progress");jQuery.post(ajaxurl,{action:"tp_maint"},function(){b.unbind("click").click(function(){maintclick(b);return false}).text(a)});return false};jQuery("#transposh-maint").click(function(){maintclick(jQuery(this));
19
- return false});do_translate_all=function(){jQuery("#progress_bar_all").progressbar({value:0});stop_translate_var=false;jQuery("#tr_loading").data("done",true);jQuery.ajaxSetup({cache:false});jQuery.ajax({url:ajaxurl,dataType:"json",data:{action:"tp_translate_all"},cache:false,success:function(b){dotimer=function(a){jQuery("#tr_allmsg").text("");clearTimeout(timer2);jQuery("#tr_loading").data("done")||jQuery("#tr_loading").data("attempt")>4?(jQuery("#progress_bar_all").progressbar("value",(a+1)/b.length*
20
- 100),jQuery("#tr_loading").data("attempt",0),translate_post(b[a]),typeof b[a+1]!=="undefined"&&!stop_translate_var&&(timer2=setTimeout(function(){dotimer(a+1)},5E3),jQuery("#tr_allmsg").text("Waiting 5 seconds..."))):(jQuery("#tr_loading").data("attempt",jQuery("#tr_loading").data("attempt")+1),timer2=setTimeout(function(){dotimer(a)},15E3),jQuery("#tr_allmsg").text("Translation incomplete - Waiting 15 seconds - attempt "+jQuery("#tr_loading").data("attempt")+"/5"))};timer2=setTimeout(function(){dotimer(0)},
21
- 0)}});jQuery("#transposh-translate").text("Stop translate");jQuery("#transposh-translate").unbind("click").click(stop_translate);return false};stop_translate=function(){clearTimeout(timer2);stop_translate_var=true;jQuery("#transposh-translate").text("Translate All Now");jQuery("#transposh-translate").unbind("click").click(do_translate_all);return false};jQuery("#transposh-translate").click(do_translate_all);jQuery(".warning-close").click(function(){jQuery(this).parent().hide();jQuery.post(ajaxurl,
22
- {action:"tp_close_warning",id:jQuery(this).parent().attr("id")})})});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
langs/transposh-de_DE.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: transposh-translation-filter-for-wordpress.0.7.3\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
- "PO-Revision-Date: 2011-05-05 10:19+0100\n"
7
  "Last-Translator: Rene <info@wpwebshop.com>\n"
8
  "Language-Team: German\n"
9
  "MIME-Version: 1.0\n"
@@ -19,29 +19,29 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: wp/transposh_db.php:682
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Datenbankstatistiken"
26
 
27
- #: wp/transposh_db.php:687
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Total aus <strong style=\"color:red\">%s</strong> &uuml;bersetzte Phrasen."
32
 
33
- #: wp/transposh_db.php:694
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> hat <strong style=\"color:red\">%2s</strong> ge&auml;nderte &Uuml;bersetzungen."
38
 
39
- #: wp/transposh_db.php:697
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Neueste Aktivit&auml;t"
43
 
44
- #: wp/transposh_db.php:702
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
@@ -53,431 +53,353 @@ msgstr "Auf <strong>%1s</strong><br/>benutzer <strong>%2s</strong> &uuml;bersetz
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr "%s hat eine Phrase mit transposh nach %s &uuml;bersetzt:"
55
 
56
- #: wp/transposh_admin.php:175
57
- #: wp/transposh_admin.php:243
58
- #: wp/transposh_postpublish.php:50
59
- #: wp/transposh_postpublish.php:51
60
- #: wp/transposh_widget.php:84
61
- #: wp/transposh_widget.php:311
62
  #@ transposh
63
  #@ default
64
  msgid "Transposh"
65
  msgstr "Transposh"
66
 
67
- #: wp/transposh_admin.php:165
68
  #@ transposh
69
  msgid "Transposh makes your blog translatable"
70
  msgstr "Transposh macht Ihren Blog &uuml;bersetzbar"
71
 
72
- #: wp/transposh_admin.php:166
73
  #@ transposh
74
  msgid "Plugin homepage"
75
  msgstr "Plugin Startseite"
76
 
77
- #: wp/transposh_admin.php:167
78
  #@ transposh
79
  msgid "Frequently asked questions"
80
  msgstr "H&auml;ufig gestellte Fragen"
81
 
82
- #: wp/transposh_admin.php:175
83
- #@ transposh
84
- msgid "Transposh control center"
85
- msgstr "Transposh Kontrollzentrum"
86
-
87
- #: wp/transposh_admin.php:212
88
- #@ transposh
89
- msgid "About this plugin"
90
- msgstr "&Uuml;ber dieses Plug-In"
91
-
92
- #: wp/transposh_admin.php:213
93
  #@ transposh
94
  msgid "Plugin news"
95
  msgstr "Plug-In News"
96
 
97
- #: wp/transposh_admin.php:214
98
  #@ transposh
99
  msgid "Plugin stats"
100
  msgstr "Plug-In Stats"
101
 
102
- #: wp/transposh_admin.php:215
103
- #@ transposh
104
- msgid "Translate all"
105
- msgstr "Alles &uuml;bersetzen"
106
-
107
- #: wp/transposh_admin.php:216
108
- #@ transposh
109
- msgid "Supported languages"
110
- msgstr "Unterst&uuml;tzte Sprachen"
111
-
112
- #: wp/transposh_admin.php:217
113
- #@ transposh
114
- msgid "Translation settings"
115
- msgstr "&Uuml;bersetzungseinstellungen"
116
-
117
- #: wp/transposh_admin.php:218
118
- #@ transposh
119
- msgid "Automatic translation settings"
120
- msgstr "Automatische &Uuml;bersetzungseinstellungen"
121
-
122
- #: wp/transposh_admin.php:221
123
- #@ transposh
124
- msgid "Generic settings"
125
- msgstr "Allgemeine Einstellungen"
126
-
127
- #: wp/transposh_admin.php:222
128
- #@ transposh
129
- msgid "Database maintenance"
130
- msgstr "Datenbankwartung"
131
-
132
- #: wp/transposh_admin.php:237
133
  #@ transposh
134
- msgid "Transposh community features"
135
- msgstr "Transposh Gemeinschaftsfeatures"
136
-
137
- #: wp/transposh_admin.php:273
138
- #@ default
139
  msgid "Save Changes"
140
  msgstr "&Auml;nderungen speichern"
141
 
142
- #: wp/transposh_admin.php:297
143
  #@ transposh
144
  msgid "Problems?"
145
  msgstr "Probleme?"
146
 
147
- #: wp/transposh_admin.php:313
148
- #@ transposh
149
- msgid "Plugin Homepage"
150
- msgstr "Plug-In Startseite"
151
-
152
- #: wp/transposh_admin.php:314
153
  #@ transposh
154
  msgid "Suggest a Feature"
155
  msgstr "Feature vorschlagen"
156
 
157
- #: wp/transposh_admin.php:316
158
  #@ transposh
159
  msgid "Report a Bug"
160
  msgstr "Bug berichten"
161
 
162
- #: wp/transposh_admin.php:333
163
  #@ transposh
164
  msgid "Translate by clicking the button below"
165
  msgstr "Klicken Sie den nachstehenden Button um zu &uuml;bersetzen"
166
 
167
- #: wp/transposh_admin.php:335
168
  #@ transposh
169
  msgid "Translate All Now"
170
  msgstr "Alles jetzt &uuml;bersetzen"
171
 
172
- #: wp/transposh_admin.php:390
173
  #@ transposh
174
  msgid "Default Language (drag another language here to make it default)"
175
  msgstr "Standardsprache (ziehe eine andere Sprache um sie standard zu machen)"
176
 
177
- #: wp/transposh_admin.php:397
178
  #@ transposh
179
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
180
  msgstr "Verf&uuml;gbare Sprachen (ein/ausschalten durch klicken - ziehen f&uuml;r Reihenfolge im Widget)"
181
 
182
- #: wp/transposh_admin.php:407
183
  #@ transposh
184
  msgid "Language supported by google translate"
185
  msgstr "Sprache unterst&uuml;tzt durch Google Translate"
186
 
187
- #: wp/transposh_admin.php:409
188
  #@ transposh
189
  msgid "Language supported by bing translate"
190
  msgstr "Sprache unterst&uuml;tzt durch Bing Translate"
191
 
192
- #: wp/transposh_admin.php:411
193
  #@ transposh
194
  msgid "Language supported by apertium translate"
195
  msgstr "Sprache unterst&uuml;tzt durch Apertium Translate"
196
 
197
- #: wp/transposh_admin.php:415
198
  #@ transposh
199
  msgid "Language is written from right to left"
200
  msgstr "Sprache wird von rechts nach links geschrieben"
201
 
202
- #: wp/transposh_admin.php:420
203
  #@ transposh
204
  msgid "Display options:"
205
  msgstr "Wiedergabeoptionen:"
206
 
207
- #: wp/transposh_admin.php:421
208
  #@ transposh
209
  msgid "Toggle names of languages between English and Original"
210
  msgstr "Namen der Sprachen zwischen Englisch und Original umschalten"
211
 
212
- #: wp/transposh_admin.php:422
213
  #@ transposh
214
  msgid "Make all languages active"
215
  msgstr "Alle Sprachen aktivieren"
216
 
217
- #: wp/transposh_admin.php:423
218
  #@ transposh
219
  msgid "Sort by language name"
220
  msgstr "Sortieren nach Sprache"
221
 
222
- #: wp/transposh_admin.php:424
223
  #@ transposh
224
  msgid "Sort by lSO code"
225
  msgstr "Sortieren nach ISO-Kode"
226
 
227
- #: wp/transposh_admin.php:425
228
- #@ transposh
229
- msgid "Legend:"
230
- msgstr "Legende:"
231
-
232
- #: wp/transposh_admin.php:425
233
- #@ transposh
234
- msgid "Green - active"
235
- msgstr "Gr&uuml;n - aktiv"
236
-
237
- #: wp/transposh_admin.php:425
238
- #@ transposh
239
- msgid "Yellow - translateable (only translators will see this language)"
240
- msgstr "Gelb - &uuml;bersetzbar (nur &Uuml;bersetzer sehen diese Sprache)"
241
-
242
- #: wp/transposh_admin.php:425
243
- #@ transposh
244
- msgid "blank - inactive"
245
- msgstr "Leer - nicht aktiv"
246
-
247
- #: wp/transposh_admin.php:447
248
  #@ transposh
249
  msgid "Who can translate ?"
250
  msgstr "Wer kann &uuml;bersetzen?"
251
 
252
- #: wp/transposh_admin.php:454
253
  #@ transposh
254
  msgid "Anonymous"
255
  msgstr "Anonym"
256
 
257
- #: wp/transposh_admin.php:460
258
  #@ transposh
259
  msgid "Enable default language translation"
260
  msgstr "Standard Sprache &Uuml;bersetzung aktivieren"
261
 
262
- #: wp/transposh_admin.php:460
263
  #@ transposh
264
  msgid "Allow translation of default language - useful for sites with more than one major language"
265
  msgstr "Die standard Sprache &uuml;bersetzen - n&uuml;tzlich f&uuml;r Blogs mit mehreren Hauptsprachen"
266
 
267
- #: wp/transposh_admin.php:467
268
  #@ transposh
269
  msgid "Enable search in translated languages"
270
  msgstr "Suchen in &uuml;bersetzten Sprachen aktivieren"
271
 
272
- #: wp/transposh_admin.php:474
273
  #@ transposh
274
  msgid "Enable url translation"
275
  msgstr "URL-&Uuml;bersetzung aktivieren"
276
 
277
- #: wp/transposh_admin.php:474
278
- #: wp/transposh_admin.php:481
279
  #@ transposh
280
  msgid "experimental"
281
  msgstr "experimental"
282
 
283
- #: wp/transposh_admin.php:474
284
  #@ transposh
285
  msgid "Allow translation of permalinks and urls"
286
  msgstr "&Uuml;bersetzung von Permalinks und URLs aktivieren"
287
 
288
- #: wp/transposh_admin.php:481
289
  #@ transposh
290
  msgid "Enable gettext integration"
291
  msgstr "Gettext Integration aktivieren"
292
 
293
- #: wp/transposh_admin.php:481
294
  #@ transposh
295
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
296
  msgstr "Integration von Transposh mit vorhandenen Gettext-Interface aktivieren (.po/.mo-Dateien)"
297
 
298
- #: wp/transposh_admin.php:497
299
  #@ transposh
300
  msgid "Enable automatic translation"
301
  msgstr "Automatische &Uuml;bersetzungen aktivieren"
302
 
303
- #: wp/transposh_admin.php:497
304
  #@ transposh
305
  msgid "Allow automatic translation of pages"
306
  msgstr "Automatische &Uuml;bersetzung von Webseiten zulassen"
307
 
308
- #: wp/transposh_admin.php:503
309
  #@ transposh
310
  msgid "Enable automatic translation after posting"
311
  msgstr "Automatische &Uuml;bersetzung nach beitragen aktivieren"
312
 
313
- #: wp/transposh_admin.php:503
314
  #@ transposh
315
  msgid "Do automatic translation immediately after a post has been published"
316
  msgstr "Automatische &Uuml;bersetzung gleich nach dem Ver&ouml;ffentlichen eines Berichts aktivieren"
317
 
318
- #: wp/transposh_admin.php:520
319
  #@ transposh
320
  msgid "Select preferred auto translation engine"
321
  msgstr "Bevorzugte &Uuml;bersetzungsmaschine selektieren"
322
 
323
- #: wp/transposh_admin.php:521
324
  #@ transposh
325
  msgid "Translation engine:"
326
  msgstr "&Uuml;bersetzungsmaschine"
327
 
328
- #: wp/transposh_admin.php:523
329
  #@ transposh
330
  msgid "Google"
331
  msgstr "Google"
332
 
333
- #: wp/transposh_admin.php:524
334
  #@ transposh
335
  msgid "Bing"
336
  msgstr "Bing"
337
 
338
- #: wp/transposh_admin.php:578
339
  #@ transposh
340
  msgid "Rewrite URLs"
341
  msgstr "URLs neu schreiben"
342
 
343
- #: wp/transposh_admin.php:586
344
  #@ transposh
345
  msgid "Add scripts to footer"
346
  msgstr "Skripts an der Fu&szlig;zeile zuf&uuml;gen"
347
 
348
- #: wp/transposh_admin.php:592
349
  #@ transposh
350
  msgid "Auto detect language for users"
351
  msgstr "Benutzersprache automatisch erkennen"
352
 
353
- #: wp/transposh_admin.php:608
354
  #@ transposh
355
  msgid "Delete all automated translations"
356
  msgstr "Alle automatischen &Uuml;bersetzungen l&ouml;schen"
357
 
358
- #: wp/transposh_admin.php:609
359
  #@ transposh
360
  msgid "Delete automated translations older than 14 days"
361
  msgstr "Automatische &Uuml;bersetzungen &auml;lter als 14 Tage l&ouml;schen"
362
 
363
- #: wp/transposh_admin.php:610
364
  #@ transposh
365
  msgid "Attempt to fix errors caused by previous versions - please backup first"
366
  msgstr "Versuch Fehler verursacht von vorherigen Versionen zu reparieren - bitte zuerst sichern"
367
 
368
- #: wp/transposh_admin.php:614
369
- #@ transposh
370
- msgid "Backup service for human translation"
371
- msgstr "Sicherungsdienst f&uuml;r menschliche &Uuml;bersetzung"
372
-
373
- #: wp/transposh_admin.php:615
374
  #@ transposh
375
  msgid "Enable daily backup"
376
  msgstr "T&auml;gliche Sicherung aktivieren"
377
 
378
- #: wp/transposh_admin.php:616
379
  #@ transposh
380
  msgid "Enable live backup"
381
  msgstr "Live Sicherung aktivieren"
382
 
383
- #: wp/transposh_admin.php:617
384
  #@ transposh
385
  msgid "Disable backup (Can be run manually by clicking the button below)"
386
  msgstr "Sicherung deaktivieren (kann man manuell machen durch klicken der unterstehenden Schaltfl&auml;che)"
387
 
388
- #: wp/transposh_admin.php:618
389
  #@ transposh
390
  msgid "Service Key:"
391
  msgstr "Dienstschl&uuml;ssel:"
392
 
393
- #: wp/transposh_admin.php:618
394
  #@ transposh
395
  msgid "How to restore?"
396
  msgstr "Wie wiederherstellen?"
397
 
398
- #: wp/transposh_admin.php:620
399
  #@ transposh
400
  msgid "Do Backup Now"
401
  msgstr "Jetzt sichern"
402
 
403
- #: wp/transposh_widget.php:82
404
  #@ transposh
405
  msgid "Transposh language selection widget"
406
  msgstr "Transposh Spracheselektionswidget"
407
 
408
- #: wp/transposh_widget.php:284
409
  #@ transposh
410
  msgid "Set as default language"
411
  msgstr "Als Standardsprache festlegen"
412
 
413
- #: wp/transposh_widget.php:314
414
  #@ transposh
415
  msgid "translation plugin for wordpress"
416
  msgstr "&Uuml;bersetzungs-Plug-In f&uuml;r WordPress"
417
 
418
- #: wp/transposh_widget.php:317
419
  #@ transposh
420
  msgid "wordpress translation plugin"
421
  msgstr "WordPress &Uuml;bersetzung Plug-In"
422
 
423
- #: wp/transposh_widget.php:320
424
  #@ transposh
425
  msgid "translate your blog to 60+ languages"
426
  msgstr "&Uuml;bersetzen Sie Ihren Blog nach 60+ Sprachen"
427
 
428
- #: wp/transposh_widget.php:323
429
  #@ transposh
430
  msgid "website crowdsourcing translation plugin"
431
  msgstr "Website Crowdsourcing &Uuml;bersetzungs-Plug-In"
432
 
433
- #: wp/transposh_widget.php:326
434
  #@ transposh
435
  msgid "google translate and bing translate plugin for wordpress"
436
  msgstr "Google Translate und Bing Translate Plug-In f&uuml;r WordPress"
437
 
438
- #: wp/transposh_widget.php:125
439
  #@ transposh
440
  msgid "Style:"
441
  msgstr "Still:"
442
 
443
- #: wp/transposh_admin.php:556
444
  #@ transposh
445
  msgid "Show progress bar when a client triggers automatic translation"
446
  msgstr "Statusanzeige zeigen wenn Benutzer automatische &Uuml;bersetzung aktiviert"
447
 
448
- #: wp/transposh_admin.php:556
449
  #@ transposh
450
  msgid "Show progress bar"
451
  msgstr "Statusanzeige zeigen"
452
 
453
- #: wp/transposh_admin.php:558
454
  #@ transposh
455
  msgid "Widget will allow setting this language as user default"
456
  msgstr "Widget erlaubt Einstellung dieser Sprache als standard"
457
 
458
- #: wp/transposh_admin.php:558
459
  #@ transposh
460
  msgid "Allow user to set current language as default"
461
  msgstr "Benutzer erlauben aktuelle Sprache als standard festzulegen"
462
 
463
- #: wp/transposh_admin.php:560
464
  #@ transposh
465
  msgid "Transposh logo will not appear on widget"
466
  msgstr "Transposh-Logo erscheint nicht im Widget"
467
 
468
- #: wp/transposh_admin.php:560
469
  #@ transposh
470
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
471
  msgstr "Transposh-Logo entfernen (siehe <a href=\"http://transposh.org/logoterms\">Bedingungen</a>)"
472
 
473
- #: wp/transposh_admin.php:562
474
- #: wp/transposh_admin.php:563
475
  #@ transposh
476
  msgid "Edit interface (and progress bar) theme:"
477
  msgstr "Thema der Schnittstelle (und Statusanzeige) bearbeiten:"
478
 
479
- #: transposh.php:908
 
480
  #@ default
 
481
  msgid "Settings"
482
  msgstr "Einstellungen"
483
 
@@ -519,176 +441,498 @@ msgstr ""
519
  msgid "Select language"
520
  msgstr ""
521
 
522
- #: wp/transposh_admin.php:220
523
- #@ transposh
524
- msgid "Frontend settings"
525
- msgstr ""
526
-
527
- #: wp/transposh_admin.php:248
528
  #, php-format
529
  #@ transposh
530
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
531
  msgstr ""
532
 
533
- #: wp/transposh_admin.php:248
534
- #: wp/transposh_admin.php:252
535
  #@ transposh
536
  msgid "Check Transposh FAQs"
537
  msgstr ""
538
 
539
- #: wp/transposh_admin.php:252
540
  #@ transposh
541
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
542
  msgstr ""
543
 
544
- #: wp/transposh_admin.php:467
545
  #@ transposh
546
  msgid "Allow search of translated languages (and the original language)"
547
  msgstr ""
548
 
549
- #: wp/transposh_admin.php:488
550
  #@ transposh
551
  msgid "Enable override for default locale"
552
  msgstr ""
553
 
554
- #: wp/transposh_admin.php:488
555
  #@ transposh
556
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
557
  msgstr ""
558
 
559
- #: wp/transposh_admin.php:508
560
  #@ transposh
561
  msgid "MSN API key"
562
  msgstr ""
563
 
564
- #: wp/transposh_admin.php:509
565
- #: wp/transposh_admin.php:515
566
- #: wp/transposh_admin.php:540
567
  #@ transposh
568
  msgid "API Key"
569
  msgstr ""
570
 
571
- #: wp/transposh_admin.php:514
572
  #@ transposh
573
  msgid "Google API key"
574
  msgstr ""
575
 
576
- #: wp/transposh_admin.php:580
577
  #@ transposh
578
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
579
  msgstr ""
580
 
581
- #: wp/transposh_admin.php:587
582
  #@ transposh
583
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
584
  msgstr ""
585
 
586
- #: wp/transposh_admin.php:593
587
  #@ transposh
588
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
589
  msgstr ""
590
 
591
- #: wp/transposh_admin.php:598
592
  #@ transposh
593
  msgid "Allow collecting usage statistics"
594
  msgstr ""
595
 
596
- #: wp/transposh_postpublish.php:52
597
  #@ transposh
598
  msgid "Set post language"
599
  msgstr ""
600
 
601
- #: wp/transposh_postpublish.php:53
602
- #@ transposh
603
- msgid "Set page language"
604
- msgstr ""
605
-
606
- #: wp/transposh_postpublish.php:198
607
  #@ default
608
  msgid "Default"
609
  msgstr ""
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr ""
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr ""
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr ""
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr ""
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
644
- #@ transposh
645
- msgid "Professional translation settings"
646
- msgstr ""
647
-
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
  msgid "Language supported by one hour translation"
651
  msgstr ""
652
 
653
- #: wp/transposh_admin.php:530
654
  #@ transposh
655
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
656
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a> ist mit Tausenden von Geschäftskunden darunter 57 % von Amerikas 500 größten Unternehmen der größte professionelle Online-Übersetzungsdienstleister und hat mehr als 15.000 Übersetzer weltweit."
657
 
658
- #: wp/transposh_admin.php:532
659
  #@ transposh
660
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr "One Hour Translation bietet qualitativ hochwertige, schnelle, professionelle Übersetzungen in/aus allen Sprachen und verfügt über spezifische Branchenkenntnisse bei der SW-Lokalisierung sowie bei technischen, geschäftlichen und juristischen Übersetzungen."
662
 
663
- #: wp/transposh_admin.php:533
664
  #@ transposh
665
  msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
- #: wp/transposh_admin.php:534
 
669
  #@ transposh
670
  msgid "Account ID"
671
  msgstr ""
672
 
673
- #: wp/transposh_admin.php:539
674
  #@ transposh
675
  msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
685
  #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
+ "PO-Revision-Date: 2012-12-12 19:50:45+0000\n"
7
  "Last-Translator: Rene <info@wpwebshop.com>\n"
8
  "Language-Team: German\n"
9
  "MIME-Version: 1.0\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: wp/transposh_db.php:684
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Datenbankstatistiken"
26
 
27
+ #: wp/transposh_db.php:689
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Total aus <strong style=\"color:red\">%s</strong> &uuml;bersetzte Phrasen."
32
 
33
+ #: wp/transposh_db.php:696
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> hat <strong style=\"color:red\">%2s</strong> ge&auml;nderte &Uuml;bersetzungen."
38
 
39
+ #: wp/transposh_db.php:699
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Neueste Aktivit&auml;t"
43
 
44
+ #: wp/transposh_db.php:704
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr "%s hat eine Phrase mit transposh nach %s &uuml;bersetzt:"
55
 
56
+ #: wp/transposh_postpublish.php:55
57
+ #: wp/transposh_widget.php:86
58
+ #: wp/transposh_widget.php:315
 
 
 
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr "Transposh"
63
 
64
+ #: wp/transposh_admin.php:185
65
  #@ transposh
66
  msgid "Transposh makes your blog translatable"
67
  msgstr "Transposh macht Ihren Blog &uuml;bersetzbar"
68
 
69
+ #: wp/transposh_admin.php:187
70
  #@ transposh
71
  msgid "Plugin homepage"
72
  msgstr "Plugin Startseite"
73
 
74
+ #: wp/transposh_admin.php:188
75
  #@ transposh
76
  msgid "Frequently asked questions"
77
  msgstr "H&auml;ufig gestellte Fragen"
78
 
79
+ #: wp/transposh_admin.php:283
 
 
 
 
 
 
 
 
 
 
80
  #@ transposh
81
  msgid "Plugin news"
82
  msgstr "Plug-In News"
83
 
84
+ #: wp/transposh_admin.php:284
85
  #@ transposh
86
  msgid "Plugin stats"
87
  msgstr "Plug-In Stats"
88
 
89
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  #@ transposh
 
 
 
 
 
91
  msgid "Save Changes"
92
  msgstr "&Auml;nderungen speichern"
93
 
94
+ #: wp/transposh_admin.php:653
95
  #@ transposh
96
  msgid "Problems?"
97
  msgstr "Probleme?"
98
 
99
+ #: wp/transposh_admin.php:616
 
 
 
 
 
100
  #@ transposh
101
  msgid "Suggest a Feature"
102
  msgstr "Feature vorschlagen"
103
 
104
+ #: wp/transposh_admin.php:617
105
  #@ transposh
106
  msgid "Report a Bug"
107
  msgstr "Bug berichten"
108
 
109
+ #: wp/transposh_admin.php:559
110
  #@ transposh
111
  msgid "Translate by clicking the button below"
112
  msgstr "Klicken Sie den nachstehenden Button um zu &uuml;bersetzen"
113
 
114
+ #: wp/transposh_admin.php:561
115
  #@ transposh
116
  msgid "Translate All Now"
117
  msgstr "Alles jetzt &uuml;bersetzen"
118
 
119
+ #: wp/transposh_admin.php:364
120
  #@ transposh
121
  msgid "Default Language (drag another language here to make it default)"
122
  msgstr "Standardsprache (ziehe eine andere Sprache um sie standard zu machen)"
123
 
124
+ #: wp/transposh_admin.php:372
125
  #@ transposh
126
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
127
  msgstr "Verf&uuml;gbare Sprachen (ein/ausschalten durch klicken - ziehen f&uuml;r Reihenfolge im Widget)"
128
 
129
+ #: wp/transposh_admin.php:384
130
  #@ transposh
131
  msgid "Language supported by google translate"
132
  msgstr "Sprache unterst&uuml;tzt durch Google Translate"
133
 
134
+ #: wp/transposh_admin.php:386
135
  #@ transposh
136
  msgid "Language supported by bing translate"
137
  msgstr "Sprache unterst&uuml;tzt durch Bing Translate"
138
 
139
+ #: wp/transposh_admin.php:388
140
  #@ transposh
141
  msgid "Language supported by apertium translate"
142
  msgstr "Sprache unterst&uuml;tzt durch Apertium Translate"
143
 
144
+ #: wp/transposh_admin.php:392
145
  #@ transposh
146
  msgid "Language is written from right to left"
147
  msgstr "Sprache wird von rechts nach links geschrieben"
148
 
149
+ #: wp/transposh_admin.php:397
150
  #@ transposh
151
  msgid "Display options:"
152
  msgstr "Wiedergabeoptionen:"
153
 
154
+ #: wp/transposh_admin.php:398
155
  #@ transposh
156
  msgid "Toggle names of languages between English and Original"
157
  msgstr "Namen der Sprachen zwischen Englisch und Original umschalten"
158
 
159
+ #: wp/transposh_admin.php:399
160
  #@ transposh
161
  msgid "Make all languages active"
162
  msgstr "Alle Sprachen aktivieren"
163
 
164
+ #: wp/transposh_admin.php:400
165
  #@ transposh
166
  msgid "Sort by language name"
167
  msgstr "Sortieren nach Sprache"
168
 
169
+ #: wp/transposh_admin.php:401
170
  #@ transposh
171
  msgid "Sort by lSO code"
172
  msgstr "Sortieren nach ISO-Kode"
173
 
174
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  #@ transposh
176
  msgid "Who can translate ?"
177
  msgstr "Wer kann &uuml;bersetzen?"
178
 
179
+ #: wp/transposh_admin.php:419
180
  #@ transposh
181
  msgid "Anonymous"
182
  msgstr "Anonym"
183
 
184
+ #: wp/transposh_admin.php:421
185
  #@ transposh
186
  msgid "Enable default language translation"
187
  msgstr "Standard Sprache &Uuml;bersetzung aktivieren"
188
 
189
+ #: wp/transposh_admin.php:422
190
  #@ transposh
191
  msgid "Allow translation of default language - useful for sites with more than one major language"
192
  msgstr "Die standard Sprache &uuml;bersetzen - n&uuml;tzlich f&uuml;r Blogs mit mehreren Hauptsprachen"
193
 
194
+ #: wp/transposh_admin.php:423
195
  #@ transposh
196
  msgid "Enable search in translated languages"
197
  msgstr "Suchen in &uuml;bersetzten Sprachen aktivieren"
198
 
199
+ #: wp/transposh_admin.php:518
200
  #@ transposh
201
  msgid "Enable url translation"
202
  msgstr "URL-&Uuml;bersetzung aktivieren"
203
 
204
+ #: wp/transposh_admin.php:518
 
205
  #@ transposh
206
  msgid "experimental"
207
  msgstr "experimental"
208
 
209
+ #: wp/transposh_admin.php:518
210
  #@ transposh
211
  msgid "Allow translation of permalinks and urls"
212
  msgstr "&Uuml;bersetzung von Permalinks und URLs aktivieren"
213
 
214
+ #: wp/transposh_admin.php:425
215
  #@ transposh
216
  msgid "Enable gettext integration"
217
  msgstr "Gettext Integration aktivieren"
218
 
219
+ #: wp/transposh_admin.php:426
220
  #@ transposh
221
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
222
  msgstr "Integration von Transposh mit vorhandenen Gettext-Interface aktivieren (.po/.mo-Dateien)"
223
 
224
+ #: wp/transposh_admin.php:460
225
  #@ transposh
226
  msgid "Enable automatic translation"
227
  msgstr "Automatische &Uuml;bersetzungen aktivieren"
228
 
229
+ #: wp/transposh_admin.php:461
230
  #@ transposh
231
  msgid "Allow automatic translation of pages"
232
  msgstr "Automatische &Uuml;bersetzung von Webseiten zulassen"
233
 
234
+ #: wp/transposh_admin.php:462
235
  #@ transposh
236
  msgid "Enable automatic translation after posting"
237
  msgstr "Automatische &Uuml;bersetzung nach beitragen aktivieren"
238
 
239
+ #: wp/transposh_admin.php:463
240
  #@ transposh
241
  msgid "Do automatic translation immediately after a post has been published"
242
  msgstr "Automatische &Uuml;bersetzung gleich nach dem Ver&ouml;ffentlichen eines Berichts aktivieren"
243
 
244
+ #: wp/transposh_admin.php:470
245
  #@ transposh
246
  msgid "Select preferred auto translation engine"
247
  msgstr "Bevorzugte &Uuml;bersetzungsmaschine selektieren"
248
 
249
+ #: wp/transposh_admin.php:471
250
  #@ transposh
251
  msgid "Translation engine:"
252
  msgstr "&Uuml;bersetzungsmaschine"
253
 
254
+ #: wp/transposh_admin.php:472
255
  #@ transposh
256
  msgid "Google"
257
  msgstr "Google"
258
 
259
+ #: wp/transposh_admin.php:473
260
  #@ transposh
261
  msgid "Bing"
262
  msgstr "Bing"
263
 
264
+ #: wp/transposh_admin.php:433
265
  #@ transposh
266
  msgid "Rewrite URLs"
267
  msgstr "URLs neu schreiben"
268
 
269
+ #: wp/transposh_admin.php:437
270
  #@ transposh
271
  msgid "Add scripts to footer"
272
  msgstr "Skripts an der Fu&szlig;zeile zuf&uuml;gen"
273
 
274
+ #: wp/transposh_admin.php:440
275
  #@ transposh
276
  msgid "Auto detect language for users"
277
  msgstr "Benutzersprache automatisch erkennen"
278
 
279
+ #: wp/transposh_admin.php:554
280
  #@ transposh
281
  msgid "Delete all automated translations"
282
  msgstr "Alle automatischen &Uuml;bersetzungen l&ouml;schen"
283
 
284
+ #: wp/transposh_admin.php:555
285
  #@ transposh
286
  msgid "Delete automated translations older than 14 days"
287
  msgstr "Automatische &Uuml;bersetzungen &auml;lter als 14 Tage l&ouml;schen"
288
 
289
+ #: wp/transposh_admin.php:556
290
  #@ transposh
291
  msgid "Attempt to fix errors caused by previous versions - please backup first"
292
  msgstr "Versuch Fehler verursacht von vorherigen Versionen zu reparieren - bitte zuerst sichern"
293
 
294
+ #: wp/transposh_admin.php:451
 
 
 
 
 
295
  #@ transposh
296
  msgid "Enable daily backup"
297
  msgstr "T&auml;gliche Sicherung aktivieren"
298
 
299
+ #: wp/transposh_admin.php:452
300
  #@ transposh
301
  msgid "Enable live backup"
302
  msgstr "Live Sicherung aktivieren"
303
 
304
+ #: wp/transposh_admin.php:453
305
  #@ transposh
306
  msgid "Disable backup (Can be run manually by clicking the button below)"
307
  msgstr "Sicherung deaktivieren (kann man manuell machen durch klicken der unterstehenden Schaltfl&auml;che)"
308
 
309
+ #: wp/transposh_admin.php:454
310
  #@ transposh
311
  msgid "Service Key:"
312
  msgstr "Dienstschl&uuml;ssel:"
313
 
314
+ #: wp/transposh_admin.php:454
315
  #@ transposh
316
  msgid "How to restore?"
317
  msgstr "Wie wiederherstellen?"
318
 
319
+ #: wp/transposh_admin.php:548
320
  #@ transposh
321
  msgid "Do Backup Now"
322
  msgstr "Jetzt sichern"
323
 
324
+ #: wp/transposh_widget.php:84
325
  #@ transposh
326
  msgid "Transposh language selection widget"
327
  msgstr "Transposh Spracheselektionswidget"
328
 
329
+ #: wp/transposh_widget.php:288
330
  #@ transposh
331
  msgid "Set as default language"
332
  msgstr "Als Standardsprache festlegen"
333
 
334
+ #: wp/transposh_widget.php:318
335
  #@ transposh
336
  msgid "translation plugin for wordpress"
337
  msgstr "&Uuml;bersetzungs-Plug-In f&uuml;r WordPress"
338
 
339
+ #: wp/transposh_widget.php:321
340
  #@ transposh
341
  msgid "wordpress translation plugin"
342
  msgstr "WordPress &Uuml;bersetzung Plug-In"
343
 
344
+ #: wp/transposh_widget.php:324
345
  #@ transposh
346
  msgid "translate your blog to 60+ languages"
347
  msgstr "&Uuml;bersetzen Sie Ihren Blog nach 60+ Sprachen"
348
 
349
+ #: wp/transposh_widget.php:327
350
  #@ transposh
351
  msgid "website crowdsourcing translation plugin"
352
  msgstr "Website Crowdsourcing &Uuml;bersetzungs-Plug-In"
353
 
354
+ #: wp/transposh_widget.php:330
355
  #@ transposh
356
  msgid "google translate and bing translate plugin for wordpress"
357
  msgstr "Google Translate und Bing Translate Plug-In f&uuml;r WordPress"
358
 
359
+ #: wp/transposh_widget.php:129
360
  #@ transposh
361
  msgid "Style:"
362
  msgstr "Still:"
363
 
364
+ #: wp/transposh_admin.php:506
365
  #@ transposh
366
  msgid "Show progress bar when a client triggers automatic translation"
367
  msgstr "Statusanzeige zeigen wenn Benutzer automatische &Uuml;bersetzung aktiviert"
368
 
369
+ #: wp/transposh_admin.php:505
370
  #@ transposh
371
  msgid "Show progress bar"
372
  msgstr "Statusanzeige zeigen"
373
 
374
+ #: wp/transposh_admin.php:509
375
  #@ transposh
376
  msgid "Widget will allow setting this language as user default"
377
  msgstr "Widget erlaubt Einstellung dieser Sprache als standard"
378
 
379
+ #: wp/transposh_admin.php:508
380
  #@ transposh
381
  msgid "Allow user to set current language as default"
382
  msgstr "Benutzer erlauben aktuelle Sprache als standard festzulegen"
383
 
384
+ #: wp/transposh_admin.php:512
385
  #@ transposh
386
  msgid "Transposh logo will not appear on widget"
387
  msgstr "Transposh-Logo erscheint nicht im Widget"
388
 
389
+ #: wp/transposh_admin.php:511
390
  #@ transposh
391
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
392
  msgstr "Transposh-Logo entfernen (siehe <a href=\"http://transposh.org/logoterms\">Bedingungen</a>)"
393
 
394
+ #: wp/transposh_admin.php:514
 
395
  #@ transposh
396
  msgid "Edit interface (and progress bar) theme:"
397
  msgstr "Thema der Schnittstelle (und Statusanzeige) bearbeiten:"
398
 
399
+ #: transposh.php:921
400
+ #: wp/transposh_admin.php:59
401
  #@ default
402
+ #@ transposh
403
  msgid "Settings"
404
  msgstr "Einstellungen"
405
 
441
  msgid "Select language"
442
  msgstr ""
443
 
444
+ #: wp/transposh_admin.php:734
 
 
 
 
 
445
  #, php-format
446
  #@ transposh
447
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
448
  msgstr ""
449
 
450
+ #: wp/transposh_admin.php:734
451
+ #: wp/transposh_admin.php:738
452
  #@ transposh
453
  msgid "Check Transposh FAQs"
454
  msgstr ""
455
 
456
+ #: wp/transposh_admin.php:738
457
  #@ transposh
458
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
459
  msgstr ""
460
 
461
+ #: wp/transposh_admin.php:424
462
  #@ transposh
463
  msgid "Allow search of translated languages (and the original language)"
464
  msgstr ""
465
 
466
+ #: wp/transposh_admin.php:428
467
  #@ transposh
468
  msgid "Enable override for default locale"
469
  msgstr ""
470
 
471
+ #: wp/transposh_admin.php:429
472
  #@ transposh
473
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
474
  msgstr ""
475
 
476
+ #: wp/transposh_admin.php:465
477
  #@ transposh
478
  msgid "MSN API key"
479
  msgstr ""
480
 
481
+ #: wp/transposh_admin.php:466
482
+ #: wp/transposh_admin.php:469
 
483
  #@ transposh
484
  msgid "API Key"
485
  msgstr ""
486
 
487
+ #: wp/transposh_admin.php:468
488
  #@ transposh
489
  msgid "Google API key"
490
  msgstr ""
491
 
492
+ #: wp/transposh_admin.php:436
493
  #@ transposh
494
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
495
  msgstr ""
496
 
497
+ #: wp/transposh_admin.php:439
498
  #@ transposh
499
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
500
  msgstr ""
501
 
502
+ #: wp/transposh_admin.php:442
503
  #@ transposh
504
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
505
  msgstr ""
506
 
507
+ #: wp/transposh_admin.php:443
508
  #@ transposh
509
  msgid "Allow collecting usage statistics"
510
  msgstr ""
511
 
512
+ #: wp/transposh_postpublish.php:57
513
  #@ transposh
514
  msgid "Set post language"
515
  msgstr ""
516
 
517
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
518
  #@ default
519
  msgid "Default"
520
  msgstr ""
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr ""
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr ""
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr ""
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr ""
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr ""
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr ""
553
 
554
+ #: wp/transposh_admin.php:390
 
 
 
 
 
555
  #@ transposh
556
  msgid "Language supported by one hour translation"
557
  msgstr ""
558
 
559
+ #: wp/transposh_admin.php:477
560
  #@ transposh
561
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a> ist mit Tausenden von Geschäftskunden darunter 57 % von Amerikas 500 größten Unternehmen der größte professionelle Online-Übersetzungsdienstleister und hat mehr als 15.000 Übersetzer weltweit."
563
 
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
  msgstr "One Hour Translation bietet qualitativ hochwertige, schnelle, professionelle Übersetzungen in/aus allen Sprachen und verfügt über spezifische Branchenkenntnisse bei der SW-Lokalisierung sowie bei technischen, geschäftlichen und juristischen Übersetzungen."
568
 
569
+ #: wp/transposh_admin.php:483
570
  #@ transposh
571
  msgid "One Hour Translation account ID"
572
  msgstr ""
573
 
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
  #@ transposh
577
  msgid "Account ID"
578
  msgstr ""
579
 
580
+ #: wp/transposh_admin.php:487
581
  #@ transposh
582
  msgid "One Hour Translation secret key"
583
  msgstr ""
584
 
585
+ #: wp/transposh_admin.php:499
586
  #, php-format
587
  #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
+ msgstr ""
610
+
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
+ msgstr ""
615
+
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
  msgstr ""
625
 
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
+ msgstr ""
660
+
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
  #, php-format
678
  #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
+ #: wp/transposh_admin.php:530
689
+ #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
+ msgstr ""
732
+
733
+ #: wp/transposh_admin.php:532
734
+ #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
+ msgstr ""
737
+
738
+ #: wp/transposh_admin.php:533
739
+ #@ transposh
740
+ msgid "Log file name"
741
+ msgstr ""
742
+
743
+ #: wp/transposh_admin.php:534
744
+ #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
+ msgstr ""
767
+
768
+ #: wp/transposh_admin.php:539
769
+ #@ transposh
770
+ msgid "Debug"
771
+ msgstr ""
772
+
773
+ #: wp/transposh_admin.php:541
774
+ #, php-format
775
+ #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
+ msgstr ""
778
+
779
+ #: wp/transposh_admin.php:553
780
+ #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
langs/transposh-es_ES.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
- "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
@@ -19,29 +19,29 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: wp/transposh_db.php:682
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Estadísticas de la Base de datos"
26
 
27
- #: wp/transposh_db.php:687
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Un total de <strong style=\"color:red\">%s</strong> frases traducidas."
32
 
33
- #: wp/transposh_db.php:694
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> tiene <strong style=\"color:red\">%2s</strong> frases traducidas por humanos."
38
 
39
- #: wp/transposh_db.php:697
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Actividad reciente"
43
 
44
- #: wp/transposh_db.php:702
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
@@ -53,431 +53,353 @@ msgstr "El <strong>%1s</strong><br/>el usuario <strong>%2s</strong> tradujo<br/>
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr ""
55
 
56
- #: wp/transposh_admin.php:175
57
- #: wp/transposh_admin.php:243
58
- #: wp/transposh_postpublish.php:50
59
- #: wp/transposh_postpublish.php:51
60
- #: wp/transposh_widget.php:84
61
- #: wp/transposh_widget.php:311
62
  #@ transposh
63
  #@ default
64
  msgid "Transposh"
65
  msgstr ""
66
 
67
- #: wp/transposh_admin.php:165
68
  #@ transposh
69
  msgid "Transposh makes your blog translatable"
70
  msgstr "Transposh hace tu blog traducible"
71
 
72
- #: wp/transposh_admin.php:166
73
  #@ transposh
74
  msgid "Plugin homepage"
75
  msgstr " Página de inicio del plugin"
76
 
77
- #: wp/transposh_admin.php:167
78
  #@ transposh
79
  msgid "Frequently asked questions"
80
  msgstr "Preguntas más frecuentes"
81
 
82
- #: wp/transposh_admin.php:175
83
- #@ transposh
84
- msgid "Transposh control center"
85
- msgstr "Centro de control de Transposh"
86
-
87
- #: wp/transposh_admin.php:212
88
- #@ transposh
89
- msgid "About this plugin"
90
- msgstr "Acerca de este plugin"
91
-
92
- #: wp/transposh_admin.php:213
93
  #@ transposh
94
  msgid "Plugin news"
95
  msgstr "Noticias del Plugin"
96
 
97
- #: wp/transposh_admin.php:214
98
  #@ transposh
99
  msgid "Plugin stats"
100
  msgstr "Estadísticas del Plugin"
101
 
102
- #: wp/transposh_admin.php:215
103
- #@ transposh
104
- msgid "Translate all"
105
- msgstr "Traducir todo"
106
-
107
- #: wp/transposh_admin.php:216
108
- #@ transposh
109
- msgid "Supported languages"
110
- msgstr "Idiomas soportados"
111
-
112
- #: wp/transposh_admin.php:217
113
- #@ transposh
114
- msgid "Translation settings"
115
- msgstr "Configuración de traducción"
116
-
117
- #: wp/transposh_admin.php:218
118
- #@ transposh
119
- msgid "Automatic translation settings"
120
- msgstr "Configuración de la traducción automática"
121
-
122
- #: wp/transposh_admin.php:221
123
- #@ transposh
124
- msgid "Generic settings"
125
- msgstr "Configuraciones genéricas"
126
-
127
- #: wp/transposh_admin.php:222
128
- #@ transposh
129
- msgid "Database maintenance"
130
- msgstr "Mantenimiento de la base de datos"
131
-
132
- #: wp/transposh_admin.php:237
133
  #@ transposh
134
- msgid "Transposh community features"
135
- msgstr "Funciones de la \"Comunidad Transposh\""
136
-
137
- #: wp/transposh_admin.php:273
138
- #@ default
139
  msgid "Save Changes"
140
  msgstr ""
141
 
142
- #: wp/transposh_admin.php:297
143
  #@ transposh
144
  msgid "Problems?"
145
  msgstr "¿Problemas?"
146
 
147
- #: wp/transposh_admin.php:313
148
- #@ transposh
149
- msgid "Plugin Homepage"
150
- msgstr "Página de inicio del Plugin"
151
-
152
- #: wp/transposh_admin.php:314
153
  #@ transposh
154
  msgid "Suggest a Feature"
155
  msgstr "Sugiere una función"
156
 
157
- #: wp/transposh_admin.php:316
158
  #@ transposh
159
  msgid "Report a Bug"
160
  msgstr "Informar de un error"
161
 
162
- #: wp/transposh_admin.php:333
163
  #@ transposh
164
  msgid "Translate by clicking the button below"
165
  msgstr "Traducir haciendo clic en el botón de abajo"
166
 
167
- #: wp/transposh_admin.php:335
168
  #@ transposh
169
  msgid "Translate All Now"
170
  msgstr "Traducir Todo Ahora"
171
 
172
- #: wp/transposh_admin.php:390
173
  #@ transposh
174
  msgid "Default Language (drag another language here to make it default)"
175
  msgstr "Idioma por defecto (arrastrar otro idioma aquí para que sea el por defecto)"
176
 
177
- #: wp/transposh_admin.php:397
178
  #@ transposh
179
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
180
  msgstr "Idiomas disponibles (Haga clic para cambiar el estado del lenguaje - Arrastre para ordenar en el widget)"
181
 
182
- #: wp/transposh_admin.php:407
183
  #@ transposh
184
  msgid "Language supported by google translate"
185
  msgstr "Idioma soportado por el traductor de Google"
186
 
187
- #: wp/transposh_admin.php:409
188
  #@ transposh
189
  msgid "Language supported by bing translate"
190
  msgstr "Idioma soportado por el traductor de bing"
191
 
192
- #: wp/transposh_admin.php:411
193
  #@ transposh
194
  msgid "Language supported by apertium translate"
195
  msgstr "Idioma soportado por el traductor apertium"
196
 
197
- #: wp/transposh_admin.php:415
198
  #@ transposh
199
  msgid "Language is written from right to left"
200
  msgstr "Este idioma se escribe de derecha a izquierda"
201
 
202
- #: wp/transposh_admin.php:420
203
  #@ transposh
204
  msgid "Display options:"
205
  msgstr "Opciones de visualización:"
206
 
207
- #: wp/transposh_admin.php:421
208
  #@ transposh
209
  msgid "Toggle names of languages between English and Original"
210
  msgstr "Cambiar los nombres de las lenguas entre Inglés y Original"
211
 
212
- #: wp/transposh_admin.php:422
213
  #@ transposh
214
  msgid "Make all languages active"
215
  msgstr "Activar todas las lenguas"
216
 
217
- #: wp/transposh_admin.php:423
218
  #@ transposh
219
  msgid "Sort by language name"
220
  msgstr "Ordenar por nombre de idioma"
221
 
222
- #: wp/transposh_admin.php:424
223
  #@ transposh
224
  msgid "Sort by lSO code"
225
  msgstr "Ordenar por código lSO"
226
 
227
- #: wp/transposh_admin.php:425
228
- #@ transposh
229
- msgid "Legend:"
230
- msgstr "Leyenda:"
231
-
232
- #: wp/transposh_admin.php:425
233
- #@ transposh
234
- msgid "Green - active"
235
- msgstr "Verde - activo"
236
-
237
- #: wp/transposh_admin.php:425
238
- #@ transposh
239
- msgid "Yellow - translateable (only translators will see this language)"
240
- msgstr "Amarillo - traducible (sólo los traductores verán este idioma)"
241
-
242
- #: wp/transposh_admin.php:425
243
- #@ transposh
244
- msgid "blank - inactive"
245
- msgstr "blanco - inactivo"
246
-
247
- #: wp/transposh_admin.php:447
248
  #@ transposh
249
  msgid "Who can translate ?"
250
  msgstr "¿Quién puede traducir?"
251
 
252
- #: wp/transposh_admin.php:454
253
  #@ transposh
254
  msgid "Anonymous"
255
  msgstr "Anónimo"
256
 
257
- #: wp/transposh_admin.php:460
258
  #@ transposh
259
  msgid "Enable default language translation"
260
  msgstr "Activar la traducción del idioma por defecto"
261
 
262
- #: wp/transposh_admin.php:460
263
  #@ transposh
264
  msgid "Allow translation of default language - useful for sites with more than one major language"
265
  msgstr "Permite la traducción de la lengua por defecto - útil para los sitios con más de un idioma principal"
266
 
267
- #: wp/transposh_admin.php:467
268
  #@ transposh
269
  msgid "Enable search in translated languages"
270
  msgstr "Habilitar la búsqueda en los idiomas traducidos"
271
 
272
- #: wp/transposh_admin.php:474
273
  #@ transposh
274
  msgid "Enable url translation"
275
  msgstr "Permitir la traducción del url"
276
 
277
- #: wp/transposh_admin.php:474
278
- #: wp/transposh_admin.php:481
279
  #@ transposh
280
  msgid "experimental"
281
  msgstr "experimental"
282
 
283
- #: wp/transposh_admin.php:474
284
  #@ transposh
285
  msgid "Allow translation of permalinks and urls"
286
  msgstr "Permitir la traducción de vínculos permanentes y urls"
287
 
288
- #: wp/transposh_admin.php:481
289
  #@ transposh
290
  msgid "Enable gettext integration"
291
  msgstr "Permitir la integración con gettext"
292
 
293
- #: wp/transposh_admin.php:481
294
  #@ transposh
295
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
296
  msgstr "Permitir la integración de Transposh con interfaces gettext existentes (.po /.mo archivos )"
297
 
298
- #: wp/transposh_admin.php:497
299
  #@ transposh
300
  msgid "Enable automatic translation"
301
  msgstr "Permitir traducción automática"
302
 
303
- #: wp/transposh_admin.php:497
304
  #@ transposh
305
  msgid "Allow automatic translation of pages"
306
  msgstr "Permitir la traducción automática de páginas"
307
 
308
- #: wp/transposh_admin.php:503
309
  #@ transposh
310
  msgid "Enable automatic translation after posting"
311
  msgstr "Permitir la traducción automática tras publicar"
312
 
313
- #: wp/transposh_admin.php:503
314
  #@ transposh
315
  msgid "Do automatic translation immediately after a post has been published"
316
  msgstr "Traducir automáticamente inmediatamente después de publicar una entrada"
317
 
318
- #: wp/transposh_admin.php:520
319
  #@ transposh
320
  msgid "Select preferred auto translation engine"
321
  msgstr "Seleccione el motor de auto traducción preferido"
322
 
323
- #: wp/transposh_admin.php:521
324
  #@ transposh
325
  msgid "Translation engine:"
326
  msgstr "Motor de Traducción:"
327
 
328
- #: wp/transposh_admin.php:523
329
  #@ transposh
330
  msgid "Google"
331
  msgstr "Google"
332
 
333
- #: wp/transposh_admin.php:524
334
  #@ transposh
335
  msgid "Bing"
336
  msgstr "Bing"
337
 
338
- #: wp/transposh_admin.php:578
339
  #@ transposh
340
  msgid "Rewrite URLs"
341
  msgstr "Reescribir las URLs"
342
 
343
- #: wp/transposh_admin.php:586
344
  #@ transposh
345
  msgid "Add scripts to footer"
346
  msgstr "Agregar scripts al pie de página"
347
 
348
- #: wp/transposh_admin.php:592
349
  #@ transposh
350
  msgid "Auto detect language for users"
351
  msgstr "Detección automática de idioma para los usuarios"
352
 
353
- #: wp/transposh_admin.php:608
354
  #@ transposh
355
  msgid "Delete all automated translations"
356
  msgstr "Eliminar todas las traducciones automáticas"
357
 
358
- #: wp/transposh_admin.php:609
359
  #@ transposh
360
  msgid "Delete automated translations older than 14 days"
361
  msgstr "Eliminar traducciones automáticas de más de 14 días de antigüedad"
362
 
363
- #: wp/transposh_admin.php:610
364
  #@ transposh
365
  msgid "Attempt to fix errors caused by previous versions - please backup first"
366
  msgstr "Tratar de corregir los errores causados por las versiones anteriores - por favor, haga copia de seguridad antes"
367
 
368
- #: wp/transposh_admin.php:614
369
- #@ transposh
370
- msgid "Backup service for human translation"
371
- msgstr "Servicio de copia de seguridad para la traducción humana"
372
-
373
- #: wp/transposh_admin.php:615
374
  #@ transposh
375
  msgid "Enable daily backup"
376
  msgstr "Habilitar copia de seguridad diaria"
377
 
378
- #: wp/transposh_admin.php:616
379
  #@ transposh
380
  msgid "Enable live backup"
381
  msgstr "Habilitar copia de seguridad en vivo"
382
 
383
- #: wp/transposh_admin.php:617
384
  #@ transposh
385
  msgid "Disable backup (Can be run manually by clicking the button below)"
386
  msgstr "Desactivar copia de seguridad (se puede ejecutar manualmente haciendo clic en el botón de abajo)"
387
 
388
- #: wp/transposh_admin.php:618
389
  #@ transposh
390
  msgid "Service Key:"
391
  msgstr "Clave de servicio:"
392
 
393
- #: wp/transposh_admin.php:618
394
  #@ transposh
395
  msgid "How to restore?"
396
  msgstr "¿Cómo restaurar?"
397
 
398
- #: wp/transposh_admin.php:620
399
  #@ transposh
400
  msgid "Do Backup Now"
401
  msgstr "Hacer copia de seguridad ahora"
402
 
403
- #: wp/transposh_widget.php:82
404
  #@ transposh
405
  msgid "Transposh language selection widget"
406
  msgstr "Widget de selección de lenguaje Transposh"
407
 
408
- #: wp/transposh_widget.php:284
409
  #@ transposh
410
  msgid "Set as default language"
411
  msgstr "Establecer como idioma predeterminado"
412
 
413
- #: wp/transposh_widget.php:314
414
  #@ transposh
415
  msgid "translation plugin for wordpress"
416
  msgstr "Plugin de traducción para WordPress"
417
 
418
- #: wp/transposh_widget.php:317
419
  #@ transposh
420
  msgid "wordpress translation plugin"
421
  msgstr "Plugin de traducción de WordPress"
422
 
423
- #: wp/transposh_widget.php:320
424
  #@ transposh
425
  msgid "translate your blog to 60+ languages"
426
  msgstr "Traduce tu blog a más de 60 idiomas"
427
 
428
- #: wp/transposh_widget.php:323
429
  #@ transposh
430
  msgid "website crowdsourcing translation plugin"
431
  msgstr "Plugin de traducción crowdsourcing de páginas web"
432
 
433
- #: wp/transposh_widget.php:326
434
  #@ transposh
435
  msgid "google translate and bing translate plugin for wordpress"
436
  msgstr "Plugin de traductor de Google y Bing para WordPress"
437
 
438
- #: wp/transposh_widget.php:125
439
  #@ transposh
440
  msgid "Style:"
441
  msgstr "Estilo:"
442
 
443
- #: wp/transposh_admin.php:556
444
  #@ transposh
445
  msgid "Show progress bar when a client triggers automatic translation"
446
  msgstr "Mostrar la barra de progreso cuando un cliente activa la traducción automática"
447
 
448
- #: wp/transposh_admin.php:556
449
  #@ transposh
450
  msgid "Show progress bar"
451
  msgstr "Mostrar la barra de progreso"
452
 
453
- #: wp/transposh_admin.php:558
454
  #@ transposh
455
  msgid "Widget will allow setting this language as user default"
456
  msgstr "El Widget permitirá establecer esta lengua como predeterminada del usuario"
457
 
458
- #: wp/transposh_admin.php:558
459
  #@ transposh
460
  msgid "Allow user to set current language as default"
461
  msgstr "Permitir al usuario establecer el idioma actual como predeterminado"
462
 
463
- #: wp/transposh_admin.php:560
464
  #@ transposh
465
  msgid "Transposh logo will not appear on widget"
466
  msgstr "El logo de Transposh no aparecerá en el widget"
467
 
468
- #: wp/transposh_admin.php:560
469
  #@ transposh
470
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
471
  msgstr "Quitar el logotipo de Transposh (ver <a href=\\\"http://transposh.org/logoterms\\\"> condiciones</a> )"
472
 
473
- #: wp/transposh_admin.php:562
474
- #: wp/transposh_admin.php:563
475
  #@ transposh
476
  msgid "Edit interface (and progress bar) theme:"
477
  msgstr "Tema de la interfaz de edición (y de la barra de progreso):"
478
 
479
- #: transposh.php:908
 
480
  #@ default
 
481
  msgid "Settings"
482
  msgstr ""
483
 
@@ -506,17 +428,17 @@ msgstr "Filtro de Traducción para WordPress, después de habilitarlo configurar
506
  msgid "Team Transposh"
507
  msgstr "Equipo Transposh"
508
 
509
- #: wp/transposh_admin.php:580
510
  #@ transposh
511
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
512
  msgstr "Reescribe las URLs para que sean amigables para los motores de búsqueda, por ejemplo (http://transposh.org/ <strong>en).</strong> Requiere que los permalinks estén habilitados."
513
 
514
- #: wp/transposh_admin.php:587
515
  #@ transposh
516
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
517
  msgstr "Ponga los scripts de Transposh al pie de la página en lugar de cabecera, hace que las páginas se cargan más rápido. Se requiere que su tema tenga adecuado soporte para footer."
518
 
519
- #: wp/transposh_admin.php:593
520
  #@ transposh
521
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
522
  msgstr "Esto permite la detección automática del idioma utilizado por el usuario tal como se define en el ACCEPT_LANGUAGES que envían. Esto redireccionará la primera página visitada en la sesión a la misma página con el idioma detectado."
@@ -534,161 +456,483 @@ msgstr ""
534
  msgid "Select language"
535
  msgstr ""
536
 
537
- #: wp/transposh_admin.php:220
538
- #@ transposh
539
- msgid "Frontend settings"
540
- msgstr ""
541
-
542
- #: wp/transposh_admin.php:248
543
  #, php-format
544
  #@ transposh
545
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
546
  msgstr ""
547
 
548
- #: wp/transposh_admin.php:248
549
- #: wp/transposh_admin.php:252
550
  #@ transposh
551
  msgid "Check Transposh FAQs"
552
  msgstr ""
553
 
554
- #: wp/transposh_admin.php:252
555
  #@ transposh
556
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
557
  msgstr ""
558
 
559
- #: wp/transposh_admin.php:467
560
  #@ transposh
561
  msgid "Allow search of translated languages (and the original language)"
562
  msgstr ""
563
 
564
- #: wp/transposh_admin.php:488
565
  #@ transposh
566
  msgid "Enable override for default locale"
567
  msgstr ""
568
 
569
- #: wp/transposh_admin.php:488
570
  #@ transposh
571
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
572
  msgstr ""
573
 
574
- #: wp/transposh_admin.php:508
575
  #@ transposh
576
  msgid "MSN API key"
577
  msgstr ""
578
 
579
- #: wp/transposh_admin.php:509
580
- #: wp/transposh_admin.php:515
581
- #: wp/transposh_admin.php:540
582
  #@ transposh
583
  msgid "API Key"
584
  msgstr ""
585
 
586
- #: wp/transposh_admin.php:514
587
  #@ transposh
588
  msgid "Google API key"
589
  msgstr ""
590
 
591
- #: wp/transposh_admin.php:598
592
  #@ transposh
593
  msgid "Allow collecting usage statistics"
594
  msgstr ""
595
 
596
- #: wp/transposh_postpublish.php:52
597
  #@ transposh
598
  msgid "Set post language"
599
  msgstr ""
600
 
601
- #: wp/transposh_postpublish.php:53
602
- #@ transposh
603
- msgid "Set page language"
604
- msgstr ""
605
-
606
- #: wp/transposh_postpublish.php:198
607
  #@ default
608
  msgid "Default"
609
  msgstr ""
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr ""
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr ""
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr ""
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr ""
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
644
- #@ transposh
645
- msgid "Professional translation settings"
646
- msgstr ""
647
-
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
  msgid "Language supported by one hour translation"
651
  msgstr ""
652
 
653
- #: wp/transposh_admin.php:530
654
  #@ transposh
655
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
656
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, es el mayor servicio de traducción profesional de internet, con miles de clientes empresariales, incluyendo el 57 % de las empresas de Fortune 500, y más de 15.000 traductores de todo el mundo."
657
 
658
- #: wp/transposh_admin.php:532
659
  #@ transposh
660
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr "One Hour Translation proporciona rápidas traducciones profesionales de alta calidad a/de cualquier idioma, y dispone de expertos en localización de software y traducciones técnicas, comerciales y legales."
662
 
663
- #: wp/transposh_admin.php:533
664
  #@ transposh
665
  msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
- #: wp/transposh_admin.php:534
 
669
  #@ transposh
670
  msgid "Account ID"
671
  msgstr ""
672
 
673
- #: wp/transposh_admin.php:539
674
  #@ transposh
675
  msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
685
  #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
+ "PO-Revision-Date: 2012-12-12 19:50:39+0000\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: wp/transposh_db.php:684
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Estadísticas de la Base de datos"
26
 
27
+ #: wp/transposh_db.php:689
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Un total de <strong style=\"color:red\">%s</strong> frases traducidas."
32
 
33
+ #: wp/transposh_db.php:696
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> tiene <strong style=\"color:red\">%2s</strong> frases traducidas por humanos."
38
 
39
+ #: wp/transposh_db.php:699
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Actividad reciente"
43
 
44
+ #: wp/transposh_db.php:704
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr ""
55
 
56
+ #: wp/transposh_postpublish.php:55
57
+ #: wp/transposh_widget.php:86
58
+ #: wp/transposh_widget.php:315
 
 
 
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr ""
63
 
64
+ #: wp/transposh_admin.php:185
65
  #@ transposh
66
  msgid "Transposh makes your blog translatable"
67
  msgstr "Transposh hace tu blog traducible"
68
 
69
+ #: wp/transposh_admin.php:187
70
  #@ transposh
71
  msgid "Plugin homepage"
72
  msgstr " Página de inicio del plugin"
73
 
74
+ #: wp/transposh_admin.php:188
75
  #@ transposh
76
  msgid "Frequently asked questions"
77
  msgstr "Preguntas más frecuentes"
78
 
79
+ #: wp/transposh_admin.php:283
 
 
 
 
 
 
 
 
 
 
80
  #@ transposh
81
  msgid "Plugin news"
82
  msgstr "Noticias del Plugin"
83
 
84
+ #: wp/transposh_admin.php:284
85
  #@ transposh
86
  msgid "Plugin stats"
87
  msgstr "Estadísticas del Plugin"
88
 
89
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  #@ transposh
 
 
 
 
 
91
  msgid "Save Changes"
92
  msgstr ""
93
 
94
+ #: wp/transposh_admin.php:653
95
  #@ transposh
96
  msgid "Problems?"
97
  msgstr "¿Problemas?"
98
 
99
+ #: wp/transposh_admin.php:616
 
 
 
 
 
100
  #@ transposh
101
  msgid "Suggest a Feature"
102
  msgstr "Sugiere una función"
103
 
104
+ #: wp/transposh_admin.php:617
105
  #@ transposh
106
  msgid "Report a Bug"
107
  msgstr "Informar de un error"
108
 
109
+ #: wp/transposh_admin.php:559
110
  #@ transposh
111
  msgid "Translate by clicking the button below"
112
  msgstr "Traducir haciendo clic en el botón de abajo"
113
 
114
+ #: wp/transposh_admin.php:561
115
  #@ transposh
116
  msgid "Translate All Now"
117
  msgstr "Traducir Todo Ahora"
118
 
119
+ #: wp/transposh_admin.php:364
120
  #@ transposh
121
  msgid "Default Language (drag another language here to make it default)"
122
  msgstr "Idioma por defecto (arrastrar otro idioma aquí para que sea el por defecto)"
123
 
124
+ #: wp/transposh_admin.php:372
125
  #@ transposh
126
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
127
  msgstr "Idiomas disponibles (Haga clic para cambiar el estado del lenguaje - Arrastre para ordenar en el widget)"
128
 
129
+ #: wp/transposh_admin.php:384
130
  #@ transposh
131
  msgid "Language supported by google translate"
132
  msgstr "Idioma soportado por el traductor de Google"
133
 
134
+ #: wp/transposh_admin.php:386
135
  #@ transposh
136
  msgid "Language supported by bing translate"
137
  msgstr "Idioma soportado por el traductor de bing"
138
 
139
+ #: wp/transposh_admin.php:388
140
  #@ transposh
141
  msgid "Language supported by apertium translate"
142
  msgstr "Idioma soportado por el traductor apertium"
143
 
144
+ #: wp/transposh_admin.php:392
145
  #@ transposh
146
  msgid "Language is written from right to left"
147
  msgstr "Este idioma se escribe de derecha a izquierda"
148
 
149
+ #: wp/transposh_admin.php:397
150
  #@ transposh
151
  msgid "Display options:"
152
  msgstr "Opciones de visualización:"
153
 
154
+ #: wp/transposh_admin.php:398
155
  #@ transposh
156
  msgid "Toggle names of languages between English and Original"
157
  msgstr "Cambiar los nombres de las lenguas entre Inglés y Original"
158
 
159
+ #: wp/transposh_admin.php:399
160
  #@ transposh
161
  msgid "Make all languages active"
162
  msgstr "Activar todas las lenguas"
163
 
164
+ #: wp/transposh_admin.php:400
165
  #@ transposh
166
  msgid "Sort by language name"
167
  msgstr "Ordenar por nombre de idioma"
168
 
169
+ #: wp/transposh_admin.php:401
170
  #@ transposh
171
  msgid "Sort by lSO code"
172
  msgstr "Ordenar por código lSO"
173
 
174
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  #@ transposh
176
  msgid "Who can translate ?"
177
  msgstr "¿Quién puede traducir?"
178
 
179
+ #: wp/transposh_admin.php:419
180
  #@ transposh
181
  msgid "Anonymous"
182
  msgstr "Anónimo"
183
 
184
+ #: wp/transposh_admin.php:421
185
  #@ transposh
186
  msgid "Enable default language translation"
187
  msgstr "Activar la traducción del idioma por defecto"
188
 
189
+ #: wp/transposh_admin.php:422
190
  #@ transposh
191
  msgid "Allow translation of default language - useful for sites with more than one major language"
192
  msgstr "Permite la traducción de la lengua por defecto - útil para los sitios con más de un idioma principal"
193
 
194
+ #: wp/transposh_admin.php:423
195
  #@ transposh
196
  msgid "Enable search in translated languages"
197
  msgstr "Habilitar la búsqueda en los idiomas traducidos"
198
 
199
+ #: wp/transposh_admin.php:518
200
  #@ transposh
201
  msgid "Enable url translation"
202
  msgstr "Permitir la traducción del url"
203
 
204
+ #: wp/transposh_admin.php:518
 
205
  #@ transposh
206
  msgid "experimental"
207
  msgstr "experimental"
208
 
209
+ #: wp/transposh_admin.php:518
210
  #@ transposh
211
  msgid "Allow translation of permalinks and urls"
212
  msgstr "Permitir la traducción de vínculos permanentes y urls"
213
 
214
+ #: wp/transposh_admin.php:425
215
  #@ transposh
216
  msgid "Enable gettext integration"
217
  msgstr "Permitir la integración con gettext"
218
 
219
+ #: wp/transposh_admin.php:426
220
  #@ transposh
221
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
222
  msgstr "Permitir la integración de Transposh con interfaces gettext existentes (.po /.mo archivos )"
223
 
224
+ #: wp/transposh_admin.php:460
225
  #@ transposh
226
  msgid "Enable automatic translation"
227
  msgstr "Permitir traducción automática"
228
 
229
+ #: wp/transposh_admin.php:461
230
  #@ transposh
231
  msgid "Allow automatic translation of pages"
232
  msgstr "Permitir la traducción automática de páginas"
233
 
234
+ #: wp/transposh_admin.php:462
235
  #@ transposh
236
  msgid "Enable automatic translation after posting"
237
  msgstr "Permitir la traducción automática tras publicar"
238
 
239
+ #: wp/transposh_admin.php:463
240
  #@ transposh
241
  msgid "Do automatic translation immediately after a post has been published"
242
  msgstr "Traducir automáticamente inmediatamente después de publicar una entrada"
243
 
244
+ #: wp/transposh_admin.php:470
245
  #@ transposh
246
  msgid "Select preferred auto translation engine"
247
  msgstr "Seleccione el motor de auto traducción preferido"
248
 
249
+ #: wp/transposh_admin.php:471
250
  #@ transposh
251
  msgid "Translation engine:"
252
  msgstr "Motor de Traducción:"
253
 
254
+ #: wp/transposh_admin.php:472
255
  #@ transposh
256
  msgid "Google"
257
  msgstr "Google"
258
 
259
+ #: wp/transposh_admin.php:473
260
  #@ transposh
261
  msgid "Bing"
262
  msgstr "Bing"
263
 
264
+ #: wp/transposh_admin.php:433
265
  #@ transposh
266
  msgid "Rewrite URLs"
267
  msgstr "Reescribir las URLs"
268
 
269
+ #: wp/transposh_admin.php:437
270
  #@ transposh
271
  msgid "Add scripts to footer"
272
  msgstr "Agregar scripts al pie de página"
273
 
274
+ #: wp/transposh_admin.php:440
275
  #@ transposh
276
  msgid "Auto detect language for users"
277
  msgstr "Detección automática de idioma para los usuarios"
278
 
279
+ #: wp/transposh_admin.php:554
280
  #@ transposh
281
  msgid "Delete all automated translations"
282
  msgstr "Eliminar todas las traducciones automáticas"
283
 
284
+ #: wp/transposh_admin.php:555
285
  #@ transposh
286
  msgid "Delete automated translations older than 14 days"
287
  msgstr "Eliminar traducciones automáticas de más de 14 días de antigüedad"
288
 
289
+ #: wp/transposh_admin.php:556
290
  #@ transposh
291
  msgid "Attempt to fix errors caused by previous versions - please backup first"
292
  msgstr "Tratar de corregir los errores causados por las versiones anteriores - por favor, haga copia de seguridad antes"
293
 
294
+ #: wp/transposh_admin.php:451
 
 
 
 
 
295
  #@ transposh
296
  msgid "Enable daily backup"
297
  msgstr "Habilitar copia de seguridad diaria"
298
 
299
+ #: wp/transposh_admin.php:452
300
  #@ transposh
301
  msgid "Enable live backup"
302
  msgstr "Habilitar copia de seguridad en vivo"
303
 
304
+ #: wp/transposh_admin.php:453
305
  #@ transposh
306
  msgid "Disable backup (Can be run manually by clicking the button below)"
307
  msgstr "Desactivar copia de seguridad (se puede ejecutar manualmente haciendo clic en el botón de abajo)"
308
 
309
+ #: wp/transposh_admin.php:454
310
  #@ transposh
311
  msgid "Service Key:"
312
  msgstr "Clave de servicio:"
313
 
314
+ #: wp/transposh_admin.php:454
315
  #@ transposh
316
  msgid "How to restore?"
317
  msgstr "¿Cómo restaurar?"
318
 
319
+ #: wp/transposh_admin.php:548
320
  #@ transposh
321
  msgid "Do Backup Now"
322
  msgstr "Hacer copia de seguridad ahora"
323
 
324
+ #: wp/transposh_widget.php:84
325
  #@ transposh
326
  msgid "Transposh language selection widget"
327
  msgstr "Widget de selección de lenguaje Transposh"
328
 
329
+ #: wp/transposh_widget.php:288
330
  #@ transposh
331
  msgid "Set as default language"
332
  msgstr "Establecer como idioma predeterminado"
333
 
334
+ #: wp/transposh_widget.php:318
335
  #@ transposh
336
  msgid "translation plugin for wordpress"
337
  msgstr "Plugin de traducción para WordPress"
338
 
339
+ #: wp/transposh_widget.php:321
340
  #@ transposh
341
  msgid "wordpress translation plugin"
342
  msgstr "Plugin de traducción de WordPress"
343
 
344
+ #: wp/transposh_widget.php:324
345
  #@ transposh
346
  msgid "translate your blog to 60+ languages"
347
  msgstr "Traduce tu blog a más de 60 idiomas"
348
 
349
+ #: wp/transposh_widget.php:327
350
  #@ transposh
351
  msgid "website crowdsourcing translation plugin"
352
  msgstr "Plugin de traducción crowdsourcing de páginas web"
353
 
354
+ #: wp/transposh_widget.php:330
355
  #@ transposh
356
  msgid "google translate and bing translate plugin for wordpress"
357
  msgstr "Plugin de traductor de Google y Bing para WordPress"
358
 
359
+ #: wp/transposh_widget.php:129
360
  #@ transposh
361
  msgid "Style:"
362
  msgstr "Estilo:"
363
 
364
+ #: wp/transposh_admin.php:506
365
  #@ transposh
366
  msgid "Show progress bar when a client triggers automatic translation"
367
  msgstr "Mostrar la barra de progreso cuando un cliente activa la traducción automática"
368
 
369
+ #: wp/transposh_admin.php:505
370
  #@ transposh
371
  msgid "Show progress bar"
372
  msgstr "Mostrar la barra de progreso"
373
 
374
+ #: wp/transposh_admin.php:509
375
  #@ transposh
376
  msgid "Widget will allow setting this language as user default"
377
  msgstr "El Widget permitirá establecer esta lengua como predeterminada del usuario"
378
 
379
+ #: wp/transposh_admin.php:508
380
  #@ transposh
381
  msgid "Allow user to set current language as default"
382
  msgstr "Permitir al usuario establecer el idioma actual como predeterminado"
383
 
384
+ #: wp/transposh_admin.php:512
385
  #@ transposh
386
  msgid "Transposh logo will not appear on widget"
387
  msgstr "El logo de Transposh no aparecerá en el widget"
388
 
389
+ #: wp/transposh_admin.php:511
390
  #@ transposh
391
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
392
  msgstr "Quitar el logotipo de Transposh (ver <a href=\\\"http://transposh.org/logoterms\\\"> condiciones</a> )"
393
 
394
+ #: wp/transposh_admin.php:514
 
395
  #@ transposh
396
  msgid "Edit interface (and progress bar) theme:"
397
  msgstr "Tema de la interfaz de edición (y de la barra de progreso):"
398
 
399
+ #: transposh.php:921
400
+ #: wp/transposh_admin.php:59
401
  #@ default
402
+ #@ transposh
403
  msgid "Settings"
404
  msgstr ""
405
 
428
  msgid "Team Transposh"
429
  msgstr "Equipo Transposh"
430
 
431
+ #: wp/transposh_admin.php:436
432
  #@ transposh
433
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
434
  msgstr "Reescribe las URLs para que sean amigables para los motores de búsqueda, por ejemplo (http://transposh.org/ <strong>en).</strong> Requiere que los permalinks estén habilitados."
435
 
436
+ #: wp/transposh_admin.php:439
437
  #@ transposh
438
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
439
  msgstr "Ponga los scripts de Transposh al pie de la página en lugar de cabecera, hace que las páginas se cargan más rápido. Se requiere que su tema tenga adecuado soporte para footer."
440
 
441
+ #: wp/transposh_admin.php:442
442
  #@ transposh
443
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
444
  msgstr "Esto permite la detección automática del idioma utilizado por el usuario tal como se define en el ACCEPT_LANGUAGES que envían. Esto redireccionará la primera página visitada en la sesión a la misma página con el idioma detectado."
456
  msgid "Select language"
457
  msgstr ""
458
 
459
+ #: wp/transposh_admin.php:734
 
 
 
 
 
460
  #, php-format
461
  #@ transposh
462
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
463
  msgstr ""
464
 
465
+ #: wp/transposh_admin.php:734
466
+ #: wp/transposh_admin.php:738
467
  #@ transposh
468
  msgid "Check Transposh FAQs"
469
  msgstr ""
470
 
471
+ #: wp/transposh_admin.php:738
472
  #@ transposh
473
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
474
  msgstr ""
475
 
476
+ #: wp/transposh_admin.php:424
477
  #@ transposh
478
  msgid "Allow search of translated languages (and the original language)"
479
  msgstr ""
480
 
481
+ #: wp/transposh_admin.php:428
482
  #@ transposh
483
  msgid "Enable override for default locale"
484
  msgstr ""
485
 
486
+ #: wp/transposh_admin.php:429
487
  #@ transposh
488
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
489
  msgstr ""
490
 
491
+ #: wp/transposh_admin.php:465
492
  #@ transposh
493
  msgid "MSN API key"
494
  msgstr ""
495
 
496
+ #: wp/transposh_admin.php:466
497
+ #: wp/transposh_admin.php:469
 
498
  #@ transposh
499
  msgid "API Key"
500
  msgstr ""
501
 
502
+ #: wp/transposh_admin.php:468
503
  #@ transposh
504
  msgid "Google API key"
505
  msgstr ""
506
 
507
+ #: wp/transposh_admin.php:443
508
  #@ transposh
509
  msgid "Allow collecting usage statistics"
510
  msgstr ""
511
 
512
+ #: wp/transposh_postpublish.php:57
513
  #@ transposh
514
  msgid "Set post language"
515
  msgstr ""
516
 
517
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
518
  #@ default
519
  msgid "Default"
520
  msgstr ""
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr ""
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr ""
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr ""
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr ""
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr ""
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr ""
553
 
554
+ #: wp/transposh_admin.php:390
 
 
 
 
 
555
  #@ transposh
556
  msgid "Language supported by one hour translation"
557
  msgstr ""
558
 
559
+ #: wp/transposh_admin.php:477
560
  #@ transposh
561
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, es el mayor servicio de traducción profesional de internet, con miles de clientes empresariales, incluyendo el 57 % de las empresas de Fortune 500, y más de 15.000 traductores de todo el mundo."
563
 
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
  msgstr "One Hour Translation proporciona rápidas traducciones profesionales de alta calidad a/de cualquier idioma, y dispone de expertos en localización de software y traducciones técnicas, comerciales y legales."
568
 
569
+ #: wp/transposh_admin.php:483
570
  #@ transposh
571
  msgid "One Hour Translation account ID"
572
  msgstr ""
573
 
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
  #@ transposh
577
  msgid "Account ID"
578
  msgstr ""
579
 
580
+ #: wp/transposh_admin.php:487
581
  #@ transposh
582
  msgid "One Hour Translation secret key"
583
  msgstr ""
584
 
585
+ #: wp/transposh_admin.php:499
586
  #, php-format
587
  #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
+ msgstr ""
610
+
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
+ msgstr ""
615
+
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
  msgstr ""
625
 
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
+ msgstr ""
660
+
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
  #, php-format
678
  #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
+ #: wp/transposh_admin.php:530
689
+ #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
+ msgstr ""
732
+
733
+ #: wp/transposh_admin.php:532
734
+ #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
+ msgstr ""
737
+
738
+ #: wp/transposh_admin.php:533
739
+ #@ transposh
740
+ msgid "Log file name"
741
+ msgstr ""
742
+
743
+ #: wp/transposh_admin.php:534
744
+ #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
+ msgstr ""
767
+
768
+ #: wp/transposh_admin.php:539
769
+ #@ transposh
770
+ msgid "Debug"
771
+ msgstr ""
772
+
773
+ #: wp/transposh_admin.php:541
774
+ #, php-format
775
+ #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
+ msgstr ""
778
+
779
+ #: wp/transposh_admin.php:553
780
+ #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
langs/transposh-fa_IR.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: Persian transposh\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2011-02-07 03:02+0330\n"
6
- "PO-Revision-Date: 2011-07-04 15:12+0330\n"
7
  "Last-Translator: Sushyant Zavarzadeh <sushyant@zavarzadeh.org>\n"
8
  "Language-Team: S & S Group www.zavarzadeh.org <sushyant@zavarzadeh.org>\n"
9
  "MIME-Version: 1.0\n"
@@ -19,8 +19,10 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: C:/Documents and Settings/zavarzadeh/Desktop/transposh-translation-filter-for-wordpress\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: transposh.php:908
 
23
  #@ default
 
24
  msgid "Settings"
25
  msgstr "گزینه ها"
26
 
@@ -30,408 +32,328 @@ msgstr "گزینه ها"
30
  msgid "%s translated a phrase to %s with transposh:"
31
  msgstr "%ترجمه ی واژه ها %s با ترنسپاش"
32
 
33
- #: wp/transposh_admin.php:165
34
  #@ transposh
35
  msgid "Transposh makes your blog translatable"
36
  msgstr "ترنسپاش تارنمای شما را ترجمه می کند"
37
 
38
- #: wp/transposh_admin.php:166
39
  #@ transposh
40
  msgid "Plugin homepage"
41
  msgstr "خانه ی افزونه"
42
 
43
- #: wp/transposh_admin.php:167
44
  #@ transposh
45
  msgid "Frequently asked questions"
46
  msgstr "پرسش و پاسخ"
47
 
48
- #: wp/transposh_admin.php:175
49
- #@ transposh
50
- msgid "Transposh control center"
51
- msgstr "پایگاه کنترل ترنسپاش"
52
-
53
- #: wp/transposh_admin.php:175
54
- #: wp/transposh_admin.php:243
55
- #: wp/transposh_postpublish.php:50
56
- #: wp/transposh_postpublish.php:51
57
- #: wp/transposh_widget.php:84
58
- #: wp/transposh_widget.php:311
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr "ترنسپاش"
63
 
64
- #: wp/transposh_admin.php:212
65
- #@ transposh
66
- msgid "About this plugin"
67
- msgstr "درباره ی این افزونه"
68
-
69
- #: wp/transposh_admin.php:213
70
  #@ transposh
71
  msgid "Plugin news"
72
  msgstr "گزارش های افزونه"
73
 
74
- #: wp/transposh_admin.php:214
75
  #@ transposh
76
  msgid "Plugin stats"
77
  msgstr "آمار افزونه"
78
 
79
- #: wp/transposh_admin.php:215
80
- #@ transposh
81
- msgid "Translate all"
82
- msgstr "ترجمه ی همه"
83
-
84
- #: wp/transposh_admin.php:216
85
- #@ transposh
86
- msgid "Supported languages"
87
- msgstr "زبان های پشتیبانی شده"
88
-
89
- #: wp/transposh_admin.php:217
90
- #@ transposh
91
- msgid "Translation settings"
92
- msgstr "گزینه های ترجمه"
93
-
94
- #: wp/transposh_admin.php:218
95
- #@ transposh
96
- msgid "Automatic translation settings"
97
- msgstr "گزینه های ترجمه ی خودکار"
98
-
99
- #: wp/transposh_admin.php:221
100
- #@ transposh
101
- msgid "Generic settings"
102
- msgstr "گزینه های همگانی"
103
-
104
- #: wp/transposh_admin.php:222
105
- #@ transposh
106
- msgid "Database maintenance"
107
- msgstr "درست کردن (تعمیر) و نگه داری پایگاه داده"
108
-
109
- #: wp/transposh_admin.php:237
110
  #@ transposh
111
- msgid "Transposh community features"
112
- msgstr "ویژگی های همه گیر ترنسپاش"
113
-
114
- #: wp/transposh_admin.php:273
115
- #@ default
116
  msgid "Save Changes"
117
  msgstr "نگه داری دگرگونی ها"
118
 
119
- #: wp/transposh_admin.php:297
120
  #@ transposh
121
  msgid "Problems?"
122
  msgstr "مشکل؟"
123
 
124
- #: wp/transposh_admin.php:313
125
- #@ transposh
126
- msgid "Plugin Homepage"
127
- msgstr "خانه ی افزونه"
128
-
129
- #: wp/transposh_admin.php:314
130
  #@ transposh
131
  msgid "Suggest a Feature"
132
  msgstr "پیشنهاد یک ویژگی"
133
 
134
- #: wp/transposh_admin.php:316
135
  #@ transposh
136
  msgid "Report a Bug"
137
  msgstr "گزارش یک نادرستی (خطا)"
138
 
139
- #: wp/transposh_admin.php:333
140
  #@ transposh
141
  msgid "Translate by clicking the button below"
142
  msgstr "ترجمه کردن با فشردن دکمه ی زیر"
143
 
144
- #: wp/transposh_admin.php:335
145
  #@ transposh
146
  msgid "Translate All Now"
147
  msgstr "هم اکنون همه را ترجمه کن"
148
 
149
- #: wp/transposh_admin.php:390
150
  #@ transposh
151
  msgid "Default Language (drag another language here to make it default)"
152
  msgstr "زبان پیش گزیده (دکمه ی موشواره را روی یک زبان فشار دهید و به این جا بکشید و سپس رها کنید)"
153
 
154
- #: wp/transposh_admin.php:397
155
  #@ transposh
156
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
157
  msgstr "زبان های در دسترس (بر روی دگرگونی آمار زبان فشار دهید - بر پایه ی چینش ابزارک بکشید)"
158
 
159
- #: wp/transposh_admin.php:420
160
  #@ transposh
161
  msgid "Display options:"
162
  msgstr "گزینه های نمایش:"
163
 
164
- #: wp/transposh_admin.php:421
165
  #@ transposh
166
  msgid "Toggle names of languages between English and Original"
167
  msgstr "دگرگونی نام زبان های بین انگلیسی و زبان پایه"
168
 
169
- #: wp/transposh_admin.php:422
170
  #@ transposh
171
  msgid "Make all languages active"
172
  msgstr "به کار انداختن همه ی زبان ها"
173
 
174
- #: wp/transposh_admin.php:423
175
  #@ transposh
176
  msgid "Sort by language name"
177
  msgstr "چینش بر پایه ی نام زبان"
178
 
179
- #: wp/transposh_admin.php:424
180
  #@ transposh
181
  msgid "Sort by lSO code"
182
  msgstr "چینش بر پایه ی کد ISO"
183
 
184
- #: wp/transposh_admin.php:425
185
- #@ transposh
186
- msgid "Legend:"
187
- msgstr "درباره (توضیح)"
188
-
189
- #: wp/transposh_admin.php:425
190
- #@ transposh
191
- msgid "Green - active"
192
- msgstr "سبز - کارا (فعال)"
193
-
194
- #: wp/transposh_admin.php:425
195
- #@ transposh
196
- msgid "Yellow - translateable (only translators will see this language)"
197
- msgstr "زرد - ترجمه پذیر (تنها مترجم ها می توانند این زبان را ببینند)"
198
-
199
- #: wp/transposh_admin.php:425
200
- #@ transposh
201
- msgid "blank - inactive"
202
- msgstr "سپید - از کار افتاده (غیر فعال)"
203
-
204
- #: wp/transposh_admin.php:447
205
  #@ transposh
206
  msgid "Who can translate ?"
207
  msgstr "چه کسی می تواند ترجمه کند؟"
208
 
209
- #: wp/transposh_admin.php:454
210
  #@ transposh
211
  msgid "Anonymous"
212
  msgstr "بی نام"
213
 
214
- #: wp/transposh_admin.php:460
215
  #@ transposh
216
  msgid "Enable default language translation"
217
  msgstr "به کار انداختن ترجمه ی زبان پیش گزیده"
218
 
219
- #: wp/transposh_admin.php:460
220
  #@ transposh
221
  msgid "Allow translation of default language - useful for sites with more than one major language"
222
  msgstr "اجازه­ی ترجمه ی زبان پیش گزیده - برای تارنماهای دارای بیش از یک زبان پایه سودمند است."
223
 
224
- #: wp/transposh_admin.php:467
225
  #@ transposh
226
  msgid "Enable search in translated languages"
227
  msgstr "به کار انداختن جست و جو در زبان های ترجمه شده"
228
 
229
- #: wp/transposh_admin.php:474
230
  #@ transposh
231
  msgid "Enable url translation"
232
  msgstr "به کار انداختن نشانی ترجمه"
233
 
234
- #: wp/transposh_admin.php:474
235
- #: wp/transposh_admin.php:481
236
  #@ transposh
237
  msgid "experimental"
238
  msgstr "آزمایشی"
239
 
240
- #: wp/transposh_admin.php:474
241
  #@ transposh
242
  msgid "Allow translation of permalinks and urls"
243
  msgstr "اجازه دادن برای ترجمه ی پیوند یکتا و نشانی ها"
244
 
245
- #: wp/transposh_admin.php:481
246
  #@ transposh
247
  msgid "Enable gettext integration"
248
  msgstr "به کار انداختن دریافت یکپارچه ی نوشته یا gettext integration"
249
 
250
- #: wp/transposh_admin.php:481
251
  #@ transposh
252
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
253
  msgstr "به کار انداختن آمیختن ترانسپاش با پرونده های (.mo /.po) "
254
 
255
- #: wp/transposh_admin.php:497
256
  #@ transposh
257
  msgid "Enable automatic translation"
258
  msgstr "به کار انداختن ترجمه ی خودکار"
259
 
260
- #: wp/transposh_admin.php:497
261
  #@ transposh
262
  msgid "Allow automatic translation of pages"
263
  msgstr "اجازه به ترجمه ی خودکار برگه ها"
264
 
265
- #: wp/transposh_admin.php:503
266
  #@ transposh
267
  msgid "Enable automatic translation after posting"
268
  msgstr "به کار انداختن ترجمه ی خودکار پس از آغاز نوشتن"
269
 
270
- #: wp/transposh_admin.php:503
271
  #@ transposh
272
  msgid "Do automatic translation immediately after a post has been published"
273
  msgstr "ترجمه ی خودکار شتابان، پس از افزودن یک نوشته"
274
 
275
- #: wp/transposh_admin.php:520
276
  #@ transposh
277
  msgid "Select preferred auto translation engine"
278
  msgstr "موتور ترجمه ی بهتر را برگزینید"
279
 
280
- #: wp/transposh_admin.php:521
281
  #@ transposh
282
  msgid "Translation engine:"
283
  msgstr "موتور ترجمه کننده:"
284
 
285
- #: wp/transposh_admin.php:523
286
  #@ transposh
287
  msgid "Google"
288
  msgstr "گوگل"
289
 
290
- #: wp/transposh_admin.php:524
291
  #@ transposh
292
  msgid "Bing"
293
  msgstr "بینگ"
294
 
295
- #: wp/transposh_admin.php:578
296
  #@ transposh
297
  msgid "Rewrite URLs"
298
  msgstr "بازنویسی نشانی ها"
299
 
300
- #: wp/transposh_admin.php:580
301
  #@ transposh
302
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
303
  msgstr "بازنویسی نشانی های موتورهای جست و جو همانند (http://transposh.org/<strong>en</strong>).این کار هنگامی رخ می دهد که پیوندهای یکتا به کار افتاده باشند."
304
 
305
- #: wp/transposh_admin.php:586
306
  #@ transposh
307
  msgid "Add scripts to footer"
308
  msgstr "افزودن اسکریپت ها به پانوشت (فوتر)"
309
 
310
- #: wp/transposh_admin.php:587
311
  #@ transposh
312
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
313
  msgstr "فشردن اسکریپت های ترنسپاش در پانوشت (فوتر) برگه به جای سربرگ (هیدر) شتاب بارگیری را افزایش می دهد. برای این کار پوسته ی شما باید پانوشت خوبی داشته باشد. "
314
 
315
- #: wp/transposh_admin.php:592
316
  #@ transposh
317
  msgid "Auto detect language for users"
318
  msgstr "شناسایی خودکار زبان کاربرها"
319
 
320
- #: wp/transposh_admin.php:593
321
  #@ transposh
322
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
323
  msgstr "این به کارگیری شناسایی خودکار زبان کاربر به عنوان ACCEPT_LANGUAGES به آن­ها فرستاده می شود. این کار زبان پایه ی تارنما را دگرگون می کند و به طور خودکار زبان شناسایی شده را جایگزین می کند."
324
 
325
- #: wp/transposh_admin.php:608
326
  #@ transposh
327
  msgid "Delete all automated translations"
328
  msgstr "پاک کردن همه ی ترجمه های خودکار"
329
 
330
- #: wp/transposh_admin.php:609
331
  #@ transposh
332
  msgid "Delete automated translations older than 14 days"
333
  msgstr "پاک کردن ترجمه های خودکار پیش از 14 روز گذشته"
334
 
335
- #: wp/transposh_admin.php:610
336
  #@ transposh
337
  msgid "Attempt to fix errors caused by previous versions - please backup first"
338
  msgstr "تلاش برای درست کردن نادرستی های پیش آمده در نگارش های پیشین - نخست برون بری کنید"
339
 
340
- #: wp/transposh_admin.php:614
341
- #@ transposh
342
- msgid "Backup service for human translation"
343
- msgstr "سرویس برون بری برای ترجمه ی دستی"
344
-
345
- #: wp/transposh_admin.php:615
346
  #@ transposh
347
  msgid "Enable daily backup"
348
  msgstr "به کار انداختن برون بری روزانه"
349
 
350
- #: wp/transposh_admin.php:616
351
  #@ transposh
352
  msgid "Enable live backup"
353
  msgstr "به کار انداختن برون بری زنده"
354
 
355
- #: wp/transposh_admin.php:617
356
  #@ transposh
357
  msgid "Disable backup (Can be run manually by clicking the button below)"
358
  msgstr "از کار انداختن برون بری (به شیوه ی دستی با فشردن دکمه ی زیر رخ می دهد)"
359
 
360
- #: wp/transposh_admin.php:618
361
  #@ transposh
362
  msgid "Service Key:"
363
  msgstr "کلید سرویس:"
364
 
365
- #: wp/transposh_admin.php:618
366
  #@ transposh
367
  msgid "How to restore?"
368
  msgstr "چگونه بازگردانی کنیم؟"
369
 
370
- #: wp/transposh_admin.php:620
371
  #@ transposh
372
  msgid "Do Backup Now"
373
  msgstr "هم اکنون برون بری (پشتیبان گیری) کن"
374
 
375
- #: wp/transposh_db.php:682
376
  #@ transposh
377
  msgid "Database stats"
378
  msgstr "آمار پایگاه داده"
379
 
380
- #: wp/transposh_db.php:687
381
  #, php-format
382
  #@ transposh
383
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
384
  msgstr "شمار <strong style=\"color:red\">%s</strong> واژه های ترجمه شده"
385
 
386
- #: wp/transposh_db.php:694
387
  #, php-format
388
  #@ transposh
389
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
390
  msgstr "<strong>%1s</strong>ترجمه ی واژه به دست انسان <strong style=\"color:red\">%2s</strong>دارد"
391
 
392
- #: wp/transposh_db.php:697
393
  #@ transposh
394
  msgid "Recent activity"
395
  msgstr "واپسین کارها"
396
 
397
- #: wp/transposh_db.php:702
398
  #, php-format
399
  #@ transposh
400
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
401
  msgstr "در <strong>%1s</strong><br/>user <strong>%2s</strong> ترجمه شده<br/>\"<strong>%3s</strong>\"<br/>به <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
402
 
403
- #: wp/transposh_widget.php:82
404
  #@ transposh
405
  msgid "Transposh language selection widget"
406
  msgstr "ابزارک برگزیدن زبان ترنسپاش"
407
 
408
- #: wp/transposh_widget.php:284
409
  #@ transposh
410
  msgid "Set as default language"
411
  msgstr "پیش گزیده کردن این زبان"
412
 
413
- #: wp/transposh_widget.php:125
414
  #@ transposh
415
  msgid "Style:"
416
  msgstr "شیوه:"
417
 
418
- #: wp/transposh_admin.php:556
419
  #@ transposh
420
  msgid "Show progress bar"
421
  msgstr "نمایش نوار پیشرفت"
422
 
423
- #: wp/transposh_admin.php:558
424
  #@ transposh
425
  msgid "Allow user to set current language as default"
426
  msgstr "اجازه دادن به کاربر برای برگزیدن زبان کنونی به عنوان پیش گزیده "
427
 
428
- #: wp/transposh_admin.php:560
429
  #@ transposh
430
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
431
  msgstr "پاک کردن لوگوی ترنسپاش <a href=\"http://transposh.org/logoterms\">آیین نامه را بخوانید</a>)"
432
 
433
- #: wp/transposh_admin.php:562
434
- #: wp/transposh_admin.php:563
435
  #@ transposh
436
  msgid "Edit interface (and progress bar) theme:"
437
  msgstr "ویرایش پوسته ی نما و نوار پیشرفت:"
@@ -468,77 +390,77 @@ msgstr "گروه ترنسپاش"
468
  msgid "%VERSION%"
469
  msgstr "%VERSION%"
470
 
471
- #: wp/transposh_admin.php:407
472
  #@ transposh
473
  msgid "Language supported by google translate"
474
  msgstr "زبان های پشتیبانی شده ی مترجم گوگل"
475
 
476
- #: wp/transposh_admin.php:409
477
  #@ transposh
478
  msgid "Language supported by bing translate"
479
  msgstr "زبان های پشتیبانی شده ی مترجم بینگ"
480
 
481
- #: wp/transposh_admin.php:411
482
  #@ transposh
483
  msgid "Language supported by apertium translate"
484
  msgstr "زبان های پشتیبانی شده ی مترجم آپرتیوم"
485
 
486
- #: wp/transposh_admin.php:415
487
  #@ transposh
488
  msgid "Language is written from right to left"
489
  msgstr "زبان های نوشته شده از راست به چپ"
490
 
491
- #: wp/transposh_admin.php:467
492
  #@ transposh
493
  msgid "Allow search of translated languages (and the original language)"
494
  msgstr "روا دانستن (اجازه دادن) ترجمه از زبان های ترجمه شده و زبان پایه"
495
 
496
- #: wp/transposh_widget.php:314
497
  #@ transposh
498
  msgid "translation plugin for wordpress"
499
  msgstr "افزونه ی ترجمه برای وردپرس"
500
 
501
- #: wp/transposh_widget.php:317
502
  #@ transposh
503
  msgid "wordpress translation plugin"
504
  msgstr "افزونه ی مترجم وردپرس"
505
 
506
- #: wp/transposh_widget.php:320
507
  #@ transposh
508
  msgid "translate your blog to 60+ languages"
509
  msgstr "تارنمایتان را به بیش از 60 زبان ترجمه کنید"
510
 
511
- #: wp/transposh_widget.php:323
512
  #@ transposh
513
  msgid "website crowdsourcing translation plugin"
514
  msgstr "تارنمای گروه سرچشمه ها (مجموعه منابع) افزونه ی مترجم"
515
 
516
- #: wp/transposh_widget.php:326
517
  #@ transposh
518
  msgid "google translate and bing translate plugin for wordpress"
519
  msgstr "افزونه ی مترجم گوگل و مترجم بینگ برای وردپرس"
520
 
521
- #: wp/transposh_admin.php:556
522
  #@ transposh
523
  msgid "Show progress bar when a client triggers automatic translation"
524
  msgstr "نمایش نوار پیشرفت در هنگام ترجمه "
525
 
526
- #: wp/transposh_admin.php:558
527
  #@ transposh
528
  msgid "Widget will allow setting this language as user default"
529
  msgstr "ابزارک به کاربر این ویژگی را خواهد داد که این زبان را زبان پیش گزیده کند."
530
 
531
- #: wp/transposh_admin.php:560
532
  #@ transposh
533
  msgid "Transposh logo will not appear on widget"
534
  msgstr "نشان ترنسپاش در ابزارک نمایش داده نشود"
535
 
536
- #: wp/transposh_admin.php:488
537
  #@ transposh
538
  msgid "Enable override for default locale"
539
  msgstr ""
540
 
541
- #: wp/transposh_admin.php:488
542
  #@ transposh
543
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
544
  msgstr ""
@@ -549,146 +471,468 @@ msgstr ""
549
  msgid "Select language"
550
  msgstr ""
551
 
552
- #: wp/transposh_admin.php:220
553
- #@ transposh
554
- msgid "Frontend settings"
555
- msgstr ""
556
-
557
- #: wp/transposh_admin.php:248
558
  #, php-format
559
  #@ transposh
560
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
561
  msgstr ""
562
 
563
- #: wp/transposh_admin.php:248
564
- #: wp/transposh_admin.php:252
565
  #@ transposh
566
  msgid "Check Transposh FAQs"
567
  msgstr ""
568
 
569
- #: wp/transposh_admin.php:252
570
  #@ transposh
571
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
572
  msgstr ""
573
 
574
- #: wp/transposh_admin.php:508
575
  #@ transposh
576
  msgid "MSN API key"
577
  msgstr ""
578
 
579
- #: wp/transposh_admin.php:509
580
- #: wp/transposh_admin.php:515
581
- #: wp/transposh_admin.php:540
582
  #@ transposh
583
  msgid "API Key"
584
  msgstr ""
585
 
586
- #: wp/transposh_admin.php:514
587
  #@ transposh
588
  msgid "Google API key"
589
  msgstr ""
590
 
591
- #: wp/transposh_admin.php:598
592
  #@ transposh
593
  msgid "Allow collecting usage statistics"
594
  msgstr ""
595
 
596
- #: wp/transposh_postpublish.php:52
597
  #@ transposh
598
  msgid "Set post language"
599
  msgstr ""
600
 
601
- #: wp/transposh_postpublish.php:53
602
- #@ transposh
603
- msgid "Set page language"
604
- msgstr ""
605
-
606
- #: wp/transposh_postpublish.php:198
607
  #@ default
608
  msgid "Default"
609
  msgstr ""
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr ""
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr ""
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr ""
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr ""
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
 
 
 
 
 
 
 
 
 
 
644
  #@ transposh
645
- msgid "Professional translation settings"
646
  msgstr ""
647
 
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
- msgid "Language supported by one hour translation"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
651
  msgstr ""
652
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
653
  #: wp/transposh_admin.php:530
654
  #@ transposh
655
- msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
656
  msgstr ""
657
 
658
  #: wp/transposh_admin.php:532
659
  #@ transposh
660
- msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr ""
662
 
663
  #: wp/transposh_admin.php:533
664
  #@ transposh
665
- msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
  #: wp/transposh_admin.php:534
669
  #@ transposh
670
- msgid "Account ID"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671
  msgstr ""
672
 
673
  #: wp/transposh_admin.php:539
674
  #@ transposh
675
- msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
685
- #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2011-02-07 03:02+0330\n"
6
+ "PO-Revision-Date: 2012-12-12 19:50:33+0000\n"
7
  "Last-Translator: Sushyant Zavarzadeh <sushyant@zavarzadeh.org>\n"
8
  "Language-Team: S & S Group www.zavarzadeh.org <sushyant@zavarzadeh.org>\n"
9
  "MIME-Version: 1.0\n"
19
  "X-Poedit-SearchPath-0: C:/Documents and Settings/zavarzadeh/Desktop/transposh-translation-filter-for-wordpress\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: transposh.php:921
23
+ #: wp/transposh_admin.php:59
24
  #@ default
25
+ #@ transposh
26
  msgid "Settings"
27
  msgstr "گزینه ها"
28
 
32
  msgid "%s translated a phrase to %s with transposh:"
33
  msgstr "%ترجمه ی واژه ها %s با ترنسپاش"
34
 
35
+ #: wp/transposh_admin.php:185
36
  #@ transposh
37
  msgid "Transposh makes your blog translatable"
38
  msgstr "ترنسپاش تارنمای شما را ترجمه می کند"
39
 
40
+ #: wp/transposh_admin.php:187
41
  #@ transposh
42
  msgid "Plugin homepage"
43
  msgstr "خانه ی افزونه"
44
 
45
+ #: wp/transposh_admin.php:188
46
  #@ transposh
47
  msgid "Frequently asked questions"
48
  msgstr "پرسش و پاسخ"
49
 
50
+ #: wp/transposh_postpublish.php:55
51
+ #: wp/transposh_widget.php:86
52
+ #: wp/transposh_widget.php:315
 
 
 
 
 
 
 
 
53
  #@ transposh
54
  #@ default
55
  msgid "Transposh"
56
  msgstr "ترنسپاش"
57
 
58
+ #: wp/transposh_admin.php:283
 
 
 
 
 
59
  #@ transposh
60
  msgid "Plugin news"
61
  msgstr "گزارش های افزونه"
62
 
63
+ #: wp/transposh_admin.php:284
64
  #@ transposh
65
  msgid "Plugin stats"
66
  msgstr "آمار افزونه"
67
 
68
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  #@ transposh
 
 
 
 
 
70
  msgid "Save Changes"
71
  msgstr "نگه داری دگرگونی ها"
72
 
73
+ #: wp/transposh_admin.php:653
74
  #@ transposh
75
  msgid "Problems?"
76
  msgstr "مشکل؟"
77
 
78
+ #: wp/transposh_admin.php:616
 
 
 
 
 
79
  #@ transposh
80
  msgid "Suggest a Feature"
81
  msgstr "پیشنهاد یک ویژگی"
82
 
83
+ #: wp/transposh_admin.php:617
84
  #@ transposh
85
  msgid "Report a Bug"
86
  msgstr "گزارش یک نادرستی (خطا)"
87
 
88
+ #: wp/transposh_admin.php:559
89
  #@ transposh
90
  msgid "Translate by clicking the button below"
91
  msgstr "ترجمه کردن با فشردن دکمه ی زیر"
92
 
93
+ #: wp/transposh_admin.php:561
94
  #@ transposh
95
  msgid "Translate All Now"
96
  msgstr "هم اکنون همه را ترجمه کن"
97
 
98
+ #: wp/transposh_admin.php:364
99
  #@ transposh
100
  msgid "Default Language (drag another language here to make it default)"
101
  msgstr "زبان پیش گزیده (دکمه ی موشواره را روی یک زبان فشار دهید و به این جا بکشید و سپس رها کنید)"
102
 
103
+ #: wp/transposh_admin.php:372
104
  #@ transposh
105
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
106
  msgstr "زبان های در دسترس (بر روی دگرگونی آمار زبان فشار دهید - بر پایه ی چینش ابزارک بکشید)"
107
 
108
+ #: wp/transposh_admin.php:397
109
  #@ transposh
110
  msgid "Display options:"
111
  msgstr "گزینه های نمایش:"
112
 
113
+ #: wp/transposh_admin.php:398
114
  #@ transposh
115
  msgid "Toggle names of languages between English and Original"
116
  msgstr "دگرگونی نام زبان های بین انگلیسی و زبان پایه"
117
 
118
+ #: wp/transposh_admin.php:399
119
  #@ transposh
120
  msgid "Make all languages active"
121
  msgstr "به کار انداختن همه ی زبان ها"
122
 
123
+ #: wp/transposh_admin.php:400
124
  #@ transposh
125
  msgid "Sort by language name"
126
  msgstr "چینش بر پایه ی نام زبان"
127
 
128
+ #: wp/transposh_admin.php:401
129
  #@ transposh
130
  msgid "Sort by lSO code"
131
  msgstr "چینش بر پایه ی کد ISO"
132
 
133
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  #@ transposh
135
  msgid "Who can translate ?"
136
  msgstr "چه کسی می تواند ترجمه کند؟"
137
 
138
+ #: wp/transposh_admin.php:419
139
  #@ transposh
140
  msgid "Anonymous"
141
  msgstr "بی نام"
142
 
143
+ #: wp/transposh_admin.php:421
144
  #@ transposh
145
  msgid "Enable default language translation"
146
  msgstr "به کار انداختن ترجمه ی زبان پیش گزیده"
147
 
148
+ #: wp/transposh_admin.php:422
149
  #@ transposh
150
  msgid "Allow translation of default language - useful for sites with more than one major language"
151
  msgstr "اجازه­ی ترجمه ی زبان پیش گزیده - برای تارنماهای دارای بیش از یک زبان پایه سودمند است."
152
 
153
+ #: wp/transposh_admin.php:423
154
  #@ transposh
155
  msgid "Enable search in translated languages"
156
  msgstr "به کار انداختن جست و جو در زبان های ترجمه شده"
157
 
158
+ #: wp/transposh_admin.php:518
159
  #@ transposh
160
  msgid "Enable url translation"
161
  msgstr "به کار انداختن نشانی ترجمه"
162
 
163
+ #: wp/transposh_admin.php:518
 
164
  #@ transposh
165
  msgid "experimental"
166
  msgstr "آزمایشی"
167
 
168
+ #: wp/transposh_admin.php:518
169
  #@ transposh
170
  msgid "Allow translation of permalinks and urls"
171
  msgstr "اجازه دادن برای ترجمه ی پیوند یکتا و نشانی ها"
172
 
173
+ #: wp/transposh_admin.php:425
174
  #@ transposh
175
  msgid "Enable gettext integration"
176
  msgstr "به کار انداختن دریافت یکپارچه ی نوشته یا gettext integration"
177
 
178
+ #: wp/transposh_admin.php:426
179
  #@ transposh
180
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
181
  msgstr "به کار انداختن آمیختن ترانسپاش با پرونده های (.mo /.po) "
182
 
183
+ #: wp/transposh_admin.php:460
184
  #@ transposh
185
  msgid "Enable automatic translation"
186
  msgstr "به کار انداختن ترجمه ی خودکار"
187
 
188
+ #: wp/transposh_admin.php:461
189
  #@ transposh
190
  msgid "Allow automatic translation of pages"
191
  msgstr "اجازه به ترجمه ی خودکار برگه ها"
192
 
193
+ #: wp/transposh_admin.php:462
194
  #@ transposh
195
  msgid "Enable automatic translation after posting"
196
  msgstr "به کار انداختن ترجمه ی خودکار پس از آغاز نوشتن"
197
 
198
+ #: wp/transposh_admin.php:463
199
  #@ transposh
200
  msgid "Do automatic translation immediately after a post has been published"
201
  msgstr "ترجمه ی خودکار شتابان، پس از افزودن یک نوشته"
202
 
203
+ #: wp/transposh_admin.php:470
204
  #@ transposh
205
  msgid "Select preferred auto translation engine"
206
  msgstr "موتور ترجمه ی بهتر را برگزینید"
207
 
208
+ #: wp/transposh_admin.php:471
209
  #@ transposh
210
  msgid "Translation engine:"
211
  msgstr "موتور ترجمه کننده:"
212
 
213
+ #: wp/transposh_admin.php:472
214
  #@ transposh
215
  msgid "Google"
216
  msgstr "گوگل"
217
 
218
+ #: wp/transposh_admin.php:473
219
  #@ transposh
220
  msgid "Bing"
221
  msgstr "بینگ"
222
 
223
+ #: wp/transposh_admin.php:433
224
  #@ transposh
225
  msgid "Rewrite URLs"
226
  msgstr "بازنویسی نشانی ها"
227
 
228
+ #: wp/transposh_admin.php:436
229
  #@ transposh
230
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
231
  msgstr "بازنویسی نشانی های موتورهای جست و جو همانند (http://transposh.org/<strong>en</strong>).این کار هنگامی رخ می دهد که پیوندهای یکتا به کار افتاده باشند."
232
 
233
+ #: wp/transposh_admin.php:437
234
  #@ transposh
235
  msgid "Add scripts to footer"
236
  msgstr "افزودن اسکریپت ها به پانوشت (فوتر)"
237
 
238
+ #: wp/transposh_admin.php:439
239
  #@ transposh
240
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
241
  msgstr "فشردن اسکریپت های ترنسپاش در پانوشت (فوتر) برگه به جای سربرگ (هیدر) شتاب بارگیری را افزایش می دهد. برای این کار پوسته ی شما باید پانوشت خوبی داشته باشد. "
242
 
243
+ #: wp/transposh_admin.php:440
244
  #@ transposh
245
  msgid "Auto detect language for users"
246
  msgstr "شناسایی خودکار زبان کاربرها"
247
 
248
+ #: wp/transposh_admin.php:442
249
  #@ transposh
250
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
251
  msgstr "این به کارگیری شناسایی خودکار زبان کاربر به عنوان ACCEPT_LANGUAGES به آن­ها فرستاده می شود. این کار زبان پایه ی تارنما را دگرگون می کند و به طور خودکار زبان شناسایی شده را جایگزین می کند."
252
 
253
+ #: wp/transposh_admin.php:554
254
  #@ transposh
255
  msgid "Delete all automated translations"
256
  msgstr "پاک کردن همه ی ترجمه های خودکار"
257
 
258
+ #: wp/transposh_admin.php:555
259
  #@ transposh
260
  msgid "Delete automated translations older than 14 days"
261
  msgstr "پاک کردن ترجمه های خودکار پیش از 14 روز گذشته"
262
 
263
+ #: wp/transposh_admin.php:556
264
  #@ transposh
265
  msgid "Attempt to fix errors caused by previous versions - please backup first"
266
  msgstr "تلاش برای درست کردن نادرستی های پیش آمده در نگارش های پیشین - نخست برون بری کنید"
267
 
268
+ #: wp/transposh_admin.php:451
 
 
 
 
 
269
  #@ transposh
270
  msgid "Enable daily backup"
271
  msgstr "به کار انداختن برون بری روزانه"
272
 
273
+ #: wp/transposh_admin.php:452
274
  #@ transposh
275
  msgid "Enable live backup"
276
  msgstr "به کار انداختن برون بری زنده"
277
 
278
+ #: wp/transposh_admin.php:453
279
  #@ transposh
280
  msgid "Disable backup (Can be run manually by clicking the button below)"
281
  msgstr "از کار انداختن برون بری (به شیوه ی دستی با فشردن دکمه ی زیر رخ می دهد)"
282
 
283
+ #: wp/transposh_admin.php:454
284
  #@ transposh
285
  msgid "Service Key:"
286
  msgstr "کلید سرویس:"
287
 
288
+ #: wp/transposh_admin.php:454
289
  #@ transposh
290
  msgid "How to restore?"
291
  msgstr "چگونه بازگردانی کنیم؟"
292
 
293
+ #: wp/transposh_admin.php:548
294
  #@ transposh
295
  msgid "Do Backup Now"
296
  msgstr "هم اکنون برون بری (پشتیبان گیری) کن"
297
 
298
+ #: wp/transposh_db.php:684
299
  #@ transposh
300
  msgid "Database stats"
301
  msgstr "آمار پایگاه داده"
302
 
303
+ #: wp/transposh_db.php:689
304
  #, php-format
305
  #@ transposh
306
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
307
  msgstr "شمار <strong style=\"color:red\">%s</strong> واژه های ترجمه شده"
308
 
309
+ #: wp/transposh_db.php:696
310
  #, php-format
311
  #@ transposh
312
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
313
  msgstr "<strong>%1s</strong>ترجمه ی واژه به دست انسان <strong style=\"color:red\">%2s</strong>دارد"
314
 
315
+ #: wp/transposh_db.php:699
316
  #@ transposh
317
  msgid "Recent activity"
318
  msgstr "واپسین کارها"
319
 
320
+ #: wp/transposh_db.php:704
321
  #, php-format
322
  #@ transposh
323
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
324
  msgstr "در <strong>%1s</strong><br/>user <strong>%2s</strong> ترجمه شده<br/>\"<strong>%3s</strong>\"<br/>به <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
325
 
326
+ #: wp/transposh_widget.php:84
327
  #@ transposh
328
  msgid "Transposh language selection widget"
329
  msgstr "ابزارک برگزیدن زبان ترنسپاش"
330
 
331
+ #: wp/transposh_widget.php:288
332
  #@ transposh
333
  msgid "Set as default language"
334
  msgstr "پیش گزیده کردن این زبان"
335
 
336
+ #: wp/transposh_widget.php:129
337
  #@ transposh
338
  msgid "Style:"
339
  msgstr "شیوه:"
340
 
341
+ #: wp/transposh_admin.php:505
342
  #@ transposh
343
  msgid "Show progress bar"
344
  msgstr "نمایش نوار پیشرفت"
345
 
346
+ #: wp/transposh_admin.php:508
347
  #@ transposh
348
  msgid "Allow user to set current language as default"
349
  msgstr "اجازه دادن به کاربر برای برگزیدن زبان کنونی به عنوان پیش گزیده "
350
 
351
+ #: wp/transposh_admin.php:511
352
  #@ transposh
353
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
354
  msgstr "پاک کردن لوگوی ترنسپاش <a href=\"http://transposh.org/logoterms\">آیین نامه را بخوانید</a>)"
355
 
356
+ #: wp/transposh_admin.php:514
 
357
  #@ transposh
358
  msgid "Edit interface (and progress bar) theme:"
359
  msgstr "ویرایش پوسته ی نما و نوار پیشرفت:"
390
  msgid "%VERSION%"
391
  msgstr "%VERSION%"
392
 
393
+ #: wp/transposh_admin.php:384
394
  #@ transposh
395
  msgid "Language supported by google translate"
396
  msgstr "زبان های پشتیبانی شده ی مترجم گوگل"
397
 
398
+ #: wp/transposh_admin.php:386
399
  #@ transposh
400
  msgid "Language supported by bing translate"
401
  msgstr "زبان های پشتیبانی شده ی مترجم بینگ"
402
 
403
+ #: wp/transposh_admin.php:388
404
  #@ transposh
405
  msgid "Language supported by apertium translate"
406
  msgstr "زبان های پشتیبانی شده ی مترجم آپرتیوم"
407
 
408
+ #: wp/transposh_admin.php:392
409
  #@ transposh
410
  msgid "Language is written from right to left"
411
  msgstr "زبان های نوشته شده از راست به چپ"
412
 
413
+ #: wp/transposh_admin.php:424
414
  #@ transposh
415
  msgid "Allow search of translated languages (and the original language)"
416
  msgstr "روا دانستن (اجازه دادن) ترجمه از زبان های ترجمه شده و زبان پایه"
417
 
418
+ #: wp/transposh_widget.php:318
419
  #@ transposh
420
  msgid "translation plugin for wordpress"
421
  msgstr "افزونه ی ترجمه برای وردپرس"
422
 
423
+ #: wp/transposh_widget.php:321
424
  #@ transposh
425
  msgid "wordpress translation plugin"
426
  msgstr "افزونه ی مترجم وردپرس"
427
 
428
+ #: wp/transposh_widget.php:324
429
  #@ transposh
430
  msgid "translate your blog to 60+ languages"
431
  msgstr "تارنمایتان را به بیش از 60 زبان ترجمه کنید"
432
 
433
+ #: wp/transposh_widget.php:327
434
  #@ transposh
435
  msgid "website crowdsourcing translation plugin"
436
  msgstr "تارنمای گروه سرچشمه ها (مجموعه منابع) افزونه ی مترجم"
437
 
438
+ #: wp/transposh_widget.php:330
439
  #@ transposh
440
  msgid "google translate and bing translate plugin for wordpress"
441
  msgstr "افزونه ی مترجم گوگل و مترجم بینگ برای وردپرس"
442
 
443
+ #: wp/transposh_admin.php:506
444
  #@ transposh
445
  msgid "Show progress bar when a client triggers automatic translation"
446
  msgstr "نمایش نوار پیشرفت در هنگام ترجمه "
447
 
448
+ #: wp/transposh_admin.php:509
449
  #@ transposh
450
  msgid "Widget will allow setting this language as user default"
451
  msgstr "ابزارک به کاربر این ویژگی را خواهد داد که این زبان را زبان پیش گزیده کند."
452
 
453
+ #: wp/transposh_admin.php:512
454
  #@ transposh
455
  msgid "Transposh logo will not appear on widget"
456
  msgstr "نشان ترنسپاش در ابزارک نمایش داده نشود"
457
 
458
+ #: wp/transposh_admin.php:428
459
  #@ transposh
460
  msgid "Enable override for default locale"
461
  msgstr ""
462
 
463
+ #: wp/transposh_admin.php:429
464
  #@ transposh
465
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
466
  msgstr ""
471
  msgid "Select language"
472
  msgstr ""
473
 
474
+ #: wp/transposh_admin.php:734
 
 
 
 
 
475
  #, php-format
476
  #@ transposh
477
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
478
  msgstr ""
479
 
480
+ #: wp/transposh_admin.php:734
481
+ #: wp/transposh_admin.php:738
482
  #@ transposh
483
  msgid "Check Transposh FAQs"
484
  msgstr ""
485
 
486
+ #: wp/transposh_admin.php:738
487
  #@ transposh
488
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
489
  msgstr ""
490
 
491
+ #: wp/transposh_admin.php:465
492
  #@ transposh
493
  msgid "MSN API key"
494
  msgstr ""
495
 
496
+ #: wp/transposh_admin.php:466
497
+ #: wp/transposh_admin.php:469
 
498
  #@ transposh
499
  msgid "API Key"
500
  msgstr ""
501
 
502
+ #: wp/transposh_admin.php:468
503
  #@ transposh
504
  msgid "Google API key"
505
  msgstr ""
506
 
507
+ #: wp/transposh_admin.php:443
508
  #@ transposh
509
  msgid "Allow collecting usage statistics"
510
  msgstr ""
511
 
512
+ #: wp/transposh_postpublish.php:57
513
  #@ transposh
514
  msgid "Set post language"
515
  msgstr ""
516
 
517
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
518
  #@ default
519
  msgid "Default"
520
  msgstr ""
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr ""
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr ""
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr ""
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr ""
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr ""
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr ""
553
 
554
+ #: wp/transposh_admin.php:390
555
+ #@ transposh
556
+ msgid "Language supported by one hour translation"
557
+ msgstr ""
558
+
559
+ #: wp/transposh_admin.php:477
560
+ #@ transposh
561
+ msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
+ msgstr ""
563
+
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
+ msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
  msgstr ""
568
 
569
+ #: wp/transposh_admin.php:483
570
  #@ transposh
571
+ msgid "One Hour Translation account ID"
572
+ msgstr ""
573
+
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
+ #@ transposh
577
+ msgid "Account ID"
578
+ msgstr ""
579
+
580
+ #: wp/transposh_admin.php:487
581
+ #@ transposh
582
+ msgid "One Hour Translation secret key"
583
+ msgstr ""
584
+
585
+ #: wp/transposh_admin.php:499
586
+ #, php-format
587
+ #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
+ msgstr ""
610
+
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
+ msgstr ""
615
+
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
+ msgstr ""
625
+
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
  msgstr ""
660
 
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
+ #, php-format
678
+ #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
  #: wp/transposh_admin.php:530
689
  #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
  msgstr ""
732
 
733
  #: wp/transposh_admin.php:532
734
  #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
  msgstr ""
737
 
738
  #: wp/transposh_admin.php:533
739
  #@ transposh
740
+ msgid "Log file name"
741
  msgstr ""
742
 
743
  #: wp/transposh_admin.php:534
744
  #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
  msgstr ""
767
 
768
  #: wp/transposh_admin.php:539
769
  #@ transposh
770
+ msgid "Debug"
771
  msgstr ""
772
 
773
+ #: wp/transposh_admin.php:541
774
  #, php-format
775
  #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
  msgstr ""
778
 
779
+ #: wp/transposh_admin.php:553
 
780
  #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
langs/transposh-he_IL.mo CHANGED
Binary file
langs/transposh-he_IL.po CHANGED
@@ -3,8 +3,8 @@ msgstr ""
3
  "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2010-09-07 21:26+0000\n"
7
- "Last-Translator: admin <ofer_wpdev@islands.co.il>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -25,412 +25,335 @@ msgstr ""
25
  msgid "%s translated a phrase to %s with transposh:"
26
  msgstr "%s תרגם פסקה ל-%s בעזרת טרנספוש:"
27
 
28
- #: wp/transposh_admin.php:297
29
  #@ transposh
30
  msgid "Problems?"
31
  msgstr "בעיות?"
32
 
33
- #: wp/transposh_widget.php:82
34
  #@ transposh
35
  msgid "Transposh language selection widget"
36
  msgstr "ישומון בחירת השפה של טרנספוש"
37
 
38
- #: wp/transposh_admin.php:212
39
- #@ transposh
40
- msgid "About this plugin"
41
- msgstr "אודות תוסף זה"
42
-
43
- #: wp/transposh_admin.php:213
44
  #@ transposh
45
  msgid "Plugin news"
46
  msgstr "חדשות התוסף"
47
 
48
- #: wp/transposh_admin.php:214
49
  #@ transposh
50
  msgid "Plugin stats"
51
  msgstr "סטטיסטיקות התוסף"
52
 
53
- #: wp/transposh_admin.php:215
54
- #@ transposh
55
- msgid "Translate all"
56
- msgstr "תרגם הכל"
57
-
58
- #: wp/transposh_admin.php:216
59
- #@ transposh
60
- msgid "Supported languages"
61
- msgstr "שפות נתמכות"
62
-
63
- #: wp/transposh_admin.php:217
64
- #@ transposh
65
- msgid "Translation settings"
66
- msgstr "הגדרות תרגום"
67
-
68
- #: wp/transposh_admin.php:218
69
- #@ transposh
70
- msgid "Automatic translation settings"
71
- msgstr "הגדרות תרגום אוטומטי"
72
-
73
- #: wp/transposh_admin.php:221
74
- #@ transposh
75
- msgid "Generic settings"
76
- msgstr "הגדרות כלליות"
77
-
78
- #: wp/transposh_admin.php:222
79
- #@ transposh
80
- msgid "Database maintenance"
81
- msgstr "תחזוקת בסיס הנתונים"
82
-
83
- #: wp/transposh_admin.php:237
84
- #@ transposh
85
- msgid "Transposh community features"
86
- msgstr "תכונות קהילתיות בטרנספוש"
87
-
88
- #: wp/transposh_admin.php:175
89
- #: wp/transposh_admin.php:243
90
- #: wp/transposh_postpublish.php:50
91
- #: wp/transposh_postpublish.php:51
92
- #: wp/transposh_widget.php:84
93
- #: wp/transposh_widget.php:311
94
  #@ transposh
95
  #@ default
96
  msgid "Transposh"
97
  msgstr "טרנספוש"
98
 
99
- #: wp/transposh_admin.php:333
100
  #@ transposh
101
  msgid "Translate by clicking the button below"
102
  msgstr "תרגם על ידי לחיצה על הכפתור למטה"
103
 
104
- #: wp/transposh_admin.php:335
105
  #@ transposh
106
  msgid "Translate All Now"
107
  msgstr "תרגם הכל עכשיו"
108
 
109
- #: wp/transposh_admin.php:313
110
- #@ transposh
111
- msgid "Plugin Homepage"
112
- msgstr "עמוד הבית של התוסף"
113
-
114
- #: wp/transposh_admin.php:314
115
  #@ transposh
116
  msgid "Suggest a Feature"
117
  msgstr "הצע תכונה"
118
 
119
- #: wp/transposh_admin.php:316
120
  #@ transposh
121
  msgid "Report a Bug"
122
  msgstr "דווח על באג"
123
 
124
- #: wp/transposh_admin.php:390
125
  #@ transposh
126
  msgid "Default Language (drag another language here to make it default)"
127
  msgstr "שפת ברירת המחדל (גרור שפה אחרת לכאן על מנת להפכה לברירת מחדל)"
128
 
129
- #: wp/transposh_admin.php:397
130
  #@ transposh
131
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
132
  msgstr "שפות זמינות (הקלק כדי לשנות את סטטוס השפה - גרור כדי למיין בישומון)"
133
 
134
- #: wp/transposh_admin.php:407
135
  #@ transposh
136
  msgid "Language supported by google translate"
137
  msgstr "שפה נתמכת ע\"י המתרגם של גוגל"
138
 
139
- #: wp/transposh_admin.php:409
140
  #@ transposh
141
  msgid "Language supported by bing translate"
142
  msgstr "שפה נתמכת ע\"י המתרגם של בינג"
143
 
144
- #: wp/transposh_admin.php:415
145
  #@ transposh
146
  msgid "Language is written from right to left"
147
  msgstr "שפה הנכתבת מימין לשמאל"
148
 
149
- #: wp/transposh_admin.php:420
150
  #@ transposh
151
  msgid "Display options:"
152
  msgstr "הגדרות תצוגה:"
153
 
154
- #: wp/transposh_admin.php:421
155
  #@ transposh
156
  msgid "Toggle names of languages between English and Original"
157
  msgstr "שנה את הצגת שפות השפות בין אנגלית למקןר"
158
 
159
- #: wp/transposh_admin.php:422
160
  #@ transposh
161
  msgid "Make all languages active"
162
  msgstr "הפוך את כל השפות לפעילות"
163
 
164
- #: wp/transposh_admin.php:423
165
  #@ transposh
166
  msgid "Sort by language name"
167
  msgstr "מיין לפי שם השפה"
168
 
169
- #: wp/transposh_admin.php:424
170
  #@ transposh
171
  msgid "Sort by lSO code"
172
  msgstr "מיין לפי קוד ה-ISO"
173
 
174
- #: wp/transposh_admin.php:425
175
- #@ transposh
176
- msgid "Legend:"
177
- msgstr "מקרא:"
178
-
179
- #: wp/transposh_admin.php:425
180
- #@ transposh
181
- msgid "Green - active"
182
- msgstr "ירוק - פעיל"
183
-
184
- #: wp/transposh_admin.php:425
185
- #@ transposh
186
- msgid "Yellow - translateable (only translators will see this language)"
187
- msgstr "צהוב - ניתן לתרגום (רק מתרגמים יראו את השפה)"
188
-
189
- #: wp/transposh_admin.php:425
190
- #@ transposh
191
- msgid "blank - inactive"
192
- msgstr "ללא צבע - לא פעיל"
193
-
194
- #: wp/transposh_admin.php:447
195
  #@ transposh
196
  msgid "Who can translate ?"
197
  msgstr "מי יכול לתרגם?"
198
 
199
- #: wp/transposh_admin.php:454
200
  #@ transposh
201
  msgid "Anonymous"
202
  msgstr "אנונימי"
203
 
204
- #: wp/transposh_admin.php:460
205
  #@ transposh
206
  msgid "Enable default language translation"
207
  msgstr "אפשר תרגום של שפת ברירת המחדל"
208
 
209
- #: wp/transposh_admin.php:460
210
  #@ transposh
211
  msgid "Allow translation of default language - useful for sites with more than one major language"
212
  msgstr "אפשר תרגום שפת ברירת המחדל - שימושי באתרים עם יותר משפה עיקרית אחת"
213
 
214
- #: wp/transposh_admin.php:467
215
  #@ transposh
216
  msgid "Enable search in translated languages"
217
  msgstr "אפשר חיפוש בשפות המתורגמות"
218
 
219
- #: wp/transposh_admin.php:474
220
  #@ transposh
221
  msgid "Allow translation of permalinks and urls"
222
  msgstr "אפשר תרגום של קישורים קבועים וכתובות אינטרנט"
223
 
224
- #: wp/transposh_admin.php:497
225
  #@ transposh
226
  msgid "Enable automatic translation"
227
  msgstr "אפשר תרגום אוטומטי"
228
 
229
- #: wp/transposh_admin.php:497
230
  #@ transposh
231
  msgid "Allow automatic translation of pages"
232
  msgstr "אפשר תרגום אוטומטי של דפים"
233
 
234
- #: wp/transposh_admin.php:503
235
  #@ transposh
236
  msgid "Enable automatic translation after posting"
237
  msgstr "אפשר תרגום אוטומטי לאחר יצירת פוסט"
238
 
239
- #: wp/transposh_admin.php:503
240
  #@ transposh
241
  msgid "Do automatic translation immediately after a post has been published"
242
  msgstr "בצע תרגום אוטומטי מייד לאחר שפוסט מפורסם"
243
 
244
- #: wp/transposh_admin.php:520
245
  #@ transposh
246
  msgid "Select preferred auto translation engine"
247
  msgstr "בחר את מנוע התרגום האוטומטי המועדף"
248
 
249
- #: wp/transposh_admin.php:521
250
  #@ transposh
251
  msgid "Translation engine:"
252
  msgstr "מנוע תרגום:"
253
 
254
- #: wp/transposh_admin.php:523
255
  #@ transposh
256
  msgid "Google"
257
  msgstr "גוגל"
258
 
259
- #: wp/transposh_admin.php:524
260
  #@ transposh
261
  msgid "Bing"
262
  msgstr "בינג"
263
 
264
- #: wp/transposh_admin.php:578
265
  #@ transposh
266
  msgid "Rewrite URLs"
267
  msgstr "שיכתוב כתובות אינטרנט"
268
 
269
- #: wp/transposh_admin.php:586
270
  #@ transposh
271
  msgid "Add scripts to footer"
272
  msgstr "הוסף סקריפטים לתחתית הדף"
273
 
274
- #: wp/transposh_admin.php:587
275
  #@ transposh
276
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
277
  msgstr "הכנס את הסקריפטים של טרנספוש לתחתית העמוד במקום לחלקו העליון, העמוד יטען מהר יותר. ערכת העיצוב חייבת להכיל תמיכה בחלק תחתון."
278
 
279
- #: wp/transposh_admin.php:592
280
  #@ transposh
281
  msgid "Auto detect language for users"
282
  msgstr "זהה שפה עבור המשתמשים באופן אוטומטי"
283
 
284
- #: wp/transposh_admin.php:593
285
  #@ transposh
286
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
287
  msgstr "תכונה זו מאפשרת זיהוי אוטומטי של השפה בה משתמשים המשתמשים כפי שמוגדרת ב-ACCEPT_LANGUAGES אותו הם שולחים. תכונה זו תשלח את הדף הראשון אל דף זהה בשפה שזוהתה."
288
 
289
- #: wp/transposh_admin.php:608
290
  #@ transposh
291
  msgid "Delete all automated translations"
292
  msgstr "מחק את כל התרגומים האוטומטיים"
293
 
294
- #: wp/transposh_admin.php:609
295
  #@ transposh
296
  msgid "Delete automated translations older than 14 days"
297
  msgstr "מחק תרגומים אוטומטיים בני יותר מ-14 ימים"
298
 
299
- #: wp/transposh_admin.php:614
300
- #@ transposh
301
- msgid "Backup service for human translation"
302
- msgstr "שרות גיבוי לתרגום אנושי"
303
-
304
- #: wp/transposh_admin.php:615
305
  #@ transposh
306
  msgid "Enable daily backup"
307
  msgstr "אפשר גיבוי יומי"
308
 
309
- #: wp/transposh_admin.php:616
310
  #@ transposh
311
  msgid "Enable live backup"
312
  msgstr "אפשר גיבוי חי"
313
 
314
- #: wp/transposh_admin.php:617
315
  #@ transposh
316
  msgid "Disable backup (Can be run manually by clicking the button below)"
317
  msgstr "בטל גיבוי (ניתן להריץ ידנית על ידי לחיצה על הכפתור למטה)"
318
 
319
- #: wp/transposh_admin.php:618
320
  #@ transposh
321
  msgid "How to restore?"
322
  msgstr "איך לשחזר?"
323
 
324
- #: wp/transposh_admin.php:620
325
  #@ transposh
326
  msgid "Do Backup Now"
327
  msgstr "גבה עכשיו"
328
 
329
- #: wp/transposh_admin.php:165
330
  #@ transposh
331
  msgid "Transposh makes your blog translatable"
332
  msgstr "טרנספוש הופך את הבלוג שלך לניתן לתרגום"
333
 
334
- #: wp/transposh_admin.php:166
335
  #@ transposh
336
  msgid "Plugin homepage"
337
  msgstr "עמוד הבית של התוסף"
338
 
339
- #: wp/transposh_admin.php:167
340
  #@ transposh
341
  msgid "Frequently asked questions"
342
  msgstr "שאלות נפוצות"
343
 
344
- #: wp/transposh_admin.php:175
345
- #@ transposh
346
- msgid "Transposh control center"
347
- msgstr "מרכז השליטה של טרנספוש"
348
-
349
- #: wp/transposh_admin.php:474
350
  #@ transposh
351
  msgid "Enable url translation"
352
  msgstr "אפשר תרגום כתובות אינטרנט"
353
 
354
- #: wp/transposh_admin.php:474
355
- #: wp/transposh_admin.php:481
356
  #@ transposh
357
  msgid "experimental"
358
  msgstr "נסיוני"
359
 
360
- #: wp/transposh_admin.php:580
361
  #@ transposh
362
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
363
  msgstr "שכתוב כתובות אינטרנט כדי שיהיו ידידותיות למנועי חיפוש, למשל (http://transposh.org/<strong>en</strong>). יש חובה להפעיל קישורים קבועים."
364
 
365
- #: wp/transposh_db.php:682
366
  #@ transposh
367
  msgid "Database stats"
368
  msgstr "סטטיסטיקות בסיס הנתונים"
369
 
370
- #: wp/transposh_db.php:687
371
  #, php-format
372
  #@ transposh
373
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
374
  msgstr "סך הכל <strong style=\"color:red\">%s</strong> מקטעים מתורגמים."
375
 
376
- #: wp/transposh_db.php:694
377
  #, php-format
378
  #@ transposh
379
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
380
  msgstr "ב-<strong>%1s</strong> ישנם <strong style=\"color:red\">%2s</strong> מקטעים מתורגמים על ידי בן אדם."
381
 
382
- #: wp/transposh_db.php:697
383
  #@ transposh
384
  msgid "Recent activity"
385
  msgstr "פעילות אחרונה"
386
 
387
- #: wp/transposh_db.php:702
388
  #, php-format
389
  #@ transposh
390
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
391
  msgstr "ב <strong>%1s</strong><br/>המשתמש <strong>%2s</strong> תרגם את<br/>\"<strong>%3s</strong>\"<br/>ל <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
392
 
393
- #: wp/transposh_widget.php:125
394
  #@ transposh
395
  msgid "Style:"
396
  msgstr "סגנון:"
397
 
398
- #: wp/transposh_admin.php:556
399
  #@ transposh
400
  msgid "Show progress bar when a client triggers automatic translation"
401
  msgstr "הראה בר התקדמות בעת שמשתמש יוזם תרגום אוטומטי"
402
 
403
- #: wp/transposh_admin.php:556
404
  #@ transposh
405
  msgid "Show progress bar"
406
  msgstr "הצג בר התקדמות"
407
 
408
- #: wp/transposh_admin.php:558
409
  #@ transposh
410
  msgid "Widget will allow setting this language as user default"
411
  msgstr "הישומון יאפשר הגדרת שפה זו כברירת מחדל"
412
 
413
- #: wp/transposh_admin.php:558
414
  #@ transposh
415
  msgid "Allow user to set current language as default"
416
  msgstr "אפשר למשתמש לבחור את השפה הנוכחית כברירת מחדל"
417
 
418
- #: wp/transposh_admin.php:560
419
  #@ transposh
420
  msgid "Transposh logo will not appear on widget"
421
  msgstr "הלוגו של טרנספוש לא יופיע בישומון"
422
 
423
- #: wp/transposh_admin.php:560
424
  #@ transposh
425
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
426
  msgstr "הסרת הלוגו של טרנספוש (ראה <a href=\"http://transposh.org/logoterms\">תנאים</a>)"
427
 
428
- #: wp/transposh_admin.php:618
429
  #@ transposh
430
  msgid "Service Key:"
431
  msgstr "מפתח שרות:"
432
 
433
- #: wp/transposh_widget.php:284
434
  #@ transposh
435
  msgid "Set as default language"
436
  msgstr "הגדר כשפת ברירת מחדל"
@@ -467,228 +390,556 @@ msgstr "צוות טרנספוש"
467
  msgid "%VERSION%"
468
  msgstr ""
469
 
470
- #: transposh.php:908
 
471
  #@ default
 
472
  msgid "Settings"
473
- msgstr ""
474
 
475
- #: wp/transposh_admin.php:273
476
- #@ default
477
  msgid "Save Changes"
478
- msgstr ""
479
 
480
- #: wp/transposh_admin.php:481
481
  #@ transposh
482
  msgid "Enable gettext integration"
483
  msgstr "אפשר אינטגרציית gettext"
484
 
485
- #: wp/transposh_admin.php:481
486
  #@ transposh
487
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
488
  msgstr "אפשר אינטגרציה של טרנספוש עם ממשק gettext הקיים (קבצי .po/.mo)"
489
 
490
- #: wp/transposh_admin.php:411
491
  #@ transposh
492
  msgid "Language supported by apertium translate"
493
  msgstr "שפה נתמכת ע\"י המתרגם של אפרטיום"
494
 
495
- #: wp/transposh_admin.php:610
496
  #@ transposh
497
  msgid "Attempt to fix errors caused by previous versions - please backup first"
498
  msgstr "נסה לתקן שגיאות שנגרמו על ידי גרסאות קודמות - אנא גבה קודם"
499
 
500
- #: wp/transposh_widget.php:314
501
  #@ transposh
502
  msgid "translation plugin for wordpress"
503
  msgstr "תוסף התרגום לוורדפרס"
504
 
505
- #: wp/transposh_widget.php:317
506
  #@ transposh
507
  msgid "wordpress translation plugin"
508
  msgstr "תוסף תרגום לוורדפרס"
509
 
510
- #: wp/transposh_widget.php:320
511
  #@ transposh
512
  msgid "translate your blog to 60+ languages"
513
  msgstr "תרגם את הבלוג שלך ל-60 שפות"
514
 
515
- #: wp/transposh_widget.php:323
516
  #@ transposh
517
  msgid "website crowdsourcing translation plugin"
518
  msgstr "תוסף מיקור המון (crowdsourcing) לתרגום אתרים"
519
 
520
- #: wp/transposh_widget.php:326
521
  #@ transposh
522
  msgid "google translate and bing translate plugin for wordpress"
523
  msgstr "תוסף תרגום גוגל ובינג לוורדפרס"
524
 
525
- #: wp/transposh_admin.php:562
526
- #: wp/transposh_admin.php:563
527
  #@ transposh
528
  msgid "Edit interface (and progress bar) theme:"
529
  msgstr "ערכת עיצוב ממשק עריכה (ובר התקדמות):"
530
 
531
- #: wp/transposh_admin.php:467
532
  #@ transposh
533
  msgid "Allow search of translated languages (and the original language)"
534
  msgstr "אפשר חיפוש בשפות המתורגמות (בנוסף לשפת המקור)"
535
 
536
- #: wp/transposh_admin.php:488
537
  #@ transposh
538
  msgid "Enable override for default locale"
539
  msgstr "אפשר עקיפת משתנה סביבת השפה של בררת במחדל"
540
 
541
- #: wp/transposh_admin.php:488
542
  #@ transposh
543
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
544
- msgstr "אפשר את עקיפת משתנה השפב של בררת המחדל המוגדר ב-WP_LANG עבור עמודים בשפת בררת המחדל (כמו עמודים שאינם מתורגמים ועמודי ניהול)"
545
 
546
- #: wp/transposh_admin.php:248
547
  #, php-format
548
  #@ transposh
549
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
550
  msgstr "הגבלת הזכרון ב-PHP שלך של %s נמוכה, אם תחווה בעיות של דפים ריקים מומלץ לשקול להגדיל את המגבלה."
551
 
552
- #: wp/transposh_admin.php:252
553
  #@ transposh
554
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
555
  msgstr "לא הצלחנו לאתר מנגנון זכרון מטמון נתמך, התקנה של אחד יכולה לשפר את הביצועים."
556
 
557
- #: wp/transposh_postpublish.php:52
558
  #@ transposh
559
  msgid "Set post language"
560
  msgstr "הגדר את שפת הפוסט"
561
 
562
- #: wp/transposh_postpublish.php:53
563
- #@ transposh
564
- msgid "Set page language"
565
- msgstr "הגדר את שפת העמוד"
566
-
567
- #: wp/transposh_postpublish.php:198
568
  #@ default
569
  msgid "Default"
570
  msgstr ""
571
 
572
- #: wp/transposh_admin.php:248
573
- #: wp/transposh_admin.php:252
574
  #@ transposh
575
  msgid "Check Transposh FAQs"
576
  msgstr "בדוק את השאלות הנפוצות של טרנספוש"
577
 
578
- #: wp/transposh_admin.php:598
579
  #@ transposh
580
  msgid "Allow collecting usage statistics"
581
  msgstr "אפשר איסוף סטטיסטיקות שימוש"
582
 
583
- #. TRANSLATORS: this is what appears in the select box in dropdown subwidget
584
  #: widgets/dropdown/tpw_image_dropdown.php:45
585
  #@ transposh
586
  msgid "Select language"
587
  msgstr "בחר שפה"
588
 
589
- #: wp/transposh_admin.php:220
590
- #@ transposh
591
- msgid "Frontend settings"
592
- msgstr "הגדרות צד משתמש"
593
-
594
- #: wp/transposh_admin.php:508
595
  #@ transposh
596
  msgid "MSN API key"
597
  msgstr "מפתח API של MSN"
598
 
599
- #: wp/transposh_admin.php:509
600
- #: wp/transposh_admin.php:515
601
- #: wp/transposh_admin.php:540
602
  #@ transposh
603
  msgid "API Key"
604
  msgstr "מפתח API"
605
 
606
- #: wp/transposh_admin.php:514
607
  #@ transposh
608
  msgid "Google API key"
609
  msgstr "מפתח API של גוגל"
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr "כותרת:"
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr "ישומון משנה של טרנספוש לא נטען כראוי"
620
 
621
- #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #. TRANSLATORS: this will be the default widget title
628
- #: wp/transposh_widget.php:115
629
  #@ transposh
630
  msgid "Translation"
631
  msgstr "תרגום"
632
 
633
- #: wp/transposh_admin.php:640
634
  #@ transposh
635
  msgid "Language"
636
  msgstr "שפה"
637
 
638
- #: wp/transposh_admin.php:598
639
  #@ transposh
640
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
641
  msgstr "אפשרות זו מאפשרת איסוף סטטיסטיקות על ידי טרנספוש שישמשו לשיפור המוצר."
642
 
643
- #: wp/transposh_admin.php:219
644
- #@ transposh
645
- msgid "Professional translation settings"
646
- msgstr "הגדרות תרגום מקצועי"
647
-
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
  msgid "Language supported by one hour translation"
651
  msgstr "שפה נתמכת על ידי one hour translation"
652
 
653
- #: wp/transposh_admin.php:530
654
  #@ transposh
655
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
656
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, הינה שרות התרגום המקצועי הגדול ביותר באינטרנט , עם אלפי לקוחות עסקיים, כולל 57% מחברות Fortune 500, ומעל 15000 מתרגמים ברחבי העולם."
657
 
658
- #: wp/transposh_admin.php:532
659
  #@ transposh
660
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr "One Hour Translation מספקת תרגום איכותי, מהיר ומקצועי מכל שפה ומתמחה באופן ספציפי בלוקליזציה של תוכנה, תרגום טכני, תרגום עסקי, ותרגומים משפטיים."
662
 
663
- #: wp/transposh_admin.php:533
664
  #@ transposh
665
  msgid "One Hour Translation account ID"
666
  msgstr "קוד זיהוי חשבון ב-One Hour Translation"
667
 
668
- #: wp/transposh_admin.php:534
 
669
  #@ transposh
670
  msgid "Account ID"
671
  msgstr "קוד זיהוי חשבון"
672
 
673
- #: wp/transposh_admin.php:539
674
  #@ transposh
675
  msgid "One Hour Translation secret key"
676
  msgstr "מפתח סודי עבור One Hour Translation"
677
 
678
- #: wp/transposh_admin.php:546
679
- #, php-format
680
- #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
682
- msgstr "%d חלקי משפט ממתינים למשימה הבאה תוך~%d דקות"
683
-
684
- #: wp/transposh_admin.php:551
685
  #, php-format
686
  #@ transposh
687
  msgid "%d projects have been submitted and waiting for completion"
688
  msgstr "%d משימות הוגשו ומחכות להשלמה"
689
 
690
- #: wp/transposh_admin.php:636
691
  #@ transposh
692
  msgid "Unset"
693
  msgstr "לא מוגדרת"
694
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2012-12-15 01:10:22+0000\n"
7
+ "Last-Translator: ofer\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
25
  msgid "%s translated a phrase to %s with transposh:"
26
  msgstr "%s תרגם פסקה ל-%s בעזרת טרנספוש:"
27
 
28
+ #: wp/transposh_admin.php:652
29
  #@ transposh
30
  msgid "Problems?"
31
  msgstr "בעיות?"
32
 
33
+ #: wp/transposh_widget.php:84
34
  #@ transposh
35
  msgid "Transposh language selection widget"
36
  msgstr "ישומון בחירת השפה של טרנספוש"
37
 
38
+ #: wp/transposh_admin.php:283
 
 
 
 
 
39
  #@ transposh
40
  msgid "Plugin news"
41
  msgstr "חדשות התוסף"
42
 
43
+ #: wp/transposh_admin.php:284
44
  #@ transposh
45
  msgid "Plugin stats"
46
  msgstr "סטטיסטיקות התוסף"
47
 
48
+ #: wp/transposh_admin.php:195
49
+ #: wp/transposh_admin.php:202
50
+ #: wp/transposh_postpublish.php:55
51
+ #: wp/transposh_widget.php:86
52
+ #: wp/transposh_widget.php:315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  #@ transposh
54
  #@ default
55
  msgid "Transposh"
56
  msgstr "טרנספוש"
57
 
58
+ #: wp/transposh_admin.php:559
59
  #@ transposh
60
  msgid "Translate by clicking the button below"
61
  msgstr "תרגם על ידי לחיצה על הכפתור למטה"
62
 
63
+ #: wp/transposh_admin.php:561
64
  #@ transposh
65
  msgid "Translate All Now"
66
  msgstr "תרגם הכל עכשיו"
67
 
68
+ #: wp/transposh_admin.php:615
 
 
 
 
 
69
  #@ transposh
70
  msgid "Suggest a Feature"
71
  msgstr "הצע תכונה"
72
 
73
+ #: wp/transposh_admin.php:616
74
  #@ transposh
75
  msgid "Report a Bug"
76
  msgstr "דווח על באג"
77
 
78
+ #: wp/transposh_admin.php:364
79
  #@ transposh
80
  msgid "Default Language (drag another language here to make it default)"
81
  msgstr "שפת ברירת המחדל (גרור שפה אחרת לכאן על מנת להפכה לברירת מחדל)"
82
 
83
+ #: wp/transposh_admin.php:372
84
  #@ transposh
85
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
86
  msgstr "שפות זמינות (הקלק כדי לשנות את סטטוס השפה - גרור כדי למיין בישומון)"
87
 
88
+ #: wp/transposh_admin.php:384
89
  #@ transposh
90
  msgid "Language supported by google translate"
91
  msgstr "שפה נתמכת ע\"י המתרגם של גוגל"
92
 
93
+ #: wp/transposh_admin.php:386
94
  #@ transposh
95
  msgid "Language supported by bing translate"
96
  msgstr "שפה נתמכת ע\"י המתרגם של בינג"
97
 
98
+ #: wp/transposh_admin.php:392
99
  #@ transposh
100
  msgid "Language is written from right to left"
101
  msgstr "שפה הנכתבת מימין לשמאל"
102
 
103
+ #: wp/transposh_admin.php:397
104
  #@ transposh
105
  msgid "Display options:"
106
  msgstr "הגדרות תצוגה:"
107
 
108
+ #: wp/transposh_admin.php:398
109
  #@ transposh
110
  msgid "Toggle names of languages between English and Original"
111
  msgstr "שנה את הצגת שפות השפות בין אנגלית למקןר"
112
 
113
+ #: wp/transposh_admin.php:399
114
  #@ transposh
115
  msgid "Make all languages active"
116
  msgstr "הפוך את כל השפות לפעילות"
117
 
118
+ #: wp/transposh_admin.php:400
119
  #@ transposh
120
  msgid "Sort by language name"
121
  msgstr "מיין לפי שם השפה"
122
 
123
+ #: wp/transposh_admin.php:401
124
  #@ transposh
125
  msgid "Sort by lSO code"
126
  msgstr "מיין לפי קוד ה-ISO"
127
 
128
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  #@ transposh
130
  msgid "Who can translate ?"
131
  msgstr "מי יכול לתרגם?"
132
 
133
+ #: wp/transposh_admin.php:419
134
  #@ transposh
135
  msgid "Anonymous"
136
  msgstr "אנונימי"
137
 
138
+ #: wp/transposh_admin.php:421
139
  #@ transposh
140
  msgid "Enable default language translation"
141
  msgstr "אפשר תרגום של שפת ברירת המחדל"
142
 
143
+ #: wp/transposh_admin.php:422
144
  #@ transposh
145
  msgid "Allow translation of default language - useful for sites with more than one major language"
146
  msgstr "אפשר תרגום שפת ברירת המחדל - שימושי באתרים עם יותר משפה עיקרית אחת"
147
 
148
+ #: wp/transposh_admin.php:423
149
  #@ transposh
150
  msgid "Enable search in translated languages"
151
  msgstr "אפשר חיפוש בשפות המתורגמות"
152
 
153
+ #: wp/transposh_admin.php:518
154
  #@ transposh
155
  msgid "Allow translation of permalinks and urls"
156
  msgstr "אפשר תרגום של קישורים קבועים וכתובות אינטרנט"
157
 
158
+ #: wp/transposh_admin.php:460
159
  #@ transposh
160
  msgid "Enable automatic translation"
161
  msgstr "אפשר תרגום אוטומטי"
162
 
163
+ #: wp/transposh_admin.php:461
164
  #@ transposh
165
  msgid "Allow automatic translation of pages"
166
  msgstr "אפשר תרגום אוטומטי של דפים"
167
 
168
+ #: wp/transposh_admin.php:462
169
  #@ transposh
170
  msgid "Enable automatic translation after posting"
171
  msgstr "אפשר תרגום אוטומטי לאחר יצירת פוסט"
172
 
173
+ #: wp/transposh_admin.php:463
174
  #@ transposh
175
  msgid "Do automatic translation immediately after a post has been published"
176
  msgstr "בצע תרגום אוטומטי מייד לאחר שפוסט מפורסם"
177
 
178
+ #: wp/transposh_admin.php:470
179
  #@ transposh
180
  msgid "Select preferred auto translation engine"
181
  msgstr "בחר את מנוע התרגום האוטומטי המועדף"
182
 
183
+ #: wp/transposh_admin.php:471
184
  #@ transposh
185
  msgid "Translation engine:"
186
  msgstr "מנוע תרגום:"
187
 
188
+ #: wp/transposh_admin.php:472
189
  #@ transposh
190
  msgid "Google"
191
  msgstr "גוגל"
192
 
193
+ #: wp/transposh_admin.php:473
194
  #@ transposh
195
  msgid "Bing"
196
  msgstr "בינג"
197
 
198
+ #: wp/transposh_admin.php:433
199
  #@ transposh
200
  msgid "Rewrite URLs"
201
  msgstr "שיכתוב כתובות אינטרנט"
202
 
203
+ #: wp/transposh_admin.php:437
204
  #@ transposh
205
  msgid "Add scripts to footer"
206
  msgstr "הוסף סקריפטים לתחתית הדף"
207
 
208
+ #: wp/transposh_admin.php:439
209
  #@ transposh
210
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
211
  msgstr "הכנס את הסקריפטים של טרנספוש לתחתית העמוד במקום לחלקו העליון, העמוד יטען מהר יותר. ערכת העיצוב חייבת להכיל תמיכה בחלק תחתון."
212
 
213
+ #: wp/transposh_admin.php:440
214
  #@ transposh
215
  msgid "Auto detect language for users"
216
  msgstr "זהה שפה עבור המשתמשים באופן אוטומטי"
217
 
218
+ #: wp/transposh_admin.php:442
219
  #@ transposh
220
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
221
  msgstr "תכונה זו מאפשרת זיהוי אוטומטי של השפה בה משתמשים המשתמשים כפי שמוגדרת ב-ACCEPT_LANGUAGES אותו הם שולחים. תכונה זו תשלח את הדף הראשון אל דף זהה בשפה שזוהתה."
222
 
223
+ #: wp/transposh_admin.php:554
224
  #@ transposh
225
  msgid "Delete all automated translations"
226
  msgstr "מחק את כל התרגומים האוטומטיים"
227
 
228
+ #: wp/transposh_admin.php:555
229
  #@ transposh
230
  msgid "Delete automated translations older than 14 days"
231
  msgstr "מחק תרגומים אוטומטיים בני יותר מ-14 ימים"
232
 
233
+ #: wp/transposh_admin.php:451
 
 
 
 
 
234
  #@ transposh
235
  msgid "Enable daily backup"
236
  msgstr "אפשר גיבוי יומי"
237
 
238
+ #: wp/transposh_admin.php:452
239
  #@ transposh
240
  msgid "Enable live backup"
241
  msgstr "אפשר גיבוי חי"
242
 
243
+ #: wp/transposh_admin.php:453
244
  #@ transposh
245
  msgid "Disable backup (Can be run manually by clicking the button below)"
246
  msgstr "בטל גיבוי (ניתן להריץ ידנית על ידי לחיצה על הכפתור למטה)"
247
 
248
+ #: wp/transposh_admin.php:454
249
  #@ transposh
250
  msgid "How to restore?"
251
  msgstr "איך לשחזר?"
252
 
253
+ #: wp/transposh_admin.php:548
254
  #@ transposh
255
  msgid "Do Backup Now"
256
  msgstr "גבה עכשיו"
257
 
258
+ #: wp/transposh_admin.php:170
259
  #@ transposh
260
  msgid "Transposh makes your blog translatable"
261
  msgstr "טרנספוש הופך את הבלוג שלך לניתן לתרגום"
262
 
263
+ #: wp/transposh_admin.php:172
264
  #@ transposh
265
  msgid "Plugin homepage"
266
  msgstr "עמוד הבית של התוסף"
267
 
268
+ #: wp/transposh_admin.php:173
269
  #@ transposh
270
  msgid "Frequently asked questions"
271
  msgstr "שאלות נפוצות"
272
 
273
+ #: wp/transposh_admin.php:518
 
 
 
 
 
274
  #@ transposh
275
  msgid "Enable url translation"
276
  msgstr "אפשר תרגום כתובות אינטרנט"
277
 
278
+ #: wp/transposh_admin.php:518
 
279
  #@ transposh
280
  msgid "experimental"
281
  msgstr "נסיוני"
282
 
283
+ #: wp/transposh_admin.php:436
284
  #@ transposh
285
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
286
  msgstr "שכתוב כתובות אינטרנט כדי שיהיו ידידותיות למנועי חיפוש, למשל (http://transposh.org/<strong>en</strong>). יש חובה להפעיל קישורים קבועים."
287
 
288
+ #: wp/transposh_db.php:684
289
  #@ transposh
290
  msgid "Database stats"
291
  msgstr "סטטיסטיקות בסיס הנתונים"
292
 
293
+ #: wp/transposh_db.php:689
294
  #, php-format
295
  #@ transposh
296
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
297
  msgstr "סך הכל <strong style=\"color:red\">%s</strong> מקטעים מתורגמים."
298
 
299
+ #: wp/transposh_db.php:696
300
  #, php-format
301
  #@ transposh
302
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
303
  msgstr "ב-<strong>%1s</strong> ישנם <strong style=\"color:red\">%2s</strong> מקטעים מתורגמים על ידי בן אדם."
304
 
305
+ #: wp/transposh_db.php:699
306
  #@ transposh
307
  msgid "Recent activity"
308
  msgstr "פעילות אחרונה"
309
 
310
+ #: wp/transposh_db.php:704
311
  #, php-format
312
  #@ transposh
313
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
314
  msgstr "ב <strong>%1s</strong><br/>המשתמש <strong>%2s</strong> תרגם את<br/>\"<strong>%3s</strong>\"<br/>ל <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
315
 
316
+ #: wp/transposh_widget.php:129
317
  #@ transposh
318
  msgid "Style:"
319
  msgstr "סגנון:"
320
 
321
+ #: wp/transposh_admin.php:506
322
  #@ transposh
323
  msgid "Show progress bar when a client triggers automatic translation"
324
  msgstr "הראה בר התקדמות בעת שמשתמש יוזם תרגום אוטומטי"
325
 
326
+ #: wp/transposh_admin.php:505
327
  #@ transposh
328
  msgid "Show progress bar"
329
  msgstr "הצג בר התקדמות"
330
 
331
+ #: wp/transposh_admin.php:509
332
  #@ transposh
333
  msgid "Widget will allow setting this language as user default"
334
  msgstr "הישומון יאפשר הגדרת שפה זו כברירת מחדל"
335
 
336
+ #: wp/transposh_admin.php:508
337
  #@ transposh
338
  msgid "Allow user to set current language as default"
339
  msgstr "אפשר למשתמש לבחור את השפה הנוכחית כברירת מחדל"
340
 
341
+ #: wp/transposh_admin.php:512
342
  #@ transposh
343
  msgid "Transposh logo will not appear on widget"
344
  msgstr "הלוגו של טרנספוש לא יופיע בישומון"
345
 
346
+ #: wp/transposh_admin.php:511
347
  #@ transposh
348
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
349
  msgstr "הסרת הלוגו של טרנספוש (ראה <a href=\"http://transposh.org/logoterms\">תנאים</a>)"
350
 
351
+ #: wp/transposh_admin.php:454
352
  #@ transposh
353
  msgid "Service Key:"
354
  msgstr "מפתח שרות:"
355
 
356
+ #: wp/transposh_widget.php:288
357
  #@ transposh
358
  msgid "Set as default language"
359
  msgstr "הגדר כשפת ברירת מחדל"
390
  msgid "%VERSION%"
391
  msgstr ""
392
 
393
+ #: transposh.php:921
394
+ #: wp/transposh_admin.php:183
395
  #@ default
396
+ #@ transposh
397
  msgid "Settings"
398
+ msgstr "הגדרות"
399
 
400
+ #: wp/transposh_admin.php:316
401
+ #@ transposh
402
  msgid "Save Changes"
403
+ msgstr "שמור שינויים"
404
 
405
+ #: wp/transposh_admin.php:425
406
  #@ transposh
407
  msgid "Enable gettext integration"
408
  msgstr "אפשר אינטגרציית gettext"
409
 
410
+ #: wp/transposh_admin.php:426
411
  #@ transposh
412
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
413
  msgstr "אפשר אינטגרציה של טרנספוש עם ממשק gettext הקיים (קבצי .po/.mo)"
414
 
415
+ #: wp/transposh_admin.php:388
416
  #@ transposh
417
  msgid "Language supported by apertium translate"
418
  msgstr "שפה נתמכת ע\"י המתרגם של אפרטיום"
419
 
420
+ #: wp/transposh_admin.php:556
421
  #@ transposh
422
  msgid "Attempt to fix errors caused by previous versions - please backup first"
423
  msgstr "נסה לתקן שגיאות שנגרמו על ידי גרסאות קודמות - אנא גבה קודם"
424
 
425
+ #: wp/transposh_widget.php:318
426
  #@ transposh
427
  msgid "translation plugin for wordpress"
428
  msgstr "תוסף התרגום לוורדפרס"
429
 
430
+ #: wp/transposh_widget.php:321
431
  #@ transposh
432
  msgid "wordpress translation plugin"
433
  msgstr "תוסף תרגום לוורדפרס"
434
 
435
+ #: wp/transposh_widget.php:324
436
  #@ transposh
437
  msgid "translate your blog to 60+ languages"
438
  msgstr "תרגם את הבלוג שלך ל-60 שפות"
439
 
440
+ #: wp/transposh_widget.php:327
441
  #@ transposh
442
  msgid "website crowdsourcing translation plugin"
443
  msgstr "תוסף מיקור המון (crowdsourcing) לתרגום אתרים"
444
 
445
+ #: wp/transposh_widget.php:330
446
  #@ transposh
447
  msgid "google translate and bing translate plugin for wordpress"
448
  msgstr "תוסף תרגום גוגל ובינג לוורדפרס"
449
 
450
+ #: wp/transposh_admin.php:514
 
451
  #@ transposh
452
  msgid "Edit interface (and progress bar) theme:"
453
  msgstr "ערכת עיצוב ממשק עריכה (ובר התקדמות):"
454
 
455
+ #: wp/transposh_admin.php:424
456
  #@ transposh
457
  msgid "Allow search of translated languages (and the original language)"
458
  msgstr "אפשר חיפוש בשפות המתורגמות (בנוסף לשפת המקור)"
459
 
460
+ #: wp/transposh_admin.php:428
461
  #@ transposh
462
  msgid "Enable override for default locale"
463
  msgstr "אפשר עקיפת משתנה סביבת השפה של בררת במחדל"
464
 
465
+ #: wp/transposh_admin.php:429
466
  #@ transposh
467
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
468
+ msgstr "אפשר את עקיפת משתנה השפה של בררת המחדל המוגדר ב-WP_LANG עבור עמודים בשפת בררת המחדל (כמו עמודים שאינם מתורגמים ועמודי ניהול)"
469
 
470
+ #: wp/transposh_admin.php:733
471
  #, php-format
472
  #@ transposh
473
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
474
  msgstr "הגבלת הזכרון ב-PHP שלך של %s נמוכה, אם תחווה בעיות של דפים ריקים מומלץ לשקול להגדיל את המגבלה."
475
 
476
+ #: wp/transposh_admin.php:737
477
  #@ transposh
478
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
479
  msgstr "לא הצלחנו לאתר מנגנון זכרון מטמון נתמך, התקנה של אחד יכולה לשפר את הביצועים."
480
 
481
+ #: wp/transposh_postpublish.php:57
482
  #@ transposh
483
  msgid "Set post language"
484
  msgstr "הגדר את שפת הפוסט"
485
 
486
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
487
  #@ default
488
  msgid "Default"
489
  msgstr ""
490
 
491
+ #: wp/transposh_admin.php:733
492
+ #: wp/transposh_admin.php:737
493
  #@ transposh
494
  msgid "Check Transposh FAQs"
495
  msgstr "בדוק את השאלות הנפוצות של טרנספוש"
496
 
497
+ #: wp/transposh_admin.php:443
498
  #@ transposh
499
  msgid "Allow collecting usage statistics"
500
  msgstr "אפשר איסוף סטטיסטיקות שימוש"
501
 
502
+ #. TRANSLATORS: this is what appears in the select box in dropdown subwidget
503
  #: widgets/dropdown/tpw_image_dropdown.php:45
504
  #@ transposh
505
  msgid "Select language"
506
  msgstr "בחר שפה"
507
 
508
+ #: wp/transposh_admin.php:465
 
 
 
 
 
509
  #@ transposh
510
  msgid "MSN API key"
511
  msgstr "מפתח API של MSN"
512
 
513
+ #: wp/transposh_admin.php:466
514
+ #: wp/transposh_admin.php:469
 
515
  #@ transposh
516
  msgid "API Key"
517
  msgstr "מפתח API"
518
 
519
+ #: wp/transposh_admin.php:468
520
  #@ transposh
521
  msgid "Google API key"
522
  msgstr "מפתח API של גוגל"
523
 
524
+ #: wp/transposh_widget.php:124
525
  #@ transposh
526
  msgid "Title:"
527
  msgstr "כותרת:"
528
 
529
+ #: wp/transposh_widget.php:256
530
  #@ transposh
531
  msgid "Transposh subwidget was not loaded correctly"
532
  msgstr "ישומון משנה של טרנספוש לא נטען כראוי"
533
 
534
+ #. TRANSLATORS: no need to translate this string
535
+ #: wp/transposh_widget.php:273
536
  #@ transposh
537
  msgid "title"
538
  msgstr ""
539
 
540
+ #. TRANSLATORS: this will be the default widget title
541
+ #: wp/transposh_widget.php:119
542
  #@ transposh
543
  msgid "Translation"
544
  msgstr "תרגום"
545
 
546
+ #: wp/transposh_admin.php:759
547
  #@ transposh
548
  msgid "Language"
549
  msgstr "שפה"
550
 
551
+ #: wp/transposh_admin.php:444
552
  #@ transposh
553
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
554
  msgstr "אפשרות זו מאפשרת איסוף סטטיסטיקות על ידי טרנספוש שישמשו לשיפור המוצר."
555
 
556
+ #: wp/transposh_admin.php:390
 
 
 
 
 
557
  #@ transposh
558
  msgid "Language supported by one hour translation"
559
  msgstr "שפה נתמכת על ידי one hour translation"
560
 
561
+ #: wp/transposh_admin.php:477
562
  #@ transposh
563
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
564
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, הינה שרות התרגום המקצועי הגדול ביותר באינטרנט , עם אלפי לקוחות עסקיים, כולל 57% מחברות Fortune 500, ומעל 15000 מתרגמים ברחבי העולם."
565
 
566
+ #: wp/transposh_admin.php:479
567
  #@ transposh
568
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
569
  msgstr "One Hour Translation מספקת תרגום איכותי, מהיר ומקצועי מכל שפה ומתמחה באופן ספציפי בלוקליזציה של תוכנה, תרגום טכני, תרגום עסקי, ותרגומים משפטיים."
570
 
571
+ #: wp/transposh_admin.php:483
572
  #@ transposh
573
  msgid "One Hour Translation account ID"
574
  msgstr "קוד זיהוי חשבון ב-One Hour Translation"
575
 
576
+ #: wp/transposh_admin.php:484
577
+ #: wp/transposh_admin.php:488
578
  #@ transposh
579
  msgid "Account ID"
580
  msgstr "קוד זיהוי חשבון"
581
 
582
+ #: wp/transposh_admin.php:487
583
  #@ transposh
584
  msgid "One Hour Translation secret key"
585
  msgstr "מפתח סודי עבור One Hour Translation"
586
 
587
+ #: wp/transposh_admin.php:499
 
 
 
 
 
 
588
  #, php-format
589
  #@ transposh
590
  msgid "%d projects have been submitted and waiting for completion"
591
  msgstr "%d משימות הוגשו ומחכות להשלמה"
592
 
593
+ #: wp/transposh_admin.php:755
594
  #@ transposh
595
  msgid "Unset"
596
  msgstr "לא מוגדרת"
597
 
598
+ #: wp/transposh_admin.php:181
599
+ #@ transposh
600
+ msgid "Dashboard"
601
+ msgstr "לוח הבקרה"
602
+
603
+ #: wp/transposh_admin.php:182
604
+ #@ transposh
605
+ msgid "Languages"
606
+ msgstr "שפות"
607
+
608
+ #: wp/transposh_admin.php:184
609
+ #@ transposh
610
+ msgid "Translation Engines"
611
+ msgstr "מנועי תרגום"
612
+
613
+ #: wp/transposh_admin.php:185
614
+ #@ transposh
615
+ msgid "Widgets settings"
616
+ msgstr "הגדרות יישומונים"
617
+
618
+ #: wp/transposh_admin.php:186
619
+ #@ transposh
620
+ msgid "Advanced"
621
+ msgstr "מתקדם"
622
+
623
+ #: wp/transposh_admin.php:187
624
+ #@ transposh
625
+ msgid "Utilities"
626
+ msgstr "כלי עזר"
627
+
628
+ #: wp/transposh_admin.php:188
629
+ #@ transposh
630
+ msgid "About"
631
+ msgstr "אודות"
632
+
633
+ #: wp/transposh_admin.php:189
634
+ #@ transposh
635
+ msgid "Support"
636
+ msgstr "תמיכה"
637
+
638
+ #: wp/transposh_admin.php:171
639
+ #@ transposh
640
+ msgid "For further help and assistance, please look at the following resources:"
641
+ msgstr "עבור תמיכה וסיוע אנא הסתכלו במקורות הבאים:"
642
+
643
+ #: wp/transposh_admin.php:174
644
+ #@ transposh
645
+ msgid "Development website"
646
+ msgstr "אתר הפיתוח"
647
+
648
+ #: wp/transposh_admin.php:278
649
+ #@ transposh
650
+ msgid "Transposh Help"
651
+ msgstr "עזרה של טרנספוש"
652
+
653
+ #: wp/transposh_admin.php:407
654
+ #@ transposh
655
+ msgid "Translation related settings"
656
+ msgstr "הגדרות קשורות לתרגום"
657
+
658
+ #: wp/transposh_admin.php:432
659
+ #@ transposh
660
+ msgid "General settings"
661
+ msgstr "הגדרות כלליות"
662
+
663
+ #: wp/transposh_admin.php:450
664
+ #@ transposh
665
+ msgid "Backup service settings"
666
+ msgstr "הגדרות שרות גיבוי"
667
+
668
+ #: wp/transposh_admin.php:459
669
+ #@ transposh
670
+ msgid "Automatic Translation Settings"
671
+ msgstr "הגדרות תרגום אוטומטי"
672
+
673
+ #: wp/transposh_admin.php:477
674
+ #@ transposh
675
+ msgid "Professional Translation Settings"
676
+ msgstr "הגדרות תרגום מקצועי"
677
+
678
+ #: wp/transposh_admin.php:494
679
+ #, php-format
680
+ #@ transposh
681
+ msgid "%d phrases currently queued for next job in ~%d minutes"
682
+ msgstr "ישנם %d משפטים בתור לביצוע בעוד בערך %d דקות"
683
+
684
+ #: wp/transposh_admin.php:520
685
+ #@ transposh
686
+ msgid "Parser related settings"
687
+ msgstr "הגדרות מפרש"
688
+
689
+ #: wp/transposh_admin.php:521
690
+ #: wp/transposh_admin.php:530
691
+ #@ transposh
692
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
693
+ msgstr "הגדרות אלו מסוכנות, וישברו תרגומים קיימים. הן עלולות לגרום גם להתקפי שיהוק. המשיכו רק אם אתם יודעים מה אתם עושים"
694
+
695
+ #: wp/transposh_admin.php:522
696
+ #@ transposh
697
+ msgid "Disable punctuations break"
698
+ msgstr "בטל עצירות בסימני ניקוד"
699
+
700
+ #: wp/transposh_admin.php:523
701
+ #@ transposh
702
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
703
+ msgstr "המפרש לא ישבור טקסט כאשר הוא נתקל בסימן ניקוד כמו נקודה או פסיק"
704
+
705
+ #: wp/transposh_admin.php:524
706
+ #@ transposh
707
+ msgid "Disable numbers break"
708
+ msgstr "בטל עצירה במספרים"
709
+
710
+ #: wp/transposh_admin.php:525
711
+ #@ transposh
712
+ msgid "The parser will not break text into phrases when encountering numbers"
713
+ msgstr "המפרש לא ישבור טקסט כאשר הוא נתקל במספרים"
714
+
715
+ #: wp/transposh_admin.php:526
716
+ #@ transposh
717
+ msgid "Disable html entities break"
718
+ msgstr "בטל שבירה בתגי HTML"
719
+
720
+ #: wp/transposh_admin.php:527
721
+ #@ transposh
722
+ msgid "The parser will not break text into phrases when encountering html entities"
723
+ msgstr "המפרש לא ישבור טקסט כאשר הוא נתקל בסימני HTML"
724
+
725
+ #: wp/transposh_admin.php:529
726
+ #@ transposh
727
+ msgid "Debug settings"
728
+ msgstr "הגדרות דיבוג"
729
+
730
+ #: wp/transposh_admin.php:531
731
+ #@ transposh
732
+ msgid "Enable debugging"
733
+ msgstr "אפשר דיבוג"
734
+
735
+ #: wp/transposh_admin.php:532
736
+ #@ transposh
737
+ msgid "Enable running of Transposh internal debug functions"
738
+ msgstr "אפשר את הרצת פונקציות הדיבוג הפנימיות של טרנספוש"
739
+
740
+ #: wp/transposh_admin.php:533
741
+ #@ transposh
742
+ msgid "Log file name"
743
+ msgstr "שם קובץ לוג"
744
+
745
+ #: wp/transposh_admin.php:534
746
+ #@ transposh
747
+ msgid "Level of logging"
748
+ msgstr "רמת לוג"
749
+
750
+ #: wp/transposh_admin.php:535
751
+ #@ transposh
752
+ msgid "Critical"
753
+ msgstr "קריטי"
754
+
755
+ #: wp/transposh_admin.php:536
756
+ #@ transposh
757
+ msgid "Important"
758
+ msgstr "חשוב"
759
+
760
+ #: wp/transposh_admin.php:537
761
+ #@ transposh
762
+ msgid "Warning"
763
+ msgstr "אזהרה"
764
+
765
+ #: wp/transposh_admin.php:538
766
+ #@ transposh
767
+ msgid "Information"
768
+ msgstr "מידע"
769
+
770
+ #: wp/transposh_admin.php:539
771
+ #@ transposh
772
+ msgid "Debug"
773
+ msgstr "דיבאג"
774
+
775
+ #: wp/transposh_admin.php:541
776
+ #, php-format
777
+ #@ transposh
778
+ msgid "Remote debug IP (Your current IP is %s)"
779
+ msgstr "כתובת ה-IP המרוחקת (הכתובת שלך היא %s)"
780
+
781
+ #: wp/transposh_admin.php:553
782
+ #@ transposh
783
+ msgid "Reset configuration to default (saves keys)"
784
+ msgstr "אתחל את ההגדרות לברירת המחדל (מפתחות ישמרו)"
785
+
786
+ #: wp/transposh_admin.php:592
787
+ #@ transposh
788
+ msgid "Have you encountered any problem with our plugin and need our help?"
789
+ msgstr "האם נתקלתם בבעיה בתוסף שלנו ואתם זקוקים לעזרתנו?"
790
+
791
+ #: wp/transposh_admin.php:593
792
+ #@ transposh
793
+ msgid "Do you need to ask us any question?"
794
+ msgstr "האם אתם רוצים לשאול אותנו שאלה כלשהיא?"
795
+
796
+ #: wp/transposh_admin.php:594
797
+ #@ transposh
798
+ msgid "You have two options:"
799
+ msgstr "יש לכם שתי אפשרויות:"
800
+
801
+ #: wp/transposh_admin.php:599
802
+ #@ transposh
803
+ msgid "You can contact us through our contact form on our web site"
804
+ msgstr "ניתן ליצור עמנו קשר דרך טופס יצירת הקשר באתרנו"
805
+
806
+ #: wp/transposh_admin.php:600
807
+ #@ transposh
808
+ msgid "Create a ticket for us if you have found any bugs"
809
+ msgstr "ניתן לפתוח לנו כרטיס אם נתקלתם בשגיאה"
810
+
811
+ #: wp/transposh_admin.php:623
812
+ #@ transposh
813
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
814
+ msgstr "בזה כלול סיוע בבגים שונים, התנגשויות בסיסיות עם תוספים וערכות נושא שונות, או פשוט שנגיד לך איפה כפתור ההפעלה"
815
+
816
+ #: wp/transposh_admin.php:624
817
+ #@ transposh
818
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
819
+ msgstr "מבטיחים להשיב את הכסף בכל מקרה של חוסר שביעות רצון! אם הבעיה לא נפתר או שפשוט אינכם מרוצים, נחזיר לכם את הכסף לחשבונכם לכשתבקשו (כל עוד פייפאל מאפשרים, אל תבואו אלינו אחרי שלוש שנים!)"
820
+
821
+ #: wp/transposh_admin.php:625
822
+ #@ transposh
823
+ msgid "So hit the following button. Thanks!"
824
+ msgstr "אז לחצו על הכפתור הבא. תודה!"
825
+
826
+ #: wp/transposh_admin.php:637
827
+ #@ transposh
828
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
829
+ msgstr "אם אתם רק רוצים להראות שאכפת לכם, זהו הכפתור עבורכם. אבל אנא חשבו פעמיים לפני השימוש. ישמח אותנו אם פשוט תעשו משהו נחמד למישהו באזורכם, תתרמו לארגון צדקה, ותספרו לנו!"
830
+
831
+ #: wp/transposh_admin.php:567
832
+ #@ transposh
833
+ msgid "About Transposh"
834
+ msgstr "אודות טרנספוש"
835
+
836
+ #: wp/transposh_admin.php:568
837
+ #@ transposh
838
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
839
+ msgstr "טרנספוש נוסדה בשנת 2008 והיא מספקת כלים להקלה בתרגום אתרים."
840
+
841
+ #: wp/transposh_admin.php:570
842
+ #@ transposh
843
+ msgid "Learn more about us in the following online presenses"
844
+ msgstr "למדו עלינו עוד דרך העמודים הבאים שלנו"
845
+
846
+ #: wp/transposh_admin.php:573
847
+ #@ transposh
848
+ msgid "Our website"
849
+ msgstr "האתר שלנו"
850
+
851
+ #: wp/transposh_admin.php:575
852
+ #@ transposh
853
+ msgid "Our blog"
854
+ msgstr "הבלוג שלנו"
855
+
856
+ #: wp/transposh_admin.php:577
857
+ #@ transposh
858
+ msgid "Our twitter account (feel free to follow!)"
859
+ msgstr "חשבון הטוויטר שלנו (תרגישו חופשי לעקוב!)"
860
+
861
+ #: wp/transposh_admin.php:579
862
+ #@ transposh
863
+ msgid "Our facebook page (feel free to like!)"
864
+ msgstr "עמוד הפייסבוק שלנו (תרגישו חופשי ללייקק!)"
865
+
866
+ #: wp/transposh_admin.php:581
867
+ #@ transposh
868
+ msgid "Our google plus page (add us to your circles!)"
869
+ msgstr "עמוד הגוגל פלוס שלנו (תוסיפו אותנו למעגלים!)"
870
+
871
+ #: wp/transposh_admin.php:583
872
+ #@ transposh
873
+ msgid "Our youtube channel"
874
+ msgstr "ערוץ היוטיוב שלנו"
875
+
876
+ #: wp/transposh_admin.php:592
877
+ #@ transposh
878
+ msgid "Transposh support"
879
+ msgstr "התמיכה של טרנספוש"
880
+
881
+ #: wp/transposh_admin.php:596
882
+ #@ transposh
883
+ msgid "Our free support"
884
+ msgstr "התמיכה החינמית שלנו"
885
+
886
+ #: wp/transposh_admin.php:598
887
+ #@ transposh
888
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
889
+ msgstr "ישנם ערוצים רבים בהם ניתן להשיג אותנו ואנו ננסה לסייע בהקדם האפשרי"
890
+
891
+ #: wp/transposh_admin.php:601
892
+ #@ transposh
893
+ msgid "Reach us via different forums:"
894
+ msgstr "השיגו אותנו דרך הפורומים הבאים:"
895
+
896
+ #: wp/transposh_admin.php:604
897
+ #@ transposh
898
+ msgid "Our support forum on wordpress.org"
899
+ msgstr "פורום התמיכה שלנו ב-wordpress.org"
900
+
901
+ #: wp/transposh_admin.php:606
902
+ #@ transposh
903
+ msgid "Our internal development site, with wiki and tickets"
904
+ msgstr "אתר הפיתוח הפנימי שלנו, עם ויקי וכרטיסים"
905
+
906
+ #: wp/transposh_admin.php:608
907
+ #@ transposh
908
+ msgid "Our facebook page"
909
+ msgstr "עמוד הפייסבוק שלנו"
910
+
911
+ #: wp/transposh_admin.php:610
912
+ #@ transposh
913
+ msgid "Our google plus page"
914
+ msgstr "עמוד הגוגל פלוס שלנו"
915
+
916
+ #: wp/transposh_admin.php:612
917
+ #@ transposh
918
+ msgid "Contact us directly via:"
919
+ msgstr "צרו איתנו קשר ישירות דרך:"
920
+
921
+ #: wp/transposh_admin.php:614
922
+ #@ transposh
923
+ msgid "Our contact form"
924
+ msgstr "טופס יצירת הקשר שלנו"
925
+
926
+ #: wp/transposh_admin.php:620
927
+ #@ transposh
928
+ msgid "Professional support option"
929
+ msgstr "אפשרות תמיכה מקצועית"
930
+
931
+ #: wp/transposh_admin.php:622
932
+ #@ transposh
933
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
934
+ msgstr "בשביל המחיר הממש נמוך של $99, אנחנו נעזוב הכל ונטפל בבעיה שלכם"
935
+
936
+ #: wp/transposh_admin.php:635
937
+ #@ transposh
938
+ msgid "Donations"
939
+ msgstr "תרומות"
940
+
941
+ #: wp/transposh_admin.php:747
942
+ #@ transposh
943
+ msgid "Hide Notice"
944
+ msgstr "הסתר הודעה"
945
+
langs/transposh-it_IT.mo CHANGED
Binary file
langs/transposh-it_IT.po CHANGED
@@ -1,26 +1,28 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2010-10-13 10:21+0000\n"
6
- "PO-Revision-Date: 2011-03-27 01:31+0100\n"
7
- "Last-Translator: \n"
8
- "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
- "X-Poedit-Language: \n"
14
- "X-Poedit-Country: \n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
- "X-Poedit-Basepath: \n"
18
  "X-Poedit-Bookmarks: \n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: transposh.php:908
 
23
  #@ default
 
24
  msgid "Settings"
25
  msgstr "Configurazione"
26
 
@@ -30,418 +32,341 @@ msgstr "Configurazione"
30
  msgid "%s translated a phrase to %s with transposh:"
31
  msgstr "%s frase tradotta in %s con Transposh:"
32
 
33
- #: wp/transposh_admin.php:165
34
  #@ transposh
35
  msgid "Transposh makes your blog translatable"
36
- msgstr "Transposh rende il tuo blog traducibile"
37
 
38
- #: wp/transposh_admin.php:166
39
  #@ transposh
40
  msgid "Plugin homepage"
41
  msgstr "Homepage del plugin"
42
 
43
- #: wp/transposh_admin.php:167
44
  #@ transposh
45
  msgid "Frequently asked questions"
46
  msgstr "Domande Frequenti (FAQ)"
47
 
48
- #: wp/transposh_admin.php:175
49
- #@ transposh
50
- msgid "Transposh control center"
51
- msgstr "Transposh Pannello di controllo"
52
-
53
- #: wp/transposh_admin.php:175
54
- #: wp/transposh_admin.php:243
55
- #: wp/transposh_postpublish.php:50
56
- #: wp/transposh_postpublish.php:51
57
- #: wp/transposh_widget.php:84
58
- #: wp/transposh_widget.php:311
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr "Transposh"
63
 
64
- #: wp/transposh_admin.php:212
65
- #@ transposh
66
- msgid "About this plugin"
67
- msgstr "Riguardo al plugin"
68
-
69
- #: wp/transposh_admin.php:213
70
  #@ transposh
71
  msgid "Plugin news"
72
  msgstr "Novità del Plugin"
73
 
74
- #: wp/transposh_admin.php:214
75
  #@ transposh
76
  msgid "Plugin stats"
77
  msgstr "Statistiche del Plugin"
78
 
79
- #: wp/transposh_admin.php:215
80
- #@ transposh
81
- msgid "Translate all"
82
- msgstr "Tradurre tutto"
83
-
84
- #: wp/transposh_admin.php:216
85
- #@ transposh
86
- msgid "Supported languages"
87
- msgstr "Lingue supportate"
88
-
89
- #: wp/transposh_admin.php:217
90
- #@ transposh
91
- msgid "Translation settings"
92
- msgstr "Configurazione Traduzioni"
93
-
94
- #: wp/transposh_admin.php:218
95
- #@ transposh
96
- msgid "Automatic translation settings"
97
- msgstr "Configurazione traduzione automatica"
98
-
99
- #: wp/transposh_admin.php:221
100
- #@ transposh
101
- msgid "Generic settings"
102
- msgstr "Configurazione Generale"
103
-
104
- #: wp/transposh_admin.php:222
105
- #@ transposh
106
- msgid "Database maintenance"
107
- msgstr "Manutenzione Database"
108
-
109
- #: wp/transposh_admin.php:237
110
  #@ transposh
111
- msgid "Transposh community features"
112
- msgstr "Caratteristiche del Transposh Community"
113
-
114
- #: wp/transposh_admin.php:273
115
- #@ default
116
  msgid "Save Changes"
117
  msgstr "Salva modifiche"
118
 
119
- #: wp/transposh_admin.php:297
120
  #@ transposh
121
  msgid "Problems?"
122
  msgstr "Problemi?"
123
 
124
- #: wp/transposh_admin.php:313
125
- #@ transposh
126
- msgid "Plugin Homepage"
127
- msgstr "Homepage del Plugin"
128
-
129
- #: wp/transposh_admin.php:314
130
  #@ transposh
131
  msgid "Suggest a Feature"
132
  msgstr "Suggerisci una funzione"
133
 
134
- #: wp/transposh_admin.php:316
135
  #@ transposh
136
  msgid "Report a Bug"
137
  msgstr "Segnala un bug"
138
 
139
- #: wp/transposh_admin.php:333
140
  #@ transposh
141
  msgid "Translate by clicking the button below"
142
  msgstr "Traduci cliccando sul bottone in basso"
143
 
144
- #: wp/transposh_admin.php:335
145
  #@ transposh
146
  msgid "Translate All Now"
147
  msgstr "Traduci tutto ora"
148
 
149
- #: wp/transposh_admin.php:390
150
  #@ transposh
151
  msgid "Default Language (drag another language here to make it default)"
152
  msgstr "Lingua predefinita (trascina qui un'altra lingua per renderla predefinita)"
153
 
154
- #: wp/transposh_admin.php:397
155
  #@ transposh
156
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
157
  msgstr "Lingue disponibili (Clicca per modificarne l'attivazione - Trascina per modificarne l'ordine nel widget)"
158
 
159
- #: wp/transposh_admin.php:407
160
  #@ transposh
161
  msgid "Language supported by google translate"
162
  msgstr "Lingue supportate da Google Translate"
163
 
164
- #: wp/transposh_admin.php:409
165
  #@ transposh
166
  msgid "Language supported by bing translate"
167
  msgstr "Lingue supportate da Bing Translate"
168
 
169
- #: wp/transposh_admin.php:415
170
  #@ transposh
171
  msgid "Language is written from right to left"
172
  msgstr "Lingua scritta da destra a sinistra"
173
 
174
- #: wp/transposh_admin.php:420
175
  #@ transposh
176
  msgid "Display options:"
177
  msgstr "Mostra opzioni:"
178
 
179
- #: wp/transposh_admin.php:421
180
  #@ transposh
181
  msgid "Toggle names of languages between English and Original"
182
  msgstr "Inverti nome della lingua tra Inglese ed Originale"
183
 
184
- #: wp/transposh_admin.php:422
185
  #@ transposh
186
  msgid "Make all languages active"
187
  msgstr "Attiva tutte le lingue"
188
 
189
- #: wp/transposh_admin.php:423
190
  #@ transposh
191
  msgid "Sort by language name"
192
  msgstr "Elenca per nome della lingua"
193
 
194
- #: wp/transposh_admin.php:424
195
  #@ transposh
196
  msgid "Sort by lSO code"
197
  msgstr "Elenca per codice ISO"
198
 
199
- #: wp/transposh_admin.php:425
200
- #@ transposh
201
- msgid "Legend:"
202
- msgstr "Legenda:"
203
-
204
- #: wp/transposh_admin.php:425
205
- #@ transposh
206
- msgid "Green - active"
207
- msgstr "Verde - Attivata"
208
-
209
- #: wp/transposh_admin.php:425
210
- #@ transposh
211
- msgid "Yellow - translateable (only translators will see this language)"
212
- msgstr "Giallo - Traducibile (solo i traduttori autorizzati vedranno questa lingua)"
213
-
214
- #: wp/transposh_admin.php:425
215
- #@ transposh
216
- msgid "blank - inactive"
217
- msgstr "Bianco - Non attiva"
218
-
219
- #: wp/transposh_admin.php:447
220
  #@ transposh
221
  msgid "Who can translate ?"
222
  msgstr "Chi può tradurre?"
223
 
224
- #: wp/transposh_admin.php:454
225
  #@ transposh
226
  msgid "Anonymous"
227
  msgstr "Anonimi"
228
 
229
- #: wp/transposh_admin.php:460
230
  #@ transposh
231
  msgid "Enable default language translation"
232
  msgstr "Abilita traduzione della lingua predefinita"
233
 
234
- #: wp/transposh_admin.php:460
235
  #@ transposh
236
  msgid "Allow translation of default language - useful for sites with more than one major language"
237
  msgstr "Permetti traduzione della lingua predefinita - utile per siti con più di una lingua principale"
238
 
239
- #: wp/transposh_admin.php:467
240
  #@ transposh
241
  msgid "Enable search in translated languages"
242
  msgstr "Abilita ricerca nelle lingue tradotte"
243
 
244
- #: wp/transposh_admin.php:474
245
  #@ transposh
246
  msgid "Enable url translation"
247
  msgstr "Abilita traduzione delle URL"
248
 
249
- #: wp/transposh_admin.php:474
250
- #: wp/transposh_admin.php:481
251
  #@ transposh
252
  msgid "experimental"
253
  msgstr "sperimentale"
254
 
255
- #: wp/transposh_admin.php:474
256
  #@ transposh
257
  msgid "Allow translation of permalinks and urls"
258
  msgstr "Permetti la traduzione dei permalinks e delle URL"
259
 
260
- #: wp/transposh_admin.php:481
261
  #@ transposh
262
  msgid "Enable gettext integration"
263
  msgstr "Abilita la traduzione gettext"
264
 
265
- #: wp/transposh_admin.php:481
266
  #@ transposh
267
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
268
  msgstr "Abilita l'integrazione di Transposh con l'interfaccia gettext esistente (.po/mo files)"
269
 
270
- #: wp/transposh_admin.php:497
271
  #@ transposh
272
  msgid "Enable automatic translation"
273
  msgstr "Abilita la traduzione automatica"
274
 
275
- #: wp/transposh_admin.php:497
276
  #@ transposh
277
  msgid "Allow automatic translation of pages"
278
  msgstr "Permetti la traduzione automatica delle pagine"
279
 
280
- #: wp/transposh_admin.php:503
281
  #@ transposh
282
  msgid "Enable automatic translation after posting"
283
  msgstr "Abilita la traduzione automatica dopo la pubblicazione"
284
 
285
- #: wp/transposh_admin.php:503
286
  #@ transposh
287
  msgid "Do automatic translation immediately after a post has been published"
288
  msgstr "Traduci immediatamente dopo che un articolo è stato pubblicato"
289
 
290
- #: wp/transposh_admin.php:520
291
  #@ transposh
292
  msgid "Select preferred auto translation engine"
293
  msgstr "Seleziona il sistema di traduzione automatica preferito"
294
 
295
- #: wp/transposh_admin.php:521
296
  #@ transposh
297
  msgid "Translation engine:"
298
  msgstr "Traduttore automatico:"
299
 
300
- #: wp/transposh_admin.php:523
301
  #@ transposh
302
  msgid "Google"
303
  msgstr "Google"
304
 
305
- #: wp/transposh_admin.php:524
306
  #@ transposh
307
  msgid "Bing"
308
  msgstr "Bing"
309
 
310
- #: wp/transposh_admin.php:578
311
  #@ transposh
312
  msgid "Rewrite URLs"
313
  msgstr "Riscrivi URLs"
314
 
315
- #: wp/transposh_admin.php:586
316
  #@ transposh
317
  msgid "Add scripts to footer"
318
  msgstr "Aggiungi gli scripts nel footer"
319
 
320
- #: wp/transposh_admin.php:592
321
  #@ transposh
322
  msgid "Auto detect language for users"
323
  msgstr "Auto rilevamento della lingua degli utenti"
324
 
325
- #: wp/transposh_admin.php:608
326
  #@ transposh
327
  msgid "Delete all automated translations"
328
  msgstr "Cancella tutte le traduzioni automatiche"
329
 
330
- #: wp/transposh_admin.php:609
331
  #@ transposh
332
  msgid "Delete automated translations older than 14 days"
333
  msgstr "Cancella le traduzioni automatiche più vecchie di 14 giorni"
334
 
335
- #: wp/transposh_admin.php:614
336
- #@ transposh
337
- msgid "Backup service for human translation"
338
- msgstr "Backup di servizio per traduzione manuale"
339
-
340
- #: wp/transposh_admin.php:615
341
  #@ transposh
342
  msgid "Enable daily backup"
343
  msgstr "Abilita backup giornaliero"
344
 
345
- #: wp/transposh_admin.php:616
346
  #@ transposh
347
  msgid "Enable live backup"
348
  msgstr "Abilita backup simultaneo"
349
 
350
- #: wp/transposh_admin.php:617
351
  #@ transposh
352
  msgid "Disable backup (Can be run manually by clicking the button below)"
353
  msgstr "Disabilita backup ( può sempre essere effettuato cliccando sul bottone in basso)"
354
 
355
- #: wp/transposh_admin.php:618
356
  #@ transposh
357
  msgid "Service Key:"
358
  msgstr "Service Key:"
359
 
360
- #: wp/transposh_admin.php:618
361
  #@ transposh
362
  msgid "How to restore?"
363
  msgstr "Come ripristinare?"
364
 
365
- #: wp/transposh_admin.php:620
366
  #@ transposh
367
  msgid "Do Backup Now"
368
  msgstr "Fai il backup adesso"
369
 
370
- #: wp/transposh_db.php:682
371
  #@ transposh
372
  msgid "Database stats"
373
  msgstr "Statistiche del Database"
374
 
375
- #: wp/transposh_db.php:687
376
  #, php-format
377
  #@ transposh
378
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
379
  msgstr "Totale di <strong style=\"color:red\">%s</strong> frasi tradotte."
380
 
381
- #: wp/transposh_db.php:694
382
  #, php-format
383
  #@ transposh
384
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
385
  msgstr "<strong>%1s</strong> ha <strong style=\"color:red\">%2s</strong> frasi tradotte manualmente."
386
 
387
- #: wp/transposh_db.php:697
388
  #@ transposh
389
  msgid "Recent activity"
390
  msgstr "Attività recenti"
391
 
392
- #: wp/transposh_db.php:702
393
  #, php-format
394
  #@ transposh
395
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
396
  msgstr "Il <strong>%1s</strong><br/>l'utente <strong>%2s</strong> ha tradotto<br/>\"<strong>%3s</strong>\"<br/>in <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
397
 
398
- #: wp/transposh_widget.php:82
399
  #@ transposh
400
  msgid "Transposh language selection widget"
401
  msgstr "Widget Selettore lingue di Transposh"
402
 
403
  #. TRANSLATORS: this will be the default widget title
404
- #: wp/transposh_widget.php:115
405
  #@ transposh
406
  msgid "Translation"
407
  msgstr "Traduzione"
408
 
409
- #: wp/transposh_widget.php:284
410
  #@ transposh
411
  msgid "Set as default language"
412
  msgstr "Configura come lingua predefinita"
413
 
414
- #: wp/transposh_widget.php:125
415
  #@ transposh
416
  msgid "Style:"
417
  msgstr "Stile:"
418
 
419
- #: wp/transposh_admin.php:556
420
  #@ transposh
421
  msgid "Show progress bar when a client triggers automatic translation"
422
  msgstr "Mostra una barra progressiva mentre il browser sta traducendo automaticamente"
423
 
424
- #: wp/transposh_admin.php:556
425
  #@ transposh
426
  msgid "Show progress bar"
427
  msgstr "Mostra barra progressiva"
428
 
429
- #: wp/transposh_admin.php:558
430
  #@ transposh
431
  msgid "Widget will allow setting this language as user default"
432
  msgstr "Il widget permetterà di scegliere questa lingua come predefinita per quell'utente"
433
 
434
- #: wp/transposh_admin.php:558
435
  #@ transposh
436
  msgid "Allow user to set current language as default"
437
  msgstr "Permette all'utente di scegliere la lingua attuale come predefinita"
438
 
439
- #: wp/transposh_admin.php:560
440
  #@ transposh
441
  msgid "Transposh logo will not appear on widget"
442
  msgstr "Il logo Transposh non apparirà nel widget"
443
 
444
- #: wp/transposh_admin.php:560
445
  #@ transposh
446
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
447
  msgstr "Rimuovere il logo Transposh (leggere attentamente <a href=\"http://transposh.org/logoterms\">i termini</a>)"
@@ -478,217 +403,543 @@ msgstr "Il Team Transposh"
478
  msgid "%VERSION%"
479
  msgstr "%VERSION%"
480
 
481
- #: wp/transposh_admin.php:411
482
  #@ transposh
483
  msgid "Language supported by apertium translate"
484
  msgstr "Lingua supportata da apertium translate"
485
 
486
- #: wp/transposh_admin.php:467
487
  #@ transposh
488
  msgid "Allow search of translated languages (and the original language)"
489
  msgstr "Permetti ricerca nelle lingue tradotte (e in quella originale)"
490
 
491
- #: wp/transposh_admin.php:580
492
  #@ transposh
493
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
494
  msgstr "Riscrivi le URLs per i motori di ricerca, e.g. (http://transposh.org/<strong>en</strong>). Richiede i permalinks abilitati."
495
 
496
- #: wp/transposh_admin.php:587
497
  #@ transposh
498
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
499
  msgstr "Inserire lo script di Transposh nel footer della pagina invece che nella header, rende le pagine veloci da caricare. Richiede che il tema abbia il supporto per il footer."
500
 
501
- #: wp/transposh_admin.php:593
502
  #@ transposh
503
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
504
  msgstr "Questo abilita il riconoscimento automatico della lingua usata dall'utente, come definito in ACCEPT_LANGUAGES del browser. Questo redireziona la prima pagina caricata in quella sessione, alla lingua rilevata."
505
 
506
- #: wp/transposh_admin.php:610
507
  #@ transposh
508
  msgid "Attempt to fix errors caused by previous versions - please backup first"
509
  msgstr "Tentativo di correggere gli errori causati dalla versione precedente - si prega di fare un backup, prima"
510
 
511
- #: wp/transposh_widget.php:314
512
  #@ transposh
513
  msgid "translation plugin for wordpress"
514
  msgstr "plugin di traduzione per woedpress"
515
 
516
- #: wp/transposh_widget.php:317
517
  #@ transposh
518
  msgid "wordpress translation plugin"
519
  msgstr "plugin di traduzione per wordpress"
520
 
521
- #: wp/transposh_widget.php:320
522
  #@ transposh
523
  msgid "translate your blog to 60+ languages"
524
  msgstr "traduce il tuo blog in 60+ lingue"
525
 
526
- #: wp/transposh_widget.php:323
527
  #@ transposh
528
  msgid "website crowdsourcing translation plugin"
529
  msgstr "plugin di traduzione comunitaria da parte degli utenti"
530
 
531
- #: wp/transposh_widget.php:326
532
  #@ transposh
533
  msgid "google translate and bing translate plugin for wordpress"
534
  msgstr "plugin per wordpress che usa i traduttori di Google e Bing"
535
 
536
- #: wp/transposh_admin.php:562
537
- #: wp/transposh_admin.php:563
538
  #@ transposh
539
  msgid "Edit interface (and progress bar) theme:"
540
  msgstr "Modifica l'interfaccia (e la barra) con il tema:"
541
 
542
- #: wp/transposh_admin.php:640
543
  #@ transposh
544
  msgid "Language"
545
- msgstr ""
546
 
547
  #. TRANSLATORS: this is what appears in the select box in dropdown subwidget
548
  #: widgets/dropdown/tpw_image_dropdown.php:45
549
  #@ transposh
550
  msgid "Select language"
551
- msgstr ""
552
 
553
- #: wp/transposh_admin.php:220
554
- #@ transposh
555
- msgid "Frontend settings"
556
- msgstr ""
557
-
558
- #: wp/transposh_admin.php:248
559
  #, php-format
560
  #@ transposh
561
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
562
- msgstr ""
563
 
564
- #: wp/transposh_admin.php:248
565
- #: wp/transposh_admin.php:252
566
  #@ transposh
567
  msgid "Check Transposh FAQs"
568
- msgstr ""
569
 
570
- #: wp/transposh_admin.php:252
571
  #@ transposh
572
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
573
- msgstr ""
574
 
575
- #: wp/transposh_admin.php:488
576
  #@ transposh
577
  msgid "Enable override for default locale"
578
- msgstr ""
579
 
580
- #: wp/transposh_admin.php:488
581
  #@ transposh
582
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
583
- msgstr ""
584
 
585
- #: wp/transposh_admin.php:508
586
  #@ transposh
587
  msgid "MSN API key"
588
- msgstr ""
589
 
590
- #: wp/transposh_admin.php:509
591
- #: wp/transposh_admin.php:515
592
- #: wp/transposh_admin.php:540
593
  #@ transposh
594
  msgid "API Key"
595
- msgstr ""
596
 
597
- #: wp/transposh_admin.php:514
598
  #@ transposh
599
  msgid "Google API key"
600
- msgstr ""
601
 
602
- #: wp/transposh_admin.php:598
603
  #@ transposh
604
  msgid "Allow collecting usage statistics"
605
- msgstr ""
606
 
607
- #: wp/transposh_admin.php:598
608
  #@ transposh
609
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
610
- msgstr ""
611
 
612
- #: wp/transposh_postpublish.php:52
613
  #@ transposh
614
  msgid "Set post language"
615
- msgstr ""
616
 
617
- #: wp/transposh_postpublish.php:53
618
- #@ transposh
619
- msgid "Set page language"
620
- msgstr ""
621
-
622
- #: wp/transposh_postpublish.php:198
623
  #@ default
624
  msgid "Default"
625
- msgstr ""
626
 
627
- #: wp/transposh_widget.php:120
628
  #@ transposh
629
  msgid "Title:"
630
- msgstr ""
631
 
632
- #: wp/transposh_widget.php:252
633
  #@ transposh
634
  msgid "Transposh subwidget was not loaded correctly"
635
- msgstr ""
636
 
637
  #. TRANSLATORS: no need to translate this string
638
- #: wp/transposh_widget.php:269
639
  #@ transposh
640
  msgid "title"
641
- msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
644
- #@ transposh
645
- msgid "Professional translation settings"
646
- msgstr ""
647
-
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
  msgid "Language supported by one hour translation"
651
- msgstr ""
652
 
653
- #: wp/transposh_admin.php:532
654
  #@ transposh
655
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
656
  msgstr "One Hour Translation fornisce traduzioni di alta qualità da/a ogni lingua ed è specializzata in alcuni campi specifici: localizzazione software, traduzioni tecniche, aziendali e legali."
657
 
658
- #: wp/transposh_admin.php:533
659
  #@ transposh
660
  msgid "One Hour Translation account ID"
661
- msgstr ""
662
 
663
- #: wp/transposh_admin.php:534
 
664
  #@ transposh
665
  msgid "Account ID"
666
- msgstr ""
667
 
668
- #: wp/transposh_admin.php:539
669
  #@ transposh
670
  msgid "One Hour Translation secret key"
671
- msgstr ""
672
 
673
- #: wp/transposh_admin.php:546
674
  #, php-format
675
  #@ transposh
676
- msgid "%d Phrases currently queued for next job in ~%d minutes"
677
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
678
 
679
- #: wp/transposh_admin.php:551
 
 
 
 
 
680
  #, php-format
681
  #@ transposh
682
- msgid "%d projects have been submitted and waiting for completion"
683
- msgstr ""
684
 
685
- #: wp/transposh_admin.php:636
686
  #@ transposh
687
- msgid "Unset"
688
- msgstr ""
689
 
 
690
  #: wp/transposh_admin.php:530
691
  #@ transposh
692
- msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2010-10-13 10:21+0000\n"
6
+ "PO-Revision-Date: 2012-12-15 01:15:11+0000\n"
7
+ "Last-Translator: Mac\n"
8
+ "Language-Team: MacItaly <macitaly@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-Language: Italian\n"
14
+ "X-Poedit-Country: Italy\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
+ "X-Poedit-Basepath: .\n"
18
  "X-Poedit-Bookmarks: \n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: transposh.php:921
23
+ #: wp/transposh_admin.php:183
24
  #@ default
25
+ #@ transposh
26
  msgid "Settings"
27
  msgstr "Configurazione"
28
 
32
  msgid "%s translated a phrase to %s with transposh:"
33
  msgstr "%s frase tradotta in %s con Transposh:"
34
 
35
+ #: wp/transposh_admin.php:170
36
  #@ transposh
37
  msgid "Transposh makes your blog translatable"
38
+ msgstr "Transposh rende traducibile il tuo sito web"
39
 
40
+ #: wp/transposh_admin.php:172
41
  #@ transposh
42
  msgid "Plugin homepage"
43
  msgstr "Homepage del plugin"
44
 
45
+ #: wp/transposh_admin.php:173
46
  #@ transposh
47
  msgid "Frequently asked questions"
48
  msgstr "Domande Frequenti (FAQ)"
49
 
50
+ #: wp/transposh_admin.php:195
51
+ #: wp/transposh_admin.php:202
52
+ #: wp/transposh_postpublish.php:55
53
+ #: wp/transposh_widget.php:86
54
+ #: wp/transposh_widget.php:315
 
 
 
 
 
 
55
  #@ transposh
56
  #@ default
57
  msgid "Transposh"
58
  msgstr "Transposh"
59
 
60
+ #: wp/transposh_admin.php:283
 
 
 
 
 
61
  #@ transposh
62
  msgid "Plugin news"
63
  msgstr "Novità del Plugin"
64
 
65
+ #: wp/transposh_admin.php:284
66
  #@ transposh
67
  msgid "Plugin stats"
68
  msgstr "Statistiche del Plugin"
69
 
70
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  #@ transposh
 
 
 
 
 
72
  msgid "Save Changes"
73
  msgstr "Salva modifiche"
74
 
75
+ #: wp/transposh_admin.php:652
76
  #@ transposh
77
  msgid "Problems?"
78
  msgstr "Problemi?"
79
 
80
+ #: wp/transposh_admin.php:615
 
 
 
 
 
81
  #@ transposh
82
  msgid "Suggest a Feature"
83
  msgstr "Suggerisci una funzione"
84
 
85
+ #: wp/transposh_admin.php:616
86
  #@ transposh
87
  msgid "Report a Bug"
88
  msgstr "Segnala un bug"
89
 
90
+ #: wp/transposh_admin.php:559
91
  #@ transposh
92
  msgid "Translate by clicking the button below"
93
  msgstr "Traduci cliccando sul bottone in basso"
94
 
95
+ #: wp/transposh_admin.php:561
96
  #@ transposh
97
  msgid "Translate All Now"
98
  msgstr "Traduci tutto ora"
99
 
100
+ #: wp/transposh_admin.php:364
101
  #@ transposh
102
  msgid "Default Language (drag another language here to make it default)"
103
  msgstr "Lingua predefinita (trascina qui un'altra lingua per renderla predefinita)"
104
 
105
+ #: wp/transposh_admin.php:372
106
  #@ transposh
107
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
108
  msgstr "Lingue disponibili (Clicca per modificarne l'attivazione - Trascina per modificarne l'ordine nel widget)"
109
 
110
+ #: wp/transposh_admin.php:384
111
  #@ transposh
112
  msgid "Language supported by google translate"
113
  msgstr "Lingue supportate da Google Translate"
114
 
115
+ #: wp/transposh_admin.php:386
116
  #@ transposh
117
  msgid "Language supported by bing translate"
118
  msgstr "Lingue supportate da Bing Translate"
119
 
120
+ #: wp/transposh_admin.php:392
121
  #@ transposh
122
  msgid "Language is written from right to left"
123
  msgstr "Lingua scritta da destra a sinistra"
124
 
125
+ #: wp/transposh_admin.php:397
126
  #@ transposh
127
  msgid "Display options:"
128
  msgstr "Mostra opzioni:"
129
 
130
+ #: wp/transposh_admin.php:398
131
  #@ transposh
132
  msgid "Toggle names of languages between English and Original"
133
  msgstr "Inverti nome della lingua tra Inglese ed Originale"
134
 
135
+ #: wp/transposh_admin.php:399
136
  #@ transposh
137
  msgid "Make all languages active"
138
  msgstr "Attiva tutte le lingue"
139
 
140
+ #: wp/transposh_admin.php:400
141
  #@ transposh
142
  msgid "Sort by language name"
143
  msgstr "Elenca per nome della lingua"
144
 
145
+ #: wp/transposh_admin.php:401
146
  #@ transposh
147
  msgid "Sort by lSO code"
148
  msgstr "Elenca per codice ISO"
149
 
150
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  #@ transposh
152
  msgid "Who can translate ?"
153
  msgstr "Chi può tradurre?"
154
 
155
+ #: wp/transposh_admin.php:419
156
  #@ transposh
157
  msgid "Anonymous"
158
  msgstr "Anonimi"
159
 
160
+ #: wp/transposh_admin.php:421
161
  #@ transposh
162
  msgid "Enable default language translation"
163
  msgstr "Abilita traduzione della lingua predefinita"
164
 
165
+ #: wp/transposh_admin.php:422
166
  #@ transposh
167
  msgid "Allow translation of default language - useful for sites with more than one major language"
168
  msgstr "Permetti traduzione della lingua predefinita - utile per siti con più di una lingua principale"
169
 
170
+ #: wp/transposh_admin.php:423
171
  #@ transposh
172
  msgid "Enable search in translated languages"
173
  msgstr "Abilita ricerca nelle lingue tradotte"
174
 
175
+ #: wp/transposh_admin.php:518
176
  #@ transposh
177
  msgid "Enable url translation"
178
  msgstr "Abilita traduzione delle URL"
179
 
180
+ #: wp/transposh_admin.php:518
 
181
  #@ transposh
182
  msgid "experimental"
183
  msgstr "sperimentale"
184
 
185
+ #: wp/transposh_admin.php:518
186
  #@ transposh
187
  msgid "Allow translation of permalinks and urls"
188
  msgstr "Permetti la traduzione dei permalinks e delle URL"
189
 
190
+ #: wp/transposh_admin.php:425
191
  #@ transposh
192
  msgid "Enable gettext integration"
193
  msgstr "Abilita la traduzione gettext"
194
 
195
+ #: wp/transposh_admin.php:426
196
  #@ transposh
197
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
198
  msgstr "Abilita l'integrazione di Transposh con l'interfaccia gettext esistente (.po/mo files)"
199
 
200
+ #: wp/transposh_admin.php:460
201
  #@ transposh
202
  msgid "Enable automatic translation"
203
  msgstr "Abilita la traduzione automatica"
204
 
205
+ #: wp/transposh_admin.php:461
206
  #@ transposh
207
  msgid "Allow automatic translation of pages"
208
  msgstr "Permetti la traduzione automatica delle pagine"
209
 
210
+ #: wp/transposh_admin.php:462
211
  #@ transposh
212
  msgid "Enable automatic translation after posting"
213
  msgstr "Abilita la traduzione automatica dopo la pubblicazione"
214
 
215
+ #: wp/transposh_admin.php:463
216
  #@ transposh
217
  msgid "Do automatic translation immediately after a post has been published"
218
  msgstr "Traduci immediatamente dopo che un articolo è stato pubblicato"
219
 
220
+ #: wp/transposh_admin.php:470
221
  #@ transposh
222
  msgid "Select preferred auto translation engine"
223
  msgstr "Seleziona il sistema di traduzione automatica preferito"
224
 
225
+ #: wp/transposh_admin.php:471
226
  #@ transposh
227
  msgid "Translation engine:"
228
  msgstr "Traduttore automatico:"
229
 
230
+ #: wp/transposh_admin.php:472
231
  #@ transposh
232
  msgid "Google"
233
  msgstr "Google"
234
 
235
+ #: wp/transposh_admin.php:473
236
  #@ transposh
237
  msgid "Bing"
238
  msgstr "Bing"
239
 
240
+ #: wp/transposh_admin.php:433
241
  #@ transposh
242
  msgid "Rewrite URLs"
243
  msgstr "Riscrivi URLs"
244
 
245
+ #: wp/transposh_admin.php:437
246
  #@ transposh
247
  msgid "Add scripts to footer"
248
  msgstr "Aggiungi gli scripts nel footer"
249
 
250
+ #: wp/transposh_admin.php:440
251
  #@ transposh
252
  msgid "Auto detect language for users"
253
  msgstr "Auto rilevamento della lingua degli utenti"
254
 
255
+ #: wp/transposh_admin.php:554
256
  #@ transposh
257
  msgid "Delete all automated translations"
258
  msgstr "Cancella tutte le traduzioni automatiche"
259
 
260
+ #: wp/transposh_admin.php:555
261
  #@ transposh
262
  msgid "Delete automated translations older than 14 days"
263
  msgstr "Cancella le traduzioni automatiche più vecchie di 14 giorni"
264
 
265
+ #: wp/transposh_admin.php:451
 
 
 
 
 
266
  #@ transposh
267
  msgid "Enable daily backup"
268
  msgstr "Abilita backup giornaliero"
269
 
270
+ #: wp/transposh_admin.php:452
271
  #@ transposh
272
  msgid "Enable live backup"
273
  msgstr "Abilita backup simultaneo"
274
 
275
+ #: wp/transposh_admin.php:453
276
  #@ transposh
277
  msgid "Disable backup (Can be run manually by clicking the button below)"
278
  msgstr "Disabilita backup ( può sempre essere effettuato cliccando sul bottone in basso)"
279
 
280
+ #: wp/transposh_admin.php:454
281
  #@ transposh
282
  msgid "Service Key:"
283
  msgstr "Service Key:"
284
 
285
+ #: wp/transposh_admin.php:454
286
  #@ transposh
287
  msgid "How to restore?"
288
  msgstr "Come ripristinare?"
289
 
290
+ #: wp/transposh_admin.php:548
291
  #@ transposh
292
  msgid "Do Backup Now"
293
  msgstr "Fai il backup adesso"
294
 
295
+ #: wp/transposh_db.php:684
296
  #@ transposh
297
  msgid "Database stats"
298
  msgstr "Statistiche del Database"
299
 
300
+ #: wp/transposh_db.php:689
301
  #, php-format
302
  #@ transposh
303
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
304
  msgstr "Totale di <strong style=\"color:red\">%s</strong> frasi tradotte."
305
 
306
+ #: wp/transposh_db.php:696
307
  #, php-format
308
  #@ transposh
309
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
310
  msgstr "<strong>%1s</strong> ha <strong style=\"color:red\">%2s</strong> frasi tradotte manualmente."
311
 
312
+ #: wp/transposh_db.php:699
313
  #@ transposh
314
  msgid "Recent activity"
315
  msgstr "Attività recenti"
316
 
317
+ #: wp/transposh_db.php:704
318
  #, php-format
319
  #@ transposh
320
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
321
  msgstr "Il <strong>%1s</strong><br/>l'utente <strong>%2s</strong> ha tradotto<br/>\"<strong>%3s</strong>\"<br/>in <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
322
 
323
+ #: wp/transposh_widget.php:84
324
  #@ transposh
325
  msgid "Transposh language selection widget"
326
  msgstr "Widget Selettore lingue di Transposh"
327
 
328
  #. TRANSLATORS: this will be the default widget title
329
+ #: wp/transposh_widget.php:119
330
  #@ transposh
331
  msgid "Translation"
332
  msgstr "Traduzione"
333
 
334
+ #: wp/transposh_widget.php:288
335
  #@ transposh
336
  msgid "Set as default language"
337
  msgstr "Configura come lingua predefinita"
338
 
339
+ #: wp/transposh_widget.php:129
340
  #@ transposh
341
  msgid "Style:"
342
  msgstr "Stile:"
343
 
344
+ #: wp/transposh_admin.php:506
345
  #@ transposh
346
  msgid "Show progress bar when a client triggers automatic translation"
347
  msgstr "Mostra una barra progressiva mentre il browser sta traducendo automaticamente"
348
 
349
+ #: wp/transposh_admin.php:505
350
  #@ transposh
351
  msgid "Show progress bar"
352
  msgstr "Mostra barra progressiva"
353
 
354
+ #: wp/transposh_admin.php:509
355
  #@ transposh
356
  msgid "Widget will allow setting this language as user default"
357
  msgstr "Il widget permetterà di scegliere questa lingua come predefinita per quell'utente"
358
 
359
+ #: wp/transposh_admin.php:508
360
  #@ transposh
361
  msgid "Allow user to set current language as default"
362
  msgstr "Permette all'utente di scegliere la lingua attuale come predefinita"
363
 
364
+ #: wp/transposh_admin.php:512
365
  #@ transposh
366
  msgid "Transposh logo will not appear on widget"
367
  msgstr "Il logo Transposh non apparirà nel widget"
368
 
369
+ #: wp/transposh_admin.php:511
370
  #@ transposh
371
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
372
  msgstr "Rimuovere il logo Transposh (leggere attentamente <a href=\"http://transposh.org/logoterms\">i termini</a>)"
403
  msgid "%VERSION%"
404
  msgstr "%VERSION%"
405
 
406
+ #: wp/transposh_admin.php:388
407
  #@ transposh
408
  msgid "Language supported by apertium translate"
409
  msgstr "Lingua supportata da apertium translate"
410
 
411
+ #: wp/transposh_admin.php:424
412
  #@ transposh
413
  msgid "Allow search of translated languages (and the original language)"
414
  msgstr "Permetti ricerca nelle lingue tradotte (e in quella originale)"
415
 
416
+ #: wp/transposh_admin.php:436
417
  #@ transposh
418
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
419
  msgstr "Riscrivi le URLs per i motori di ricerca, e.g. (http://transposh.org/<strong>en</strong>). Richiede i permalinks abilitati."
420
 
421
+ #: wp/transposh_admin.php:439
422
  #@ transposh
423
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
424
  msgstr "Inserire lo script di Transposh nel footer della pagina invece che nella header, rende le pagine veloci da caricare. Richiede che il tema abbia il supporto per il footer."
425
 
426
+ #: wp/transposh_admin.php:442
427
  #@ transposh
428
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
429
  msgstr "Questo abilita il riconoscimento automatico della lingua usata dall'utente, come definito in ACCEPT_LANGUAGES del browser. Questo redireziona la prima pagina caricata in quella sessione, alla lingua rilevata."
430
 
431
+ #: wp/transposh_admin.php:556
432
  #@ transposh
433
  msgid "Attempt to fix errors caused by previous versions - please backup first"
434
  msgstr "Tentativo di correggere gli errori causati dalla versione precedente - si prega di fare un backup, prima"
435
 
436
+ #: wp/transposh_widget.php:318
437
  #@ transposh
438
  msgid "translation plugin for wordpress"
439
  msgstr "plugin di traduzione per woedpress"
440
 
441
+ #: wp/transposh_widget.php:321
442
  #@ transposh
443
  msgid "wordpress translation plugin"
444
  msgstr "plugin di traduzione per wordpress"
445
 
446
+ #: wp/transposh_widget.php:324
447
  #@ transposh
448
  msgid "translate your blog to 60+ languages"
449
  msgstr "traduce il tuo blog in 60+ lingue"
450
 
451
+ #: wp/transposh_widget.php:327
452
  #@ transposh
453
  msgid "website crowdsourcing translation plugin"
454
  msgstr "plugin di traduzione comunitaria da parte degli utenti"
455
 
456
+ #: wp/transposh_widget.php:330
457
  #@ transposh
458
  msgid "google translate and bing translate plugin for wordpress"
459
  msgstr "plugin per wordpress che usa i traduttori di Google e Bing"
460
 
461
+ #: wp/transposh_admin.php:514
 
462
  #@ transposh
463
  msgid "Edit interface (and progress bar) theme:"
464
  msgstr "Modifica l'interfaccia (e la barra) con il tema:"
465
 
466
+ #: wp/transposh_admin.php:759
467
  #@ transposh
468
  msgid "Language"
469
+ msgstr "Lingua"
470
 
471
  #. TRANSLATORS: this is what appears in the select box in dropdown subwidget
472
  #: widgets/dropdown/tpw_image_dropdown.php:45
473
  #@ transposh
474
  msgid "Select language"
475
+ msgstr "Seleziona lingua"
476
 
477
+ #: wp/transposh_admin.php:733
 
 
 
 
 
478
  #, php-format
479
  #@ transposh
480
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
481
+ msgstr "Il limite attuale della memoria impostata sul PHP è %s ed è basso, se si hanno problemai di pagine bianche è bene considerare di alzarlo."
482
 
483
+ #: wp/transposh_admin.php:733
484
+ #: wp/transposh_admin.php:737
485
  #@ transposh
486
  msgid "Check Transposh FAQs"
487
+ msgstr "Consulta le FAQ di Transposh"
488
 
489
+ #: wp/transposh_admin.php:737
490
  #@ transposh
491
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
492
+ msgstr "Non è stata rilevata una memoria cache supportata, installarne una migliorerà le prestazioni."
493
 
494
+ #: wp/transposh_admin.php:428
495
  #@ transposh
496
  msgid "Enable override for default locale"
497
+ msgstr "Abilita sovrascrittura per la lingua predefinita"
498
 
499
+ #: wp/transposh_admin.php:429
500
  #@ transposh
501
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
502
+ msgstr "Abilita la sovrascrittura della lingua predefinita nella variabile WP_LANG, anche nelle pagine in lingua originale (come ad esempio pagine non tradotte e pagine amministrazione)"
503
 
504
+ #: wp/transposh_admin.php:465
505
  #@ transposh
506
  msgid "MSN API key"
507
+ msgstr "MSN API Key"
508
 
509
+ #: wp/transposh_admin.php:466
510
+ #: wp/transposh_admin.php:469
 
511
  #@ transposh
512
  msgid "API Key"
513
+ msgstr "API Key"
514
 
515
+ #: wp/transposh_admin.php:468
516
  #@ transposh
517
  msgid "Google API key"
518
+ msgstr "Google API key"
519
 
520
+ #: wp/transposh_admin.php:443
521
  #@ transposh
522
  msgid "Allow collecting usage statistics"
523
+ msgstr "Permetti la raccolta di statistiche d'uso"
524
 
525
+ #: wp/transposh_admin.php:444
526
  #@ transposh
527
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
528
+ msgstr "Questa opzione abilita la raccolta di di statistiche per Transposh, che saranno usate per migliorare il prodotto."
529
 
530
+ #: wp/transposh_postpublish.php:57
531
  #@ transposh
532
  msgid "Set post language"
533
+ msgstr "Configura la lingua degli articoli"
534
 
535
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
536
  #@ default
537
  msgid "Default"
538
+ msgstr "Default"
539
 
540
+ #: wp/transposh_widget.php:124
541
  #@ transposh
542
  msgid "Title:"
543
+ msgstr "Titolo:"
544
 
545
+ #: wp/transposh_widget.php:256
546
  #@ transposh
547
  msgid "Transposh subwidget was not loaded correctly"
548
+ msgstr "Il subwidget di Transposh non è stato caricato correttamente"
549
 
550
  #. TRANSLATORS: no need to translate this string
551
+ #: wp/transposh_widget.php:273
552
  #@ transposh
553
  msgid "title"
554
+ msgstr "titolo"
555
 
556
+ #: wp/transposh_admin.php:390
 
 
 
 
 
557
  #@ transposh
558
  msgid "Language supported by one hour translation"
559
+ msgstr "Lingue supportate da One Hour Translation"
560
 
561
+ #: wp/transposh_admin.php:479
562
  #@ transposh
563
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
564
  msgstr "One Hour Translation fornisce traduzioni di alta qualità da/a ogni lingua ed è specializzata in alcuni campi specifici: localizzazione software, traduzioni tecniche, aziendali e legali."
565
 
566
+ #: wp/transposh_admin.php:483
567
  #@ transposh
568
  msgid "One Hour Translation account ID"
569
+ msgstr "One Hour Translation account ID"
570
 
571
+ #: wp/transposh_admin.php:484
572
+ #: wp/transposh_admin.php:488
573
  #@ transposh
574
  msgid "Account ID"
575
+ msgstr "Account ID"
576
 
577
+ #: wp/transposh_admin.php:487
578
  #@ transposh
579
  msgid "One Hour Translation secret key"
580
+ msgstr "One Hour Translation secret key"
581
 
582
+ #: wp/transposh_admin.php:499
583
  #, php-format
584
  #@ transposh
585
+ msgid "%d projects have been submitted and waiting for completion"
586
+ msgstr "%d progetti sono stati inviati ed in attesa di completamento"
587
+
588
+ #: wp/transposh_admin.php:755
589
+ #@ transposh
590
+ msgid "Unset"
591
+ msgstr "Togli"
592
+
593
+ #: wp/transposh_admin.php:477
594
+ #@ transposh
595
+ msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
596
+ msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, iè il più grande servizio di traduzione professionale online, con migliaia di clienti business, compresi il 57% delle aziende elencate su Fortune 500 e oltre 15000 traduttori sparsi per il mondo."
597
+
598
+ #: wp/transposh_admin.php:181
599
+ #@ transposh
600
+ msgid "Dashboard"
601
+ msgstr "Bacheca"
602
+
603
+ #: wp/transposh_admin.php:182
604
+ #@ transposh
605
+ msgid "Languages"
606
+ msgstr "Lingue"
607
+
608
+ #: wp/transposh_admin.php:184
609
+ #@ transposh
610
+ msgid "Translation Engines"
611
+ msgstr "Motori di traduzone"
612
+
613
+ #: wp/transposh_admin.php:185
614
+ #@ transposh
615
+ msgid "Widgets settings"
616
+ msgstr "Configurazione widgets"
617
+
618
+ #: wp/transposh_admin.php:186
619
+ #@ transposh
620
+ msgid "Advanced"
621
+ msgstr "Avanzate"
622
+
623
+ #: wp/transposh_admin.php:187
624
+ #@ transposh
625
+ msgid "Utilities"
626
+ msgstr "Utilità"
627
+
628
+ #: wp/transposh_admin.php:188
629
+ #@ transposh
630
+ msgid "About"
631
+ msgstr "Chi siamo"
632
+
633
+ #: wp/transposh_admin.php:189
634
+ #@ transposh
635
+ msgid "Support"
636
+ msgstr "Supporto"
637
+
638
+ #: wp/transposh_admin.php:171
639
+ #@ transposh
640
+ msgid "For further help and assistance, please look at the following resources:"
641
+ msgstr "Per ulteriore aiuto ed assistenza, si prega di consultare le seguenti risorse:"
642
+
643
+ #: wp/transposh_admin.php:174
644
+ #@ transposh
645
+ msgid "Development website"
646
+ msgstr "Sito di sviluppo"
647
+
648
+ #: wp/transposh_admin.php:278
649
+ #@ transposh
650
+ msgid "Transposh Help"
651
+ msgstr "Aiuto Transposh"
652
+
653
+ #: wp/transposh_admin.php:407
654
+ #@ transposh
655
+ msgid "Translation related settings"
656
+ msgstr "Configurazione delle traduzioni"
657
+
658
+ #: wp/transposh_admin.php:432
659
+ #@ transposh
660
+ msgid "General settings"
661
+ msgstr "Configurazione generale"
662
+
663
+ #: wp/transposh_admin.php:450
664
+ #@ transposh
665
+ msgid "Backup service settings"
666
+ msgstr "Configurazione backup"
667
+
668
+ #: wp/transposh_admin.php:459
669
+ #@ transposh
670
+ msgid "Automatic Translation Settings"
671
+ msgstr "Configurazione Traduzione automatica"
672
 
673
+ #: wp/transposh_admin.php:477
674
+ #@ transposh
675
+ msgid "Professional Translation Settings"
676
+ msgstr "Configurazione traduzione professionale"
677
+
678
+ #: wp/transposh_admin.php:494
679
  #, php-format
680
  #@ transposh
681
+ msgid "%d phrases currently queued for next job in ~%d minutes"
682
+ msgstr "%d frasi attualmente accodate per il prossimo lavoro in ~%d minuti"
683
 
684
+ #: wp/transposh_admin.php:520
685
  #@ transposh
686
+ msgid "Parser related settings"
687
+ msgstr "Decodificatore configurazioni"
688
 
689
+ #: wp/transposh_admin.php:521
690
  #: wp/transposh_admin.php:530
691
  #@ transposh
692
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
693
+ msgstr "Questo è estremamente pericoloso, distrufggerà le traduzioni attuali e può causare interruzioni al sito, procedere solo se si sa esattamente cosa si sta facendo."
694
+
695
+ #: wp/transposh_admin.php:522
696
+ #@ transposh
697
+ msgid "Disable punctuations break"
698
+ msgstr "Disabilita interruzione alla punteggiatura"
699
+
700
+ #: wp/transposh_admin.php:523
701
+ #@ transposh
702
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
703
+ msgstr "Il decodificatore non spezzerà il testo in frasi quando incontra punteggiatura come i punti"
704
+
705
+ #: wp/transposh_admin.php:524
706
+ #@ transposh
707
+ msgid "Disable numbers break"
708
+ msgstr "Disabilita interruzione ai numeri"
709
+
710
+ #: wp/transposh_admin.php:525
711
+ #@ transposh
712
+ msgid "The parser will not break text into phrases when encountering numbers"
713
+ msgstr "Il decodificatore non spezzerà il testo in frasi quando incontra dei numeri"
714
+
715
+ #: wp/transposh_admin.php:526
716
+ #@ transposh
717
+ msgid "Disable html entities break"
718
+ msgstr "Disabilita interruzioni quando incontra codice HTML"
719
+
720
+ #: wp/transposh_admin.php:527
721
+ #@ transposh
722
+ msgid "The parser will not break text into phrases when encountering html entities"
723
+ msgstr "Il decodificatore non spezzerà il testo in frasi quando incontra codice HTML"
724
+
725
+ #: wp/transposh_admin.php:529
726
+ #@ transposh
727
+ msgid "Debug settings"
728
+ msgstr "Configurazioni per il debug"
729
+
730
+ #: wp/transposh_admin.php:531
731
+ #@ transposh
732
+ msgid "Enable debugging"
733
+ msgstr "Abilita il debugging"
734
+
735
+ #: wp/transposh_admin.php:532
736
+ #@ transposh
737
+ msgid "Enable running of Transposh internal debug functions"
738
+ msgstr "Abilita il debugging interno di Transposh "
739
+
740
+ #: wp/transposh_admin.php:533
741
+ #@ transposh
742
+ msgid "Log file name"
743
+ msgstr "Nome del file di log"
744
+
745
+ #: wp/transposh_admin.php:534
746
+ #@ transposh
747
+ msgid "Level of logging"
748
+ msgstr "Livello di identificazione"
749
+
750
+ #: wp/transposh_admin.php:535
751
+ #@ transposh
752
+ msgid "Critical"
753
+ msgstr "Critico"
754
+
755
+ #: wp/transposh_admin.php:536
756
+ #@ transposh
757
+ msgid "Important"
758
+ msgstr "Importante"
759
+
760
+ #: wp/transposh_admin.php:537
761
+ #@ transposh
762
+ msgid "Warning"
763
+ msgstr "Avviso"
764
+
765
+ #: wp/transposh_admin.php:538
766
+ #@ transposh
767
+ msgid "Information"
768
+ msgstr "Informazione"
769
+
770
+ #: wp/transposh_admin.php:539
771
+ #@ transposh
772
+ msgid "Debug"
773
+ msgstr "Debug"
774
+
775
+ #: wp/transposh_admin.php:541
776
+ #, php-format
777
+ #@ transposh
778
+ msgid "Remote debug IP (Your current IP is %s)"
779
+ msgstr "Debugging IP remoto (il tuo IP attuale è %s)"
780
+
781
+ #: wp/transposh_admin.php:553
782
+ #@ transposh
783
+ msgid "Reset configuration to default (saves keys)"
784
+ msgstr "Ripristina configurazione predefinita (salva le chiavi)"
785
+
786
+ #: wp/transposh_admin.php:567
787
+ #@ transposh
788
+ msgid "About Transposh"
789
+ msgstr "Riguardo a Transposh"
790
+
791
+ #: wp/transposh_admin.php:568
792
+ #@ transposh
793
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
794
+ msgstr "Transposh è partito nel 2008 ed è dedicato a fornire una facile traduzione per i siti."
795
+
796
+ #: wp/transposh_admin.php:570
797
+ #@ transposh
798
+ msgid "Learn more about us in the following online presenses"
799
+ msgstr "Puoi conoscerci meglio visitando i seguenti siti"
800
+
801
+ #: wp/transposh_admin.php:573
802
+ #@ transposh
803
+ msgid "Our website"
804
+ msgstr "Il nostro sito web"
805
+
806
+ #: wp/transposh_admin.php:575
807
+ #@ transposh
808
+ msgid "Our blog"
809
+ msgstr "Il nostro Blog"
810
+
811
+ #: wp/transposh_admin.php:577
812
+ #@ transposh
813
+ msgid "Our twitter account (feel free to follow!)"
814
+ msgstr "Il nostro account Twitter (seguici)"
815
+
816
+ #: wp/transposh_admin.php:579
817
+ #@ transposh
818
+ msgid "Our facebook page (feel free to like!)"
819
+ msgstr "La nostra pagina Facebook (puoi cliccare su Mi Piace)"
820
+
821
+ #: wp/transposh_admin.php:581
822
+ #@ transposh
823
+ msgid "Our google plus page (add us to your circles!)"
824
+ msgstr "La nostra pagina Google + (aggiungi alle tue cerchie)"
825
+
826
+ #: wp/transposh_admin.php:583
827
+ #@ transposh
828
+ msgid "Our youtube channel"
829
+ msgstr "Il nostro canale YouTube"
830
+
831
+ #: wp/transposh_admin.php:592
832
+ #@ transposh
833
+ msgid "Transposh support"
834
+ msgstr "Supporto Transposh"
835
+
836
+ #: wp/transposh_admin.php:592
837
+ #@ transposh
838
+ msgid "Have you encountered any problem with our plugin and need our help?"
839
+ msgstr "Hai avuto problemi con il nostro plugin e ti serve aiuto?"
840
+
841
+ #: wp/transposh_admin.php:593
842
+ #@ transposh
843
+ msgid "Do you need to ask us any question?"
844
+ msgstr "Hai domande da porre?"
845
+
846
+ #: wp/transposh_admin.php:594
847
+ #@ transposh
848
+ msgid "You have two options:"
849
+ msgstr "Hai le seguenti due opzioni:"
850
+
851
+ #: wp/transposh_admin.php:596
852
+ #@ transposh
853
+ msgid "Our free support"
854
+ msgstr "Il nostro supporto gratuito"
855
+
856
+ #: wp/transposh_admin.php:598
857
+ #@ transposh
858
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
859
+ msgstr "Ci sono molti canali con i quali raggiungerci e facciamo del nostro meglio per aiutare al più presto possibile"
860
+
861
+ #: wp/transposh_admin.php:599
862
+ #@ transposh
863
+ msgid "You can contact us through our contact form on our web site"
864
+ msgstr "Puoi contattarci con il modulo di contatto nel nostro sito web"
865
+
866
+ #: wp/transposh_admin.php:600
867
+ #@ transposh
868
+ msgid "Create a ticket for us if you have found any bugs"
869
+ msgstr "Crea un ticket se hai scoperto qualsiasi bug"
870
+
871
+ #: wp/transposh_admin.php:601
872
+ #@ transposh
873
+ msgid "Reach us via different forums:"
874
+ msgstr "Raggiungici su diversi forum:"
875
+
876
+ #: wp/transposh_admin.php:604
877
+ #@ transposh
878
+ msgid "Our support forum on wordpress.org"
879
+ msgstr "Il nostro forum di supporto su wordpress.org"
880
+
881
+ #: wp/transposh_admin.php:606
882
+ #@ transposh
883
+ msgid "Our internal development site, with wiki and tickets"
884
+ msgstr "Il nostro sito di sviluppo, con il wiki ed i tickets"
885
+
886
+ #: wp/transposh_admin.php:608
887
+ #@ transposh
888
+ msgid "Our facebook page"
889
+ msgstr "La nostra pagina Facebook"
890
+
891
+ #: wp/transposh_admin.php:610
892
+ #@ transposh
893
+ msgid "Our google plus page"
894
+ msgstr "La nostra pagina Google +"
895
+
896
+ #: wp/transposh_admin.php:612
897
+ #@ transposh
898
+ msgid "Contact us directly via:"
899
+ msgstr "Contattaci direttamente con:"
900
+
901
+ #: wp/transposh_admin.php:614
902
+ #@ transposh
903
+ msgid "Our contact form"
904
+ msgstr "Il nostro modulo di contatto"
905
+
906
+ #: wp/transposh_admin.php:620
907
+ #@ transposh
908
+ msgid "Professional support option"
909
+ msgstr "Supporto professionale opzionale"
910
+
911
+ #: wp/transposh_admin.php:622
912
+ #@ transposh
913
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
914
+ msgstr "Per il piccolo importo di $99 noi prenderemo prioritariamente in carico la tua richiesta. Con prioritariamente intendiamo che il tuo problema sarà al top delle nostre priorità e lo risolveremo nel più breve tempo possibile"
915
+
916
+ #: wp/transposh_admin.php:623
917
+ #@ transposh
918
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
919
+ msgstr "Questo include l'aiuto per vari bugs, eventuali conflitti con il tema ed i plugins o semplicemente per spiegarti dove sta il bottone ON"
920
+
921
+ #: wp/transposh_admin.php:624
922
+ #@ transposh
923
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
924
+ msgstr "Garanzia soddisfatti o rimborsati! Se il tuo problema non sarà risolto o semplicemente non sarai completamente soddifatto dei nostri servizi, riaccrediteremo su Paypal la somma da te versata, immediatamente dietro tua richiesta (fino a quando Paypal lo permette, non richiedercela dopo tre anni!)"
925
+
926
+ #: wp/transposh_admin.php:625
927
+ #@ transposh
928
+ msgid "So hit the following button. Thanks!"
929
+ msgstr "Quindi se ti serve un supporto rapido e professionale clicca sul bottone qui sotto. Grazie!"
930
+
931
+ #: wp/transposh_admin.php:635
932
+ #@ transposh
933
+ msgid "Donations"
934
+ msgstr "Donazioni"
935
+
936
+ #: wp/transposh_admin.php:637
937
+ #@ transposh
938
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
939
+ msgstr "Se vuoi semplicemente mostrare che ci hai a cuore, questo è il bottone per te ma, per favore, pensaci bene prima di usarlo. Ci faresti felici anche solo se tu facessi qualcosa di carino per qualcuno nella tua zona, contribuissi ad un istituto di carità locale e ce lo facessi sapere :)"
940
+
941
+ #: wp/transposh_admin.php:747
942
+ #@ transposh
943
+ msgid "Hide Notice"
944
  msgstr ""
945
 
langs/transposh-nl_NL.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
- "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
7
  "Last-Translator: Roland Nieuwendijk <blog@imagitect.nl>\n"
8
  "Language-Team: Dutch <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
@@ -19,29 +19,29 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: wp/transposh_db.php:682
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Database statistieken"
26
 
27
- #: wp/transposh_db.php:687
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Totaal van <strong style=\"color:red\">%s</strong> vertaalde zinsneden."
32
 
33
- #: wp/transposh_db.php:694
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> heeft <strong style=\"color:red\">%2s</strong> aangepaste vertalingen."
38
 
39
- #: wp/transposh_db.php:697
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Recente activiteiten"
43
 
44
- #: wp/transposh_db.php:702
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
@@ -53,425 +53,345 @@ msgstr "Op <strong>%1s</strong><br/>vertaalde user <strong>%2s</strong><br/>\"<s
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr "%s vertaalde een zinsnede naar %s met transposh:"
55
 
56
- #: wp/transposh_admin.php:175
57
- #: wp/transposh_admin.php:243
58
- #: wp/transposh_postpublish.php:50
59
- #: wp/transposh_postpublish.php:51
60
- #: wp/transposh_widget.php:84
61
- #: wp/transposh_widget.php:311
62
  #@ transposh
63
  #@ default
64
  msgid "Transposh"
65
  msgstr "Transposh"
66
 
67
- #: wp/transposh_admin.php:165
68
  #@ transposh
69
  msgid "Transposh makes your blog translatable"
70
  msgstr "Transposh maakt je blog vertaalbaar"
71
 
72
- #: wp/transposh_admin.php:166
73
  #@ transposh
74
  msgid "Plugin homepage"
75
  msgstr "Plugin homepage"
76
 
77
- #: wp/transposh_admin.php:167
78
  #@ transposh
79
  msgid "Frequently asked questions"
80
  msgstr "Vaak gestelde vragen"
81
 
82
- #: wp/transposh_admin.php:175
83
- #@ transposh
84
- msgid "Transposh control center"
85
- msgstr "Transposh controle centrum"
86
-
87
- #: wp/transposh_admin.php:212
88
- #@ transposh
89
- msgid "About this plugin"
90
- msgstr "Over deze plugin"
91
-
92
- #: wp/transposh_admin.php:213
93
  #@ transposh
94
  msgid "Plugin news"
95
  msgstr "Plugin nieuws"
96
 
97
- #: wp/transposh_admin.php:214
98
  #@ transposh
99
  msgid "Plugin stats"
100
  msgstr "Plugin stats"
101
 
102
- #: wp/transposh_admin.php:215
103
- #@ transposh
104
- msgid "Translate all"
105
- msgstr "Vertaal alles"
106
-
107
- #: wp/transposh_admin.php:216
108
- #@ transposh
109
- msgid "Supported languages"
110
- msgstr "Ondersteunde talen"
111
-
112
- #: wp/transposh_admin.php:217
113
- #@ transposh
114
- msgid "Translation settings"
115
- msgstr "Vertaalinstellingen"
116
-
117
- #: wp/transposh_admin.php:218
118
- #@ transposh
119
- msgid "Automatic translation settings"
120
- msgstr "Automatische vertaalinstellingen"
121
-
122
- #: wp/transposh_admin.php:221
123
- #@ transposh
124
- msgid "Generic settings"
125
- msgstr "Algemene instellingen"
126
-
127
- #: wp/transposh_admin.php:222
128
- #@ transposh
129
- msgid "Database maintenance"
130
- msgstr "Database onderhoud"
131
-
132
- #: wp/transposh_admin.php:237
133
  #@ transposh
134
- msgid "Transposh community features"
135
- msgstr "Transposh community functies"
136
-
137
- #: wp/transposh_admin.php:273
138
- #@ default
139
  msgid "Save Changes"
140
  msgstr "Bewaar aanpassingen"
141
 
142
- #: wp/transposh_admin.php:297
143
  #@ transposh
144
  msgid "Problems?"
145
  msgstr "Problemen?"
146
 
147
- #: wp/transposh_admin.php:313
148
- #@ transposh
149
- msgid "Plugin Homepage"
150
- msgstr "Plugin Homepage"
151
-
152
- #: wp/transposh_admin.php:314
153
  #@ transposh
154
  msgid "Suggest a Feature"
155
  msgstr "Suggereer nieuwe Functie"
156
 
157
- #: wp/transposh_admin.php:316
158
  #@ transposh
159
  msgid "Report a Bug"
160
  msgstr "Meld een Bug"
161
 
162
- #: wp/transposh_admin.php:333
163
  #@ transposh
164
  msgid "Translate by clicking the button below"
165
  msgstr "Klik onderstaande buttons om te vertalen"
166
 
167
- #: wp/transposh_admin.php:335
168
  #@ transposh
169
  msgid "Translate All Now"
170
  msgstr "Vertaal nu alles"
171
 
172
- #: wp/transposh_admin.php:390
173
  #@ transposh
174
  msgid "Default Language (drag another language here to make it default)"
175
  msgstr "Standaardtaal (sleep andere taal hierheen om standaard te maken)"
176
 
177
- #: wp/transposh_admin.php:397
178
  #@ transposh
179
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
180
  msgstr "Beschikbare Talen (Click om aan-uit te zetten - Sleep voor volgorde in de widget)"
181
 
182
- #: wp/transposh_admin.php:407
183
  #@ transposh
184
  msgid "Language supported by google translate"
185
  msgstr "Taal ondersteund door google translate"
186
 
187
- #: wp/transposh_admin.php:409
188
  #@ transposh
189
  msgid "Language supported by bing translate"
190
  msgstr "Taal ondersteund door bing translate"
191
 
192
- #: wp/transposh_admin.php:411
193
  #@ transposh
194
  msgid "Language supported by apertium translate"
195
  msgstr "Taal ondersteund door apertium translate"
196
 
197
- #: wp/transposh_admin.php:415
198
  #@ transposh
199
  msgid "Language is written from right to left"
200
  msgstr "Taal wordt van rechts naar links geschreven"
201
 
202
- #: wp/transposh_admin.php:420
203
  #@ transposh
204
  msgid "Display options:"
205
  msgstr "Display opties:"
206
 
207
- #: wp/transposh_admin.php:421
208
  #@ transposh
209
  msgid "Toggle names of languages between English and Original"
210
  msgstr "Wissel taalnamen tussen Engels en Orgineel"
211
 
212
- #: wp/transposh_admin.php:422
213
  #@ transposh
214
  msgid "Make all languages active"
215
  msgstr "Ze alle talen actief"
216
 
217
- #: wp/transposh_admin.php:423
218
  #@ transposh
219
  msgid "Sort by language name"
220
  msgstr "Sorteer op taalnaam"
221
 
222
- #: wp/transposh_admin.php:424
223
  #@ transposh
224
  msgid "Sort by lSO code"
225
  msgstr "Sorteer op lSO code"
226
 
227
- #: wp/transposh_admin.php:425
228
- #@ transposh
229
- msgid "Legend:"
230
- msgstr "Legenda:"
231
-
232
- #: wp/transposh_admin.php:425
233
- #@ transposh
234
- msgid "Green - active"
235
- msgstr "Groen - actief"
236
-
237
- #: wp/transposh_admin.php:425
238
- #@ transposh
239
- msgid "Yellow - translateable (only translators will see this language)"
240
- msgstr "Geel - vertaalbaar (alleen vertalers zien deze taal)"
241
-
242
- #: wp/transposh_admin.php:425
243
- #@ transposh
244
- msgid "blank - inactive"
245
- msgstr "Wit - niet actief"
246
-
247
- #: wp/transposh_admin.php:447
248
  #@ transposh
249
  msgid "Who can translate ?"
250
  msgstr "Wie kan er vertalen?"
251
 
252
- #: wp/transposh_admin.php:454
253
  #@ transposh
254
  msgid "Anonymous"
255
  msgstr "Anonymous"
256
 
257
- #: wp/transposh_admin.php:460
258
  #@ transposh
259
  msgid "Enable default language translation"
260
  msgstr "Vertaal de standaard taal"
261
 
262
- #: wp/transposh_admin.php:460
263
  #@ transposh
264
  msgid "Allow translation of default language - useful for sites with more than one major language"
265
  msgstr "Vertaal de standaard taal - handig voor blogs met meerdere hoofdtalen"
266
 
267
- #: wp/transposh_admin.php:467
268
  #@ transposh
269
  msgid "Enable search in translated languages"
270
  msgstr "Sta zoeken in vertalingen toe"
271
 
272
- #: wp/transposh_admin.php:474
273
  #@ transposh
274
  msgid "Enable url translation"
275
  msgstr "Activeer omzetten url"
276
 
277
- #: wp/transposh_admin.php:474
278
- #: wp/transposh_admin.php:481
279
  #@ transposh
280
  msgid "experimental"
281
  msgstr "experimenteel"
282
 
283
- #: wp/transposh_admin.php:474
284
  #@ transposh
285
  msgid "Allow translation of permalinks and urls"
286
  msgstr "Activeer vertaling van permalinks en urls"
287
 
288
- #: wp/transposh_admin.php:481
289
  #@ transposh
290
  msgid "Enable gettext integration"
291
  msgstr "Activeer gettext integratie"
292
 
293
- #: wp/transposh_admin.php:481
294
  #@ transposh
295
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
296
  msgstr "Activeer integratie van Transposh met bestaande gettext interface (.po/.mo bestanden)"
297
 
298
- #: wp/transposh_admin.php:497
299
  #@ transposh
300
  msgid "Enable automatic translation"
301
  msgstr "Activeer automatische vertaling"
302
 
303
- #: wp/transposh_admin.php:497
304
  #@ transposh
305
  msgid "Allow automatic translation of pages"
306
  msgstr "Activeer automatische vertaling van pagina's"
307
 
308
- #: wp/transposh_admin.php:503
309
  #@ transposh
310
  msgid "Enable automatic translation after posting"
311
  msgstr "Activeer automatische vertaling na het posten"
312
 
313
- #: wp/transposh_admin.php:503
314
  #@ transposh
315
  msgid "Do automatic translation immediately after a post has been published"
316
  msgstr "Activeer automatische vertaling onmiddellijk na het publiceren van een post"
317
 
318
- #: wp/transposh_admin.php:520
319
  #@ transposh
320
  msgid "Select preferred auto translation engine"
321
  msgstr "Selecteer favoriete automatische vertalingsengine"
322
 
323
- #: wp/transposh_admin.php:521
324
  #@ transposh
325
  msgid "Translation engine:"
326
  msgstr "Vertalingsengine:"
327
 
328
- #: wp/transposh_admin.php:523
329
  #@ transposh
330
  msgid "Google"
331
  msgstr "Google"
332
 
333
- #: wp/transposh_admin.php:524
334
  #@ transposh
335
  msgid "Bing"
336
  msgstr "Bing"
337
 
338
- #: wp/transposh_admin.php:578
339
  #@ transposh
340
  msgid "Rewrite URLs"
341
  msgstr "Herschrijf URLs"
342
 
343
- #: wp/transposh_admin.php:586
344
  #@ transposh
345
  msgid "Add scripts to footer"
346
  msgstr "Voeg scripts toe aan de footer"
347
 
348
- #: wp/transposh_admin.php:592
349
  #@ transposh
350
  msgid "Auto detect language for users"
351
  msgstr "Detecteer taal van gebruiker"
352
 
353
- #: wp/transposh_admin.php:608
354
  #@ transposh
355
  msgid "Delete all automated translations"
356
  msgstr "Verwijder alle automatische vertalingen"
357
 
358
- #: wp/transposh_admin.php:609
359
  #@ transposh
360
  msgid "Delete automated translations older than 14 days"
361
  msgstr "Verwijder automatische vertalingen ouder dan 14 dagen"
362
 
363
- #: wp/transposh_admin.php:610
364
  #@ transposh
365
  msgid "Attempt to fix errors caused by previous versions - please backup first"
366
  msgstr "Probeer fouten te herstellen ontstaan door eerdere versies - maak eerst een backup"
367
 
368
- #: wp/transposh_admin.php:614
369
- #@ transposh
370
- msgid "Backup service for human translation"
371
- msgstr "Backup service voor eigen vertalingen"
372
-
373
- #: wp/transposh_admin.php:615
374
  #@ transposh
375
  msgid "Enable daily backup"
376
  msgstr "Activeer dagelijkse backup"
377
 
378
- #: wp/transposh_admin.php:616
379
  #@ transposh
380
  msgid "Enable live backup"
381
  msgstr "Activeer onmiddellijke backup"
382
 
383
- #: wp/transposh_admin.php:617
384
  #@ transposh
385
  msgid "Disable backup (Can be run manually by clicking the button below)"
386
  msgstr "Zet backupfuncties uit (Kan met de hand gedaan worden door het klikken van onderstaande button)"
387
 
388
- #: wp/transposh_admin.php:618
389
  #@ transposh
390
  msgid "Service Key:"
391
  msgstr "Service Key:"
392
 
393
- #: wp/transposh_admin.php:618
394
  #@ transposh
395
  msgid "How to restore?"
396
  msgstr "Een backup terugzetten?"
397
 
398
- #: wp/transposh_admin.php:620
399
  #@ transposh
400
  msgid "Do Backup Now"
401
  msgstr "Maak nu Backup"
402
 
403
- #: wp/transposh_widget.php:82
404
  #@ transposh
405
  msgid "Transposh language selection widget"
406
  msgstr "Transposh taalkeuze widget"
407
 
408
- #: wp/transposh_widget.php:284
409
  #@ transposh
410
  msgid "Set as default language"
411
  msgstr "Maak dit de standaardtaal"
412
 
413
- #: wp/transposh_widget.php:314
414
  #@ transposh
415
  msgid "translation plugin for wordpress"
416
  msgstr "Vertaalplugin voor Wordpress"
417
 
418
- #: wp/transposh_widget.php:317
419
  #@ transposh
420
  msgid "wordpress translation plugin"
421
  msgstr "Wordpress Vertaalplugin"
422
 
423
- #: wp/transposh_widget.php:320
424
  #@ transposh
425
  msgid "translate your blog to 60+ languages"
426
  msgstr "vertaal je blog in 60+ talen"
427
 
428
- #: wp/transposh_widget.php:323
429
  #@ transposh
430
  msgid "website crowdsourcing translation plugin"
431
  msgstr "website crowdsourcing vertaalplugin"
432
 
433
- #: wp/transposh_widget.php:326
434
  #@ transposh
435
  msgid "google translate and bing translate plugin for wordpress"
436
  msgstr "google translate en bing translate plugin voor wordpress"
437
 
438
- #: wp/transposh_widget.php:125
439
  #@ transposh
440
  msgid "Style:"
441
  msgstr "Stijl:"
442
 
443
- #: wp/transposh_admin.php:556
444
  #@ transposh
445
  msgid "Show progress bar when a client triggers automatic translation"
446
  msgstr "Laat de voortgangsbalk zien als de gebruiker een automatische vertaling activeert"
447
 
448
- #: wp/transposh_admin.php:556
449
  #@ transposh
450
  msgid "Show progress bar"
451
  msgstr "Laat voortgangsbalk zien"
452
 
453
- #: wp/transposh_admin.php:558
454
  #@ transposh
455
  msgid "Widget will allow setting this language as user default"
456
  msgstr "Widget staat toe om dit als standaardtaal in te stellen"
457
 
458
- #: wp/transposh_admin.php:558
459
  #@ transposh
460
  msgid "Allow user to set current language as default"
461
  msgstr "Sta gebruiker toe om huidige taal als standaard in te stellen"
462
 
463
- #: wp/transposh_admin.php:560
464
  #@ transposh
465
  msgid "Transposh logo will not appear on widget"
466
  msgstr "Transposh logo niet zichtbaar bij de widget"
467
 
468
- #: wp/transposh_admin.php:560
469
  #@ transposh
470
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
471
  msgstr "Verwijder transposh logo (zie <a href=\"http://transposh.org/logoterms\">voorwaarden</a>)"
472
 
473
- #: wp/transposh_admin.php:562
474
- #: wp/transposh_admin.php:563
475
  #@ transposh
476
  msgid "Edit interface (and progress bar) theme:"
477
  msgstr "Kies interface (en voortgangsbalk) thema:"
@@ -508,22 +428,24 @@ msgstr ""
508
  msgid "%VERSION%"
509
  msgstr ""
510
 
511
- #: transposh.php:908
 
512
  #@ default
 
513
  msgid "Settings"
514
  msgstr ""
515
 
516
- #: wp/transposh_admin.php:580
517
  #@ transposh
518
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
519
  msgstr ""
520
 
521
- #: wp/transposh_admin.php:587
522
  #@ transposh
523
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
524
  msgstr ""
525
 
526
- #: wp/transposh_admin.php:593
527
  #@ transposh
528
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
529
  msgstr ""
@@ -534,161 +456,483 @@ msgstr ""
534
  msgid "Select language"
535
  msgstr ""
536
 
537
- #: wp/transposh_admin.php:220
538
- #@ transposh
539
- msgid "Frontend settings"
540
- msgstr ""
541
-
542
- #: wp/transposh_admin.php:248
543
  #, php-format
544
  #@ transposh
545
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
546
  msgstr ""
547
 
548
- #: wp/transposh_admin.php:248
549
- #: wp/transposh_admin.php:252
550
  #@ transposh
551
  msgid "Check Transposh FAQs"
552
  msgstr ""
553
 
554
- #: wp/transposh_admin.php:252
555
  #@ transposh
556
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
557
  msgstr ""
558
 
559
- #: wp/transposh_admin.php:467
560
  #@ transposh
561
  msgid "Allow search of translated languages (and the original language)"
562
  msgstr ""
563
 
564
- #: wp/transposh_admin.php:488
565
  #@ transposh
566
  msgid "Enable override for default locale"
567
  msgstr ""
568
 
569
- #: wp/transposh_admin.php:488
570
  #@ transposh
571
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
572
  msgstr ""
573
 
574
- #: wp/transposh_admin.php:508
575
  #@ transposh
576
  msgid "MSN API key"
577
  msgstr ""
578
 
579
- #: wp/transposh_admin.php:509
580
- #: wp/transposh_admin.php:515
581
- #: wp/transposh_admin.php:540
582
  #@ transposh
583
  msgid "API Key"
584
  msgstr ""
585
 
586
- #: wp/transposh_admin.php:514
587
  #@ transposh
588
  msgid "Google API key"
589
  msgstr ""
590
 
591
- #: wp/transposh_admin.php:598
592
  #@ transposh
593
  msgid "Allow collecting usage statistics"
594
  msgstr ""
595
 
596
- #: wp/transposh_postpublish.php:52
597
  #@ transposh
598
  msgid "Set post language"
599
  msgstr ""
600
 
601
- #: wp/transposh_postpublish.php:53
602
- #@ transposh
603
- msgid "Set page language"
604
- msgstr ""
605
-
606
- #: wp/transposh_postpublish.php:198
607
  #@ default
608
  msgid "Default"
609
  msgstr ""
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr ""
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr ""
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr ""
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr ""
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
 
 
 
 
 
644
  #@ transposh
645
- msgid "Professional translation settings"
646
  msgstr ""
647
 
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
- msgid "Language supported by one hour translation"
 
 
 
 
 
651
  msgstr ""
652
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
653
  #: wp/transposh_admin.php:530
654
  #@ transposh
655
- msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
656
  msgstr ""
657
 
658
  #: wp/transposh_admin.php:532
659
  #@ transposh
660
- msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr ""
662
 
663
  #: wp/transposh_admin.php:533
664
  #@ transposh
665
- msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
  #: wp/transposh_admin.php:534
669
  #@ transposh
670
- msgid "Account ID"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671
  msgstr ""
672
 
673
  #: wp/transposh_admin.php:539
674
  #@ transposh
675
- msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
685
- #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
+ "PO-Revision-Date: 2012-12-12 19:50:59+0000\n"
7
  "Last-Translator: Roland Nieuwendijk <blog@imagitect.nl>\n"
8
  "Language-Team: Dutch <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: wp/transposh_db.php:684
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Database statistieken"
26
 
27
+ #: wp/transposh_db.php:689
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Totaal van <strong style=\"color:red\">%s</strong> vertaalde zinsneden."
32
 
33
+ #: wp/transposh_db.php:696
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> heeft <strong style=\"color:red\">%2s</strong> aangepaste vertalingen."
38
 
39
+ #: wp/transposh_db.php:699
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Recente activiteiten"
43
 
44
+ #: wp/transposh_db.php:704
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr "%s vertaalde een zinsnede naar %s met transposh:"
55
 
56
+ #: wp/transposh_postpublish.php:55
57
+ #: wp/transposh_widget.php:86
58
+ #: wp/transposh_widget.php:315
 
 
 
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr "Transposh"
63
 
64
+ #: wp/transposh_admin.php:185
65
  #@ transposh
66
  msgid "Transposh makes your blog translatable"
67
  msgstr "Transposh maakt je blog vertaalbaar"
68
 
69
+ #: wp/transposh_admin.php:187
70
  #@ transposh
71
  msgid "Plugin homepage"
72
  msgstr "Plugin homepage"
73
 
74
+ #: wp/transposh_admin.php:188
75
  #@ transposh
76
  msgid "Frequently asked questions"
77
  msgstr "Vaak gestelde vragen"
78
 
79
+ #: wp/transposh_admin.php:283
 
 
 
 
 
 
 
 
 
 
80
  #@ transposh
81
  msgid "Plugin news"
82
  msgstr "Plugin nieuws"
83
 
84
+ #: wp/transposh_admin.php:284
85
  #@ transposh
86
  msgid "Plugin stats"
87
  msgstr "Plugin stats"
88
 
89
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  #@ transposh
 
 
 
 
 
91
  msgid "Save Changes"
92
  msgstr "Bewaar aanpassingen"
93
 
94
+ #: wp/transposh_admin.php:653
95
  #@ transposh
96
  msgid "Problems?"
97
  msgstr "Problemen?"
98
 
99
+ #: wp/transposh_admin.php:616
 
 
 
 
 
100
  #@ transposh
101
  msgid "Suggest a Feature"
102
  msgstr "Suggereer nieuwe Functie"
103
 
104
+ #: wp/transposh_admin.php:617
105
  #@ transposh
106
  msgid "Report a Bug"
107
  msgstr "Meld een Bug"
108
 
109
+ #: wp/transposh_admin.php:559
110
  #@ transposh
111
  msgid "Translate by clicking the button below"
112
  msgstr "Klik onderstaande buttons om te vertalen"
113
 
114
+ #: wp/transposh_admin.php:561
115
  #@ transposh
116
  msgid "Translate All Now"
117
  msgstr "Vertaal nu alles"
118
 
119
+ #: wp/transposh_admin.php:364
120
  #@ transposh
121
  msgid "Default Language (drag another language here to make it default)"
122
  msgstr "Standaardtaal (sleep andere taal hierheen om standaard te maken)"
123
 
124
+ #: wp/transposh_admin.php:372
125
  #@ transposh
126
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
127
  msgstr "Beschikbare Talen (Click om aan-uit te zetten - Sleep voor volgorde in de widget)"
128
 
129
+ #: wp/transposh_admin.php:384
130
  #@ transposh
131
  msgid "Language supported by google translate"
132
  msgstr "Taal ondersteund door google translate"
133
 
134
+ #: wp/transposh_admin.php:386
135
  #@ transposh
136
  msgid "Language supported by bing translate"
137
  msgstr "Taal ondersteund door bing translate"
138
 
139
+ #: wp/transposh_admin.php:388
140
  #@ transposh
141
  msgid "Language supported by apertium translate"
142
  msgstr "Taal ondersteund door apertium translate"
143
 
144
+ #: wp/transposh_admin.php:392
145
  #@ transposh
146
  msgid "Language is written from right to left"
147
  msgstr "Taal wordt van rechts naar links geschreven"
148
 
149
+ #: wp/transposh_admin.php:397
150
  #@ transposh
151
  msgid "Display options:"
152
  msgstr "Display opties:"
153
 
154
+ #: wp/transposh_admin.php:398
155
  #@ transposh
156
  msgid "Toggle names of languages between English and Original"
157
  msgstr "Wissel taalnamen tussen Engels en Orgineel"
158
 
159
+ #: wp/transposh_admin.php:399
160
  #@ transposh
161
  msgid "Make all languages active"
162
  msgstr "Ze alle talen actief"
163
 
164
+ #: wp/transposh_admin.php:400
165
  #@ transposh
166
  msgid "Sort by language name"
167
  msgstr "Sorteer op taalnaam"
168
 
169
+ #: wp/transposh_admin.php:401
170
  #@ transposh
171
  msgid "Sort by lSO code"
172
  msgstr "Sorteer op lSO code"
173
 
174
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  #@ transposh
176
  msgid "Who can translate ?"
177
  msgstr "Wie kan er vertalen?"
178
 
179
+ #: wp/transposh_admin.php:419
180
  #@ transposh
181
  msgid "Anonymous"
182
  msgstr "Anonymous"
183
 
184
+ #: wp/transposh_admin.php:421
185
  #@ transposh
186
  msgid "Enable default language translation"
187
  msgstr "Vertaal de standaard taal"
188
 
189
+ #: wp/transposh_admin.php:422
190
  #@ transposh
191
  msgid "Allow translation of default language - useful for sites with more than one major language"
192
  msgstr "Vertaal de standaard taal - handig voor blogs met meerdere hoofdtalen"
193
 
194
+ #: wp/transposh_admin.php:423
195
  #@ transposh
196
  msgid "Enable search in translated languages"
197
  msgstr "Sta zoeken in vertalingen toe"
198
 
199
+ #: wp/transposh_admin.php:518
200
  #@ transposh
201
  msgid "Enable url translation"
202
  msgstr "Activeer omzetten url"
203
 
204
+ #: wp/transposh_admin.php:518
 
205
  #@ transposh
206
  msgid "experimental"
207
  msgstr "experimenteel"
208
 
209
+ #: wp/transposh_admin.php:518
210
  #@ transposh
211
  msgid "Allow translation of permalinks and urls"
212
  msgstr "Activeer vertaling van permalinks en urls"
213
 
214
+ #: wp/transposh_admin.php:425
215
  #@ transposh
216
  msgid "Enable gettext integration"
217
  msgstr "Activeer gettext integratie"
218
 
219
+ #: wp/transposh_admin.php:426
220
  #@ transposh
221
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
222
  msgstr "Activeer integratie van Transposh met bestaande gettext interface (.po/.mo bestanden)"
223
 
224
+ #: wp/transposh_admin.php:460
225
  #@ transposh
226
  msgid "Enable automatic translation"
227
  msgstr "Activeer automatische vertaling"
228
 
229
+ #: wp/transposh_admin.php:461
230
  #@ transposh
231
  msgid "Allow automatic translation of pages"
232
  msgstr "Activeer automatische vertaling van pagina's"
233
 
234
+ #: wp/transposh_admin.php:462
235
  #@ transposh
236
  msgid "Enable automatic translation after posting"
237
  msgstr "Activeer automatische vertaling na het posten"
238
 
239
+ #: wp/transposh_admin.php:463
240
  #@ transposh
241
  msgid "Do automatic translation immediately after a post has been published"
242
  msgstr "Activeer automatische vertaling onmiddellijk na het publiceren van een post"
243
 
244
+ #: wp/transposh_admin.php:470
245
  #@ transposh
246
  msgid "Select preferred auto translation engine"
247
  msgstr "Selecteer favoriete automatische vertalingsengine"
248
 
249
+ #: wp/transposh_admin.php:471
250
  #@ transposh
251
  msgid "Translation engine:"
252
  msgstr "Vertalingsengine:"
253
 
254
+ #: wp/transposh_admin.php:472
255
  #@ transposh
256
  msgid "Google"
257
  msgstr "Google"
258
 
259
+ #: wp/transposh_admin.php:473
260
  #@ transposh
261
  msgid "Bing"
262
  msgstr "Bing"
263
 
264
+ #: wp/transposh_admin.php:433
265
  #@ transposh
266
  msgid "Rewrite URLs"
267
  msgstr "Herschrijf URLs"
268
 
269
+ #: wp/transposh_admin.php:437
270
  #@ transposh
271
  msgid "Add scripts to footer"
272
  msgstr "Voeg scripts toe aan de footer"
273
 
274
+ #: wp/transposh_admin.php:440
275
  #@ transposh
276
  msgid "Auto detect language for users"
277
  msgstr "Detecteer taal van gebruiker"
278
 
279
+ #: wp/transposh_admin.php:554
280
  #@ transposh
281
  msgid "Delete all automated translations"
282
  msgstr "Verwijder alle automatische vertalingen"
283
 
284
+ #: wp/transposh_admin.php:555
285
  #@ transposh
286
  msgid "Delete automated translations older than 14 days"
287
  msgstr "Verwijder automatische vertalingen ouder dan 14 dagen"
288
 
289
+ #: wp/transposh_admin.php:556
290
  #@ transposh
291
  msgid "Attempt to fix errors caused by previous versions - please backup first"
292
  msgstr "Probeer fouten te herstellen ontstaan door eerdere versies - maak eerst een backup"
293
 
294
+ #: wp/transposh_admin.php:451
 
 
 
 
 
295
  #@ transposh
296
  msgid "Enable daily backup"
297
  msgstr "Activeer dagelijkse backup"
298
 
299
+ #: wp/transposh_admin.php:452
300
  #@ transposh
301
  msgid "Enable live backup"
302
  msgstr "Activeer onmiddellijke backup"
303
 
304
+ #: wp/transposh_admin.php:453
305
  #@ transposh
306
  msgid "Disable backup (Can be run manually by clicking the button below)"
307
  msgstr "Zet backupfuncties uit (Kan met de hand gedaan worden door het klikken van onderstaande button)"
308
 
309
+ #: wp/transposh_admin.php:454
310
  #@ transposh
311
  msgid "Service Key:"
312
  msgstr "Service Key:"
313
 
314
+ #: wp/transposh_admin.php:454
315
  #@ transposh
316
  msgid "How to restore?"
317
  msgstr "Een backup terugzetten?"
318
 
319
+ #: wp/transposh_admin.php:548
320
  #@ transposh
321
  msgid "Do Backup Now"
322
  msgstr "Maak nu Backup"
323
 
324
+ #: wp/transposh_widget.php:84
325
  #@ transposh
326
  msgid "Transposh language selection widget"
327
  msgstr "Transposh taalkeuze widget"
328
 
329
+ #: wp/transposh_widget.php:288
330
  #@ transposh
331
  msgid "Set as default language"
332
  msgstr "Maak dit de standaardtaal"
333
 
334
+ #: wp/transposh_widget.php:318
335
  #@ transposh
336
  msgid "translation plugin for wordpress"
337
  msgstr "Vertaalplugin voor Wordpress"
338
 
339
+ #: wp/transposh_widget.php:321
340
  #@ transposh
341
  msgid "wordpress translation plugin"
342
  msgstr "Wordpress Vertaalplugin"
343
 
344
+ #: wp/transposh_widget.php:324
345
  #@ transposh
346
  msgid "translate your blog to 60+ languages"
347
  msgstr "vertaal je blog in 60+ talen"
348
 
349
+ #: wp/transposh_widget.php:327
350
  #@ transposh
351
  msgid "website crowdsourcing translation plugin"
352
  msgstr "website crowdsourcing vertaalplugin"
353
 
354
+ #: wp/transposh_widget.php:330
355
  #@ transposh
356
  msgid "google translate and bing translate plugin for wordpress"
357
  msgstr "google translate en bing translate plugin voor wordpress"
358
 
359
+ #: wp/transposh_widget.php:129
360
  #@ transposh
361
  msgid "Style:"
362
  msgstr "Stijl:"
363
 
364
+ #: wp/transposh_admin.php:506
365
  #@ transposh
366
  msgid "Show progress bar when a client triggers automatic translation"
367
  msgstr "Laat de voortgangsbalk zien als de gebruiker een automatische vertaling activeert"
368
 
369
+ #: wp/transposh_admin.php:505
370
  #@ transposh
371
  msgid "Show progress bar"
372
  msgstr "Laat voortgangsbalk zien"
373
 
374
+ #: wp/transposh_admin.php:509
375
  #@ transposh
376
  msgid "Widget will allow setting this language as user default"
377
  msgstr "Widget staat toe om dit als standaardtaal in te stellen"
378
 
379
+ #: wp/transposh_admin.php:508
380
  #@ transposh
381
  msgid "Allow user to set current language as default"
382
  msgstr "Sta gebruiker toe om huidige taal als standaard in te stellen"
383
 
384
+ #: wp/transposh_admin.php:512
385
  #@ transposh
386
  msgid "Transposh logo will not appear on widget"
387
  msgstr "Transposh logo niet zichtbaar bij de widget"
388
 
389
+ #: wp/transposh_admin.php:511
390
  #@ transposh
391
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
392
  msgstr "Verwijder transposh logo (zie <a href=\"http://transposh.org/logoterms\">voorwaarden</a>)"
393
 
394
+ #: wp/transposh_admin.php:514
 
395
  #@ transposh
396
  msgid "Edit interface (and progress bar) theme:"
397
  msgstr "Kies interface (en voortgangsbalk) thema:"
428
  msgid "%VERSION%"
429
  msgstr ""
430
 
431
+ #: transposh.php:921
432
+ #: wp/transposh_admin.php:59
433
  #@ default
434
+ #@ transposh
435
  msgid "Settings"
436
  msgstr ""
437
 
438
+ #: wp/transposh_admin.php:436
439
  #@ transposh
440
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
441
  msgstr ""
442
 
443
+ #: wp/transposh_admin.php:439
444
  #@ transposh
445
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
446
  msgstr ""
447
 
448
+ #: wp/transposh_admin.php:442
449
  #@ transposh
450
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
451
  msgstr ""
456
  msgid "Select language"
457
  msgstr ""
458
 
459
+ #: wp/transposh_admin.php:734
 
 
 
 
 
460
  #, php-format
461
  #@ transposh
462
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
463
  msgstr ""
464
 
465
+ #: wp/transposh_admin.php:734
466
+ #: wp/transposh_admin.php:738
467
  #@ transposh
468
  msgid "Check Transposh FAQs"
469
  msgstr ""
470
 
471
+ #: wp/transposh_admin.php:738
472
  #@ transposh
473
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
474
  msgstr ""
475
 
476
+ #: wp/transposh_admin.php:424
477
  #@ transposh
478
  msgid "Allow search of translated languages (and the original language)"
479
  msgstr ""
480
 
481
+ #: wp/transposh_admin.php:428
482
  #@ transposh
483
  msgid "Enable override for default locale"
484
  msgstr ""
485
 
486
+ #: wp/transposh_admin.php:429
487
  #@ transposh
488
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
489
  msgstr ""
490
 
491
+ #: wp/transposh_admin.php:465
492
  #@ transposh
493
  msgid "MSN API key"
494
  msgstr ""
495
 
496
+ #: wp/transposh_admin.php:466
497
+ #: wp/transposh_admin.php:469
 
498
  #@ transposh
499
  msgid "API Key"
500
  msgstr ""
501
 
502
+ #: wp/transposh_admin.php:468
503
  #@ transposh
504
  msgid "Google API key"
505
  msgstr ""
506
 
507
+ #: wp/transposh_admin.php:443
508
  #@ transposh
509
  msgid "Allow collecting usage statistics"
510
  msgstr ""
511
 
512
+ #: wp/transposh_postpublish.php:57
513
  #@ transposh
514
  msgid "Set post language"
515
  msgstr ""
516
 
517
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
518
  #@ default
519
  msgid "Default"
520
  msgstr ""
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr ""
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr ""
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr ""
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr ""
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr ""
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr ""
553
 
554
+ #: wp/transposh_admin.php:390
555
+ #@ transposh
556
+ msgid "Language supported by one hour translation"
557
+ msgstr ""
558
+
559
+ #: wp/transposh_admin.php:477
560
  #@ transposh
561
+ msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
  msgstr ""
563
 
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
+ msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
+ msgstr ""
568
+
569
+ #: wp/transposh_admin.php:483
570
+ #@ transposh
571
+ msgid "One Hour Translation account ID"
572
  msgstr ""
573
 
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
+ #@ transposh
577
+ msgid "Account ID"
578
+ msgstr ""
579
+
580
+ #: wp/transposh_admin.php:487
581
+ #@ transposh
582
+ msgid "One Hour Translation secret key"
583
+ msgstr ""
584
+
585
+ #: wp/transposh_admin.php:499
586
+ #, php-format
587
+ #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
+ msgstr ""
610
+
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
+ msgstr ""
615
+
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
+ msgstr ""
625
+
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
+ msgstr ""
660
+
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
+ #, php-format
678
+ #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
  #: wp/transposh_admin.php:530
689
  #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
  msgstr ""
732
 
733
  #: wp/transposh_admin.php:532
734
  #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
  msgstr ""
737
 
738
  #: wp/transposh_admin.php:533
739
  #@ transposh
740
+ msgid "Log file name"
741
  msgstr ""
742
 
743
  #: wp/transposh_admin.php:534
744
  #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
  msgstr ""
767
 
768
  #: wp/transposh_admin.php:539
769
  #@ transposh
770
+ msgid "Debug"
771
  msgstr ""
772
 
773
+ #: wp/transposh_admin.php:541
774
  #, php-format
775
  #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
  msgstr ""
778
 
779
+ #: wp/transposh_admin.php:553
 
780
  #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
langs/transposh-pt_BR.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
- "PO-Revision-Date: 2012-05-29 02:46-0300\n"
7
  "Last-Translator: Amilton Junior <grupo@dicasemgeral.com>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
@@ -19,29 +19,29 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: wp/transposh_db.php:682
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Estatística do banco de dados"
26
 
27
- #: wp/transposh_db.php:687
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Total de <strong style=\"color:red\">%s</strong> frases traduzidas."
32
 
33
- #: wp/transposh_db.php:694
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> tem <strong style=\"color:red\">%2s</strong> frases traduzidas manualmente."
38
 
39
- #: wp/transposh_db.php:697
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Atividade recente"
43
 
44
- #: wp/transposh_db.php:702
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
@@ -53,431 +53,353 @@ msgstr "Em <strong>%1s</strong><br/>o usuário <strong>%2s</strong> traduziu<br/
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr "%s traduziu uma frase para %s com o transposh:"
55
 
56
- #: wp/transposh_admin.php:175
57
- #: wp/transposh_admin.php:243
58
- #: wp/transposh_postpublish.php:50
59
- #: wp/transposh_postpublish.php:51
60
- #: wp/transposh_widget.php:84
61
- #: wp/transposh_widget.php:311
62
  #@ transposh
63
  #@ default
64
  msgid "Transposh"
65
  msgstr "Transposh"
66
 
67
- #: wp/transposh_admin.php:165
68
  #@ transposh
69
  msgid "Transposh makes your blog translatable"
70
  msgstr "Transposh traduz o seu blog"
71
 
72
- #: wp/transposh_admin.php:166
73
  #@ transposh
74
  msgid "Plugin homepage"
75
  msgstr "Home page do plugin"
76
 
77
- #: wp/transposh_admin.php:167
78
  #@ transposh
79
  msgid "Frequently asked questions"
80
  msgstr "Perguntas frequentes"
81
 
82
- #: wp/transposh_admin.php:175
83
- #@ transposh
84
- msgid "Transposh control center"
85
- msgstr "Painel de controle Transposh"
86
-
87
- #: wp/transposh_admin.php:212
88
- #@ transposh
89
- msgid "About this plugin"
90
- msgstr "Sobre o plugin"
91
-
92
- #: wp/transposh_admin.php:213
93
  #@ transposh
94
  msgid "Plugin news"
95
  msgstr "Notícias do plugin"
96
 
97
- #: wp/transposh_admin.php:214
98
  #@ transposh
99
  msgid "Plugin stats"
100
  msgstr "Estatísticas do plugin"
101
 
102
- #: wp/transposh_admin.php:215
103
- #@ transposh
104
- msgid "Translate all"
105
- msgstr "Traduzir tudo"
106
-
107
- #: wp/transposh_admin.php:216
108
- #@ transposh
109
- msgid "Supported languages"
110
- msgstr "Idiomas suportados"
111
-
112
- #: wp/transposh_admin.php:217
113
- #@ transposh
114
- msgid "Translation settings"
115
- msgstr "Configuração da tradução"
116
-
117
- #: wp/transposh_admin.php:218
118
- #@ transposh
119
- msgid "Automatic translation settings"
120
- msgstr "Configuração da tradução automática"
121
-
122
- #: wp/transposh_admin.php:221
123
- #@ transposh
124
- msgid "Generic settings"
125
- msgstr "Configurações genéricas"
126
-
127
- #: wp/transposh_admin.php:222
128
- #@ transposh
129
- msgid "Database maintenance"
130
- msgstr "Gerenciamento do banco de dados"
131
-
132
- #: wp/transposh_admin.php:237
133
  #@ transposh
134
- msgid "Transposh community features"
135
- msgstr "Recursos da \"Comunidade Transposh\""
136
-
137
- #: wp/transposh_admin.php:273
138
- #@ default
139
  msgid "Save Changes"
140
  msgstr "Salvar mudanças"
141
 
142
- #: wp/transposh_admin.php:297
143
  #@ transposh
144
  msgid "Problems?"
145
  msgstr "Problemas?"
146
 
147
- #: wp/transposh_admin.php:313
148
- #@ transposh
149
- msgid "Plugin Homepage"
150
- msgstr "Home Page do plugin"
151
-
152
- #: wp/transposh_admin.php:314
153
  #@ transposh
154
  msgid "Suggest a Feature"
155
  msgstr "Sugerir um recurso"
156
 
157
- #: wp/transposh_admin.php:316
158
  #@ transposh
159
  msgid "Report a Bug"
160
  msgstr "Informar um bug"
161
 
162
- #: wp/transposh_admin.php:333
163
  #@ transposh
164
  msgid "Translate by clicking the button below"
165
  msgstr "Traduza clicando no botão abaixo"
166
 
167
- #: wp/transposh_admin.php:335
168
  #@ transposh
169
  msgid "Translate All Now"
170
  msgstr "Traduzir tudo agora"
171
 
172
- #: wp/transposh_admin.php:390
173
  #@ transposh
174
  msgid "Default Language (drag another language here to make it default)"
175
  msgstr "Idioma padrão (arraste outro idioma para definir)"
176
 
177
- #: wp/transposh_admin.php:397
178
  #@ transposh
179
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
180
  msgstr "Idiomas disponíveis (clique para mudar o status - arraste para mudar a ordem)"
181
 
182
- #: wp/transposh_admin.php:407
183
  #@ transposh
184
  msgid "Language supported by google translate"
185
  msgstr "Idioma suportado pelo Google Translator"
186
 
187
- #: wp/transposh_admin.php:409
188
  #@ transposh
189
  msgid "Language supported by bing translate"
190
  msgstr "Idioma suportado pelo Bing Translator"
191
 
192
- #: wp/transposh_admin.php:411
193
  #@ transposh
194
  msgid "Language supported by apertium translate"
195
  msgstr "Idioma suportado pelo Apertium Translator"
196
 
197
- #: wp/transposh_admin.php:415
198
  #@ transposh
199
  msgid "Language is written from right to left"
200
  msgstr "Este idioma se escreve da direita para a esquerda"
201
 
202
- #: wp/transposh_admin.php:420
203
  #@ transposh
204
  msgid "Display options:"
205
  msgstr "Opções de visualização:"
206
 
207
- #: wp/transposh_admin.php:421
208
  #@ transposh
209
  msgid "Toggle names of languages between English and Original"
210
  msgstr "Alterar os nomes dos idiomas entre Inglês e Original"
211
 
212
- #: wp/transposh_admin.php:422
213
  #@ transposh
214
  msgid "Make all languages active"
215
  msgstr "Ativar todos os idiomas"
216
 
217
- #: wp/transposh_admin.php:423
218
  #@ transposh
219
  msgid "Sort by language name"
220
  msgstr "Ordenar os idiomas pelo nome"
221
 
222
- #: wp/transposh_admin.php:424
223
  #@ transposh
224
  msgid "Sort by lSO code"
225
  msgstr "Ordenar pelo código lSO"
226
 
227
- #: wp/transposh_admin.php:425
228
- #@ transposh
229
- msgid "Legend:"
230
- msgstr "Legenda:"
231
-
232
- #: wp/transposh_admin.php:425
233
- #@ transposh
234
- msgid "Green - active"
235
- msgstr "Verde - ativo"
236
-
237
- #: wp/transposh_admin.php:425
238
- #@ transposh
239
- msgid "Yellow - translateable (only translators will see this language)"
240
- msgstr "Amarelo - traduzível (somente os tradutores verão este idioma)"
241
-
242
- #: wp/transposh_admin.php:425
243
- #@ transposh
244
- msgid "blank - inactive"
245
- msgstr "branco - inativo"
246
-
247
- #: wp/transposh_admin.php:447
248
  #@ transposh
249
  msgid "Who can translate ?"
250
  msgstr "Quem pode traduzir?"
251
 
252
- #: wp/transposh_admin.php:454
253
  #@ transposh
254
  msgid "Anonymous"
255
  msgstr "Anônimo"
256
 
257
- #: wp/transposh_admin.php:460
258
  #@ transposh
259
  msgid "Enable default language translation"
260
  msgstr "Ativar idioma padrão de tradução"
261
 
262
- #: wp/transposh_admin.php:460
263
  #@ transposh
264
  msgid "Allow translation of default language - useful for sites with more than one major language"
265
  msgstr "Permitir traduzir do idioma padrão - usual para sites com mais de um idioma"
266
 
267
- #: wp/transposh_admin.php:467
268
  #@ transposh
269
  msgid "Enable search in translated languages"
270
  msgstr "Habilitar busca em idiomas traduzidos"
271
 
272
- #: wp/transposh_admin.php:474
273
  #@ transposh
274
  msgid "Enable url translation"
275
  msgstr "Permitir a tradução da URL"
276
 
277
- #: wp/transposh_admin.php:474
278
- #: wp/transposh_admin.php:481
279
  #@ transposh
280
  msgid "experimental"
281
  msgstr "experimental"
282
 
283
- #: wp/transposh_admin.php:474
284
  #@ transposh
285
  msgid "Allow translation of permalinks and urls"
286
  msgstr "Permitir a tradução de Permalinks e URLs"
287
 
288
- #: wp/transposh_admin.php:481
289
  #@ transposh
290
  msgid "Enable gettext integration"
291
  msgstr "Permitir integração com gettext"
292
 
293
- #: wp/transposh_admin.php:481
294
  #@ transposh
295
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
296
  msgstr "Permitir a integração do Transposh com as interfaces gettext existentes (arquivos .po /.mo)"
297
 
298
- #: wp/transposh_admin.php:497
299
  #@ transposh
300
  msgid "Enable automatic translation"
301
  msgstr "Permitir tradução automática"
302
 
303
- #: wp/transposh_admin.php:497
304
  #@ transposh
305
  msgid "Allow automatic translation of pages"
306
  msgstr "Permitir a tradução automática de páginas"
307
 
308
- #: wp/transposh_admin.php:503
309
  #@ transposh
310
  msgid "Enable automatic translation after posting"
311
  msgstr "Permitir tradução automática logo após publicar"
312
 
313
- #: wp/transposh_admin.php:503
314
  #@ transposh
315
  msgid "Do automatic translation immediately after a post has been published"
316
  msgstr "Traduzir automaticamente imediatamente após um post ser publicado"
317
 
318
- #: wp/transposh_admin.php:520
319
  #@ transposh
320
  msgid "Select preferred auto translation engine"
321
  msgstr "Selecione a engine de tradução preferida"
322
 
323
- #: wp/transposh_admin.php:521
324
  #@ transposh
325
  msgid "Translation engine:"
326
  msgstr "Engine de tradução:"
327
 
328
- #: wp/transposh_admin.php:523
329
  #@ transposh
330
  msgid "Google"
331
  msgstr "Google"
332
 
333
- #: wp/transposh_admin.php:524
334
  #@ transposh
335
  msgid "Bing"
336
  msgstr "Bing"
337
 
338
- #: wp/transposh_admin.php:578
339
  #@ transposh
340
  msgid "Rewrite URLs"
341
  msgstr "Reescrever as URLs"
342
 
343
- #: wp/transposh_admin.php:586
344
  #@ transposh
345
  msgid "Add scripts to footer"
346
  msgstr "Adicionar scripts no rodapé"
347
 
348
- #: wp/transposh_admin.php:592
349
  #@ transposh
350
  msgid "Auto detect language for users"
351
  msgstr "Detectar automaticamente o idioma do usuário"
352
 
353
- #: wp/transposh_admin.php:608
354
  #@ transposh
355
  msgid "Delete all automated translations"
356
  msgstr "Apagar todas as traduções automáticas"
357
 
358
- #: wp/transposh_admin.php:609
359
  #@ transposh
360
  msgid "Delete automated translations older than 14 days"
361
  msgstr "Apagar todas as traduções automáticas após 14 dias"
362
 
363
- #: wp/transposh_admin.php:610
364
  #@ transposh
365
  msgid "Attempt to fix errors caused by previous versions - please backup first"
366
  msgstr "Tentar corrigir erros causados por versões anteriores - fazer backup antes"
367
 
368
- #: wp/transposh_admin.php:614
369
- #@ transposh
370
- msgid "Backup service for human translation"
371
- msgstr "Serviço de backup para tradução manual"
372
-
373
- #: wp/transposh_admin.php:615
374
  #@ transposh
375
  msgid "Enable daily backup"
376
  msgstr "Ativar backup diário"
377
 
378
- #: wp/transposh_admin.php:616
379
  #@ transposh
380
  msgid "Enable live backup"
381
  msgstr "Ativar backup em tempo real"
382
 
383
- #: wp/transposh_admin.php:617
384
  #@ transposh
385
  msgid "Disable backup (Can be run manually by clicking the button below)"
386
  msgstr "Desativar backup (pode ser executado manualmente clicando no botão abaixo)"
387
 
388
- #: wp/transposh_admin.php:618
389
  #@ transposh
390
  msgid "Service Key:"
391
  msgstr "Service Key:"
392
 
393
- #: wp/transposh_admin.php:618
394
  #@ transposh
395
  msgid "How to restore?"
396
  msgstr "Como restaurar?"
397
 
398
- #: wp/transposh_admin.php:620
399
  #@ transposh
400
  msgid "Do Backup Now"
401
  msgstr "Fazer backup agora"
402
 
403
- #: wp/transposh_widget.php:82
404
  #@ transposh
405
  msgid "Transposh language selection widget"
406
  msgstr "Widget Transposh de seleção de idioma"
407
 
408
- #: wp/transposh_widget.php:284
409
  #@ transposh
410
  msgid "Set as default language"
411
  msgstr "Definir como idioma padrão"
412
 
413
- #: wp/transposh_widget.php:314
414
  #@ transposh
415
  msgid "translation plugin for wordpress"
416
  msgstr "plugin de tradução para wordpress"
417
 
418
- #: wp/transposh_widget.php:317
419
  #@ transposh
420
  msgid "wordpress translation plugin"
421
  msgstr "plugin de tradução para wordpress"
422
 
423
- #: wp/transposh_widget.php:320
424
  #@ transposh
425
  msgid "translate your blog to 60+ languages"
426
  msgstr "traduz seu blog para 60+ idiomas"
427
 
428
- #: wp/transposh_widget.php:323
429
  #@ transposh
430
  msgid "website crowdsourcing translation plugin"
431
  msgstr "plugin de tradução crowdsourcing"
432
 
433
- #: wp/transposh_widget.php:326
434
  #@ transposh
435
  msgid "google translate and bing translate plugin for wordpress"
436
  msgstr "plugins google translate e bing translate para wordpress"
437
 
438
- #: wp/transposh_widget.php:125
439
  #@ transposh
440
  msgid "Style:"
441
  msgstr "Estilo:"
442
 
443
- #: wp/transposh_admin.php:556
444
  #@ transposh
445
  msgid "Show progress bar when a client triggers automatic translation"
446
  msgstr "Exibir barra de progresso quando um cliente solicitar uma tradução automática"
447
 
448
- #: wp/transposh_admin.php:556
449
  #@ transposh
450
  msgid "Show progress bar"
451
  msgstr "Exibir barra de progresso"
452
 
453
- #: wp/transposh_admin.php:558
454
  #@ transposh
455
  msgid "Widget will allow setting this language as user default"
456
  msgstr "Widget permite definir como idioma padrão do usuário"
457
 
458
- #: wp/transposh_admin.php:558
459
  #@ transposh
460
  msgid "Allow user to set current language as default"
461
  msgstr "Permitir que o usuário defina o idioma padrão"
462
 
463
- #: wp/transposh_admin.php:560
464
  #@ transposh
465
  msgid "Transposh logo will not appear on widget"
466
  msgstr "O logotipo Transposh não aparecerá no widget"
467
 
468
- #: wp/transposh_admin.php:560
469
  #@ transposh
470
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
471
  msgstr "Remover o logotipo Transposh"
472
 
473
- #: wp/transposh_admin.php:562
474
- #: wp/transposh_admin.php:563
475
  #@ transposh
476
  msgid "Edit interface (and progress bar) theme:"
477
  msgstr "Editar a interface (tema e barra de progresso):"
478
 
479
- #: transposh.php:908
 
480
  #@ default
 
481
  msgid "Settings"
482
  msgstr "Configurações"
483
 
@@ -506,17 +428,17 @@ msgstr "Filtro de tradução para WordPress, depois de ativar favor definir os i
506
  msgid "Team Transposh"
507
  msgstr "Equipe Transposh"
508
 
509
- #: wp/transposh_admin.php:580
510
  #@ transposh
511
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
512
  msgstr "Reescreva as URLs para SEO Friendly, ex.: (http://transposh.org/<strong>en</strong>). Necessita de permalinks ativados."
513
 
514
- #: wp/transposh_admin.php:587
515
  #@ transposh
516
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
517
  msgstr "Adicione os scripts do Transposh ao rodapé da página em vez do cabeçalho. Necessita de suporte do seu tema."
518
 
519
- #: wp/transposh_admin.php:593
520
  #@ transposh
521
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
522
  msgstr "Isso ativa a auto-detecção do isioma usado pelo usuário definido no cabeçalho ACCEPT_LANGUAGES. Assim o redirecionará para a primeira página acessada traduzida automaticamente."
@@ -534,161 +456,483 @@ msgstr "%VERSION%"
534
  msgid "Select language"
535
  msgstr "Selecione o idioma"
536
 
537
- #: wp/transposh_admin.php:220
538
- #@ transposh
539
- msgid "Frontend settings"
540
- msgstr "Configurações locais"
541
-
542
- #: wp/transposh_admin.php:248
543
  #, php-format
544
  #@ transposh
545
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
546
  msgstr "Sua configuração atual do PHP limita a memória a %s e está muito abaixo do recomendado. Isso pode gerar páginas em branco."
547
 
548
- #: wp/transposh_admin.php:248
549
- #: wp/transposh_admin.php:252
550
  #@ transposh
551
  msgid "Check Transposh FAQs"
552
  msgstr "Leia nosso FAQ"
553
 
554
- #: wp/transposh_admin.php:252
555
  #@ transposh
556
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
557
  msgstr "Não localizamos suporte para um sistema de cache em memória. Instalando um a performance melhora."
558
 
559
- #: wp/transposh_admin.php:467
560
  #@ transposh
561
  msgid "Allow search of translated languages (and the original language)"
562
  msgstr "Permite pesquisar nas páginas traduzidas (inclusive no idioma original)"
563
 
564
- #: wp/transposh_admin.php:488
565
  #@ transposh
566
  msgid "Enable override for default locale"
567
  msgstr "Ativar sobrescrita para o local padrão"
568
 
569
- #: wp/transposh_admin.php:488
570
  #@ transposh
571
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
572
  msgstr "Ativar sobrescrita do local padrão e configurar WP_LANG em páginas com idiomas padrão (como páginas não traduzidas e administrativas)"
573
 
574
- #: wp/transposh_admin.php:508
575
  #@ transposh
576
  msgid "MSN API key"
577
  msgstr "MSN API Key"
578
 
579
- #: wp/transposh_admin.php:509
580
- #: wp/transposh_admin.php:515
581
- #: wp/transposh_admin.php:540
582
  #@ transposh
583
  msgid "API Key"
584
  msgstr "API Key"
585
 
586
- #: wp/transposh_admin.php:514
587
  #@ transposh
588
  msgid "Google API key"
589
  msgstr "Google API Key"
590
 
591
- #: wp/transposh_admin.php:598
592
  #@ transposh
593
  msgid "Allow collecting usage statistics"
594
  msgstr "Permitir coleta de estatísticas de uso"
595
 
596
- #: wp/transposh_postpublish.php:52
597
  #@ transposh
598
  msgid "Set post language"
599
  msgstr "Define o idioma dos posts"
600
 
601
- #: wp/transposh_postpublish.php:53
602
- #@ transposh
603
- msgid "Set page language"
604
- msgstr "Define o idioma das páginas"
605
-
606
- #: wp/transposh_postpublish.php:198
607
  #@ default
608
  msgid "Default"
609
  msgstr "Padrão"
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr "Título:"
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr "O subwidget do Transposh não foi carregado corretamente"
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr "título"
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr "Idioma"
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr "Esta opção ativa a coleta de estatísticas pelo transposh para ajudar a melhorar o produto."
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr "Tradução"
642
 
643
- #: wp/transposh_admin.php:219
644
- #@ transposh
645
- msgid "Professional translation settings"
646
- msgstr ""
647
-
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
  msgid "Language supported by one hour translation"
651
  msgstr ""
652
 
653
- #: wp/transposh_admin.php:530
654
  #@ transposh
655
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
656
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, é o maior serviço online de tradução profissional, com milhares de clientes empresariais, incluindo 57% das empresas da Fortune 500 e mais de 15000 tradutores em todo o mundo."
657
 
658
- #: wp/transposh_admin.php:532
659
  #@ transposh
660
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr "A One Hour Translation fornece traduções profissionais rápidas e de elevada qualidade de e para qualquer língua, e possui a competência específica do domínio em localização de SW (Software), traduções técnicas, empresariais e jurídicas."
662
 
663
- #: wp/transposh_admin.php:533
664
  #@ transposh
665
  msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
- #: wp/transposh_admin.php:534
 
669
  #@ transposh
670
  msgid "Account ID"
671
  msgstr ""
672
 
673
- #: wp/transposh_admin.php:539
674
  #@ transposh
675
  msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
685
  #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2011-01-16 21:56:35+00:00\n"
6
+ "PO-Revision-Date: 2012-12-12 19:51:05+0000\n"
7
  "Last-Translator: Amilton Junior <grupo@dicasemgeral.com>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: wp/transposh_db.php:684
23
  #@ transposh
24
  msgid "Database stats"
25
  msgstr "Estatística do banco de dados"
26
 
27
+ #: wp/transposh_db.php:689
28
  #, php-format
29
  #@ transposh
30
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
31
  msgstr "Total de <strong style=\"color:red\">%s</strong> frases traduzidas."
32
 
33
+ #: wp/transposh_db.php:696
34
  #, php-format
35
  #@ transposh
36
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
37
  msgstr "<strong>%1s</strong> tem <strong style=\"color:red\">%2s</strong> frases traduzidas manualmente."
38
 
39
+ #: wp/transposh_db.php:699
40
  #@ transposh
41
  msgid "Recent activity"
42
  msgstr "Atividade recente"
43
 
44
+ #: wp/transposh_db.php:704
45
  #, php-format
46
  #@ transposh
47
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
53
  msgid "%s translated a phrase to %s with transposh:"
54
  msgstr "%s traduziu uma frase para %s com o transposh:"
55
 
56
+ #: wp/transposh_postpublish.php:55
57
+ #: wp/transposh_widget.php:86
58
+ #: wp/transposh_widget.php:315
 
 
 
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr "Transposh"
63
 
64
+ #: wp/transposh_admin.php:185
65
  #@ transposh
66
  msgid "Transposh makes your blog translatable"
67
  msgstr "Transposh traduz o seu blog"
68
 
69
+ #: wp/transposh_admin.php:187
70
  #@ transposh
71
  msgid "Plugin homepage"
72
  msgstr "Home page do plugin"
73
 
74
+ #: wp/transposh_admin.php:188
75
  #@ transposh
76
  msgid "Frequently asked questions"
77
  msgstr "Perguntas frequentes"
78
 
79
+ #: wp/transposh_admin.php:283
 
 
 
 
 
 
 
 
 
 
80
  #@ transposh
81
  msgid "Plugin news"
82
  msgstr "Notícias do plugin"
83
 
84
+ #: wp/transposh_admin.php:284
85
  #@ transposh
86
  msgid "Plugin stats"
87
  msgstr "Estatísticas do plugin"
88
 
89
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  #@ transposh
 
 
 
 
 
91
  msgid "Save Changes"
92
  msgstr "Salvar mudanças"
93
 
94
+ #: wp/transposh_admin.php:653
95
  #@ transposh
96
  msgid "Problems?"
97
  msgstr "Problemas?"
98
 
99
+ #: wp/transposh_admin.php:616
 
 
 
 
 
100
  #@ transposh
101
  msgid "Suggest a Feature"
102
  msgstr "Sugerir um recurso"
103
 
104
+ #: wp/transposh_admin.php:617
105
  #@ transposh
106
  msgid "Report a Bug"
107
  msgstr "Informar um bug"
108
 
109
+ #: wp/transposh_admin.php:559
110
  #@ transposh
111
  msgid "Translate by clicking the button below"
112
  msgstr "Traduza clicando no botão abaixo"
113
 
114
+ #: wp/transposh_admin.php:561
115
  #@ transposh
116
  msgid "Translate All Now"
117
  msgstr "Traduzir tudo agora"
118
 
119
+ #: wp/transposh_admin.php:364
120
  #@ transposh
121
  msgid "Default Language (drag another language here to make it default)"
122
  msgstr "Idioma padrão (arraste outro idioma para definir)"
123
 
124
+ #: wp/transposh_admin.php:372
125
  #@ transposh
126
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
127
  msgstr "Idiomas disponíveis (clique para mudar o status - arraste para mudar a ordem)"
128
 
129
+ #: wp/transposh_admin.php:384
130
  #@ transposh
131
  msgid "Language supported by google translate"
132
  msgstr "Idioma suportado pelo Google Translator"
133
 
134
+ #: wp/transposh_admin.php:386
135
  #@ transposh
136
  msgid "Language supported by bing translate"
137
  msgstr "Idioma suportado pelo Bing Translator"
138
 
139
+ #: wp/transposh_admin.php:388
140
  #@ transposh
141
  msgid "Language supported by apertium translate"
142
  msgstr "Idioma suportado pelo Apertium Translator"
143
 
144
+ #: wp/transposh_admin.php:392
145
  #@ transposh
146
  msgid "Language is written from right to left"
147
  msgstr "Este idioma se escreve da direita para a esquerda"
148
 
149
+ #: wp/transposh_admin.php:397
150
  #@ transposh
151
  msgid "Display options:"
152
  msgstr "Opções de visualização:"
153
 
154
+ #: wp/transposh_admin.php:398
155
  #@ transposh
156
  msgid "Toggle names of languages between English and Original"
157
  msgstr "Alterar os nomes dos idiomas entre Inglês e Original"
158
 
159
+ #: wp/transposh_admin.php:399
160
  #@ transposh
161
  msgid "Make all languages active"
162
  msgstr "Ativar todos os idiomas"
163
 
164
+ #: wp/transposh_admin.php:400
165
  #@ transposh
166
  msgid "Sort by language name"
167
  msgstr "Ordenar os idiomas pelo nome"
168
 
169
+ #: wp/transposh_admin.php:401
170
  #@ transposh
171
  msgid "Sort by lSO code"
172
  msgstr "Ordenar pelo código lSO"
173
 
174
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  #@ transposh
176
  msgid "Who can translate ?"
177
  msgstr "Quem pode traduzir?"
178
 
179
+ #: wp/transposh_admin.php:419
180
  #@ transposh
181
  msgid "Anonymous"
182
  msgstr "Anônimo"
183
 
184
+ #: wp/transposh_admin.php:421
185
  #@ transposh
186
  msgid "Enable default language translation"
187
  msgstr "Ativar idioma padrão de tradução"
188
 
189
+ #: wp/transposh_admin.php:422
190
  #@ transposh
191
  msgid "Allow translation of default language - useful for sites with more than one major language"
192
  msgstr "Permitir traduzir do idioma padrão - usual para sites com mais de um idioma"
193
 
194
+ #: wp/transposh_admin.php:423
195
  #@ transposh
196
  msgid "Enable search in translated languages"
197
  msgstr "Habilitar busca em idiomas traduzidos"
198
 
199
+ #: wp/transposh_admin.php:518
200
  #@ transposh
201
  msgid "Enable url translation"
202
  msgstr "Permitir a tradução da URL"
203
 
204
+ #: wp/transposh_admin.php:518
 
205
  #@ transposh
206
  msgid "experimental"
207
  msgstr "experimental"
208
 
209
+ #: wp/transposh_admin.php:518
210
  #@ transposh
211
  msgid "Allow translation of permalinks and urls"
212
  msgstr "Permitir a tradução de Permalinks e URLs"
213
 
214
+ #: wp/transposh_admin.php:425
215
  #@ transposh
216
  msgid "Enable gettext integration"
217
  msgstr "Permitir integração com gettext"
218
 
219
+ #: wp/transposh_admin.php:426
220
  #@ transposh
221
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
222
  msgstr "Permitir a integração do Transposh com as interfaces gettext existentes (arquivos .po /.mo)"
223
 
224
+ #: wp/transposh_admin.php:460
225
  #@ transposh
226
  msgid "Enable automatic translation"
227
  msgstr "Permitir tradução automática"
228
 
229
+ #: wp/transposh_admin.php:461
230
  #@ transposh
231
  msgid "Allow automatic translation of pages"
232
  msgstr "Permitir a tradução automática de páginas"
233
 
234
+ #: wp/transposh_admin.php:462
235
  #@ transposh
236
  msgid "Enable automatic translation after posting"
237
  msgstr "Permitir tradução automática logo após publicar"
238
 
239
+ #: wp/transposh_admin.php:463
240
  #@ transposh
241
  msgid "Do automatic translation immediately after a post has been published"
242
  msgstr "Traduzir automaticamente imediatamente após um post ser publicado"
243
 
244
+ #: wp/transposh_admin.php:470
245
  #@ transposh
246
  msgid "Select preferred auto translation engine"
247
  msgstr "Selecione a engine de tradução preferida"
248
 
249
+ #: wp/transposh_admin.php:471
250
  #@ transposh
251
  msgid "Translation engine:"
252
  msgstr "Engine de tradução:"
253
 
254
+ #: wp/transposh_admin.php:472
255
  #@ transposh
256
  msgid "Google"
257
  msgstr "Google"
258
 
259
+ #: wp/transposh_admin.php:473
260
  #@ transposh
261
  msgid "Bing"
262
  msgstr "Bing"
263
 
264
+ #: wp/transposh_admin.php:433
265
  #@ transposh
266
  msgid "Rewrite URLs"
267
  msgstr "Reescrever as URLs"
268
 
269
+ #: wp/transposh_admin.php:437
270
  #@ transposh
271
  msgid "Add scripts to footer"
272
  msgstr "Adicionar scripts no rodapé"
273
 
274
+ #: wp/transposh_admin.php:440
275
  #@ transposh
276
  msgid "Auto detect language for users"
277
  msgstr "Detectar automaticamente o idioma do usuário"
278
 
279
+ #: wp/transposh_admin.php:554
280
  #@ transposh
281
  msgid "Delete all automated translations"
282
  msgstr "Apagar todas as traduções automáticas"
283
 
284
+ #: wp/transposh_admin.php:555
285
  #@ transposh
286
  msgid "Delete automated translations older than 14 days"
287
  msgstr "Apagar todas as traduções automáticas após 14 dias"
288
 
289
+ #: wp/transposh_admin.php:556
290
  #@ transposh
291
  msgid "Attempt to fix errors caused by previous versions - please backup first"
292
  msgstr "Tentar corrigir erros causados por versões anteriores - fazer backup antes"
293
 
294
+ #: wp/transposh_admin.php:451
 
 
 
 
 
295
  #@ transposh
296
  msgid "Enable daily backup"
297
  msgstr "Ativar backup diário"
298
 
299
+ #: wp/transposh_admin.php:452
300
  #@ transposh
301
  msgid "Enable live backup"
302
  msgstr "Ativar backup em tempo real"
303
 
304
+ #: wp/transposh_admin.php:453
305
  #@ transposh
306
  msgid "Disable backup (Can be run manually by clicking the button below)"
307
  msgstr "Desativar backup (pode ser executado manualmente clicando no botão abaixo)"
308
 
309
+ #: wp/transposh_admin.php:454
310
  #@ transposh
311
  msgid "Service Key:"
312
  msgstr "Service Key:"
313
 
314
+ #: wp/transposh_admin.php:454
315
  #@ transposh
316
  msgid "How to restore?"
317
  msgstr "Como restaurar?"
318
 
319
+ #: wp/transposh_admin.php:548
320
  #@ transposh
321
  msgid "Do Backup Now"
322
  msgstr "Fazer backup agora"
323
 
324
+ #: wp/transposh_widget.php:84
325
  #@ transposh
326
  msgid "Transposh language selection widget"
327
  msgstr "Widget Transposh de seleção de idioma"
328
 
329
+ #: wp/transposh_widget.php:288
330
  #@ transposh
331
  msgid "Set as default language"
332
  msgstr "Definir como idioma padrão"
333
 
334
+ #: wp/transposh_widget.php:318
335
  #@ transposh
336
  msgid "translation plugin for wordpress"
337
  msgstr "plugin de tradução para wordpress"
338
 
339
+ #: wp/transposh_widget.php:321
340
  #@ transposh
341
  msgid "wordpress translation plugin"
342
  msgstr "plugin de tradução para wordpress"
343
 
344
+ #: wp/transposh_widget.php:324
345
  #@ transposh
346
  msgid "translate your blog to 60+ languages"
347
  msgstr "traduz seu blog para 60+ idiomas"
348
 
349
+ #: wp/transposh_widget.php:327
350
  #@ transposh
351
  msgid "website crowdsourcing translation plugin"
352
  msgstr "plugin de tradução crowdsourcing"
353
 
354
+ #: wp/transposh_widget.php:330
355
  #@ transposh
356
  msgid "google translate and bing translate plugin for wordpress"
357
  msgstr "plugins google translate e bing translate para wordpress"
358
 
359
+ #: wp/transposh_widget.php:129
360
  #@ transposh
361
  msgid "Style:"
362
  msgstr "Estilo:"
363
 
364
+ #: wp/transposh_admin.php:506
365
  #@ transposh
366
  msgid "Show progress bar when a client triggers automatic translation"
367
  msgstr "Exibir barra de progresso quando um cliente solicitar uma tradução automática"
368
 
369
+ #: wp/transposh_admin.php:505
370
  #@ transposh
371
  msgid "Show progress bar"
372
  msgstr "Exibir barra de progresso"
373
 
374
+ #: wp/transposh_admin.php:509
375
  #@ transposh
376
  msgid "Widget will allow setting this language as user default"
377
  msgstr "Widget permite definir como idioma padrão do usuário"
378
 
379
+ #: wp/transposh_admin.php:508
380
  #@ transposh
381
  msgid "Allow user to set current language as default"
382
  msgstr "Permitir que o usuário defina o idioma padrão"
383
 
384
+ #: wp/transposh_admin.php:512
385
  #@ transposh
386
  msgid "Transposh logo will not appear on widget"
387
  msgstr "O logotipo Transposh não aparecerá no widget"
388
 
389
+ #: wp/transposh_admin.php:511
390
  #@ transposh
391
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
392
  msgstr "Remover o logotipo Transposh"
393
 
394
+ #: wp/transposh_admin.php:514
 
395
  #@ transposh
396
  msgid "Edit interface (and progress bar) theme:"
397
  msgstr "Editar a interface (tema e barra de progresso):"
398
 
399
+ #: transposh.php:921
400
+ #: wp/transposh_admin.php:59
401
  #@ default
402
+ #@ transposh
403
  msgid "Settings"
404
  msgstr "Configurações"
405
 
428
  msgid "Team Transposh"
429
  msgstr "Equipe Transposh"
430
 
431
+ #: wp/transposh_admin.php:436
432
  #@ transposh
433
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
434
  msgstr "Reescreva as URLs para SEO Friendly, ex.: (http://transposh.org/<strong>en</strong>). Necessita de permalinks ativados."
435
 
436
+ #: wp/transposh_admin.php:439
437
  #@ transposh
438
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
439
  msgstr "Adicione os scripts do Transposh ao rodapé da página em vez do cabeçalho. Necessita de suporte do seu tema."
440
 
441
+ #: wp/transposh_admin.php:442
442
  #@ transposh
443
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
444
  msgstr "Isso ativa a auto-detecção do isioma usado pelo usuário definido no cabeçalho ACCEPT_LANGUAGES. Assim o redirecionará para a primeira página acessada traduzida automaticamente."
456
  msgid "Select language"
457
  msgstr "Selecione o idioma"
458
 
459
+ #: wp/transposh_admin.php:734
 
 
 
 
 
460
  #, php-format
461
  #@ transposh
462
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
463
  msgstr "Sua configuração atual do PHP limita a memória a %s e está muito abaixo do recomendado. Isso pode gerar páginas em branco."
464
 
465
+ #: wp/transposh_admin.php:734
466
+ #: wp/transposh_admin.php:738
467
  #@ transposh
468
  msgid "Check Transposh FAQs"
469
  msgstr "Leia nosso FAQ"
470
 
471
+ #: wp/transposh_admin.php:738
472
  #@ transposh
473
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
474
  msgstr "Não localizamos suporte para um sistema de cache em memória. Instalando um a performance melhora."
475
 
476
+ #: wp/transposh_admin.php:424
477
  #@ transposh
478
  msgid "Allow search of translated languages (and the original language)"
479
  msgstr "Permite pesquisar nas páginas traduzidas (inclusive no idioma original)"
480
 
481
+ #: wp/transposh_admin.php:428
482
  #@ transposh
483
  msgid "Enable override for default locale"
484
  msgstr "Ativar sobrescrita para o local padrão"
485
 
486
+ #: wp/transposh_admin.php:429
487
  #@ transposh
488
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
489
  msgstr "Ativar sobrescrita do local padrão e configurar WP_LANG em páginas com idiomas padrão (como páginas não traduzidas e administrativas)"
490
 
491
+ #: wp/transposh_admin.php:465
492
  #@ transposh
493
  msgid "MSN API key"
494
  msgstr "MSN API Key"
495
 
496
+ #: wp/transposh_admin.php:466
497
+ #: wp/transposh_admin.php:469
 
498
  #@ transposh
499
  msgid "API Key"
500
  msgstr "API Key"
501
 
502
+ #: wp/transposh_admin.php:468
503
  #@ transposh
504
  msgid "Google API key"
505
  msgstr "Google API Key"
506
 
507
+ #: wp/transposh_admin.php:443
508
  #@ transposh
509
  msgid "Allow collecting usage statistics"
510
  msgstr "Permitir coleta de estatísticas de uso"
511
 
512
+ #: wp/transposh_postpublish.php:57
513
  #@ transposh
514
  msgid "Set post language"
515
  msgstr "Define o idioma dos posts"
516
 
517
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
518
  #@ default
519
  msgid "Default"
520
  msgstr "Padrão"
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr "Título:"
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr "O subwidget do Transposh não foi carregado corretamente"
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr "título"
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr "Idioma"
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr "Esta opção ativa a coleta de estatísticas pelo transposh para ajudar a melhorar o produto."
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr "Tradução"
553
 
554
+ #: wp/transposh_admin.php:390
 
 
 
 
 
555
  #@ transposh
556
  msgid "Language supported by one hour translation"
557
  msgstr ""
558
 
559
+ #: wp/transposh_admin.php:477
560
  #@ transposh
561
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, é o maior serviço online de tradução profissional, com milhares de clientes empresariais, incluindo 57% das empresas da Fortune 500 e mais de 15000 tradutores em todo o mundo."
563
 
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
  msgstr "A One Hour Translation fornece traduções profissionais rápidas e de elevada qualidade de e para qualquer língua, e possui a competência específica do domínio em localização de SW (Software), traduções técnicas, empresariais e jurídicas."
568
 
569
+ #: wp/transposh_admin.php:483
570
  #@ transposh
571
  msgid "One Hour Translation account ID"
572
  msgstr ""
573
 
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
  #@ transposh
577
  msgid "Account ID"
578
  msgstr ""
579
 
580
+ #: wp/transposh_admin.php:487
581
  #@ transposh
582
  msgid "One Hour Translation secret key"
583
  msgstr ""
584
 
585
+ #: wp/transposh_admin.php:499
586
  #, php-format
587
  #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
  msgstr ""
610
 
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
+ msgstr ""
615
+
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
+ msgstr ""
625
+
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
+ msgstr ""
660
+
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
  #, php-format
678
  #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
+ #: wp/transposh_admin.php:530
689
+ #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
+ msgstr ""
732
+
733
+ #: wp/transposh_admin.php:532
734
+ #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
+ msgstr ""
737
+
738
+ #: wp/transposh_admin.php:533
739
+ #@ transposh
740
+ msgid "Log file name"
741
+ msgstr ""
742
+
743
+ #: wp/transposh_admin.php:534
744
+ #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
+ msgstr ""
767
+
768
+ #: wp/transposh_admin.php:539
769
+ #@ transposh
770
+ msgid "Debug"
771
+ msgstr ""
772
+
773
+ #: wp/transposh_admin.php:541
774
+ #, php-format
775
+ #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
+ msgstr ""
778
+
779
+ #: wp/transposh_admin.php:553
780
+ #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
langs/transposh-ru_RU.po CHANGED
@@ -1,15 +1,15 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2010-10-13 10:21+0000\n"
6
- "PO-Revision-Date: 2011-01-29 17:12+0200\n"
7
  "Last-Translator: Janis <lv111@inbox.lv>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
  "X-Poedit-Language: \n"
14
  "X-Poedit-Country: \n"
15
  "X-Poedit-SourceCharset: utf-8\n"
@@ -19,8 +19,10 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: transposh.php:908
 
23
  #@ default
 
24
  msgid "Settings"
25
  msgstr "Настройки"
26
 
@@ -30,412 +32,333 @@ msgstr "Настройки"
30
  msgid "%s translated a phrase to %s with transposh:"
31
  msgstr "%s перевёл фразу на %s используя transposh:"
32
 
33
- #: wp/transposh_admin.php:165
34
  #@ transposh
35
  msgid "Transposh makes your blog translatable"
36
  msgstr "Transposh делает ваш блог переводимым"
37
 
38
- #: wp/transposh_admin.php:166
39
  #@ transposh
40
  msgid "Plugin homepage"
41
  msgstr "Домашняя страница плагина"
42
 
43
- #: wp/transposh_admin.php:167
44
  #@ transposh
45
  msgid "Frequently asked questions"
46
  msgstr "Часто задаваемые вопросы"
47
 
48
- #: wp/transposh_admin.php:175
49
- #@ transposh
50
- msgid "Transposh control center"
51
- msgstr "Контрольный центр Transposh"
52
-
53
- #: wp/transposh_admin.php:175
54
- #: wp/transposh_admin.php:243
55
- #: wp/transposh_postpublish.php:50
56
- #: wp/transposh_postpublish.php:51
57
- #: wp/transposh_widget.php:84
58
- #: wp/transposh_widget.php:311
59
  #@ transposh
60
  #@ default
61
  msgid "Transposh"
62
  msgstr "Transposh"
63
 
64
- #: wp/transposh_admin.php:212
65
- #@ transposh
66
- msgid "About this plugin"
67
- msgstr "О плагине"
68
-
69
- #: wp/transposh_admin.php:213
70
  #@ transposh
71
  msgid "Plugin news"
72
  msgstr "Новости плагина"
73
 
74
- #: wp/transposh_admin.php:214
75
  #@ transposh
76
  msgid "Plugin stats"
77
  msgstr "Статистика плагина"
78
 
79
- #: wp/transposh_admin.php:215
80
- #@ transposh
81
- msgid "Translate all"
82
- msgstr "Перевести всё"
83
-
84
- #: wp/transposh_admin.php:216
85
- #@ transposh
86
- msgid "Supported languages"
87
- msgstr "Поддерживаемые языки"
88
-
89
- #: wp/transposh_admin.php:217
90
- #@ transposh
91
- msgid "Translation settings"
92
- msgstr "Настройки перевода"
93
-
94
- #: wp/transposh_admin.php:218
95
- #@ transposh
96
- msgid "Automatic translation settings"
97
- msgstr "Настройки автоматического перевода"
98
-
99
- #: wp/transposh_admin.php:221
100
- #@ transposh
101
- msgid "Generic settings"
102
- msgstr "Общие настройки"
103
-
104
- #: wp/transposh_admin.php:222
105
- #@ transposh
106
- msgid "Database maintenance"
107
- msgstr "Управление базой данных"
108
-
109
- #: wp/transposh_admin.php:237
110
  #@ transposh
111
- msgid "Transposh community features"
112
- msgstr "Возможности сообщества Transposh"
113
-
114
- #: wp/transposh_admin.php:273
115
- #@ default
116
  msgid "Save Changes"
117
  msgstr "Сохранить Изменения"
118
 
119
- #: wp/transposh_admin.php:297
120
  #@ transposh
121
  msgid "Problems?"
122
  msgstr "Проблемы?"
123
 
124
- #: wp/transposh_admin.php:313
125
- #@ transposh
126
- msgid "Plugin Homepage"
127
- msgstr "Домашняя страница плагина"
128
-
129
- #: wp/transposh_admin.php:314
130
  #@ transposh
131
  msgid "Suggest a Feature"
132
  msgstr "Предложить функцию"
133
 
134
- #: wp/transposh_admin.php:316
135
  #@ transposh
136
  msgid "Report a Bug"
137
  msgstr "Сообщить об ошибке"
138
 
139
- #: wp/transposh_admin.php:333
140
  #@ transposh
141
  msgid "Translate by clicking the button below"
142
  msgstr "Переведите, нажав кнопку ниже"
143
 
144
- #: wp/transposh_admin.php:335
145
  #@ transposh
146
  msgid "Translate All Now"
147
  msgstr "Перевести всё сейчас"
148
 
149
- #: wp/transposh_admin.php:390
150
  #@ transposh
151
  msgid "Default Language (drag another language here to make it default)"
152
  msgstr "Основной язык (перетащите сюда другой язык, чтобы сделать его основным)"
153
 
154
- #: wp/transposh_admin.php:397
155
  #@ transposh
156
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
157
  msgstr "Доступные языки (Нажмите для переключения состояния языка - Перетащите, чтобы сортировать в виджете)"
158
 
159
- #: wp/transposh_admin.php:407
160
  #@ transposh
161
  msgid "Language supported by google translate"
162
  msgstr "Язык, поддерживаемый переводчиком google"
163
 
164
- #: wp/transposh_admin.php:409
165
  #@ transposh
166
  msgid "Language supported by bing translate"
167
  msgstr "Язык, поддерживаемый переводчиком bing"
168
 
169
- #: wp/transposh_admin.php:415
170
  #@ transposh
171
  msgid "Language is written from right to left"
172
  msgstr "Язык написан справа налево"
173
 
174
- #: wp/transposh_admin.php:420
175
  #@ transposh
176
  msgid "Display options:"
177
  msgstr "Опции отображения:"
178
 
179
- #: wp/transposh_admin.php:421
180
  #@ transposh
181
  msgid "Toggle names of languages between English and Original"
182
  msgstr "Переключить названия языков с английского на оригинал"
183
 
184
- #: wp/transposh_admin.php:422
185
  #@ transposh
186
  msgid "Make all languages active"
187
  msgstr "Сделать все языки активными"
188
 
189
- #: wp/transposh_admin.php:423
190
  #@ transposh
191
  msgid "Sort by language name"
192
  msgstr "Сортировать по названию языка"
193
 
194
- #: wp/transposh_admin.php:424
195
  #@ transposh
196
  msgid "Sort by lSO code"
197
  msgstr "Сортировать по коду lSO"
198
 
199
- #: wp/transposh_admin.php:425
200
- #@ transposh
201
- msgid "Legend:"
202
- msgstr "Обозначения:"
203
-
204
- #: wp/transposh_admin.php:425
205
- #@ transposh
206
- msgid "Green - active"
207
- msgstr "Зеленый - активный"
208
-
209
- #: wp/transposh_admin.php:425
210
- #@ transposh
211
- msgid "Yellow - translateable (only translators will see this language)"
212
- msgstr "Желтый - переводимый (только переводчики увидят этот язык)"
213
-
214
- #: wp/transposh_admin.php:425
215
- #@ transposh
216
- msgid "blank - inactive"
217
- msgstr "пустой - неактивный"
218
-
219
- #: wp/transposh_admin.php:447
220
  #@ transposh
221
  msgid "Who can translate ?"
222
  msgstr "Кто может переводить?"
223
 
224
- #: wp/transposh_admin.php:454
225
  #@ transposh
226
  msgid "Anonymous"
227
  msgstr "Аноним"
228
 
229
- #: wp/transposh_admin.php:460
230
  #@ transposh
231
  msgid "Enable default language translation"
232
  msgstr "Включить возможность перевода основного языка"
233
 
234
- #: wp/transposh_admin.php:460
235
  #@ transposh
236
  msgid "Allow translation of default language - useful for sites with more than one major language"
237
  msgstr "Разрешить возможность перевода основного языка - полезно для сайтов с двумя и более основными языками"
238
 
239
- #: wp/transposh_admin.php:467
240
  #@ transposh
241
  msgid "Enable search in translated languages"
242
  msgstr "Включить поиск на переведенных языках"
243
 
244
- #: wp/transposh_admin.php:474
245
  #@ transposh
246
  msgid "Enable url translation"
247
  msgstr "Включить перевод url"
248
 
249
- #: wp/transposh_admin.php:474
250
- #: wp/transposh_admin.php:481
251
  #@ transposh
252
  msgid "experimental"
253
  msgstr "экспериментальный"
254
 
255
- #: wp/transposh_admin.php:474
256
  #@ transposh
257
  msgid "Allow translation of permalinks and urls"
258
  msgstr "Разрешить перевод пермалинков и URL-адресов"
259
 
260
- #: wp/transposh_admin.php:481
261
  #@ transposh
262
  msgid "Enable gettext integration"
263
  msgstr "Включить интеграцию gettext"
264
 
265
- #: wp/transposh_admin.php:481
266
  #@ transposh
267
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
268
  msgstr "Включить интеграцию Transposh и существующего интерфейса gettext (файлы .po / .mo)"
269
 
270
- #: wp/transposh_admin.php:497
271
  #@ transposh
272
  msgid "Enable automatic translation"
273
  msgstr "Включить автоматический перевод"
274
 
275
- #: wp/transposh_admin.php:497
276
  #@ transposh
277
  msgid "Allow automatic translation of pages"
278
  msgstr "Разрешить автоматический перевод страниц"
279
 
280
- #: wp/transposh_admin.php:503
281
  #@ transposh
282
  msgid "Enable automatic translation after posting"
283
  msgstr "Включение автоматического перевода после публикации"
284
 
285
- #: wp/transposh_admin.php:503
286
  #@ transposh
287
  msgid "Do automatic translation immediately after a post has been published"
288
  msgstr "Производить автоматический перевод при публикации"
289
 
290
- #: wp/transposh_admin.php:520
291
  #@ transposh
292
  msgid "Select preferred auto translation engine"
293
  msgstr "Выбрать предпочтительный двигатель авто перевода"
294
 
295
- #: wp/transposh_admin.php:521
296
  #@ transposh
297
  msgid "Translation engine:"
298
  msgstr "Двигатель перевода:"
299
 
300
- #: wp/transposh_admin.php:523
301
  #@ transposh
302
  msgid "Google"
303
  msgstr "Google"
304
 
305
- #: wp/transposh_admin.php:524
306
  #@ transposh
307
  msgid "Bing"
308
  msgstr "Bing"
309
 
310
- #: wp/transposh_admin.php:578
311
  #@ transposh
312
  msgid "Rewrite URLs"
313
  msgstr "Переписать URL-адреса"
314
 
315
- #: wp/transposh_admin.php:586
316
  #@ transposh
317
  msgid "Add scripts to footer"
318
  msgstr "Добавить коды в дно сайта"
319
 
320
- #: wp/transposh_admin.php:592
321
  #@ transposh
322
  msgid "Auto detect language for users"
323
  msgstr "Автоматическое определение языка для пользователей"
324
 
325
- #: wp/transposh_admin.php:608
326
  #@ transposh
327
  msgid "Delete all automated translations"
328
  msgstr "Удалить все автоматизированные переводы"
329
 
330
- #: wp/transposh_admin.php:609
331
  #@ transposh
332
  msgid "Delete automated translations older than 14 days"
333
  msgstr "Удалить автоматизированные переводы старше 14 дней"
334
 
335
- #: wp/transposh_admin.php:614
336
- #@ transposh
337
- msgid "Backup service for human translation"
338
- msgstr "Сервис резервных копий для человеческого перевода"
339
-
340
- #: wp/transposh_admin.php:615
341
  #@ transposh
342
  msgid "Enable daily backup"
343
  msgstr "Включить ежедневное резервное копирование"
344
 
345
- #: wp/transposh_admin.php:616
346
  #@ transposh
347
  msgid "Enable live backup"
348
  msgstr "Включить живое резервное копирование"
349
 
350
- #: wp/transposh_admin.php:617
351
  #@ transposh
352
  msgid "Disable backup (Can be run manually by clicking the button below)"
353
  msgstr "Отключение резервного копирования (может быть запущен вручную, нажав кнопку ниже)"
354
 
355
- #: wp/transposh_admin.php:618
356
  #@ transposh
357
  msgid "Service Key:"
358
  msgstr "Сервис-ключ:"
359
 
360
- #: wp/transposh_admin.php:618
361
  #@ transposh
362
  msgid "How to restore?"
363
  msgstr "Как восстановить?"
364
 
365
- #: wp/transposh_admin.php:620
366
  #@ transposh
367
  msgid "Do Backup Now"
368
  msgstr "Сделать резервную копию сейчас"
369
 
370
- #: wp/transposh_db.php:682
371
  #@ transposh
372
  msgid "Database stats"
373
  msgstr "Статистика базы данных"
374
 
375
- #: wp/transposh_db.php:687
376
  #, php-format
377
  #@ transposh
378
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
379
  msgstr "Сумма переведенных фраз <strong style=\"color:red\">%s</strong>."
380
 
381
- #: wp/transposh_db.php:694
382
  #, php-format
383
  #@ transposh
384
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
385
  msgstr "<strong>%1s</strong> насчитывает <strong style=\"color:red\">%2s</strong> фраз человеческого перевода."
386
 
387
- #: wp/transposh_db.php:697
388
  #@ transposh
389
  msgid "Recent activity"
390
  msgstr "Последние действия"
391
 
392
- #: wp/transposh_db.php:702
393
  #, php-format
394
  #@ transposh
395
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
396
  msgstr "<strong>%1s</strong><br/>пользователь <strong>%2s</strong> перевел<br/>\"<strong>%3s</strong>\"<br/>на <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
397
 
398
- #: wp/transposh_widget.php:82
399
  #@ transposh
400
  msgid "Transposh language selection widget"
401
  msgstr "виджет выбора языка Transposh"
402
 
403
- #: wp/transposh_widget.php:284
404
  #@ transposh
405
  msgid "Set as default language"
406
  msgstr "Сделать основным языком"
407
 
408
- #: wp/transposh_widget.php:125
409
  #@ transposh
410
  msgid "Style:"
411
  msgstr "Стиль:"
412
 
413
- #: wp/transposh_admin.php:556
414
  #@ transposh
415
  msgid "Show progress bar when a client triggers automatic translation"
416
  msgstr "Показать индикатор продвижения, когда пользователь вызывает автоматический перевод"
417
 
418
- #: wp/transposh_admin.php:556
419
  #@ transposh
420
  msgid "Show progress bar"
421
  msgstr "Показать индикатор продвижения"
422
 
423
- #: wp/transposh_admin.php:558
424
  #@ transposh
425
  msgid "Widget will allow setting this language as user default"
426
  msgstr "Виджет позволит установить пользователю язык по умолчанию"
427
 
428
- #: wp/transposh_admin.php:558
429
  #@ transposh
430
  msgid "Allow user to set current language as default"
431
  msgstr "Разрешить пользователю установить текущий язык основным"
432
 
433
- #: wp/transposh_admin.php:560
434
  #@ transposh
435
  msgid "Transposh logo will not appear on widget"
436
  msgstr "логотип Transposh не будет отображаться в виджете"
437
 
438
- #: wp/transposh_admin.php:560
439
  #@ transposh
440
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
441
  msgstr "Убрать логотип Transposh (смотрите <a href=\"http://transposh.org/logoterms\">условия</a>)"
@@ -472,58 +395,57 @@ msgstr ""
472
  msgid "%VERSION%"
473
  msgstr ""
474
 
475
- #: wp/transposh_admin.php:411
476
  #@ transposh
477
  msgid "Language supported by apertium translate"
478
  msgstr ""
479
 
480
- #: wp/transposh_admin.php:580
481
  #@ transposh
482
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
483
  msgstr ""
484
 
485
- #: wp/transposh_admin.php:587
486
  #@ transposh
487
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
488
  msgstr ""
489
 
490
- #: wp/transposh_admin.php:593
491
  #@ transposh
492
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
493
  msgstr ""
494
 
495
- #: wp/transposh_admin.php:610
496
  #@ transposh
497
  msgid "Attempt to fix errors caused by previous versions - please backup first"
498
  msgstr ""
499
 
500
- #: wp/transposh_widget.php:314
501
  #@ transposh
502
  msgid "translation plugin for wordpress"
503
  msgstr ""
504
 
505
- #: wp/transposh_widget.php:317
506
  #@ transposh
507
  msgid "wordpress translation plugin"
508
  msgstr ""
509
 
510
- #: wp/transposh_widget.php:320
511
  #@ transposh
512
  msgid "translate your blog to 60+ languages"
513
  msgstr ""
514
 
515
- #: wp/transposh_widget.php:323
516
  #@ transposh
517
  msgid "website crowdsourcing translation plugin"
518
  msgstr ""
519
 
520
- #: wp/transposh_widget.php:326
521
  #@ transposh
522
  msgid "google translate and bing translate plugin for wordpress"
523
  msgstr ""
524
 
525
- #: wp/transposh_admin.php:562
526
- #: wp/transposh_admin.php:563
527
  #@ transposh
528
  msgid "Edit interface (and progress bar) theme:"
529
  msgstr ""
@@ -534,161 +456,483 @@ msgstr ""
534
  msgid "Select language"
535
  msgstr ""
536
 
537
- #: wp/transposh_admin.php:220
538
- #@ transposh
539
- msgid "Frontend settings"
540
- msgstr ""
541
-
542
- #: wp/transposh_admin.php:248
543
  #, php-format
544
  #@ transposh
545
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
546
  msgstr ""
547
 
548
- #: wp/transposh_admin.php:248
549
- #: wp/transposh_admin.php:252
550
  #@ transposh
551
  msgid "Check Transposh FAQs"
552
  msgstr ""
553
 
554
- #: wp/transposh_admin.php:252
555
  #@ transposh
556
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
557
  msgstr ""
558
 
559
- #: wp/transposh_admin.php:467
560
  #@ transposh
561
  msgid "Allow search of translated languages (and the original language)"
562
  msgstr ""
563
 
564
- #: wp/transposh_admin.php:488
565
  #@ transposh
566
  msgid "Enable override for default locale"
567
  msgstr ""
568
 
569
- #: wp/transposh_admin.php:488
570
  #@ transposh
571
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
572
  msgstr ""
573
 
574
- #: wp/transposh_admin.php:508
575
  #@ transposh
576
  msgid "MSN API key"
577
  msgstr ""
578
 
579
- #: wp/transposh_admin.php:509
580
- #: wp/transposh_admin.php:515
581
- #: wp/transposh_admin.php:540
582
  #@ transposh
583
  msgid "API Key"
584
  msgstr ""
585
 
586
- #: wp/transposh_admin.php:514
587
  #@ transposh
588
  msgid "Google API key"
589
  msgstr ""
590
 
591
- #: wp/transposh_admin.php:598
592
  #@ transposh
593
  msgid "Allow collecting usage statistics"
594
  msgstr ""
595
 
596
- #: wp/transposh_postpublish.php:52
597
  #@ transposh
598
  msgid "Set post language"
599
  msgstr ""
600
 
601
- #: wp/transposh_postpublish.php:53
602
- #@ transposh
603
- msgid "Set page language"
604
- msgstr ""
605
-
606
- #: wp/transposh_postpublish.php:198
607
  #@ default
608
  msgid "Default"
609
  msgstr ""
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr ""
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr ""
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr ""
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr ""
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
644
- #@ transposh
645
- msgid "Professional translation settings"
646
- msgstr ""
647
-
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
  msgid "Language supported by one hour translation"
651
  msgstr ""
652
 
653
- #: wp/transposh_admin.php:530
654
  #@ transposh
655
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
656
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, является ведущей компанией в мире, предоставляющей услуги профессионального перевода онлайн. Ее услугами пользуются тысячи корпоративных заказчиков, включая 57% из первых пятисот крупнейших компаний в рейтинге журнала Fortune. В компании работают более 15 тысяч переводчиков из разных стран мира."
657
 
658
- #: wp/transposh_admin.php:532
659
  #@ transposh
660
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr "One Hour Translation оказывает услуги профессионального перевода с/на любой язык в кратчайшие сроки, предоставляет услуги специализированного перевода при локализации программного обеспечения, осуществляет перевод технических, деловых и юридических документов."
662
 
663
- #: wp/transposh_admin.php:533
664
  #@ transposh
665
  msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
- #: wp/transposh_admin.php:534
 
669
  #@ transposh
670
  msgid "Account ID"
671
  msgstr ""
672
 
673
- #: wp/transposh_admin.php:539
674
  #@ transposh
675
  msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
685
  #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/transposh-translation-filter-for-wordpress\n"
5
  "POT-Creation-Date: 2010-10-13 10:21+0000\n"
6
+ "PO-Revision-Date: 2012-12-12 19:51:11+0000\n"
7
  "Last-Translator: Janis <lv111@inbox.lv>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;\n"
13
  "X-Poedit-Language: \n"
14
  "X-Poedit-Country: \n"
15
  "X-Poedit-SourceCharset: utf-8\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: transposh.php:921
23
+ #: wp/transposh_admin.php:59
24
  #@ default
25
+ #@ transposh
26
  msgid "Settings"
27
  msgstr "Настройки"
28
 
32
  msgid "%s translated a phrase to %s with transposh:"
33
  msgstr "%s перевёл фразу на %s используя transposh:"
34
 
35
+ #: wp/transposh_admin.php:185
36
  #@ transposh
37
  msgid "Transposh makes your blog translatable"
38
  msgstr "Transposh делает ваш блог переводимым"
39
 
40
+ #: wp/transposh_admin.php:187
41
  #@ transposh
42
  msgid "Plugin homepage"
43
  msgstr "Домашняя страница плагина"
44
 
45
+ #: wp/transposh_admin.php:188
46
  #@ transposh
47
  msgid "Frequently asked questions"
48
  msgstr "Часто задаваемые вопросы"
49
 
50
+ #: wp/transposh_postpublish.php:55
51
+ #: wp/transposh_widget.php:86
52
+ #: wp/transposh_widget.php:315
 
 
 
 
 
 
 
 
53
  #@ transposh
54
  #@ default
55
  msgid "Transposh"
56
  msgstr "Transposh"
57
 
58
+ #: wp/transposh_admin.php:283
 
 
 
 
 
59
  #@ transposh
60
  msgid "Plugin news"
61
  msgstr "Новости плагина"
62
 
63
+ #: wp/transposh_admin.php:284
64
  #@ transposh
65
  msgid "Plugin stats"
66
  msgstr "Статистика плагина"
67
 
68
+ #: wp/transposh_admin.php:316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  #@ transposh
 
 
 
 
 
70
  msgid "Save Changes"
71
  msgstr "Сохранить Изменения"
72
 
73
+ #: wp/transposh_admin.php:653
74
  #@ transposh
75
  msgid "Problems?"
76
  msgstr "Проблемы?"
77
 
78
+ #: wp/transposh_admin.php:616
 
 
 
 
 
79
  #@ transposh
80
  msgid "Suggest a Feature"
81
  msgstr "Предложить функцию"
82
 
83
+ #: wp/transposh_admin.php:617
84
  #@ transposh
85
  msgid "Report a Bug"
86
  msgstr "Сообщить об ошибке"
87
 
88
+ #: wp/transposh_admin.php:559
89
  #@ transposh
90
  msgid "Translate by clicking the button below"
91
  msgstr "Переведите, нажав кнопку ниже"
92
 
93
+ #: wp/transposh_admin.php:561
94
  #@ transposh
95
  msgid "Translate All Now"
96
  msgstr "Перевести всё сейчас"
97
 
98
+ #: wp/transposh_admin.php:364
99
  #@ transposh
100
  msgid "Default Language (drag another language here to make it default)"
101
  msgstr "Основной язык (перетащите сюда другой язык, чтобы сделать его основным)"
102
 
103
+ #: wp/transposh_admin.php:372
104
  #@ transposh
105
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
106
  msgstr "Доступные языки (Нажмите для переключения состояния языка - Перетащите, чтобы сортировать в виджете)"
107
 
108
+ #: wp/transposh_admin.php:384
109
  #@ transposh
110
  msgid "Language supported by google translate"
111
  msgstr "Язык, поддерживаемый переводчиком google"
112
 
113
+ #: wp/transposh_admin.php:386
114
  #@ transposh
115
  msgid "Language supported by bing translate"
116
  msgstr "Язык, поддерживаемый переводчиком bing"
117
 
118
+ #: wp/transposh_admin.php:392
119
  #@ transposh
120
  msgid "Language is written from right to left"
121
  msgstr "Язык написан справа налево"
122
 
123
+ #: wp/transposh_admin.php:397
124
  #@ transposh
125
  msgid "Display options:"
126
  msgstr "Опции отображения:"
127
 
128
+ #: wp/transposh_admin.php:398
129
  #@ transposh
130
  msgid "Toggle names of languages between English and Original"
131
  msgstr "Переключить названия языков с английского на оригинал"
132
 
133
+ #: wp/transposh_admin.php:399
134
  #@ transposh
135
  msgid "Make all languages active"
136
  msgstr "Сделать все языки активными"
137
 
138
+ #: wp/transposh_admin.php:400
139
  #@ transposh
140
  msgid "Sort by language name"
141
  msgstr "Сортировать по названию языка"
142
 
143
+ #: wp/transposh_admin.php:401
144
  #@ transposh
145
  msgid "Sort by lSO code"
146
  msgstr "Сортировать по коду lSO"
147
 
148
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  #@ transposh
150
  msgid "Who can translate ?"
151
  msgstr "Кто может переводить?"
152
 
153
+ #: wp/transposh_admin.php:419
154
  #@ transposh
155
  msgid "Anonymous"
156
  msgstr "Аноним"
157
 
158
+ #: wp/transposh_admin.php:421
159
  #@ transposh
160
  msgid "Enable default language translation"
161
  msgstr "Включить возможность перевода основного языка"
162
 
163
+ #: wp/transposh_admin.php:422
164
  #@ transposh
165
  msgid "Allow translation of default language - useful for sites with more than one major language"
166
  msgstr "Разрешить возможность перевода основного языка - полезно для сайтов с двумя и более основными языками"
167
 
168
+ #: wp/transposh_admin.php:423
169
  #@ transposh
170
  msgid "Enable search in translated languages"
171
  msgstr "Включить поиск на переведенных языках"
172
 
173
+ #: wp/transposh_admin.php:518
174
  #@ transposh
175
  msgid "Enable url translation"
176
  msgstr "Включить перевод url"
177
 
178
+ #: wp/transposh_admin.php:518
 
179
  #@ transposh
180
  msgid "experimental"
181
  msgstr "экспериментальный"
182
 
183
+ #: wp/transposh_admin.php:518
184
  #@ transposh
185
  msgid "Allow translation of permalinks and urls"
186
  msgstr "Разрешить перевод пермалинков и URL-адресов"
187
 
188
+ #: wp/transposh_admin.php:425
189
  #@ transposh
190
  msgid "Enable gettext integration"
191
  msgstr "Включить интеграцию gettext"
192
 
193
+ #: wp/transposh_admin.php:426
194
  #@ transposh
195
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
196
  msgstr "Включить интеграцию Transposh и существующего интерфейса gettext (файлы .po / .mo)"
197
 
198
+ #: wp/transposh_admin.php:460
199
  #@ transposh
200
  msgid "Enable automatic translation"
201
  msgstr "Включить автоматический перевод"
202
 
203
+ #: wp/transposh_admin.php:461
204
  #@ transposh
205
  msgid "Allow automatic translation of pages"
206
  msgstr "Разрешить автоматический перевод страниц"
207
 
208
+ #: wp/transposh_admin.php:462
209
  #@ transposh
210
  msgid "Enable automatic translation after posting"
211
  msgstr "Включение автоматического перевода после публикации"
212
 
213
+ #: wp/transposh_admin.php:463
214
  #@ transposh
215
  msgid "Do automatic translation immediately after a post has been published"
216
  msgstr "Производить автоматический перевод при публикации"
217
 
218
+ #: wp/transposh_admin.php:470
219
  #@ transposh
220
  msgid "Select preferred auto translation engine"
221
  msgstr "Выбрать предпочтительный двигатель авто перевода"
222
 
223
+ #: wp/transposh_admin.php:471
224
  #@ transposh
225
  msgid "Translation engine:"
226
  msgstr "Двигатель перевода:"
227
 
228
+ #: wp/transposh_admin.php:472
229
  #@ transposh
230
  msgid "Google"
231
  msgstr "Google"
232
 
233
+ #: wp/transposh_admin.php:473
234
  #@ transposh
235
  msgid "Bing"
236
  msgstr "Bing"
237
 
238
+ #: wp/transposh_admin.php:433
239
  #@ transposh
240
  msgid "Rewrite URLs"
241
  msgstr "Переписать URL-адреса"
242
 
243
+ #: wp/transposh_admin.php:437
244
  #@ transposh
245
  msgid "Add scripts to footer"
246
  msgstr "Добавить коды в дно сайта"
247
 
248
+ #: wp/transposh_admin.php:440
249
  #@ transposh
250
  msgid "Auto detect language for users"
251
  msgstr "Автоматическое определение языка для пользователей"
252
 
253
+ #: wp/transposh_admin.php:554
254
  #@ transposh
255
  msgid "Delete all automated translations"
256
  msgstr "Удалить все автоматизированные переводы"
257
 
258
+ #: wp/transposh_admin.php:555
259
  #@ transposh
260
  msgid "Delete automated translations older than 14 days"
261
  msgstr "Удалить автоматизированные переводы старше 14 дней"
262
 
263
+ #: wp/transposh_admin.php:451
 
 
 
 
 
264
  #@ transposh
265
  msgid "Enable daily backup"
266
  msgstr "Включить ежедневное резервное копирование"
267
 
268
+ #: wp/transposh_admin.php:452
269
  #@ transposh
270
  msgid "Enable live backup"
271
  msgstr "Включить живое резервное копирование"
272
 
273
+ #: wp/transposh_admin.php:453
274
  #@ transposh
275
  msgid "Disable backup (Can be run manually by clicking the button below)"
276
  msgstr "Отключение резервного копирования (может быть запущен вручную, нажав кнопку ниже)"
277
 
278
+ #: wp/transposh_admin.php:454
279
  #@ transposh
280
  msgid "Service Key:"
281
  msgstr "Сервис-ключ:"
282
 
283
+ #: wp/transposh_admin.php:454
284
  #@ transposh
285
  msgid "How to restore?"
286
  msgstr "Как восстановить?"
287
 
288
+ #: wp/transposh_admin.php:548
289
  #@ transposh
290
  msgid "Do Backup Now"
291
  msgstr "Сделать резервную копию сейчас"
292
 
293
+ #: wp/transposh_db.php:684
294
  #@ transposh
295
  msgid "Database stats"
296
  msgstr "Статистика базы данных"
297
 
298
+ #: wp/transposh_db.php:689
299
  #, php-format
300
  #@ transposh
301
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
302
  msgstr "Сумма переведенных фраз <strong style=\"color:red\">%s</strong>."
303
 
304
+ #: wp/transposh_db.php:696
305
  #, php-format
306
  #@ transposh
307
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
308
  msgstr "<strong>%1s</strong> насчитывает <strong style=\"color:red\">%2s</strong> фраз человеческого перевода."
309
 
310
+ #: wp/transposh_db.php:699
311
  #@ transposh
312
  msgid "Recent activity"
313
  msgstr "Последние действия"
314
 
315
+ #: wp/transposh_db.php:704
316
  #, php-format
317
  #@ transposh
318
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
319
  msgstr "<strong>%1s</strong><br/>пользователь <strong>%2s</strong> перевел<br/>\"<strong>%3s</strong>\"<br/>на <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
320
 
321
+ #: wp/transposh_widget.php:84
322
  #@ transposh
323
  msgid "Transposh language selection widget"
324
  msgstr "виджет выбора языка Transposh"
325
 
326
+ #: wp/transposh_widget.php:288
327
  #@ transposh
328
  msgid "Set as default language"
329
  msgstr "Сделать основным языком"
330
 
331
+ #: wp/transposh_widget.php:129
332
  #@ transposh
333
  msgid "Style:"
334
  msgstr "Стиль:"
335
 
336
+ #: wp/transposh_admin.php:506
337
  #@ transposh
338
  msgid "Show progress bar when a client triggers automatic translation"
339
  msgstr "Показать индикатор продвижения, когда пользователь вызывает автоматический перевод"
340
 
341
+ #: wp/transposh_admin.php:505
342
  #@ transposh
343
  msgid "Show progress bar"
344
  msgstr "Показать индикатор продвижения"
345
 
346
+ #: wp/transposh_admin.php:509
347
  #@ transposh
348
  msgid "Widget will allow setting this language as user default"
349
  msgstr "Виджет позволит установить пользователю язык по умолчанию"
350
 
351
+ #: wp/transposh_admin.php:508
352
  #@ transposh
353
  msgid "Allow user to set current language as default"
354
  msgstr "Разрешить пользователю установить текущий язык основным"
355
 
356
+ #: wp/transposh_admin.php:512
357
  #@ transposh
358
  msgid "Transposh logo will not appear on widget"
359
  msgstr "логотип Transposh не будет отображаться в виджете"
360
 
361
+ #: wp/transposh_admin.php:511
362
  #@ transposh
363
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
364
  msgstr "Убрать логотип Transposh (смотрите <a href=\"http://transposh.org/logoterms\">условия</a>)"
395
  msgid "%VERSION%"
396
  msgstr ""
397
 
398
+ #: wp/transposh_admin.php:388
399
  #@ transposh
400
  msgid "Language supported by apertium translate"
401
  msgstr ""
402
 
403
+ #: wp/transposh_admin.php:436
404
  #@ transposh
405
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
406
  msgstr ""
407
 
408
+ #: wp/transposh_admin.php:439
409
  #@ transposh
410
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
411
  msgstr ""
412
 
413
+ #: wp/transposh_admin.php:442
414
  #@ transposh
415
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
416
  msgstr ""
417
 
418
+ #: wp/transposh_admin.php:556
419
  #@ transposh
420
  msgid "Attempt to fix errors caused by previous versions - please backup first"
421
  msgstr ""
422
 
423
+ #: wp/transposh_widget.php:318
424
  #@ transposh
425
  msgid "translation plugin for wordpress"
426
  msgstr ""
427
 
428
+ #: wp/transposh_widget.php:321
429
  #@ transposh
430
  msgid "wordpress translation plugin"
431
  msgstr ""
432
 
433
+ #: wp/transposh_widget.php:324
434
  #@ transposh
435
  msgid "translate your blog to 60+ languages"
436
  msgstr ""
437
 
438
+ #: wp/transposh_widget.php:327
439
  #@ transposh
440
  msgid "website crowdsourcing translation plugin"
441
  msgstr ""
442
 
443
+ #: wp/transposh_widget.php:330
444
  #@ transposh
445
  msgid "google translate and bing translate plugin for wordpress"
446
  msgstr ""
447
 
448
+ #: wp/transposh_admin.php:514
 
449
  #@ transposh
450
  msgid "Edit interface (and progress bar) theme:"
451
  msgstr ""
456
  msgid "Select language"
457
  msgstr ""
458
 
459
+ #: wp/transposh_admin.php:734
 
 
 
 
 
460
  #, php-format
461
  #@ transposh
462
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
463
  msgstr ""
464
 
465
+ #: wp/transposh_admin.php:734
466
+ #: wp/transposh_admin.php:738
467
  #@ transposh
468
  msgid "Check Transposh FAQs"
469
  msgstr ""
470
 
471
+ #: wp/transposh_admin.php:738
472
  #@ transposh
473
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
474
  msgstr ""
475
 
476
+ #: wp/transposh_admin.php:424
477
  #@ transposh
478
  msgid "Allow search of translated languages (and the original language)"
479
  msgstr ""
480
 
481
+ #: wp/transposh_admin.php:428
482
  #@ transposh
483
  msgid "Enable override for default locale"
484
  msgstr ""
485
 
486
+ #: wp/transposh_admin.php:429
487
  #@ transposh
488
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
489
  msgstr ""
490
 
491
+ #: wp/transposh_admin.php:465
492
  #@ transposh
493
  msgid "MSN API key"
494
  msgstr ""
495
 
496
+ #: wp/transposh_admin.php:466
497
+ #: wp/transposh_admin.php:469
 
498
  #@ transposh
499
  msgid "API Key"
500
  msgstr ""
501
 
502
+ #: wp/transposh_admin.php:468
503
  #@ transposh
504
  msgid "Google API key"
505
  msgstr ""
506
 
507
+ #: wp/transposh_admin.php:443
508
  #@ transposh
509
  msgid "Allow collecting usage statistics"
510
  msgstr ""
511
 
512
+ #: wp/transposh_postpublish.php:57
513
  #@ transposh
514
  msgid "Set post language"
515
  msgstr ""
516
 
517
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
518
  #@ default
519
  msgid "Default"
520
  msgstr ""
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr ""
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr ""
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr ""
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr ""
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr ""
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr ""
553
 
554
+ #: wp/transposh_admin.php:390
 
 
 
 
 
555
  #@ transposh
556
  msgid "Language supported by one hour translation"
557
  msgstr ""
558
 
559
+ #: wp/transposh_admin.php:477
560
  #@ transposh
561
  msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
  msgstr "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, является ведущей компанией в мире, предоставляющей услуги профессионального перевода онлайн. Ее услугами пользуются тысячи корпоративных заказчиков, включая 57% из первых пятисот крупнейших компаний в рейтинге журнала Fortune. В компании работают более 15 тысяч переводчиков из разных стран мира."
563
 
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
  msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
  msgstr "One Hour Translation оказывает услуги профессионального перевода с/на любой язык в кратчайшие сроки, предоставляет услуги специализированного перевода при локализации программного обеспечения, осуществляет перевод технических, деловых и юридических документов."
568
 
569
+ #: wp/transposh_admin.php:483
570
  #@ transposh
571
  msgid "One Hour Translation account ID"
572
  msgstr ""
573
 
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
  #@ transposh
577
  msgid "Account ID"
578
  msgstr ""
579
 
580
+ #: wp/transposh_admin.php:487
581
  #@ transposh
582
  msgid "One Hour Translation secret key"
583
  msgstr ""
584
 
585
+ #: wp/transposh_admin.php:499
586
  #, php-format
587
  #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
+ msgstr ""
610
+
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
  msgstr ""
615
 
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
+ msgstr ""
625
+
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
+ msgstr ""
660
+
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
  #, php-format
678
  #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
+ #: wp/transposh_admin.php:530
689
+ #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
+ msgstr ""
732
+
733
+ #: wp/transposh_admin.php:532
734
+ #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
+ msgstr ""
737
+
738
+ #: wp/transposh_admin.php:533
739
+ #@ transposh
740
+ msgid "Log file name"
741
+ msgstr ""
742
+
743
+ #: wp/transposh_admin.php:534
744
+ #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
+ msgstr ""
767
+
768
+ #: wp/transposh_admin.php:539
769
+ #@ transposh
770
+ msgid "Debug"
771
+ msgstr ""
772
+
773
+ #: wp/transposh_admin.php:541
774
+ #, php-format
775
+ #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
+ msgstr ""
778
+
779
+ #: wp/transposh_admin.php:553
780
+ #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
langs/transposh-tr_TR.po CHANGED
@@ -3,13 +3,13 @@ msgstr ""
3
  "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2011-08-02 00:00:00+00:00\n"
6
- "PO-Revision-Date: 2011-09-25 12:45+0200\n"
7
  "Last-Translator: Semih Yeşilyurt http://kingdroid.net <info@kingdroid.net>\n"
8
  "Language-Team: Turkish <semih.yesilyurt@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
  "X-Poedit-Language: Turkish\n"
14
  "X-Poedit-Country: TURKEY\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
@@ -25,412 +25,333 @@ msgstr ""
25
  msgid "%s translated a phrase to %s with transposh:"
26
  msgstr "%sTransposh ile bir %s ifade tercüme:"
27
 
28
- #: wp/transposh_admin.php:297
29
  #@ transposh
30
  msgid "Problems?"
31
  msgstr "Problemler?"
32
 
33
- #: wp/transposh_widget.php:82
34
  #@ transposh
35
  msgid "Transposh language selection widget"
36
  msgstr "Transposh bileşeni dili seçin"
37
 
38
- #: wp/transposh_admin.php:212
39
- #@ transposh
40
- msgid "About this plugin"
41
- msgstr "Eklenti hakkında"
42
-
43
- #: wp/transposh_admin.php:213
44
  #@ transposh
45
  msgid "Plugin news"
46
  msgstr "Eklenti haberleri"
47
 
48
- #: wp/transposh_admin.php:214
49
  #@ transposh
50
  msgid "Plugin stats"
51
  msgstr "Eklenti istatistikleri"
52
 
53
- #: wp/transposh_admin.php:215
54
- #@ transposh
55
- msgid "Translate all"
56
- msgstr "Hepsini tercüme et"
57
-
58
- #: wp/transposh_admin.php:216
59
- #@ transposh
60
- msgid "Supported languages"
61
- msgstr "Desteklenen diller"
62
-
63
- #: wp/transposh_admin.php:217
64
- #@ transposh
65
- msgid "Translation settings"
66
- msgstr "Tercüme ayarları"
67
-
68
- #: wp/transposh_admin.php:218
69
- #@ transposh
70
- msgid "Automatic translation settings"
71
- msgstr "Otomatik tercüme ayarları"
72
-
73
- #: wp/transposh_admin.php:221
74
- #@ transposh
75
- msgid "Generic settings"
76
- msgstr "Genel ayarlar"
77
-
78
- #: wp/transposh_admin.php:222
79
- #@ transposh
80
- msgid "Database maintenance"
81
- msgstr "Veritabanı bakımı"
82
-
83
- #: wp/transposh_admin.php:237
84
- #@ transposh
85
- msgid "Transposh community features"
86
- msgstr "Transposh topluluğu önerileir"
87
-
88
- #: wp/transposh_admin.php:175
89
- #: wp/transposh_admin.php:243
90
- #: wp/transposh_postpublish.php:50
91
- #: wp/transposh_postpublish.php:51
92
- #: wp/transposh_widget.php:84
93
- #: wp/transposh_widget.php:311
94
  #@ transposh
95
  #@ default
96
  msgid "Transposh"
97
  msgstr "Transposh"
98
 
99
- #: wp/transposh_admin.php:333
100
  #@ transposh
101
  msgid "Translate by clicking the button below"
102
  msgstr "Butonun altındaki diller"
103
 
104
- #: wp/transposh_admin.php:335
105
  #@ transposh
106
  msgid "Translate All Now"
107
  msgstr "Şimdi Hepsini Tercüme Et"
108
 
109
- #: wp/transposh_admin.php:313
110
- #@ transposh
111
- msgid "Plugin Homepage"
112
- msgstr "Eklenti Ana Sayfası"
113
-
114
- #: wp/transposh_admin.php:314
115
  #@ transposh
116
  msgid "Suggest a Feature"
117
  msgstr "Bir özellik önerin"
118
 
119
- #: wp/transposh_admin.php:316
120
  #@ transposh
121
  msgid "Report a Bug"
122
  msgstr "Hata Bildir"
123
 
124
- #: wp/transposh_admin.php:390
125
  #@ transposh
126
  msgid "Default Language (drag another language here to make it default)"
127
  msgstr "Varsayılan Dili Seçin (varsayılan dili seçmek için aşağıdan, buraya sürükleyin)"
128
 
129
- #: wp/transposh_admin.php:397
130
  #@ transposh
131
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
132
  msgstr "Kullanılabilir Diller (Etkinleştirmek için tıklayın - Bileşende sıralamak için sürükleyin)"
133
 
134
- #: wp/transposh_admin.php:407
135
  #@ transposh
136
  msgid "Language supported by google translate"
137
  msgstr "Google translate tarafından desteklenen diller"
138
 
139
- #: wp/transposh_admin.php:409
140
  #@ transposh
141
  msgid "Language supported by bing translate"
142
  msgstr "Bing translate tarafından desteklenen diller"
143
 
144
- #: wp/transposh_admin.php:415
145
  #@ transposh
146
  msgid "Language is written from right to left"
147
  msgstr "Dil, sağdan sola doğru yazılır"
148
 
149
- #: wp/transposh_admin.php:420
150
  #@ transposh
151
  msgid "Display options:"
152
  msgstr "Ekran seçenekleri:"
153
 
154
- #: wp/transposh_admin.php:421
155
  #@ transposh
156
  msgid "Toggle names of languages between English and Original"
157
  msgstr "İngilizce ve Orjinal dile göre sırala"
158
 
159
- #: wp/transposh_admin.php:422
160
  #@ transposh
161
  msgid "Make all languages active"
162
  msgstr "Tüm diller aktif olsun"
163
 
164
- #: wp/transposh_admin.php:423
165
  #@ transposh
166
  msgid "Sort by language name"
167
  msgstr "Dil ismine göre sırala"
168
 
169
- #: wp/transposh_admin.php:424
170
  #@ transposh
171
  msgid "Sort by lSO code"
172
  msgstr "ISO koduna göre sıralayın"
173
 
174
- #: wp/transposh_admin.php:425
175
- #@ transposh
176
- msgid "Legend:"
177
- msgstr "Yetkiler"
178
-
179
- #: wp/transposh_admin.php:425
180
- #@ transposh
181
- msgid "Green - active"
182
- msgstr "Yeşil - Aktif"
183
-
184
- #: wp/transposh_admin.php:425
185
- #@ transposh
186
- msgid "Yellow - translateable (only translators will see this language)"
187
- msgstr "Yeşil - çevrilebilir (sadece çevirmenler bu dili görebilir)"
188
-
189
- #: wp/transposh_admin.php:425
190
- #@ transposh
191
- msgid "blank - inactive"
192
- msgstr "boş - pasif"
193
-
194
- #: wp/transposh_admin.php:447
195
  #@ transposh
196
  msgid "Who can translate ?"
197
  msgstr "Kimler tercüme yapabilir?"
198
 
199
- #: wp/transposh_admin.php:454
200
  #@ transposh
201
  msgid "Anonymous"
202
  msgstr "Anonim"
203
 
204
- #: wp/transposh_admin.php:460
205
  #@ transposh
206
  msgid "Enable default language translation"
207
  msgstr "Varsayılan dili çevirme etkin"
208
 
209
- #: wp/transposh_admin.php:460
210
  #@ transposh
211
  msgid "Allow translation of default language - useful for sites with more than one major language"
212
  msgstr "Birden fazla ana dili olan siteler için yararlı - varsayılan dil çeviri izni"
213
 
214
- #: wp/transposh_admin.php:467
215
  #@ transposh
216
  msgid "Enable search in translated languages"
217
  msgstr "Tercüme edilmiş sayfada arama yapılabilsin"
218
 
219
- #: wp/transposh_admin.php:474
220
  #@ transposh
221
  msgid "Allow translation of permalinks and urls"
222
  msgstr "Kalıcı URL'lere izin verilsin"
223
 
224
- #: wp/transposh_admin.php:497
225
  #@ transposh
226
  msgid "Enable automatic translation"
227
  msgstr "Otomatik tercüme aktif"
228
 
229
- #: wp/transposh_admin.php:497
230
  #@ transposh
231
  msgid "Allow automatic translation of pages"
232
  msgstr "Sayfaları otomatik çevirmeye izin verilsin"
233
 
234
- #: wp/transposh_admin.php:503
235
  #@ transposh
236
  msgid "Enable automatic translation after posting"
237
  msgstr "Sonraki yazıyı çevirme aktif olsun"
238
 
239
- #: wp/transposh_admin.php:503
240
  #@ transposh
241
  msgid "Do automatic translation immediately after a post has been published"
242
  msgstr "Yazı yayınlandıktan hemen sonra otomatik olarak çeviri yapılsın"
243
 
244
- #: wp/transposh_admin.php:520
245
  #@ transposh
246
  msgid "Select preferred auto translation engine"
247
  msgstr "Tercümeyi hangisi yapsın?"
248
 
249
- #: wp/transposh_admin.php:521
250
  #@ transposh
251
  msgid "Translation engine:"
252
  msgstr "Arama Motoru:"
253
 
254
- #: wp/transposh_admin.php:523
255
  #@ transposh
256
  msgid "Google"
257
  msgstr "Google"
258
 
259
- #: wp/transposh_admin.php:524
260
  #@ transposh
261
  msgid "Bing"
262
  msgstr "Bing"
263
 
264
- #: wp/transposh_admin.php:578
265
  #@ transposh
266
  msgid "Rewrite URLs"
267
  msgstr "Rewrite URL'ler"
268
 
269
- #: wp/transposh_admin.php:586
270
  #@ transposh
271
  msgid "Add scripts to footer"
272
  msgstr "Footer'a script ekle"
273
 
274
- #: wp/transposh_admin.php:587
275
  #@ transposh
276
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
277
  msgstr "Başlığının yerine sayfa altbilgisi yerleştirin, sayfaların daha hızlı yüklenmesini sağlar. Temaya uygun altbilgi desteği olması gerekir."
278
 
279
- #: wp/transposh_admin.php:592
280
  #@ transposh
281
  msgid "Auto detect language for users"
282
  msgstr "Kullanıcının dilini otomatik tespit et"
283
 
284
- #: wp/transposh_admin.php:593
285
  #@ transposh
286
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
287
  msgstr "Gönderilen ACCEPT_LANGUAGES komutuyla ziyaretçinin dilini otomatik olarak tespit edecektir. Bu oturumda aynı sayfaya eriştiğinde onu çevrilmiş sayfaya yönlendirecektir."
288
 
289
- #: wp/transposh_admin.php:608
290
  #@ transposh
291
  msgid "Delete all automated translations"
292
  msgstr "Tüm otomatik çevirileri sil"
293
 
294
- #: wp/transposh_admin.php:609
295
  #@ transposh
296
  msgid "Delete automated translations older than 14 days"
297
  msgstr "14 günden eski otomatik çevrilmiş sayfaları sil"
298
 
299
- #: wp/transposh_admin.php:614
300
- #@ transposh
301
- msgid "Backup service for human translation"
302
- msgstr "İnsan tercümelerini yedekleme hizmeti"
303
-
304
- #: wp/transposh_admin.php:615
305
  #@ transposh
306
  msgid "Enable daily backup"
307
  msgstr "Günlük yedeklemeyi etkinleştir"
308
 
309
- #: wp/transposh_admin.php:616
310
  #@ transposh
311
  msgid "Enable live backup"
312
  msgstr "Canlı yedeklemeyi etkinleştir"
313
 
314
- #: wp/transposh_admin.php:617
315
  #@ transposh
316
  msgid "Disable backup (Can be run manually by clicking the button below)"
317
  msgstr "Yedeklemeyi devre dışı bırak (şimdi yedekle düğmesine tıklayarak yedekleme yapabilirsiniz)"
318
 
319
- #: wp/transposh_admin.php:618
320
  #@ transposh
321
  msgid "How to restore?"
322
  msgstr "Nasıl geri yüklenir?"
323
 
324
- #: wp/transposh_admin.php:620
325
  #@ transposh
326
  msgid "Do Backup Now"
327
  msgstr "Şimdi yedekle"
328
 
329
- #: wp/transposh_admin.php:165
330
  #@ transposh
331
  msgid "Transposh makes your blog translatable"
332
  msgstr "Transposh makes your blog translatable"
333
 
334
- #: wp/transposh_admin.php:166
335
  #@ transposh
336
  msgid "Plugin homepage"
337
  msgstr "Eklenti Ana sayfası"
338
 
339
- #: wp/transposh_admin.php:167
340
  #@ transposh
341
  msgid "Frequently asked questions"
342
  msgstr "Sıkça sorulan sorular"
343
 
344
- #: wp/transposh_admin.php:175
345
- #@ transposh
346
- msgid "Transposh control center"
347
- msgstr "Transposh kontrol merkezi"
348
-
349
- #: wp/transposh_admin.php:474
350
  #@ transposh
351
  msgid "Enable url translation"
352
  msgstr "URL tercümesini etkinleştirin"
353
 
354
- #: wp/transposh_admin.php:474
355
- #: wp/transposh_admin.php:481
356
  #@ transposh
357
  msgid "experimental"
358
  msgstr "deneysel"
359
 
360
- #: wp/transposh_admin.php:580
361
  #@ transposh
362
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
363
  msgstr "URL'leri yeniden yazmak için arama motoru dostu, örn. ( http://transposh.org/<strong>en</strong> ). Kalıcı bağlantıların etkinleştirilmiş olması gerekir."
364
 
365
- #: wp/transposh_db.php:682
366
  #@ transposh
367
  msgid "Database stats"
368
  msgstr "Veritabanı istatistikleri"
369
 
370
- #: wp/transposh_db.php:687
371
  #, php-format
372
  #@ transposh
373
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
374
  msgstr "Toplam <strong style=\"color:red\">%s</strong> cümle tercüme edildi."
375
 
376
- #: wp/transposh_db.php:694
377
  #, php-format
378
  #@ transposh
379
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
380
  msgstr "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> insan cümle çevirisi vardır."
381
 
382
- #: wp/transposh_db.php:697
383
  #@ transposh
384
  msgid "Recent activity"
385
  msgstr "Son etkinlikler"
386
 
387
- #: wp/transposh_db.php:702
388
  #, php-format
389
  #@ transposh
390
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
391
  msgstr "On <strong>%1s</strong><br/>kullanıcı <strong>%2s</strong> tercüme<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
392
 
393
- #: wp/transposh_widget.php:125
394
  #@ transposh
395
  msgid "Style:"
396
  msgstr "Stil:"
397
 
398
- #: wp/transposh_admin.php:556
399
  #@ transposh
400
  msgid "Show progress bar when a client triggers automatic translation"
401
  msgstr "otomatik çeviri yapılırken ilerleme çubuğunu göster"
402
 
403
- #: wp/transposh_admin.php:556
404
  #@ transposh
405
  msgid "Show progress bar"
406
  msgstr "İlerleme çubuğunu göster"
407
 
408
- #: wp/transposh_admin.php:558
409
  #@ transposh
410
  msgid "Widget will allow setting this language as user default"
411
  msgstr "Bileşen kullanıcının varsayılan olarak bu dil ayarına izin verecek"
412
 
413
- #: wp/transposh_admin.php:558
414
  #@ transposh
415
  msgid "Allow user to set current language as default"
416
  msgstr "Kullanıcının varsayılan olarak geçerli dilini ayarlamak için izin ver"
417
 
418
- #: wp/transposh_admin.php:560
419
  #@ transposh
420
  msgid "Transposh logo will not appear on widget"
421
  msgstr "Transposh logosu bileşende görünmez"
422
 
423
- #: wp/transposh_admin.php:560
424
  #@ transposh
425
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
426
  msgstr "Transhposh logosunu sil (bkz. <a href=\"http://transposh.org/logoterms\">şartlar</a>)"
427
 
428
- #: wp/transposh_admin.php:618
429
  #@ transposh
430
  msgid "Service Key:"
431
  msgstr "Hizmet Key:"
432
 
433
- #: wp/transposh_widget.php:284
434
  #@ transposh
435
  msgid "Set as default language"
436
  msgstr "Varsayılan dil olarak ayarlayın"
@@ -467,115 +388,111 @@ msgstr "Transposh Takımı"
467
  msgid "%VERSION%"
468
  msgstr "%VERSION%"
469
 
470
- #: transposh.php:908
 
471
  #@ default
 
472
  msgid "Settings"
473
  msgstr "Ayarlar"
474
 
475
- #: wp/transposh_admin.php:273
476
- #@ default
477
  msgid "Save Changes"
478
  msgstr "Değişiklikleri Kaydet"
479
 
480
- #: wp/transposh_admin.php:481
481
  #@ transposh
482
  msgid "Enable gettext integration"
483
  msgstr "Gettext entegrasyonunu etkinleştirin"
484
 
485
- #: wp/transposh_admin.php:481
486
  #@ transposh
487
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
488
  msgstr "Mevcut gettext arayüzü (.po / .mo dosyaları) ile Transposh entegrasyonu etkinleştirin"
489
 
490
- #: wp/transposh_admin.php:411
491
  #@ transposh
492
  msgid "Language supported by apertium translate"
493
  msgstr "Apertium translate tarafından desteklenen dil"
494
 
495
- #: wp/transposh_admin.php:610
496
  #@ transposh
497
  msgid "Attempt to fix errors caused by previous versions - please backup first"
498
  msgstr "Önceki sürümleri tarafından kaynaklanan hataların gidermek için çalıştır - Lütfen yedekleme yapın"
499
 
500
- #: wp/transposh_widget.php:314
501
  #@ transposh
502
  msgid "translation plugin for wordpress"
503
  msgstr "wordpress için çeviri eklentisi"
504
 
505
- #: wp/transposh_widget.php:317
506
  #@ transposh
507
  msgid "wordpress translation plugin"
508
  msgstr "WordPress çeviri eklentisi"
509
 
510
- #: wp/transposh_widget.php:320
511
  #@ transposh
512
  msgid "translate your blog to 60+ languages"
513
  msgstr "Blogunuzu 60+ dile çevirin"
514
 
515
- #: wp/transposh_widget.php:323
516
  #@ transposh
517
  msgid "website crowdsourcing translation plugin"
518
  msgstr "web sitesi crowdsourcing çeviri eklentisi"
519
 
520
- #: wp/transposh_widget.php:326
521
  #@ transposh
522
  msgid "google translate and bing translate plugin for wordpress"
523
  msgstr "Wordpres için google translate ve bing translate eklentisi"
524
 
525
- #: wp/transposh_admin.php:562
526
- #: wp/transposh_admin.php:563
527
  #@ transposh
528
  msgid "Edit interface (and progress bar) theme:"
529
  msgstr "İlerleme çubuğu arayüzünü düzenle"
530
 
531
- #: wp/transposh_admin.php:467
532
  #@ transposh
533
  msgid "Allow search of translated languages (and the original language)"
534
  msgstr "Tercüme dilleri Bulmaya izin ver (ve orijinal dili)"
535
 
536
- #: wp/transposh_admin.php:488
537
  #@ transposh
538
  msgid "Enable override for default locale"
539
  msgstr "Varsayılan yerel ayar için geçersiz kılmayı etkinleştirin"
540
 
541
- #: wp/transposh_admin.php:488
542
  #@ transposh
543
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
544
  msgstr "(Çevrilmemiş sayfaları ve yönetici sayfaları gibi) varsayılan dillerin sayfaları WP_LANG varsayılan yerel geçersiz etkinleştirin"
545
 
546
- #: wp/transposh_admin.php:248
547
  #, php-format
548
  #@ transposh
549
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
550
  msgstr "Boş sayfalar lütfen artırmayı düşünebilirsiniz yaşarsanız %s geçerli PHP bellek sınırı oldukça düşüktür."
551
 
552
- #: wp/transposh_admin.php:252
553
  #@ transposh
554
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
555
  msgstr "Biz kurulu bir performans artırıcı bulamadık, bir önbelleğe alma motoru bulamadık"
556
 
557
- #: wp/transposh_postpublish.php:52
558
  #@ transposh
559
  msgid "Set post language"
560
  msgstr "Mesaj dili olarak ayarlayın"
561
 
562
- #: wp/transposh_postpublish.php:53
563
- #@ transposh
564
- msgid "Set page language"
565
- msgstr "Sayfa dili olarak ayarlayın"
566
-
567
- #: wp/transposh_postpublish.php:198
568
  #@ default
569
  msgid "Default"
570
  msgstr "Varsayılan"
571
 
572
- #: wp/transposh_admin.php:248
573
- #: wp/transposh_admin.php:252
574
  #@ transposh
575
  msgid "Check Transposh FAQs"
576
  msgstr "Transposh SSS kontrol edin"
577
 
578
- #: wp/transposh_admin.php:598
579
  #@ transposh
580
  msgid "Allow collecting usage statistics"
581
  msgstr "Kullanım istatistikleri toplamaya izin ver"
@@ -586,109 +503,436 @@ msgstr "Kullanım istatistikleri toplamaya izin ver"
586
  msgid "Select language"
587
  msgstr ""
588
 
589
- #: wp/transposh_admin.php:220
590
- #@ transposh
591
- msgid "Frontend settings"
592
- msgstr ""
593
-
594
- #: wp/transposh_admin.php:508
595
  #@ transposh
596
  msgid "MSN API key"
597
  msgstr ""
598
 
599
- #: wp/transposh_admin.php:509
600
- #: wp/transposh_admin.php:515
601
- #: wp/transposh_admin.php:540
602
  #@ transposh
603
  msgid "API Key"
604
  msgstr ""
605
 
606
- #: wp/transposh_admin.php:514
607
  #@ transposh
608
  msgid "Google API key"
609
  msgstr ""
610
 
611
- #: wp/transposh_widget.php:120
612
  #@ transposh
613
  msgid "Title:"
614
  msgstr ""
615
 
616
- #: wp/transposh_widget.php:252
617
  #@ transposh
618
  msgid "Transposh subwidget was not loaded correctly"
619
  msgstr ""
620
 
621
  #. TRANSLATORS: no need to translate this string
622
- #: wp/transposh_widget.php:269
623
  #@ transposh
624
  msgid "title"
625
  msgstr ""
626
 
627
- #: wp/transposh_admin.php:640
628
  #@ transposh
629
  msgid "Language"
630
  msgstr ""
631
 
632
- #: wp/transposh_admin.php:598
633
  #@ transposh
634
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
635
  msgstr ""
636
 
637
  #. TRANSLATORS: this will be the default widget title
638
- #: wp/transposh_widget.php:115
639
  #@ transposh
640
  msgid "Translation"
641
  msgstr ""
642
 
643
- #: wp/transposh_admin.php:219
 
 
 
 
 
 
 
 
 
 
644
  #@ transposh
645
- msgid "Professional translation settings"
646
  msgstr ""
647
 
648
- #: wp/transposh_admin.php:413
649
  #@ transposh
650
- msgid "Language supported by one hour translation"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
651
  msgstr ""
652
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
653
  #: wp/transposh_admin.php:530
654
  #@ transposh
655
- msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
656
  msgstr ""
657
 
658
  #: wp/transposh_admin.php:532
659
  #@ transposh
660
- msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
661
  msgstr ""
662
 
663
  #: wp/transposh_admin.php:533
664
  #@ transposh
665
- msgid "One Hour Translation account ID"
666
  msgstr ""
667
 
668
  #: wp/transposh_admin.php:534
669
  #@ transposh
670
- msgid "Account ID"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671
  msgstr ""
672
 
673
  #: wp/transposh_admin.php:539
674
  #@ transposh
675
- msgid "One Hour Translation secret key"
676
  msgstr ""
677
 
678
- #: wp/transposh_admin.php:546
679
  #, php-format
680
  #@ transposh
681
- msgid "%d Phrases currently queued for next job in ~%d minutes"
682
  msgstr ""
683
 
684
- #: wp/transposh_admin.php:551
685
- #, php-format
686
  #@ transposh
687
- msgid "%d projects have been submitted and waiting for completion"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  msgstr ""
689
 
690
  #: wp/transposh_admin.php:636
691
  #@ transposh
692
- msgid "Unset"
 
 
 
 
 
693
  msgstr ""
694
 
3
  "Project-Id-Version: Transposh Translation Filter v%VERSION%\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: 2011-08-02 00:00:00+00:00\n"
6
+ "PO-Revision-Date: 2012-12-12 19:51:17+0000\n"
7
  "Last-Translator: Semih Yeşilyurt http://kingdroid.net <info@kingdroid.net>\n"
8
  "Language-Team: Turkish <semih.yesilyurt@gmail.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=1; plural=0;\n"
13
  "X-Poedit-Language: Turkish\n"
14
  "X-Poedit-Country: TURKEY\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
25
  msgid "%s translated a phrase to %s with transposh:"
26
  msgstr "%sTransposh ile bir %s ifade tercüme:"
27
 
28
+ #: wp/transposh_admin.php:653
29
  #@ transposh
30
  msgid "Problems?"
31
  msgstr "Problemler?"
32
 
33
+ #: wp/transposh_widget.php:84
34
  #@ transposh
35
  msgid "Transposh language selection widget"
36
  msgstr "Transposh bileşeni dili seçin"
37
 
38
+ #: wp/transposh_admin.php:283
 
 
 
 
 
39
  #@ transposh
40
  msgid "Plugin news"
41
  msgstr "Eklenti haberleri"
42
 
43
+ #: wp/transposh_admin.php:284
44
  #@ transposh
45
  msgid "Plugin stats"
46
  msgstr "Eklenti istatistikleri"
47
 
48
+ #: wp/transposh_postpublish.php:55
49
+ #: wp/transposh_widget.php:86
50
+ #: wp/transposh_widget.php:315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  #@ transposh
52
  #@ default
53
  msgid "Transposh"
54
  msgstr "Transposh"
55
 
56
+ #: wp/transposh_admin.php:559
57
  #@ transposh
58
  msgid "Translate by clicking the button below"
59
  msgstr "Butonun altındaki diller"
60
 
61
+ #: wp/transposh_admin.php:561
62
  #@ transposh
63
  msgid "Translate All Now"
64
  msgstr "Şimdi Hepsini Tercüme Et"
65
 
66
+ #: wp/transposh_admin.php:616
 
 
 
 
 
67
  #@ transposh
68
  msgid "Suggest a Feature"
69
  msgstr "Bir özellik önerin"
70
 
71
+ #: wp/transposh_admin.php:617
72
  #@ transposh
73
  msgid "Report a Bug"
74
  msgstr "Hata Bildir"
75
 
76
+ #: wp/transposh_admin.php:364
77
  #@ transposh
78
  msgid "Default Language (drag another language here to make it default)"
79
  msgstr "Varsayılan Dili Seçin (varsayılan dili seçmek için aşağıdan, buraya sürükleyin)"
80
 
81
+ #: wp/transposh_admin.php:372
82
  #@ transposh
83
  msgid "Available Languages (Click to toggle language state - Drag to sort in the widget)"
84
  msgstr "Kullanılabilir Diller (Etkinleştirmek için tıklayın - Bileşende sıralamak için sürükleyin)"
85
 
86
+ #: wp/transposh_admin.php:384
87
  #@ transposh
88
  msgid "Language supported by google translate"
89
  msgstr "Google translate tarafından desteklenen diller"
90
 
91
+ #: wp/transposh_admin.php:386
92
  #@ transposh
93
  msgid "Language supported by bing translate"
94
  msgstr "Bing translate tarafından desteklenen diller"
95
 
96
+ #: wp/transposh_admin.php:392
97
  #@ transposh
98
  msgid "Language is written from right to left"
99
  msgstr "Dil, sağdan sola doğru yazılır"
100
 
101
+ #: wp/transposh_admin.php:397
102
  #@ transposh
103
  msgid "Display options:"
104
  msgstr "Ekran seçenekleri:"
105
 
106
+ #: wp/transposh_admin.php:398
107
  #@ transposh
108
  msgid "Toggle names of languages between English and Original"
109
  msgstr "İngilizce ve Orjinal dile göre sırala"
110
 
111
+ #: wp/transposh_admin.php:399
112
  #@ transposh
113
  msgid "Make all languages active"
114
  msgstr "Tüm diller aktif olsun"
115
 
116
+ #: wp/transposh_admin.php:400
117
  #@ transposh
118
  msgid "Sort by language name"
119
  msgstr "Dil ismine göre sırala"
120
 
121
+ #: wp/transposh_admin.php:401
122
  #@ transposh
123
  msgid "Sort by lSO code"
124
  msgstr "ISO koduna göre sıralayın"
125
 
126
+ #: wp/transposh_admin.php:412
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  #@ transposh
128
  msgid "Who can translate ?"
129
  msgstr "Kimler tercüme yapabilir?"
130
 
131
+ #: wp/transposh_admin.php:419
132
  #@ transposh
133
  msgid "Anonymous"
134
  msgstr "Anonim"
135
 
136
+ #: wp/transposh_admin.php:421
137
  #@ transposh
138
  msgid "Enable default language translation"
139
  msgstr "Varsayılan dili çevirme etkin"
140
 
141
+ #: wp/transposh_admin.php:422
142
  #@ transposh
143
  msgid "Allow translation of default language - useful for sites with more than one major language"
144
  msgstr "Birden fazla ana dili olan siteler için yararlı - varsayılan dil çeviri izni"
145
 
146
+ #: wp/transposh_admin.php:423
147
  #@ transposh
148
  msgid "Enable search in translated languages"
149
  msgstr "Tercüme edilmiş sayfada arama yapılabilsin"
150
 
151
+ #: wp/transposh_admin.php:518
152
  #@ transposh
153
  msgid "Allow translation of permalinks and urls"
154
  msgstr "Kalıcı URL'lere izin verilsin"
155
 
156
+ #: wp/transposh_admin.php:460
157
  #@ transposh
158
  msgid "Enable automatic translation"
159
  msgstr "Otomatik tercüme aktif"
160
 
161
+ #: wp/transposh_admin.php:461
162
  #@ transposh
163
  msgid "Allow automatic translation of pages"
164
  msgstr "Sayfaları otomatik çevirmeye izin verilsin"
165
 
166
+ #: wp/transposh_admin.php:462
167
  #@ transposh
168
  msgid "Enable automatic translation after posting"
169
  msgstr "Sonraki yazıyı çevirme aktif olsun"
170
 
171
+ #: wp/transposh_admin.php:463
172
  #@ transposh
173
  msgid "Do automatic translation immediately after a post has been published"
174
  msgstr "Yazı yayınlandıktan hemen sonra otomatik olarak çeviri yapılsın"
175
 
176
+ #: wp/transposh_admin.php:470
177
  #@ transposh
178
  msgid "Select preferred auto translation engine"
179
  msgstr "Tercümeyi hangisi yapsın?"
180
 
181
+ #: wp/transposh_admin.php:471
182
  #@ transposh
183
  msgid "Translation engine:"
184
  msgstr "Arama Motoru:"
185
 
186
+ #: wp/transposh_admin.php:472
187
  #@ transposh
188
  msgid "Google"
189
  msgstr "Google"
190
 
191
+ #: wp/transposh_admin.php:473
192
  #@ transposh
193
  msgid "Bing"
194
  msgstr "Bing"
195
 
196
+ #: wp/transposh_admin.php:433
197
  #@ transposh
198
  msgid "Rewrite URLs"
199
  msgstr "Rewrite URL'ler"
200
 
201
+ #: wp/transposh_admin.php:437
202
  #@ transposh
203
  msgid "Add scripts to footer"
204
  msgstr "Footer'a script ekle"
205
 
206
+ #: wp/transposh_admin.php:439
207
  #@ transposh
208
  msgid "Push transposh scripts to footer of page instead of header, makes pages load faster. Requires that your theme should have proper footer support."
209
  msgstr "Başlığının yerine sayfa altbilgisi yerleştirin, sayfaların daha hızlı yüklenmesini sağlar. Temaya uygun altbilgi desteği olması gerekir."
210
 
211
+ #: wp/transposh_admin.php:440
212
  #@ transposh
213
  msgid "Auto detect language for users"
214
  msgstr "Kullanıcının dilini otomatik tespit et"
215
 
216
+ #: wp/transposh_admin.php:442
217
  #@ transposh
218
  msgid "This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. This will redirect the first page accessed in the session to the same page with the detected language."
219
  msgstr "Gönderilen ACCEPT_LANGUAGES komutuyla ziyaretçinin dilini otomatik olarak tespit edecektir. Bu oturumda aynı sayfaya eriştiğinde onu çevrilmiş sayfaya yönlendirecektir."
220
 
221
+ #: wp/transposh_admin.php:554
222
  #@ transposh
223
  msgid "Delete all automated translations"
224
  msgstr "Tüm otomatik çevirileri sil"
225
 
226
+ #: wp/transposh_admin.php:555
227
  #@ transposh
228
  msgid "Delete automated translations older than 14 days"
229
  msgstr "14 günden eski otomatik çevrilmiş sayfaları sil"
230
 
231
+ #: wp/transposh_admin.php:451
 
 
 
 
 
232
  #@ transposh
233
  msgid "Enable daily backup"
234
  msgstr "Günlük yedeklemeyi etkinleştir"
235
 
236
+ #: wp/transposh_admin.php:452
237
  #@ transposh
238
  msgid "Enable live backup"
239
  msgstr "Canlı yedeklemeyi etkinleştir"
240
 
241
+ #: wp/transposh_admin.php:453
242
  #@ transposh
243
  msgid "Disable backup (Can be run manually by clicking the button below)"
244
  msgstr "Yedeklemeyi devre dışı bırak (şimdi yedekle düğmesine tıklayarak yedekleme yapabilirsiniz)"
245
 
246
+ #: wp/transposh_admin.php:454
247
  #@ transposh
248
  msgid "How to restore?"
249
  msgstr "Nasıl geri yüklenir?"
250
 
251
+ #: wp/transposh_admin.php:548
252
  #@ transposh
253
  msgid "Do Backup Now"
254
  msgstr "Şimdi yedekle"
255
 
256
+ #: wp/transposh_admin.php:185
257
  #@ transposh
258
  msgid "Transposh makes your blog translatable"
259
  msgstr "Transposh makes your blog translatable"
260
 
261
+ #: wp/transposh_admin.php:187
262
  #@ transposh
263
  msgid "Plugin homepage"
264
  msgstr "Eklenti Ana sayfası"
265
 
266
+ #: wp/transposh_admin.php:188
267
  #@ transposh
268
  msgid "Frequently asked questions"
269
  msgstr "Sıkça sorulan sorular"
270
 
271
+ #: wp/transposh_admin.php:518
 
 
 
 
 
272
  #@ transposh
273
  msgid "Enable url translation"
274
  msgstr "URL tercümesini etkinleştirin"
275
 
276
+ #: wp/transposh_admin.php:518
 
277
  #@ transposh
278
  msgid "experimental"
279
  msgstr "deneysel"
280
 
281
+ #: wp/transposh_admin.php:436
282
  #@ transposh
283
  msgid "Rewrite URLs to be search engine friendly, e.g. (http://transposh.org/<strong>en</strong>). Requires that permalinks will be enabled."
284
  msgstr "URL'leri yeniden yazmak için arama motoru dostu, örn. ( http://transposh.org/<strong>en</strong> ). Kalıcı bağlantıların etkinleştirilmiş olması gerekir."
285
 
286
+ #: wp/transposh_db.php:684
287
  #@ transposh
288
  msgid "Database stats"
289
  msgstr "Veritabanı istatistikleri"
290
 
291
+ #: wp/transposh_db.php:689
292
  #, php-format
293
  #@ transposh
294
  msgid "Total of <strong style=\"color:red\">%s</strong> translated phrases."
295
  msgstr "Toplam <strong style=\"color:red\">%s</strong> cümle tercüme edildi."
296
 
297
+ #: wp/transposh_db.php:696
298
  #, php-format
299
  #@ transposh
300
  msgid "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> human translated phrases."
301
  msgstr "<strong>%1s</strong> has <strong style=\"color:red\">%2s</strong> insan cümle çevirisi vardır."
302
 
303
+ #: wp/transposh_db.php:699
304
  #@ transposh
305
  msgid "Recent activity"
306
  msgstr "Son etkinlikler"
307
 
308
+ #: wp/transposh_db.php:704
309
  #, php-format
310
  #@ transposh
311
  msgid "On <strong>%1s</strong><br/>user <strong>%2s</strong> translated<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
312
  msgstr "On <strong>%1s</strong><br/>kullanıcı <strong>%2s</strong> tercüme<br/>\"<strong>%3s</strong>\"<br/>to <strong style=\"color:red\">%4s</strong><br/>\"<strong>%5s</strong>\""
313
 
314
+ #: wp/transposh_widget.php:129
315
  #@ transposh
316
  msgid "Style:"
317
  msgstr "Stil:"
318
 
319
+ #: wp/transposh_admin.php:506
320
  #@ transposh
321
  msgid "Show progress bar when a client triggers automatic translation"
322
  msgstr "otomatik çeviri yapılırken ilerleme çubuğunu göster"
323
 
324
+ #: wp/transposh_admin.php:505
325
  #@ transposh
326
  msgid "Show progress bar"
327
  msgstr "İlerleme çubuğunu göster"
328
 
329
+ #: wp/transposh_admin.php:509
330
  #@ transposh
331
  msgid "Widget will allow setting this language as user default"
332
  msgstr "Bileşen kullanıcının varsayılan olarak bu dil ayarına izin verecek"
333
 
334
+ #: wp/transposh_admin.php:508
335
  #@ transposh
336
  msgid "Allow user to set current language as default"
337
  msgstr "Kullanıcının varsayılan olarak geçerli dilini ayarlamak için izin ver"
338
 
339
+ #: wp/transposh_admin.php:512
340
  #@ transposh
341
  msgid "Transposh logo will not appear on widget"
342
  msgstr "Transposh logosu bileşende görünmez"
343
 
344
+ #: wp/transposh_admin.php:511
345
  #@ transposh
346
  msgid "Remove transposh logo (see <a href=\"http://transposh.org/logoterms\">terms</a>)"
347
  msgstr "Transhposh logosunu sil (bkz. <a href=\"http://transposh.org/logoterms\">şartlar</a>)"
348
 
349
+ #: wp/transposh_admin.php:454
350
  #@ transposh
351
  msgid "Service Key:"
352
  msgstr "Hizmet Key:"
353
 
354
+ #: wp/transposh_widget.php:288
355
  #@ transposh
356
  msgid "Set as default language"
357
  msgstr "Varsayılan dil olarak ayarlayın"
388
  msgid "%VERSION%"
389
  msgstr "%VERSION%"
390
 
391
+ #: transposh.php:921
392
+ #: wp/transposh_admin.php:59
393
  #@ default
394
+ #@ transposh
395
  msgid "Settings"
396
  msgstr "Ayarlar"
397
 
398
+ #: wp/transposh_admin.php:316
399
+ #@ transposh
400
  msgid "Save Changes"
401
  msgstr "Değişiklikleri Kaydet"
402
 
403
+ #: wp/transposh_admin.php:425
404
  #@ transposh
405
  msgid "Enable gettext integration"
406
  msgstr "Gettext entegrasyonunu etkinleştirin"
407
 
408
+ #: wp/transposh_admin.php:426
409
  #@ transposh
410
  msgid "Enable integration of Transposh with existing gettext interface (.po/.mo files)"
411
  msgstr "Mevcut gettext arayüzü (.po / .mo dosyaları) ile Transposh entegrasyonu etkinleştirin"
412
 
413
+ #: wp/transposh_admin.php:388
414
  #@ transposh
415
  msgid "Language supported by apertium translate"
416
  msgstr "Apertium translate tarafından desteklenen dil"
417
 
418
+ #: wp/transposh_admin.php:556
419
  #@ transposh
420
  msgid "Attempt to fix errors caused by previous versions - please backup first"
421
  msgstr "Önceki sürümleri tarafından kaynaklanan hataların gidermek için çalıştır - Lütfen yedekleme yapın"
422
 
423
+ #: wp/transposh_widget.php:318
424
  #@ transposh
425
  msgid "translation plugin for wordpress"
426
  msgstr "wordpress için çeviri eklentisi"
427
 
428
+ #: wp/transposh_widget.php:321
429
  #@ transposh
430
  msgid "wordpress translation plugin"
431
  msgstr "WordPress çeviri eklentisi"
432
 
433
+ #: wp/transposh_widget.php:324
434
  #@ transposh
435
  msgid "translate your blog to 60+ languages"
436
  msgstr "Blogunuzu 60+ dile çevirin"
437
 
438
+ #: wp/transposh_widget.php:327
439
  #@ transposh
440
  msgid "website crowdsourcing translation plugin"
441
  msgstr "web sitesi crowdsourcing çeviri eklentisi"
442
 
443
+ #: wp/transposh_widget.php:330
444
  #@ transposh
445
  msgid "google translate and bing translate plugin for wordpress"
446
  msgstr "Wordpres için google translate ve bing translate eklentisi"
447
 
448
+ #: wp/transposh_admin.php:514
 
449
  #@ transposh
450
  msgid "Edit interface (and progress bar) theme:"
451
  msgstr "İlerleme çubuğu arayüzünü düzenle"
452
 
453
+ #: wp/transposh_admin.php:424
454
  #@ transposh
455
  msgid "Allow search of translated languages (and the original language)"
456
  msgstr "Tercüme dilleri Bulmaya izin ver (ve orijinal dili)"
457
 
458
+ #: wp/transposh_admin.php:428
459
  #@ transposh
460
  msgid "Enable override for default locale"
461
  msgstr "Varsayılan yerel ayar için geçersiz kılmayı etkinleştirin"
462
 
463
+ #: wp/transposh_admin.php:429
464
  #@ transposh
465
  msgid "Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)"
466
  msgstr "(Çevrilmemiş sayfaları ve yönetici sayfaları gibi) varsayılan dillerin sayfaları WP_LANG varsayılan yerel geçersiz etkinleştirin"
467
 
468
+ #: wp/transposh_admin.php:734
469
  #, php-format
470
  #@ transposh
471
  msgid "Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it."
472
  msgstr "Boş sayfalar lütfen artırmayı düşünebilirsiniz yaşarsanız %s geçerli PHP bellek sınırı oldukça düşüktür."
473
 
474
+ #: wp/transposh_admin.php:738
475
  #@ transposh
476
  msgid "We were not able to find a supported in-memory caching engine, installing one can improve performance."
477
  msgstr "Biz kurulu bir performans artırıcı bulamadık, bir önbelleğe alma motoru bulamadık"
478
 
479
+ #: wp/transposh_postpublish.php:57
480
  #@ transposh
481
  msgid "Set post language"
482
  msgstr "Mesaj dili olarak ayarlayın"
483
 
484
+ #: wp/transposh_postpublish.php:203
 
 
 
 
 
485
  #@ default
486
  msgid "Default"
487
  msgstr "Varsayılan"
488
 
489
+ #: wp/transposh_admin.php:734
490
+ #: wp/transposh_admin.php:738
491
  #@ transposh
492
  msgid "Check Transposh FAQs"
493
  msgstr "Transposh SSS kontrol edin"
494
 
495
+ #: wp/transposh_admin.php:443
496
  #@ transposh
497
  msgid "Allow collecting usage statistics"
498
  msgstr "Kullanım istatistikleri toplamaya izin ver"
503
  msgid "Select language"
504
  msgstr ""
505
 
506
+ #: wp/transposh_admin.php:465
 
 
 
 
 
507
  #@ transposh
508
  msgid "MSN API key"
509
  msgstr ""
510
 
511
+ #: wp/transposh_admin.php:466
512
+ #: wp/transposh_admin.php:469
 
513
  #@ transposh
514
  msgid "API Key"
515
  msgstr ""
516
 
517
+ #: wp/transposh_admin.php:468
518
  #@ transposh
519
  msgid "Google API key"
520
  msgstr ""
521
 
522
+ #: wp/transposh_widget.php:124
523
  #@ transposh
524
  msgid "Title:"
525
  msgstr ""
526
 
527
+ #: wp/transposh_widget.php:256
528
  #@ transposh
529
  msgid "Transposh subwidget was not loaded correctly"
530
  msgstr ""
531
 
532
  #. TRANSLATORS: no need to translate this string
533
+ #: wp/transposh_widget.php:273
534
  #@ transposh
535
  msgid "title"
536
  msgstr ""
537
 
538
+ #: wp/transposh_admin.php:760
539
  #@ transposh
540
  msgid "Language"
541
  msgstr ""
542
 
543
+ #: wp/transposh_admin.php:444
544
  #@ transposh
545
  msgid "This option enables collection of statistics by transposh that will be used to improve the product."
546
  msgstr ""
547
 
548
  #. TRANSLATORS: this will be the default widget title
549
+ #: wp/transposh_widget.php:119
550
  #@ transposh
551
  msgid "Translation"
552
  msgstr ""
553
 
554
+ #: wp/transposh_admin.php:390
555
+ #@ transposh
556
+ msgid "Language supported by one hour translation"
557
+ msgstr ""
558
+
559
+ #: wp/transposh_admin.php:477
560
+ #@ transposh
561
+ msgid "<a href=\"http://transposh.org/redir/oht\">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide."
562
+ msgstr ""
563
+
564
+ #: wp/transposh_admin.php:479
565
  #@ transposh
566
+ msgid "One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations."
567
  msgstr ""
568
 
569
+ #: wp/transposh_admin.php:483
570
  #@ transposh
571
+ msgid "One Hour Translation account ID"
572
+ msgstr ""
573
+
574
+ #: wp/transposh_admin.php:484
575
+ #: wp/transposh_admin.php:488
576
+ #@ transposh
577
+ msgid "Account ID"
578
+ msgstr ""
579
+
580
+ #: wp/transposh_admin.php:487
581
+ #@ transposh
582
+ msgid "One Hour Translation secret key"
583
+ msgstr ""
584
+
585
+ #: wp/transposh_admin.php:499
586
+ #, php-format
587
+ #@ transposh
588
+ msgid "%d projects have been submitted and waiting for completion"
589
+ msgstr ""
590
+
591
+ #: wp/transposh_admin.php:756
592
+ #@ transposh
593
+ msgid "Unset"
594
+ msgstr ""
595
+
596
+ #: wp/transposh_admin.php:57
597
+ #@ transposh
598
+ msgid "Dashboard"
599
+ msgstr ""
600
+
601
+ #: wp/transposh_admin.php:58
602
+ #@ transposh
603
+ msgid "Languages"
604
+ msgstr ""
605
+
606
+ #: wp/transposh_admin.php:60
607
+ #@ transposh
608
+ msgid "Translation Engines"
609
+ msgstr ""
610
+
611
+ #: wp/transposh_admin.php:61
612
+ #@ transposh
613
+ msgid "Widgets settings"
614
+ msgstr ""
615
+
616
+ #: wp/transposh_admin.php:62
617
+ #@ transposh
618
+ msgid "Advanced"
619
+ msgstr ""
620
+
621
+ #: wp/transposh_admin.php:63
622
+ #@ transposh
623
+ msgid "Utilities"
624
+ msgstr ""
625
+
626
+ #: wp/transposh_admin.php:64
627
+ #@ transposh
628
+ msgid "About"
629
+ msgstr ""
630
+
631
+ #: wp/transposh_admin.php:65
632
+ #@ transposh
633
+ msgid "Support"
634
+ msgstr ""
635
+
636
+ #: wp/transposh_admin.php:186
637
+ #@ transposh
638
+ msgid "For further help and assistance, please look at the following resources:"
639
+ msgstr ""
640
+
641
+ #: wp/transposh_admin.php:189
642
+ #@ transposh
643
+ msgid "Development website"
644
+ msgstr ""
645
+
646
+ #: wp/transposh_admin.php:278
647
+ #@ transposh
648
+ msgid "Transposh Help"
649
+ msgstr ""
650
+
651
+ #: wp/transposh_admin.php:407
652
+ #@ transposh
653
+ msgid "Translation related settings"
654
+ msgstr ""
655
+
656
+ #: wp/transposh_admin.php:432
657
+ #@ transposh
658
+ msgid "General settings"
659
  msgstr ""
660
 
661
+ #: wp/transposh_admin.php:450
662
+ #@ transposh
663
+ msgid "Backup service settings"
664
+ msgstr ""
665
+
666
+ #: wp/transposh_admin.php:459
667
+ #@ transposh
668
+ msgid "Automatic Translation Settings"
669
+ msgstr ""
670
+
671
+ #: wp/transposh_admin.php:477
672
+ #@ transposh
673
+ msgid "Professional Translation Settings"
674
+ msgstr ""
675
+
676
+ #: wp/transposh_admin.php:494
677
+ #, php-format
678
+ #@ transposh
679
+ msgid "%d phrases currently queued for next job in ~%d minutes"
680
+ msgstr ""
681
+
682
+ #: wp/transposh_admin.php:520
683
+ #@ transposh
684
+ msgid "Parser related settings"
685
+ msgstr ""
686
+
687
+ #: wp/transposh_admin.php:521
688
  #: wp/transposh_admin.php:530
689
  #@ transposh
690
+ msgid "This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing."
691
+ msgstr ""
692
+
693
+ #: wp/transposh_admin.php:522
694
+ #@ transposh
695
+ msgid "Disable punctuations break"
696
+ msgstr ""
697
+
698
+ #: wp/transposh_admin.php:523
699
+ #@ transposh
700
+ msgid "The parser will not break text into phrases when encountering punctuations such as dots"
701
+ msgstr ""
702
+
703
+ #: wp/transposh_admin.php:524
704
+ #@ transposh
705
+ msgid "Disable numbers break"
706
+ msgstr ""
707
+
708
+ #: wp/transposh_admin.php:525
709
+ #@ transposh
710
+ msgid "The parser will not break text into phrases when encountering numbers"
711
+ msgstr ""
712
+
713
+ #: wp/transposh_admin.php:526
714
+ #@ transposh
715
+ msgid "Disable html entities break"
716
+ msgstr ""
717
+
718
+ #: wp/transposh_admin.php:527
719
+ #@ transposh
720
+ msgid "The parser will not break text into phrases when encountering html entities"
721
+ msgstr ""
722
+
723
+ #: wp/transposh_admin.php:529
724
+ #@ transposh
725
+ msgid "Debug settings"
726
+ msgstr ""
727
+
728
+ #: wp/transposh_admin.php:531
729
+ #@ transposh
730
+ msgid "Enable debugging"
731
  msgstr ""
732
 
733
  #: wp/transposh_admin.php:532
734
  #@ transposh
735
+ msgid "Enable running of Transposh internal debug functions"
736
  msgstr ""
737
 
738
  #: wp/transposh_admin.php:533
739
  #@ transposh
740
+ msgid "Log file name"
741
  msgstr ""
742
 
743
  #: wp/transposh_admin.php:534
744
  #@ transposh
745
+ msgid "Level of logging"
746
+ msgstr ""
747
+
748
+ #: wp/transposh_admin.php:535
749
+ #@ transposh
750
+ msgid "Critical"
751
+ msgstr ""
752
+
753
+ #: wp/transposh_admin.php:536
754
+ #@ transposh
755
+ msgid "Important"
756
+ msgstr ""
757
+
758
+ #: wp/transposh_admin.php:537
759
+ #@ transposh
760
+ msgid "Warning"
761
+ msgstr ""
762
+
763
+ #: wp/transposh_admin.php:538
764
+ #@ transposh
765
+ msgid "Information"
766
  msgstr ""
767
 
768
  #: wp/transposh_admin.php:539
769
  #@ transposh
770
+ msgid "Debug"
771
  msgstr ""
772
 
773
+ #: wp/transposh_admin.php:541
774
  #, php-format
775
  #@ transposh
776
+ msgid "Remote debug IP (Your current IP is %s)"
777
  msgstr ""
778
 
779
+ #: wp/transposh_admin.php:553
 
780
  #@ transposh
781
+ msgid "Reset configuration to default (saves keys)"
782
+ msgstr ""
783
+
784
+ #: wp/transposh_admin.php:567
785
+ #@ transposh
786
+ msgid "About Transposh"
787
+ msgstr ""
788
+
789
+ #: wp/transposh_admin.php:568
790
+ #@ transposh
791
+ msgid "Transposh was started at 2008 and is dedicated to provide tools to ease website translation."
792
+ msgstr ""
793
+
794
+ #: wp/transposh_admin.php:570
795
+ #@ transposh
796
+ msgid "Learn more about us in the following online presenses"
797
+ msgstr ""
798
+
799
+ #: wp/transposh_admin.php:573
800
+ #@ transposh
801
+ msgid "Our website"
802
+ msgstr ""
803
+
804
+ #: wp/transposh_admin.php:575
805
+ #@ transposh
806
+ msgid "Our blog"
807
+ msgstr ""
808
+
809
+ #: wp/transposh_admin.php:577
810
+ #@ transposh
811
+ msgid "Our twitter account (feel free to follow!)"
812
+ msgstr ""
813
+
814
+ #: wp/transposh_admin.php:579
815
+ #@ transposh
816
+ msgid "Our facebook page (feel free to like!)"
817
+ msgstr ""
818
+
819
+ #: wp/transposh_admin.php:581
820
+ #@ transposh
821
+ msgid "Our google plus page (add us to your circles!)"
822
+ msgstr ""
823
+
824
+ #: wp/transposh_admin.php:583
825
+ #@ transposh
826
+ msgid "Our youtube channel"
827
+ msgstr ""
828
+
829
+ #: wp/transposh_admin.php:592
830
+ #@ transposh
831
+ msgid "Transposh support"
832
+ msgstr ""
833
+
834
+ #: wp/transposh_admin.php:593
835
+ #@ transposh
836
+ msgid "Have you encountered any problem with our plugin and need our help?"
837
+ msgstr ""
838
+
839
+ #: wp/transposh_admin.php:594
840
+ #@ transposh
841
+ msgid "Do you need to ask us any question?"
842
+ msgstr ""
843
+
844
+ #: wp/transposh_admin.php:595
845
+ #@ transposh
846
+ msgid "You have two options:"
847
+ msgstr ""
848
+
849
+ #: wp/transposh_admin.php:597
850
+ #@ transposh
851
+ msgid "Our free support"
852
+ msgstr ""
853
+
854
+ #: wp/transposh_admin.php:599
855
+ #@ transposh
856
+ msgid "There are many channels to reach us and we do try to help as fast as we can"
857
+ msgstr ""
858
+
859
+ #: wp/transposh_admin.php:600
860
+ #@ transposh
861
+ msgid "You can contact us through our contact form on our web site"
862
+ msgstr ""
863
+
864
+ #: wp/transposh_admin.php:601
865
+ #@ transposh
866
+ msgid "Create a ticket for us if you have found any bugs"
867
+ msgstr ""
868
+
869
+ #: wp/transposh_admin.php:602
870
+ #@ transposh
871
+ msgid "Reach us via different forums:"
872
+ msgstr ""
873
+
874
+ #: wp/transposh_admin.php:605
875
+ #@ transposh
876
+ msgid "Our support forum on wordpress.org"
877
+ msgstr ""
878
+
879
+ #: wp/transposh_admin.php:607
880
+ #@ transposh
881
+ msgid "Our internal development site, with wiki and tickets"
882
+ msgstr ""
883
+
884
+ #: wp/transposh_admin.php:609
885
+ #@ transposh
886
+ msgid "Our facebook page"
887
+ msgstr ""
888
+
889
+ #: wp/transposh_admin.php:611
890
+ #@ transposh
891
+ msgid "Our google plus page"
892
+ msgstr ""
893
+
894
+ #: wp/transposh_admin.php:613
895
+ #@ transposh
896
+ msgid "Contact us directly via:"
897
+ msgstr ""
898
+
899
+ #: wp/transposh_admin.php:615
900
+ #@ transposh
901
+ msgid "Our contact form"
902
+ msgstr ""
903
+
904
+ #: wp/transposh_admin.php:621
905
+ #@ transposh
906
+ msgid "Professional support option"
907
+ msgstr ""
908
+
909
+ #: wp/transposh_admin.php:623
910
+ #@ transposh
911
+ msgid "For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP"
912
+ msgstr ""
913
+
914
+ #: wp/transposh_admin.php:624
915
+ #@ transposh
916
+ msgid "This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is"
917
+ msgstr ""
918
+
919
+ #: wp/transposh_admin.php:625
920
+ #@ transposh
921
+ msgid "Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don't come to us three years later!)"
922
+ msgstr ""
923
+
924
+ #: wp/transposh_admin.php:626
925
+ #@ transposh
926
+ msgid "So hit the following button. Thanks!"
927
  msgstr ""
928
 
929
  #: wp/transposh_admin.php:636
930
  #@ transposh
931
+ msgid "Donations"
932
+ msgstr ""
933
+
934
+ #: wp/transposh_admin.php:638
935
+ #@ transposh
936
+ msgid "If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)"
937
  msgstr ""
938
 
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: oferwald
3
  Donate link: http://transposh.org/donate/
4
  Tags: translation, translate, i18n, widget, filter, buddypress, bilingual, multilingual, transposh, language, crowdsourcing, google translate, bing translate, context, wiki, RTL, Hebrew, Spanish, French, Russian, English, Arabic, Portuguese
5
- Requires at least: 3.1
6
- Tested up to: 3.4.1
7
- Stable tag: 0.8.5
8
 
9
  Transposh adds best of breed translation support to wordpress, 66 languages are automatically translated and can be manually corrected with ease.
10
 
@@ -109,7 +109,7 @@ This version allows sorting of languages within the widget
109
  * Russian translation by Romans Matusevics
110
  * Hebrew translation by [Amir](http://colnect.com/he)
111
  * Frontend Spanish translation by [Ignacio](http://colnect.com/es/collectors/collector/iflvico)
112
- * Italian translation by Marco Rossi
113
  * Persian translation by [Sushyant Zavarzadeh](http://zavarzadeh.org)
114
  * Spanish translation by [Angel Torregrosa](http://wordp.relatividad.org)
115
  * German translation by [Jenny Beelens](http://www.professionaltranslation.com)
@@ -117,6 +117,24 @@ This version allows sorting of languages within the widget
117
  * Portuguese (Brazil) translation by [Amilton Junior](http://www.dicasemgeral.com)
118
 
119
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  = 2012/09/15 - 0.8.5 =
121
  * Support for Lao (Thanks to Google Translate)
122
  = 2012/09/03 - 0.8.4 =
2
  Contributors: oferwald
3
  Donate link: http://transposh.org/donate/
4
  Tags: translation, translate, i18n, widget, filter, buddypress, bilingual, multilingual, transposh, language, crowdsourcing, google translate, bing translate, context, wiki, RTL, Hebrew, Spanish, French, Russian, English, Arabic, Portuguese
5
+ Requires at least: 3.3
6
+ Tested up to: 3.5
7
+ Stable tag: 0.9.0
8
 
9
  Transposh adds best of breed translation support to wordpress, 66 languages are automatically translated and can be manually corrected with ease.
10
 
109
  * Russian translation by Romans Matusevics
110
  * Hebrew translation by [Amir](http://colnect.com/he)
111
  * Frontend Spanish translation by [Ignacio](http://colnect.com/es/collectors/collector/iflvico)
112
+ * Italian translation by [MacItaly](http://profiles.wordpress.org/macitaly)
113
  * Persian translation by [Sushyant Zavarzadeh](http://zavarzadeh.org)
114
  * Spanish translation by [Angel Torregrosa](http://wordp.relatividad.org)
115
  * German translation by [Jenny Beelens](http://www.professionaltranslation.com)
117
  * Portuguese (Brazil) translation by [Amilton Junior](http://www.dicasemgeral.com)
118
 
119
  == Changelog ==
120
+ = 2012/12/12 - 0.9.0 =
121
+ * Major rewrite for the administrative interface and settings, should simplify working with transposh
122
+ * Parsing rules can now be changed in the advanced tab, use with care
123
+ * Added the options to include debug and remote debug outputs
124
+ * A new language selection widget based on select2
125
+ * Added ctrl keys for quick navigation of prev/next blocks
126
+ * A new option that allows to reset the configuration file to the recommanded defaults
127
+ * Css fixes for twenty twelve theme
128
+ * Avoid loading the subwidgets in the admin pages
129
+ * Removed distinction between editable and viewable languages, now a language can only be active or disabled
130
+ * Updating jQueriUI to 1.9.2 (jQuery should now be 1.6+)
131
+ * Fixes the z-index for the old style dropdown (patch by chemaz)
132
+ * Fixes the bug with the coupling of Chinese simple and traditional
133
+ * Fix bug preventing upgrade from very old versions
134
+ * Suppress notices when widgets are created directly with our function
135
+ * Avoid rewriting urls in the default language, mainly effected canonicals
136
+ * Our script is needed when the widget allows setting of default language
137
+ * Finally solved the problem with MSN translate and CR/LF
138
  = 2012/09/15 - 0.8.5 =
139
  * Support for Lao (Thanks to Google Translate)
140
  = 2012/09/03 - 0.8.4 =
screenshot-1.png DELETED
Binary file
screenshot-2.png DELETED
Binary file
screenshot-3.png DELETED
Binary file
screenshot-4.png DELETED
Binary file
screenshot-5.png DELETED
Binary file
transposh.php CHANGED
@@ -3,9 +3,9 @@
3
  /*
4
  Plugin Name: Transposh Translation Filter
5
  Plugin URI: http://transposh.org/
6
- Description: Translation filter for WordPress, After enabling please set languages at the <a href="options-general.php?page=transposh">the options page</a> Want to help? visit our development site at <a href="http://trac.transposh.org/">trac.transposh.org</a>.
7
  Author: Team Transposh
8
- Version: 0.8.5
9
  Author URI: http://transposh.org/
10
  License: GPL (http://www.gnu.org/licenses/gpl.txt)
11
  Text Domain: transposh
@@ -13,14 +13,14 @@
13
  */
14
 
15
  /*
16
- * Transposh v0.8.5
17
  * http://transposh.org/
18
  *
19
  * Copyright 2012, Team Transposh
20
  * Licensed under the GPL Version 2 or higher.
21
  * http://transposh.org/license
22
  *
23
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
24
  */
25
 
26
  //avoid direct calls to this file where wp core files not present
@@ -30,7 +30,7 @@ if (!function_exists('add_action')) {
30
  exit();
31
  }
32
 
33
-
34
  require_once("core/constants.php");
35
  require_once("core/utils.php");
36
  require_once("core/jsonwrapper/jsonwrapper.php");
@@ -118,6 +118,15 @@ class transposh_plugin {
118
  $this->postpublish = new transposh_postpublish($this);
119
  $this->third_party = new transposh_3rdparty($this);
120
 
 
 
 
 
 
 
 
 
 
121
  // "global" vars
122
  $this->home_url = get_option('home');
123
 
@@ -131,15 +140,18 @@ class transposh_plugin {
131
 
132
  $this->transposh_plugin_dir = plugin_dir_path(__FILE__);
133
 
134
-
 
135
 
136
  //Register some functions into wordpress
137
- // includes transposh dir and php
138
- // TODO: get_class_methods to replace said mess, other way?
 
 
139
  add_filter('plugin_action_links_' . preg_replace('|^' . preg_quote(WP_PLUGIN_DIR, '|') . '/|', '', __FILE__), array(&$this, 'plugin_action_links'));
140
  add_filter('query_vars', array(&$this, 'parameter_queryvars'));
141
  add_filter('rewrite_rules_array', array(&$this, 'update_rewrite_rules'));
142
- if ($this->options->get_enable_url_translate()) {
143
  add_filter('request', array(&$this, 'request_filter'));
144
  }
145
  add_filter('comment_post_redirect', array(&$this, 'comment_post_redirect_filter'));
@@ -191,7 +203,7 @@ class transposh_plugin {
191
  //TODO add_action('manage_comments_nav', array(&$this,'manage_comments_nav'));
192
  //TODO comment_row_actions (filter)
193
  // Intergrating with the gettext interface
194
- if ($this->options->get_transposh_gettext_integration()) {
195
  add_filter('gettext', array(&$this, 'transposh_gettext_filter'), 10, 3);
196
  add_filter('gettext_with_context', array(&$this, 'transposh_gettext_filter'), 10, 3);
197
  add_filter('ngettext', array(&$this, 'transposh_ngettext_filter'), 10, 4);
@@ -209,7 +221,7 @@ class transposh_plugin {
209
  // FUTURE add_action('update-custom_transposh', array(&$this, 'update'));
210
  // CHECK TODO!!!!!!!!!!!!
211
  $this->tgl = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
212
- if (!$this->options->is_viewable_language($this->tgl) && !$this->options->is_editable_language($this->tgl)) {
213
  $this->tgl = '';
214
  }
215
 
@@ -229,10 +241,10 @@ class transposh_plugin {
229
  if ($this->transposh_redirect) return $location;
230
  if ($this->options->is_default_language($this->target_language))
231
  return $location;
232
-
233
  // $trace = debug_backtrace();
234
- //
235
- //
236
  $location = $this->rewrite_url($location);
237
  return $location;
238
  }
@@ -255,7 +267,7 @@ class transposh_plugin {
255
  * @return mixed false if redirect unneeded - new url if we think we should
256
  */
257
  function on_redirect_canonical($red, $req) {
258
-
259
  // if the urls are actually the same, don't redirect (same - if it had our proper take care of)
260
  if ($this->rewrite_url($red) == urldecode($req)) return false;
261
  // if this is not the default language, we need to make sure it redirects to what we believe is the proper url
@@ -270,15 +282,13 @@ class transposh_plugin {
270
  //remove any language identifier and find the "clean" url, used for posting and calculating urls if needed
271
  $this->clean_url = transposh_utils::cleanup_url($_SERVER['REQUEST_URI'], $this->home_url, true);
272
  // we need this if we are using url translations
273
- if ($this->options->get_enable_url_translate()) {
274
  $this->clean_url = transposh_utils::get_original_url($this->clean_url, '', $this->target_language, array($this->database, 'fetch_original'));
275
  }
276
  return $this->clean_url;
277
  }
278
 
279
  // function update() {
280
- // echo 'hi';
281
- //
282
  // require_once('./admin-header.php');
283
 
284
  /* $nonce = 'upgrade-plugin_' . $plugin;
@@ -308,33 +318,33 @@ class transposh_plugin {
308
  * @return string Modified page buffer
309
  */
310
  function process_page(&$buffer) {
311
-
312
  $start_time = microtime(TRUE);
313
 
314
  // Refrain from touching the administrative interface and important pages
315
  if ($this->is_special_page($_SERVER['REQUEST_URI'])) {
316
-
317
  }
318
  // This one fixed a bug transposh created with other pages (xml generator for other plugins - such as the nextgen gallery)
319
  // TODO: need to further investigate (will it be needed?)
320
  elseif ($this->target_language == '') {
321
-
322
  }
323
  // Don't translate the default language unless specifically allowed to...
324
- elseif ($this->options->is_default_language($this->target_language) && !$this->options->get_enable_default_translate()) {
325
-
326
  } else {
327
  // This one allows to redirect to a static element which we can find, since the redirection will remove
328
  // the target language, we are able to avoid nasty redirection loops
329
  if (is_404()) {
330
  global $wp;
331
  if (isset($wp->query_vars['pagename']) && file_exists(ABSPATH . $wp->query_vars['pagename'])) { // Hmm
332
-
333
  $this->tp_redirect('/' . $wp->query_vars['pagename'], 301);
334
  }
335
  }
336
 
337
-
338
 
339
  //translate the entire page
340
  $parse = new parser();
@@ -348,25 +358,26 @@ class transposh_plugin {
348
  $parse->is_edit_mode = $this->edit_mode;
349
  $parse->might_json = $this->attempt_json;
350
  $parse->is_auto_translate = $this->is_auto_translate_permitted();
351
- $parse->allow_ad = $this->options->get_widget_remove_logo();
352
  // TODO - check this!
353
  if (stripos($_SERVER['REQUEST_URI'], '/feed/') !== FALSE) {
354
-
355
  $parse->is_auto_translate = false;
356
  $parse->is_edit_mode = false;
357
  $parse->feed_fix = true;
358
  }
 
359
  $buffer = $parse->fix_html($buffer);
360
 
361
  $end_time = microtime(TRUE);
362
-
363
  }
364
 
365
  return $buffer;
366
  }
367
 
368
  // function on_admin_init() {
369
- //
370
  // }
371
 
372
  /**
@@ -374,19 +385,19 @@ class transposh_plugin {
374
  * Once processing is completed the buffer will go into the translation process.
375
  */
376
  function on_init() {
377
-
378
 
379
  // the wp_rewrite is not available earlier so we can only set the enable_permalinks here
380
  if (is_object($GLOBALS['wp_rewrite'])) {
381
- if ($GLOBALS['wp_rewrite']->using_permalinks() && $this->options->get_enable_permalinks()) {
382
-
383
  $this->enable_permalinks_rewrite = TRUE;
384
  }
385
  }
386
 
387
  // this is an ajax special case, currently crafted and tested on buddy press, lets hope this won't make hell break loose.
388
  // it basically sets language based on referred when accessing wp-load.php (which is the way bp does ajax)
389
-
390
  if (substr($_SERVER['SCRIPT_FILENAME'], -11) == 'wp-load.php') {
391
  $this->target_language = transposh_utils::get_language_from_url($_SERVER['HTTP_REFERER'], $this->home_url);
392
  $this->attempt_json = true;
@@ -412,10 +423,10 @@ class transposh_plugin {
412
  * @return array New rewrite rules
413
  */
414
  function update_rewrite_rules($rules) {
415
-
416
 
417
- if (!$this->options->get_enable_permalinks()) {
418
-
419
  return $rules;
420
  }
421
 
@@ -426,7 +437,7 @@ class transposh_plugin {
426
 
427
  //catch the root url
428
  $newRules[$lang_prefix . "?$"] = "index.php?lang=\$matches[1]";
429
-
430
 
431
  foreach ($rules as $key => $value) {
432
  $original_key = $key;
@@ -442,29 +453,34 @@ class transposh_plugin {
442
 
443
  $value .= $lang_parameter;
444
 
445
-
446
 
447
 
448
  $newRules[$key] = $value;
449
  $newRules[$original_key] = $original_value;
450
 
451
-
452
  }
453
 
454
-
455
  return $newRules;
456
  }
457
 
 
 
 
 
 
458
  /**
459
  * Let WordPress know which parameters are of interest to us.
460
  * @param array $vars Original queried variables
461
  * @return array Modified array
462
  */
463
  function parameter_queryvars($vars) {
464
-
465
  $vars[] = LANG_PARAM;
466
  $vars[] = EDIT_PARAM;
467
-
468
  return $vars;
469
  }
470
 
@@ -473,8 +489,8 @@ class transposh_plugin {
473
  * @param WP $wp - here we get the WP class
474
  */
475
  function on_parse_request($wp) {
476
-
477
-
478
 
479
  // fix for custom-permalink (and others that might be double parsing?)
480
  if ($this->target_language) return;
@@ -482,19 +498,13 @@ class transposh_plugin {
482
  // first we get the target language
483
  /* $this->target_language = (isset($wp->query_vars[LANG_PARAM])) ? $wp->query_vars[LANG_PARAM] : '';
484
  if (!$this->target_language)
485
- $this->target_language = $this->options->get_default_language();
486
- */
487
  // TODO TOCHECK!!!!!!!!!!!!!!!!!!!!!!!!!!1
488
  $this->target_language = $this->tgl;
489
- // avoid viewing of editable languages which are not viewable by non translators
490
- if (!$this->options->is_viewable_language($this->target_language) &&
491
- $this->options->is_editable_language($this->target_language) &&
492
- !$this->is_translator()) {
493
- $this->target_language = '';
494
- }
495
  if (!$this->target_language)
496
- $this->target_language = $this->options->get_default_language();
497
-
498
 
499
 
500
  // make themes that support rtl - go rtl http://wordpress.tv/2010/05/01/yoav-farhi-right-to-left-themes-sf10
@@ -506,48 +516,48 @@ class transposh_plugin {
506
  // we'll go into this code of redirection only if we have options that need it (and no bot is involved, for the non-cookie)
507
  // and this is not a special page or one that is refered by our site
508
  // bots can skip this altogether
509
- if (($this->options->get_enable_detect_language() || $this->options->get_widget_allow_set_default_language()) &&
510
  !($this->is_special_page($_SERVER['REQUEST_URI']) || (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $this->home_url) !== false)) &&
511
  !(transposh_utils::is_bot())) {
512
  // we are starting a session if needed
513
  if (!session_id()) session_start();
514
  // no redirections if we already redirected in this session or we suspect cyclic redirections
515
  if (!isset($_SESSION['TR_REDIRECTED']) && !(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == $_SERVER['REQUEST_URI'])) {
516
-
517
  // we redirect once per session
518
  $_SESSION['TR_REDIRECTED'] = true;
519
  // redirect according to stored lng cookie, and than according to detection
520
- if (isset($_COOKIE['TR_LNG']) && $this->options->get_widget_allow_set_default_language()) {
521
  if ($_COOKIE['TR_LNG'] != $this->target_language) {
522
  $url = transposh_utils::rewrite_url_lang_param($_SERVER["REQUEST_URI"], $this->home_url, $this->enable_permalinks_rewrite, $_COOKIE['TR_LNG'], $this->edit_mode);
523
  if ($this->options->is_default_language($_COOKIE['TR_LNG']))
524
  //TODO - fix wrt translation
525
  $url = transposh_utils::cleanup_url($_SERVER["REQUEST_URI"], $this->home_url);
526
-
527
  $this->tp_redirect($url);
528
  exit;
529
  }
530
  } else {
531
- $bestlang = transposh_utils::prefered_language(explode(',', $this->options->get_viewable_langs()), $this->options->get_default_language());
532
  // we won't redirect if we should not, or this is a presumable bot
533
- if ($bestlang && $bestlang != $this->target_language && $this->options->get_enable_detect_language()) {
534
  $url = transposh_utils::rewrite_url_lang_param($_SERVER['REQUEST_URI'], $this->home_url, $this->enable_permalinks_rewrite, $bestlang, $this->edit_mode);
535
  if ($this->options->is_default_language($bestlang))
536
  //TODO - fix wrt translation
537
  $url = transposh_utils::cleanup_url($_SERVER['REQUEST_URI'], $this->home_url);
538
-
539
  $this->tp_redirect($url);
540
  exit;
541
  }
542
  }
543
  } else {
544
-
545
  }
546
  }
547
  // this method allows posts from the search box to maintain the language,
548
  // TODO - it has a bug of returning to original language following search, which can be resolved by removing search from widget urls, but maybe later...
549
  if (isset($wp->query_vars['s'])) {
550
- if ($this->options->get_enable_search_translate()) {
551
  add_action('pre_get_posts', array(&$this, 'pre_post_search'));
552
  add_action('posts_where_request', array(&$this, 'posts_where_request'));
553
  }
@@ -569,7 +579,7 @@ class transposh_plugin {
569
  // We are removing our query vars since they are no longer needed and also make issues when a user select a static page as his home
570
  unset($wp->query_vars[LANG_PARAM]);
571
  unset($wp->query_vars[EDIT_PARAM]);
572
-
573
  }
574
 
575
  // TODO ? move to options?
@@ -580,7 +590,7 @@ class transposh_plugin {
580
  */
581
  function is_translator() {
582
  //if anonymous translation is allowed - let anyone enjoy it
583
- if ($this->options->get_anonymous_translation()) {
584
  return TRUE;
585
  }
586
  if (is_user_logged_in() && current_user_can(TRANSLATOR)) {
@@ -593,20 +603,19 @@ class transposh_plugin {
593
  * Plugin activation
594
  */
595
  function plugin_activate() {
596
-
597
 
598
  $this->database->setup_db();
599
- // is it needed? the filter is already there? // TODO
600
- add_filter('rewrite_rules_array', array(&$this, 'update_rewrite_rules'));
601
  $GLOBALS['wp_rewrite']->flush_rules();
602
 
603
  // attempt to remove old files
604
  @unlink($this->transposh_plugin_dir . 'widgets/tpw_default.php');
605
  @unlink($this->transposh_plugin_dir . 'core/globals.php');
606
 
607
-
608
-
609
-
610
  //activate_plugin($plugin);
611
  }
612
 
@@ -614,20 +623,19 @@ class transposh_plugin {
614
  * Plugin deactivation
615
  */
616
  function plugin_deactivate() {
617
-
618
 
619
- // is it needed? the filter is already there? // TODO
620
- add_filter('rewrite_rules_array', array(&$this, 'update_rewrite_rules'));
621
  $GLOBALS['wp_rewrite']->flush_rules();
622
 
623
-
624
  }
625
 
626
  /**
627
  * Callback from admin_notices - display error message to the admin.
628
  */
629
  function plugin_install_error() {
630
-
631
 
632
  echo '<div class="updated"><p>';
633
  echo 'Error has occured in the installation process of the translation plugin: <br>';
@@ -649,7 +657,7 @@ class transposh_plugin {
649
  * TODO - needs revisiting!
650
  */
651
  function plugin_loaded() {
652
-
653
 
654
  //TODO: fix this...
655
  $db_version = get_option(TRANSPOSH_DB_VERSION);
@@ -658,7 +666,7 @@ class transposh_plugin {
658
  $this->database->setup_db();
659
  //$this->admin_msg = "Translation database version ($db_version) is not comptabile with this plugin (". DB_VERSION . ") <br>";
660
 
661
-
662
  //Some error occured - notify admin and deactivate plugin
663
  //add_action('admin_notices', 'plugin_install_error');
664
  }
@@ -669,7 +677,7 @@ class transposh_plugin {
669
  if ($db_version != DB_VERSION) {
670
  $this->admin_msg = "Failed to locate the translation table <em> " . TRANSLATIONS_TABLE . "</em> in local database. <br>";
671
 
672
-
673
  //Some error occured - notify admin and deactivate plugin
674
  add_action('admin_notices', array(&$this, 'plugin_install_error'));
675
  }
@@ -688,7 +696,7 @@ class transposh_plugin {
688
  $file = preg_replace('|/+|', '/', $file); // remove any duplicate slash
689
  //keep only the file name and its parent directory
690
  $file = preg_replace('/.*\/([^\/]+\/[^\/]+)$/', '$1', $file);
691
-
692
  return $file;
693
  }
694
 
@@ -705,7 +713,7 @@ class transposh_plugin {
705
  //include the transposh.css
706
  wp_enqueue_style('transposh', $this->transposh_plugin_url . '/' . TRANSPOSH_DIR_CSS . '/transposh.css', array(), TRANSPOSH_PLUGIN_VER);
707
 
708
-
709
  }
710
 
711
  /**
@@ -713,43 +721,42 @@ class transposh_plugin {
713
  */
714
  function add_transposh_js() {
715
  //not in any translation mode - no need for any js.
716
- if (!($this->edit_mode || $this->is_auto_translate_permitted() || is_admin()))
 
717
  return; // TODO, check just for settings page admin and pages with our translate
718
- wp_register_script('transposh', $this->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/transposh.js', array('jquery'), TRANSPOSH_PLUGIN_VER);
719
  // true -> 1, false -> nothing
720
  $script_params = array(
721
  'ajaxurl' => admin_url('admin-ajax.php'),
722
  'plugin_url' => $this->transposh_plugin_url,
723
  'lang' => $this->target_language,
724
- 'olang' => $this->options->get_default_language(),
725
  // those two options show if the script can support said engines
726
  'prefix' => SPAN_PREFIX,
727
- 'preferred' => $this->options->get_preferred_translator()
728
  );
729
 
730
  // FIX BACKEND
731
  if (!$this->target_language || in_array($this->target_language, transposh_consts::$bing_languages)) {
732
  $script_params['msn'] = 1;
733
- if ($this->options->get_msn_key()) {
734
- $script_params['msn_key'] = $this->options->get_msn_key();
735
  }
736
  }
737
  // FIX BACKEND
738
  if (!$this->target_language || in_array($this->target_language, transposh_consts::$google_languages)) {
739
- if ($this->options->get_google_key()) {
740
- $script_params['google_key'] = $this->options->get_google_key();
741
  }
742
- if ($this->options->get_google_key() || function_exists('curl_init'))
743
  $script_params['google'] = 1;
744
  }
745
  if (in_array($this->target_language, transposh_consts::$apertium_languages))
746
  $script_params['apertium'] = 1;
747
- if ($this->options->get_oht_id() && $this->options->get_oht_key() && in_array($this->target_language, transposh_consts::$oht_languages) && current_user_can('manage_options'))
748
  $script_params['oht'] = 1;
749
- if ($this->options->get_widget_progressbar())
750
- $script_params['progress'] = 1;
751
- if (!$this->options->get_enable_auto_translate())
752
- $script_params['noauto'] = 1;
753
 
754
  // load translations needed for edit interface
755
  if ($this->edit_mode) {
@@ -759,17 +766,17 @@ class transposh_plugin {
759
  }
760
  }
761
  // set theme when it is needed
762
- if ($this->options->get_widget_progressbar() || $this->edit_mode) {
763
- $script_params['theme'] = $this->options->get_widget_theme();
764
  }
765
 
766
  // 'l10n_print_after' => 'try{convertEntities(inlineEditL10n);}catch(e){};'
767
  wp_localize_script('transposh', 't_jp', $script_params);
768
  // only enqueue on real pages, other admin scripts that need this will register a dependency
769
- if (($this->edit_mode || $this->is_auto_translate_permitted()) && !is_admin()) {
770
  wp_enqueue_script('transposh');
771
  }
772
-
773
  }
774
 
775
  /**
@@ -778,7 +785,7 @@ class transposh_plugin {
778
  function add_rel_alternate() {
779
  if (is_404()) return;
780
  $widget_args = $this->widget->create_widget_args($this->get_clean_url());
781
-
782
  foreach ($widget_args as $lang) {
783
  if (!$lang['active']) {
784
  echo '<link rel="alternate" hreflang="' . $lang['isocode'] . '" href="' . $lang['url'] . '"/>';
@@ -796,10 +803,10 @@ class transposh_plugin {
796
  // editing is permitted for translators only
797
  if (!$this->is_translator()) return false;
798
  // and only on the non-default lang (unless strictly specified)
799
- if (!$this->options->get_enable_default_translate() && $this->options->is_default_language($this->target_language))
800
  return false;
801
 
802
- return $this->options->is_editable_language($this->target_language);
803
  }
804
 
805
  /**
@@ -810,14 +817,14 @@ class transposh_plugin {
810
  * TODO: move to options
811
  */
812
  function is_auto_translate_permitted() {
813
-
814
 
815
- if (!$this->options->get_enable_auto_translate()) return false;
816
  // auto translate is not enabled for default target language when enable default is disabled
817
- if (!$this->options->get_enable_default_translate() && $this->options->is_default_language($this->target_language))
818
  return false;
819
 
820
- return $this->options->is_editable_language($this->target_language);
821
  }
822
 
823
  /**
@@ -868,8 +875,7 @@ class transposh_plugin {
868
  * @return boolean Modified href
869
  */
870
  function rewrite_url($href) {
871
- $use_params = FALSE;
872
-
873
  // fix what might be messed up -- TODO
874
  $href = str_replace(array(TP_GTXT_BRK, TP_GTXT_IBRK, TP_GTXT_BRK_CLOSER, TP_GTXT_IBRK_CLOSER), '', $href);
875
 
@@ -888,13 +894,20 @@ class transposh_plugin {
888
  }
889
  $use_params = !$this->enable_permalinks_rewrite;
890
 
 
 
 
 
 
 
 
891
  // some hackery needed for url translations
892
  // first cut home
893
- if ($this->options->get_enable_url_translate()) {
894
  $href = transposh_utils::translate_url($href, $this->home_url, $this->target_language, array(&$this->database, 'fetch_translation'));
895
  }
896
  $href = transposh_utils::rewrite_url_lang_param($href, $this->home_url, $this->enable_permalinks_rewrite, $this->target_language, $this->edit_mode, $use_params);
897
-
898
  return $href;
899
  }
900
 
@@ -904,8 +917,8 @@ class transposh_plugin {
904
  * @return array Now with settings
905
  */
906
  function plugin_action_links($links) {
907
-
908
- return array_merge(array('<a href="' . admin_url('options-general.php?page=' . TRANSPOSH_ADMIN_PAGE_NAME) . '">' . __('Settings') . '</a>'), $links);
909
  }
910
 
911
  /**
@@ -913,8 +926,8 @@ class transposh_plugin {
913
  * @param WP_Query $query
914
  */
915
  function pre_post_search($query) {
916
-
917
-
918
  // we hide the search query var from further proccesing, because we do this later
919
  if ($query->query_vars['s']) {
920
  $this->search_s = $query->query_vars['s'];
@@ -929,7 +942,7 @@ class transposh_plugin {
929
  */
930
  function posts_where_request($where) {
931
 
932
-
933
  // from query.php line 1742 (v2.8.6)
934
  // If a search pattern is specified, load the posts that match
935
  $q = &$GLOBALS['wp_query']->query_vars;
@@ -970,7 +983,7 @@ class transposh_plugin {
970
  $search .= " AND ({$GLOBALS['wpdb']->posts}.post_password = '') ";
971
  }
972
  }
973
-
974
  return $search . $where;
975
  }
976
 
@@ -978,7 +991,7 @@ class transposh_plugin {
978
  * Runs a scheduled backup
979
  */
980
  function run_backup() {
981
-
982
  $my_transposh_backup = new transposh_backup($this);
983
  $my_transposh_backup->do_backup();
984
  }
@@ -987,7 +1000,7 @@ class transposh_plugin {
987
  * Runs a restore
988
  */
989
  function run_restore() {
990
-
991
  $my_transposh_backup = new transposh_backup($this);
992
  $my_transposh_backup->do_restore();
993
  }
@@ -1026,10 +1039,10 @@ class transposh_plugin {
1026
  if ($comment_lang) {
1027
  $text = "<span lang =\"$comment_lang\">" . $text . "</span>";
1028
  if (strpos($text, '<a href="' . $this->home_url) !== FALSE) {
1029
- $text = str_replace('<a href="' . $this->home_url, '<a lang="' . $this->options->get_default_language() . '" href="' . $this->home_url, $text);
1030
  }
1031
  }
1032
-
1033
  return $text;
1034
  }
1035
 
@@ -1045,7 +1058,7 @@ class transposh_plugin {
1045
  if ($lang) {
1046
  $text = "<span lang =\"$lang\">" . $text . "</span>";
1047
  if (strpos($text, '<a href="' . $this->home_url) !== FALSE) {
1048
- $text = str_replace('<a href="' . $this->home_url, '<a lang="' . $this->options->get_default_language() . '" href="' . $this->home_url, $text);
1049
  }
1050
  }
1051
  return $text;
@@ -1062,7 +1075,7 @@ class transposh_plugin {
1062
  $lang = get_post_meta($id, 'tp_language', true);
1063
  if ($lang) {
1064
  if (strpos($_SERVER['REQUEST_URI'], 'wp-admin/edit') !== false) {
1065
-
1066
  $plugpath = parse_url($this->transposh_plugin_url, PHP_URL_PATH);
1067
  list($langeng, $langorig, $langflag) = explode(',', transposh_consts::$languages[$lang]);
1068
  $text = transposh_utils::display_flag("$plugpath/img/flags", $langflag, $langorig, false) . ' ' . $text;
@@ -1084,7 +1097,7 @@ class transposh_plugin {
1084
  $requri = $_SERVER['REQUEST_URI'];
1085
  $lang = transposh_utils::get_language_from_url($requri, $this->home_url);
1086
  if ($lang && !$this->got_request) {
1087
-
1088
  $this->got_request = true;
1089
  // the trick is to replace the URI and put it back afterwards
1090
  $_SERVER['REQUEST_URI'] = transposh_utils::get_original_url($requri, '', $lang, array($this->database, 'fetch_original'));
@@ -1092,8 +1105,8 @@ class transposh_plugin {
1092
  $wp->parse_request();
1093
  $query = $wp->query_vars;
1094
  $_SERVER['REQUEST_URI'] = $requri;
1095
-
1096
-
1097
  }
1098
  return $query;
1099
  }
@@ -1105,10 +1118,10 @@ class transposh_plugin {
1105
  * @return string
1106
  */
1107
  function transposh_gettext_filter($translation, $orig, $domain) {
1108
- if ($this->is_special_page($_SERVER['REQUEST_URI']) || ($this->options->is_default_language($this->tgl) && !$this->options->get_enable_default_translate())) {
1109
  return $translation;
1110
  }
1111
-
1112
  // HACK - TODO - FIX
1113
  if (in_array($domain, transposh_consts::$ignored_po_domains))
1114
  return $translation;
@@ -1127,9 +1140,9 @@ class transposh_plugin {
1127
  * @return string
1128
  */
1129
  function transposh_ngettext_filter($translation, $single, $plural, $domain) {
1130
- if ($this->is_special_page($_SERVER['REQUEST_URI']) || ($this->options->is_default_language($this->tgl) && !$this->options->get_enable_default_translate()))
1131
  return $translation;
1132
-
1133
  if (in_array($domain, transposh_consts::$ignored_po_domains))
1134
  return $translation;
1135
  if ($translation != $single && $translation != $plural) {
@@ -1146,14 +1159,14 @@ class transposh_plugin {
1146
  */
1147
  function transposh_locale_filter($locale) {
1148
  $lang = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
1149
- if (!$this->options->is_viewable_language($lang)) {
1150
  $lang = '';
1151
  }
1152
  if (!$lang) {
1153
- if (!$this->options->get_transposh_default_locale_override()) {
1154
  return $locale;
1155
  }
1156
- $lang = $this->options->get_default_language();
1157
  }
1158
  list ($l, $n, $f, $locale) = explode(',', transposh_consts::$languages[$lang]);
1159
 
@@ -1212,7 +1225,7 @@ class transposh_plugin {
1212
  }
1213
  }
1214
 
1215
- // Proxyed google translate suggestions
1216
  function on_ajax_nopriv_tp_gsp() {
1217
  $i = 0;
1218
  // we need curl for this proxy
@@ -1220,7 +1233,7 @@ class transposh_plugin {
1220
  transposh_utils::allow_cors();
1221
  $tl = $_GET['tl'];
1222
  // we want to avoid unneeded work or dos attacks on languages we don't support
1223
- if (!in_array($tl, transposh_consts::$google_languages) || !$this->options->is_editable_language($tl))
1224
  return;
1225
  $sl = 'auto';
1226
  if (isset($_GET['sl'])) $sl = $_GET['sl'];
@@ -1261,7 +1274,7 @@ class transposh_plugin {
1261
  die();
1262
  }
1263
 
1264
- // Proxyed translation for google translate
1265
  function on_ajax_nopriv_tp_gp() {
1266
  // we need curl for this proxy
1267
  if (!function_exists('curl_init')) return;
@@ -1269,7 +1282,7 @@ class transposh_plugin {
1269
  // target language
1270
  $tl = $_GET['tl'];
1271
  // we want to avoid unneeded work or dos attacks on languages we don't support
1272
- if (!in_array($tl, transposh_consts::$google_languages) || !$this->options->is_editable_language($tl))
1273
  return;
1274
  // source language
1275
  $sl = 'auto';
@@ -1370,15 +1383,15 @@ class transposh_plugin {
1370
  }
1371
  $oht = get_option(TRANSPOSH_OPTIONS_OHT, array());
1372
  if (!isset($_GET['orglang']))
1373
- $_GET['orglang'] = $this->options->get_default_language();
1374
  $key = $_GET['token'] . '@' . $_GET['lang'] . '@' . $_GET['orglang'];
1375
  if (isset($oht[$key])) {
1376
  unset($oht[$key]);
1377
-
1378
  echo json_encode(false);
1379
  } else {
1380
  $oht[$key] = array('q' => $_GET['q'], 'l' => $_GET['lang'], 'ol' => $_GET['orglang'], 't' => $_GET['token']);
1381
-
1382
  echo json_encode(true);
1383
  }
1384
 
@@ -1386,7 +1399,7 @@ class transposh_plugin {
1386
 
1387
  // we will make an oht send event in defined time
1388
  wp_clear_scheduled_hook('transposh_oht_event');
1389
- wp_schedule_single_event(time() + TRANSPOSH_OHT_DELAY, 'transposh_oht_event');
1390
 
1391
  die();
1392
  }
@@ -1395,9 +1408,9 @@ class transposh_plugin {
1395
  * OHT event running
1396
  */
1397
  function run_oht() {
1398
-
1399
  $oht = get_option(TRANSPOSH_OPTIONS_OHT, array());
1400
-
1401
  $ohtp = get_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, array());
1402
  $projectid = time();
1403
  //send less data
@@ -1405,15 +1418,15 @@ class transposh_plugin {
1405
  $pcount = 0;
1406
  foreach ($oht as $arr) {
1407
  $pcount++;
1408
-
1409
  $ohtbody[$arr['t']] = array('q' => $arr['q'], 'l' => $arr['l'], 'ol' => $arr['ol']);
1410
  }
1411
  $ohtbody['pid'] = $projectid;
1412
- $ohtbody['id'] = $this->options->get_oht_id();
1413
- $ohtbody['key'] = $this->options->get_oht_key();
1414
  $ohtbody['callback'] = admin_url('admin-ajax.php');
1415
  $ohtbody['homeurl'] = $this->home_url;
1416
-
1417
  // now we send this, add to log that it was sent to oht.. we'll also add a timer to make sure it gets back to us
1418
  $ret = wp_remote_post('http://svc.transposh.org/oht.php', array('body' => $ohtbody));
1419
  if ($ret['response']['code'] == '200') {
@@ -1421,7 +1434,7 @@ class transposh_plugin {
1421
  $ohtp[$projectid] = $pcount;
1422
  update_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, $ohtp);
1423
  } else {
1424
-
1425
  }
1426
  }
1427
 
@@ -1449,16 +1462,16 @@ class transposh_plugin {
1449
  */
1450
  function on_ajax_nopriv_tp_ohtcallback() {
1451
  $ohtp = get_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, array());
1452
-
1453
  if ($ohtp[$_POST['projectid']]) {
1454
  Logger($_POST['projectid'] . " was found and will be processed");
1455
  do_action('transposh_oht_callback');
1456
-
1457
  $ohtp[$_POST['projectid']] -= $_POST['items'];
1458
  if ($ohtp[$_POST['projectid']] <= 0) {
1459
  unset($ohtp[$_POST['projectid']]);
1460
  }
1461
-
1462
  update_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, $ohtp);
1463
  $this->database->update_translation("OHT");
1464
  }
@@ -1475,7 +1488,7 @@ class transposh_plugin {
1475
  // set the cookie with ajax, no redirect needed
1476
  function on_ajax_nopriv_tp_cookie() {
1477
  setcookie('TR_LNG', transposh_utils::get_language_from_url($_SERVER['HTTP_REFERER'], $this->home_url), time() + 90 * 24 * 60 * 60, COOKIEPATH, COOKIE_DOMAIN);
1478
-
1479
  die();
1480
  }
1481
 
@@ -1514,4 +1527,16 @@ function transposh_get_current_language() {
1514
  return $my_transposh_plugin->target_language;
1515
  }
1516
 
 
 
 
 
 
 
 
 
 
 
 
 
1517
  ?>
3
  /*
4
  Plugin Name: Transposh Translation Filter
5
  Plugin URI: http://transposh.org/
6
+ Description: Translation filter for WordPress, After enabling please set languages at the <a href="admin.php?page=tp_main">the options page</a> Want to help? visit our development site at <a href="http://trac.transposh.org/">trac.transposh.org</a>.
7
  Author: Team Transposh
8
+ Version: 0.9.0
9
  Author URI: http://transposh.org/
10
  License: GPL (http://www.gnu.org/licenses/gpl.txt)
11
  Text Domain: transposh
13
  */
14
 
15
  /*
16
+ * Transposh v0.9.0
17
  * http://transposh.org/
18
  *
19
  * Copyright 2012, Team Transposh
20
  * Licensed under the GPL Version 2 or higher.
21
  * http://transposh.org/license
22
  *
23
+ * Date: Sun, 16 Dec 2012 07:53:29 +0200
24
  */
25
 
26
  //avoid direct calls to this file where wp core files not present
30
  exit();
31
  }
32
 
33
+ require_once("core/logging.php");
34
  require_once("core/constants.php");
35
  require_once("core/utils.php");
36
  require_once("core/jsonwrapper/jsonwrapper.php");
118
  $this->postpublish = new transposh_postpublish($this);
119
  $this->third_party = new transposh_3rdparty($this);
120
 
121
+ // initialize logger
122
+ if ($this->options->debug_enable) {
123
+ $GLOBALS['tp_logger'] = tp_logger::getInstance(true);
124
+ $GLOBALS['tp_logger']->show_caller = true;
125
+ $GLOBALS['tp_logger']->set_debug_level($this->options->debug_loglevel);
126
+ $GLOBALS['tp_logger']->set_log_file($this->options->debug_logfile);
127
+ $GLOBALS['tp_logger']->set_remoteip($this->options->debug_remoteip);
128
+ }
129
+
130
  // "global" vars
131
  $this->home_url = get_option('home');
132
 
140
 
141
  $this->transposh_plugin_dir = plugin_dir_path(__FILE__);
142
 
143
+ if ($this->options->debug_enable)
144
+ tp_logger('Transposh object created: ' . $_SERVER['REQUEST_URI'], 3);
145
 
146
  //Register some functions into wordpress
147
+ if ($this->options->debug_enable)
148
+ tp_logger(preg_replace('|^' . preg_quote(WP_PLUGIN_DIR, '|') . '/|', '', __FILE__), 4); // includes transposh dir and php
149
+
150
+ // TODO: get_class_methods to replace said mess, other way?
151
  add_filter('plugin_action_links_' . preg_replace('|^' . preg_quote(WP_PLUGIN_DIR, '|') . '/|', '', __FILE__), array(&$this, 'plugin_action_links'));
152
  add_filter('query_vars', array(&$this, 'parameter_queryvars'));
153
  add_filter('rewrite_rules_array', array(&$this, 'update_rewrite_rules'));
154
+ if ($this->options->enable_url_translate) {
155
  add_filter('request', array(&$this, 'request_filter'));
156
  }
157
  add_filter('comment_post_redirect', array(&$this, 'comment_post_redirect_filter'));
203
  //TODO add_action('manage_comments_nav', array(&$this,'manage_comments_nav'));
204
  //TODO comment_row_actions (filter)
205
  // Intergrating with the gettext interface
206
+ if ($this->options->transposh_gettext_integration) {
207
  add_filter('gettext', array(&$this, 'transposh_gettext_filter'), 10, 3);
208
  add_filter('gettext_with_context', array(&$this, 'transposh_gettext_filter'), 10, 3);
209
  add_filter('ngettext', array(&$this, 'transposh_ngettext_filter'), 10, 4);
221
  // FUTURE add_action('update-custom_transposh', array(&$this, 'update'));
222
  // CHECK TODO!!!!!!!!!!!!
223
  $this->tgl = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
224
+ if (!$this->options->is_active_language($this->tgl)) {
225
  $this->tgl = '';
226
  }
227
 
241
  if ($this->transposh_redirect) return $location;
242
  if ($this->options->is_default_language($this->target_language))
243
  return $location;
244
+ tp_logger($status . ' ' . $location);
245
  // $trace = debug_backtrace();
246
+ // tp_logger($trace);
247
+ // tp_logger($this->target_language);
248
  $location = $this->rewrite_url($location);
249
  return $location;
250
  }
267
  * @return mixed false if redirect unneeded - new url if we think we should
268
  */
269
  function on_redirect_canonical($red, $req) {
270
+ tp_logger("$red .. $req", 4);
271
  // if the urls are actually the same, don't redirect (same - if it had our proper take care of)
272
  if ($this->rewrite_url($red) == urldecode($req)) return false;
273
  // if this is not the default language, we need to make sure it redirects to what we believe is the proper url
282
  //remove any language identifier and find the "clean" url, used for posting and calculating urls if needed
283
  $this->clean_url = transposh_utils::cleanup_url($_SERVER['REQUEST_URI'], $this->home_url, true);
284
  // we need this if we are using url translations
285
+ if ($this->options->enable_url_translate) {
286
  $this->clean_url = transposh_utils::get_original_url($this->clean_url, '', $this->target_language, array($this->database, 'fetch_original'));
287
  }
288
  return $this->clean_url;
289
  }
290
 
291
  // function update() {
 
 
292
  // require_once('./admin-header.php');
293
 
294
  /* $nonce = 'upgrade-plugin_' . $plugin;
318
  * @return string Modified page buffer
319
  */
320
  function process_page(&$buffer) {
321
+ tp_logger('processing page hit with language:' . $this->target_language, 1);
322
  $start_time = microtime(TRUE);
323
 
324
  // Refrain from touching the administrative interface and important pages
325
  if ($this->is_special_page($_SERVER['REQUEST_URI'])) {
326
+ tp_logger("Skipping translation for admin pages", 3);
327
  }
328
  // This one fixed a bug transposh created with other pages (xml generator for other plugins - such as the nextgen gallery)
329
  // TODO: need to further investigate (will it be needed?)
330
  elseif ($this->target_language == '') {
331
+ tp_logger("Skipping translation where target language is unset", 3);
332
  }
333
  // Don't translate the default language unless specifically allowed to...
334
+ elseif ($this->options->is_default_language($this->target_language) && !$this->options->enable_default_translate) {
335
+ tp_logger("Skipping translation for default language {$this->target_language}", 3);
336
  } else {
337
  // This one allows to redirect to a static element which we can find, since the redirection will remove
338
  // the target language, we are able to avoid nasty redirection loops
339
  if (is_404()) {
340
  global $wp;
341
  if (isset($wp->query_vars['pagename']) && file_exists(ABSPATH . $wp->query_vars['pagename'])) { // Hmm
342
+ tp_logger('Redirecting a static file ' . $wp->query_vars['pagename'], 1);
343
  $this->tp_redirect('/' . $wp->query_vars['pagename'], 301);
344
  }
345
  }
346
 
347
+ tp_logger("Translating {$_SERVER['REQUEST_URI']} to: {$this->target_language}", 1);
348
 
349
  //translate the entire page
350
  $parse = new parser();
358
  $parse->is_edit_mode = $this->edit_mode;
359
  $parse->might_json = $this->attempt_json;
360
  $parse->is_auto_translate = $this->is_auto_translate_permitted();
361
+ $parse->allow_ad = $this->options->widget_remove_logo;
362
  // TODO - check this!
363
  if (stripos($_SERVER['REQUEST_URI'], '/feed/') !== FALSE) {
364
+ tp_logger("in rss feed!", 2);
365
  $parse->is_auto_translate = false;
366
  $parse->is_edit_mode = false;
367
  $parse->feed_fix = true;
368
  }
369
+ $parse->change_parsing_rules(!$this->options->parser_dont_break_puncts, !$this->options->parser_dont_break_numbers, !$this->options->parser_dont_break_entities);
370
  $buffer = $parse->fix_html($buffer);
371
 
372
  $end_time = microtime(TRUE);
373
+ tp_logger('Translation completed in ' . ($end_time - $start_time) . ' seconds', 1);
374
  }
375
 
376
  return $buffer;
377
  }
378
 
379
  // function on_admin_init() {
380
+ // tp_logger("admin init called");
381
  // }
382
 
383
  /**
385
  * Once processing is completed the buffer will go into the translation process.
386
  */
387
  function on_init() {
388
+ tp_logger('init ' . $_SERVER['REQUEST_URI'], 4);
389
 
390
  // the wp_rewrite is not available earlier so we can only set the enable_permalinks here
391
  if (is_object($GLOBALS['wp_rewrite'])) {
392
+ if ($GLOBALS['wp_rewrite']->using_permalinks() && $this->options->enable_permalinks) {
393
+ tp_logger("enabling permalinks");
394
  $this->enable_permalinks_rewrite = TRUE;
395
  }
396
  }
397
 
398
  // this is an ajax special case, currently crafted and tested on buddy press, lets hope this won't make hell break loose.
399
  // it basically sets language based on referred when accessing wp-load.php (which is the way bp does ajax)
400
+ tp_logger(substr($_SERVER['SCRIPT_FILENAME'], -11), 5);
401
  if (substr($_SERVER['SCRIPT_FILENAME'], -11) == 'wp-load.php') {
402
  $this->target_language = transposh_utils::get_language_from_url($_SERVER['HTTP_REFERER'], $this->home_url);
403
  $this->attempt_json = true;
423
  * @return array New rewrite rules
424
  */
425
  function update_rewrite_rules($rules) {
426
+ tp_logger("Enter update_rewrite_rules", 2);
427
 
428
+ if (!$this->options->enable_permalinks) {
429
+ tp_logger("Not touching rewrite rules - permalinks modification disabled by admin", 2);
430
  return $rules;
431
  }
432
 
437
 
438
  //catch the root url
439
  $newRules[$lang_prefix . "?$"] = "index.php?lang=\$matches[1]";
440
+ tp_logger("\t {$lang_prefix} ?$ ---> index.php?lang=\$matches[1]", 4);
441
 
442
  foreach ($rules as $key => $value) {
443
  $original_key = $key;
453
 
454
  $value .= $lang_parameter;
455
 
456
+ tp_logger("\t $key ---> $value", 5);
457
 
458
 
459
  $newRules[$key] = $value;
460
  $newRules[$original_key] = $original_value;
461
 
462
+ tp_logger(": \t{$original_key} ---> {$original_value}", 4);
463
  }
464
 
465
+ tp_logger("Exit update_rewrite_rules", 2);
466
  return $newRules;
467
  }
468
 
469
+ //function flush_transposh_rewrite_rules() {
470
+ //add_filter('rewrite_rules_array', array(&$this, 'update_rewrite_rules'));
471
+ // $GLOBALS['wp_rewrite']->flush_rules();
472
+ //}
473
+
474
  /**
475
  * Let WordPress know which parameters are of interest to us.
476
  * @param array $vars Original queried variables
477
  * @return array Modified array
478
  */
479
  function parameter_queryvars($vars) {
480
+ tp_logger('inside query vars', 4);
481
  $vars[] = LANG_PARAM;
482
  $vars[] = EDIT_PARAM;
483
+ tp_logger($vars, 4);
484
  return $vars;
485
  }
486
 
489
  * @param WP $wp - here we get the WP class
490
  */
491
  function on_parse_request($wp) {
492
+ tp_logger('on_parse_req', 3);
493
+ tp_logger($wp->query_vars);
494
 
495
  // fix for custom-permalink (and others that might be double parsing?)
496
  if ($this->target_language) return;
498
  // first we get the target language
499
  /* $this->target_language = (isset($wp->query_vars[LANG_PARAM])) ? $wp->query_vars[LANG_PARAM] : '';
500
  if (!$this->target_language)
501
+ $this->target_language = $this->options->default_language;
502
+ tp_logger("requested language: {$this->target_language}"); */
503
  // TODO TOCHECK!!!!!!!!!!!!!!!!!!!!!!!!!!1
504
  $this->target_language = $this->tgl;
 
 
 
 
 
 
505
  if (!$this->target_language)
506
+ $this->target_language = $this->options->default_language;
507
+ tp_logger("requested language: {$this->target_language}", 3);
508
 
509
 
510
  // make themes that support rtl - go rtl http://wordpress.tv/2010/05/01/yoav-farhi-right-to-left-themes-sf10
516
  // we'll go into this code of redirection only if we have options that need it (and no bot is involved, for the non-cookie)
517
  // and this is not a special page or one that is refered by our site
518
  // bots can skip this altogether
519
+ if (($this->options->enable_detect_redirect || $this->options->widget_allow_set_deflang) &&
520
  !($this->is_special_page($_SERVER['REQUEST_URI']) || (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $this->home_url) !== false)) &&
521
  !(transposh_utils::is_bot())) {
522
  // we are starting a session if needed
523
  if (!session_id()) session_start();
524
  // no redirections if we already redirected in this session or we suspect cyclic redirections
525
  if (!isset($_SESSION['TR_REDIRECTED']) && !(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == $_SERVER['REQUEST_URI'])) {
526
+ tp_logger('session redirection never happened (yet)', 2);
527
  // we redirect once per session
528
  $_SESSION['TR_REDIRECTED'] = true;
529
  // redirect according to stored lng cookie, and than according to detection
530
+ if (isset($_COOKIE['TR_LNG']) && $this->options->widget_allow_set_deflang) {
531
  if ($_COOKIE['TR_LNG'] != $this->target_language) {
532
  $url = transposh_utils::rewrite_url_lang_param($_SERVER["REQUEST_URI"], $this->home_url, $this->enable_permalinks_rewrite, $_COOKIE['TR_LNG'], $this->edit_mode);
533
  if ($this->options->is_default_language($_COOKIE['TR_LNG']))
534
  //TODO - fix wrt translation
535
  $url = transposh_utils::cleanup_url($_SERVER["REQUEST_URI"], $this->home_url);
536
+ tp_logger("redirected to $url because of cookie", 4);
537
  $this->tp_redirect($url);
538
  exit;
539
  }
540
  } else {
541
+ $bestlang = transposh_utils::prefered_language(explode(',', $this->options->viewable_languages), $this->options->default_language);
542
  // we won't redirect if we should not, or this is a presumable bot
543
+ if ($bestlang && $bestlang != $this->target_language && $this->options->enable_detect_redirect) {
544
  $url = transposh_utils::rewrite_url_lang_param($_SERVER['REQUEST_URI'], $this->home_url, $this->enable_permalinks_rewrite, $bestlang, $this->edit_mode);
545
  if ($this->options->is_default_language($bestlang))
546
  //TODO - fix wrt translation
547
  $url = transposh_utils::cleanup_url($_SERVER['REQUEST_URI'], $this->home_url);
548
+ tp_logger("redirected to $url because of bestlang", 4);
549
  $this->tp_redirect($url);
550
  exit;
551
  }
552
  }
553
  } else {
554
+ tp_logger('session was already redirected', 2);
555
  }
556
  }
557
  // this method allows posts from the search box to maintain the language,
558
  // TODO - it has a bug of returning to original language following search, which can be resolved by removing search from widget urls, but maybe later...
559
  if (isset($wp->query_vars['s'])) {
560
+ if ($this->options->enable_search_translate) {
561
  add_action('pre_get_posts', array(&$this, 'pre_post_search'));
562
  add_action('posts_where_request', array(&$this, 'posts_where_request'));
563
  }
579
  // We are removing our query vars since they are no longer needed and also make issues when a user select a static page as his home
580
  unset($wp->query_vars[LANG_PARAM]);
581
  unset($wp->query_vars[EDIT_PARAM]);
582
+ tp_logger("edit mode: " . (($this->edit_mode) ? 'enabled' : 'disabled'), 2);
583
  }
584
 
585
  // TODO ? move to options?
590
  */
591
  function is_translator() {
592
  //if anonymous translation is allowed - let anyone enjoy it
593
+ if ($this->options->allow_anonymous_translation) {
594
  return TRUE;
595
  }
596
  if (is_user_logged_in() && current_user_can(TRANSLATOR)) {
603
  * Plugin activation
604
  */
605
  function plugin_activate() {
606
+ tp_logger("plugin_activate enter: " . dirname(__FILE__), 1);
607
 
608
  $this->database->setup_db();
609
+ // this handles the permalink rewrite
 
610
  $GLOBALS['wp_rewrite']->flush_rules();
611
 
612
  // attempt to remove old files
613
  @unlink($this->transposh_plugin_dir . 'widgets/tpw_default.php');
614
  @unlink($this->transposh_plugin_dir . 'core/globals.php');
615
 
616
+ tp_logger("plugin_activate exit: " . dirname(__FILE__), 1);
617
+ tp_logger("testing name:" . plugin_basename(__FILE__), 4);
618
+ tp_logger("testing name2:" . $this->get_plugin_name(), 4);
619
  //activate_plugin($plugin);
620
  }
621
 
623
  * Plugin deactivation
624
  */
625
  function plugin_deactivate() {
626
+ tp_logger("plugin_deactivate enter: " . dirname(__FILE__), 2);
627
 
628
+ // this handles the permalink rewrite
 
629
  $GLOBALS['wp_rewrite']->flush_rules();
630
 
631
+ tp_logger("plugin_deactivate exit: " . dirname(__FILE__), 2);
632
  }
633
 
634
  /**
635
  * Callback from admin_notices - display error message to the admin.
636
  */
637
  function plugin_install_error() {
638
+ tp_logger("install error!", 1);
639
 
640
  echo '<div class="updated"><p>';
641
  echo 'Error has occured in the installation process of the translation plugin: <br>';
657
  * TODO - needs revisiting!
658
  */
659
  function plugin_loaded() {
660
+ tp_logger("Enter", 4);
661
 
662
  //TODO: fix this...
663
  $db_version = get_option(TRANSPOSH_DB_VERSION);
666
  $this->database->setup_db();
667
  //$this->admin_msg = "Translation database version ($db_version) is not comptabile with this plugin (". DB_VERSION . ") <br>";
668
 
669
+ tp_logger("Updating database in plugin loaded", 1);
670
  //Some error occured - notify admin and deactivate plugin
671
  //add_action('admin_notices', 'plugin_install_error');
672
  }
677
  if ($db_version != DB_VERSION) {
678
  $this->admin_msg = "Failed to locate the translation table <em> " . TRANSLATIONS_TABLE . "</em> in local database. <br>";
679
 
680
+ tp_logger("Messsage to admin: {$this->admin_msg}", 1);
681
  //Some error occured - notify admin and deactivate plugin
682
  add_action('admin_notices', array(&$this, 'plugin_install_error'));
683
  }
696
  $file = preg_replace('|/+|', '/', $file); // remove any duplicate slash
697
  //keep only the file name and its parent directory
698
  $file = preg_replace('/.*\/([^\/]+\/[^\/]+)$/', '$1', $file);
699
+ tp_logger("Plugin path - $file", 4);
700
  return $file;
701
  }
702
 
713
  //include the transposh.css
714
  wp_enqueue_style('transposh', $this->transposh_plugin_url . '/' . TRANSPOSH_DIR_CSS . '/transposh.css', array(), TRANSPOSH_PLUGIN_VER);
715
 
716
+ tp_logger('Added transposh_css', 4);
717
  }
718
 
719
  /**
721
  */
722
  function add_transposh_js() {
723
  //not in any translation mode - no need for any js.
724
+ if (!($this->edit_mode || $this->is_auto_translate_permitted() || is_admin() || $this->options->widget_allow_set_deflang))
725
+ // TODO: need to include if allowing of setting default language - but smaller!
726
  return; // TODO, check just for settings page admin and pages with our translate
727
+ wp_register_script('transposh', $this->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/transposh.js', array('jquery'), TRANSPOSH_PLUGIN_VER, $this->options->enable_footer_scripts);
728
  // true -> 1, false -> nothing
729
  $script_params = array(
730
  'ajaxurl' => admin_url('admin-ajax.php'),
731
  'plugin_url' => $this->transposh_plugin_url,
732
  'lang' => $this->target_language,
733
+ 'olang' => $this->options->default_language,
734
  // those two options show if the script can support said engines
735
  'prefix' => SPAN_PREFIX,
736
+ 'preferred' => $this->options->preferred_translator,
737
  );
738
 
739
  // FIX BACKEND
740
  if (!$this->target_language || in_array($this->target_language, transposh_consts::$bing_languages)) {
741
  $script_params['msn'] = 1;
742
+ if ($this->options->msn_key) {
743
+ $script_params['msn_key'] = $this->options->msn_key;
744
  }
745
  }
746
  // FIX BACKEND
747
  if (!$this->target_language || in_array($this->target_language, transposh_consts::$google_languages)) {
748
+ if ($this->options->google_key) {
749
+ $script_params['google_key'] = $this->options->google_key;
750
  }
751
+ if ($this->options->google_key || function_exists('curl_init'))
752
  $script_params['google'] = 1;
753
  }
754
  if (in_array($this->target_language, transposh_consts::$apertium_languages))
755
  $script_params['apertium'] = 1;
756
+ if ($this->options->oht_id && $this->options->oht_key && in_array($this->target_language, transposh_consts::$oht_languages) && current_user_can('manage_options'))
757
  $script_params['oht'] = 1;
758
+ if ($this->options->widget_progressbar) $script_params['progress'] = 1;
759
+ if (!$this->options->enable_autotranslate) $script_params['noauto'] = 1;
 
 
760
 
761
  // load translations needed for edit interface
762
  if ($this->edit_mode) {
766
  }
767
  }
768
  // set theme when it is needed
769
+ if ($this->options->widget_progressbar || $this->edit_mode) {
770
+ $script_params['theme'] = $this->options->widget_theme;
771
  }
772
 
773
  // 'l10n_print_after' => 'try{convertEntities(inlineEditL10n);}catch(e){};'
774
  wp_localize_script('transposh', 't_jp', $script_params);
775
  // only enqueue on real pages, other admin scripts that need this will register a dependency
776
+ if (($this->edit_mode || $this->is_auto_translate_permitted() || $this->options->widget_allow_set_deflang) && !is_admin()) {
777
  wp_enqueue_script('transposh');
778
  }
779
+ tp_logger('Added transposh_js', 4);
780
  }
781
 
782
  /**
785
  function add_rel_alternate() {
786
  if (is_404()) return;
787
  $widget_args = $this->widget->create_widget_args($this->get_clean_url());
788
+ tp_logger($widget_args, 4);
789
  foreach ($widget_args as $lang) {
790
  if (!$lang['active']) {
791
  echo '<link rel="alternate" hreflang="' . $lang['isocode'] . '" href="' . $lang['url'] . '"/>';
803
  // editing is permitted for translators only
804
  if (!$this->is_translator()) return false;
805
  // and only on the non-default lang (unless strictly specified)
806
+ if (!$this->options->enable_default_translate && $this->options->is_default_language($this->target_language))
807
  return false;
808
 
809
+ return $this->options->is_active_language($this->target_language);
810
  }
811
 
812
  /**
817
  * TODO: move to options
818
  */
819
  function is_auto_translate_permitted() {
820
+ tp_logger("checking auto translatability", 4);
821
 
822
+ if (!$this->options->enable_autotranslate) return false;
823
  // auto translate is not enabled for default target language when enable default is disabled
824
+ if (!$this->options->enable_default_translate && $this->options->is_default_language($this->target_language))
825
  return false;
826
 
827
+ return $this->options->is_active_language($this->target_language);
828
  }
829
 
830
  /**
875
  * @return boolean Modified href
876
  */
877
  function rewrite_url($href) {
878
+ tp_logger("got: $href", 5);
 
879
  // fix what might be messed up -- TODO
880
  $href = str_replace(array(TP_GTXT_BRK, TP_GTXT_IBRK, TP_GTXT_BRK_CLOSER, TP_GTXT_IBRK_CLOSER), '', $href);
881
 
894
  }
895
  $use_params = !$this->enable_permalinks_rewrite;
896
 
897
+ // we don't really know, but we sometime rewrite urls when we are in the default language (canonicals?), so just clean them up
898
+ // if ($this->target_language == $this->options->default_language)
899
+ if ($this->options->is_default_language($this->target_language)) {
900
+ $href = transposh_utils::cleanup_url($href, $this->home_url);
901
+ tp_logger("cleaned up: $href", 4);
902
+ return $href;
903
+ }
904
  // some hackery needed for url translations
905
  // first cut home
906
+ if ($this->options->enable_url_translate) {
907
  $href = transposh_utils::translate_url($href, $this->home_url, $this->target_language, array(&$this->database, 'fetch_translation'));
908
  }
909
  $href = transposh_utils::rewrite_url_lang_param($href, $this->home_url, $this->enable_permalinks_rewrite, $this->target_language, $this->edit_mode, $use_params);
910
+ tp_logger("rewritten: $href", 4);
911
  return $href;
912
  }
913
 
917
  * @return array Now with settings
918
  */
919
  function plugin_action_links($links) {
920
+ tp_logger('in plugin action', 5);
921
+ return array_merge(array('<a href="' . admin_url('admin.php?page=tp_main') . '">' . __('Settings') . '</a>'), $links);
922
  }
923
 
924
  /**
926
  * @param WP_Query $query
927
  */
928
  function pre_post_search($query) {
929
+ tp_logger('pre post', 4);
930
+ tp_logger($query->query_vars, 4);
931
  // we hide the search query var from further proccesing, because we do this later
932
  if ($query->query_vars['s']) {
933
  $this->search_s = $query->query_vars['s'];
942
  */
943
  function posts_where_request($where) {
944
 
945
+ tp_logger($where, 3);
946
  // from query.php line 1742 (v2.8.6)
947
  // If a search pattern is specified, load the posts that match
948
  $q = &$GLOBALS['wp_query']->query_vars;
983
  $search .= " AND ({$GLOBALS['wpdb']->posts}.post_password = '') ";
984
  }
985
  }
986
+ tp_logger($search, 3);
987
  return $search . $where;
988
  }
989
 
991
  * Runs a scheduled backup
992
  */
993
  function run_backup() {
994
+ tp_logger('backup run..', 2);
995
  $my_transposh_backup = new transposh_backup($this);
996
  $my_transposh_backup->do_backup();
997
  }
1000
  * Runs a restore
1001
  */
1002
  function run_restore() {
1003
+ tp_logger('restoring..', 2);
1004
  $my_transposh_backup = new transposh_backup($this);
1005
  $my_transposh_backup->do_restore();
1006
  }
1039
  if ($comment_lang) {
1040
  $text = "<span lang =\"$comment_lang\">" . $text . "</span>";
1041
  if (strpos($text, '<a href="' . $this->home_url) !== FALSE) {
1042
+ $text = str_replace('<a href="' . $this->home_url, '<a lang="' . $this->options->default_language . '" href="' . $this->home_url, $text);
1043
  }
1044
  }
1045
+ tp_logger("$comment_lang " . get_comment_ID(), 4);
1046
  return $text;
1047
  }
1048
 
1058
  if ($lang) {
1059
  $text = "<span lang =\"$lang\">" . $text . "</span>";
1060
  if (strpos($text, '<a href="' . $this->home_url) !== FALSE) {
1061
+ $text = str_replace('<a href="' . $this->home_url, '<a lang="' . $this->options->default_language . '" href="' . $this->home_url, $text);
1062
  }
1063
  }
1064
  return $text;
1075
  $lang = get_post_meta($id, 'tp_language', true);
1076
  if ($lang) {
1077
  if (strpos($_SERVER['REQUEST_URI'], 'wp-admin/edit') !== false) {
1078
+ tp_logger('iamhere?' . strpos($_SERVER['REQUEST_URI'], 'wp-admin/edit'));
1079
  $plugpath = parse_url($this->transposh_plugin_url, PHP_URL_PATH);
1080
  list($langeng, $langorig, $langflag) = explode(',', transposh_consts::$languages[$lang]);
1081
  $text = transposh_utils::display_flag("$plugpath/img/flags", $langflag, $langorig, false) . ' ' . $text;
1097
  $requri = $_SERVER['REQUEST_URI'];
1098
  $lang = transposh_utils::get_language_from_url($requri, $this->home_url);
1099
  if ($lang && !$this->got_request) {
1100
+ tp_logger('Trying to find original url');
1101
  $this->got_request = true;
1102
  // the trick is to replace the URI and put it back afterwards
1103
  $_SERVER['REQUEST_URI'] = transposh_utils::get_original_url($requri, '', $lang, array($this->database, 'fetch_original'));
1105
  $wp->parse_request();
1106
  $query = $wp->query_vars;
1107
  $_SERVER['REQUEST_URI'] = $requri;
1108
+ tp_logger('new query vars are');
1109
+ tp_logger($query);
1110
  }
1111
  return $query;
1112
  }
1118
  * @return string
1119
  */
1120
  function transposh_gettext_filter($translation, $orig, $domain) {
1121
+ if ($this->is_special_page($_SERVER['REQUEST_URI']) || ($this->options->is_default_language($this->tgl) && !$this->options->enable_default_translate)) {
1122
  return $translation;
1123
  }
1124
+ tp_logger("($translation, $orig, $domain)", 5);
1125
  // HACK - TODO - FIX
1126
  if (in_array($domain, transposh_consts::$ignored_po_domains))
1127
  return $translation;
1140
  * @return string
1141
  */
1142
  function transposh_ngettext_filter($translation, $single, $plural, $domain) {
1143
+ if ($this->is_special_page($_SERVER['REQUEST_URI']) || ($this->options->is_default_language($this->tgl) && !$this->options->enable_default_translate))
1144
  return $translation;
1145
+ tp_logger("($translation, $single, $plural, $domain)", 4);
1146
  if (in_array($domain, transposh_consts::$ignored_po_domains))
1147
  return $translation;
1148
  if ($translation != $single && $translation != $plural) {
1159
  */
1160
  function transposh_locale_filter($locale) {
1161
  $lang = transposh_utils::get_language_from_url($_SERVER['REQUEST_URI'], $this->home_url);
1162
+ if (!$this->options->is_active_language($lang)) {
1163
  $lang = '';
1164
  }
1165
  if (!$lang) {
1166
+ if (!$this->options->transposh_locale_override) {
1167
  return $locale;
1168
  }
1169
+ $lang = $this->options->default_language;
1170
  }
1171
  list ($l, $n, $f, $locale) = explode(',', transposh_consts::$languages[$lang]);
1172
 
1225
  }
1226
  }
1227
 
1228
+ // Proxied google translate suggestions
1229
  function on_ajax_nopriv_tp_gsp() {
1230
  $i = 0;
1231
  // we need curl for this proxy
1233
  transposh_utils::allow_cors();
1234
  $tl = $_GET['tl'];
1235
  // we want to avoid unneeded work or dos attacks on languages we don't support
1236
+ if (!in_array($tl, transposh_consts::$google_languages) || !$this->options->is_active_language($tl))
1237
  return;
1238
  $sl = 'auto';
1239
  if (isset($_GET['sl'])) $sl = $_GET['sl'];
1274
  die();
1275
  }
1276
 
1277
+ // Proxied translation for google translate
1278
  function on_ajax_nopriv_tp_gp() {
1279
  // we need curl for this proxy
1280
  if (!function_exists('curl_init')) return;
1282
  // target language
1283
  $tl = $_GET['tl'];
1284
  // we want to avoid unneeded work or dos attacks on languages we don't support
1285
+ if (!in_array($tl, transposh_consts::$google_languages) || !$this->options->is_active_language($tl))
1286
  return;
1287
  // source language
1288
  $sl = 'auto';
1383
  }
1384
  $oht = get_option(TRANSPOSH_OPTIONS_OHT, array());
1385
  if (!isset($_GET['orglang']))
1386
+ $_GET['orglang'] = $this->options->default_language;
1387
  $key = $_GET['token'] . '@' . $_GET['lang'] . '@' . $_GET['orglang'];
1388
  if (isset($oht[$key])) {
1389
  unset($oht[$key]);
1390
+ tp_logger('oht false');
1391
  echo json_encode(false);
1392
  } else {
1393
  $oht[$key] = array('q' => $_GET['q'], 'l' => $_GET['lang'], 'ol' => $_GET['orglang'], 't' => $_GET['token']);
1394
+ tp_logger('oht true');
1395
  echo json_encode(true);
1396
  }
1397
 
1399
 
1400
  // we will make an oht send event in defined time
1401
  wp_clear_scheduled_hook('transposh_oht_event');
1402
+ wp_schedule_single_event(time() + TRANSPOSH_OHT_DELAY, 'transposh_oht_event');
1403
 
1404
  die();
1405
  }
1408
  * OHT event running
1409
  */
1410
  function run_oht() {
1411
+ tp_logger("oht should run", 2);
1412
  $oht = get_option(TRANSPOSH_OPTIONS_OHT, array());
1413
+ tp_logger($oht, 3);
1414
  $ohtp = get_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, array());
1415
  $projectid = time();
1416
  //send less data
1418
  $pcount = 0;
1419
  foreach ($oht as $arr) {
1420
  $pcount++;
1421
+ tp_logger($arr);
1422
  $ohtbody[$arr['t']] = array('q' => $arr['q'], 'l' => $arr['l'], 'ol' => $arr['ol']);
1423
  }
1424
  $ohtbody['pid'] = $projectid;
1425
+ $ohtbody['id'] = $this->options->oht_id;
1426
+ $ohtbody['key'] = $this->options->oht_key;
1427
  $ohtbody['callback'] = admin_url('admin-ajax.php');
1428
  $ohtbody['homeurl'] = $this->home_url;
1429
+ tp_logger($ohtbody);
1430
  // now we send this, add to log that it was sent to oht.. we'll also add a timer to make sure it gets back to us
1431
  $ret = wp_remote_post('http://svc.transposh.org/oht.php', array('body' => $ohtbody));
1432
  if ($ret['response']['code'] == '200') {
1434
  $ohtp[$projectid] = $pcount;
1435
  update_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, $ohtp);
1436
  } else {
1437
+ tp_logger($ret, 1);
1438
  }
1439
  }
1440
 
1462
  */
1463
  function on_ajax_nopriv_tp_ohtcallback() {
1464
  $ohtp = get_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, array());
1465
+ tp_logger($ohtp);
1466
  if ($ohtp[$_POST['projectid']]) {
1467
  Logger($_POST['projectid'] . " was found and will be processed");
1468
  do_action('transposh_oht_callback');
1469
+ tp_logger($_POST);
1470
  $ohtp[$_POST['projectid']] -= $_POST['items'];
1471
  if ($ohtp[$_POST['projectid']] <= 0) {
1472
  unset($ohtp[$_POST['projectid']]);
1473
  }
1474
+ tp_logger($ohtp);
1475
  update_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, $ohtp);
1476
  $this->database->update_translation("OHT");
1477
  }
1488
  // set the cookie with ajax, no redirect needed
1489
  function on_ajax_nopriv_tp_cookie() {
1490
  setcookie('TR_LNG', transposh_utils::get_language_from_url($_SERVER['HTTP_REFERER'], $this->home_url), time() + 90 * 24 * 60 * 60, COOKIEPATH, COOKIE_DOMAIN);
1491
+ tp_logger('Cookie ' . transposh_utils::get_language_from_url($_SERVER['HTTP_REFERER'], $this->home_url));
1492
  die();
1493
  }
1494
 
1527
  return $my_transposh_plugin->target_language;
1528
  }
1529
 
1530
+ /**
1531
+ * This function provides easier access to logging using the singleton object
1532
+ * @param mixed $msg
1533
+ * @param int $severity
1534
+ */
1535
+ function tp_logger($msg, $severity = 3, $do_backtrace = false) {
1536
+ global $my_transposh_plugin;
1537
+ if (isset($my_transposh_plugin) && is_object($my_transposh_plugin) && !$my_transposh_plugin->options->debug_enable)
1538
+ return;
1539
+ $GLOBALS['tp_logger']->do_log($msg, $severity, $do_backtrace);
1540
+ }
1541
+
1542
  ?>
widgets/default/tpw_default.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.8.5
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
22
  */
23
 
24
  /*
11
  */
12
 
13
  /*
14
+ * Transposh v0.9.0
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
  */
23
 
24
  /*
widgets/dropdown/tpw_image_dropdown.css CHANGED
@@ -1,46 +1,20 @@
1
  /*
2
  * Widget's css
3
  */
4
- .transposh_flags {
5
- direction: ltr;
6
- line-height: 0;
7
- }
8
- .transposh_flags a {
9
- /* line-height:11px;*/
10
- display: inline;
11
- /*background: transparent;*/ /* ie8 quirk */
12
- }
13
-
14
- .transposh_flags a:hover {
15
- /* ie8 quirk */
16
- background:transparent
17
- }
18
-
19
- .transposh_flags a span, .transposh_flags a img {
20
- border-color:transparent;
21
- border-style:solid;
22
- border-width:1px 3px;
23
- padding: 0;
24
- }
25
-
26
- .transposh_flags a span:hover, .transposh_flags a img:hover {
27
- border-color:blue
28
- }
29
-
30
  /* Code adapted from: http://www.jankoatwarpspeed.com/post/2009/07/28/reinventing-drop-down-with-css-jquery.aspx */
31
 
32
  .dropdown, .dropdown dd, .dropdown dt, .dropdown ul { margin:0px; padding:0px; }
33
- .dropdown dd { position:relative; }
34
  .dropdown a, .dropdown a:visited { color:#816c5b; text-decoration:none; outline:none;}
35
  .dropdown a:hover { color:#5d4617;}
36
  .dropdown dt a:hover, .dropdown dt a:focus { color:#5d4617; border: 1px solid #5d4617;}
37
  .dropdown dt a {background:#e4dfcb url(arrow.png) no-repeat scroll right center; display:block; padding-right:20px;
38
- border:1px solid #d4ca9a; width:150px;}
39
  .dropdown dt a span {cursor:pointer; display:block; padding:5px;}
40
  .dropdown dd ul { background:#e4dfcb none repeat scroll 0 0; border:1px solid #d4ca9a; color:#C5C0B0; display:none;
41
- padding:5px 0px; position:absolute; top:2px; width:auto; min-width:170px; list-style:none;}
42
  .dropdown span.value { display:none;}
43
  .dropdown dd ul li a { padding:5px; display:block;}
44
  .dropdown dd ul li a:hover { background-color:#d0c9af;}
45
 
46
- .dropdown img.flag { border:none; vertical-align:middle; margin-left:10px; }
1
  /*
2
  * Widget's css
3
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  /* Code adapted from: http://www.jankoatwarpspeed.com/post/2009/07/28/reinventing-drop-down-with-css-jquery.aspx */
5
 
6
  .dropdown, .dropdown dd, .dropdown dt, .dropdown ul { margin:0px; padding:0px; }
7
+ .dropdown dd { position:relative; z-index:9999;}
8
  .dropdown a, .dropdown a:visited { color:#816c5b; text-decoration:none; outline:none;}
9
  .dropdown a:hover { color:#5d4617;}
10
  .dropdown dt a:hover, .dropdown dt a:focus { color:#5d4617; border: 1px solid #5d4617;}
11
  .dropdown dt a {background:#e4dfcb url(arrow.png) no-repeat scroll right center; display:block; padding-right:20px;
12
+ border:1px solid #d4ca9a; width:150px;}
13
  .dropdown dt a span {cursor:pointer; display:block; padding:5px;}
14
  .dropdown dd ul { background:#e4dfcb none repeat scroll 0 0; border:1px solid #d4ca9a; color:#C5C0B0; display:none;
15
+ padding:5px 0px; position:absolute; top:2px; width:auto; min-width:170px; list-style:none;}
16
  .dropdown span.value { display:none;}
17
  .dropdown dd ul li a { padding:5px; display:block;}
18
  .dropdown dd ul li a:hover { background-color:#d0c9af;}
19
 
20
+ .dropdown img.flag { border:none; vertical-align:middle; margin:0 3px;box-shadow:0 0;border-radius:0 }
widgets/dropdown/tpw_image_dropdown.js CHANGED
@@ -2,7 +2,7 @@
2
 
3
  (function ($) { // closure
4
 
5
- $(document).ready(function() {
6
  $(".dropdown dt a").click(function() {
7
  $(".dropdown dd ul").toggle();
8
  return false;
2
 
3
  (function ($) { // closure
4
 
5
+ $(function() {
6
  $(".dropdown dt a").click(function() {
7
  $(".dropdown dd ul").toggle();
8
  return false;
widgets/dropdown/tpw_image_dropdown.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.8.5
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
22
  */
23
 
24
  class tpw_image_dropdown extends transposh_base_widget {
@@ -44,7 +44,7 @@ class tpw_image_dropdown extends transposh_base_widget {
44
  /* TRANSLATORS: this is what appears in the select box in dropdown subwidget */
45
  echo '<dt><a href="#"><span>' . __('Select language', TRANSPOSH_TEXT_DOMAIN) . '</span></a></dt><dd><ul class="' . NO_TRANSLATE_CLASS . '">';
46
  foreach ($args as $langrecord) {
47
- $is_selected = $langrecord['active'] ? " selected=\"selected\"" : "";
48
  echo '<li><a href="#"><img class="flag" src="' . "$plugpath/img/flags/{$langrecord['flag']}" . '.png" alt="' . $langrecord['langorig'] . '"/> ' . $langrecord['langorig'] . '<span class="value">' . $langrecord['url'] . '</span></a></li>';
49
  }
50
 
11
  */
12
 
13
  /*
14
+ * Transposh v0.9.0
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
  */
23
 
24
  class tpw_image_dropdown extends transposh_base_widget {
44
  /* TRANSLATORS: this is what appears in the select box in dropdown subwidget */
45
  echo '<dt><a href="#"><span>' . __('Select language', TRANSPOSH_TEXT_DOMAIN) . '</span></a></dt><dd><ul class="' . NO_TRANSLATE_CLASS . '">';
46
  foreach ($args as $langrecord) {
47
+ // $is_selected = $langrecord['active'] ? " selected=\"selected\"" : "";
48
  echo '<li><a href="#"><img class="flag" src="' . "$plugpath/img/flags/{$langrecord['flag']}" . '.png" alt="' . $langrecord['langorig'] . '"/> ' . $langrecord['langorig'] . '<span class="value">' . $langrecord['url'] . '</span></a></li>';
49
  }
50
 
widgets/flags/tpw_flags.css CHANGED
@@ -17,10 +17,12 @@
17
  }
18
 
19
  .transposh_flags a span, .transposh_flags a img {
20
- border-color:transparent;
21
  border-style:solid;
22
  border-width:1px 3px;
23
- padding: 0;
 
 
24
  }
25
 
26
  .transposh_flags a span:hover, .transposh_flags a img:hover {
17
  }
18
 
19
  .transposh_flags a span, .transposh_flags a img {
20
+ border:transparent;
21
  border-style:solid;
22
  border-width:1px 3px;
23
+ box-shadow:0 0;
24
+ border-radius:0;
25
+ padding:0;
26
  }
27
 
28
  .transposh_flags a span:hover, .transposh_flags a img:hover {
widgets/flags/tpw_flags.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.8.5
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
22
  */
23
 
24
  /**
11
  */
12
 
13
  /*
14
+ * Transposh v0.9.0
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
  */
23
 
24
  /**
widgets/flags/tpw_flags_css.css CHANGED
@@ -20,6 +20,8 @@
20
  border-color:transparent;
21
  border-style:solid;
22
  border-width:1px 3px;
 
 
23
  padding: 0;
24
  }
25
 
20
  border-color:transparent;
21
  border-style:solid;
22
  border-width:1px 3px;
23
+ box-shadow:0 0;
24
+ border-radius:0;
25
  padding: 0;
26
  }
27
 
widgets/flags/tpw_flags_css.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.8.5
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
22
  */
23
 
24
  class tpw_flags_css extends transposh_base_widget {
11
  */
12
 
13
  /*
14
+ * Transposh v0.9.0
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
  */
23
 
24
  class tpw_flags_css extends transposh_base_widget {
widgets/flagslist/tpw_list_with_flags.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.8.5
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
22
  */
23
 
24
  class tpw_list_with_flags extends transposh_base_widget {
11
  */
12
 
13
  /*
14
+ * Transposh v0.9.0
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
  */
23
 
24
  class tpw_list_with_flags extends transposh_base_widget {
widgets/flagslist/tpw_list_with_flags_css.php CHANGED
@@ -11,14 +11,14 @@
11
  */
12
 
13
  /*
14
- * Transposh v0.8.5
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
22
  */
23
 
24
  class tpw_list_with_flags_css extends transposh_base_widget {
11
  */
12
 
13
  /*
14
+ * Transposh v0.9.0
15
  * http://transposh.org/
16
  *
17
  * Copyright 2012, Team Transposh
18
  * Licensed under the GPL Version 2 or higher.
19
  * http://transposh.org/license
20
  *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
  */
23
 
24
  class tpw_list_with_flags_css extends transposh_base_widget {
widgets/select2/select2.css ADDED
@@ -0,0 +1,524 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
3
+ */
4
+ .select2-container {
5
+ position: relative;
6
+ display: inline-block;
7
+ /* inline-block for ie7 */
8
+ zoom: 1;
9
+ *display: inline;
10
+ vertical-align: top;
11
+ }
12
+
13
+ .select2-container,
14
+ .select2-drop,
15
+ .select2-search,
16
+ .select2-search input{
17
+ /*
18
+ Force border-box so that % widths fit the parent
19
+ container without overlap because of margin/padding.
20
+
21
+ More Info : http://www.quirksmode.org/css/box.html
22
+ */
23
+ -moz-box-sizing: border-box; /* firefox */
24
+ -ms-box-sizing: border-box; /* ie */
25
+ -webkit-box-sizing: border-box; /* webkit */
26
+ -khtml-box-sizing: border-box; /* konqueror */
27
+ box-sizing: border-box; /* css3 */
28
+ }
29
+
30
+ .select2-container .select2-choice {
31
+ background-color: #fff;
32
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
33
+ background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
34
+ background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
35
+ background-image: -o-linear-gradient(bottom, #eeeeee 0%, #ffffff 50%);
36
+ background-image: -ms-linear-gradient(top, #eeeeee 0%, #ffffff 50%);
37
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#ffffff', GradientType = 0);
38
+ background-image: linear-gradient(top, #eeeeee 0%, #ffffff 50%);
39
+ -webkit-border-radius: 4px;
40
+ -moz-border-radius: 4px;
41
+ border-radius: 4px;
42
+ -moz-background-clip: padding;
43
+ -webkit-background-clip: padding-box;
44
+ background-clip: padding-box;
45
+ border: 1px solid #aaa;
46
+ display: block;
47
+ overflow: hidden;
48
+ white-space: nowrap;
49
+ position: relative;
50
+ height: 26px;
51
+ line-height: 26px;
52
+ padding: 0 0 0 8px;
53
+ color: #444;
54
+ text-decoration: none;
55
+ }
56
+
57
+ .select2-container.select2-drop-above .select2-choice
58
+ {
59
+ border-bottom-color: #aaa;
60
+ -webkit-border-radius:0px 0px 4px 4px;
61
+ -moz-border-radius:0px 0px 4px 4px;
62
+ border-radius:0px 0px 4px 4px;
63
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.9, white));
64
+ background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 90%);
65
+ background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 90%);
66
+ background-image: -o-linear-gradient(bottom, #eeeeee 0%, white 90%);
67
+ background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 90%);
68
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
69
+ background-image: linear-gradient(top, #eeeeee 0%,#ffffff 90%);
70
+ }
71
+
72
+ .select2-container .select2-choice span {
73
+ margin-right: 26px;
74
+ display: block;
75
+ overflow: hidden;
76
+ white-space: nowrap;
77
+ -o-text-overflow: ellipsis;
78
+ -ms-text-overflow: ellipsis;
79
+ text-overflow: ellipsis;
80
+ }
81
+
82
+ .select2-container .select2-choice abbr {
83
+ display: block;
84
+ position: absolute;
85
+ right: 26px;
86
+ top: 8px;
87
+ width: 12px;
88
+ height: 12px;
89
+ font-size: 1px;
90
+ background: url('select2.png') right top no-repeat;
91
+ cursor: pointer;
92
+ text-decoration: none;
93
+ border:0;
94
+ outline: 0;
95
+ }
96
+ .select2-container .select2-choice abbr:hover {
97
+ background-position: right -11px;
98
+ cursor: pointer;
99
+ }
100
+
101
+ .select2-drop {
102
+ background: #fff;
103
+ color: #000;
104
+ border: 1px solid #aaa;
105
+ border-top: 0;
106
+ position: absolute;
107
+ top: 100%;
108
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
109
+ -moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
110
+ -o-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
111
+ box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
112
+ z-index: 9999;
113
+ width:100%;
114
+ margin-top:-1px;
115
+
116
+ -webkit-border-radius: 0 0 4px 4px;
117
+ -moz-border-radius: 0 0 4px 4px;
118
+ border-radius: 0 0 4px 4px;
119
+ }
120
+
121
+ .select2-drop.select2-drop-above {
122
+ -webkit-border-radius: 4px 4px 0px 0px;
123
+ -moz-border-radius: 4px 4px 0px 0px;
124
+ border-radius: 4px 4px 0px 0px;
125
+ margin-top:1px;
126
+ border-top: 1px solid #aaa;
127
+ border-bottom: 0;
128
+
129
+ -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
130
+ -moz-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
131
+ -o-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
132
+ box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
133
+ }
134
+
135
+ .select2-container .select2-choice div {
136
+ -webkit-border-radius: 0 4px 4px 0;
137
+ -moz-border-radius: 0 4px 4px 0;
138
+ border-radius: 0 4px 4px 0;
139
+ -moz-background-clip: padding;
140
+ -webkit-background-clip: padding-box;
141
+ background-clip: padding-box;
142
+ background: #ccc;
143
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
144
+ background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
145
+ background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
146
+ background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
147
+ background-image: -ms-linear-gradient(top, #cccccc 0%, #eeeeee 60%);
148
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#cccccc', endColorstr = '#eeeeee', GradientType = 0);
149
+ background-image: linear-gradient(top, #cccccc 0%, #eeeeee 60%);
150
+ border-left: 1px solid #aaa;
151
+ position: absolute;
152
+ right: 0;
153
+ top: 0;
154
+ display: block;
155
+ height: 100%;
156
+ width: 18px;
157
+ }
158
+
159
+ .select2-container .select2-choice div b {
160
+ background: url('select2.png') no-repeat 0 1px;
161
+ display: block;
162
+ width: 100%;
163
+ height: 100%;
164
+ }
165
+
166
+ .select2-search {
167
+ display: inline-block;
168
+ white-space: nowrap;
169
+ z-index: 10000;
170
+ min-height: 26px;
171
+ width: 100%;
172
+ margin: 0;
173
+ padding-left: 4px;
174
+ padding-right: 4px;
175
+ }
176
+
177
+ .select2-search-hidden {
178
+ display: block;
179
+ position: absolute;
180
+ left: -10000px;
181
+ }
182
+
183
+ .select2-search input {
184
+ background: #fff url('select2.png') no-repeat 100% -22px;
185
+ background: url('select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
186
+ background: url('select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
187
+ background: url('select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
188
+ background: url('select2.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
189
+ background: url('select2.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
190
+ background: url('select2.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
191
+ padding: 4px 20px 4px 5px;
192
+ outline: 0;
193
+ border: 1px solid #aaa;
194
+ font-family: sans-serif;
195
+ font-size: 1em;
196
+ width:100%;
197
+ margin:0;
198
+ height:auto !important;
199
+ min-height: 26px;
200
+ -webkit-box-shadow: none;
201
+ -moz-box-shadow: none;
202
+ box-shadow: none;
203
+ border-radius: 0;
204
+ -moz-border-radius: 0;
205
+ -webkit-border-radius: 0;
206
+ }
207
+
208
+ .select2-drop.select2-drop-above .select2-search input
209
+ {
210
+ margin-top:4px;
211
+ }
212
+
213
+ .select2-search input.select2-active {
214
+ background: #fff url('spinner.gif') no-repeat 100%;
215
+ background: url('spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
216
+ background: url('spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
217
+ background: url('spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
218
+ background: url('spinner.gif') no-repeat 100%, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
219
+ background: url('spinner.gif') no-repeat 100%, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
220
+ background: url('spinner.gif') no-repeat 100%, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
221
+ }
222
+
223
+
224
+ .select2-container-active .select2-choice,
225
+ .select2-container-active .select2-choices {
226
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
227
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
228
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
229
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
230
+ border: 1px solid #5897fb;
231
+ outline: none;
232
+ }
233
+
234
+ .select2-dropdown-open .select2-choice {
235
+ border: 1px solid #aaa;
236
+ border-bottom-color: transparent;
237
+ -webkit-box-shadow: 0 1px 0 #fff inset;
238
+ -moz-box-shadow : 0 1px 0 #fff inset;
239
+ -o-box-shadow : 0 1px 0 #fff inset;
240
+ box-shadow : 0 1px 0 #fff inset;
241
+ background-color: #eee;
242
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
243
+ background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
244
+ background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
245
+ background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
246
+ background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
247
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
248
+ background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
249
+ -webkit-border-bottom-left-radius : 0;
250
+ -webkit-border-bottom-right-radius: 0;
251
+ -moz-border-radius-bottomleft : 0;
252
+ -moz-border-radius-bottomright: 0;
253
+ border-bottom-left-radius : 0;
254
+ border-bottom-right-radius: 0;
255
+ }
256
+
257
+ .select2-dropdown-open .select2-choice div {
258
+ background: transparent;
259
+ border-left: none;
260
+ }
261
+ .select2-dropdown-open .select2-choice div b {
262
+ background-position: -18px 1px;
263
+ }
264
+
265
+ /* results */
266
+ .select2-results {
267
+ margin: 4px 4px 4px 0;
268
+ padding: 0 0 0 4px;
269
+ position: relative;
270
+ overflow-x: hidden;
271
+ overflow-y: auto;
272
+ max-height: 200px;
273
+ }
274
+
275
+ .select2-results ul.select2-result-sub {
276
+ margin: 0 0 0 0;
277
+ }
278
+
279
+ .select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px }
280
+ .select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px }
281
+ .select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px }
282
+ .select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px }
283
+ .select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px }
284
+ .select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px }
285
+ .select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px }
286
+
287
+ .select2-results li {
288
+ list-style: none;
289
+ display: list-item;
290
+ }
291
+
292
+ .select2-results li.select2-result-with-children > .select2-result-label {
293
+ font-weight: bold;
294
+ }
295
+
296
+ .select2-results .select2-result-label {
297
+ padding: 3px 7px 4px;
298
+ margin: 0;
299
+ cursor: pointer;
300
+ }
301
+
302
+ .select2-results .select2-highlighted {
303
+ background: #3875d7;
304
+ color: #fff;
305
+ }
306
+ .select2-results li em {
307
+ background: #feffde;
308
+ font-style: normal;
309
+ }
310
+ .select2-results .select2-highlighted em {
311
+ background: transparent;
312
+ }
313
+ .select2-results .select2-no-results,
314
+ .select2-results .select2-searching,
315
+ .select2-results .select2-selection-limit {
316
+ background: #f4f4f4;
317
+ display: list-item;
318
+ }
319
+
320
+ /*
321
+ disabled look for already selected choices in the results dropdown
322
+ .select2-results .select2-disabled.select2-highlighted {
323
+ color: #666;
324
+ background: #f4f4f4;
325
+ display: list-item;
326
+ cursor: default;
327
+ }
328
+ .select2-results .select2-disabled {
329
+ background: #f4f4f4;
330
+ display: list-item;
331
+ cursor: default;
332
+ }
333
+ */
334
+ .select2-results .select2-disabled {
335
+ display: none;
336
+ }
337
+
338
+ .select2-more-results.select2-active {
339
+ background: #f4f4f4 url('spinner.gif') no-repeat 100%;
340
+ }
341
+
342
+ .select2-more-results {
343
+ background: #f4f4f4;
344
+ display: list-item;
345
+ }
346
+
347
+ /* disabled styles */
348
+
349
+ .select2-container.select2-container-disabled .select2-choice {
350
+ background-color: #f4f4f4;
351
+ background-image: none;
352
+ border: 1px solid #ddd;
353
+ cursor: default;
354
+ }
355
+
356
+ .select2-container.select2-container-disabled .select2-choice div {
357
+ background-color: #f4f4f4;
358
+ background-image: none;
359
+ border-left: 0;
360
+ }
361
+
362
+
363
+ /* multiselect */
364
+
365
+ .select2-container-multi .select2-choices {
366
+ background-color: #fff;
367
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
368
+ background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
369
+ background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
370
+ background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
371
+ background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
372
+ background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
373
+ border: 1px solid #aaa;
374
+ margin: 0;
375
+ padding: 0;
376
+ cursor: text;
377
+ overflow: hidden;
378
+ height: auto !important;
379
+ height: 1%;
380
+ position: relative;
381
+ }
382
+
383
+ .select2-container-multi .select2-choices {
384
+ min-height: 26px;
385
+ }
386
+
387
+ .select2-container-multi.select2-container-active .select2-choices {
388
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
389
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
390
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
391
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
392
+ border: 1px solid #5897fb;
393
+ outline: none;
394
+ }
395
+ .select2-container-multi .select2-choices li {
396
+ float: left;
397
+ list-style: none;
398
+ }
399
+ .select2-container-multi .select2-choices .select2-search-field {
400
+ white-space: nowrap;
401
+ margin: 0;
402
+ padding: 0;
403
+ }
404
+
405
+ .select2-container-multi .select2-choices .select2-search-field input {
406
+ color: #666;
407
+ background: transparent !important;
408
+ font-family: sans-serif;
409
+ font-size: 100%;
410
+ height: 15px;
411
+ padding: 5px;
412
+ margin: 1px 0;
413
+ outline: 0;
414
+ border: 0;
415
+ -webkit-box-shadow: none;
416
+ -moz-box-shadow : none;
417
+ -o-box-shadow : none;
418
+ box-shadow : none;
419
+ }
420
+
421
+ .select2-container-multi .select2-choices .select2-search-field input.select2-active {
422
+ background: #fff url('spinner.gif') no-repeat 100% !important;
423
+ }
424
+
425
+ .select2-default {
426
+ color: #999 !important;
427
+ }
428
+
429
+ .select2-container-multi .select2-choices .select2-search-choice {
430
+ -webkit-border-radius: 3px;
431
+ -moz-border-radius : 3px;
432
+ border-radius : 3px;
433
+ -moz-background-clip : padding;
434
+ -webkit-background-clip: padding-box;
435
+ background-clip : padding-box;
436
+ background-color: #e4e4e4;
437
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
438
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
439
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
440
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
441
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
442
+ background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
443
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
444
+ -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
445
+ -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
446
+ box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
447
+ color: #333;
448
+ border: 1px solid #aaaaaa;
449
+ line-height: 13px;
450
+ padding: 3px 5px 3px 18px;
451
+ margin: 3px 0 3px 5px;
452
+ position: relative;
453
+ cursor: default;
454
+ }
455
+ .select2-container-multi .select2-choices .select2-search-choice span {
456
+ cursor: default;
457
+ }
458
+ .select2-container-multi .select2-choices .select2-search-choice-focus {
459
+ background: #d4d4d4;
460
+ }
461
+
462
+ .select2-search-choice-close {
463
+ display: block;
464
+ position: absolute;
465
+ right: 3px;
466
+ top: 4px;
467
+ width: 12px;
468
+ height: 13px;
469
+ font-size: 1px;
470
+ background: url('select2.png') right top no-repeat;
471
+ outline: none;
472
+ }
473
+
474
+ .select2-container-multi .select2-search-choice-close {
475
+ left: 3px;
476
+ }
477
+
478
+
479
+ .select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
480
+ background-position: right -11px;
481
+ }
482
+ .select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
483
+ background-position: right -11px;
484
+ }
485
+
486
+ /* disabled styles */
487
+
488
+ .select2-container-multi.select2-container-disabled .select2-choices{
489
+ background-color: #f4f4f4;
490
+ background-image: none;
491
+ border: 1px solid #ddd;
492
+ cursor: default;
493
+ }
494
+
495
+ .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
496
+ background-image: none;
497
+ background-color: #f4f4f4;
498
+ border: 1px solid #ddd;
499
+ padding: 3px 5px 3px 5px;
500
+ }
501
+
502
+ .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close {
503
+ display: none;
504
+ }
505
+ /* end multiselect */
506
+
507
+ .select2-result-selectable .select2-match,
508
+ .select2-result-unselectable .select2-result-selectable .select2-match { text-decoration: underline; }
509
+ .select2-result-unselectable .select2-match { text-decoration: none; }
510
+
511
+ .select2-offscreen { position: absolute; left: -10000px; }
512
+
513
+ /* Retina-ize icons */
514
+
515
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
516
+ .select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice div b {
517
+ background-image: url(select2x2.png) !important;
518
+ background-repeat: no-repeat !important;
519
+ background-size: 60px 40px !important;
520
+ }
521
+ .select2-search input {
522
+ background-position: 100% -21px !important;
523
+ }
524
+ }
widgets/select2/select2.js ADDED
@@ -0,0 +1,2407 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Copyright 2012 Igor Vaynberg
3
+
4
+ Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
7
+ compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under the License is
12
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and limitations under the License.
14
+ */
15
+ (function ($) {
16
+ if(typeof $.fn.each2 == "undefined"){
17
+ $.fn.extend({
18
+ /*
19
+ * 4-10 times faster .each replacement
20
+ * use it carefully, as it overrides jQuery context of element on each iteration
21
+ */
22
+ each2 : function (c) {
23
+ var j = $([0]), i = -1, l = this.length;
24
+ while (
25
+ ++i < l
26
+ && (j.context = j[0] = this[i])
27
+ && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object
28
+ );
29
+ return this;
30
+ }
31
+ });
32
+ }
33
+ })(jQuery);
34
+
35
+ (function ($, undefined) {
36
+ "use strict";
37
+ /*global document, window, jQuery, console */
38
+
39
+ if (window.Select2 !== undefined) {
40
+ return;
41
+ }
42
+
43
+ var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer;
44
+
45
+ KEY = {
46
+ TAB: 9,
47
+ ENTER: 13,
48
+ ESC: 27,
49
+ SPACE: 32,
50
+ LEFT: 37,
51
+ UP: 38,
52
+ RIGHT: 39,
53
+ DOWN: 40,
54
+ SHIFT: 16,
55
+ CTRL: 17,
56
+ ALT: 18,
57
+ PAGE_UP: 33,
58
+ PAGE_DOWN: 34,
59
+ HOME: 36,
60
+ END: 35,
61
+ BACKSPACE: 8,
62
+ DELETE: 46,
63
+ isArrow: function (k) {
64
+ k = k.which ? k.which : k;
65
+ switch (k) {
66
+ case KEY.LEFT:
67
+ case KEY.RIGHT:
68
+ case KEY.UP:
69
+ case KEY.DOWN:
70
+ return true;
71
+ }
72
+ return false;
73
+ },
74
+ isControl: function (e) {
75
+ var k = e.which;
76
+ switch (k) {
77
+ case KEY.SHIFT:
78
+ case KEY.CTRL:
79
+ case KEY.ALT:
80
+ return true;
81
+ }
82
+
83
+ if (e.metaKey) return true;
84
+
85
+ return false;
86
+ },
87
+ isFunctionKey: function (k) {
88
+ k = k.which ? k.which : k;
89
+ return k >= 112 && k <= 123;
90
+ }
91
+ };
92
+
93
+ nextUid=(function() { var counter=1; return function() { return counter++; }; }());
94
+
95
+ function indexOf(value, array) {
96
+ var i = 0, l = array.length, v;
97
+
98
+ if (typeof value === "undefined") {
99
+ return -1;
100
+ }
101
+
102
+ if (value.constructor === String) {
103
+ for (; i < l; i = i + 1) if (value.localeCompare(array[i]) === 0) return i;
104
+ } else {
105
+ for (; i < l; i = i + 1) {
106
+ v = array[i];
107
+ if (v.constructor === String) {
108
+ if (v.localeCompare(value) === 0) return i;
109
+ } else {
110
+ if (v === value) return i;
111
+ }
112
+ }
113
+ }
114
+ return -1;
115
+ }
116
+
117
+ /**
118
+ * Compares equality of a and b taking into account that a and b may be strings, in which case localeCompare is used
119
+ * @param a
120
+ * @param b
121
+ */
122
+ function equal(a, b) {
123
+ if (a === b) return true;
124
+ if (a === undefined || b === undefined) return false;
125
+ if (a === null || b === null) return false;
126
+ if (a.constructor === String) return a.localeCompare(b) === 0;
127
+ if (b.constructor === String) return b.localeCompare(a) === 0;
128
+ return false;
129
+ }
130
+
131
+ /**
132
+ * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty
133
+ * strings
134
+ * @param string
135
+ * @param separator
136
+ */
137
+ function splitVal(string, separator) {
138
+ var val, i, l;
139
+ if (string === null || string.length < 1) return [];
140
+ val = string.split(separator);
141
+ for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]);
142
+ return val;
143
+ }
144
+
145
+ function getSideBorderPadding(element) {
146
+ return element.outerWidth() - element.width();
147
+ }
148
+
149
+ function installKeyUpChangeEvent(element) {
150
+ var key="keyup-change-value";
151
+ element.bind("keydown", function () {
152
+ if ($.data(element, key) === undefined) {
153
+ $.data(element, key, element.val());
154
+ }
155
+ });
156
+ element.bind("keyup", function () {
157
+ var val= $.data(element, key);
158
+ if (val !== undefined && element.val() !== val) {
159
+ $.removeData(element, key);
160
+ element.trigger("keyup-change");
161
+ }
162
+ });
163
+ }
164
+
165
+ $(document).delegate("body", "mousemove", function (e) {
166
+ $.data(document, "select2-lastpos", {x: e.pageX, y: e.pageY});
167
+ });
168
+
169
+ /**
170
+ * filters mouse events so an event is fired only if the mouse moved.
171
+ *
172
+ * filters out mouse events that occur when mouse is stationary but
173
+ * the elements under the pointer are scrolled.
174
+ */
175
+ function installFilteredMouseMove(element) {
176
+ element.bind("mousemove", function (e) {
177
+ var lastpos = $.data(document, "select2-lastpos");
178
+ if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) {
179
+ $(e.target).trigger("mousemove-filtered", e);
180
+ }
181
+ });
182
+ }
183
+
184
+ /**
185
+ * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made
186
+ * within the last quietMillis milliseconds.
187
+ *
188
+ * @param quietMillis number of milliseconds to wait before invoking fn
189
+ * @param fn function to be debounced
190
+ * @param ctx object to be used as this reference within fn
191
+ * @return debounced version of fn
192
+ */
193
+ function debounce(quietMillis, fn, ctx) {
194
+ ctx = ctx || undefined;
195
+ var timeout;
196
+ return function () {
197
+ var args = arguments;
198
+ window.clearTimeout(timeout);
199
+ timeout = window.setTimeout(function() {
200
+ fn.apply(ctx, args);
201
+ }, quietMillis);
202
+ };
203
+ }
204
+
205
+ /**
206
+ * A simple implementation of a thunk
207
+ * @param formula function used to lazily initialize the thunk
208
+ * @return {Function}
209
+ */
210
+ function thunk(formula) {
211
+ var evaluated = false,
212
+ value;
213
+ return function() {
214
+ if (evaluated === false) { value = formula(); evaluated = true; }
215
+ return value;
216
+ };
217
+ };
218
+
219
+ function installDebouncedScroll(threshold, element) {
220
+ var notify = debounce(threshold, function (e) { element.trigger("scroll-debounced", e);});
221
+ element.bind("scroll", function (e) {
222
+ if (indexOf(e.target, element.get()) >= 0) notify(e);
223
+ });
224
+ }
225
+
226
+ function killEvent(event) {
227
+ event.preventDefault();
228
+ event.stopPropagation();
229
+ }
230
+
231
+ function measureTextWidth(e) {
232
+ if (!sizer){
233
+ var style = e[0].currentStyle || window.getComputedStyle(e[0], null);
234
+ sizer = $("<div></div>").css({
235
+ position: "absolute",
236
+ left: "-10000px",
237
+ top: "-10000px",
238
+ display: "none",
239
+ fontSize: style.fontSize,
240
+ fontFamily: style.fontFamily,
241
+ fontStyle: style.fontStyle,
242
+ fontWeight: style.fontWeight,
243
+ letterSpacing: style.letterSpacing,
244
+ textTransform: style.textTransform,
245
+ whiteSpace: "nowrap"
246
+ });
247
+ $("body").append(sizer);
248
+ }
249
+ sizer.text(e.val());
250
+ return sizer.width();
251
+ }
252
+
253
+ function markMatch(text, term, markup) {
254
+ var match=text.toUpperCase().indexOf(term.toUpperCase()),
255
+ tl=term.length;
256
+
257
+ if (match<0) {
258
+ markup.push(text);
259
+ return;
260
+ }
261
+
262
+ markup.push(text.substring(0, match));
263
+ markup.push("<span class='select2-match'>");
264
+ markup.push(text.substring(match, match + tl));
265
+ markup.push("</span>");
266
+ markup.push(text.substring(match + tl, text.length));
267
+ }
268
+
269
+ /**
270
+ * Produces an ajax-based query function
271
+ *
272
+ * @param options object containing configuration paramters
273
+ * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax
274
+ * @param options.url url for the data
275
+ * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url.
276
+ * @param options.dataType request data type: ajax, jsonp, other datatatypes supported by jQuery's $.ajax function or the transport function if specified
277
+ * @param options.traditional a boolean flag that should be true if you wish to use the traditional style of param serialization for the ajax request
278
+ * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often
279
+ * @param options.results a function(remoteData, pageNumber) that converts data returned form the remote request to the format expected by Select2.
280
+ * The expected format is an object containing the following keys:
281
+ * results array of objects that will be used as choices
282
+ * more (optional) boolean indicating whether there are more results available
283
+ * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true}
284
+ */
285
+ function ajax(options) {
286
+ var timeout, // current scheduled but not yet executed request
287
+ requestSequence = 0, // sequence used to drop out-of-order responses
288
+ handler = null,
289
+ quietMillis = options.quietMillis || 100;
290
+
291
+ return function (query) {
292
+ window.clearTimeout(timeout);
293
+ timeout = window.setTimeout(function () {
294
+ requestSequence += 1; // increment the sequence
295
+ var requestNumber = requestSequence, // this request's sequence number
296
+ data = options.data, // ajax data function
297
+ transport = options.transport || $.ajax,
298
+ traditional = options.traditional || false,
299
+ type = options.type || 'GET'; // set type of request (GET or POST)
300
+
301
+ data = data.call(this, query.term, query.page, query.context);
302
+
303
+ if( null !== handler) { handler.abort(); }
304
+
305
+ handler = transport.call(null, {
306
+ url: options.url,
307
+ dataType: options.dataType,
308
+ data: data,
309
+ type: type,
310
+ traditional: traditional,
311
+ success: function (data) {
312
+ if (requestNumber < requestSequence) {
313
+ return;
314
+ }
315
+ // TODO 3.0 - replace query.page with query so users have access to term, page, etc.
316
+ var results = options.results(data, query.page);
317
+ query.callback(results);
318
+ }
319
+ });
320
+ }, quietMillis);
321
+ };
322
+ }
323
+
324
+ /**
325
+ * Produces a query function that works with a local array
326
+ *
327
+ * @param options object containing configuration parameters. The options parameter can either be an array or an
328
+ * object.
329
+ *
330
+ * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys.
331
+ *
332
+ * If the object form is used ti is assumed that it contains 'data' and 'text' keys. The 'data' key should contain
333
+ * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text'
334
+ * key can either be a String in which case it is expected that each element in the 'data' array has a key with the
335
+ * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract
336
+ * the text.
337
+ */
338
+ function local(options) {
339
+ var data = options, // data elements
340
+ dataText,
341
+ text = function (item) { return ""+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search
342
+
343
+ if (!$.isArray(data)) {
344
+ text = data.text;
345
+ // if text is not a function we assume it to be a key name
346
+ if (!$.isFunction(text)) {
347
+ dataText = data.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available
348
+ text = function (item) { return item[dataText]; };
349
+ }
350
+ data = data.results;
351
+ }
352
+
353
+ return function (query) {
354
+ var t = query.term, filtered = { results: [] }, process;
355
+ if (t === "") {
356
+ query.callback({results: data});
357
+ return;
358
+ }
359
+
360
+ process = function(datum, collection) {
361
+ var group, attr;
362
+ datum = datum[0];
363
+ if (datum.children) {
364
+ group = {};
365
+ for (attr in datum) {
366
+ if (datum.hasOwnProperty(attr)) group[attr]=datum[attr];
367
+ }
368
+ group.children=[];
369
+ $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); });
370
+ if (group.children.length) {
371
+ collection.push(group);
372
+ }
373
+ } else {
374
+ if (query.matcher(t, text(datum))) {
375
+ collection.push(datum);
376
+ }
377
+ }
378
+ };
379
+
380
+ $(data).each2(function(i, datum) { process(datum, filtered.results); });
381
+ query.callback(filtered);
382
+ };
383
+ }
384
+
385
+ // TODO javadoc
386
+ function tags(data) {
387
+ // TODO even for a function we should probably return a wrapper that does the same object/string check as
388
+ // the function for arrays. otherwise only functions that return objects are supported.
389
+ if ($.isFunction(data)) {
390
+ return data;
391
+ }
392
+
393
+ // if not a function we assume it to be an array
394
+
395
+ return function (query) {
396
+ var t = query.term, filtered = {results: []};
397
+ $(data).each(function () {
398
+ var isObject = this.text !== undefined,
399
+ text = isObject ? this.text : this;
400
+ if (t === "" || query.matcher(t, text)) {
401
+ filtered.results.push(isObject ? this : {id: this, text: this});
402
+ }
403
+ });
404
+ query.callback(filtered);
405
+ };
406
+ }
407
+
408
+ /**
409
+ * Checks if the formatter function should be used.
410
+ *
411
+ * Throws an error if it is not a function. Returns true if it should be used,
412
+ * false if no formatting should be performed.
413
+ *
414
+ * @param formatter
415
+ */
416
+ function checkFormatter(formatter, formatterName) {
417
+ if ($.isFunction(formatter)) return true;
418
+ if (!formatter) return false;
419
+ throw new Error("formatterName must be a function or a falsy value");
420
+ }
421
+
422
+ function evaluate(val) {
423
+ return $.isFunction(val) ? val() : val;
424
+ }
425
+
426
+ function countResults(results) {
427
+ var count = 0;
428
+ $.each(results, function(i, item) {
429
+ if (item.children) {
430
+ count += countResults(item.children);
431
+ } else {
432
+ count++;
433
+ }
434
+ });
435
+ return count;
436
+ }
437
+
438
+ /**
439
+ * Default tokenizer. This function uses breaks the input on substring match of any string from the
440
+ * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those
441
+ * two options have to be defined in order for the tokenizer to work.
442
+ *
443
+ * @param input text user has typed so far or pasted into the search field
444
+ * @param selection currently selected choices
445
+ * @param selectCallback function(choice) callback tho add the choice to selection
446
+ * @param opts select2's opts
447
+ * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value
448
+ */
449
+ function defaultTokenizer(input, selection, selectCallback, opts) {
450
+ var original = input, // store the original so we can compare and know if we need to tell the search to update its text
451
+ dupe = false, // check for whether a token we extracted represents a duplicate selected choice
452
+ token, // token
453
+ index, // position at which the separator was found
454
+ i, l, // looping variables
455
+ separator; // the matched separator
456
+
457
+ if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined;
458
+
459
+ while (true) {
460
+ index = -1;
461
+
462
+ for (i = 0, l = opts.tokenSeparators.length; i < l; i++) {
463
+ separator = opts.tokenSeparators[i];
464
+ index = input.indexOf(separator);
465
+ if (index >= 0) break;
466
+ }
467
+
468
+ if (index < 0) break; // did not find any token separator in the input string, bail
469
+
470
+ token = input.substring(0, index);
471
+ input = input.substring(index + separator.length);
472
+
473
+ if (token.length > 0) {
474
+ token = opts.createSearchChoice(token, selection);
475
+ if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) {
476
+ dupe = false;
477
+ for (i = 0, l = selection.length; i < l; i++) {
478
+ if (equal(opts.id(token), opts.id(selection[i]))) {
479
+ dupe = true; break;
480
+ }
481
+ }
482
+
483
+ if (!dupe) selectCallback(token);
484
+ }
485
+ }
486
+ }
487
+
488
+ if (original.localeCompare(input) != 0) return input;
489
+ }
490
+
491
+ /**
492
+ * blurs any Select2 container that has focus when an element outside them was clicked or received focus
493
+ *
494
+ * also takes care of clicks on label tags that point to the source element
495
+ */
496
+ $(document).ready(function () {
497
+ $(document).delegate("body", "mousedown touchend", function (e) {
498
+ var target = $(e.target).closest("div.select2-container").get(0), attr;
499
+ if (target) {
500
+ $(document).find("div.select2-container-active").each(function () {
501
+ if (this !== target) $(this).data("select2").blur();
502
+ });
503
+ } else {
504
+ target = $(e.target).closest("div.select2-drop").get(0);
505
+ $(document).find("div.select2-drop-active").each(function () {
506
+ if (this !== target) $(this).data("select2").blur();
507
+ });
508
+ }
509
+
510
+ target=$(e.target);
511
+ attr = target.attr("for");
512
+ if ("LABEL" === e.target.tagName && attr && attr.length > 0) {
513
+ target = $("#"+attr);
514
+ target = target.data("select2");
515
+ if (target !== undefined) { target.focus(); e.preventDefault();}
516
+ }
517
+ });
518
+ });
519
+
520
+ /**
521
+ * Creates a new class
522
+ *
523
+ * @param superClass
524
+ * @param methods
525
+ */
526
+ function clazz(SuperClass, methods) {
527
+ var constructor = function () {};
528
+ constructor.prototype = new SuperClass;
529
+ constructor.prototype.constructor = constructor;
530
+ constructor.prototype.parent = SuperClass.prototype;
531
+ constructor.prototype = $.extend(constructor.prototype, methods);
532
+ return constructor;
533
+ }
534
+
535
+ AbstractSelect2 = clazz(Object, {
536
+
537
+ // abstract
538
+ bind: function (func) {
539
+ var self = this;
540
+ return function () {
541
+ func.apply(self, arguments);
542
+ };
543
+ },
544
+
545
+ // abstract
546
+ init: function (opts) {
547
+ var results, search, resultsSelector = ".select2-results";
548
+
549
+ // prepare options
550
+ this.opts = opts = this.prepareOpts(opts);
551
+
552
+ this.id=opts.id;
553
+
554
+ // destroy if called on an existing component
555
+ if (opts.element.data("select2") !== undefined &&
556
+ opts.element.data("select2") !== null) {
557
+ this.destroy();
558
+ }
559
+
560
+ this.enabled=true;
561
+ this.container = this.createContainer();
562
+
563
+ this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid());
564
+ this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
565
+ this.container.attr("id", this.containerId);
566
+
567
+ // cache the body so future lookups are cheap
568
+ this.body = thunk(function() { return opts.element.closest("body"); });
569
+
570
+ if (opts.element.attr("class") !== undefined) {
571
+ this.container.addClass(opts.element.attr("class").replace(/validate\[[\S ]+] ?/, ''));
572
+ }
573
+
574
+ this.container.css(evaluate(opts.containerCss));
575
+ this.container.addClass(evaluate(opts.containerCssClass));
576
+
577
+ // swap container for the element
578
+ this.opts.element
579
+ .data("select2", this)
580
+ .hide()
581
+ .before(this.container);
582
+ this.container.data("select2", this);
583
+
584
+ this.dropdown = this.container.find(".select2-drop");
585
+ this.dropdown.addClass(evaluate(opts.dropdownCssClass));
586
+ this.dropdown.data("select2", this);
587
+
588
+ this.results = results = this.container.find(resultsSelector);
589
+ this.search = search = this.container.find("input.select2-input");
590
+
591
+ search.attr("tabIndex", this.opts.element.attr("tabIndex"));
592
+
593
+ this.resultsPage = 0;
594
+ this.context = null;
595
+
596
+ // initialize the container
597
+ this.initContainer();
598
+ this.initContainerWidth();
599
+
600
+ installFilteredMouseMove(this.results);
601
+ this.dropdown.delegate(resultsSelector, "mousemove-filtered", this.bind(this.highlightUnderEvent));
602
+
603
+ installDebouncedScroll(80, this.results);
604
+ this.dropdown.delegate(resultsSelector, "scroll-debounced", this.bind(this.loadMoreIfNeeded));
605
+
606
+ // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel
607
+ if ($.fn.mousewheel) {
608
+ results.mousewheel(function (e, delta, deltaX, deltaY) {
609
+ var top = results.scrollTop(), height;
610
+ if (deltaY > 0 && top - deltaY <= 0) {
611
+ results.scrollTop(0);
612
+ killEvent(e);
613
+ } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) {
614
+ results.scrollTop(results.get(0).scrollHeight - results.height());
615
+ killEvent(e);
616
+ }
617
+ });
618
+ }
619
+
620
+ installKeyUpChangeEvent(search);
621
+ search.bind("keyup-change", this.bind(this.updateResults));
622
+ search.bind("focus", function () { search.addClass("select2-focused"); if (search.val() === " ") search.val(""); });
623
+ search.bind("blur", function () { search.removeClass("select2-focused");});
624
+
625
+ this.dropdown.delegate(resultsSelector, "mouseup", this.bind(function (e) {
626
+ if ($(e.target).closest(".select2-result-selectable:not(.select2-disabled)").length > 0) {
627
+ this.highlightUnderEvent(e);
628
+ this.selectHighlighted(e);
629
+ } else {
630
+ this.focusSearch();
631
+ }
632
+ killEvent(e);
633
+ }));
634
+
635
+ // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening
636
+ // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's
637
+ // dom it will trigger the popup close, which is not what we want
638
+ this.dropdown.bind("click mouseup mousedown", function (e) { e.stopPropagation(); });
639
+
640
+ if ($.isFunction(this.opts.initSelection)) {
641
+ // initialize selection based on the current value of the source element
642
+ this.initSelection();
643
+
644
+ // if the user has provided a function that can set selection based on the value of the source element
645
+ // we monitor the change event on the element and trigger it, allowing for two way synchronization
646
+ this.monitorSource();
647
+ }
648
+
649
+ if (opts.element.is(":disabled") || opts.element.is("[readonly='readonly']")) this.disable();
650
+ },
651
+
652
+ // abstract
653
+ destroy: function () {
654
+ var select2 = this.opts.element.data("select2");
655
+ if (select2 !== undefined) {
656
+ select2.container.remove();
657
+ select2.dropdown.remove();
658
+ select2.opts.element
659
+ .removeData("select2")
660
+ .unbind(".select2")
661
+ .show();
662
+ }
663
+ },
664
+
665
+ // abstract
666
+ prepareOpts: function (opts) {
667
+ var element, select, idKey, ajaxUrl;
668
+
669
+ element = opts.element;
670
+
671
+ if (element.get(0).tagName.toLowerCase() === "select") {
672
+ this.select = select = opts.element;
673
+ }
674
+
675
+ if (select) {
676
+ // these options are not allowed when attached to a select because they are picked up off the element itself
677
+ $.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () {
678
+ if (this in opts) {
679
+ throw new Error("Option '" + this + "' is not allowed for Select2 when attached to a <select> element.");
680
+ }
681
+ });
682
+ }
683
+
684
+ opts = $.extend({}, {
685
+ populateResults: function(container, results, query) {
686
+ var populate, data, result, children, id=this.opts.id, self=this;
687
+
688
+ populate=function(results, container, depth) {
689
+
690
+ var i, l, result, selectable, compound, node, label, innerContainer, formatted;
691
+ for (i = 0, l = results.length; i < l; i = i + 1) {
692
+
693
+ result=results[i];
694
+ selectable=id(result) !== undefined;
695
+ compound=result.children && result.children.length > 0;
696
+
697
+ node=$("<li></li>");
698
+ node.addClass("select2-results-dept-"+depth);
699
+ node.addClass("select2-result");
700
+ node.addClass(selectable ? "select2-result-selectable" : "select2-result-unselectable");
701
+ if (compound) { node.addClass("select2-result-with-children"); }
702
+ node.addClass(self.opts.formatResultCssClass(result));
703
+
704
+ label=$("<div></div>");
705
+ label.addClass("select2-result-label");
706
+
707
+ formatted=opts.formatResult(result, label, query);
708
+ if (formatted!==undefined) {
709
+ label.html(self.opts.escapeMarkup(formatted));
710
+ }
711
+
712
+ node.append(label);
713
+
714
+ if (compound) {
715
+
716
+ innerContainer=$("<ul></ul>");
717
+ innerContainer.addClass("select2-result-sub");
718
+ populate(result.children, innerContainer, depth+1);
719
+ node.append(innerContainer);
720
+ }
721
+
722
+ node.data("select2-data", result);
723
+ container.append(node);
724
+ }
725
+ };
726
+
727
+ populate(results, container, 0);
728
+ }
729
+ }, $.fn.select2.defaults, opts);
730
+
731
+ if (typeof(opts.id) !== "function") {
732
+ idKey = opts.id;
733
+ opts.id = function (e) { return e[idKey]; };
734
+ }
735
+
736
+ if (select) {
737
+ opts.query = this.bind(function (query) {
738
+ var data = { results: [], more: false },
739
+ term = query.term,
740
+ children, firstChild, process;
741
+
742
+ process=function(element, collection) {
743
+ var group;
744
+ if (element.is("option")) {
745
+ if (query.matcher(term, element.text(), element)) {
746
+ collection.push({id:element.attr("value"), text:element.text(), element: element.get(), css: element.attr("class")});
747
+ }
748
+ } else if (element.is("optgroup")) {
749
+ group={text:element.attr("label"), children:[], element: element.get(), css: element.attr("class")};
750
+ element.children().each2(function(i, elm) { process(elm, group.children); });
751
+ if (group.children.length>0) {
752
+ collection.push(group);
753
+ }
754
+ }
755
+ };
756
+
757
+ children=element.children();
758
+
759
+ // ignore the placeholder option if there is one
760
+ if (this.getPlaceholder() !== undefined && children.length > 0) {
761
+ firstChild = children[0];
762
+ if ($(firstChild).text() === "") {
763
+ children=children.not(firstChild);
764
+ }
765
+ }
766
+
767
+ children.each2(function(i, elm) { process(elm, data.results); });
768
+
769
+ query.callback(data);
770
+ });
771
+ // this is needed because inside val() we construct choices from options and there id is hardcoded
772
+ opts.id=function(e) { return e.id; };
773
+ opts.formatResultCssClass = function(data) { return data.css; }
774
+ } else {
775
+ if (!("query" in opts)) {
776
+ if ("ajax" in opts) {
777
+ ajaxUrl = opts.element.data("ajax-url");
778
+ if (ajaxUrl && ajaxUrl.length > 0) {
779
+ opts.ajax.url = ajaxUrl;
780
+ }
781
+ opts.query = ajax(opts.ajax);
782
+ } else if ("data" in opts) {
783
+ opts.query = local(opts.data);
784
+ } else if ("tags" in opts) {
785
+ opts.query = tags(opts.tags);
786
+ opts.createSearchChoice = function (term) { return {id: term, text: term}; };
787
+ opts.initSelection = function (element, callback) {
788
+ var data = [];
789
+ $(splitVal(element.val(), opts.separator)).each(function () {
790
+ var id = this, text = this, tags=opts.tags;
791
+ if ($.isFunction(tags)) tags=tags();
792
+ $(tags).each(function() { if (equal(this.id, id)) { text = this.text; return false; } });
793
+ data.push({id: id, text: text});
794
+ });
795
+
796
+ callback(data);
797
+ };
798
+ }
799
+ }
800
+ }
801
+ if (typeof(opts.query) !== "function") {
802
+ throw "query function not defined for Select2 " + opts.element.attr("id");
803
+ }
804
+
805
+ return opts;
806
+ },
807
+
808
+ /**
809
+ * Monitor the original element for changes and update select2 accordingly
810
+ */
811
+ // abstract
812
+ monitorSource: function () {
813
+ this.opts.element.bind("change.select2", this.bind(function (e) {
814
+ if (this.opts.element.data("select2-change-triggered") !== true) {
815
+ this.initSelection();
816
+ }
817
+ }));
818
+ },
819
+
820
+ /**
821
+ * Triggers the change event on the source element
822
+ */
823
+ // abstract
824
+ triggerChange: function (details) {
825
+
826
+ details = details || {};
827
+ details= $.extend({}, details, { type: "change", val: this.val() });
828
+ // prevents recursive triggering
829
+ this.opts.element.data("select2-change-triggered", true);
830
+ this.opts.element.trigger(details);
831
+ this.opts.element.data("select2-change-triggered", false);
832
+
833
+ // some validation frameworks ignore the change event and listen instead to keyup, click for selects
834
+ // so here we trigger the click event manually
835
+ this.opts.element.click();
836
+
837
+ // ValidationEngine ignorea the change event and listens instead to blur
838
+ // so here we trigger the blur event manually if so desired
839
+ if (this.opts.blurOnChange)
840
+ this.opts.element.blur();
841
+ },
842
+
843
+
844
+ // abstract
845
+ enable: function() {
846
+ if (this.enabled) return;
847
+
848
+ this.enabled=true;
849
+ this.container.removeClass("select2-container-disabled");
850
+ },
851
+
852
+ // abstract
853
+ disable: function() {
854
+ if (!this.enabled) return;
855
+
856
+ this.close();
857
+
858
+ this.enabled=false;
859
+ this.container.addClass("select2-container-disabled");
860
+ },
861
+
862
+ // abstract
863
+ opened: function () {
864
+ return this.container.hasClass("select2-dropdown-open");
865
+ },
866
+
867
+ // abstract
868
+ positionDropdown: function() {
869
+ var offset = this.container.offset(),
870
+ height = this.container.outerHeight(),
871
+ width = this.container.outerWidth(),
872
+ dropHeight = this.dropdown.outerHeight(),
873
+ viewportBottom = $(window).scrollTop() + document.documentElement.clientHeight,
874
+ dropTop = offset.top + height,
875
+ dropLeft = offset.left,
876
+ enoughRoomBelow = dropTop + dropHeight <= viewportBottom,
877
+ enoughRoomAbove = (offset.top - dropHeight) >= this.body().scrollTop(),
878
+ aboveNow = this.dropdown.hasClass("select2-drop-above"),
879
+ bodyOffset,
880
+ above,
881
+ css;
882
+
883
+ // console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow);
884
+ // console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body().scrollTop(), "enough?", enoughRoomAbove);
885
+
886
+ // fix positioning when body has an offset and is not position: static
887
+
888
+ if (this.body().css('position') !== 'static') {
889
+ bodyOffset = this.body().offset();
890
+ dropTop -= bodyOffset.top;
891
+ dropLeft -= bodyOffset.left;
892
+ }
893
+
894
+ // always prefer the current above/below alignment, unless there is not enough room
895
+
896
+ if (aboveNow) {
897
+ above = true;
898
+ if (!enoughRoomAbove && enoughRoomBelow) above = false;
899
+ } else {
900
+ above = false;
901
+ if (!enoughRoomBelow && enoughRoomAbove) above = true;
902
+ }
903
+
904
+ if (above) {
905
+ dropTop = offset.top - dropHeight;
906
+ this.container.addClass("select2-drop-above");
907
+ this.dropdown.addClass("select2-drop-above");
908
+ }
909
+ else {
910
+ this.container.removeClass("select2-drop-above");
911
+ this.dropdown.removeClass("select2-drop-above");
912
+ }
913
+
914
+ css = $.extend({
915
+ top: dropTop,
916
+ left: dropLeft,
917
+ width: width
918
+ }, evaluate(this.opts.dropdownCss));
919
+
920
+ this.dropdown.css(css);
921
+ },
922
+
923
+ // abstract
924
+ shouldOpen: function() {
925
+ var event;
926
+
927
+ if (this.opened()) return false;
928
+
929
+ event = $.Event("open");
930
+ this.opts.element.trigger(event);
931
+ return !event.isDefaultPrevented();
932
+ },
933
+
934
+ // abstract
935
+ clearDropdownAlignmentPreference: function() {
936
+ // clear the classes used to figure out the preference of where the dropdown should be opened
937
+ this.container.removeClass("select2-drop-above");
938
+ this.dropdown.removeClass("select2-drop-above");
939
+ },
940
+
941
+ /**
942
+ * Opens the dropdown
943
+ *
944
+ * @return {Boolean} whether or not dropdown was opened. This method will return false if, for example,
945
+ * the dropdown is already open, or if the 'open' event listener on the element called preventDefault().
946
+ */
947
+ // abstract
948
+ open: function () {
949
+
950
+ if (!this.shouldOpen()) return false;
951
+
952
+ window.setTimeout(this.bind(this.opening), 1);
953
+
954
+ return true;
955
+ },
956
+
957
+ /**
958
+ * Performs the opening of the dropdown
959
+ */
960
+ // abstract
961
+ opening: function() {
962
+ var cid = this.containerId, selector = this.containerSelector,
963
+ scroll = "scroll." + cid, resize = "resize." + cid;
964
+
965
+ this.container.parents().each(function() {
966
+ $(this).bind(scroll, function() {
967
+ var s2 = $(selector);
968
+ if (s2.length == 0) {
969
+ $(this).unbind(scroll);
970
+ }
971
+ s2.select2("close");
972
+ });
973
+ });
974
+
975
+ $(window).bind(resize, function() {
976
+ var s2 = $(selector);
977
+ if (s2.length == 0) {
978
+ $(window).unbind(resize);
979
+ }
980
+ s2.select2("close");
981
+ });
982
+
983
+ this.clearDropdownAlignmentPreference();
984
+
985
+ if (this.search.val() === " ") { this.search.val(""); }
986
+
987
+ this.container.addClass("select2-dropdown-open").addClass("select2-container-active");
988
+
989
+ this.updateResults(true);
990
+
991
+ if(this.dropdown[0] !== this.body().children().last()[0]) {
992
+ this.dropdown.detach().appendTo(this.body());
993
+ }
994
+
995
+ this.dropdown.show();
996
+
997
+ this.positionDropdown();
998
+ this.dropdown.addClass("select2-drop-active");
999
+
1000
+ this.ensureHighlightVisible();
1001
+
1002
+ this.focusSearch();
1003
+ },
1004
+
1005
+ // abstract
1006
+ close: function () {
1007
+ if (!this.opened()) return;
1008
+
1009
+ var self = this;
1010
+
1011
+ this.container.parents().each(function() {
1012
+ $(this).unbind("scroll." + self.containerId);
1013
+ });
1014
+ $(window).unbind("resize." + this.containerId);
1015
+
1016
+ this.clearDropdownAlignmentPreference();
1017
+
1018
+ this.dropdown.hide();
1019
+ this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");
1020
+ this.results.empty();
1021
+ this.clearSearch();
1022
+
1023
+ this.opts.element.trigger($.Event("close"));
1024
+ },
1025
+
1026
+ // abstract
1027
+ clearSearch: function () {
1028
+
1029
+ },
1030
+
1031
+ // abstract
1032
+ ensureHighlightVisible: function () {
1033
+ var results = this.results, children, index, child, hb, rb, y, more;
1034
+
1035
+ index = this.highlight();
1036
+
1037
+ if (index < 0) return;
1038
+
1039
+ if (index == 0) {
1040
+
1041
+ // if the first element is highlighted scroll all the way to the top,
1042
+ // that way any unselectable headers above it will also be scrolled
1043
+ // into view
1044
+
1045
+ results.scrollTop(0);
1046
+ return;
1047
+ }
1048
+
1049
+ children = results.find(".select2-result-selectable");
1050
+
1051
+ child = $(children[index]);
1052
+
1053
+ hb = child.offset().top + child.outerHeight();
1054
+
1055
+ // if this is the last child lets also make sure select2-more-results is visible
1056
+ if (index === children.length - 1) {
1057
+ more = results.find("li.select2-more-results");
1058
+ if (more.length > 0) {
1059
+ hb = more.offset().top + more.outerHeight();
1060
+ }
1061
+ }
1062
+
1063
+ rb = results.offset().top + results.outerHeight();
1064
+ if (hb > rb) {
1065
+ results.scrollTop(results.scrollTop() + (hb - rb));
1066
+ }
1067
+ y = child.offset().top - results.offset().top;
1068
+
1069
+ // make sure the top of the element is visible
1070
+ if (y < 0) {
1071
+ results.scrollTop(results.scrollTop() + y); // y is negative
1072
+ }
1073
+ },
1074
+
1075
+ // abstract
1076
+ moveHighlight: function (delta) {
1077
+ var choices = this.results.find(".select2-result-selectable"),
1078
+ index = this.highlight();
1079
+
1080
+ while (index > -1 && index < choices.length) {
1081
+ index += delta;
1082
+ var choice = $(choices[index]);
1083
+ if (choice.hasClass("select2-result-selectable") && !choice.hasClass("select2-disabled")) {
1084
+ this.highlight(index);
1085
+ break;
1086
+ }
1087
+ }
1088
+ },
1089
+
1090
+ // abstract
1091
+ highlight: function (index) {
1092
+ var choices = this.results.find(".select2-result-selectable").not(".select2-disabled");
1093
+
1094
+ if (arguments.length === 0) {
1095
+ return indexOf(choices.filter(".select2-highlighted")[0], choices.get());
1096
+ }
1097
+
1098
+ if (index >= choices.length) index = choices.length - 1;
1099
+ if (index < 0) index = 0;
1100
+
1101
+ choices.removeClass("select2-highlighted");
1102
+
1103
+ $(choices[index]).addClass("select2-highlighted");
1104
+ this.ensureHighlightVisible();
1105
+
1106
+ },
1107
+
1108
+ // abstract
1109
+ countSelectableResults: function() {
1110
+ return this.results.find(".select2-result-selectable").not(".select2-disabled").length;
1111
+ },
1112
+
1113
+ // abstract
1114
+ highlightUnderEvent: function (event) {
1115
+ var el = $(event.target).closest(".select2-result-selectable");
1116
+ if (el.length > 0 && !el.is(".select2-highlighted")) {
1117
+ var choices = this.results.find('.select2-result-selectable');
1118
+ this.highlight(choices.index(el));
1119
+ } else if (el.length == 0) {
1120
+ // if we are over an unselectable item remove al highlights
1121
+ this.results.find(".select2-highlighted").removeClass("select2-highlighted");
1122
+ }
1123
+ },
1124
+
1125
+ // abstract
1126
+ loadMoreIfNeeded: function () {
1127
+ var results = this.results,
1128
+ more = results.find("li.select2-more-results"),
1129
+ below, // pixels the element is below the scroll fold, below==0 is when the element is starting to be visible
1130
+ offset = -1, // index of first element without data
1131
+ page = this.resultsPage + 1,
1132
+ self=this,
1133
+ term=this.search.val(),
1134
+ context=this.context;
1135
+
1136
+ if (more.length === 0) return;
1137
+ below = more.offset().top - results.offset().top - results.height();
1138
+
1139
+ if (below <= 0) {
1140
+ more.addClass("select2-active");
1141
+ this.opts.query({
1142
+ term: term,
1143
+ page: page,
1144
+ context: context,
1145
+ matcher: this.opts.matcher,
1146
+ callback: this.bind(function (data) {
1147
+
1148
+ // ignore a response if the select2 has been closed before it was received
1149
+ if (!self.opened()) return;
1150
+
1151
+
1152
+ self.opts.populateResults.call(this, results, data.results, {term: term, page: page, context:context});
1153
+
1154
+ if (data.more===true) {
1155
+ more.detach().appendTo(results).text(self.opts.formatLoadMore(page+1));
1156
+ window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
1157
+ } else {
1158
+ more.remove();
1159
+ }
1160
+ self.positionDropdown();
1161
+ self.resultsPage = page;
1162
+ })});
1163
+ }
1164
+ },
1165
+
1166
+ /**
1167
+ * Default tokenizer function which does nothing
1168
+ */
1169
+ tokenize: function() {
1170
+
1171
+ },
1172
+
1173
+ /**
1174
+ * @param initial whether or not this is the call to this method right after the dropdown has been opened
1175
+ */
1176
+ // abstract
1177
+ updateResults: function (initial) {
1178
+ var search = this.search, results = this.results, opts = this.opts, data, self=this, input;
1179
+
1180
+ // if the search is currently hidden we do not alter the results
1181
+ if (initial !== true && (this.showSearchInput === false || !this.opened())) {
1182
+ return;
1183
+ }
1184
+
1185
+ search.addClass("select2-active");
1186
+
1187
+ function postRender() {
1188
+ results.scrollTop(0);
1189
+ search.removeClass("select2-active");
1190
+ self.positionDropdown();
1191
+ }
1192
+
1193
+ function render(html) {
1194
+ results.html(self.opts.escapeMarkup(html));
1195
+ postRender();
1196
+ }
1197
+
1198
+ if (opts.maximumSelectionSize >=1) {
1199
+ data = this.data();
1200
+ if ($.isArray(data) && data.length >= opts.maximumSelectionSize && checkFormatter(opts.formatSelectionTooBig, "formatSelectionTooBig")) {
1201
+ render("<li class='select2-selection-limit'>" + opts.formatSelectionTooBig(opts.maximumSelectionSize) + "</li>");
1202
+ return;
1203
+ }
1204
+ }
1205
+
1206
+ if (search.val().length < opts.minimumInputLength && checkFormatter(opts.formatInputTooShort, "formatInputTooShort")) {
1207
+ render("<li class='select2-no-results'>" + opts.formatInputTooShort(search.val(), opts.minimumInputLength) + "</li>");
1208
+ return;
1209
+ }
1210
+ else {
1211
+ render("<li class='select2-searching'>" + opts.formatSearching() + "</li>");
1212
+ }
1213
+
1214
+ // give the tokenizer a chance to pre-process the input
1215
+ input = this.tokenize();
1216
+ if (input != undefined && input != null) {
1217
+ search.val(input);
1218
+ }
1219
+
1220
+ this.resultsPage = 1;
1221
+ opts.query({
1222
+ term: search.val(),
1223
+ page: this.resultsPage,
1224
+ context: null,
1225
+ matcher: opts.matcher,
1226
+ callback: this.bind(function (data) {
1227
+ var def; // default choice
1228
+
1229
+ // ignore a response if the select2 has been closed before it was received
1230
+ if (!this.opened()) return;
1231
+
1232
+ // save context, if any
1233
+ this.context = (data.context===undefined) ? null : data.context;
1234
+
1235
+ // create a default choice and prepend it to the list
1236
+ if (this.opts.createSearchChoice && search.val() !== "") {
1237
+ def = this.opts.createSearchChoice.call(null, search.val(), data.results);
1238
+ if (def !== undefined && def !== null && self.id(def) !== undefined && self.id(def) !== null) {
1239
+ if ($(data.results).filter(
1240
+ function () {
1241
+ return equal(self.id(this), self.id(def));
1242
+ }).length === 0) {
1243
+ data.results.unshift(def);
1244
+ }
1245
+ }
1246
+ }
1247
+
1248
+ if (data.results.length === 0 && checkFormatter(opts.formatNoMatches, "formatNoMatches")) {
1249
+ render("<li class='select2-no-results'>" + opts.formatNoMatches(search.val()) + "</li>");
1250
+ return;
1251
+ }
1252
+
1253
+ results.empty();
1254
+ self.opts.populateResults.call(this, results, data.results, {term: search.val(), page: this.resultsPage, context:null});
1255
+
1256
+ if (data.more === true && checkFormatter(opts.formatLoadMore, "formatLoadMore")) {
1257
+ results.append("<li class='select2-more-results'>" + self.opts.escapeMarkup(opts.formatLoadMore(this.resultsPage)) + "</li>");
1258
+ window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
1259
+ }
1260
+
1261
+ this.postprocessResults(data, initial);
1262
+
1263
+ postRender();
1264
+ })});
1265
+ },
1266
+
1267
+ // abstract
1268
+ cancel: function () {
1269
+ this.close();
1270
+ },
1271
+
1272
+ // abstract
1273
+ blur: function () {
1274
+ this.close();
1275
+ this.container.removeClass("select2-container-active");
1276
+ this.dropdown.removeClass("select2-drop-active");
1277
+ // synonymous to .is(':focus'), which is available in jquery >= 1.6
1278
+ if (this.search[0] === document.activeElement) { this.search.blur(); }
1279
+ this.clearSearch();
1280
+ this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
1281
+ },
1282
+
1283
+ // abstract
1284
+ focusSearch: function () {
1285
+ // need to do it here as well as in timeout so it works in IE
1286
+ this.search.show();
1287
+ this.search.focus();
1288
+
1289
+ /* we do this in a timeout so that current event processing can complete before this code is executed.
1290
+ this makes sure the search field is focussed even if the current event would blur it */
1291
+ window.setTimeout(this.bind(function () {
1292
+ // reset the value so IE places the cursor at the end of the input box
1293
+ this.search.show();
1294
+ this.search.focus();
1295
+ this.search.val(this.search.val());
1296
+ }), 10);
1297
+ },
1298
+
1299
+ // abstract
1300
+ selectHighlighted: function () {
1301
+ var index=this.highlight(),
1302
+ highlighted=this.results.find(".select2-highlighted").not(".select2-disabled"),
1303
+ data = highlighted.closest('.select2-result-selectable').data("select2-data");
1304
+ if (data) {
1305
+ highlighted.addClass("select2-disabled");
1306
+ this.highlight(index);
1307
+ this.onSelect(data);
1308
+ }
1309
+ },
1310
+
1311
+ // abstract
1312
+ getPlaceholder: function () {
1313
+ return this.opts.element.attr("placeholder") ||
1314
+ this.opts.element.attr("data-placeholder") || // jquery 1.4 compat
1315
+ this.opts.element.data("placeholder") ||
1316
+ this.opts.placeholder;
1317
+ },
1318
+
1319
+ /**
1320
+ * Get the desired width for the container element. This is
1321
+ * derived first from option `width` passed to select2, then
1322
+ * the inline 'style' on the original element, and finally
1323
+ * falls back to the jQuery calculated element width.
1324
+ */
1325
+ // abstract
1326
+ initContainerWidth: function () {
1327
+ function resolveContainerWidth() {
1328
+ var style, attrs, matches, i, l;
1329
+
1330
+ if (this.opts.width === "off") {
1331
+ return null;
1332
+ } else if (this.opts.width === "element"){
1333
+ return this.opts.element.outerWidth() === 0 ? 'auto' : this.opts.element.outerWidth() + 'px';
1334
+ } else if (this.opts.width === "copy" || this.opts.width === "resolve") {
1335
+ // check if there is inline style on the element that contains width
1336
+ style = this.opts.element.attr('style');
1337
+ if (style !== undefined) {
1338
+ attrs = style.split(';');
1339
+ for (i = 0, l = attrs.length; i < l; i = i + 1) {
1340
+ matches = attrs[i].replace(/\s/g, '')
1341
+ .match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/);
1342
+ if (matches !== null && matches.length >= 1)
1343
+ return matches[1];
1344
+ }
1345
+ }
1346
+
1347
+ if (this.opts.width === "resolve") {
1348
+ // next check if css('width') can resolve a width that is percent based, this is sometimes possible
1349
+ // when attached to input type=hidden or elements hidden via css
1350
+ style = this.opts.element.css('width');
1351
+ if (style.indexOf("%") > 0) return style;
1352
+
1353
+ // finally, fallback on the calculated width of the element
1354
+ return (this.opts.element.outerWidth() === 0 ? 'auto' : this.opts.element.outerWidth() + 'px');
1355
+ }
1356
+
1357
+ return null;
1358
+ } else if ($.isFunction(this.opts.width)) {
1359
+ return this.opts.width();
1360
+ } else {
1361
+ return this.opts.width;
1362
+ }
1363
+ };
1364
+
1365
+ var width = resolveContainerWidth.call(this);
1366
+ if (width !== null) {
1367
+ this.container.attr("style", "width: "+width);
1368
+ }
1369
+ }
1370
+ });
1371
+
1372
+ SingleSelect2 = clazz(AbstractSelect2, {
1373
+
1374
+ // single
1375
+
1376
+ createContainer: function () {
1377
+ var container = $("<div></div>", {
1378
+ "class": "select2-container"
1379
+ }).html([
1380
+ " <a href='#' onclick='return false;' class='select2-choice'>",
1381
+ " <span></span><abbr class='select2-search-choice-close' style='display:none;'></abbr>",
1382
+ " <div><b></b></div>" ,
1383
+ "</a>",
1384
+ " <div class='select2-drop select2-offscreen'>" ,
1385
+ " <div class='select2-search'>" ,
1386
+ " <input type='text' autocomplete='off' class='select2-input'/>" ,
1387
+ " </div>" ,
1388
+ " <ul class='select2-results'>" ,
1389
+ " </ul>" ,
1390
+ "</div>"].join(""));
1391
+ return container;
1392
+ },
1393
+
1394
+ // single
1395
+ opening: function () {
1396
+ this.search.show();
1397
+ this.parent.opening.apply(this, arguments);
1398
+ this.dropdown.removeClass("select2-offscreen");
1399
+ },
1400
+
1401
+ // single
1402
+ close: function () {
1403
+ if (!this.opened()) return;
1404
+ this.parent.close.apply(this, arguments);
1405
+ this.dropdown.removeAttr("style").addClass("select2-offscreen").insertAfter(this.selection).show();
1406
+ },
1407
+
1408
+ // single
1409
+ focus: function () {
1410
+ this.close();
1411
+ this.selection.focus();
1412
+ },
1413
+
1414
+ // single
1415
+ isFocused: function () {
1416
+ return this.selection[0] === document.activeElement;
1417
+ },
1418
+
1419
+ // single
1420
+ cancel: function () {
1421
+ this.parent.cancel.apply(this, arguments);
1422
+ this.selection.focus();
1423
+ },
1424
+
1425
+ // single
1426
+ initContainer: function () {
1427
+
1428
+ var selection,
1429
+ container = this.container,
1430
+ dropdown = this.dropdown,
1431
+ clickingInside = false;
1432
+
1433
+ this.selection = selection = container.find(".select2-choice");
1434
+
1435
+ this.search.bind("keydown", this.bind(function (e) {
1436
+ if (!this.enabled) return;
1437
+
1438
+ if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
1439
+ // prevent the page from scrolling
1440
+ killEvent(e);
1441
+ return;
1442
+ }
1443
+
1444
+ if (this.opened()) {
1445
+ switch (e.which) {
1446
+ case KEY.UP:
1447
+ case KEY.DOWN:
1448
+ this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
1449
+ killEvent(e);
1450
+ return;
1451
+ case KEY.TAB:
1452
+ case KEY.ENTER:
1453
+ this.selectHighlighted();
1454
+ killEvent(e);
1455
+ return;
1456
+ case KEY.ESC:
1457
+ this.cancel(e);
1458
+ killEvent(e);
1459
+ return;
1460
+ }
1461
+ } else {
1462
+
1463
+ if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) {
1464
+ return;
1465
+ }
1466
+
1467
+ if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {
1468
+ return;
1469
+ }
1470
+
1471
+ this.open();
1472
+
1473
+ if (e.which === KEY.ENTER) {
1474
+ // do not propagate the event otherwise we open, and propagate enter which closes
1475
+ return;
1476
+ }
1477
+ }
1478
+ }));
1479
+
1480
+ this.search.bind("focus", this.bind(function() {
1481
+ this.selection.attr("tabIndex", "-1");
1482
+ }));
1483
+ this.search.bind("blur", this.bind(function() {
1484
+ if (!this.opened()) this.container.removeClass("select2-container-active");
1485
+ window.setTimeout(this.bind(function() { this.selection.attr("tabIndex", this.opts.element.attr("tabIndex")); }), 10);
1486
+ }));
1487
+
1488
+ selection.bind("mousedown", this.bind(function (e) {
1489
+ clickingInside = true;
1490
+
1491
+ if (this.opened()) {
1492
+ this.close();
1493
+ this.selection.focus();
1494
+ } else if (this.enabled) {
1495
+ this.open();
1496
+ }
1497
+
1498
+ clickingInside = false;
1499
+ }));
1500
+
1501
+ dropdown.bind("mousedown", this.bind(function() { this.search.focus(); }));
1502
+
1503
+ selection.bind("focus", this.bind(function() {
1504
+ this.container.addClass("select2-container-active");
1505
+ // hide the search so the tab key does not focus on it
1506
+ this.search.attr("tabIndex", "-1");
1507
+ }));
1508
+
1509
+ selection.bind("blur", this.bind(function() {
1510
+ if (!this.opened()) {
1511
+ this.container.removeClass("select2-container-active");
1512
+ }
1513
+ window.setTimeout(this.bind(function() { this.search.attr("tabIndex", this.opts.element.attr("tabIndex")); }), 10);
1514
+ }));
1515
+
1516
+ selection.bind("keydown", this.bind(function(e) {
1517
+ if (!this.enabled) return;
1518
+
1519
+ if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
1520
+ // prevent the page from scrolling
1521
+ killEvent(e);
1522
+ return;
1523
+ }
1524
+
1525
+ if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e)
1526
+ || e.which === KEY.ESC) {
1527
+ return;
1528
+ }
1529
+
1530
+ if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {
1531
+ return;
1532
+ }
1533
+
1534
+ if (e.which == KEY.DELETE) {
1535
+ if (this.opts.allowClear) {
1536
+ this.clear();
1537
+ }
1538
+ return;
1539
+ }
1540
+
1541
+ this.open();
1542
+
1543
+ if (e.which === KEY.ENTER) {
1544
+ // do not propagate the event otherwise we open, and propagate enter which closes
1545
+ killEvent(e);
1546
+ return;
1547
+ }
1548
+
1549
+ // do not set the search input value for non-alpha-numeric keys
1550
+ // otherwise pressing down results in a '(' being set in the search field
1551
+ if (e.which < 48 ) { // '0' == 48
1552
+ killEvent(e);
1553
+ return;
1554
+ }
1555
+
1556
+ var keyWritten = String.fromCharCode(e.which).toLowerCase();
1557
+
1558
+ if (e.shiftKey) {
1559
+ keyWritten = keyWritten.toUpperCase();
1560
+ }
1561
+
1562
+ // focus the field before calling val so the cursor ends up after the value instead of before
1563
+ this.search.focus();
1564
+ this.search.val(keyWritten);
1565
+
1566
+ // prevent event propagation so it doesnt replay on the now focussed search field and result in double key entry
1567
+ killEvent(e);
1568
+ }));
1569
+
1570
+ selection.delegate("abbr", "mousedown", this.bind(function (e) {
1571
+ if (!this.enabled) return;
1572
+ this.clear();
1573
+ killEvent(e);
1574
+ this.close();
1575
+ this.triggerChange();
1576
+ this.selection.focus();
1577
+ }));
1578
+
1579
+ this.setPlaceholder();
1580
+
1581
+ this.search.bind("focus", this.bind(function() {
1582
+ this.container.addClass("select2-container-active");
1583
+ }));
1584
+ },
1585
+
1586
+ // single
1587
+ clear: function() {
1588
+ this.opts.element.val("");
1589
+ this.selection.find("span").empty();
1590
+ this.selection.removeData("select2-data");
1591
+ this.setPlaceholder();
1592
+ },
1593
+
1594
+ /**
1595
+ * Sets selection based on source element's value
1596
+ */
1597
+ // single
1598
+ initSelection: function () {
1599
+ var selected;
1600
+ if (this.opts.element.val() === "") {
1601
+ this.close();
1602
+ this.setPlaceholder();
1603
+ } else {
1604
+ var self = this;
1605
+ this.opts.initSelection.call(null, this.opts.element, function(selected){
1606
+ if (selected !== undefined && selected !== null) {
1607
+ self.updateSelection(selected);
1608
+ self.close();
1609
+ self.setPlaceholder();
1610
+ }
1611
+ });
1612
+ }
1613
+ },
1614
+
1615
+ // single
1616
+ prepareOpts: function () {
1617
+ var opts = this.parent.prepareOpts.apply(this, arguments);
1618
+
1619
+ if (opts.element.get(0).tagName.toLowerCase() === "select") {
1620
+ // install the selection initializer
1621
+ opts.initSelection = function (element, callback) {
1622
+ var selected = element.find(":selected");
1623
+ // a single select box always has a value, no need to null check 'selected'
1624
+ if ($.isFunction(callback))
1625
+ callback({id: selected.attr("value"), text: selected.text()});
1626
+ };
1627
+ }
1628
+
1629
+ return opts;
1630
+ },
1631
+
1632
+ // single
1633
+ setPlaceholder: function () {
1634
+ var placeholder = this.getPlaceholder();
1635
+
1636
+ if (this.opts.element.val() === "" && placeholder !== undefined) {
1637
+
1638
+ // check for a first blank option if attached to a select
1639
+ if (this.select && this.select.find("option:first").text() !== "") return;
1640
+
1641
+ this.selection.find("span").html(this.opts.escapeMarkup(placeholder));
1642
+
1643
+ this.selection.addClass("select2-default");
1644
+
1645
+ this.selection.find("abbr").hide();
1646
+ }
1647
+ },
1648
+
1649
+ // single
1650
+ postprocessResults: function (data, initial) {
1651
+ var selected = 0, self = this, showSearchInput = true;
1652
+
1653
+ // find the selected element in the result list
1654
+
1655
+ this.results.find(".select2-result-selectable").each2(function (i, elm) {
1656
+ if (equal(self.id(elm.data("select2-data")), self.opts.element.val())) {
1657
+ selected = i;
1658
+ return false;
1659
+ }
1660
+ });
1661
+
1662
+ // and highlight it
1663
+
1664
+ this.highlight(selected);
1665
+
1666
+ // hide the search box if this is the first we got the results and there are a few of them
1667
+
1668
+ if (initial === true) {
1669
+ showSearchInput = this.showSearchInput = countResults(data.results) >= this.opts.minimumResultsForSearch;
1670
+ this.dropdown.find(".select2-search")[showSearchInput ? "removeClass" : "addClass"]("select2-search-hidden");
1671
+
1672
+ //add "select2-with-searchbox" to the container if search box is shown
1673
+ $(this.dropdown, this.container)[showSearchInput ? "addClass" : "removeClass"]("select2-with-searchbox");
1674
+ }
1675
+
1676
+ },
1677
+
1678
+ // single
1679
+ onSelect: function (data) {
1680
+ var old = this.opts.element.val();
1681
+
1682
+ this.opts.element.val(this.id(data));
1683
+ this.updateSelection(data);
1684
+ this.close();
1685
+ this.selection.focus();
1686
+
1687
+ if (!equal(old, this.id(data))) { this.triggerChange(); }
1688
+ },
1689
+
1690
+ // single
1691
+ updateSelection: function (data) {
1692
+
1693
+ var container=this.selection.find("span"), formatted;
1694
+
1695
+ this.selection.data("select2-data", data);
1696
+
1697
+ container.empty();
1698
+ formatted=this.opts.formatSelection(data, container);
1699
+ if (formatted !== undefined) {
1700
+ container.append(this.opts.escapeMarkup(formatted));
1701
+ }
1702
+
1703
+ this.selection.removeClass("select2-default");
1704
+
1705
+ if (this.opts.allowClear && this.getPlaceholder() !== undefined) {
1706
+ this.selection.find("abbr").show();
1707
+ }
1708
+ },
1709
+
1710
+ // single
1711
+ val: function () {
1712
+ var val, data = null, self = this;
1713
+
1714
+ if (arguments.length === 0) {
1715
+ return this.opts.element.val();
1716
+ }
1717
+
1718
+ val = arguments[0];
1719
+
1720
+ if (this.select) {
1721
+ this.select
1722
+ .val(val)
1723
+ .find(":selected").each2(function (i, elm) {
1724
+ data = {id: elm.attr("value"), text: elm.text()};
1725
+ return false;
1726
+ });
1727
+ this.updateSelection(data);
1728
+ this.setPlaceholder();
1729
+ } else {
1730
+ if (this.opts.initSelection === undefined) {
1731
+ throw new Error("cannot call val() if initSelection() is not defined");
1732
+ }
1733
+ // val is an id. !val is true for [undefined,null,'']
1734
+ if (!val) {
1735
+ this.clear();
1736
+ return;
1737
+ }
1738
+ this.opts.element.val(val);
1739
+ this.opts.initSelection(this.opts.element, function(data){
1740
+ self.opts.element.val(!data ? "" : self.id(data));
1741
+ self.updateSelection(data);
1742
+ self.setPlaceholder();
1743
+ });
1744
+ }
1745
+ },
1746
+
1747
+ // single
1748
+ clearSearch: function () {
1749
+ this.search.val("");
1750
+ },
1751
+
1752
+ // single
1753
+ data: function(value) {
1754
+ var data;
1755
+
1756
+ if (arguments.length === 0) {
1757
+ data = this.selection.data("select2-data");
1758
+ if (data == undefined) data = null;
1759
+ return data;
1760
+ } else {
1761
+ if (!value || value === "") {
1762
+ this.clear();
1763
+ } else {
1764
+ this.opts.element.val(!value ? "" : this.id(value));
1765
+ this.updateSelection(value);
1766
+ }
1767
+ }
1768
+ }
1769
+ });
1770
+
1771
+ MultiSelect2 = clazz(AbstractSelect2, {
1772
+
1773
+ // multi
1774
+ createContainer: function () {
1775
+ var container = $("<div></div>", {
1776
+ "class": "select2-container select2-container-multi"
1777
+ }).html([
1778
+ " <ul class='select2-choices'>",
1779
+ //"<li class='select2-search-choice'><span>California</span><a href="javascript:void(0)" class="select2-search-choice-close"></a></li>" ,
1780
+ " <li class='select2-search-field'>" ,
1781
+ " <input type='text' autocomplete='off' class='select2-input'>" ,
1782
+ " </li>" ,
1783
+ "</ul>" ,
1784
+ "<div class='select2-drop select2-drop-multi' style='display:none;'>" ,
1785
+ " <ul class='select2-results'>" ,
1786
+ " </ul>" ,
1787
+ "</div>"].join(""));
1788
+ return container;
1789
+ },
1790
+
1791
+ // multi
1792
+ prepareOpts: function () {
1793
+ var opts = this.parent.prepareOpts.apply(this, arguments);
1794
+
1795
+ // TODO validate placeholder is a string if specified
1796
+
1797
+ if (opts.element.get(0).tagName.toLowerCase() === "select") {
1798
+ // install sthe selection initializer
1799
+ opts.initSelection = function (element,callback) {
1800
+
1801
+ var data = [];
1802
+ element.find(":selected").each2(function (i, elm) {
1803
+ data.push({id: elm.attr("value"), text: elm.text()});
1804
+ });
1805
+
1806
+ if ($.isFunction(callback))
1807
+ callback(data);
1808
+ };
1809
+ }
1810
+
1811
+ return opts;
1812
+ },
1813
+
1814
+ // multi
1815
+ initContainer: function () {
1816
+
1817
+ var selector = ".select2-choices", selection;
1818
+
1819
+ this.searchContainer = this.container.find(".select2-search-field");
1820
+ this.selection = selection = this.container.find(selector);
1821
+
1822
+ this.search.bind("keydown", this.bind(function (e) {
1823
+ if (!this.enabled) return;
1824
+
1825
+ if (e.which === KEY.BACKSPACE && this.search.val() === "") {
1826
+ this.close();
1827
+
1828
+ var choices,
1829
+ selected = selection.find(".select2-search-choice-focus");
1830
+ if (selected.length > 0) {
1831
+ this.unselect(selected.first());
1832
+ this.search.width(10);
1833
+ killEvent(e);
1834
+ return;
1835
+ }
1836
+
1837
+ choices = selection.find(".select2-search-choice");
1838
+ if (choices.length > 0) {
1839
+ choices.last().addClass("select2-search-choice-focus");
1840
+ }
1841
+ } else {
1842
+ selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
1843
+ }
1844
+
1845
+ if (this.opened()) {
1846
+ switch (e.which) {
1847
+ case KEY.UP:
1848
+ case KEY.DOWN:
1849
+ this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
1850
+ killEvent(e);
1851
+ return;
1852
+ case KEY.ENTER:
1853
+ case KEY.TAB:
1854
+ this.selectHighlighted();
1855
+ killEvent(e);
1856
+ return;
1857
+ case KEY.ESC:
1858
+ this.cancel(e);
1859
+ killEvent(e);
1860
+ return;
1861
+ }
1862
+ }
1863
+
1864
+ if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e)
1865
+ || e.which === KEY.BACKSPACE || e.which === KEY.ESC) {
1866
+ return;
1867
+ }
1868
+
1869
+ if (this.opts.openOnEnter === false && e.which === KEY.ENTER) {
1870
+ return;
1871
+ }
1872
+
1873
+ this.open();
1874
+
1875
+ if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) {
1876
+ // prevent the page from scrolling
1877
+ killEvent(e);
1878
+ }
1879
+ }));
1880
+
1881
+ this.search.bind("keyup", this.bind(this.resizeSearch));
1882
+
1883
+ this.search.bind("blur", this.bind(function(e) {
1884
+ this.container.removeClass("select2-container-active");
1885
+ this.search.removeClass("select2-focused");
1886
+ this.clearSearch();
1887
+ e.stopImmediatePropagation();
1888
+ }));
1889
+
1890
+ this.container.delegate(selector, "mousedown", this.bind(function (e) {
1891
+ if (!this.enabled) return;
1892
+ if ($(e.target).closest(".select2-search-choice").length > 0) {
1893
+ // clicked inside a select2 search choice, do not open
1894
+ return;
1895
+ }
1896
+ this.clearPlaceholder();
1897
+ this.open();
1898
+ this.focusSearch();
1899
+ e.preventDefault();
1900
+ }));
1901
+
1902
+ this.container.delegate(selector, "focus", this.bind(function () {
1903
+ if (!this.enabled) return;
1904
+ this.container.addClass("select2-container-active");
1905
+ this.dropdown.addClass("select2-drop-active");
1906
+ this.clearPlaceholder();
1907
+ }));
1908
+
1909
+ // set the placeholder if necessary
1910
+ this.clearSearch();
1911
+ },
1912
+
1913
+ // multi
1914
+ enable: function() {
1915
+ if (this.enabled) return;
1916
+
1917
+ this.parent.enable.apply(this, arguments);
1918
+
1919
+ this.search.removeAttr("disabled");
1920
+ },
1921
+
1922
+ // multi
1923
+ disable: function() {
1924
+ if (!this.enabled) return;
1925
+
1926
+ this.parent.disable.apply(this, arguments);
1927
+
1928
+ this.search.attr("disabled", true);
1929
+ },
1930
+
1931
+ // multi
1932
+ initSelection: function () {
1933
+ var data;
1934
+ if (this.opts.element.val() === "") {
1935
+ this.updateSelection([]);
1936
+ this.close();
1937
+ // set the placeholder if necessary
1938
+ this.clearSearch();
1939
+ }
1940
+ if (this.select || this.opts.element.val() !== "") {
1941
+ var self = this;
1942
+ this.opts.initSelection.call(null, this.opts.element, function(data){
1943
+ if (data !== undefined && data !== null) {
1944
+ self.updateSelection(data);
1945
+ self.close();
1946
+ // set the placeholder if necessary
1947
+ self.clearSearch();
1948
+ }
1949
+ });
1950
+ }
1951
+ },
1952
+
1953
+ // multi
1954
+ clearSearch: function () {
1955
+ var placeholder = this.getPlaceholder();
1956
+
1957
+ if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass("select2-focused") === false) {
1958
+ this.search.val(placeholder).addClass("select2-default");
1959
+ // stretch the search box to full width of the container so as much of the placeholder is visible as possible
1960
+ this.resizeSearch();
1961
+ } else {
1962
+ // we set this to " " instead of "" and later clear it on focus() because there is a firefox bug
1963
+ // that does not properly render the caret when the field starts out blank
1964
+ this.search.val(" ").width(10);
1965
+ }
1966
+ },
1967
+
1968
+ // multi
1969
+ clearPlaceholder: function () {
1970
+ if (this.search.hasClass("select2-default")) {
1971
+ this.search.val("").removeClass("select2-default");
1972
+ } else {
1973
+ // work around for the space character we set to avoid firefox caret bug
1974
+ if (this.search.val() === " ") this.search.val("");
1975
+ }
1976
+ },
1977
+
1978
+ // multi
1979
+ opening: function () {
1980
+ this.parent.opening.apply(this, arguments);
1981
+
1982
+ this.clearPlaceholder();
1983
+ this.resizeSearch();
1984
+ this.focusSearch();
1985
+ },
1986
+
1987
+ // multi
1988
+ close: function () {
1989
+ if (!this.opened()) return;
1990
+ this.parent.close.apply(this, arguments);
1991
+ },
1992
+
1993
+ // multi
1994
+ focus: function () {
1995
+ this.close();
1996
+ this.search.focus();
1997
+ },
1998
+
1999
+ // multi
2000
+ isFocused: function () {
2001
+ return this.search.hasClass("select2-focused");
2002
+ },
2003
+
2004
+ // multi
2005
+ updateSelection: function (data) {
2006
+ var ids = [], filtered = [], self = this;
2007
+
2008
+ // filter out duplicates
2009
+ $(data).each(function () {
2010
+ if (indexOf(self.id(this), ids) < 0) {
2011
+ ids.push(self.id(this));
2012
+ filtered.push(this);
2013
+ }
2014
+ });
2015
+ data = filtered;
2016
+
2017
+ this.selection.find(".select2-search-choice").remove();
2018
+ $(data).each(function () {
2019
+ self.addSelectedChoice(this);
2020
+ });
2021
+ self.postprocessResults();
2022
+ },
2023
+
2024
+ tokenize: function() {
2025
+ var input = this.search.val();
2026
+ input = this.opts.tokenizer(input, this.data(), this.bind(this.onSelect), this.opts);
2027
+ if (input != null && input != undefined) {
2028
+ this.search.val(input);
2029
+ if (input.length > 0) {
2030
+ this.open();
2031
+ }
2032
+ }
2033
+
2034
+ },
2035
+
2036
+ // multi
2037
+ onSelect: function (data) {
2038
+ this.addSelectedChoice(data);
2039
+ if (this.select) { this.postprocessResults(); }
2040
+
2041
+ if (this.opts.closeOnSelect) {
2042
+ this.close();
2043
+ this.search.width(10);
2044
+ } else {
2045
+ if (this.countSelectableResults()>0) {
2046
+ this.search.width(10);
2047
+ this.resizeSearch();
2048
+ this.positionDropdown();
2049
+ } else {
2050
+ // if nothing left to select close
2051
+ this.close();
2052
+ }
2053
+ }
2054
+
2055
+ // since its not possible to select an element that has already been
2056
+ // added we do not need to check if this is a new element before firing change
2057
+ this.triggerChange({ added: data });
2058
+
2059
+ this.focusSearch();
2060
+ },
2061
+
2062
+ // multi
2063
+ cancel: function () {
2064
+ this.close();
2065
+ this.focusSearch();
2066
+ },
2067
+
2068
+ // multi
2069
+ addSelectedChoice: function (data) {
2070
+ var choice=$(
2071
+ "<li class='select2-search-choice'>" +
2072
+ " <div></div>" +
2073
+ " <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a>" +
2074
+ "</li>"),
2075
+ id = this.id(data),
2076
+ val = this.getVal(),
2077
+ formatted;
2078
+
2079
+ formatted=this.opts.formatSelection(data, choice);
2080
+ choice.find("div").replaceWith("<div>"+this.opts.escapeMarkup(formatted)+"</div>");
2081
+ choice.find(".select2-search-choice-close")
2082
+ .bind("mousedown", killEvent)
2083
+ .bind("click dblclick", this.bind(function (e) {
2084
+ if (!this.enabled) return;
2085
+
2086
+ $(e.target).closest(".select2-search-choice").fadeOut('fast', this.bind(function(){
2087
+ this.unselect($(e.target));
2088
+ this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");
2089
+ this.close();
2090
+ this.focusSearch();
2091
+ })).dequeue();
2092
+ killEvent(e);
2093
+ })).bind("focus", this.bind(function () {
2094
+ if (!this.enabled) return;
2095
+ this.container.addClass("select2-container-active");
2096
+ this.dropdown.addClass("select2-drop-active");
2097
+ }));
2098
+
2099
+ choice.data("select2-data", data);
2100
+ choice.insertBefore(this.searchContainer);
2101
+
2102
+ val.push(id);
2103
+ this.setVal(val);
2104
+ },
2105
+
2106
+ // multi
2107
+ unselect: function (selected) {
2108
+ var val = this.getVal(),
2109
+ data,
2110
+ index;
2111
+
2112
+ selected = selected.closest(".select2-search-choice");
2113
+
2114
+ if (selected.length === 0) {
2115
+ throw "Invalid argument: " + selected + ". Must be .select2-search-choice";
2116
+ }
2117
+
2118
+ data = selected.data("select2-data");
2119
+
2120
+ index = indexOf(this.id(data), val);
2121
+
2122
+ if (index >= 0) {
2123
+ val.splice(index, 1);
2124
+ this.setVal(val);
2125
+ if (this.select) this.postprocessResults();
2126
+ }
2127
+ selected.remove();
2128
+ this.triggerChange({ removed: data });
2129
+ },
2130
+
2131
+ // multi
2132
+ postprocessResults: function () {
2133
+ var val = this.getVal(),
2134
+ choices = this.results.find(".select2-result-selectable"),
2135
+ compound = this.results.find(".select2-result-with-children"),
2136
+ self = this;
2137
+
2138
+ choices.each2(function (i, choice) {
2139
+ var id = self.id(choice.data("select2-data"));
2140
+ if (indexOf(id, val) >= 0) {
2141
+ choice.addClass("select2-disabled").removeClass("select2-result-selectable");
2142
+ } else {
2143
+ choice.removeClass("select2-disabled").addClass("select2-result-selectable");
2144
+ }
2145
+ });
2146
+
2147
+ compound.each2(function(i, e) {
2148
+ if (e.find(".select2-result-selectable").length==0) {
2149
+ e.addClass("select2-disabled");
2150
+ } else {
2151
+ e.removeClass("select2-disabled");
2152
+ }
2153
+ });
2154
+
2155
+ choices.each2(function (i, choice) {
2156
+ if (!choice.hasClass("select2-disabled") && choice.hasClass("select2-result-selectable")) {
2157
+ self.highlight(0);
2158
+ return false;
2159
+ }
2160
+ });
2161
+
2162
+ },
2163
+
2164
+ // multi
2165
+ resizeSearch: function () {
2166
+
2167
+ var minimumWidth, left, maxWidth, containerLeft, searchWidth,
2168
+ sideBorderPadding = getSideBorderPadding(this.search);
2169
+
2170
+ minimumWidth = measureTextWidth(this.search) + 10;
2171
+
2172
+ left = this.search.offset().left;
2173
+
2174
+ maxWidth = this.selection.width();
2175
+ containerLeft = this.selection.offset().left;
2176
+
2177
+ searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding;
2178
+ if (searchWidth < minimumWidth) {
2179
+ searchWidth = maxWidth - sideBorderPadding;
2180
+ }
2181
+
2182
+ if (searchWidth < 40) {
2183
+ searchWidth = maxWidth - sideBorderPadding;
2184
+ }
2185
+ this.search.width(searchWidth);
2186
+ },
2187
+
2188
+ // multi
2189
+ getVal: function () {
2190
+ var val;
2191
+ if (this.select) {
2192
+ val = this.select.val();
2193
+ return val === null ? [] : val;
2194
+ } else {
2195
+ val = this.opts.element.val();
2196
+ return splitVal(val, this.opts.separator);
2197
+ }
2198
+ },
2199
+
2200
+ // multi
2201
+ setVal: function (val) {
2202
+ var unique;
2203
+ if (this.select) {
2204
+ this.select.val(val);
2205
+ } else {
2206
+ unique = [];
2207
+ // filter out duplicates
2208
+ $(val).each(function () {
2209
+ if (indexOf(this, unique) < 0) unique.push(this);
2210
+ });
2211
+ this.opts.element.val(unique.length === 0 ? "" : unique.join(this.opts.separator));
2212
+ }
2213
+ },
2214
+
2215
+ // multi
2216
+ val: function () {
2217
+ var val, data = [], self=this;
2218
+
2219
+ if (arguments.length === 0) {
2220
+ return this.getVal();
2221
+ }
2222
+
2223
+ val = arguments[0];
2224
+
2225
+ if (!val) {
2226
+ this.opts.element.val("");
2227
+ this.updateSelection([]);
2228
+ this.clearSearch();
2229
+ return;
2230
+ }
2231
+
2232
+ // val is a list of ids
2233
+ this.setVal(val);
2234
+
2235
+ if (this.select) {
2236
+ this.select.find(":selected").each(function () {
2237
+ data.push({id: $(this).attr("value"), text: $(this).text()});
2238
+ });
2239
+ this.updateSelection(data);
2240
+ } else {
2241
+ if (this.opts.initSelection === undefined) {
2242
+ throw new Error("val() cannot be called if initSelection() is not defined")
2243
+ }
2244
+
2245
+ this.opts.initSelection(this.opts.element, function(data){
2246
+ var ids=$(data).map(self.id);
2247
+ self.setVal(ids);
2248
+ self.updateSelection(data);
2249
+ self.clearSearch();
2250
+ });
2251
+ }
2252
+ this.clearSearch();
2253
+ },
2254
+
2255
+ // multi
2256
+ onSortStart: function() {
2257
+ if (this.select) {
2258
+ throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");
2259
+ }
2260
+
2261
+ // collapse search field into 0 width so its container can be collapsed as well
2262
+ this.search.width(0);
2263
+ // hide the container
2264
+ this.searchContainer.hide();
2265
+ },
2266
+
2267
+ // multi
2268
+ onSortEnd:function() {
2269
+
2270
+ var val=[], self=this;
2271
+
2272
+ // show search and move it to the end of the list
2273
+ this.searchContainer.show();
2274
+ // make sure the search container is the last item in the list
2275
+ this.searchContainer.appendTo(this.searchContainer.parent());
2276
+ // since we collapsed the width in dragStarted, we resize it here
2277
+ this.resizeSearch();
2278
+
2279
+ // update selection
2280
+
2281
+ this.selection.find(".select2-search-choice").each(function() {
2282
+ val.push(self.opts.id($(this).data("select2-data")));
2283
+ });
2284
+ this.setVal(val);
2285
+ this.triggerChange();
2286
+ },
2287
+
2288
+ // multi
2289
+ data: function(values) {
2290
+ var self=this, ids;
2291
+ if (arguments.length === 0) {
2292
+ return this.selection
2293
+ .find(".select2-search-choice")
2294
+ .map(function() { return $(this).data("select2-data"); })
2295
+ .get();
2296
+ } else {
2297
+ if (!values) { values = []; }
2298
+ ids = $.map(values, function(e) { return self.opts.id(e)});
2299
+ this.setVal(ids);
2300
+ this.updateSelection(values);
2301
+ this.clearSearch();
2302
+ }
2303
+ }
2304
+ });
2305
+
2306
+ $.fn.select2 = function () {
2307
+
2308
+ var args = Array.prototype.slice.call(arguments, 0),
2309
+ opts,
2310
+ select2,
2311
+ value, multiple, allowedMethods = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "onSortStart", "onSortEnd", "enable", "disable", "positionDropdown", "data"];
2312
+
2313
+ this.each(function () {
2314
+ if (args.length === 0 || typeof(args[0]) === "object") {
2315
+ opts = args.length === 0 ? {} : $.extend({}, args[0]);
2316
+ opts.element = $(this);
2317
+
2318
+ if (opts.element.get(0).tagName.toLowerCase() === "select") {
2319
+ multiple = opts.element.attr("multiple");
2320
+ } else {
2321
+ multiple = opts.multiple || false;
2322
+ if ("tags" in opts) {opts.multiple = multiple = true;}
2323
+ }
2324
+
2325
+ select2 = multiple ? new MultiSelect2() : new SingleSelect2();
2326
+ select2.init(opts);
2327
+ } else if (typeof(args[0]) === "string") {
2328
+
2329
+ if (indexOf(args[0], allowedMethods) < 0) {
2330
+ throw "Unknown method: " + args[0];
2331
+ }
2332
+
2333
+ value = undefined;
2334
+ select2 = $(this).data("select2");
2335
+ if (select2 === undefined) return;
2336
+ if (args[0] === "container") {
2337
+ value=select2.container;
2338
+ } else {
2339
+ value = select2[args[0]].apply(select2, args.slice(1));
2340
+ }
2341
+ if (value !== undefined) {return false;}
2342
+ } else {
2343
+ throw "Invalid arguments to select2 plugin: " + args;
2344
+ }
2345
+ });
2346
+ return (value === undefined) ? this : value;
2347
+ };
2348
+
2349
+ // plugin defaults, accessible to users
2350
+ $.fn.select2.defaults = {
2351
+ width: "copy",
2352
+ closeOnSelect: true,
2353
+ openOnEnter: true,
2354
+ containerCss: {},
2355
+ dropdownCss: {},
2356
+ containerCssClass: "",
2357
+ dropdownCssClass: "",
2358
+ formatResult: function(result, container, query) {
2359
+ var markup=[];
2360
+ markMatch(result.text, query.term, markup);
2361
+ return markup.join("");
2362
+ },
2363
+ formatSelection: function (data, container) {
2364
+ return data ? data.text : undefined;
2365
+ },
2366
+ formatResultCssClass: function(data) {return undefined;},
2367
+ formatNoMatches: function () { return "No matches found"; },
2368
+ formatInputTooShort: function (input, min) { return "Please enter " + (min - input.length) + " more characters"; },
2369
+ formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); },
2370
+ formatLoadMore: function (pageNumber) { return "Loading more results..."; },
2371
+ formatSearching: function () { return "Searching..."; },
2372
+ minimumResultsForSearch: 0,
2373
+ minimumInputLength: 0,
2374
+ maximumSelectionSize: 0,
2375
+ id: function (e) { return e.id; },
2376
+ matcher: function(term, text) {
2377
+ return text.toUpperCase().indexOf(term.toUpperCase()) >= 0;
2378
+ },
2379
+ separator: ",",
2380
+ tokenSeparators: [],
2381
+ tokenizer: defaultTokenizer,
2382
+ escapeMarkup: function (markup) {
2383
+ if (markup && typeof(markup) === "string") {
2384
+ return markup.replace(/&/g, "&amp;");
2385
+ }
2386
+ return markup;
2387
+ },
2388
+ blurOnChange: false
2389
+ };
2390
+
2391
+ // exports
2392
+ window.Select2 = {
2393
+ query: {
2394
+ ajax: ajax,
2395
+ local: local,
2396
+ tags: tags
2397
+ }, util: {
2398
+ debounce: debounce,
2399
+ markMatch: markMatch
2400
+ }, "class": {
2401
+ "abstract": AbstractSelect2,
2402
+ "single": SingleSelect2,
2403
+ "multi": MultiSelect2
2404
+ }
2405
+ };
2406
+
2407
+ }(jQuery));
widgets/select2/select2.min.js ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Copyright 2012 Igor Vaynberg
3
+
4
+ Version: 3.2 Timestamp: Mon Sep 10 10:38:04 PDT 2012
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in
7
+ compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software distributed under the License is
12
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and limitations under the License.
14
+ */
15
+ (function(e){"undefined"==typeof e.fn.each2&&e.fn.extend({each2:function(g){for(var i=e([0]),m=-1,s=this.length;++m<s&&(i.context=i[0]=this[m])&&!1!==g.call(i[0],m,i););return this}})})(jQuery);
16
+ (function(e,g){function i(a,b){var c=0,d=b.length,j;if("undefined"===typeof a)return-1;if(a.constructor===String)for(;c<d;c+=1){if(0===a.localeCompare(b[c]))return c}else for(;c<d;c+=1)if(j=b[c],j.constructor===String){if(0===j.localeCompare(a))return c}else if(j===a)return c;return-1}function m(a,b){return a===b?!0:a===g||b===g||null===a||null===b?!1:a.constructor===String?0===a.localeCompare(b):b.constructor===String?0===b.localeCompare(a):!1}function s(a,b){var c,d,j;if(null===a||1>a.length)return[];
17
+ c=a.split(b);d=0;for(j=c.length;d<j;d+=1)c[d]=e.trim(c[d]);return c}function A(a,b,c){var c=c||g,d;return function(){var j=arguments;window.clearTimeout(d);d=window.setTimeout(function(){b.apply(c,j)},a)}}function l(a){a.preventDefault();a.stopPropagation()}function B(a,b,c){var d=a.toUpperCase().indexOf(b.toUpperCase()),b=b.length;0>d?c.push(a):(c.push(a.substring(0,d)),c.push("<span class='select2-match'>"),c.push(a.substring(d,d+b)),c.push("</span>"),c.push(a.substring(d+b,a.length)))}function C(a){var b,
18
+ c=0,d=null,j=a.quietMillis||100;return function(h){window.clearTimeout(b);b=window.setTimeout(function(){var b=c+=1,j=a.data,n=a.transport||e.ajax,f=a.traditional||!1,g=a.type||"GET",j=j.call(this,h.term,h.page,h.context);null!==d&&d.abort();d=n.call(null,{url:a.url,dataType:a.dataType,data:j,type:g,traditional:f,success:function(d){b<c||(d=a.results(d,h.page),h.callback(d))}})},j)}}function D(a){var b=a,c,d=function(a){return""+a.text};e.isArray(b)||(d=b.text,e.isFunction(d)||(c=b.text,d=function(a){return a[c]}),
19
+ b=b.results);return function(a){var c=a.term,f={results:[]},k;if(c==="")a.callback({results:b});else{k=function(b,f){var g,t,b=b[0];if(b.children){g={};for(t in b)b.hasOwnProperty(t)&&(g[t]=b[t]);g.children=[];e(b.children).each2(function(a,b){k(b,g.children)});g.children.length&&f.push(g)}else a.matcher(c,d(b))&&f.push(b)};e(b).each2(function(a,b){k(b,f.results)});a.callback(f)}}}function E(a){return e.isFunction(a)?a:function(b){var c=b.term,d={results:[]};e(a).each(function(){var a=this.text!==
20
+ g,e=a?this.text:this;if(""===c||b.matcher(c,e))d.results.push(a?this:{id:this,text:this})});b.callback(d)}}function u(a){if(e.isFunction(a))return!0;if(!a)return!1;throw Error("formatterName must be a function or a falsy value");}function v(a){return e.isFunction(a)?a():a}function F(a){var b=0;e.each(a,function(a,d){d.children?b+=F(d.children):b++});return b}function H(a,b,c,d){var e=a,h=!1,f,k,n,o;if(!d.createSearchChoice||!d.tokenSeparators||1>d.tokenSeparators.length)return g;for(;;){h=-1;k=0;
21
+ for(n=d.tokenSeparators.length;k<n&&!(o=d.tokenSeparators[k],h=a.indexOf(o),0<=h);k++);if(0>h)break;f=a.substring(0,h);a=a.substring(h+o.length);if(0<f.length&&(f=d.createSearchChoice(f,b),f!==g&&null!==f&&d.id(f)!==g&&null!==d.id(f))){h=!1;k=0;for(n=b.length;k<n;k++)if(m(d.id(f),d.id(b[k]))){h=!0;break}h||c(f)}}if(0!=e.localeCompare(a))return a}function x(a,b){var c=function(){};c.prototype=new a;c.prototype.constructor=c;c.prototype.parent=a.prototype;c.prototype=e.extend(c.prototype,b);return c}
22
+ if(window.Select2===g){var f,w,y,z,G,q;f={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){a=a.which?a.which:a;switch(a){case f.LEFT:case f.RIGHT:case f.UP:case f.DOWN:return!0}return!1},isControl:function(a){switch(a.which){case f.SHIFT:case f.CTRL:case f.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){a=a.which?a.which:a;return 112<=a&&123>=a}};var I=1;G=function(){return I++};
23
+ e(document).delegate("body","mousemove",function(a){e.data(document,"select2-lastpos",{x:a.pageX,y:a.pageY})});e(document).ready(function(){e(document).delegate("body","mousedown touchend",function(a){var b=e(a.target).closest("div.select2-container").get(0),c;b?e(document).find("div.select2-container-active").each(function(){this!==b&&e(this).data("select2").blur()}):(b=e(a.target).closest("div.select2-drop").get(0),e(document).find("div.select2-drop-active").each(function(){this!==b&&e(this).data("select2").blur()}));
24
+ b=e(a.target);c=b.attr("for");"LABEL"===a.target.tagName&&(c&&0<c.length)&&(b=e("#"+c),b=b.data("select2"),b!==g&&(b.focus(),a.preventDefault()))})});w=x(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(a){var b,c;this.opts=a=this.prepareOpts(a);this.id=a.id;a.element.data("select2")!==g&&null!==a.element.data("select2")&&this.destroy();this.enabled=!0;this.container=this.createContainer();this.containerId="s2id_"+(a.element.attr("id")||"autogen"+G());this.containerSelector=
25
+ "#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1");this.container.attr("id",this.containerId);var d=!1,j;this.body=function(){!1===d&&(j=a.element.closest("body"),d=!0);return j};a.element.attr("class")!==g&&this.container.addClass(a.element.attr("class").replace(/validate\[[\S ]+] ?/,""));this.container.css(v(a.containerCss));this.container.addClass(v(a.containerCssClass));this.opts.element.data("select2",this).hide().before(this.container);this.container.data("select2",
26
+ this);this.dropdown=this.container.find(".select2-drop");this.dropdown.addClass(v(a.dropdownCssClass));this.dropdown.data("select2",this);this.results=b=this.container.find(".select2-results");this.search=c=this.container.find("input.select2-input");c.attr("tabIndex",this.opts.element.attr("tabIndex"));this.resultsPage=0;this.context=null;this.initContainer();this.initContainerWidth();this.results.bind("mousemove",function(a){var b=e.data(document,"select2-lastpos");(b===g||b.x!==a.pageX||b.y!==a.pageY)&&
27
+ e(a.target).trigger("mousemove-filtered",a)});this.dropdown.delegate(".select2-results","mousemove-filtered",this.bind(this.highlightUnderEvent));var h=this.results,f=A(80,function(a){h.trigger("scroll-debounced",a)});h.bind("scroll",function(a){0<=i(a.target,h.get())&&f(a)});this.dropdown.delegate(".select2-results","scroll-debounced",this.bind(this.loadMoreIfNeeded));e.fn.mousewheel&&b.mousewheel(function(a,c,d,e){c=b.scrollTop();0<e&&0>=c-e?(b.scrollTop(0),l(a)):0>e&&b.get(0).scrollHeight-b.scrollTop()+
28
+ e<=b.height()&&(b.scrollTop(b.get(0).scrollHeight-b.height()),l(a))});c.bind("keydown",function(){e.data(c,"keyup-change-value")===g&&e.data(c,"keyup-change-value",c.val())});c.bind("keyup",function(){var a=e.data(c,"keyup-change-value");a!==g&&c.val()!==a&&(e.removeData(c,"keyup-change-value"),c.trigger("keyup-change"))});c.bind("keyup-change",this.bind(this.updateResults));c.bind("focus",function(){c.addClass("select2-focused");" "===c.val()&&c.val("")});c.bind("blur",function(){c.removeClass("select2-focused")});
29
+ this.dropdown.delegate(".select2-results","mouseup",this.bind(function(a){0<e(a.target).closest(".select2-result-selectable:not(.select2-disabled)").length?(this.highlightUnderEvent(a),this.selectHighlighted(a)):this.focusSearch();l(a)}));this.dropdown.bind("click mouseup mousedown",function(a){a.stopPropagation()});e.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource());(a.element.is(":disabled")||a.element.is("[readonly='readonly']"))&&this.disable()},destroy:function(){var a=
30
+ this.opts.element.data("select2");a!==g&&(a.container.remove(),a.dropdown.remove(),a.opts.element.removeData("select2").unbind(".select2").show())},prepareOpts:function(a){var b,c,d;b=a.element;"select"===b.get(0).tagName.toLowerCase()&&(this.select=c=a.element);c&&e.each("id multiple ajax query createSearchChoice initSelection data tags".split(" "),function(){if(this in a)throw Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.");});a=e.extend({},{populateResults:function(b,
31
+ c,d){var f,n=this.opts.id,o=this;f=function(b,c,j){var h,l,i,m,r,p,q;h=0;for(l=b.length;h<l;h=h+1){i=b[h];m=n(i)!==g;r=i.children&&i.children.length>0;p=e("<li></li>");p.addClass("select2-results-dept-"+j);p.addClass("select2-result");p.addClass(m?"select2-result-selectable":"select2-result-unselectable");r&&p.addClass("select2-result-with-children");p.addClass(o.opts.formatResultCssClass(i));m=e("<div></div>");m.addClass("select2-result-label");q=a.formatResult(i,m,d);q!==g&&m.html(o.opts.escapeMarkup(q));
32
+ p.append(m);if(r){r=e("<ul></ul>");r.addClass("select2-result-sub");f(i.children,r,j+1);p.append(r)}p.data("select2-data",i);c.append(p)}};f(c,b,0)}},e.fn.select2.defaults,a);"function"!==typeof a.id&&(d=a.id,a.id=function(a){return a[d]});if(c)a.query=this.bind(function(a){var c={results:[],more:false},d=a.term,f,n,o;o=function(b,c){var e;if(b.is("option"))a.matcher(d,b.text(),b)&&c.push({id:b.attr("value"),text:b.text(),element:b.get(),css:b.attr("class")});else if(b.is("optgroup")){e={text:b.attr("label"),
33
+ children:[],element:b.get(),css:b.attr("class")};b.children().each2(function(a,b){o(b,e.children)});e.children.length>0&&c.push(e)}};f=b.children();if(this.getPlaceholder()!==g&&f.length>0){n=f[0];e(n).text()===""&&(f=f.not(n))}f.each2(function(a,b){o(b,c.results)});a.callback(c)}),a.id=function(a){return a.id},a.formatResultCssClass=function(a){return a.css};else if(!("query"in a))if("ajax"in a){if((c=a.element.data("ajax-url"))&&0<c.length)a.ajax.url=c;a.query=C(a.ajax)}else"data"in a?a.query=D(a.data):
34
+ "tags"in a&&(a.query=E(a.tags),a.createSearchChoice=function(a){return{id:a,text:a}},a.initSelection=function(b,c){var d=[];e(s(b.val(),a.separator)).each(function(){var b=this,c=this,j=a.tags;e.isFunction(j)&&(j=j());e(j).each(function(){if(m(this.id,b)){c=this.text;return false}});d.push({id:b,text:c})});c(d)});if("function"!==typeof a.query)throw"query function not defined for Select2 "+a.element.attr("id");return a},monitorSource:function(){this.opts.element.bind("change.select2",this.bind(function(){!0!==
35
+ this.opts.element.data("select2-change-triggered")&&this.initSelection()}))},triggerChange:function(a){a=a||{};a=e.extend({},a,{type:"change",val:this.val()});this.opts.element.data("select2-change-triggered",!0);this.opts.element.trigger(a);this.opts.element.data("select2-change-triggered",!1);this.opts.element.click();this.opts.blurOnChange&&this.opts.element.blur()},enable:function(){this.enabled||(this.enabled=!0,this.container.removeClass("select2-container-disabled"))},disable:function(){this.enabled&&
36
+ (this.close(),this.enabled=!1,this.container.addClass("select2-container-disabled"))},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var a=this.container.offset(),b=this.container.outerHeight(),c=this.container.outerWidth(),d=this.dropdown.outerHeight(),j=e(window).scrollTop()+document.documentElement.clientHeight,b=a.top+b,f=a.left,j=b+d<=j,g=a.top-d>=this.body().scrollTop(),k=this.dropdown.hasClass("select2-drop-above"),n;"static"!==this.body().css("position")&&
37
+ (n=this.body().offset(),b-=n.top,f-=n.left);k?(k=!0,!g&&j&&(k=!1)):(k=!1,!j&&g&&(k=!0));k?(b=a.top-d,this.container.addClass("select2-drop-above"),this.dropdown.addClass("select2-drop-above")):(this.container.removeClass("select2-drop-above"),this.dropdown.removeClass("select2-drop-above"));a=e.extend({top:b,left:f,width:c},v(this.opts.dropdownCss));this.dropdown.css(a)},shouldOpen:function(){var a;if(this.opened())return!1;a=e.Event("open");this.opts.element.trigger(a);return!a.isDefaultPrevented()},
38
+ clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above");this.dropdown.removeClass("select2-drop-above")},open:function(){if(!this.shouldOpen())return!1;window.setTimeout(this.bind(this.opening),1);return!0},opening:function(){var a=this.containerId,b=this.containerSelector,c="scroll."+a,d="resize."+a;this.container.parents().each(function(){e(this).bind(c,function(){var a=e(b);0==a.length&&e(this).unbind(c);a.select2("close")})});e(window).bind(d,function(){var a=
39
+ e(b);0==a.length&&e(window).unbind(d);a.select2("close")});this.clearDropdownAlignmentPreference();" "===this.search.val()&&this.search.val("");this.container.addClass("select2-dropdown-open").addClass("select2-container-active");this.updateResults(!0);this.dropdown[0]!==this.body().children().last()[0]&&this.dropdown.detach().appendTo(this.body());this.dropdown.show();this.positionDropdown();this.dropdown.addClass("select2-drop-active");this.ensureHighlightVisible();this.focusSearch()},close:function(){if(this.opened()){var a=
40
+ this;this.container.parents().each(function(){e(this).unbind("scroll."+a.containerId)});e(window).unbind("resize."+this.containerId);this.clearDropdownAlignmentPreference();this.dropdown.hide();this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");this.results.empty();this.clearSearch();this.opts.element.trigger(e.Event("close"))}},clearSearch:function(){},ensureHighlightVisible:function(){var a=this.results,b,c,d,f;c=this.highlight();0>c||(0==c?a.scrollTop(0):
41
+ (b=a.find(".select2-result-selectable"),d=e(b[c]),f=d.offset().top+d.outerHeight(),c===b.length-1&&(b=a.find("li.select2-more-results"),0<b.length&&(f=b.offset().top+b.outerHeight())),b=a.offset().top+a.outerHeight(),f>b&&a.scrollTop(a.scrollTop()+(f-b)),d=d.offset().top-a.offset().top,0>d&&a.scrollTop(a.scrollTop()+d)))},moveHighlight:function(a){for(var b=this.results.find(".select2-result-selectable"),c=this.highlight();-1<c&&c<b.length;){var c=c+a,d=e(b[c]);if(d.hasClass("select2-result-selectable")&&
42
+ !d.hasClass("select2-disabled")){this.highlight(c);break}}},highlight:function(a){var b=this.results.find(".select2-result-selectable").not(".select2-disabled");if(0===arguments.length)return i(b.filter(".select2-highlighted")[0],b.get());a>=b.length&&(a=b.length-1);0>a&&(a=0);b.removeClass("select2-highlighted");e(b[a]).addClass("select2-highlighted");this.ensureHighlightVisible()},countSelectableResults:function(){return this.results.find(".select2-result-selectable").not(".select2-disabled").length},
43
+ highlightUnderEvent:function(a){a=e(a.target).closest(".select2-result-selectable");if(0<a.length&&!a.is(".select2-highlighted")){var b=this.results.find(".select2-result-selectable");this.highlight(b.index(a))}else 0==a.length&&this.results.find(".select2-highlighted").removeClass("select2-highlighted")},loadMoreIfNeeded:function(){var a=this.results,b=a.find("li.select2-more-results"),c,d=this.resultsPage+1,e=this,f=this.search.val(),g=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-
44
+ a.height(),0>=c&&(b.addClass("select2-active"),this.opts.query({term:f,page:d,context:g,matcher:this.opts.matcher,callback:this.bind(function(c){e.opened()&&(e.opts.populateResults.call(this,a,c.results,{term:f,page:d,context:g}),!0===c.more?(b.detach().appendTo(a).text(e.opts.formatLoadMore(d+1)),window.setTimeout(function(){e.loadMoreIfNeeded()},10)):b.remove(),e.positionDropdown(),e.resultsPage=d)})})))},tokenize:function(){},updateResults:function(a){function b(){f.scrollTop(0);d.removeClass("select2-active");
45
+ k.positionDropdown()}function c(a){f.html(k.opts.escapeMarkup(a));b()}var d=this.search,f=this.results,h=this.opts,i,k=this;if(!(!0!==a&&(!1===this.showSearchInput||!this.opened()))){d.addClass("select2-active");if(1<=h.maximumSelectionSize&&(i=this.data(),e.isArray(i)&&i.length>=h.maximumSelectionSize&&u(h.formatSelectionTooBig,"formatSelectionTooBig"))){c("<li class='select2-selection-limit'>"+h.formatSelectionTooBig(h.maximumSelectionSize)+"</li>");return}d.val().length<h.minimumInputLength&&u(h.formatInputTooShort,
46
+ "formatInputTooShort")?c("<li class='select2-no-results'>"+h.formatInputTooShort(d.val(),h.minimumInputLength)+"</li>"):(c("<li class='select2-searching'>"+h.formatSearching()+"</li>"),i=this.tokenize(),i!=g&&null!=i&&d.val(i),this.resultsPage=1,h.query({term:d.val(),page:this.resultsPage,context:null,matcher:h.matcher,callback:this.bind(function(i){var l;this.opened()&&((this.context=i.context===g?null:i.context,this.opts.createSearchChoice&&""!==d.val()&&(l=this.opts.createSearchChoice.call(null,
47
+ d.val(),i.results),l!==g&&null!==l&&k.id(l)!==g&&null!==k.id(l)&&0===e(i.results).filter(function(){return m(k.id(this),k.id(l))}).length&&i.results.unshift(l)),0===i.results.length&&u(h.formatNoMatches,"formatNoMatches"))?c("<li class='select2-no-results'>"+h.formatNoMatches(d.val())+"</li>"):(f.empty(),k.opts.populateResults.call(this,f,i.results,{term:d.val(),page:this.resultsPage,context:null}),!0===i.more&&u(h.formatLoadMore,"formatLoadMore")&&(f.append("<li class='select2-more-results'>"+k.opts.escapeMarkup(h.formatLoadMore(this.resultsPage))+
48
+ "</li>"),window.setTimeout(function(){k.loadMoreIfNeeded()},10)),this.postprocessResults(i,a),b()))})}))}},cancel:function(){this.close()},blur:function(){this.close();this.container.removeClass("select2-container-active");this.dropdown.removeClass("select2-drop-active");this.search[0]===document.activeElement&&this.search.blur();this.clearSearch();this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){this.search.show();this.search.focus();
49
+ window.setTimeout(this.bind(function(){this.search.show();this.search.focus();this.search.val(this.search.val())}),10)},selectHighlighted:function(){var a=this.highlight(),b=this.results.find(".select2-highlighted").not(".select2-disabled"),c=b.closest(".select2-result-selectable").data("select2-data");c&&(b.addClass("select2-disabled"),this.highlight(a),this.onSelect(c))},getPlaceholder:function(){return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||
50
+ this.opts.placeholder},initContainerWidth:function(){var a=function(){var a,c,d,f;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth()?"auto":this.opts.element.outerWidth()+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){a=this.opts.element.attr("style");if(a!==g){a=a.split(";");d=0;for(f=a.length;d<f;d+=1)if(c=a[d].replace(/\s/g,"").match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/),null!==c&&1<=c.length)return c[1]}return"resolve"===
51
+ this.opts.width?(a=this.opts.element.css("width"),0<a.indexOf("%")?a:0===this.opts.element.outerWidth()?"auto":this.opts.element.outerWidth()+"px"):null}return e.isFunction(this.opts.width)?this.opts.width():this.opts.width}.call(this);null!==a&&this.container.attr("style","width: "+a)}});y=x(w,{createContainer:function(){return e("<div></div>",{"class":"select2-container"}).html(" <a href='#' onclick='return false;' class='select2-choice'> <span></span><abbr class='select2-search-choice-close' style='display:none;'></abbr> <div><b></b></div></a> <div class='select2-drop select2-offscreen'> <div class='select2-search'> <input type='text' autocomplete='off' class='select2-input'/> </div> <ul class='select2-results'> </ul></div>")},
52
+ opening:function(){this.search.show();this.parent.opening.apply(this,arguments);this.dropdown.removeClass("select2-offscreen")},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.dropdown.removeAttr("style").addClass("select2-offscreen").insertAfter(this.selection).show())},focus:function(){this.close();this.selection.focus()},isFocused:function(){return this.selection[0]===document.activeElement},cancel:function(){this.parent.cancel.apply(this,arguments);this.selection.focus()},
53
+ initContainer:function(){var a,b=this.dropdown;this.selection=a=this.container.find(".select2-choice");this.search.bind("keydown",this.bind(function(a){if(this.enabled)if(a.which===f.PAGE_UP||a.which===f.PAGE_DOWN)l(a);else if(this.opened())switch(a.which){case f.UP:case f.DOWN:this.moveHighlight(a.which===f.UP?-1:1);l(a);break;case f.TAB:case f.ENTER:this.selectHighlighted();l(a);break;case f.ESC:this.cancel(a),l(a)}else a.which===f.TAB||f.isControl(a)||f.isFunctionKey(a)||a.which===f.ESC||!1===
54
+ this.opts.openOnEnter&&a.which===f.ENTER||this.open()}));this.search.bind("focus",this.bind(function(){this.selection.attr("tabIndex","-1")}));this.search.bind("blur",this.bind(function(){this.opened()||this.container.removeClass("select2-container-active");window.setTimeout(this.bind(function(){this.selection.attr("tabIndex",this.opts.element.attr("tabIndex"))}),10)}));a.bind("mousedown",this.bind(function(){this.opened()?(this.close(),this.selection.focus()):this.enabled&&this.open()}));b.bind("mousedown",
55
+ this.bind(function(){this.search.focus()}));a.bind("focus",this.bind(function(){this.container.addClass("select2-container-active");this.search.attr("tabIndex","-1")}));a.bind("blur",this.bind(function(){this.opened()||this.container.removeClass("select2-container-active");window.setTimeout(this.bind(function(){this.search.attr("tabIndex",this.opts.element.attr("tabIndex"))}),10)}));a.bind("keydown",this.bind(function(a){if(this.enabled)if(a.which===f.PAGE_UP||a.which===f.PAGE_DOWN)l(a);else if(!(a.which===
56
+ f.TAB||f.isControl(a)||f.isFunctionKey(a)||a.which===f.ESC)&&!(!1===this.opts.openOnEnter&&a.which===f.ENTER))if(a.which==f.DELETE)this.opts.allowClear&&this.clear();else{this.open();if(a.which!==f.ENTER&&!(48>a.which)){var b=String.fromCharCode(a.which).toLowerCase();a.shiftKey&&(b=b.toUpperCase());this.search.focus();this.search.val(b)}l(a)}}));a.delegate("abbr","mousedown",this.bind(function(a){this.enabled&&(this.clear(),l(a),this.close(),this.triggerChange(),this.selection.focus())}));this.setPlaceholder();
57
+ this.search.bind("focus",this.bind(function(){this.container.addClass("select2-container-active")}))},clear:function(){this.opts.element.val("");this.selection.find("span").empty();this.selection.removeData("select2-data");this.setPlaceholder()},initSelection:function(){if(""===this.opts.element.val())this.close(),this.setPlaceholder();else{var a=this;this.opts.initSelection.call(null,this.opts.element,function(b){b!==g&&null!==b&&(a.updateSelection(b),a.close(),a.setPlaceholder())})}},prepareOpts:function(){var a=
58
+ this.parent.prepareOpts.apply(this,arguments);"select"===a.element.get(0).tagName.toLowerCase()&&(a.initSelection=function(a,c){var d=a.find(":selected");e.isFunction(c)&&c({id:d.attr("value"),text:d.text()})});return a},setPlaceholder:function(){var a=this.getPlaceholder();""===this.opts.element.val()&&a!==g&&!(this.select&&""!==this.select.find("option:first").text())&&(this.selection.find("span").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.selection.find("abbr").hide())},
59
+ postprocessResults:function(a,b){var c=0,d=this,f=!0;this.results.find(".select2-result-selectable").each2(function(a,b){if(m(d.id(b.data("select2-data")),d.opts.element.val()))return c=a,!1});this.highlight(c);!0===b&&(f=this.showSearchInput=F(a.results)>=this.opts.minimumResultsForSearch,this.dropdown.find(".select2-search")[f?"removeClass":"addClass"]("select2-search-hidden"),e(this.dropdown,this.container)[f?"addClass":"removeClass"]("select2-with-searchbox"))},onSelect:function(a){var b=this.opts.element.val();
60
+ this.opts.element.val(this.id(a));this.updateSelection(a);this.close();this.selection.focus();m(b,this.id(a))||this.triggerChange()},updateSelection:function(a){var b=this.selection.find("span");this.selection.data("select2-data",a);b.empty();a=this.opts.formatSelection(a,b);a!==g&&b.append(this.opts.escapeMarkup(a));this.selection.removeClass("select2-default");this.opts.allowClear&&this.getPlaceholder()!==g&&this.selection.find("abbr").show()},val:function(){var a,b=null,c=this;if(0===arguments.length)return this.opts.element.val();
61
+ a=arguments[0];if(this.select)this.select.val(a).find(":selected").each2(function(a,c){b={id:c.attr("value"),text:c.text()};return!1}),this.updateSelection(b),this.setPlaceholder();else{if(this.opts.initSelection===g)throw Error("cannot call val() if initSelection() is not defined");a?(this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){c.opts.element.val(!a?"":c.id(a));c.updateSelection(a);c.setPlaceholder()})):this.clear()}},clearSearch:function(){this.search.val("")},
62
+ data:function(a){var b;if(0===arguments.length)return b=this.selection.data("select2-data"),b==g&&(b=null),b;!a||""===a?this.clear():(this.opts.element.val(!a?"":this.id(a)),this.updateSelection(a))}});z=x(w,{createContainer:function(){return e("<div></div>",{"class":"select2-container select2-container-multi"}).html(" <ul class='select2-choices'> <li class='select2-search-field'> <input type='text' autocomplete='off' class='select2-input'> </li></ul><div class='select2-drop select2-drop-multi' style='display:none;'> <ul class='select2-results'> </ul></div>")},
63
+ prepareOpts:function(){var a=this.parent.prepareOpts.apply(this,arguments);"select"===a.element.get(0).tagName.toLowerCase()&&(a.initSelection=function(a,c){var d=[];a.find(":selected").each2(function(a,b){d.push({id:b.attr("value"),text:b.text()})});e.isFunction(c)&&c(d)});return a},initContainer:function(){var a;this.searchContainer=this.container.find(".select2-search-field");this.selection=a=this.container.find(".select2-choices");this.search.bind("keydown",this.bind(function(b){if(this.enabled){if(b.which===
64
+ f.BACKSPACE&&""===this.search.val()){this.close();var c;c=a.find(".select2-search-choice-focus");if(0<c.length){this.unselect(c.first());this.search.width(10);l(b);return}c=a.find(".select2-search-choice");0<c.length&&c.last().addClass("select2-search-choice-focus")}else a.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");if(this.opened())switch(b.which){case f.UP:case f.DOWN:this.moveHighlight(b.which===f.UP?-1:1);l(b);return;case f.ENTER:case f.TAB:this.selectHighlighted();
65
+ l(b);return;case f.ESC:this.cancel(b);l(b);return}if(!(b.which===f.TAB||f.isControl(b)||f.isFunctionKey(b)||b.which===f.BACKSPACE||b.which===f.ESC)&&!(!1===this.opts.openOnEnter&&b.which===f.ENTER))this.open(),(b.which===f.PAGE_UP||b.which===f.PAGE_DOWN)&&l(b)}}));this.search.bind("keyup",this.bind(this.resizeSearch));this.search.bind("blur",this.bind(function(a){this.container.removeClass("select2-container-active");this.search.removeClass("select2-focused");this.clearSearch();a.stopImmediatePropagation()}));
66
+ this.container.delegate(".select2-choices","mousedown",this.bind(function(a){this.enabled&&!(0<e(a.target).closest(".select2-search-choice").length)&&(this.clearPlaceholder(),this.open(),this.focusSearch(),a.preventDefault())}));this.container.delegate(".select2-choices","focus",this.bind(function(){this.enabled&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())}));this.clearSearch()},enable:function(){this.enabled||(this.parent.enable.apply(this,
67
+ arguments),this.search.removeAttr("disabled"))},disable:function(){this.enabled&&(this.parent.disable.apply(this,arguments),this.search.attr("disabled",!0))},initSelection:function(){""===this.opts.element.val()&&(this.updateSelection([]),this.close(),this.clearSearch());if(this.select||""!==this.opts.element.val()){var a=this;this.opts.initSelection.call(null,this.opts.element,function(b){if(b!==g&&b!==null){a.updateSelection(b);a.close();a.clearSearch()}})}},clearSearch:function(){var a=this.getPlaceholder();
68
+ a!==g&&0===this.getVal().length&&!1===this.search.hasClass("select2-focused")?(this.search.val(a).addClass("select2-default"),this.resizeSearch()):this.search.val(" ").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")?this.search.val("").removeClass("select2-default"):" "===this.search.val()&&this.search.val("")},opening:function(){this.parent.opening.apply(this,arguments);this.clearPlaceholder();this.resizeSearch();this.focusSearch()},close:function(){this.opened()&&
69
+ this.parent.close.apply(this,arguments)},focus:function(){this.close();this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(a){var b=[],c=[],d=this;e(a).each(function(){0>i(d.id(this),b)&&(b.push(d.id(this)),c.push(this))});a=c;this.selection.find(".select2-search-choice").remove();e(a).each(function(){d.addSelectedChoice(this)});d.postprocessResults()},tokenize:function(){var a=this.search.val(),a=this.opts.tokenizer(a,this.data(),this.bind(this.onSelect),
70
+ this.opts);null!=a&&a!=g&&(this.search.val(a),0<a.length&&this.open())},onSelect:function(a){this.addSelectedChoice(a);this.select&&this.postprocessResults();this.opts.closeOnSelect?(this.close(),this.search.width(10)):0<this.countSelectableResults()?(this.search.width(10),this.resizeSearch(),this.positionDropdown()):this.close();this.triggerChange({added:a});this.focusSearch()},cancel:function(){this.close();this.focusSearch()},addSelectedChoice:function(a){var b=e("<li class='select2-search-choice'> <div></div> <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),
71
+ c=this.id(a),d=this.getVal(),f;f=this.opts.formatSelection(a,b);b.find("div").replaceWith("<div>"+this.opts.escapeMarkup(f)+"</div>");b.find(".select2-search-choice-close").bind("mousedown",l).bind("click dblclick",this.bind(function(a){this.enabled&&(e(a.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(e(a.target));this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");this.close();this.focusSearch()})).dequeue(),
72
+ l(a))})).bind("focus",this.bind(function(){this.enabled&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))}));b.data("select2-data",a);b.insertBefore(this.searchContainer);d.push(c);this.setVal(d)},unselect:function(a){var b=this.getVal(),c,d,a=a.closest(".select2-search-choice");if(0===a.length)throw"Invalid argument: "+a+". Must be .select2-search-choice";c=a.data("select2-data");d=i(this.id(c),b);0<=d&&(b.splice(d,1),this.setVal(b),this.select&&
73
+ this.postprocessResults());a.remove();this.triggerChange({removed:c})},postprocessResults:function(){var a=this.getVal(),b=this.results.find(".select2-result-selectable"),c=this.results.find(".select2-result-with-children"),d=this;b.each2(function(b,c){var e=d.id(c.data("select2-data"));0<=i(e,a)?c.addClass("select2-disabled").removeClass("select2-result-selectable"):c.removeClass("select2-disabled").addClass("select2-result-selectable")});c.each2(function(a,b){0==b.find(".select2-result-selectable").length?
74
+ b.addClass("select2-disabled"):b.removeClass("select2-disabled")});b.each2(function(a,b){if(!b.hasClass("select2-disabled")&&b.hasClass("select2-result-selectable"))return d.highlight(0),!1})},resizeSearch:function(){var a,b,c,d,f=this.search.outerWidth()-this.search.width();a=this.search;q||(c=a[0].currentStyle||window.getComputedStyle(a[0],null),q=e("<div></div>").css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,
75
+ fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),e("body").append(q));q.text(a.val());a=q.width()+10;b=this.search.offset().left;c=this.selection.width();d=this.selection.offset().left;b=c-(b-d)-f;b<a&&(b=c-f);40>b&&(b=c-f);this.search.width(b)},getVal:function(){var a;if(this.select)return a=this.select.val(),null===a?[]:a;a=this.opts.element.val();return s(a,this.opts.separator)},setVal:function(a){var b;this.select?this.select.val(a):(b=
76
+ [],e(a).each(function(){0>i(this,b)&&b.push(this)}),this.opts.element.val(0===b.length?"":b.join(this.opts.separator)))},val:function(){var a,b=[],c=this;if(0===arguments.length)return this.getVal();if(a=arguments[0])if(this.setVal(a),this.select)this.select.find(":selected").each(function(){b.push({id:e(this).attr("value"),text:e(this).text()})}),this.updateSelection(b);else{if(this.opts.initSelection===g)throw Error("val() cannot be called if initSelection() is not defined");this.opts.initSelection(this.opts.element,
77
+ function(a){var b=e(a).map(c.id);c.setVal(b);c.updateSelection(a);c.clearSearch()})}else this.opts.element.val(""),this.updateSelection([]);this.clearSearch()},onSortStart:function(){if(this.select)throw Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");this.search.width(0);this.searchContainer.hide()},onSortEnd:function(){var a=[],b=this;this.searchContainer.show();this.searchContainer.appendTo(this.searchContainer.parent());this.resizeSearch();
78
+ this.selection.find(".select2-search-choice").each(function(){a.push(b.opts.id(e(this).data("select2-data")))});this.setVal(a);this.triggerChange()},data:function(a){var b=this,c;if(0===arguments.length)return this.selection.find(".select2-search-choice").map(function(){return e(this).data("select2-data")}).get();a||(a=[]);c=e.map(a,function(a){return b.opts.id(a)});this.setVal(c);this.updateSelection(a);this.clearSearch()}});e.fn.select2=function(){var a=Array.prototype.slice.call(arguments,0),b,
79
+ c,d,f,h="val destroy opened open close focus isFocused container onSortStart onSortEnd enable disable positionDropdown data".split(" ");this.each(function(){if(0===a.length||"object"===typeof a[0])b=0===a.length?{}:e.extend({},a[0]),b.element=e(this),"select"===b.element.get(0).tagName.toLowerCase()?f=b.element.attr("multiple"):(f=b.multiple||!1,"tags"in b&&(b.multiple=f=!0)),c=f?new z:new y,c.init(b);else if("string"===typeof a[0]){if(0>i(a[0],h))throw"Unknown method: "+a[0];d=g;c=e(this).data("select2");
80
+ if(c!==g&&(d="container"===a[0]?c.container:c[a[0]].apply(c,a.slice(1)),d!==g))return!1}else throw"Invalid arguments to select2 plugin: "+a;});return d===g?this:d};e.fn.select2.defaults={width:"copy",closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c){b=[];B(a.text,c.term,b);return b.join("")},formatSelection:function(a){return a?a.text:g},formatResultCssClass:function(){return g},formatNoMatches:function(){return"No matches found"},
81
+ formatInputTooShort:function(a,b){return"Please enter "+(b-a.length)+" more characters"},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumSelectionSize:0,id:function(a){return a.id},matcher:function(a,b){return 0<=b.toUpperCase().indexOf(a.toUpperCase())},separator:",",tokenSeparators:[],tokenizer:H,
82
+ escapeMarkup:function(a){return a&&"string"===typeof a?a.replace(/&/g,"&amp;"):a},blurOnChange:!1};window.Select2={query:{ajax:C,local:D,tags:E},util:{debounce:A,markMatch:B},"class":{"abstract":w,single:y,multi:z}}}})(jQuery);
widgets/select2/select2.png ADDED
Binary file
widgets/select2/select2x2.png ADDED
Binary file
widgets/select2/spinner.gif ADDED
Binary file
widgets/select2/tpw_select2.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) { // closure
2
+ $(function () {
3
+ function format(language) {
4
+ var originalOption = language.element;
5
+ var img = '<span class="trf trf-'+$(originalOption).data('flag')+'" title="'+$(originalOption).data('lang')+'"></span> ';
6
+ return img + language.text;
7
+ }
8
+
9
+ function format2(language) {
10
+ var originalOption = $(this.element).children('[value="'+language.id+'"]');
11
+ var img = '<span style="display: inline-block; margin: 0" class="trf trf-'+$(originalOption).data('flag')+'" title="'+$(originalOption).data('lang')+'"></span> ';
12
+ return img + language.text;
13
+ }
14
+
15
+ jQuery(".tp_lang2").select2({
16
+ formatResult: format,
17
+ formatSelection: format2
18
+ });
19
+ });
20
+
21
+ }(jQuery)); // end of closure
widgets/select2/tpw_select2.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Plugin Name: Select2 based Dropdown
5
+ Plugin URI: http://transposh.org/
6
+ Description: A nice select2 based widget based on the select2 library (http://ivaynberg.github.com/select2/index.html)
7
+ Author: Team Transposh
8
+ Version: 1.0
9
+ Author URI: http://transposh.org/
10
+ License: GPL (http://www.gnu.org/licenses/gpl.txt)
11
+ */
12
+
13
+ /*
14
+ * Transposh v0.9.0
15
+ * http://transposh.org/
16
+ *
17
+ * Copyright 2012, Team Transposh
18
+ * Licensed under the GPL Version 2 or higher.
19
+ * http://transposh.org/license
20
+ *
21
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
22
+ */
23
+
24
+ class tpw_select2 extends transposh_base_widget {
25
+
26
+ static function tp_widget_js($file, $dir, $url) {
27
+ wp_enqueue_script("select2", "$url/widgets/select2/select2.min.js", array('jquery'), TRANSPOSH_PLUGIN_VER);
28
+ wp_enqueue_script("transposh_widget_select2", "$url/widgets/select2/tpw_select2.js", array('jquery'), TRANSPOSH_PLUGIN_VER);
29
+ }
30
+
31
+ static function tp_widget_css($file, $dir, $url) {
32
+ wp_enqueue_style("flags_tpw_flags_css", "$url/widgets/flags/tpw_flags_css.css", array(), TRANSPOSH_PLUGIN_VER);
33
+ wp_enqueue_style("select2", "$url/widgets/select2/select2.css", array(), TRANSPOSH_PLUGIN_VER);
34
+ }
35
+
36
+ static function tp_widget_do($args) {
37
+ echo '<span class="' . NO_TRANSLATE_CLASS . '">';
38
+
39
+ echo '<select style="width:100%" name="lang" class="tp_lang2" id="tp_lang2" onchange="document.location.href=this.options[this.selectedIndex].value;">';
40
+ foreach ($args as $langrecord) {
41
+ $is_selected = $langrecord['active'] ? " selected=\"selected\"" : "";
42
+ echo "<option value=\"{$langrecord['url']}\" data-flag=\"{$langrecord['flag']}\" data-lang=\"{$langrecord['lang']}\"{$is_selected}>{$langrecord['langorig']}</option>";
43
+ }
44
+ echo "</select><br/>";
45
+
46
+ echo "</span>";
47
+ }
48
+
49
+ }
50
+
51
+ ?>
wp/transposh_3rdparty.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /*
@@ -42,7 +42,7 @@ class transposh_3rdparty {
42
  add_action('sm_addurl', array(&$this, 'add_sm_transposh_urls'));
43
 
44
  // google analyticator
45
- if ($this->transposh->options->get_transposh_collect_stats()) {
46
  add_action('google_analyticator_extra_js_after', array(&$this, 'add_analyticator_tracking'));
47
  }
48
  }
@@ -60,35 +60,35 @@ class transposh_3rdparty {
60
  $GLOBALS['wp_cache_request_uri'] = preg_replace('/[ <>\'\"\r\n\t\(\)]/', '', str_replace('/index.php', '/', str_replace('..', '', preg_replace("/(\?.*)?$/", '', $GLOBALS['wp_cache_request_uri']))));
61
  // get some supercache variables
62
  extract(wp_super_cache_init());
63
-
64
  // this is hackery for logged in users, a cookie is added to the request somehow and gzip is not correctly set, so we forcefully fix this
65
  if (!$cache_file) {
66
  $GLOBALS['wp_cache_gzip_encoding'] = gzip_accepted();
67
  unset($_COOKIE[key($_COOKIE)]);
68
  extract(wp_super_cache_init());
69
-
70
  }
71
 
72
  $dir = get_current_url_supercache_dir();
73
  // delete possible files that we can figure out, not deleting files for other cookies for example, but will do the trick in most cases
74
  $cache_fname = "{$dir}index.html";
75
-
76
  @unlink($cache_fname);
77
  $cache_fname = "{$dir}index.html.gz";
78
-
79
  @unlink($cache_fname);
80
-
81
  @unlink($cache_file);
82
-
83
  @unlink($meta_pathname);
84
 
85
  // go at edit pages too
86
  $GLOBALS['wp_cache_request_uri'] .="?edit=1";
87
  extract(wp_super_cache_init());
88
-
89
-
90
  @unlink($cache_file);
91
-
92
  @unlink($meta_pathname);
93
  }
94
 
@@ -101,7 +101,7 @@ class transposh_3rdparty {
101
  $lang = transposh_utils::get_language_from_url($uri, $this->transposh->home_url);
102
  //TODO - check using get_clean_url
103
  $uri = transposh_utils::cleanup_url($uri, $this->transposh->home_url);
104
- if ($this->transposh->options->get_enable_url_translate()) {
105
  $uri = transposh_utils::get_original_url($uri, '', $lang, array($this->transposh->database, 'fetch_original'));
106
  }
107
  return $uri;
@@ -178,19 +178,24 @@ class transposh_3rdparty {
178
  * @param GoogleSitemapGeneratorPage $sm_page Object containing the page information
179
  */
180
  function add_sm_transposh_urls($sm_page) {
181
-
182
  $sm_page = clone $sm_page;
183
  // we need the generator object (we know it must exist...)
184
  $generatorObject = &GoogleSitemapGenerator::GetInstance();
185
  // we reduce the priorty by 0.2, but not below zero
186
  $sm_page->SetProprity(max($sm_page->GetPriority() - 0.2, 0));
187
 
188
- $viewable_langs = explode(',', $this->transposh->options->get_viewable_langs());
 
 
 
 
 
189
  $orig_url = $sm_page->GetUrl();
190
  foreach ($viewable_langs as $lang) {
191
  if (!$this->transposh->options->is_default_language($lang)) {
192
  $newloc = $orig_url;
193
- if ($this->transposh->options->get_enable_url_translate()) {
194
  $newloc = transposh_utils::translate_url($newloc, $this->transposh->home_url, $lang, array(&$this->transposh->database, 'fetch_translation'));
195
  }
196
  $newloc = transposh_utils::rewrite_url_lang_param($newloc, $this->transposh->home_url, $this->transposh->enable_permalinks_rewrite, $lang, false);
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Thu, 13 Dec 2012 04:47:49 +0200
12
  */
13
 
14
  /*
42
  add_action('sm_addurl', array(&$this, 'add_sm_transposh_urls'));
43
 
44
  // google analyticator
45
+ if ($this->transposh->options->transposh_collect_stats) {
46
  add_action('google_analyticator_extra_js_after', array(&$this, 'add_analyticator_tracking'));
47
  }
48
  }
60
  $GLOBALS['wp_cache_request_uri'] = preg_replace('/[ <>\'\"\r\n\t\(\)]/', '', str_replace('/index.php', '/', str_replace('..', '', preg_replace("/(\?.*)?$/", '', $GLOBALS['wp_cache_request_uri']))));
61
  // get some supercache variables
62
  extract(wp_super_cache_init());
63
+ tp_logger(wp_super_cache_init());
64
  // this is hackery for logged in users, a cookie is added to the request somehow and gzip is not correctly set, so we forcefully fix this
65
  if (!$cache_file) {
66
  $GLOBALS['wp_cache_gzip_encoding'] = gzip_accepted();
67
  unset($_COOKIE[key($_COOKIE)]);
68
  extract(wp_super_cache_init());
69
+ tp_logger(wp_super_cache_init());
70
  }
71
 
72
  $dir = get_current_url_supercache_dir();
73
  // delete possible files that we can figure out, not deleting files for other cookies for example, but will do the trick in most cases
74
  $cache_fname = "{$dir}index.html";
75
+ tp_logger("attempting delete of supercache: $cache_fname");
76
  @unlink($cache_fname);
77
  $cache_fname = "{$dir}index.html.gz";
78
+ tp_logger("attempting delete of supercache: $cache_fname");
79
  @unlink($cache_fname);
80
+ tp_logger("attempting delete of wp_cache: $cache_file");
81
  @unlink($cache_file);
82
+ tp_logger("attempting delete of wp_cache_meta: $meta_pathname");
83
  @unlink($meta_pathname);
84
 
85
  // go at edit pages too
86
  $GLOBALS['wp_cache_request_uri'] .="?edit=1";
87
  extract(wp_super_cache_init());
88
+ tp_logger(wp_super_cache_init());
89
+ tp_logger("attempting delete of edit_wp_cache: $cache_file");
90
  @unlink($cache_file);
91
+ tp_logger("attempting delete of edit_wp_cache_meta: $meta_pathname");
92
  @unlink($meta_pathname);
93
  }
94
 
101
  $lang = transposh_utils::get_language_from_url($uri, $this->transposh->home_url);
102
  //TODO - check using get_clean_url
103
  $uri = transposh_utils::cleanup_url($uri, $this->transposh->home_url);
104
+ if ($this->transposh->options->enable_url_translate) {
105
  $uri = transposh_utils::get_original_url($uri, '', $lang, array($this->transposh->database, 'fetch_original'));
106
  }
107
  return $uri;
178
  * @param GoogleSitemapGeneratorPage $sm_page Object containing the page information
179
  */
180
  function add_sm_transposh_urls($sm_page) {
181
+ tp_logger("in sitemap add url: " . $sm_page->GetUrl() . " " . $sm_page->GetPriority(), 4);
182
  $sm_page = clone $sm_page;
183
  // we need the generator object (we know it must exist...)
184
  $generatorObject = &GoogleSitemapGenerator::GetInstance();
185
  // we reduce the priorty by 0.2, but not below zero
186
  $sm_page->SetProprity(max($sm_page->GetPriority() - 0.2, 0));
187
 
188
+ /* <xhtml:link
189
+ rel="alternate"
190
+ hreflang="de"
191
+ href="http://www.example.com/de" /> */
192
+
193
+ $viewable_langs = explode(',', $this->transposh->options->viewable_languages);
194
  $orig_url = $sm_page->GetUrl();
195
  foreach ($viewable_langs as $lang) {
196
  if (!$this->transposh->options->is_default_language($lang)) {
197
  $newloc = $orig_url;
198
+ if ($this->transposh->options->enable_url_translate) {
199
  $newloc = transposh_utils::translate_url($newloc, $this->transposh->home_url, $lang, array(&$this->transposh->database, 'fetch_translation'));
200
  }
201
  $newloc = transposh_utils::rewrite_url_lang_param($newloc, $this->transposh->home_url, $this->transposh->enable_permalinks_rewrite, $lang, false);
wp/transposh_admin.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /*
@@ -27,22 +27,23 @@ class transposh_plugin_admin {
27
  private $transposh;
28
  private $localeright = 'right';
29
  private $localeleft = 'left';
 
 
30
 
31
  // constructor of class, PHP4 compatible construction for backward compatibility
32
  function transposh_plugin_admin(&$transposh) {
33
  $this->transposh = &$transposh;
34
- // add filter for WordPress 2.8 changed backend box system !
35
- add_filter('screen_layout_columns', array(&$this, 'on_screen_layout_columns'), 10, 2);
36
- // add some help
37
- add_filter('contextual_help_list', array(&$this, 'on_contextual_help'), 100, 2);
38
- // register callback for admin menu setup
39
- add_action('admin_menu', array(&$this, 'on_admin_menu'));
40
  // register the callback been used if options of page been submitted and needs to be processed
41
  add_action('admin_post_save_transposh', array(&$this, 'on_save_changes'));
42
  // allow language change for comments
43
  add_filter('comment_row_actions', array(&$this, 'comment_row_actions'), 999, 2);
44
  // register ajax callbacks
45
  add_action('wp_ajax_tp_close_warning', array(&$this, 'on_ajax_tp_close_warning'));
 
46
  add_action('wp_ajax_tp_backup', array(&$this, 'on_ajax_tp_backup'));
47
  add_action('wp_ajax_tp_restore', array(&$this, 'on_ajax_tp_restore'));
48
  add_action('wp_ajax_tp_maint', array(&$this, 'on_ajax_tp_maint'));
@@ -59,349 +60,324 @@ class transposh_plugin_admin {
59
  function can_translate($role_name) {
60
  if ($role_name != 'anonymous') {
61
  $role = $GLOBALS['wp_roles']->get_role($role_name);
62
- if (isset($role) && $role->has_cap(TRANSLATOR))
63
- return 'checked="checked"';
64
  }
65
- else
66
- return ($this->transposh->options->get_anonymous_translation()) ? 'checked="checked"' : '';
67
  }
68
 
69
  /**
70
  * Handle newly posted admin options.
71
  */
72
  function update_admin_options() {
73
-
74
-
75
- $viewable_langs = array();
76
- $editable_langs = array();
77
-
78
- //update roles and capabilities
79
- foreach ($GLOBALS['wp_roles']->get_names() as $role_name => $something) {
80
- $role = $GLOBALS['wp_roles']->get_role($role_name);
81
- if ($_POST[$role_name] == "1") $role->add_cap(TRANSLATOR);
82
- else $role->remove_cap(TRANSLATOR);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  }
84
 
85
- // anonymous needs to be handled differently as it does not have a role
86
- $this->transposh->options->set_anonymous_translation($_POST['anonymous']);
 
 
87
 
88
- // first set the default language
89
- list ($langcode, $viewable, $translateable) = explode(",", $_POST['languages'][0]);
90
- $this->transposh->options->set_default_language($langcode);
91
- unset($_POST['languages'][0]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
 
93
- // update the list of supported/editable/sortable languages
94
-
95
- foreach ($_POST['languages'] as $code => $lang) {
96
- list ($langcode, $viewable, $translateable) = explode(",", $lang);
97
- $sorted_langs[$langcode] = $langcode;
98
- if ($viewable) {
99
- $viewable_langs[$langcode] = $langcode;
100
- // force that every viewable lang is editable
101
- $editable_langs[$langcode] = $langcode;
102
- }
103
 
104
- if ($translateable) {
105
- $editable_langs[$langcode] = $langcode;
 
 
106
  }
 
107
  }
108
 
109
- $this->transposh->options->set_viewable_langs(implode(',', $viewable_langs));
110
- $this->transposh->options->set_editable_langs(implode(',', $editable_langs));
111
- $this->transposh->options->set_sorted_langs(implode(',', $sorted_langs));
112
-
113
- if ($this->transposh->options->get_enable_permalinks() != $_POST[ENABLE_PERMALINKS]) {
114
- $this->transposh->options->set_enable_permalinks($_POST[ENABLE_PERMALINKS]);
115
- // rewrite rules - refresh. - because we want them set or unset upon this change
116
- // TODO - need to check if its even needed
117
- add_filter('rewrite_rules_array', array(&$this->transposh, 'update_rewrite_rules'));
118
- $GLOBALS['wp_rewrite']->flush_rules();
119
  }
120
-
121
- $this->transposh->options->set_enable_footer_scripts($_POST[ENABLE_FOOTER_SCRIPTS]);
122
- $this->transposh->options->set_enable_detect_language($_POST[ENABLE_DETECT_LANG_AND_REDIRECT]);
123
- $this->transposh->options->set_transposh_collect_stats($_POST[TRANSPOSH_COLLECT_STATS]);
124
- $this->transposh->options->set_enable_auto_translate($_POST[ENABLE_AUTO_TRANSLATE]);
125
- $this->transposh->options->set_enable_auto_post_translate($_POST[ENABLE_AUTO_POST_TRANSLATE]);
126
- $this->transposh->options->set_enable_default_translate($_POST[ENABLE_DEFAULT_TRANSLATE]);
127
- $this->transposh->options->set_enable_search_translate($_POST[ENABLE_SEARCH_TRANSLATE]);
128
- $this->transposh->options->set_enable_url_translate($_POST[ENABLE_URL_TRANSLATE]);
129
- $this->transposh->options->set_transposh_gettext_integration($_POST[TRANSPOSH_GETTEXT_INTEGRATION]);
130
- $this->transposh->options->set_transposh_default_locale_override($_POST[TRANSPOSH_DEFAULT_LOCALE_OVERRIDE]);
131
- $this->transposh->options->set_preferred_translator($_POST[PREFERRED_TRANSLATOR]);
132
- $this->transposh->options->set_msn_key($_POST[MSN_TRANSLATE_KEY]);
133
- $this->transposh->options->set_google_key($_POST[GOOGLE_TRANSLATE_KEY]);
134
- $this->transposh->options->set_oht_id($_POST[OHT_TRANSLATE_ID]);
135
- $this->transposh->options->set_oht_key($_POST[OHT_TRANSLATE_KEY]);
136
- $this->transposh->options->set_transposh_key($_POST[TRANSPOSH_KEY]);
137
- // frontend stuff
138
- $this->transposh->options->set_widget_progressbar($_POST[WIDGET_PROGRESSBAR]);
139
- $this->transposh->options->set_widget_allow_set_default_language($_POST[WIDGET_ALLOW_SET_DEFLANG]);
140
- $this->transposh->options->set_widget_remove_logo($_POST[WIDGET_REMOVE_LOGO_FOR_AD]);
141
- $this->transposh->options->set_widget_theme($_POST[WIDGET_THEME]);
142
-
143
- // handle change of schedule for backup to daily
144
- //if ($_POST[TRANSPOSH_BACKUP_SCHEDULE] != $this->transposh->options->get_transposh_backup_schedule()) {
145
- wp_clear_scheduled_hook('transposh_backup_event');
146
- if ($_POST[TRANSPOSH_BACKUP_SCHEDULE] == 1 || $_POST[TRANSPOSH_BACKUP_SCHEDULE] == 2)
147
- wp_schedule_event(time(), 'daily', 'transposh_backup_event');
148
- //}
149
- $this->transposh->options->set_transposh_backup_schedule($_POST[TRANSPOSH_BACKUP_SCHEDULE]);
150
-
151
- $this->transposh->options->update_options();
152
  }
153
 
154
- // for WordPress 2.8 we have to tell, that we support 2 columns !
155
- function on_screen_layout_columns($columns, $screen) {
156
- if ($screen == $this->pagehook) {
157
- $columns[$this->pagehook] = 2;
158
- }
159
- return $columns;
 
160
  }
161
 
162
- //add some help
163
- function on_contextual_help($filterVal, $screen) {
164
- if ($screen == 'settings_page_transposh') {
165
- $filterVal['settings_page_transposh'] = '<p>' . __('Transposh makes your blog translatable', TRANSPOSH_TEXT_DOMAIN) . '</p>' .
166
- '<a href="http://transposh.org/">' . __('Plugin homepage', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>' .
167
- '<a href="http://transposh.org/faq/">' . __('Frequently asked questions', TRANSPOSH_TEXT_DOMAIN) . '</a>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  }
169
- return $filterVal;
170
  }
171
 
172
- // extend the admin menu
173
- function on_admin_menu() {
174
- //add our own option page, you can also add it to different sections or use your own one
175
- $this->pagehook = add_options_page(__('Transposh control center', TRANSPOSH_TEXT_DOMAIN), __('Transposh', TRANSPOSH_TEXT_DOMAIN), 'manage_options', TRANSPOSH_ADMIN_PAGE_NAME, array(&$this, 'on_show_page'));
176
- // register callback gets call prior your own page gets rendered
177
- add_action('load-' . $this->pagehook, array(&$this, 'on_load_page'));
178
- add_action('load-edit-comments.php', array(&$this, 'on_load_comments_page'));
179
- }
180
-
181
- function on_load_comments_page() {
182
- wp_enqueue_script('transposhcomments', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/transposhcommentslang.js', array('jquery'), TRANSPOSH_PLUGIN_VER);
183
- }
184
-
185
- // will be executed if wordpress core detects this page has to be rendered
186
- function on_load_page() {
187
- //ensure, that the needed javascripts been loaded to allow drag/drop, expand/collapse and hide/show of boxes
188
- wp_enqueue_script('common');
189
- wp_enqueue_script('wp-lists');
190
- wp_enqueue_script('postbox');
191
-
192
- //TODO - make up my mind on using .css flags here (currently no)
193
- //if ($this->transposh->options->get_widget_css_flags())
194
- // wp_enqueue_style("transposh_flags",$this->transposh->transposh_plugin_url."/widgets/flags/tpw_flags.css",array(),TRANSPOSH_PLUGIN_VER);
195
- wp_enqueue_script('jquery-ui-droppable');
196
- wp_enqueue_script('transposh_settings', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/transposhsettings.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
197
- // MAKESURE 3.3+ css
198
- // wp_enqueue_script('jquery-ui-progressbar');
199
-
200
- wp_enqueue_style('jqueryui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/' . JQUERYUI_VER . '/themes/ui-lightness/jquery-ui.css', array(), JQUERYUI_VER);
201
- wp_enqueue_script('jqueryui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/' . JQUERYUI_VER . '/jquery-ui.min.js', array('jquery'), JQUERYUI_VER, true);
202
- wp_enqueue_script('transposh_backend', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/transposhbackend.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
203
- $script_params = array(
204
- 'l10n_print_after' =>
205
- 't_be.g_langs = ' . json_encode(transposh_consts::$google_languages) . ';' .
206
- 't_be.m_langs = ' . json_encode(transposh_consts::$bing_languages) . ';' .
207
- 't_be.a_langs = ' . json_encode(transposh_consts::$apertium_languages) . ';'
208
- );
209
- wp_localize_script("transposh_backend", "t_be", $script_params);
210
-
211
- //add several metaboxes now, all metaboxes registered during load page can be switched off/on at "Screen Options" automatically, nothing special to do therefore
212
- add_meta_box('transposh-sidebox-about', __('About this plugin', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_sidebox_about_content'), $this->pagehook, 'side', 'core');
213
- add_meta_box('transposh-sidebox-news', __('Plugin news', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_sidebox_news_content'), $this->pagehook, 'side', 'core');
214
- add_meta_box('transposh-sidebox-stats', __('Plugin stats', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_sidebox_stats_content'), $this->pagehook, 'side', 'core');
215
- add_meta_box('transposh-sidebox-translate', __('Translate all', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_sidebox_translate_content'), $this->pagehook, 'side', 'core');
216
- add_meta_box('transposh-contentbox-languages', __('Supported languages', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_languages_content'), $this->pagehook, 'normal', 'core');
217
- add_meta_box('transposh-contentbox-translation', __('Translation settings', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_translation_content'), $this->pagehook, 'normal', 'core');
218
- add_meta_box('transposh-contentbox-autotranslation', __('Automatic translation settings', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_auto_translation_content'), $this->pagehook, 'normal', 'core');
219
- add_meta_box('transposh-contentbox-protranslation', __('Professional translation settings', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_professional_translation_content'), $this->pagehook, 'normal', 'core');
220
- add_meta_box('transposh-contentbox-frontend', __('Frontend settings', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_frontend_content'), $this->pagehook, 'normal', 'core');
221
- add_meta_box('transposh-contentbox-general', __('Generic settings', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_generic_content'), $this->pagehook, 'normal', 'core');
222
- add_meta_box('transposh-contentbox-database', __('Database maintenance', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_database_content'), $this->pagehook, 'normal', 'core');
223
- }
224
-
225
- //executed to show the plugins complete admin page
226
- function on_show_page() {
227
  global $wp_locale;
228
  if ($wp_locale->text_direction == 'rtl') {
229
  $this->localeleft = 'right';
230
  $this->localeright = 'left';
231
  }
232
 
233
- //we need the global screen column value to beable to have a sidebar in WordPress 2.8
234
- //global $screen_layout_columns;
235
- //add a 3rd content box now for demonstration purpose, boxes added at start of page rendering can't be switched on/off,
236
- //may be needed to ensure that a special box is always available
237
- add_meta_box('transposh-contentbox-community', __('Transposh community features', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_community_content'), $this->pagehook, 'normal', 'core');
238
- //define some data can be given to each metabox during rendering - not used now
239
- //$data = array('My Data 1', 'My Data 2', 'Available Data 1');
 
 
 
 
 
 
 
240
 
241
- echo '<div id="transposh-general" class="wrap">';
242
- screen_icon('options-general');
243
- echo '<h2>' . __('Transposh', TRANSPOSH_TEXT_DOMAIN) . '</h2>' .
244
- '<form action="admin-post.php" method="post">';
245
 
246
- // add some user warnings that leads to some FAQs
247
- if ((int) ini_get('memory_limit') < 64) {
248
- $this->add_warning('tp_mem_warning', sprintf(__('Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it.', TRANSPOSH_TEXT_DOMAIN), ini_get('memory_limit')) . ' <a href="http://transposh.org/faq#blankpages">' . __('Check Transposh FAQs', TRANSPOSH_TEXT_DOMAIN) . '</a>');
 
 
 
249
  }
250
-
251
- if (!(class_exists('Memcache') /* !!&& $this->memcache->connect(TP_MEMCACHED_SRV, TP_MEMCACHED_PORT) */) && !function_exists('apc_fetch') && !function_exists('xcache_get') && !function_exists('eaccelerator_get')) {
252
- $this->add_warning('tp_cache_warning', __('We were not able to find a supported in-memory caching engine, installing one can improve performance.', TRANSPOSH_TEXT_DOMAIN) . ' <a href="http://transposh.org/faq#performance">' . __('Check Transposh FAQs', TRANSPOSH_TEXT_DOMAIN) . '</a>');
 
 
 
 
 
253
  }
254
 
255
- wp_nonce_field(TR_NONCE);
256
- wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false);
257
- wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
258
-
259
- echo '<input type="hidden" name="action" value="save_transposh" />' .
260
- '<div id="poststuff" class="metabox-holder' . ((2 == $GLOBALS['screen_layout_columns']) ? ' has-right-sidebar' : '') . '">' .
261
- '<div id="side-info-column" class="inner-sidebar">';
262
- do_meta_boxes($this->pagehook, 'side', '');
263
-
264
- echo '</div>' .
265
- '<div id="post-body" class="has-sidebar">' .
266
- '<div id="post-body-content" class="has-sidebar-content"> ';
267
-
268
- do_meta_boxes($this->pagehook, 'normal', '');
269
- /* Maybe add static content here later */
270
- //do_meta_boxes($this->pagehook, 'additional', $data);
271
-
272
- echo '<p>' .
273
- '<input type="submit" value="' . __('Save Changes') . '" class="button-primary" name="Submit"/>' .
274
- '</p>' .
275
- '</div>' .
276
- '</div>' .
277
- '<br class="clear"/>' .
278
- '</div>' .
279
- '</form>' .
280
- '</div>' .
281
- '<script type="text/javascript">' . "\n" .
282
- '//<![CDATA[' . "\n" .
283
- 'jQuery(document).ready( function($) {';
284
- // close postboxes that should be closed
285
- echo "$('.if-js-closed').removeClass('if-js-closed').addClass('closed');";
286
- // postboxes setup
287
- echo "postboxes.add_postbox_toggles('" . $this->pagehook . "');" .
288
- '}); ' . "\n" .
289
- '//]]>' . "\n" .
290
- '</script>';
291
- }
292
 
293
- // executed if the post arrives initiated by pressing the submit button of form
294
- function on_save_changes() {
295
- //user permission check
296
- if (!current_user_can('manage_options'))
297
- wp_die(__('Problems?', TRANSPOSH_TEXT_DOMAIN));
298
- // cross check the given referer
299
- check_admin_referer(TR_NONCE);
300
 
301
- // process here your on $_POST validation and / or option saving
302
- $this->update_admin_options();
303
 
304
- // lets redirect the post request into get request (you may add additional params at the url, if you need to show save results
305
- $this->transposh->tp_redirect($_POST['_wp_http_referer']);
 
306
  }
307
 
308
- // below you will find for each registered metabox the callback method, that produces the content inside the boxes
309
- // i did not describe each callback dedicated, what they do can be easily inspected and compare with the admin page displayed
 
310
 
311
- function on_sidebox_about_content($data) {
312
- echo '<ul style="list-style-type:disc;margin-' . $this->localeleft . ':20px;">';
313
- echo '<li><a href="http://transposh.org/">' . __('Plugin Homepage', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
314
- echo '<li><a href="http://transposh.org/redir/newfeature">' . __('Suggest a Feature', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
315
- // support Forum
316
- echo '<li><a href="http://transposh.org/redir/newticket">' . __('Report a Bug', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
317
- // donate with PayPal
318
- echo '</ul>';
319
- }
320
 
321
- function on_sidebox_news_content($data) {
322
- echo '<div style="margin:6px">';
323
- wp_widget_rss_output('http://feeds2.feedburner.com/transposh', array('items' => 5));
324
- echo '</div>';
325
- }
326
 
327
- function on_sidebox_stats_content($data) {
328
- $this->transposh->database->db_stats();
329
- }
330
 
331
- function on_sidebox_translate_content($data) {
332
- echo '<div id="progress_bar_all"></div><div id="tr_translate_title"></div>';
333
- echo '<div id="tr_loading" style="margin: 0 0 10px 0">' . __('Translate by clicking the button below', TRANSPOSH_TEXT_DOMAIN) . '</div>';
334
- echo '<div id="tr_allmsg" style="margin: 0 0 10px 0"></div>';
335
- echo '<a id="transposh-translate" href="#" onclick="return false;" class="button">' . __('Translate All Now', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
336
- //get_posts
337
  }
338
 
339
  /**
340
  * Insert supported languages section in admin page
341
  * @param string $data
342
  */
343
- function on_contentbox_languages_content($data) {
344
  // we need some styles
345
- echo '<style type="text/css">
346
- #sortable { list-style-type: none; margin: 0; padding: 0; }
347
- #sortable li, #default_lang li { margin: 3px 3px 3px 0; padding: 5px; float: ' . $this->localeleft . '; width: 190px; height: 14px;}
348
- .languages {
349
- -moz-border-radius: 6px;
350
- -khtml-border-radius: 6px;
351
- -webkit-border-radius: 6px;
352
- border-radius: 6px;
353
- border-style:solid;
354
- border-width:1px;
355
- line-height:1;
356
- }
357
- .highlight {
358
- -moz-border-radius: 6px;
359
- -khtml-border-radius: 6px;
360
- -webkit-border-radius: 6px;
361
- border-radius: 6px;
362
- border-style:solid;
363
- border-width:1px;
364
- line-height:1;
365
- background: #FFE45C;
366
- width: 190px;
367
- height: 14px;
368
- }
369
- .highlight_default {
370
- background: #FFE45C;
371
- }
372
- .active {
373
- background: #45FF51;
374
- }
375
- .translateable {
376
- background: #FFFF51;
377
- }
378
- .hidden {
379
- display: none;
380
- }
381
  .logoicon {
382
- float:' . $this->localeright . ';
383
- margin-left:2px;
384
- margin-top:-1px;
385
  }
386
- </style>';
387
 
388
  // this is the default language location
389
- list ($langname, $langorigname, $flag) = explode(",", transposh_consts::$languages[$this->transposh->options->get_default_language()]);
390
- echo '<div id="default_lang" style="overflow:auto;padding-bottom:10px;">' . __('Default Language (drag another language here to make it default)', TRANSPOSH_TEXT_DOMAIN);
391
- echo '<ul id="default_list"><li id="' . $this->transposh->options->get_default_language() . '" class="languages">'
 
392
  . transposh_utils::display_flag("{$this->transposh->transposh_plugin_url}/img/flags", $flag, $langorigname, false/* $this->transposh->options->get_widget_css_flags() */)
393
- . '<input type="hidden" name="languages[]" value="' . $this->transposh->options->get_default_language() . '" />'
394
  . '&nbsp;<span class="langname">' . $langorigname . '</span><span class="langname hidden">' . $langname . '</span></li>';
395
  echo '</ul></div>';
396
  // list of languages
397
- echo '<div style="overflow:auto; clear: both;">' . __('Available Languages (Click to toggle language state - Drag to sort in the widget)', TRANSPOSH_TEXT_DOMAIN);
 
398
  echo '<ul id="sortable">';
399
  foreach ($this->transposh->options->get_sorted_langs() as $langcode => $langrecord) {
 
400
  list ($langname, $langorigname, $flag) = explode(",", $langrecord);
401
- echo '<li id="' . $langcode . '" class="languages ' . ($this->transposh->options->is_viewable_language($langcode) || $this->transposh->options->is_default_language($langcode) ? "active" : "")
402
- . (!$this->transposh->options->is_viewable_language($langcode) && $this->transposh->options->is_editable_language($langcode) ? "translateable" : "") . '"><div style="float:' . $this->localeleft . '">'
403
  . transposh_utils::display_flag("{$this->transposh->transposh_plugin_url}/img/flags", $flag, false /* $langorigname,$this->transposh->options->get_widget_css_flags() */)
404
- . '<input type="hidden" name="languages[]" value="' . $langcode . ($this->transposh->options->is_viewable_language($langcode) ? ",v" : ",") . ($this->transposh->options->is_viewable_language($langcode) ? ",t" : ",") . '" />'
 
405
  . '&nbsp;<span class="langname">' . $langorigname . '</span><span class="langname hidden">' . $langname . '</span></div>';
406
  if (in_array($langcode, transposh_consts::$google_languages))
407
  echo '<img width="16" height="16" alt="g" class="logoicon" title="' . esc_attr__('Language supported by google translate', TRANSPOSH_TEXT_DOMAIN) . '" src="' . $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_IMG . '/googleicon.png"/>';
@@ -422,211 +398,354 @@ class transposh_plugin_admin {
422
  echo '<li><a href="#" id="selectall">' . __('Make all languages active', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
423
  echo '<li><a href="#" id="sortname">' . __('Sort by language name', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
424
  echo '<li><a href="#" id="sortiso">' . __('Sort by lSO code', TRANSPOSH_TEXT_DOMAIN) . '</a></li></ul>';
425
- echo __('Legend:', TRANSPOSH_TEXT_DOMAIN) . ' ' . __('Green - active', TRANSPOSH_TEXT_DOMAIN) . ', <span id="yellowcolor"' . ($this->transposh->options->get_anonymous_translation() ? ' class ="hidden"' : '') . '>' . __('Yellow - translateable (only translators will see this language)', TRANSPOSH_TEXT_DOMAIN) . ', </span>' . __('blank - inactive', TRANSPOSH_TEXT_DOMAIN);
426
  echo '</div>';
427
  }
428
 
429
- /**
430
- * uses a boolean expression to make checkboxes check
431
- * @param boolean $eval
432
- * @return string used for checkboxes
433
- */
434
- private function checked($eval) {
435
- return $eval ? 'checked="checked"' : '';
436
- }
437
 
438
- private function checkbox($id, $value, $head, $text) {
439
- echo '<h4>' . $head . '</h4>';
440
- echo '<input type="checkbox" value="1" name="' . $id . '" ' . $this->checked($value) . '/> ' . $text;
441
- }
442
-
443
- function on_contentbox_translation_content($data) {
444
  /*
445
  * Insert permissions section in the admin page
446
  */
447
- echo '<h4>' . __('Who can translate ?', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
448
  //display known roles and their permission to translate
449
  foreach ($GLOBALS['wp_roles']->get_names() as $role_name => $something) {
450
- echo '<input type="checkbox" value="1" name="' . $role_name . '" ' . $this->can_translate($role_name) .
451
  '/> ' . _x(ucfirst($role_name), 'User role') . '&nbsp;&nbsp;&nbsp;';
452
  }
453
  //Add our own custom role
454
- echo '<input id="tr_anon" type="checkbox" value="1" name="anonymous" ' . $this->can_translate('anonymous') . '/> ' . __('Anonymous', TRANSPOSH_TEXT_DOMAIN);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
455
 
456
  /*
457
- * Insert the option to enable/disable default language translation.
458
- * Disabled by default.
459
  */
460
- $this->checkbox(ENABLE_DEFAULT_TRANSLATE, $this->transposh->options->get_enable_default_translate(), __('Enable default language translation', TRANSPOSH_TEXT_DOMAIN), __('Allow translation of default language - useful for sites with more than one major language', TRANSPOSH_TEXT_DOMAIN));
 
 
 
461
 
462
- /**
463
- * Insert the option to enable search in translated languages
464
- * Enabled by default.
465
- * @since 0.3.6
466
- */
467
- $this->checkbox(ENABLE_SEARCH_TRANSLATE, $this->transposh->options->get_enable_search_translate(), __('Enable search in translated languages', TRANSPOSH_TEXT_DOMAIN), __('Allow search of translated languages (and the original language)', TRANSPOSH_TEXT_DOMAIN));
468
 
469
- /**
470
- * Insert the option to enable translation of urls
471
- * Disbaled by default.
472
- * @since 0.5.3
473
- */
474
- $this->checkbox(ENABLE_URL_TRANSLATE, $this->transposh->options->get_enable_url_translate(), __('Enable url translation', TRANSPOSH_TEXT_DOMAIN) . ' (' . __('experimental', TRANSPOSH_TEXT_DOMAIN), __('Allow translation of permalinks and urls', TRANSPOSH_TEXT_DOMAIN));
475
 
476
- /**
477
- * Insert the option to enable gettext integration
478
- * Enabled by default.
479
- * @since 0.6.4
480
- */
481
- $this->checkbox(TRANSPOSH_GETTEXT_INTEGRATION, $this->transposh->options->get_transposh_gettext_integration(), __('Enable gettext integration', TRANSPOSH_TEXT_DOMAIN) . ' (' . __('experimental', TRANSPOSH_TEXT_DOMAIN), __('Enable integration of Transposh with existing gettext interface (.po/.mo files)', TRANSPOSH_TEXT_DOMAIN));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
482
 
483
- /**
484
- * Insert the option to enable default locale override
485
- * Enabled by default.
486
- * @since 0.7.5
487
- */
488
- $this->checkbox(TRANSPOSH_DEFAULT_LOCALE_OVERRIDE, $this->transposh->options->get_transposh_default_locale_override(), __('Enable override for default locale', TRANSPOSH_TEXT_DOMAIN), __('Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)', TRANSPOSH_TEXT_DOMAIN));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  }
490
 
491
- function on_contentbox_auto_translation_content($data) {
 
 
 
 
 
 
492
 
493
- /*
494
- * Insert the option to enable/disable automatic translation.
495
- * Enabled by default.
496
- */
497
- $this->checkbox(ENABLE_AUTO_TRANSLATE, $this->transposh->options->get_enable_auto_translate(), __('Enable automatic translation', TRANSPOSH_TEXT_DOMAIN), __('Allow automatic translation of pages', TRANSPOSH_TEXT_DOMAIN));
498
 
499
- /**
500
- * Insert the option to enable/disable automatic translation upon publishing.
501
- * Disabled by default.
502
- * @since 0.3.5 */
503
- $this->checkbox(ENABLE_AUTO_POST_TRANSLATE, $this->transposh->options->get_enable_auto_post_translate(), __('Enable automatic translation after posting', TRANSPOSH_TEXT_DOMAIN), __('Do automatic translation immediately after a post has been published', TRANSPOSH_TEXT_DOMAIN));
504
 
505
- /**
506
- * Allow users to insert their own API keys
507
- */
508
- echo '<h4>' . "<img src=\"{$this->transposh->transposh_plugin_url}/img/bingicon.png\"> " . __('MSN API key', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
509
- echo __('API Key', TRANSPOSH_TEXT_DOMAIN) . ': <input type="text" size="35" class="regular-text" value="' . $this->transposh->options->get_msn_key() . '" id="' . MSN_TRANSLATE_KEY . '" name="' . MSN_TRANSLATE_KEY . '"/>';
510
 
511
- /**
512
- * Allow users to insert their own API keys
513
- */
514
- echo '<h4>' . "<img src=\"{$this->transposh->transposh_plugin_url}/img/googleicon.png\"> " . __('Google API key', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
515
- echo __('API Key', TRANSPOSH_TEXT_DOMAIN) . ': <input type="text" size="35" class="regular-text" value="' . $this->transposh->options->get_google_key() . '" id="' . GOOGLE_TRANSLATE_KEY . '" name="' . GOOGLE_TRANSLATE_KEY . '"/>';
516
 
517
- /*
518
- * Choose default translator... TODO (explain better in wiki)
519
- */
520
- echo '<h4>' . __('Select preferred auto translation engine', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
521
- echo '<label for="' . PREFERRED_TRANSLATOR . '">' . __('Translation engine:', TRANSPOSH_TEXT_DOMAIN) .
522
- '<select name="' . PREFERRED_TRANSLATOR . '">' .
523
- '<option value="1"' . ($this->transposh->options->get_preferred_translator() == 1 ? ' selected="selected"' : '') . '>' . __('Google', TRANSPOSH_TEXT_DOMAIN) . '</option>' .
524
- '<option value="2"' . ($this->transposh->options->get_preferred_translator() == 2 ? ' selected="selected"' : '') . '>' . __('Bing', TRANSPOSH_TEXT_DOMAIN) . '</option>' .
525
- '</select>' .
526
- '</label>';
527
  }
528
 
529
- function on_contentbox_professional_translation_content($data) {
530
- echo __('<a href="http://transposh.org/redir/oht">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide.', TRANSPOSH_TEXT_DOMAIN);
531
- echo '<br/>';
532
- echo __('One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations.', TRANSPOSH_TEXT_DOMAIN);
533
- echo '<h4>' . "<img src=\"{$this->transposh->transposh_plugin_url}/img/ohticon.png\"> " . __('One Hour Translation account ID', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
534
- echo __('Account ID', TRANSPOSH_TEXT_DOMAIN) . ': <input type="text" size="35" class="regular-text" value="' . $this->transposh->options->get_oht_id() . '" id="' . OHT_TRANSLATE_ID . '" name="' . OHT_TRANSLATE_ID . '"/>';
535
 
536
- /**
537
- * Allow users to insert their own API keys
538
- */
539
- echo '<h4>' . "<img src=\"{$this->transposh->transposh_plugin_url}/img/ohticon.png\"> " . __('One Hour Translation secret key', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
540
- echo __('API Key', TRANSPOSH_TEXT_DOMAIN) . ': <input type="text" size="35" class="regular-text" value="' . $this->transposh->options->get_oht_key() . '" id="' . OHT_TRANSLATE_KEY . '" name="' . OHT_TRANSLATE_KEY . '"/>';
541
 
542
- $oht = get_option(TRANSPOSH_OPTIONS_OHT, array());
543
- if (!empty($oht) && wp_next_scheduled('transposh_oht_event')) {
544
- $timeforevent = floor((max(array(wp_next_scheduled('transposh_oht_event') - time(), 0))) / 60);
545
- if ((max(array(wp_next_scheduled('transposh_oht_event') - time(), 0)))) {
546
- printf('<h4>' . __('%d Phrases currently queued for next job in ~%d minutes', TRANSPOSH_TEXT_DOMAIN) . '</h4>', sizeof($oht), $timeforevent);
547
- }
548
- }
549
- $ohtp = get_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, array());
550
- if (!empty($ohtp)) {
551
- printf('<h4>' . __('%d projects have been submitted and waiting for completion', TRANSPOSH_TEXT_DOMAIN) . '</h4>', sizeof($ohtp));
552
  }
553
  }
554
 
555
- function on_contentbox_frontend_content($data) {
556
- $this->checkbox(WIDGET_PROGRESSBAR, $this->transposh->options->get_widget_progressbar(), __('Show progress bar', TRANSPOSH_TEXT_DOMAIN), __('Show progress bar when a client triggers automatic translation', TRANSPOSH_TEXT_DOMAIN));
557
-
558
- $this->checkbox(WIDGET_ALLOW_SET_DEFLANG, $this->transposh->options->get_widget_allow_set_default_language(), __('Allow user to set current language as default', TRANSPOSH_TEXT_DOMAIN), __('Widget will allow setting this language as user default', TRANSPOSH_TEXT_DOMAIN));
559
-
560
- $this->checkbox(WIDGET_REMOVE_LOGO_FOR_AD, $this->transposh->options->get_widget_remove_logo(), __('Remove transposh logo (see <a href="http://transposh.org/logoterms">terms</a>)', TRANSPOSH_TEXT_DOMAIN), __('Transposh logo will not appear on widget', TRANSPOSH_TEXT_DOMAIN));
 
 
 
 
561
 
562
- echo '<h4>' . __('Edit interface (and progress bar) theme:', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
563
- echo '<label for="' . WIDGET_THEME . '">' . __('Edit interface (and progress bar) theme:', TRANSPOSH_TEXT_DOMAIN) .
564
- '<select id="transposh-style" name="' . WIDGET_THEME . '">';
565
- foreach (transposh_consts::$jqueryui_themes as $theme) {
566
- $selected = ($this->transposh->options->get_widget_theme() == $theme) ? ' selected="selected"' : '';
567
- echo "<option value=\"$theme\"$selected>{$theme}</option>";
 
 
 
 
 
 
 
568
  }
569
  echo '</select>' .
570
  '</label>';
571
  }
572
 
573
- function on_contentbox_generic_content($data) {
574
- /*
575
- * Insert the option to enable/disable rewrite of perlmalinks.
576
- * When disabled only parameters will be used to identify the current language.
577
- */
578
- $this->checkbox(ENABLE_PERMALINKS, $this->transposh->options->get_enable_permalinks(), __('Rewrite URLs', TRANSPOSH_TEXT_DOMAIN), __('Rewrite URLs to be search engine friendly, ' .
579
- 'e.g. (http://transposh.org/<strong>en</strong>). ' .
580
- 'Requires that permalinks will be enabled.', TRANSPOSH_TEXT_DOMAIN));
581
-
582
- /*
583
- * Insert the option to enable/disable pushing of scripts to footer.
584
- * Works on wordpress 2.8 and up (but we no longer care...)
585
- */
586
- $this->checkbox(ENABLE_FOOTER_SCRIPTS, $this->transposh->options->get_enable_footer_scripts(), __('Add scripts to footer', TRANSPOSH_TEXT_DOMAIN), __('Push transposh scripts to footer of page instead of header, makes pages load faster. ' .
587
- 'Requires that your theme should have proper footer support.', TRANSPOSH_TEXT_DOMAIN));
588
-
589
- /**
590
- * Insert the option to enable/disable language auto-detection
591
- * @since 0.3.8 */
592
- $this->checkbox(ENABLE_DETECT_LANG_AND_REDIRECT, $this->transposh->options->get_enable_detect_language(), __('Auto detect language for users', TRANSPOSH_TEXT_DOMAIN), __('This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. ' .
593
- 'This will redirect the first page accessed in the session to the same page with the detected language.', TRANSPOSH_TEXT_DOMAIN));
594
-
595
- /**
596
- * Insert the option to enable/disable statics collection
597
- * @since 0.7.6 */
598
- $this->checkbox(TRANSPOSH_COLLECT_STATS, $this->transposh->options->get_transposh_collect_stats(), __('Allow collecting usage statistics', TRANSPOSH_TEXT_DOMAIN), __('This option enables collection of statistics by transposh that will be used to improve the product.', TRANSPOSH_TEXT_DOMAIN));
599
-
600
- /* WIP2
601
- echo '<a href="http://transposh.org/services/index.php?flags='.$flags.'">Gen sprites</a>'; */
602
  }
603
 
604
- function on_contentbox_database_content($data) {
605
- /*
606
- * Insert buttons allowing removal of automated translations from database and maintenence
607
- */
608
- echo '<div style="margin:10px 0"><a id="transposh-clean-auto" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Delete all automated translations', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
609
- echo '<div style="margin:10px 0"><a id="transposh-clean-auto14" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Delete automated translations older than 14 days', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
610
- echo '<div style="margin:10px 0"><a id="transposh-maint" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Attempt to fix errors caused by previous versions - please backup first', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
611
- }
612
 
613
- function on_contentbox_community_content($data) {
614
- echo '<h4>' . __('Backup service for human translation', TRANSPOSH_TEXT_DOMAIN) . '</h4>';
615
- echo '<input type="radio" value="1" name="' . TRANSPOSH_BACKUP_SCHEDULE . '" ' . $this->checked($this->transposh->options->get_transposh_backup_schedule() == 1) . '/>' . __('Enable daily backup', TRANSPOSH_TEXT_DOMAIN) . '<br/>';
616
- echo '<input type="radio" value="2" name="' . TRANSPOSH_BACKUP_SCHEDULE . '" ' . $this->checked($this->transposh->options->get_transposh_backup_schedule() == 2) . '/>' . __('Enable live backup', TRANSPOSH_TEXT_DOMAIN) . '<br/>';
617
- echo '<input type="radio" value="0" name="' . TRANSPOSH_BACKUP_SCHEDULE . '" ' . $this->checked($this->transposh->options->get_transposh_backup_schedule() == 0) . '/>' . __('Disable backup (Can be run manually by clicking the button below)', TRANSPOSH_TEXT_DOMAIN) . '<br/>';
618
- echo __('Service Key:', TRANSPOSH_TEXT_DOMAIN) . ' <input type="text" size="32" class="regular-text" value="' . $this->transposh->options->get_transposh_key() . '" id="' . TRANSPOSH_KEY . '" name="' . TRANSPOSH_KEY . '"/> <a target="_blank" href="http://transposh.org/faq/#restore">' . __('How to restore?', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
619
- echo '<div id="backup_result"></div>';
620
- echo '<div style="margin:10px 0"><a id="transposh-backup" href="#" class="button">' . __('Do Backup Now', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
621
  }
622
 
623
- function add_warning($id, $message) {
624
  if (!$this->transposh->options->get_transposh_admin_hide_warning($id)) {
625
- echo '<div id="' . $id . '" class="error">' .
626
- '<span class="ui-icon ui-icon-alert" style="float: ' . $this->localeleft . '; margin-' . $this->localeright . ': .3em;"></span>' .
 
627
  $message .
628
- '<span class="warning-close ui-icon ui-icon-closethick" style="float:' . $this->localeright . '; margin-' . $this->localeleft . ': .3em;"></span>' .
629
- '</div>';
630
  }
631
  }
632
 
@@ -648,6 +767,11 @@ class transposh_plugin_admin {
648
  die(); // this is required to return a proper result
649
  }
650
 
 
 
 
 
 
651
  function on_ajax_tp_backup() {
652
  $this->transposh->run_backup();
653
  die();
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Sat, 22 Dec 2012 01:16:03 +0200
12
  */
13
 
14
  /*
27
  private $transposh;
28
  private $localeright = 'right';
29
  private $localeleft = 'left';
30
+ private $pages = array();
31
+ private $page = '';
32
 
33
  // constructor of class, PHP4 compatible construction for backward compatibility
34
  function transposh_plugin_admin(&$transposh) {
35
  $this->transposh = &$transposh;
36
+ // add our notices
37
+ add_action('admin_notices', array(&$this, 'notices'));
38
+ // register callback for admin menu setup
39
+ add_action('admin_menu', array(&$this, 'admin_menu'));
 
 
40
  // register the callback been used if options of page been submitted and needs to be processed
41
  add_action('admin_post_save_transposh', array(&$this, 'on_save_changes'));
42
  // allow language change for comments
43
  add_filter('comment_row_actions', array(&$this, 'comment_row_actions'), 999, 2);
44
  // register ajax callbacks
45
  add_action('wp_ajax_tp_close_warning', array(&$this, 'on_ajax_tp_close_warning'));
46
+ add_action('wp_ajax_tp_reset', array(&$this, 'on_ajax_tp_reset'));
47
  add_action('wp_ajax_tp_backup', array(&$this, 'on_ajax_tp_backup'));
48
  add_action('wp_ajax_tp_restore', array(&$this, 'on_ajax_tp_restore'));
49
  add_action('wp_ajax_tp_maint', array(&$this, 'on_ajax_tp_maint'));
60
  function can_translate($role_name) {
61
  if ($role_name != 'anonymous') {
62
  $role = $GLOBALS['wp_roles']->get_role($role_name);
63
+ if (isset($role) && $role->has_cap(TRANSLATOR)) return true;
 
64
  }
65
+ else return $this->transposh->options->allow_anonymous_translation;
 
66
  }
67
 
68
  /**
69
  * Handle newly posted admin options.
70
  */
71
  function update_admin_options() {
72
+ tp_logger('Enter', 1);
73
+ tp_logger($_POST);
74
+
75
+ switch ($_POST['page']) {
76
+ case 'tp_langs':
77
+ $viewable_langs = array();
78
+
79
+ // first set the default language
80
+ list ($langcode, ) = explode(",", $_POST['languages'][0]);
81
+ $this->transposh->options->default_language = $langcode;
82
+ unset($_POST['languages'][0]);
83
+
84
+ // update the list of supported/editable/sortable languages
85
+ tp_logger($_POST['languages']);
86
+ foreach ($_POST['languages'] as $lang) {
87
+ list ($langcode, $viewable) = explode(",", $lang);
88
+ $sorted_langs[$langcode] = $langcode;
89
+ if ($viewable) {
90
+ $viewable_langs[$langcode] = $langcode;
91
+ }
92
+ }
93
+
94
+ $this->transposh->options->viewable_languages = implode(',', $viewable_langs);
95
+ $this->transposh->options->sorted_languages = implode(',', $sorted_langs);
96
+ break;
97
+ case "tp_settings":
98
+ //update roles and capabilities
99
+ foreach ($GLOBALS['wp_roles']->get_names() as $role_name => $something) {
100
+ $role = $GLOBALS['wp_roles']->get_role($role_name);
101
+ if (isset($_POST[$role_name]) && $_POST[$role_name] == "1")
102
+ $role->add_cap(TRANSLATOR);
103
+ else $role->remove_cap(TRANSLATOR);
104
+ }
105
+
106
+ // anonymous needs to be handled differently as it does not have a role
107
+ tp_logger($_POST['anonymous']);
108
+ $this->transposh->options->allow_anonymous_translation = $_POST['anonymous'];
109
+
110
+ $this->transposh->options->enable_default_translate = TP_FROM_POST;
111
+ $this->transposh->options->enable_search_translate = TP_FROM_POST;
112
+ $this->transposh->options->transposh_gettext_integration = TP_FROM_POST;
113
+ $this->transposh->options->transposh_locale_override = TP_FROM_POST;
114
+
115
+ // We will need to refresh rewrite rules for the case someone enabled in wordpress first after transposh
116
+ // install and then went on to transposh and enabled, and this keeps us safe ;)
117
+ if ($this->transposh->options->enable_permalinks != $_POST[$this->transposh->options->enable_permalinks_o->get_name()]) {
118
+ $this->transposh->options->enable_permalinks = TP_FROM_POST;
119
+ $GLOBALS['wp_rewrite']->flush_rules();
120
+ }
121
+
122
+ $this->transposh->options->enable_footer_scripts = TP_FROM_POST;
123
+ $this->transposh->options->enable_detect_redirect = TP_FROM_POST;
124
+ $this->transposh->options->transposh_collect_stats = TP_FROM_POST;
125
+
126
+ $this->transposh->options->transposh_backup_schedule = TP_FROM_POST;
127
+
128
+ // handle the backup change, create the hook
129
+ wp_clear_scheduled_hook('transposh_backup_event');
130
+ if ($this->transposh->options->transposh_backup_schedule)
131
+ wp_schedule_event(time(), 'daily', 'transposh_backup_event');
132
+
133
+ $this->transposh->options->transposh_key = TP_FROM_POST;
134
+ break;
135
+ case "tp_engines":
136
+ $this->transposh->options->enable_autotranslate = TP_FROM_POST;
137
+ $this->transposh->options->enable_autoposttranslate = TP_FROM_POST;
138
+ $this->transposh->options->msn_key = TP_FROM_POST;
139
+ $this->transposh->options->google_key = TP_FROM_POST;
140
+ $this->transposh->options->preferred_translator = TP_FROM_POST;
141
+ $this->transposh->options->oht_id = TP_FROM_POST;
142
+ $this->transposh->options->oht_key = TP_FROM_POST;
143
+ break;
144
+ case "tp_widget":
145
+ $this->transposh->options->widget_progressbar = TP_FROM_POST;
146
+ $this->transposh->options->widget_allow_set_deflang = TP_FROM_POST;
147
+ $this->transposh->options->widget_remove_logo = TP_FROM_POST;
148
+ $this->transposh->options->widget_theme = TP_FROM_POST;
149
+ break;
150
+ case "tp_advanced":
151
+ $this->transposh->options->enable_url_translate = TP_FROM_POST;
152
+ $this->transposh->options->parser_dont_break_puncts = TP_FROM_POST;
153
+ $this->transposh->options->parser_dont_break_numbers = TP_FROM_POST;
154
+ $this->transposh->options->parser_dont_break_entities = TP_FROM_POST;
155
+ $this->transposh->options->debug_enable = TP_FROM_POST;
156
+ $this->transposh->options->debug_loglevel = TP_FROM_POST;
157
+ $this->transposh->options->debug_logfile = TP_FROM_POST;
158
+ $this->transposh->options->debug_remoteip = TP_FROM_POST;
159
+
160
+ break;
161
  }
162
 
163
+ /*
164
+ */
165
+ $this->transposh->options->update_options();
166
+ }
167
 
168
+ //add some help
169
+ function on_contextual_help() {
170
+ $text = '<p>' . __('Transposh makes your blog translatable', TRANSPOSH_TEXT_DOMAIN) . '</p>' .
171
+ '<p>' . __('For further help and assistance, please look at the following resources:', TRANSPOSH_TEXT_DOMAIN) . '</p>' .
172
+ '<a href="http://transposh.org/">' . __('Plugin homepage', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>' .
173
+ '<a href="http://transposh.org/faq/">' . __('Frequently asked questions', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>' .
174
+ '<a href="http://trac.transposh.org/">' . __('Development website', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
175
+ return $text;
176
+ }
177
+
178
+ function admin_menu() {
179
+ // key is page name, first is description, second is side menu description, third is if this contains settings
180
+ $this->pages = array(
181
+ 'tp_main' => array(__('Dashboard', TRANSPOSH_TEXT_DOMAIN)),
182
+ 'tp_langs' => array(__('Languages', TRANSPOSH_TEXT_DOMAIN), '', true),
183
+ 'tp_settings' => array(__('Settings', TRANSPOSH_TEXT_DOMAIN), '', true),
184
+ 'tp_engines' => array(__('Translation Engines', TRANSPOSH_TEXT_DOMAIN), '', true),
185
+ 'tp_widget' => array(__('Widgets settings', TRANSPOSH_TEXT_DOMAIN), '', true),
186
+ 'tp_advanced' => array(__('Advanced', TRANSPOSH_TEXT_DOMAIN), '', true),
187
+ 'tp_utils' => array(__('Utilities', TRANSPOSH_TEXT_DOMAIN)),
188
+ 'tp_about' => array(__('About', TRANSPOSH_TEXT_DOMAIN)),
189
+ 'tp_support' => array(__('Support', TRANSPOSH_TEXT_DOMAIN)),
190
+ );
191
+ if (isset($_GET['page']) && isset($this->pages[$_GET['page']]))
192
+ $this->page = $_GET['page'];
193
 
194
+ // First param is page title, second is menu title
195
+ add_menu_page(__('Transposh', TRANSPOSH_TEXT_DOMAIN), __('Transposh', TRANSPOSH_TEXT_DOMAIN), 'manage_options', 'tp_main', '', $this->transposh->transposh_plugin_url . "/img/tplogo.png");
 
 
 
 
 
 
 
 
196
 
197
+ $submenu_pages = array();
198
+ foreach ($this->pages as $slug => $titles) {
199
+ if (!isset($titles[1]) || !$titles[1]) {
200
+ $titles[1] = $titles[0];
201
  }
202
+ $submenu_pages[] = add_submenu_page('tp_main', $titles[0] . ' | ' . __('Transposh', TRANSPOSH_TEXT_DOMAIN), $titles[1], 'manage_options', $slug, array(&$this, 'options'));
203
  }
204
 
205
+ if (current_user_can('manage_options')) {
206
+ /**
207
+ * Only admin can modify settings
208
+ */
209
+ foreach ($submenu_pages as $submenu_page) {
210
+ add_action('load-' . $submenu_page, array(&$this, 'load'));
211
+ add_action('admin_print_styles-' . $submenu_page, array(&$this, 'admin_print_styles'));
212
+ add_action('admin_print_scripts-' . $submenu_page, array(&$this, 'admin_print_scripts'));
213
+ }
 
214
  }
215
+ // DOC
216
+ add_action('load-edit-comments.php', array(&$this, 'on_load_comments_page'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  }
218
 
219
+ /**
220
+ * Print styles
221
+ *
222
+ * @return void
223
+ */
224
+ function admin_print_styles() {
225
+
226
  }
227
 
228
+ /**
229
+ * Print scripts
230
+ *
231
+ * @return void
232
+ */
233
+ function admin_print_scripts() {
234
+ switch ($this->page) {
235
+ case 'tp_main':
236
+ wp_enqueue_script('common');
237
+ wp_enqueue_script('wp-lists');
238
+ wp_enqueue_script('postbox');
239
+ break;
240
+ case 'tp_langs':
241
+ wp_enqueue_script('jquery-ui-droppable');
242
+ wp_enqueue_script('jquery-ui-sortable');
243
+ wp_enqueue_script('transposh_admin_languages', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/admin/languages.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
244
+ break;
245
+ case 'tp_utils':
246
+ wp_enqueue_script('transposh_admin_utils', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/admin/utils.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
247
+ // NOTE: When wordpress will have .css for the jQueryUI we'll be able to use the built-in jqueryui
248
+ // wp_enqueue_script('jquery-ui-progressbar');
249
+
250
+ wp_enqueue_style('jqueryui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/' . JQUERYUI_VER . '/themes/ui-lightness/jquery-ui.css', array(), JQUERYUI_VER);
251
+ wp_enqueue_script('jqueryui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/' . JQUERYUI_VER . '/jquery-ui.min.js', array('jquery'), JQUERYUI_VER, true);
252
+ wp_enqueue_script('transposh_backend', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/admin/backendtranslate.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
253
+ $script_params = array(
254
+ 'l10n_print_after' =>
255
+ 't_be.g_langs = ' . json_encode(transposh_consts::$google_languages) . ';' .
256
+ 't_be.m_langs = ' . json_encode(transposh_consts::$bing_languages) . ';' .
257
+ 't_be.a_langs = ' . json_encode(transposh_consts::$apertium_languages) . ';'
258
+ );
259
+ wp_localize_script("transposh_backend", "t_be", $script_params);
260
  }
261
+ wp_enqueue_style('transposh_admin', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_CSS . '/admin.css'); ///, array('transposh'), TRANSPOSH_PLUGIN_VER, true)
262
  }
263
 
264
+ function load() {
265
+ // figure out page and other stuff...
266
+ //echo 'loaded!?';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  global $wp_locale;
268
  if ($wp_locale->text_direction == 'rtl') {
269
  $this->localeleft = 'right';
270
  $this->localeright = 'left';
271
  }
272
 
273
+ // the followings are integrations with the wordpress admin interface
274
+ $screen = get_current_screen();
275
+ $screen->add_help_tab(array(
276
+ 'id' => 'additional-transposh-help', // This should be unique for the screen.
277
+ 'title' => __('Transposh Help', TRANSPOSH_TEXT_DOMAIN),
278
+ // retrieve the function output and set it as tab content
279
+ 'content' => $this->on_contextual_help()));
280
+ if ($this->page == 'tp_main') {
281
+ add_screen_option('layout_columns', array('max' => 4, 'default' => 2));
282
+ add_meta_box('transposh-sidebox-news', __('Plugin news', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_sidebox_news_content'), '', 'normal', 'core');
283
+ add_meta_box('transposh-sidebox-stats', __('Plugin stats', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_sidebox_stats_content'), '', 'column3', 'core');
284
+ // add_meta_box('transposh-contentbox-community', __('Transposh community features', TRANSPOSH_TEXT_DOMAIN), array(&$this, 'on_contentbox_community_content'), '', 'normal', 'core');
285
+ }
286
+ }
287
 
288
+ function options() {
289
+ echo '<div class="wrap">';
290
+ screen_icon('transposh-logo');
 
291
 
292
+ echo '<h2 class="nav-tab-wrapper">';
293
+ foreach ($this->pages as $slug => $titles) {
294
+ $active = ($slug === $this->page) ? ' nav-tab-active' : '';
295
+ echo '<a href="admin.php?page=' . $slug . '" class="nav-tab' . $active . '">';
296
+ echo esc_html($titles[0]);
297
+ echo '</a>';
298
  }
299
+ echo '</h2>';
300
+
301
+ // do we need a form?
302
+ if (isset($this->pages[$this->page][2]) && $this->pages[$this->page][2]) { //$this->contains_settings) {
303
+ echo '<form action="admin-post.php" method="post">';
304
+ echo '<input type="hidden" name="action" value="save_transposh"/>';
305
+ echo '<input type="hidden" name="page" value="' . $this->page . '"/>';
306
+ echo wp_nonce_field(TR_NONCE);
307
  }
308
 
309
+ // the page content
310
+ if ($this->page) call_user_func(array(&$this, $this->page));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
 
312
+ // Add submission for pages that can be modified
313
+ if (isset($this->pages[$this->page][2]) && $this->pages[$this->page][2]) { //$this->contains_settings) {
314
+ echo '<p>';
315
+ echo'<input type="submit" value="' . esc_attr__('Save Changes', TRANSPOSH_TEXT_DOMAIN) . '" class="button-primary" name="Submit"/>';
316
+ echo'</p>';
317
+ echo'</form>';
318
+ }
319
 
320
+ echo '</div>';
321
+ }
322
 
323
+ // not sure if this is the best place for this function, but heck
324
+ function on_load_comments_page() {
325
+ wp_enqueue_script('transposhcomments', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/admin/commentslang.js', array('jquery'), TRANSPOSH_PLUGIN_VER);
326
  }
327
 
328
+ //executed to show the plugins complete admin page
329
+ function tp_main() {
330
+ echo '<div id="dashboard-widgets-wrap">';
331
 
332
+ /** Load WordPress dashboard API */
333
+ require_once(ABSPATH . 'wp-admin/includes/dashboard.php');
 
 
 
 
 
 
 
334
 
335
+ wp_enqueue_script('dashboard');
336
+ wp_admin_css('dashboard');
337
+ add_thickbox();
 
 
338
 
339
+ wp_dashboard();
 
 
340
 
341
+ echo '<div class="clear"></div>';
 
 
 
 
 
342
  }
343
 
344
  /**
345
  * Insert supported languages section in admin page
346
  * @param string $data
347
  */
348
+ function tp_langs() {
349
  // we need some styles
350
+ global $wp_locale;
351
+ if ($wp_locale->text_direction == 'rtl') {
352
+ echo '<style type="text/css">
353
+ #sortable li, #default_lang li { float: right !important;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  .logoicon {
355
+ float:left !important;
356
+ }
357
+ </style>';
358
  }
 
359
 
360
  // this is the default language location
361
+ list ($langname, $langorigname, $flag) = explode(",", transposh_consts::$languages[$this->transposh->options->default_language]);
362
+ echo '<div id="default_lang" style="overflow:auto;padding-bottom:10px;">';
363
+ $this->header(__('Default Language (drag another language here to make it default)', TRANSPOSH_TEXT_DOMAIN));
364
+ echo '<ul id="default_list"><li id="' . $this->transposh->options->default_language . '" class="languages">'
365
  . transposh_utils::display_flag("{$this->transposh->transposh_plugin_url}/img/flags", $flag, $langorigname, false/* $this->transposh->options->get_widget_css_flags() */)
366
+ . '<input type="hidden" name="languages[]" value="' . $this->transposh->options->default_language . '" />'
367
  . '&nbsp;<span class="langname">' . $langorigname . '</span><span class="langname hidden">' . $langname . '</span></li>';
368
  echo '</ul></div>';
369
  // list of languages
370
+ echo '<div style="overflow:auto; clear: both;">';
371
+ $this->header(__('Available Languages (Click to toggle language state - Drag to sort in the widget)', TRANSPOSH_TEXT_DOMAIN));
372
  echo '<ul id="sortable">';
373
  foreach ($this->transposh->options->get_sorted_langs() as $langcode => $langrecord) {
374
+ tp_logger($langcode, 5);
375
  list ($langname, $langorigname, $flag) = explode(",", $langrecord);
376
+ echo '<li id="' . $langcode . '" class="languages ' . ($this->transposh->options->is_active_language($langcode) || $this->transposh->options->is_default_language($langcode) ? "lng_active" : "")
377
+ . '"><div style="float:' . $this->localeleft . '">'
378
  . transposh_utils::display_flag("{$this->transposh->transposh_plugin_url}/img/flags", $flag, false /* $langorigname,$this->transposh->options->get_widget_css_flags() */)
379
+ // DOC THIS BUGBUG fix!
380
+ . '<input type="hidden" name="languages[]" value="' . $langcode . ($this->transposh->options->is_active_language($langcode) ? ",v" : ",") . '" />'
381
  . '&nbsp;<span class="langname">' . $langorigname . '</span><span class="langname hidden">' . $langname . '</span></div>';
382
  if (in_array($langcode, transposh_consts::$google_languages))
383
  echo '<img width="16" height="16" alt="g" class="logoicon" title="' . esc_attr__('Language supported by google translate', TRANSPOSH_TEXT_DOMAIN) . '" src="' . $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_IMG . '/googleicon.png"/>';
398
  echo '<li><a href="#" id="selectall">' . __('Make all languages active', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
399
  echo '<li><a href="#" id="sortname">' . __('Sort by language name', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
400
  echo '<li><a href="#" id="sortiso">' . __('Sort by lSO code', TRANSPOSH_TEXT_DOMAIN) . '</a></li></ul>';
 
401
  echo '</div>';
402
  }
403
 
404
+ // Show normal settings
405
+ function tp_settings() {
406
+ $this->section(__('Translation related settings', TRANSPOSH_TEXT_DOMAIN));
 
 
 
 
 
407
 
 
 
 
 
 
 
408
  /*
409
  * Insert permissions section in the admin page
410
  */
411
+ $this->header(__('Who can translate ?', TRANSPOSH_TEXT_DOMAIN));
412
  //display known roles and their permission to translate
413
  foreach ($GLOBALS['wp_roles']->get_names() as $role_name => $something) {
414
+ echo '<input type="checkbox" value="1" name="' . $role_name . '" ' . checked($this->can_translate($role_name), true, false) .
415
  '/> ' . _x(ucfirst($role_name), 'User role') . '&nbsp;&nbsp;&nbsp;';
416
  }
417
  //Add our own custom role
418
+ echo '<input id="tr_anon" type="checkbox" value="1" name="anonymous" ' . checked($this->can_translate('anonymous'), true, false) . '/> ' . __('Anonymous', TRANSPOSH_TEXT_DOMAIN);
419
+
420
+ $this->checkbox($this->transposh->options->enable_default_translate_o, __('Enable default language translation', TRANSPOSH_TEXT_DOMAIN)
421
+ , __('Allow translation of default language - useful for sites with more than one major language', TRANSPOSH_TEXT_DOMAIN));
422
+ $this->checkbox($this->transposh->options->enable_search_translate_o, __('Enable search in translated languages', TRANSPOSH_TEXT_DOMAIN)
423
+ , __('Allow search of translated languages (and the original language)', TRANSPOSH_TEXT_DOMAIN));
424
+ $this->checkbox($this->transposh->options->transposh_gettext_integration_o, __('Enable gettext integration', TRANSPOSH_TEXT_DOMAIN)
425
+ , __('Enable integration of Transposh with existing gettext interface (.po/.mo files)', TRANSPOSH_TEXT_DOMAIN));
426
+
427
+ $this->checkbox($this->transposh->options->transposh_locale_override_o, __('Enable override for default locale', TRANSPOSH_TEXT_DOMAIN)
428
+ , __('Enable overriding the default locale that is set in WP_LANG on default languages pages (such as untranslated pages and admin pages)', TRANSPOSH_TEXT_DOMAIN));
429
+ $this->sectionstop();
430
+
431
+ $this->section(__('General settings', TRANSPOSH_TEXT_DOMAIN));
432
+ $this->checkbox($this->transposh->options->enable_permalinks_o, __('Rewrite URLs', TRANSPOSH_TEXT_DOMAIN)
433
+ , __('Rewrite URLs to be search engine friendly, ' .
434
+ 'e.g. (http://transposh.org/<strong>en</strong>). ' .
435
+ 'Requires that permalinks will be enabled.', TRANSPOSH_TEXT_DOMAIN));
436
+ $this->checkbox($this->transposh->options->enable_footer_scripts_o, __('Add scripts to footer', TRANSPOSH_TEXT_DOMAIN)
437
+ , __('Push transposh scripts to footer of page instead of header, makes pages load faster. ' .
438
+ 'Requires that your theme should have proper footer support.', TRANSPOSH_TEXT_DOMAIN));
439
+ $this->checkbox($this->transposh->options->enable_detect_redirect_o, __('Auto detect language for users', TRANSPOSH_TEXT_DOMAIN)
440
+ , __('This enables auto detection of language used by the user as defined in the ACCEPT_LANGUAGES they send. ' .
441
+ 'This will redirect the first page accessed in the session to the same page with the detected language.', TRANSPOSH_TEXT_DOMAIN));
442
+ $this->checkbox($this->transposh->options->transposh_collect_stats_o, __('Allow collecting usage statistics', TRANSPOSH_TEXT_DOMAIN)
443
+ , __('This option enables collection of statistics by transposh that will be used to improve the product.', TRANSPOSH_TEXT_DOMAIN));
444
+
445
+ /* WIP2
446
+ echo '<a href="http://transposh.org/services/index.php?flags='.$flags.'">Gen sprites</a>'; */
447
+ $this->sectionstop();
448
+
449
+ $this->section(__('Backup service settings', TRANSPOSH_TEXT_DOMAIN));
450
+ echo '<input type="radio" value="1" name="' . $this->transposh->options->transposh_backup_schedule_o->get_name() . '" ' . checked($this->transposh->options->transposh_backup_schedule, 1, false) . '/>' . __('Enable daily backup', TRANSPOSH_TEXT_DOMAIN) . '<br/>';
451
+ echo '<input type="radio" value="2" name="' . $this->transposh->options->transposh_backup_schedule_o->get_name() . '" ' . checked($this->transposh->options->transposh_backup_schedule, 2, false) . '/>' . __('Enable live backup', TRANSPOSH_TEXT_DOMAIN) . '<br/>';
452
+ echo '<input type="radio" value="0" name="' . $this->transposh->options->transposh_backup_schedule_o->get_name() . '" ' . checked($this->transposh->options->transposh_backup_schedule, 0, false) . '/>' . __('Disable backup (Can be run manually by clicking the button below)', TRANSPOSH_TEXT_DOMAIN) . '<br/>';
453
+ echo __('Service Key:', TRANSPOSH_TEXT_DOMAIN) . ' <input type="text" size="32" class="regular-text" ' . $this->transposh->options->transposh_key_o->post_value_id_name() . '/><a target="_blank" href="http://transposh.org/faq/#restore">' . __('How to restore?', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
454
+ $this->sectionstop();
455
+ }
456
+
457
+ function tp_engines() {
458
+ $this->section(__('Automatic Translation Settings', TRANSPOSH_TEXT_DOMAIN));
459
+ $this->checkbox($this->transposh->options->enable_autotranslate_o, __('Enable automatic translation', TRANSPOSH_TEXT_DOMAIN)
460
+ , __('Allow automatic translation of pages', TRANSPOSH_TEXT_DOMAIN));
461
+ $this->checkbox($this->transposh->options->enable_autoposttranslate_o, __('Enable automatic translation after posting', TRANSPOSH_TEXT_DOMAIN)
462
+ , __('Do automatic translation immediately after a post has been published', TRANSPOSH_TEXT_DOMAIN));
463
+ $this->textinput($this->transposh->options->msn_key_o
464
+ , array('bingicon.png', __('MSN API key', TRANSPOSH_TEXT_DOMAIN))
465
+ , __('API Key', TRANSPOSH_TEXT_DOMAIN));
466
+ $this->textinput($this->transposh->options->google_key_o
467
+ , array('googleicon.png', __('Google API key', TRANSPOSH_TEXT_DOMAIN))
468
+ , __('API Key', TRANSPOSH_TEXT_DOMAIN));
469
+ $this->select($this->transposh->options->preferred_translator_o, __('Select preferred auto translation engine', TRANSPOSH_TEXT_DOMAIN)
470
+ , __('Translation engine:', TRANSPOSH_TEXT_DOMAIN), array(
471
+ 1 => __('Google', TRANSPOSH_TEXT_DOMAIN),
472
+ 2 => __('Bing', TRANSPOSH_TEXT_DOMAIN),
473
+ ));
474
+ $this->sectionstop();
475
+
476
+ $this->section(__('Professional Translation Settings', TRANSPOSH_TEXT_DOMAIN), __('<a href="http://transposh.org/redir/oht">One Hour Translation</a>, is the largest professional translation service online, with thousands of business customers, including 57% of the Fortune 500 companies, and over 15000 translators worldwide.', TRANSPOSH_TEXT_DOMAIN) .
477
+ '<br/>' .
478
+ __('One Hour Translation provides high-quality, fast professional translation to/from any language, and has specific domain expertise in SW localization, technical, business, and legal translations.', TRANSPOSH_TEXT_DOMAIN));
479
+
480
+
481
+ $this->textinput($this->transposh->options->oht_id_o
482
+ , array('ohticon.png', __('One Hour Translation account ID', TRANSPOSH_TEXT_DOMAIN))
483
+ , __('Account ID', TRANSPOSH_TEXT_DOMAIN));
484
+
485
+ $this->textinput($this->transposh->options->oht_key_o
486
+ , array('ohticon.png', __('One Hour Translation secret key', TRANSPOSH_TEXT_DOMAIN))
487
+ , __('Account ID', TRANSPOSH_TEXT_DOMAIN));
488
+
489
+ $oht = get_option(TRANSPOSH_OPTIONS_OHT, array());
490
+ if (!empty($oht) && wp_next_scheduled('transposh_oht_event')) {
491
+ $timeforevent = floor((max(array(wp_next_scheduled('transposh_oht_event') - time(), 0))) / 60);
492
+ if ((max(array(wp_next_scheduled('transposh_oht_event') - time(), 0)))) {
493
+ $this->header(sprintf(__('%d phrases currently queued for next job in ~%d minutes', TRANSPOSH_TEXT_DOMAIN), sizeof($oht), $timeforevent));
494
+ }
495
+ }
496
+ $ohtp = get_option(TRANSPOSH_OPTIONS_OHT_PROJECTS, array());
497
+ if (!empty($ohtp)) {
498
+ $this->header(sprintf(__('%d projects have been submitted and waiting for completion', TRANSPOSH_TEXT_DOMAIN), sizeof($ohtp)));
499
+ }
500
+ $this->sectionstop();
501
+ }
502
+
503
+ function tp_widget() {
504
+ $this->checkbox($this->transposh->options->widget_progressbar_o, __('Show progress bar', TRANSPOSH_TEXT_DOMAIN)
505
+ , __('Show progress bar when a client triggers automatic translation', TRANSPOSH_TEXT_DOMAIN));
506
+
507
+ $this->checkbox($this->transposh->options->widget_allow_set_deflang_o, __('Allow user to set current language as default', TRANSPOSH_TEXT_DOMAIN)
508
+ , __('Widget will allow setting this language as user default', TRANSPOSH_TEXT_DOMAIN));
509
+
510
+ $this->checkbox($this->transposh->options->widget_remove_logo_o, __('Remove transposh logo (see <a href="http://transposh.org/logoterms">terms</a>)', TRANSPOSH_TEXT_DOMAIN)
511
+ , __('Transposh logo will not appear on widget', TRANSPOSH_TEXT_DOMAIN));
512
+
513
+ $this->select($this->transposh->options->widget_theme_o, __('Edit interface (and progress bar) theme:', TRANSPOSH_TEXT_DOMAIN), __('Edit interface (and progress bar) theme:', TRANSPOSH_TEXT_DOMAIN), transposh_consts::$jqueryui_themes, false);
514
+ }
515
+
516
+ function tp_advanced() {
517
+ $this->checkbox($this->transposh->options->enable_url_translate_o, __('Enable url translation', TRANSPOSH_TEXT_DOMAIN) . ' (' . __('experimental', TRANSPOSH_TEXT_DOMAIN) . ')', __('Allow translation of permalinks and urls', TRANSPOSH_TEXT_DOMAIN));
518
+
519
+ $this->section(__('Parser related settings', TRANSPOSH_TEXT_DOMAIN)
520
+ , __('This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing.', TRANSPOSH_TEXT_DOMAIN));
521
+ $this->checkbox($this->transposh->options->parser_dont_break_puncts_o, __('Disable punctuations break', TRANSPOSH_TEXT_DOMAIN)
522
+ , __('The parser will not break text into phrases when encountering punctuations such as dots', TRANSPOSH_TEXT_DOMAIN));
523
+ $this->checkbox($this->transposh->options->parser_dont_break_numbers_o, __('Disable numbers break', TRANSPOSH_TEXT_DOMAIN)
524
+ , __('The parser will not break text into phrases when encountering numbers', TRANSPOSH_TEXT_DOMAIN));
525
+ $this->checkbox($this->transposh->options->parser_dont_break_entities_o, __('Disable html entities break', TRANSPOSH_TEXT_DOMAIN)
526
+ , __('The parser will not break text into phrases when encountering html entities', TRANSPOSH_TEXT_DOMAIN));
527
+ $this->sectionstop();
528
+ $this->section(__('Debug settings', TRANSPOSH_TEXT_DOMAIN)
529
+ , __('This is extremely dangerous, will break your current translations, and might cause severe hickups, only proceed if you really know what you are doing.', TRANSPOSH_TEXT_DOMAIN));
530
+ $this->checkbox($this->transposh->options->debug_enable_o, __('Enable debugging', TRANSPOSH_TEXT_DOMAIN)
531
+ , __('Enable running of Transposh internal debug functions', TRANSPOSH_TEXT_DOMAIN));
532
+ $this->textinput($this->transposh->options->debug_logfile_o, '', __('Log file name', TRANSPOSH_TEXT_DOMAIN));
533
+ $this->select($this->transposh->options->debug_loglevel_o, __('Level of logging', TRANSPOSH_TEXT_DOMAIN), __('Level of logging', TRANSPOSH_TEXT_DOMAIN), array(
534
+ 1 => __('Critical', TRANSPOSH_TEXT_DOMAIN),
535
+ 2 => __('Important', TRANSPOSH_TEXT_DOMAIN),
536
+ 3 => __('Warning', TRANSPOSH_TEXT_DOMAIN),
537
+ 4 => __('Information', TRANSPOSH_TEXT_DOMAIN),
538
+ 5 => __('Debug', TRANSPOSH_TEXT_DOMAIN),
539
+ ));
540
+ $this->textinput($this->transposh->options->debug_remoteip_o, '', sprintf(__('Remote debug IP (Your current IP is %s)', TRANSPOSH_TEXT_DOMAIN), $_SERVER['REMOTE_ADDR']));
541
+ $this->sectionstop();
542
+ }
543
+
544
+ //
545
+ function tp_utils() {
546
+ echo '<div id="backup_result"></div>';
547
+ echo '<div style="margin:10px 0"><a id="transposh-backup" href="#" class="button">' . __('Do Backup Now', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
548
 
549
  /*
550
+ * Insert buttons allowing removal of automated translations from database and maintenence
 
551
  */
552
+ echo '<div style="margin:10px 0"><a id="transposh-reset-options" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Reset configuration to default (saves keys)', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
553
+ echo '<div style="margin:10px 0"><a id="transposh-clean-auto" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Delete all automated translations', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
554
+ echo '<div style="margin:10px 0"><a id="transposh-clean-auto14" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Delete automated translations older than 14 days', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
555
+ echo '<div style="margin:10px 0"><a id="transposh-maint" href="#" nonce="' . wp_create_nonce('transposh-clean') . '" class="button">' . __('Attempt to fix errors caused by previous versions - please backup first', TRANSPOSH_TEXT_DOMAIN) . '</a></div>';
556
 
557
+ echo '<div id="progress_bar_all"></div><div id="tr_translate_title"></div>';
558
+ echo '<div id="tr_loading" style="margin: 0 0 10px 0">' . __('Translate by clicking the button below', TRANSPOSH_TEXT_DOMAIN) . '</div>';
559
+ echo '<div id="tr_allmsg" style="margin: 0 0 10px 0"></div>';
560
+ echo '<a id="transposh-translate" href="#" onclick="return false;" class="button">' . __('Translate All Now', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
561
+ //get_posts
562
+ }
563
 
564
+ function tp_about() {
 
 
 
 
 
565
 
566
+ $this->section(__('About Transposh', TRANSPOSH_TEXT_DOMAIN));
567
+ echo __('Transposh was started at 2008 and is dedicated to provide tools to ease website translation.', TRANSPOSH_TEXT_DOMAIN);
568
+ echo '<br/>';
569
+ echo __('Learn more about us in the following online presenses', TRANSPOSH_TEXT_DOMAIN);
570
+ echo '<ul style="list-style-type:disc;margin-' . $this->localeleft . ':20px;">';
571
+ echo '<li><a href="http://transposh.org">';
572
+ echo __('Our website', TRANSPOSH_TEXT_DOMAIN);
573
+ echo '</a></li><li><a href="http://blog.transposh.com">';
574
+ echo __('Our blog', TRANSPOSH_TEXT_DOMAIN);
575
+ echo '</a></li><li><a href="http://twitter.com/transposh">';
576
+ echo __('Our twitter account (feel free to follow!)', TRANSPOSH_TEXT_DOMAIN);
577
+ echo '</a></li><li><a href="https://www.facebook.com/transposh">';
578
+ echo __('Our facebook page (feel free to like!)', TRANSPOSH_TEXT_DOMAIN);
579
+ echo '</a></li><li><a href="https://plus.google.com/103680503574339351392/posts">';
580
+ echo __('Our google plus page (add us to your circles!)', TRANSPOSH_TEXT_DOMAIN);
581
+ echo '</a></li><li><a href="http://www.youtube.com/user/transposh">';
582
+ echo __('Our youtube channel', TRANSPOSH_TEXT_DOMAIN);
583
+ echo '</a></li></ul>';
584
+
585
+
586
+ $this->sectionstop();
587
+ }
588
+
589
+ function tp_support() {
590
+ echo '<p>';
591
+ $this->section(__('Transposh support', TRANSPOSH_TEXT_DOMAIN)
592
+ , __('Have you encountered any problem with our plugin and need our help?', TRANSPOSH_TEXT_DOMAIN) . '<br>' .
593
+ __('Do you need to ask us any question?', TRANSPOSH_TEXT_DOMAIN) . '<br>' .
594
+ __('You have two options:', TRANSPOSH_TEXT_DOMAIN) . '<br>');
595
+ $this->sectionstop();
596
+ $this->header(__('Our free support', TRANSPOSH_TEXT_DOMAIN));
597
+ echo '<div class="col-wrap">';
598
+ echo __('There are many channels to reach us and we do try to help as fast as we can', TRANSPOSH_TEXT_DOMAIN) . '<br>';
599
+ echo __('You can contact us through our contact form on our web site', TRANSPOSH_TEXT_DOMAIN) . '<br>';
600
+ echo __('Create a ticket for us if you have found any bugs', TRANSPOSH_TEXT_DOMAIN) . '<br>';
601
+ echo __('Reach us via different forums:', TRANSPOSH_TEXT_DOMAIN);
602
+ echo '<ul style="list-style-type:disc;margin-' . $this->localeleft . ':20px;">';
603
+ echo '<li><a href="http://wordpress.org/support/plugin/transposh-translation-filter-for-wordpress">';
604
+ echo __('Our support forum on wordpress.org', TRANSPOSH_TEXT_DOMAIN);
605
+ echo '<li><a href="http://trac.transposh.org">';
606
+ echo __('Our internal development site, with wiki and tickets', TRANSPOSH_TEXT_DOMAIN);
607
+ echo '</a></li><li><a href="https://www.facebook.com/transposh">';
608
+ echo __('Our facebook page', TRANSPOSH_TEXT_DOMAIN);
609
+ echo '</a></li><li><a href="https://plus.google.com/103680503574339351392/posts">';
610
+ echo __('Our google plus page', TRANSPOSH_TEXT_DOMAIN);
611
+ echo '</a></li></ul>';
612
+ echo __('Contact us directly via:', TRANSPOSH_TEXT_DOMAIN);
613
+ echo '<ul style="list-style-type:disc;margin-' . $this->localeleft . ':20px;">';
614
+ echo '<li><a href="http://transposh.org/contact-us/">' . __('Our contact form', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
615
+ echo '<li><a href="http://transposh.org/redir/newfeature">' . __('Suggest a Feature', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
616
+ echo '<li><a href="http://transposh.org/redir/newticket">' . __('Report a Bug', TRANSPOSH_TEXT_DOMAIN) . '</a></li>';
617
+ echo '</ul>';
618
 
619
+ echo '</div>';
620
+ $this->header(__('Professional support option', TRANSPOSH_TEXT_DOMAIN));
621
+ echo '<div class="col-wrap">';
622
+ echo __('For the low low price of $99, we will take express action on your request. By express we mean that your issue will become our top priority, and will resolve ASAP', TRANSPOSH_TEXT_DOMAIN) . '<br>';
623
+ echo __('This includes helping with various bugs, basic theme/plugins conflicts, or just telling you where the ON button is', TRANSPOSH_TEXT_DOMAIN) . '<br>';
624
+ echo __('Full money back guarentee! If your problem remains unresolved or you are simply unhappy we will refund your paypal account as soon as you ask (as long as paypal allows it, don\'t come to us three years later!)', TRANSPOSH_TEXT_DOMAIN) . '<br>';
625
+ echo __('So hit the following button. Thanks!', TRANSPOSH_TEXT_DOMAIN) . '<br>';
626
+ echo '<br/>
627
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
628
+ <input type="hidden" name="cmd" value="_s-xclick">
629
+ <input type="hidden" name="hosted_button_id" value="KCCE87P7B2MG8">
630
+ <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynow_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
631
+ <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
632
+ </form>
633
+ ';
634
+ echo '</div>';
635
+ $this->header(__('Donations', TRANSPOSH_TEXT_DOMAIN));
636
+ echo '<div class="col-wrap">';
637
+ echo __('If you just want to show that you care, this is the button for you. But please think twice before doing this. It will make us happier if you just do something nice for someone in your area, contribute to a local charity, and let us know that you did that :)', TRANSPOSH_TEXT_DOMAIN) . '<br>';
638
+ echo '<br/>
639
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
640
+ <input type="hidden" name="cmd" value="_s-xclick">
641
+ <input type="hidden" name="hosted_button_id" value="4E52WJ8WDK79J">
642
+ <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
643
+ <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
644
+ </form>';
645
+ echo '</div>';
646
  }
647
 
648
+ // executed if the post arrives initiated by pressing the submit button of form
649
+ function on_save_changes() {
650
+ //user permission check
651
+ if (!current_user_can('manage_options'))
652
+ wp_die(__('Problems?', TRANSPOSH_TEXT_DOMAIN));
653
+ // cross check the given referer
654
+ check_admin_referer(TR_NONCE);
655
 
656
+ // process here your on $_POST validation and / or option saving
657
+ $this->update_admin_options();
 
 
 
658
 
659
+ // lets redirect the post request into get request (you may add additional params at the url, if you need to show save results
660
+ $this->transposh->tp_redirect($_POST['_wp_http_referer']);
661
+ }
 
 
662
 
663
+ // below you will find for each registered metabox the callback method, that produces the content inside the boxes
664
+ // i did not describe each callback dedicated, what they do can be easily inspected and compare with the admin page displayed
 
 
 
665
 
666
+ function on_sidebox_news_content() {
667
+ echo '<div style="margin:6px">';
668
+ wp_widget_rss_output('http://feeds2.feedburner.com/transposh', array('items' => 5));
669
+ echo '</div>';
670
+ }
671
 
672
+ function on_sidebox_stats_content() {
673
+ $this->transposh->database->db_stats();
 
 
 
 
 
 
 
 
674
  }
675
 
676
+ /** UTILITY FUNCTIONS * */
677
+ private function section($head, $text = '') {
678
+ echo '<h2>' . $head . '</h2>';
679
+ echo '<div class="col-wrap">';
680
+ if ($text) echo '<p>' . $text . '</p>';
681
+ }
682
 
683
+ private function sectionstop() {
684
+ echo '</div>';
685
+ }
 
 
686
 
687
+ private function header($head) {
688
+ if (!isset($head)) return;
689
+ if (is_array($head)) {
690
+ echo "<h3><img width=\"16\" height=\"16\" src=\"{$this->transposh->transposh_plugin_url}/img/{$head[0]}\"> {$head[1]}</h3>";
691
+ } else {
692
+ echo '<h3>' . $head . '</h3>';
 
 
 
 
693
  }
694
  }
695
 
696
+ /**
697
+ * Display a checkbox for boolean value
698
+ * @param transposh_option $tpo A transposh option boolean object
699
+ * @param string $head
700
+ * @param string $text
701
+ */
702
+ private function checkbox($tpo, $head, $text) {
703
+ $this->header($head);
704
+ echo '<input type="checkbox" value="1" name="' . $tpo->get_name() . '" ' . checked($tpo->get_value(), true, false) . '/> ' . $text;
705
+ }
706
 
707
+ /**
708
+ * Display a select
709
+ * @param transposh_option $tpo
710
+ * @param string $label
711
+ * @param array $options
712
+ * @param boolean $use_key
713
+ */
714
+ private function select($tpo, $head, $label, $options, $use_key = true) {
715
+ $this->header($head);
716
+ echo '<label for="' . $tpo->get_name() . '">' . $label .
717
+ '<select name="' . $tpo->get_name() . '">';
718
+ foreach ($options as $key => $text) {
719
+ echo '<option value="' . ($use_key ? $key : $text) . '"' . selected($tpo->get_value(), ($use_key ? $key : $text), false) . '>' . $text . '</option>';
720
  }
721
  echo '</select>' .
722
  '</label>';
723
  }
724
 
725
+ private function textinput($tpo, $head, $label, $length = 35) {
726
+ $this->header($head);
727
+ echo $label . ': <input type="text" size="' . $length . '" class="regular-text" ' . $tpo->post_value_id_name() . '/>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
728
  }
729
 
730
+ /** UTILITY FUNCTIONS END * */
731
+ function notices() {
732
+ if ((int) ini_get('memory_limit') < 64) {
733
+ $this->add_warning('tp_mem_warning', sprintf(__('Your current PHP memory limit of %s is quite low, if you experience blank pages please consider increasing it.', TRANSPOSH_TEXT_DOMAIN), ini_get('memory_limit')) . ' <a href="http://transposh.org/faq#blankpages">' . __('Check Transposh FAQs', TRANSPOSH_TEXT_DOMAIN) . '</a>');
734
+ }
 
 
 
735
 
736
+ if ($this->page && !(class_exists('Memcache') /* !!&& $this->memcache->connect(TP_MEMCACHED_SRV, TP_MEMCACHED_PORT) */) && !function_exists('apc_fetch') && !function_exists('xcache_get') && !function_exists('eaccelerator_get')) {
737
+ $this->add_warning('tp_cache_warning', __('We were not able to find a supported in-memory caching engine, installing one can improve performance.', TRANSPOSH_TEXT_DOMAIN) . ' <a href="http://transposh.org/faq#performance">' . __('Check Transposh FAQs', TRANSPOSH_TEXT_DOMAIN) . '</a>', 'updated');
738
+ }
 
 
 
 
 
739
  }
740
 
741
+ function add_warning($id, $message, $level = 'error') {
742
  if (!$this->transposh->options->get_transposh_admin_hide_warning($id)) {
743
+ //$this->add_warning_script();
744
+ wp_enqueue_script('transposh_warningclose', $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/admin/warningclose.js', array('jquery'), TRANSPOSH_PLUGIN_VER, true);
745
+ echo '<div class="' . $level . '"><p>&#9888;&nbsp;' .
746
  $message .
747
+ '<a id="' . $id . '" href="#" class="warning-close" style="float:' . $this->localeright . '; margin-' . $this->localeleft . ': .3em;">' . __('Hide Notice', TRANSPOSH_TEXT_DOMAIN) . '</a>' .
748
+ '</p></div>';
749
  }
750
  }
751
 
767
  die(); // this is required to return a proper result
768
  }
769
 
770
+ function on_ajax_tp_reset() {
771
+ $this->transposh->options->reset_options();
772
+ die();
773
+ }
774
+
775
  function on_ajax_tp_backup() {
776
  $this->transposh->run_backup();
777
  die();
wp/transposh_ajax.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /*
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
  /*
wp/transposh_backup.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /*
@@ -33,9 +33,9 @@ class transposh_backup {
33
  function init_body() {
34
  $body = array();
35
  $body['home_url'] = $this->transposh->home_url;
36
- $body['key'] = $this->transposh->options->get_transposh_key();
37
  $body['v'] = '2';
38
- $body['tpv'] = '0.8.5';
39
  return $body;
40
  }
41
 
@@ -58,10 +58,9 @@ class transposh_backup {
58
  echo '500 - ' . $result['headers']['fail'];
59
  return;
60
  }
61
- if ($this->transposh->options->get_transposh_key() == "") {
62
- $this->transposh->options->set_transposh_key($result['headers']['transposh-key']);
63
  // TODO: deliever new gottenkey to client side?
64
- //echo $this->transposh->options->get_transposh_key();
65
  $this->transposh->options->update_options();
66
  }
67
  if (isset($result['headers']['lastitem'])) {
@@ -118,7 +117,7 @@ class transposh_backup {
118
  function do_restore() {
119
  $body['to'] = time(); //TODO: fix this to get from DB
120
  $body['home_url'] = $this->transposh->home_url;
121
- $body['key'] = $this->transposh->options->get_transposh_key();
122
  $result = wp_remote_get(TRANSPOSH_RESTORE_SERVICE_URL . "?to={$body['to']}&key={$body['key']}&home_url={$body['home_url']}"); // gotta be a better way...
123
  $lines = split("[\n|\r]", $result['body']);
124
  foreach ($lines as $line) {
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
  /*
33
  function init_body() {
34
  $body = array();
35
  $body['home_url'] = $this->transposh->home_url;
36
+ $body['key'] = $this->transposh->options->transposh_key;
37
  $body['v'] = '2';
38
+ $body['tpv'] = '0.9.0';
39
  return $body;
40
  }
41
 
58
  echo '500 - ' . $result['headers']['fail'];
59
  return;
60
  }
61
+ if ($this->transposh->options->transposh_key == "") {
62
+ $this->transposh->options->transposh_key = $result['headers']['transposh-key'];
63
  // TODO: deliever new gottenkey to client side?
 
64
  $this->transposh->options->update_options();
65
  }
66
  if (isset($result['headers']['lastitem'])) {
117
  function do_restore() {
118
  $body['to'] = time(); //TODO: fix this to get from DB
119
  $body['home_url'] = $this->transposh->home_url;
120
+ $body['key'] = $this->transposh->options->transposh_key;
121
  $result = wp_remote_get(TRANSPOSH_RESTORE_SERVICE_URL . "?to={$body['to']}&key={$body['key']}&home_url={$body['home_url']}"); // gotta be a better way...
122
  $lines = split("[\n|\r]", $result['body']);
123
  foreach ($lines as $line) {
wp/transposh_db.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /**
@@ -58,14 +58,17 @@ class transposh_database {
58
  $this->translation_log_table = $GLOBALS['wpdb']->prefix . TRANSLATIONS_LOG;
59
 
60
  if (class_exists('Memcache')) {
61
-
 
62
  $this->memcache_working = true;
63
  $this->memcache = new Memcache;
64
  @$this->memcache->connect(TP_MEMCACHED_SRV, TP_MEMCACHED_PORT) or $this->memcache_working = false;
 
 
65
  }
66
  // I have space in keys issues...
67
  /* elseif (class_exists('Memcached')) {
68
-
69
  $this->memcache_working = true;
70
  $this->memcache = new Memcached();
71
  //if (!count($this->memcache->getServerList())) {
@@ -73,7 +76,7 @@ class transposh_database {
73
  // }
74
  //@$this->memcache->connect(TP_MEMCACHED_SRV, TP_MEMCACHED_PORT) or $this->memcache_working = false;
75
  } */
76
- // TODO!! make sure it does something
77
  }
78
 
79
  /**
@@ -88,23 +91,23 @@ class transposh_database {
88
  $key = $lang . '_' . $original;
89
  if ($this->memcache_working) {
90
  $cached = $this->memcache->get($key);
91
-
92
  } elseif (function_exists('apc_fetch')) {
93
  $cached = apc_fetch($key, $rc);
94
  if ($rc === false) return false;
95
-
96
  } elseif (function_exists('xcache_get')) {
97
  $rc = @xcache_isset($key);
98
  if ($rc === false) return false;
99
  $cached = @xcache_get($key);
100
-
101
  } elseif (function_exists('eaccelerator_get')) {
102
  $cached = eaccelerator_get($key);
103
  if ($cached === null) return false;
104
  //TODO - unfortunantly null storing does not work here..
105
-
106
  }
107
-
108
  if ($cached !== null && $cached !== false)
109
  $cached = explode('_', $cached, 2);
110
  return $cached;
@@ -134,9 +137,9 @@ class transposh_database {
134
  }
135
 
136
  if ($rc) {
137
-
138
  } else {
139
-
140
  }
141
  return $rc;
142
  }
@@ -182,7 +185,7 @@ class transposh_database {
182
  */
183
  function prefetch_translations($originals, $lang) {
184
  if (!$originals) return;
185
-
186
  $where = '';
187
  foreach ($originals as $original => $truth) {
188
  $original = $GLOBALS['wpdb']->escape(html_entity_decode($original, ENT_NOQUOTES, 'UTF-8'));
@@ -194,7 +197,7 @@ class transposh_database {
194
  $where .= ( ($where) ? ' OR ' : '') . "original = '$original'";
195
  }
196
  // make sure $lang is reasonable, unless someone is messing with us, it will be ok
197
- if (!($this->transposh->options->is_editable_language($lang))) return;
198
 
199
  // If we have nothing, we will do nothing
200
  if (!$where) return;
@@ -207,7 +210,7 @@ class transposh_database {
207
  $ro = $GLOBALS['wpdb']->escape(html_entity_decode($row['original'], ENT_NOQUOTES, 'UTF-8'));
208
  $this->translations[$ro] = array($row['source'], stripslashes($row['translated']));
209
  }
210
-
211
  }
212
 
213
  /**
@@ -220,30 +223,29 @@ class transposh_database {
220
  */
221
  function fetch_translation($original, $lang) {
222
  $translated = null;
223
-
224
  //The original is saved in db in its escaped form
225
  $original = $GLOBALS['wpdb']->escape(html_entity_decode($original, ENT_NOQUOTES, 'UTF-8'));
226
  // first we look in the cache
227
  $cached = $this->cache_fetch($original, $lang);
228
  if ($cached !== false) {
229
-
230
  return $cached;
231
  }
232
  // then we look for a prefetch
233
  if (isset($this->translations[$original])) {
234
  $translated = $this->translations[$original];
235
-
236
  } else {
237
  // make sure $lang is reasonable, unless someone is messing with us, it will be ok
238
- if (!($this->transposh->options->is_editable_language($lang)))
239
- return;
240
  $query = "SELECT * FROM {$this->translation_table} WHERE original = '$original' and lang = '$lang' ";
241
  $row = $GLOBALS['wpdb']->get_row($query);
242
 
243
  if ($row !== null) {
244
  $translated_text = stripslashes($row->translated);
245
  $translated = array($row->source, $translated_text);
246
-
247
  }
248
  }
249
  // we can store the result in the cache (or the fact we don't have one)
@@ -262,35 +264,35 @@ class transposh_database {
262
  */
263
  function fetch_original($translation, $lang) {
264
  $original = null;
265
-
266
 
267
  // The translation is saved in db in its escaped form
268
  $translation = $GLOBALS['wpdb']->escape(html_entity_decode($translation, ENT_NOQUOTES, 'UTF-8'));
269
  // The translation might be cached (notice the additional postfix)
270
  list($rev, $cached) = $this->cache_fetch('R_' . $translation, $lang);
271
  if ($rev == 'r') {
272
-
273
  return $cached;
274
  }
275
  // lang
276
  // FIXME - no prefetching for originals yet...
277
  if ($this->translations[$translation]) {
278
  $original = $this->translations[$translation];
279
-
280
  } else {
281
  $query = "SELECT * FROM {$this->translation_table} WHERE translated = '$translation' and lang = '$lang' ";
282
  $row = $GLOBALS['wpdb']->get_row($query);
283
 
284
  if ($row !== null) {
285
  $original = stripslashes($row->original);
286
-
287
  }
288
  }
289
 
290
  // we can store the result in the cache (or the fact we don't have one)
291
  $this->cache_store('R_' . $translation, $lang, array('r', $original), TP_CACHE_TTL);
292
 
293
-
294
  return $original;
295
  }
296
 
@@ -308,9 +310,9 @@ class transposh_database {
308
  $lang = $_POST['ln0'];
309
  $source = $_POST['sr0'];
310
  // check params
311
-
312
  if (!isset($items) || !isset($lang)) {
313
-
314
  return;
315
  }
316
 
@@ -320,15 +322,15 @@ class transposh_database {
320
  $all_editable = true;
321
  for ($i = 0; $i < $items; $i++) {
322
  if (isset($_POST["ln$i"])) {
323
- if (!$this->transposh->options->is_editable_language($_POST["ln$i"])) {
324
  $all_editable = false;
325
  break;
326
  }
327
  }
328
  }
329
  if (!$by && !($all_editable &&
330
- ($this->transposh->is_translator() || ($source > 0 && $this->transposh->options->get_enable_auto_translate())))) {
331
-
332
  header("HTTP/1.0 401 Unauthorized translation");
333
  exit;
334
  }
@@ -380,7 +382,7 @@ class transposh_database {
380
 
381
  // we attempt to avoid
382
  if (isset($alreadybatched[$original . '---' . $lang])) {
383
-
384
  continue;
385
  }
386
  $alreadybatched[$original . '---' . $lang] = true;
@@ -391,12 +393,12 @@ class transposh_database {
391
  list($old_source, $translated_text) = $this->fetch_translation($original, $lang);
392
  if ($translated_text) {
393
  if ($source > 0) {
394
-
395
  continue;
396
  //return; // too harsh, we just need to get to the next in for
397
  }
398
  if ($translation == $GLOBALS['wpdb']->escape(htmlspecialchars(stripslashes(urldecode($translated_text)))) && $old_source == $source) {
399
-
400
  continue;
401
  //return; // too harsh, we just need to get to the next in for
402
  }
@@ -421,10 +423,10 @@ class transposh_database {
421
  VALUES $values"; */
422
  //so we'll delete all values and insert them...
423
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
424
-
425
  $result = $GLOBALS['wpdb']->query($update);
426
  $update = "INSERT INTO " . $this->translation_table . " (original, translated, lang, source) VALUES $values";
427
-
428
  $result = $GLOBALS['wpdb']->query($update);
429
 
430
  // if the insertion worked, we will update the transaction log
@@ -432,10 +434,10 @@ class transposh_database {
432
  $log = "INSERT INTO " . $this->translation_log_table . " (original, translated, lang, translated_by, source) " .
433
  "VALUES $logvalues";
434
  $result = $GLOBALS['wpdb']->query($log);
435
-
436
  } else {
437
-
438
-
439
  header("HTTP/1.0 404 Failed to update language database " . mysql_error());
440
  }
441
 
@@ -447,7 +449,7 @@ class transposh_database {
447
 
448
  // TODO: move this to an action
449
  // Should we backup now?
450
- if ($backup_immidiate_possible && $this->transposh->options->get_transposh_backup_schedule() == 2) {
451
  $this->transposh->run_backup();
452
  }
453
  // this is a termination for the ajax sequence
@@ -462,24 +464,24 @@ class transposh_database {
462
 
463
  $ref = getenv('HTTP_REFERER');
464
  $original = transposh_utils::base64_url_decode($token);
465
-
466
 
467
  // check params
468
-
469
  if (!isset($original) || !isset($lang)) {
470
-
471
  return;
472
  }
473
-
474
 
475
  // Check permissions, first the lanugage must be on the edit list. Then either the user
476
  // is a translator or automatic translation if it is enabled.
477
- if (!($this->transposh->options->is_editable_language($lang) && $this->transposh->is_translator())) {
478
-
479
  header('HTTP/1.0 401 Unauthorized history');
480
  exit;
481
  }
482
-
483
 
484
  // The original content is encoded as base64 before it is sent (i.e. token), after we
485
  // decode it should just the same after it was parsed.
@@ -493,7 +495,7 @@ class transposh_database {
493
  "LEFT JOIN {$GLOBALS['wpdb']->prefix}users ON translated_by = {$GLOBALS['wpdb']->prefix}users.id " .
494
  "WHERE original='$original' AND lang='$lang' " .
495
  "ORDER BY timestamp DESC";
496
-
497
 
498
  $rows = $GLOBALS['wpdb']->get_results($query);
499
  for ($i = 0; $i < count($rows); $i++) {
@@ -524,7 +526,7 @@ class transposh_database {
524
  "WHERE original='$original' AND lang='$lang' AND timestamp='$timestamp' " .
525
  "ORDER BY timestamp DESC";
526
  $rows = $GLOBALS['wpdb']->get_results($query);
527
-
528
  // We only delete if we found something to delete and it is allowed to delete it (user either did that - by ip, has the translator role or is an admin)
529
  if (!empty($rows) && (($rows[0]->translated_by == $_SERVER['REMOTE_ADDR'] && $rows[0]->source == '0') || (is_user_logged_in() && current_user_can(TRANSLATOR)) || current_user_can('manage_options'))) {
530
  // delete faulty record
@@ -532,26 +534,26 @@ class transposh_database {
532
  "FROM {$this->translation_log_table} " .
533
  "WHERE original='$original' AND lang='$lang' AND timestamp='$timestamp'";
534
  $GLOBALS['wpdb']->query($query);
535
-
536
  // retrieve last translation
537
  $query = "SELECT translated, source " .
538
  "FROM {$this->translation_log_table} " .
539
  "WHERE original='$original' AND lang='$lang' " .
540
  "ORDER BY timestamp DESC";
541
  $rows = $GLOBALS['wpdb']->get_results($query);
542
-
543
 
544
  // delete and revert to last in database
545
  $delvalues = "(original ='$original' AND lang='$lang')";
546
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
547
  $this->cache_delete($original, $lang);
548
-
549
  $result = $GLOBALS['wpdb']->query($update);
550
  if (!empty($rows)) {
551
  $translated = $GLOBALS['wpdb']->escape($rows[0]->translated);
552
  $values = "('" . $original . "','" . $translated . "','" . $lang . "','" . $rows[0]->source . "')";
553
  $update = "INSERT INTO " . $this->translation_table . " (original, translated, lang, source) VALUES $values";
554
-
555
  $result = $GLOBALS['wpdb']->query($update);
556
  } else {
557
  // there is nothing to revert to...
@@ -572,7 +574,7 @@ class transposh_database {
572
 
573
  //$ref = getenv('HTTP_REFERER');
574
  $original = transposh_utils::base64_url_decode($token);
575
-
576
 
577
  if (!isset($original)) {
578
  exit;
@@ -580,11 +582,11 @@ class transposh_database {
580
 
581
  // Check permissions
582
  if (!($this->transposh->is_translator())) {
583
-
584
  header('HTTP/1.0 401 Unauthorized alt request');
585
  exit;
586
  }
587
-
588
 
589
  // The original content is encoded as base64 before it is sent (i.e. token), after we
590
  // decode it should just the same after it was parsed.
@@ -599,7 +601,7 @@ class transposh_database {
599
  "FROM {$this->translation_table} " .
600
  "WHERE original='$original' AND source=0 " .
601
  "ORDER BY lang";
602
-
603
  $rows = $GLOBALS['wpdb']->get_results($query);
604
 
605
  echo json_encode($rows);
@@ -621,7 +623,7 @@ class transposh_database {
621
  "FROM {$this->translation_log_table} " .
622
  "WHERE source= 0 $dateterm " .
623
  "ORDER BY timestamp ASC $limitterm";
624
-
625
 
626
  $rows = $GLOBALS['wpdb']->get_results($query);
627
  return $rows;
@@ -632,13 +634,13 @@ class transposh_database {
632
  */
633
 
634
  function setup_db($force = false) {
635
-
636
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
637
 
638
  $installed_ver = get_option(TRANSPOSH_DB_VERSION);
639
 
640
  if ($installed_ver != DB_VERSION || $force) {
641
-
642
  // notice - keep every field on a new line or dbdelta fails
643
  $GLOBALS['wpdb']->query("ALTER TABLE {$this->translation_table} DROP PRIMARY KEY");
644
  $sql = "CREATE TABLE {$this->translation_table} (
@@ -652,7 +654,7 @@ class transposh_database {
652
  dbDelta($sql);
653
  $GLOBALS['wpdb']->query("ALTER TABLE {$this->translation_table} CONVERT TO CHARSET utf8 COLLATE utf8_bin");
654
 
655
-
656
  // notice - keep every field on a new line or dbdelta fails
657
  // this should be removed in a far future...
658
  $GLOBALS['wpdb']->query("ALTER TABLE {$this->translation_log_table} DROP PRIMARY KEY");
@@ -672,7 +674,7 @@ class transposh_database {
672
  update_option(TRANSPOSH_DB_VERSION, DB_VERSION);
673
  }
674
 
675
-
676
  }
677
 
678
  /**
@@ -718,7 +720,7 @@ class transposh_database {
718
  " WHERE `lang` = '$language'" .
719
  " AND `translated` LIKE '{$n}{$term}{$n}'";
720
  //TODO wait for feedbacks to see if we should put a limit here.
721
-
722
  $result = array();
723
  if (strlen($term) < 3) return $result;
724
  $rows = $GLOBALS['wpdb']->get_results($query);
@@ -758,7 +760,7 @@ class transposh_database {
758
  ' WHERE ' . $this->translation_table . '.source > 0' .
759
  " AND timestamp < SUBDATE(NOW(),$days)";
760
  $result = $GLOBALS['wpdb']->query($cleanup);
761
-
762
  // clean up cache so that results will actually show
763
  $this->cache_clean();
764
  exit;
@@ -773,7 +775,7 @@ class transposh_database {
773
  ' GROUP BY `original` , `lang` , `translated` , `translated_by` , `timestamp` , `source`' .
774
  ' HAVING count( * ) >1';
775
  $rows = $GLOBALS['wpdb']->get_results($dedup);
776
-
777
  foreach ($rows as $row) {
778
  $row->original = $GLOBALS['wpdb']->escape($row->original);
779
  $row->translated = $GLOBALS['wpdb']->escape($row->translated);
@@ -781,11 +783,11 @@ class transposh_database {
781
  $delvalues = "(original ='{$row->original}' AND lang='{$row->lang}' AND translated='{$row->translated}'" .
782
  " AND translated_by='{$row->translated_by}' AND timestamp='{$row->timestamp}' AND source='{$row->source}')";
783
  $update = "DELETE FROM " . $this->translation_log_table . " WHERE $delvalues";
784
-
785
  $result = $GLOBALS['wpdb']->query($update);
786
  $values = "('{$row->original}','{$row->lang}','{$row->translated}','$row->translated_by','$row->timestamp','$row->source')";
787
  $update = "INSERT INTO " . $this->translation_log_table . " (original, lang, translated, translated_by, timestamp, source) VALUES $values";
788
-
789
  $result = $GLOBALS['wpdb']->query($update);
790
  $this->cache_delete($row->original, $row->lang);
791
  }
@@ -800,7 +802,7 @@ class transposh_database {
800
  ' AND w2.source >0' .
801
  ' AND w1.timestamp < w2.timestamp';
802
  $rows = $GLOBALS['wpdb']->get_results($autojunk);
803
-
804
  foreach ($rows as $row) {
805
  $row->original = $GLOBALS['wpdb']->escape($row->original);
806
  $row->translated = $GLOBALS['wpdb']->escape($row->translated);
@@ -809,7 +811,7 @@ class transposh_database {
809
  " AND translated_by='{$row->translated_by}' AND timestamp='{$row->timestamp}' AND source='{$row->source}')";
810
  $update = "DELETE FROM " . $this->translation_log_table . " WHERE $delvalues";
811
  $result = $GLOBALS['wpdb']->query($update);
812
-
813
  $this->cache_delete($row->original, $row->lang);
814
  }
815
 
@@ -819,7 +821,7 @@ class transposh_database {
819
  ' GROUP BY `original` , `lang`' .
820
  ' HAVING count( * ) >1';
821
  $rows = $GLOBALS['wpdb']->get_results($dedup);
822
-
823
  foreach ($rows as $row) {
824
  $row->original = $GLOBALS['wpdb']->escape($row->original);
825
  $row->lang = $GLOBALS['wpdb']->escape($row->lang);
@@ -827,13 +829,13 @@ class transposh_database {
827
  if ($source != NULL) {
828
  $delvalues = "(original ='{$row->original}' AND lang='{$row->lang}')";
829
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
830
-
831
  $result = $GLOBALS['wpdb']->query($update);
832
  $row->translated = $GLOBALS['wpdb']->escape($translation);
833
  $row->source = $GLOBALS['wpdb']->escape($source);
834
  $values = "('{$row->original}','{$row->lang}','{$row->translated}','$row->source')";
835
  $update = "INSERT INTO " . $this->translation_table . " (original, lang, translated, source) VALUES $values";
836
-
837
  $result = $GLOBALS['wpdb']->query($update);
838
  }
839
  $this->cache_delete($row->original, $row->lang);
@@ -867,13 +869,13 @@ class transposh_database {
867
  ' GROUP BY original, lang' .
868
  ' HAVING count( * ) >1';
869
  $rows = $GLOBALS['wpdb']->get_results($duptrans);
870
-
871
  foreach ($rows as $row) {
872
  $row->original = $GLOBALS['wpdb']->escape($row->original);
873
  $delvalues = "(original ='{$row->original}' AND lang='{$row->lang}')";
874
  $row->original = $GLOBALS['wpdb']->escape($row->original);
875
  $update = "DELETE FROM " . $this->translation_log_table . " WHERE $delvalues";
876
-
877
  // $result = $GLOBALS['wpdb']->query($update);
878
  } */
879
  $this->cache_clean();
@@ -896,21 +898,21 @@ class transposh_database {
896
  $logvalues .= "('" . $original . "','" . $translation . "','" . $lang . "','" . $by . "',FROM_UNIXTIME(" . $timestamp . "),'" . $source . "')";
897
 
898
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
899
-
900
  $result = $GLOBALS['wpdb']->query($update);
901
  $update = "INSERT INTO " . $this->translation_table . " (original, translated, lang, source) VALUES $values";
902
-
903
  $result = $GLOBALS['wpdb']->query($update);
904
 
905
  if ($result !== FALSE) {
906
  // update the transaction log too
907
  $log = "INSERT INTO " . $this->translation_log_table . " (original, translated, lang, translated_by, timestamp, source) " .
908
  "VALUES $logvalues";
909
-
910
  $result = $GLOBALS['wpdb']->query($log);
911
  } else {
912
-
913
-
914
  header("HTTP/1.0 404 Failed to update language database " . mysql_error());
915
  }
916
  }
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
  /**
58
  $this->translation_log_table = $GLOBALS['wpdb']->prefix . TRANSLATIONS_LOG;
59
 
60
  if (class_exists('Memcache')) {
61
+ if ($this->transposh->options->debug_enable)
62
+ tp_logger('Trying pecl-Memcache!', 3);
63
  $this->memcache_working = true;
64
  $this->memcache = new Memcache;
65
  @$this->memcache->connect(TP_MEMCACHED_SRV, TP_MEMCACHED_PORT) or $this->memcache_working = false;
66
+ if ($this->transposh->options->debug_enable && $this->memcache_working)
67
+ tp_logger('Memcache seems working');
68
  }
69
  // I have space in keys issues...
70
  /* elseif (class_exists('Memcached')) {
71
+ tp_logger('I am using pecl-Memcached!', 3);
72
  $this->memcache_working = true;
73
  $this->memcache = new Memcached();
74
  //if (!count($this->memcache->getServerList())) {
76
  // }
77
  //@$this->memcache->connect(TP_MEMCACHED_SRV, TP_MEMCACHED_PORT) or $this->memcache_working = false;
78
  } */
79
+ //tp_logger($this->memcache_working); // TODO!! make sure it does something
80
  }
81
 
82
  /**
91
  $key = $lang . '_' . $original;
92
  if ($this->memcache_working) {
93
  $cached = $this->memcache->get($key);
94
+ tp_logger('memcached ' . $key . ' ' . $cached, 5);
95
  } elseif (function_exists('apc_fetch')) {
96
  $cached = apc_fetch($key, $rc);
97
  if ($rc === false) return false;
98
+ tp_logger('apc', 5);
99
  } elseif (function_exists('xcache_get')) {
100
  $rc = @xcache_isset($key);
101
  if ($rc === false) return false;
102
  $cached = @xcache_get($key);
103
+ tp_logger('xcache', 5);
104
  } elseif (function_exists('eaccelerator_get')) {
105
  $cached = eaccelerator_get($key);
106
  if ($cached === null) return false;
107
  //TODO - unfortunantly null storing does not work here..
108
+ tp_logger('eaccelerator', 5);
109
  }
110
+ tp_logger("Cache fetched: $original => $cached", 4);
111
  if ($cached !== null && $cached !== false)
112
  $cached = explode('_', $cached, 2);
113
  return $cached;
137
  }
138
 
139
  if ($rc) {
140
+ tp_logger("Stored in cache: $original => {$translated}", 4);
141
  } else {
142
+ tp_logger("Didn't cache: $original => {$translated}", 4);
143
  }
144
  return $rc;
145
  }
185
  */
186
  function prefetch_translations($originals, $lang) {
187
  if (!$originals) return;
188
+ tp_logger($originals, 4);
189
  $where = '';
190
  foreach ($originals as $original => $truth) {
191
  $original = $GLOBALS['wpdb']->escape(html_entity_decode($original, ENT_NOQUOTES, 'UTF-8'));
197
  $where .= ( ($where) ? ' OR ' : '') . "original = '$original'";
198
  }
199
  // make sure $lang is reasonable, unless someone is messing with us, it will be ok
200
+ if (!($this->transposh->options->is_active_language($lang))) return;
201
 
202
  // If we have nothing, we will do nothing
203
  if (!$where) return;
210
  $ro = $GLOBALS['wpdb']->escape(html_entity_decode($row['original'], ENT_NOQUOTES, 'UTF-8'));
211
  $this->translations[$ro] = array($row['source'], stripslashes($row['translated']));
212
  }
213
+ tp_logger('prefetched: ' . count($this->translations), 5);
214
  }
215
 
216
  /**
223
  */
224
  function fetch_translation($original, $lang) {
225
  $translated = null;
226
+ tp_logger("Fetching for: $original-$lang", 4);
227
  //The original is saved in db in its escaped form
228
  $original = $GLOBALS['wpdb']->escape(html_entity_decode($original, ENT_NOQUOTES, 'UTF-8'));
229
  // first we look in the cache
230
  $cached = $this->cache_fetch($original, $lang);
231
  if ($cached !== false) {
232
+ tp_logger("Exit from cache: {$cached[0]} {$cached[1]}", 4);
233
  return $cached;
234
  }
235
  // then we look for a prefetch
236
  if (isset($this->translations[$original])) {
237
  $translated = $this->translations[$original];
238
+ tp_logger("prefetch result for $original >>> {$this->translations[$original][0]} ({$this->translations[$original][1]})", 4);
239
  } else {
240
  // make sure $lang is reasonable, unless someone is messing with us, it will be ok
241
+ if (!($this->transposh->options->is_active_language($lang))) return;
 
242
  $query = "SELECT * FROM {$this->translation_table} WHERE original = '$original' and lang = '$lang' ";
243
  $row = $GLOBALS['wpdb']->get_row($query);
244
 
245
  if ($row !== null) {
246
  $translated_text = stripslashes($row->translated);
247
  $translated = array($row->source, $translated_text);
248
+ tp_logger("db result for $original >>> $translated_text ($lang) ({$row->source})", 4);
249
  }
250
  }
251
  // we can store the result in the cache (or the fact we don't have one)
264
  */
265
  function fetch_original($translation, $lang) {
266
  $original = null;
267
+ tp_logger("Enter: $translation", 4);
268
 
269
  // The translation is saved in db in its escaped form
270
  $translation = $GLOBALS['wpdb']->escape(html_entity_decode($translation, ENT_NOQUOTES, 'UTF-8'));
271
  // The translation might be cached (notice the additional postfix)
272
  list($rev, $cached) = $this->cache_fetch('R_' . $translation, $lang);
273
  if ($rev == 'r') {
274
+ tp_logger("Exit from cache: $translation $cached", 4);
275
  return $cached;
276
  }
277
  // lang
278
  // FIXME - no prefetching for originals yet...
279
  if ($this->translations[$translation]) {
280
  $original = $this->translations[$translation];
281
+ tp_logger("prefetch result for $translation >>> {$this->translations[$translation][0]} ({$this->translations[$translation][1]})", 3);
282
  } else {
283
  $query = "SELECT * FROM {$this->translation_table} WHERE translated = '$translation' and lang = '$lang' ";
284
  $row = $GLOBALS['wpdb']->get_row($query);
285
 
286
  if ($row !== null) {
287
  $original = stripslashes($row->original);
288
+ tp_logger("db result for $translation >>> $original ($lang) ({$row->source})", 4);
289
  }
290
  }
291
 
292
  // we can store the result in the cache (or the fact we don't have one)
293
  $this->cache_store('R_' . $translation, $lang, array('r', $original), TP_CACHE_TTL);
294
 
295
+ tp_logger("Exit: $translation/$original", 4);
296
  return $original;
297
  }
298
 
310
  $lang = $_POST['ln0'];
311
  $source = $_POST['sr0'];
312
  // check params
313
+ tp_logger("Enter " . __FILE__ . " Params: $items, $lang, $ref", 5);
314
  if (!isset($items) || !isset($lang)) {
315
+ tp_logger("Enter " . __FILE__ . " missing Params: $items, $lang, $ref", 1);
316
  return;
317
  }
318
 
322
  $all_editable = true;
323
  for ($i = 0; $i < $items; $i++) {
324
  if (isset($_POST["ln$i"])) {
325
+ if (!$this->transposh->options->is_active_language($_POST["ln$i"])) {
326
  $all_editable = false;
327
  break;
328
  }
329
  }
330
  }
331
  if (!$by && !($all_editable &&
332
+ ($this->transposh->is_translator() || ($source > 0 && $this->transposh->options->enable_autotranslate)))) {
333
+ tp_logger("Unauthorized translation attempt " . $_SERVER['REMOTE_ADDR'], 1);
334
  header("HTTP/1.0 401 Unauthorized translation");
335
  exit;
336
  }
382
 
383
  // we attempt to avoid
384
  if (isset($alreadybatched[$original . '---' . $lang])) {
385
+ tp_logger("Warning same item appeared twice in batch: $original $lang", 1);
386
  continue;
387
  }
388
  $alreadybatched[$original . '---' . $lang] = true;
393
  list($old_source, $translated_text) = $this->fetch_translation($original, $lang);
394
  if ($translated_text) {
395
  if ($source > 0) {
396
+ tp_logger("Warning auto-translation for already translated: $original $lang", 1);
397
  continue;
398
  //return; // too harsh, we just need to get to the next in for
399
  }
400
  if ($translation == $GLOBALS['wpdb']->escape(htmlspecialchars(stripslashes(urldecode($translated_text)))) && $old_source == $source) {
401
+ tp_logger("Warning attempt to retranslate with same text: $original, $translation", 1);
402
  continue;
403
  //return; // too harsh, we just need to get to the next in for
404
  }
423
  VALUES $values"; */
424
  //so we'll delete all values and insert them...
425
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
426
+ tp_logger($update, 3);
427
  $result = $GLOBALS['wpdb']->query($update);
428
  $update = "INSERT INTO " . $this->translation_table . " (original, translated, lang, source) VALUES $values";
429
+ tp_logger($update, 3);
430
  $result = $GLOBALS['wpdb']->query($update);
431
 
432
  // if the insertion worked, we will update the transaction log
434
  $log = "INSERT INTO " . $this->translation_log_table . " (original, translated, lang, translated_by, source) " .
435
  "VALUES $logvalues";
436
  $result = $GLOBALS['wpdb']->query($log);
437
+ tp_logger("Inserted to db '$values'", 3);
438
  } else {
439
+ tp_logger(mysql_error(), 1);
440
+ tp_logger("Error !!! failed to insert to db $original , $translation, $lang,", 1);
441
  header("HTTP/1.0 404 Failed to update language database " . mysql_error());
442
  }
443
 
449
 
450
  // TODO: move this to an action
451
  // Should we backup now?
452
+ if ($backup_immidiate_possible && $this->transposh->options->transposh_backup_schedule == 2) {
453
  $this->transposh->run_backup();
454
  }
455
  // this is a termination for the ajax sequence
464
 
465
  $ref = getenv('HTTP_REFERER');
466
  $original = transposh_utils::base64_url_decode($token);
467
+ tp_logger("Inside history for $original ($token)", 4);
468
 
469
  // check params
470
+ tp_logger("Enter " . __FILE__ . " Params: $original , $lang, $ref", 3);
471
  if (!isset($original) || !isset($lang)) {
472
+ tp_logger("Enter " . __FILE__ . " missing params: $original, $lang," . $ref, 1);
473
  return;
474
  }
475
+ tp_logger("Passed check for $lang", 4);
476
 
477
  // Check permissions, first the lanugage must be on the edit list. Then either the user
478
  // is a translator or automatic translation if it is enabled.
479
+ if (!($this->transposh->options->is_active_language($lang) && $this->transposh->is_translator())) {
480
+ tp_logger("Unauthorized history request " . $_SERVER['REMOTE_ADDR'], 1);
481
  header('HTTP/1.0 401 Unauthorized history');
482
  exit;
483
  }
484
+ tp_logger('Passed check for editable and translator', 4);
485
 
486
  // The original content is encoded as base64 before it is sent (i.e. token), after we
487
  // decode it should just the same after it was parsed.
495
  "LEFT JOIN {$GLOBALS['wpdb']->prefix}users ON translated_by = {$GLOBALS['wpdb']->prefix}users.id " .
496
  "WHERE original='$original' AND lang='$lang' " .
497
  "ORDER BY timestamp DESC";
498
+ tp_logger("query is $query");
499
 
500
  $rows = $GLOBALS['wpdb']->get_results($query);
501
  for ($i = 0; $i < count($rows); $i++) {
526
  "WHERE original='$original' AND lang='$lang' AND timestamp='$timestamp' " .
527
  "ORDER BY timestamp DESC";
528
  $rows = $GLOBALS['wpdb']->get_results($query);
529
+ tp_logger($query, 3);
530
  // We only delete if we found something to delete and it is allowed to delete it (user either did that - by ip, has the translator role or is an admin)
531
  if (!empty($rows) && (($rows[0]->translated_by == $_SERVER['REMOTE_ADDR'] && $rows[0]->source == '0') || (is_user_logged_in() && current_user_can(TRANSLATOR)) || current_user_can('manage_options'))) {
532
  // delete faulty record
534
  "FROM {$this->translation_log_table} " .
535
  "WHERE original='$original' AND lang='$lang' AND timestamp='$timestamp'";
536
  $GLOBALS['wpdb']->query($query);
537
+ tp_logger($query, 3);
538
  // retrieve last translation
539
  $query = "SELECT translated, source " .
540
  "FROM {$this->translation_log_table} " .
541
  "WHERE original='$original' AND lang='$lang' " .
542
  "ORDER BY timestamp DESC";
543
  $rows = $GLOBALS['wpdb']->get_results($query);
544
+ tp_logger($query, 3);
545
 
546
  // delete and revert to last in database
547
  $delvalues = "(original ='$original' AND lang='$lang')";
548
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
549
  $this->cache_delete($original, $lang);
550
+ tp_logger($update, 3);
551
  $result = $GLOBALS['wpdb']->query($update);
552
  if (!empty($rows)) {
553
  $translated = $GLOBALS['wpdb']->escape($rows[0]->translated);
554
  $values = "('" . $original . "','" . $translated . "','" . $lang . "','" . $rows[0]->source . "')";
555
  $update = "INSERT INTO " . $this->translation_table . " (original, translated, lang, source) VALUES $values";
556
+ tp_logger($update, 3);
557
  $result = $GLOBALS['wpdb']->query($update);
558
  } else {
559
  // there is nothing to revert to...
574
 
575
  //$ref = getenv('HTTP_REFERER');
576
  $original = transposh_utils::base64_url_decode($token);
577
+ tp_logger("Inside alt for $original ($token)", 4);
578
 
579
  if (!isset($original)) {
580
  exit;
582
 
583
  // Check permissions
584
  if (!($this->transposh->is_translator())) {
585
+ tp_logger("Unauthorized alt request " . $_SERVER['REMOTE_ADDR'], 1);
586
  header('HTTP/1.0 401 Unauthorized alt request');
587
  exit;
588
  }
589
+ tp_logger('Passed check for editable and translator', 4);
590
 
591
  // The original content is encoded as base64 before it is sent (i.e. token), after we
592
  // decode it should just the same after it was parsed.
601
  "FROM {$this->translation_table} " .
602
  "WHERE original='$original' AND source=0 " .
603
  "ORDER BY lang";
604
+ tp_logger("query is $query");
605
  $rows = $GLOBALS['wpdb']->get_results($query);
606
 
607
  echo json_encode($rows);
623
  "FROM {$this->translation_log_table} " .
624
  "WHERE source= 0 $dateterm " .
625
  "ORDER BY timestamp ASC $limitterm";
626
+ tp_logger("query is $query");
627
 
628
  $rows = $GLOBALS['wpdb']->get_results($query);
629
  return $rows;
634
  */
635
 
636
  function setup_db($force = false) {
637
+ tp_logger("Enter");
638
  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
639
 
640
  $installed_ver = get_option(TRANSPOSH_DB_VERSION);
641
 
642
  if ($installed_ver != DB_VERSION || $force) {
643
+ tp_logger("Attempting to create table {$this->translation_table}", 1);
644
  // notice - keep every field on a new line or dbdelta fails
645
  $GLOBALS['wpdb']->query("ALTER TABLE {$this->translation_table} DROP PRIMARY KEY");
646
  $sql = "CREATE TABLE {$this->translation_table} (
654
  dbDelta($sql);
655
  $GLOBALS['wpdb']->query("ALTER TABLE {$this->translation_table} CONVERT TO CHARSET utf8 COLLATE utf8_bin");
656
 
657
+ tp_logger("Attempting to create table {$this->translation_log_table}", 1);
658
  // notice - keep every field on a new line or dbdelta fails
659
  // this should be removed in a far future...
660
  $GLOBALS['wpdb']->query("ALTER TABLE {$this->translation_log_table} DROP PRIMARY KEY");
674
  update_option(TRANSPOSH_DB_VERSION, DB_VERSION);
675
  }
676
 
677
+ tp_logger("Exit");
678
  }
679
 
680
  /**
720
  " WHERE `lang` = '$language'" .
721
  " AND `translated` LIKE '{$n}{$term}{$n}'";
722
  //TODO wait for feedbacks to see if we should put a limit here.
723
+ tp_logger($query, 4);
724
  $result = array();
725
  if (strlen($term) < 3) return $result;
726
  $rows = $GLOBALS['wpdb']->get_results($query);
760
  ' WHERE ' . $this->translation_table . '.source > 0' .
761
  " AND timestamp < SUBDATE(NOW(),$days)";
762
  $result = $GLOBALS['wpdb']->query($cleanup);
763
+ tp_logger($cleanup, 4);
764
  // clean up cache so that results will actually show
765
  $this->cache_clean();
766
  exit;
775
  ' GROUP BY `original` , `lang` , `translated` , `translated_by` , `timestamp` , `source`' .
776
  ' HAVING count( * ) >1';
777
  $rows = $GLOBALS['wpdb']->get_results($dedup);
778
+ tp_logger($dedup, 3);
779
  foreach ($rows as $row) {
780
  $row->original = $GLOBALS['wpdb']->escape($row->original);
781
  $row->translated = $GLOBALS['wpdb']->escape($row->translated);
783
  $delvalues = "(original ='{$row->original}' AND lang='{$row->lang}' AND translated='{$row->translated}'" .
784
  " AND translated_by='{$row->translated_by}' AND timestamp='{$row->timestamp}' AND source='{$row->source}')";
785
  $update = "DELETE FROM " . $this->translation_log_table . " WHERE $delvalues";
786
+ tp_logger($update, 3);
787
  $result = $GLOBALS['wpdb']->query($update);
788
  $values = "('{$row->original}','{$row->lang}','{$row->translated}','$row->translated_by','$row->timestamp','$row->source')";
789
  $update = "INSERT INTO " . $this->translation_log_table . " (original, lang, translated, translated_by, timestamp, source) VALUES $values";
790
+ tp_logger($update, 3);
791
  $result = $GLOBALS['wpdb']->query($update);
792
  $this->cache_delete($row->original, $row->lang);
793
  }
802
  ' AND w2.source >0' .
803
  ' AND w1.timestamp < w2.timestamp';
804
  $rows = $GLOBALS['wpdb']->get_results($autojunk);
805
+ tp_logger($autojunk, 3);
806
  foreach ($rows as $row) {
807
  $row->original = $GLOBALS['wpdb']->escape($row->original);
808
  $row->translated = $GLOBALS['wpdb']->escape($row->translated);
811
  " AND translated_by='{$row->translated_by}' AND timestamp='{$row->timestamp}' AND source='{$row->source}')";
812
  $update = "DELETE FROM " . $this->translation_log_table . " WHERE $delvalues";
813
  $result = $GLOBALS['wpdb']->query($update);
814
+ tp_logger($update, 3);
815
  $this->cache_delete($row->original, $row->lang);
816
  }
817
 
821
  ' GROUP BY `original` , `lang`' .
822
  ' HAVING count( * ) >1';
823
  $rows = $GLOBALS['wpdb']->get_results($dedup);
824
+ tp_logger($dedup, 3);
825
  foreach ($rows as $row) {
826
  $row->original = $GLOBALS['wpdb']->escape($row->original);
827
  $row->lang = $GLOBALS['wpdb']->escape($row->lang);
829
  if ($source != NULL) {
830
  $delvalues = "(original ='{$row->original}' AND lang='{$row->lang}')";
831
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
832
+ tp_logger($update, 3);
833
  $result = $GLOBALS['wpdb']->query($update);
834
  $row->translated = $GLOBALS['wpdb']->escape($translation);
835
  $row->source = $GLOBALS['wpdb']->escape($source);
836
  $values = "('{$row->original}','{$row->lang}','{$row->translated}','$row->source')";
837
  $update = "INSERT INTO " . $this->translation_table . " (original, lang, translated, source) VALUES $values";
838
+ tp_logger($update, 3);
839
  $result = $GLOBALS['wpdb']->query($update);
840
  }
841
  $this->cache_delete($row->original, $row->lang);
869
  ' GROUP BY original, lang' .
870
  ' HAVING count( * ) >1';
871
  $rows = $GLOBALS['wpdb']->get_results($duptrans);
872
+ tp_logger($duptrans, 3);
873
  foreach ($rows as $row) {
874
  $row->original = $GLOBALS['wpdb']->escape($row->original);
875
  $delvalues = "(original ='{$row->original}' AND lang='{$row->lang}')";
876
  $row->original = $GLOBALS['wpdb']->escape($row->original);
877
  $update = "DELETE FROM " . $this->translation_log_table . " WHERE $delvalues";
878
+ tp_logger($update, 3);
879
  // $result = $GLOBALS['wpdb']->query($update);
880
  } */
881
  $this->cache_clean();
898
  $logvalues .= "('" . $original . "','" . $translation . "','" . $lang . "','" . $by . "',FROM_UNIXTIME(" . $timestamp . "),'" . $source . "')";
899
 
900
  $update = "DELETE FROM " . $this->translation_table . " WHERE $delvalues";
901
+ tp_logger($update, 3);
902
  $result = $GLOBALS['wpdb']->query($update);
903
  $update = "INSERT INTO " . $this->translation_table . " (original, translated, lang, source) VALUES $values";
904
+ tp_logger($update, 3);
905
  $result = $GLOBALS['wpdb']->query($update);
906
 
907
  if ($result !== FALSE) {
908
  // update the transaction log too
909
  $log = "INSERT INTO " . $this->translation_log_table . " (original, translated, lang, translated_by, timestamp, source) " .
910
  "VALUES $logvalues";
911
+ tp_logger($log, 3);
912
  $result = $GLOBALS['wpdb']->query($log);
913
  } else {
914
+ tp_logger(mysql_error(), 1);
915
+ tp_logger("Error !!! failed to insert to db $original , $translation, $lang,", 0);
916
  header("HTTP/1.0 404 Failed to update language database " . mysql_error());
917
  }
918
  }
wp/transposh_options.php CHANGED
@@ -1,491 +1,339 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
- // OLD Options - To be removed
15
- // removed real old options support, no migration from 0.3.9 anymore
16
- // @since 0.5.6
17
- //Option defining transposh widget appearance
18
- define('OLD_WIDGET_STYLE', 'widget_style');
19
- //Use CSS sprites for flags if available
20
- define('OLD_WIDGET_CSS_FLAGS', 'widget_css_flags');
21
- //Wrap widget elements in an unordered list per #63 @since 0.3.7
22
- define('OLD_WIDGET_IN_LIST', 'widget_in_list');
23
- //Option to enable/disable msn translation
24
- define('OLD_ENABLE_MSN_TRANSLATE', 'enable_msntranslate');
25
- //Option defining transposh widget file used @since 0.5.6
26
- define('OLD_WIDGET_FILE', 'widget_file'); //unset!!!
27
- //Option to store the msn API key
28
- define('MSN_TRANSLATE_KEY', 'msn_key');
29
- //Option to store the msn API key
30
- define('GOOGLE_TRANSLATE_KEY', 'google_key');
31
- //Option to store the msn API key
32
- define('OHT_TRANSLATE_ID', 'oht_id');
33
- //Option to store the msn API key
34
- define('OHT_TRANSLATE_KEY', 'oht_key');
35
-
36
- //defines are used to avoid typos
37
- //Option defining whether anonymous translation is allowed.
38
- define('ANONYMOUS_TRANSLATION', 'allow_anonymous_translation');
39
- //Option defining the list of currentlly viewable languages
40
- define('VIEWABLE_LANGS', 'viewable_languages');
41
- //Option defining the list of currentlly editable languages
42
- define('EDITABLE_LANGS', 'editable_languages');
43
- //Option defining the ordered list of languages @since 0.3.9
44
- define('SORTED_LANGS', 'sorted_languages');
45
- //Option to enable/disable auto translation
46
- define('ENABLE_AUTO_TRANSLATE', 'enable_autotranslate');
47
- //Option to enable/disable auto translation
48
- define('ENABLE_AUTO_POST_TRANSLATE', 'enable_autoposttranslate');
49
- //Option to store translator preference @since 0.4.2
50
- define('PREFERRED_TRANSLATOR', 'preferred_translator');
51
- //Option to enable/disable default language translation
52
- define('ENABLE_DEFAULT_TRANSLATE', 'enable_default_translate');
53
- //Option to enable/disable default language translation @since 0.3.6
54
- define('ENABLE_SEARCH_TRANSLATE', 'enable_search_translate');
55
- //Option to enable/disable url translation @since 0.5.3
56
- define('ENABLE_URL_TRANSLATE', 'enable_url_translate');
57
- //Make the gettext interface optional (@since 0.6.4)
58
- define('TRANSPOSH_GETTEXT_INTEGRATION', 'transposh_gettext_integration');
59
- //Allow override for default locale (@since 0.7.5)
60
- define('TRANSPOSH_DEFAULT_LOCALE_OVERRIDE', 'transposh_locale_override');
61
- //Option to enable/disable rewrite of permalinks
62
- define('ENABLE_PERMALINKS', 'enable_permalinks');
63
- //Option to enable/disable footer scripts (2.8 and up)
64
- define('ENABLE_FOOTER_SCRIPTS', 'enable_footer_scripts');
65
- //Option to enable detect and redirect language @since 0.3.8
66
- define('ENABLE_DETECT_LANG_AND_REDIRECT', 'enable_detect_redirect');
67
- //Option defining the default language
68
- define('DEFAULT_LANG', 'default_language');
69
- //Option allowing progress bar display
70
- define('WIDGET_PROGRESSBAR', 'widget_progressbar');
71
- //Allows user to set his default language per #63 @since 0.3.8
72
- define('WIDGET_ALLOW_SET_DEFLANG', 'widget_allow_set_deflang');
73
- //Allows removing of transposh logo in exchange for an ad @since 0.6.0
74
- define('WIDGET_REMOVE_LOGO_FOR_AD', 'widget_remove_logo');
75
- //Allows theming of the progressbar and edit window @since 0.7.0
76
- define('WIDGET_THEME', 'widget_theme');
77
- //Stores the site key to transposh services (backup @since 0.5.0)
78
- define('TRANSPOSH_KEY', 'transposh_key');
79
- //Stores the site key to transposh services (backup @since 0.5.0)
80
- define('TRANSPOSH_BACKUP_SCHEDULE', 'transposh_backup_schedule');
81
- //Stores hidden warnings (@since 0.7.6)
82
- define('TRANSPOSH_ADMIN_HIDE_WARNINGS', 'transposh_admin_hide_warnings');
83
- //Should I allow collecting of anonymous stats (@since 0.7.6)
84
- define('TRANSPOSH_COLLECT_STATS', 'transposh_admin_hide_warnings');
85
 
86
- class transposh_plugin_options {
87
-
88
- /** @var array storing all our options */
89
- private $options = array();
90
-
91
- /** @var boolean set to true if any option was changed */
92
- private $changed = false;
93
-
94
- function set_default_option_value($option, $value = '') {
95
- if (!isset($this->options[$option])) $this->options[$option] = $value;
96
- }
97
-
98
- function transposh_plugin_options() {
99
-
100
- // load them here
101
- $this->options = get_option(TRANSPOSH_OPTIONS);
102
- $this->set_default_option_value(ANONYMOUS_TRANSLATION, 1);
103
- $this->set_default_option_value(ENABLE_SEARCH_TRANSLATE, 1);
104
- $this->set_default_option_value(ENABLE_AUTO_TRANSLATE, 1);
105
- $this->set_default_option_value(PREFERRED_TRANSLATOR, 1);
106
- $this->set_default_option_value(TRANSPOSH_GETTEXT_INTEGRATION, 1);
107
- $this->set_default_option_value(TRANSPOSH_DEFAULT_LOCALE_OVERRIDE, 1);
108
- $this->set_default_option_value(VIEWABLE_LANGS);
109
- $this->set_default_option_value(EDITABLE_LANGS);
110
- //$this->set_default_option_value(SORTED_LANGS);
111
- $this->set_default_option_value(ENABLE_AUTO_POST_TRANSLATE);
112
- $this->set_default_option_value(ENABLE_DEFAULT_TRANSLATE);
113
- $this->set_default_option_value(ENABLE_SEARCH_TRANSLATE);
114
- $this->set_default_option_value(ENABLE_URL_TRANSLATE);
115
- $this->set_default_option_value(ENABLE_PERMALINKS);
116
- $this->set_default_option_value(ENABLE_FOOTER_SCRIPTS);
117
- $this->set_default_option_value(ENABLE_DETECT_LANG_AND_REDIRECT);
118
- $this->set_default_option_value(DEFAULT_LANG);
119
- $this->set_default_option_value(WIDGET_PROGRESSBAR);
120
- $this->set_default_option_value(WIDGET_ALLOW_SET_DEFLANG);
121
- $this->set_default_option_value(WIDGET_REMOVE_LOGO_FOR_AD);
122
- $this->set_default_option_value(WIDGET_THEME, 'ui-lightness');
123
- $this->set_default_option_value(MSN_TRANSLATE_KEY);
124
- $this->set_default_option_value(GOOGLE_TRANSLATE_KEY);
125
- $this->set_default_option_value(OHT_TRANSLATE_ID);
126
- $this->set_default_option_value(OHT_TRANSLATE_KEY);
127
- $this->set_default_option_value(TRANSPOSH_KEY);
128
- $this->set_default_option_value(TRANSPOSH_BACKUP_SCHEDULE, 2);
129
- $this->set_default_option_value(TRANSPOSH_ADMIN_HIDE_WARNINGS);
130
- $this->set_default_option_value(TRANSPOSH_COLLECT_STATS, 1);
131
- $this->migrate_old_config();
132
-
133
- }
134
-
135
- // TODO: remove this function in a few versions (fix css, db version..., css flag
136
- private function migrate_old_config() {
137
-
138
- if (isset($this->options[OLD_WIDGET_STYLE])) {
139
- if ($this->options[OLD_WIDGET_STYLE] == 1 && $this->options[OLD_WIDGET_CSS_FLAGS] == 0) {
140
- $this->set_widget_file('flags/tpw_flags.php');
141
- }
142
- if ($this->options[OLD_WIDGET_STYLE] == 1 && $this->options[OLD_WIDGET_CSS_FLAGS] == 1) {
143
- $this->set_widget_file('flags/tpw_flags_css.php');
144
- }
145
- if ($this->options[OLD_WIDGET_STYLE] == 2 && $this->options[OLD_WIDGET_CSS_FLAGS] == 0) {
146
- $this->set_widget_file('flagslist/tpw_list_with_flags.php');
147
- }
148
- if ($this->options[OLD_WIDGET_STYLE] == 2 && $this->options[OLD_WIDGET_CSS_FLAGS] == 1) {
149
- $this->set_widget_file('flagslist/tpw_list_with_flags_css.php');
150
- }
151
- unset($this->options[OLD_WIDGET_CSS_FLAGS]);
152
- unset($this->options[OLD_WIDGET_IN_LIST]);
153
- unset($this->options[OLD_WIDGET_STYLE]);
154
- unset($this->options[OLD_ENABLE_MSN_TRANSLATE]);
155
-
156
- update_option(TRANSPOSH_OPTIONS, $this->options);
157
- }
158
- }
159
-
160
- function get_anonymous_translation() {
161
- return $this->options[ANONYMOUS_TRANSLATION];
162
- }
163
-
164
- function get_viewable_langs() {
165
- return $this->options[VIEWABLE_LANGS];
166
- }
167
-
168
- function get_editable_langs() {
169
- return $this->options[EDITABLE_LANGS];
170
- }
171
-
172
- /**
173
- * Get a user sorted language list
174
- * @since 0.3.9
175
- * @return array sorted list of languages, pointing to names and flags
176
- */
177
- function get_sorted_langs() {
178
- if (isset($this->options[SORTED_LANGS]))
179
- return array_merge(array_flip(explode(",", $this->options[SORTED_LANGS])), transposh_consts::$languages);
180
- return transposh_consts::$languages;
181
- }
182
 
183
- function get_widget_progressbar() {
184
- return $this->options[WIDGET_PROGRESSBAR];
185
- }
186
 
187
- function get_widget_remove_logo() {
188
- return $this->options[WIDGET_REMOVE_LOGO_FOR_AD];
 
 
189
  }
190
 
191
- /**
192
- * return theme
193
- * @since 0.7.0
194
- * @return string
195
- */
196
- function get_widget_theme() {
197
- return $this->options[WIDGET_THEME];
198
  }
199
 
200
- function get_widget_allow_set_default_language() {
201
- return $this->options[WIDGET_ALLOW_SET_DEFLANG];
202
  }
203
 
204
- function get_enable_permalinks() {
205
- return $this->options[ENABLE_PERMALINKS];
206
  }
207
 
208
- function get_enable_footer_scripts() {
209
- return $this->options[ENABLE_FOOTER_SCRIPTS];
210
  }
211
 
212
- function get_enable_detect_language() {
213
- return $this->options[ENABLE_DETECT_LANG_AND_REDIRECT];
214
  }
215
 
216
- function get_enable_default_translate() {
217
- return $this->options[ENABLE_DEFAULT_TRANSLATE];
218
  }
219
 
220
- function get_enable_search_translate() {
221
- return $this->options[ENABLE_SEARCH_TRANSLATE];
222
  }
223
 
224
- function get_enable_url_translate() {
225
- return $this->options[ENABLE_URL_TRANSLATE];
226
- }
227
 
228
- function get_enable_auto_translate() {
229
- // default is true
230
- return $this->options[ENABLE_AUTO_TRANSLATE];
231
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
 
233
- function get_msn_key() {
234
- return $this->options[MSN_TRANSLATE_KEY];
235
- }
236
 
237
- function get_google_key() {
238
- return $this->options[GOOGLE_TRANSLATE_KEY];
239
- }
240
 
241
- function get_oht_id() {
242
- return $this->options[OHT_TRANSLATE_ID];
243
  }
244
 
245
- function get_oht_key() {
246
- return $this->options[OHT_TRANSLATE_KEY];
247
- }
248
 
249
- function get_enable_auto_post_translate() {
250
- return $this->options[ENABLE_AUTO_POST_TRANSLATE];
 
 
 
251
  }
252
 
253
- function get_preferred_translator() {
254
- // default is google(1) (2 is msn)
255
- return $this->options[PREFERRED_TRANSLATOR];
 
 
256
  }
257
 
258
- /**
259
- * Gets the default language setting, i.e. the source language which normally should not be translated.
260
- * @return string Default language
261
- */
262
- function get_default_language() {
263
- $default = $this->options[DEFAULT_LANG];
264
- if (!isset(transposh_consts::$languages[$default])) {
265
- if (defined('WPLANG') && isset(transposh_consts::$languages[WPLANG])) {
266
- $default = WPLANG;
267
  } else {
268
- $default = "en";
269
  }
270
  }
271
- return $default;
272
- }
273
-
274
- function get_transposh_key() {
275
- return $this->options[TRANSPOSH_KEY];
276
- }
277
-
278
- function get_transposh_backup_schedule() {
279
- return $this->options[TRANSPOSH_BACKUP_SCHEDULE];
280
- }
281
-
282
- function get_transposh_gettext_integration() {
283
- return $this->options[TRANSPOSH_GETTEXT_INTEGRATION];
284
- }
285
 
286
- function get_transposh_default_locale_override() {
287
- return $this->options[TRANSPOSH_DEFAULT_LOCALE_OVERRIDE];
288
- }
289
-
290
- function get_transposh_admin_hide_warning($id) {
291
- return strpos($this->options[TRANSPOSH_ADMIN_HIDE_WARNINGS], $id . ',') !== false;
292
- }
293
-
294
- function get_transposh_collect_stats() {
295
- return $this->options[TRANSPOSH_COLLECT_STATS];
296
- }
297
 
298
- /**
299
- * Sets a value at the options array
300
- * @param mixed $val
301
- * @param pointer $option Points to the option in the options array
302
- */
303
- private function set_value($val, &$option) {
304
- if ($val !== $option) {
305
- $option = $val;
306
  $this->changed = true;
307
  }
308
  }
309
 
310
- function set_anonymous_translation($val) {
311
- $val = ($val) ? 1 : 0;
312
- $this->set_value($val, $this->options[ANONYMOUS_TRANSLATION]);
313
- }
314
-
315
- function set_viewable_langs($val) {
316
- $this->set_value($val, $this->options[VIEWABLE_LANGS]);
317
- }
318
-
319
- function set_editable_langs($val) {
320
- $this->set_value($val, $this->options[EDITABLE_LANGS]);
321
- }
322
-
323
- function set_sorted_langs($val) {
324
- $this->set_value($val, $this->options[SORTED_LANGS]);
325
- }
326
 
327
- function set_widget_progressbar($val) {
328
- $val = ($val) ? 1 : 0;
329
- $this->set_value($val, $this->options[WIDGET_PROGRESSBAR]);
330
- }
331
 
332
- function set_widget_remove_logo($val) {
333
- $val = ($val) ? 1 : 0;
334
- $this->set_value($val, $this->options[WIDGET_REMOVE_LOGO_FOR_AD]);
335
- }
336
 
337
- /**
338
- * Set the widget theme
339
- * @since 0.7.0
340
- * @param string $val
341
- */
342
- function set_widget_theme($val) {
343
- $this->set_value($val, $this->options[WIDGET_THEME]);
344
- }
345
 
346
- function set_widget_allow_set_default_language($val) {
347
- $val = ($val) ? 1 : 0;
348
- $this->set_value($val, $this->options[WIDGET_ALLOW_SET_DEFLANG]);
349
- }
350
 
351
- function set_enable_permalinks($val) {
352
- $val = ($val) ? 1 : 0;
353
- $this->set_value($val, $this->options[ENABLE_PERMALINKS]);
354
- }
355
 
356
- function set_enable_detect_language($val) {
357
- $val = ($val) ? 1 : 0;
358
- $this->set_value($val, $this->options[ENABLE_DETECT_LANG_AND_REDIRECT]);
359
- }
 
 
 
360
 
361
- function set_enable_footer_scripts($val) {
362
- $val = ($val) ? 1 : 0;
363
- $this->set_value($val, $this->options[ENABLE_FOOTER_SCRIPTS]);
364
- }
365
 
366
- function set_enable_default_translate($val) {
367
- $val = ($val) ? 1 : 0;
368
- $this->set_value($val, $this->options[ENABLE_DEFAULT_TRANSLATE]);
369
- }
370
 
371
- function set_enable_search_translate($val) {
372
- $val = ($val) ? 1 : 0;
373
- $this->set_value($val, $this->options[ENABLE_SEARCH_TRANSLATE]);
374
- }
 
 
 
 
375
 
376
- function set_enable_url_translate($val) {
377
- $val = ($val) ? 1 : 0;
378
- $this->set_value($val, $this->options[ENABLE_URL_TRANSLATE]);
379
- }
380
 
381
- function set_enable_auto_translate($val) {
382
- $val = ($val) ? 1 : 0;
383
- $this->set_value($val, $this->options[ENABLE_AUTO_TRANSLATE]);
384
- }
385
 
386
- function set_msn_key($val) {
387
- $this->set_value($val, $this->options[MSN_TRANSLATE_KEY]);
388
- }
389
 
390
- function set_google_key($val) {
391
- $this->set_value($val, $this->options[GOOGLE_TRANSLATE_KEY]);
392
- }
393
 
394
- function set_oht_id($val) {
395
- $this->set_value($val, $this->options[OHT_TRANSLATE_ID]);
396
- }
397
-
398
- function set_oht_key($val) {
399
- $this->set_value($val, $this->options[OHT_TRANSLATE_KEY]);
400
- }
401
-
402
- function set_enable_auto_post_translate($val) {
403
- $val = ($val) ? 1 : 0;
404
- $this->set_value($val, $this->options[ENABLE_AUTO_POST_TRANSLATE]);
405
- }
406
 
407
- function set_preferred_translator($val) {
408
- $this->set_value($val, $this->options[PREFERRED_TRANSLATOR]);
409
  }
410
 
411
  /**
412
- * Sets the default language setting, i.e. the source language which
413
- * should not be translated.
414
- * @param string $val Language set as default
415
  */
416
- function set_default_language($val) {
417
- if (!transposh_consts::$languages[$val]) {
418
- $val = "en";
 
419
  }
420
- $this->set_value($val, $this->options[DEFAULT_LANG]);
421
- }
422
-
423
- function set_transposh_key($val) {
424
- $this->set_value($val, $this->options[TRANSPOSH_KEY]);
425
- }
426
-
427
- function set_transposh_backup_schedule($val) {
428
- $this->set_value($val, $this->options[TRANSPOSH_BACKUP_SCHEDULE]);
429
- }
430
-
431
- function set_transposh_gettext_integration($val) {
432
- $val = ($val) ? 1 : 0;
433
- $this->set_value($val, $this->options[TRANSPOSH_GETTEXT_INTEGRATION]);
434
  }
435
 
436
- function set_transposh_default_locale_override($val) {
437
- $val = ($val) ? 1 : 0;
438
- $this->set_value($val, $this->options[TRANSPOSH_DEFAULT_LOCALE_OVERRIDE]);
439
  }
440
 
441
  function set_transposh_admin_hide_warning($id) {
442
  if (!$this->get_transposh_admin_hide_warning($id)) {
443
- $this->set_value($this->options[TRANSPOSH_ADMIN_HIDE_WARNINGS] . $id . ',', $this->options[TRANSPOSH_ADMIN_HIDE_WARNINGS]);
444
  }
445
  }
446
 
447
- function set_transposh_collect_stats($val) {
448
- $val = ($val) ? 1 : 0;
449
- $this->set_value($val, $this->options[TRANSPOSH_COLLECT_STATS]);
450
- }
451
-
452
  /**
453
  * Updates options at the wordpress options table if there was a change
454
  */
455
  function update_options() {
456
  if ($this->changed) {
 
 
 
457
  update_option(TRANSPOSH_OPTIONS, $this->options);
 
458
  } else {
459
-
460
  }
461
- $this->changed = false;
462
  }
463
 
464
  /**
465
- * Determine if the given language code is the default language
466
- * @param string $language
467
- * @return boolean Is this the default language?
468
  */
469
- function is_default_language($language) {
470
- return ($this->get_default_language() == $language || '' == $language);
 
 
 
 
471
  }
472
 
473
  /**
474
- * Determine if the given language in on the list of editable languages
475
- * @return boolean Is this language editable?
 
476
  */
477
- function is_editable_language($language) {
478
- if ($this->is_default_language($language)) return true;
479
- return (strpos($this->get_editable_langs(), $language) !== false);
480
  }
481
 
482
  /**
483
- * Determine if the given language in on the list of viewable languages
484
  * @return boolean Is this language viewable?
485
  */
486
- function is_viewable_language($language) {
487
  if ($this->is_default_language($language)) return true;
488
- return (strpos($this->get_viewable_langs(), $language) !== false);
489
  }
490
 
491
  }
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
+ // This magic value will cause the option to be set from post
15
+ define('TP_FROM_POST', 'tp_post_1x');
16
+ // types of options
17
+ define('TP_OPT_BOOLEAN', 0);
18
+ define('TP_OPT_STRING', 1);
19
+ define('TP_OPT_IP', 2);
20
+ define('TP_OPT_OTHER', 3);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ /**
23
+ * @property string $desc Description
24
+ */
25
+ class transposh_option {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
+ private $name;
28
+ private $value;
29
+ private $type;
30
 
31
+ public function __construct($name, $value = '', $type = '') {
32
+ $this->name = $name;
33
+ $this->value = $value;
34
+ $this->type = $type;
35
  }
36
 
37
+ function __toString() {
38
+ return (string) $this->value;
 
 
 
 
 
39
  }
40
 
41
+ function set_value($value) {
42
+ $this->value = $value;
43
  }
44
 
45
+ function from_post() {
46
+ $this->value = $_POST[$this->name];
47
  }
48
 
49
+ function get_name() {
50
+ return $this->name;
51
  }
52
 
53
+ function get_value() {
54
+ return $this->value;
55
  }
56
 
57
+ function get_type() {
58
+ return $this->type;
59
  }
60
 
61
+ function post_value_id_name() {
62
+ return 'value="' . $this->value . '" id="' . $this->name . '" name="' . $this->name . '"';
63
  }
64
 
65
+ }
 
 
66
 
67
+ /**
68
+ * Used properties for code completion - we'll try to keep them in same order as admin screens
69
+ *
70
+ * Language tab
71
+ * @property string $default_language Option defining the default language
72
+ * @property transposh_option $default_language_o
73
+ * @property string $viewable_languages Option defining the list of currently viewable languages
74
+ * @property transposh_option $viewable_languages_o
75
+ * @property string $sorted_languages Option defining the ordered list of languages @since 0.3.9
76
+ * @property transposh_option $sorted_languages_o
77
+ *
78
+ * Settings
79
+ *
80
+ * @property boolean $allow_anonymous_translation Option defining whether anonymous translation is allowed
81
+ * @property transposh_option $allow_anonymous_translation_o
82
+ * @property boolean $enable_default_translate Option to enable/disable default language translation
83
+ * @property transposh_option $enable_default_translate_o
84
+ * @property boolean $enable_search_translate Option to enable/disable default language translation @since 0.3.6
85
+ * @property transposh_option $enable_search_translate_o
86
+ * @property boolean $transposh_gettext_integration Make the gettext interface optional (@since 0.6.4)
87
+ * @property transposh_option $transposh_gettext_integration_o
88
+ * @property boolean $transposh_locale_override Allow override for default locale (@since 0.7.5)
89
+ * @property transposh_option $transposh_locale_override_o
90
+ *
91
+ * @property boolean $enable_permalinks Option to enable/disable rewrite of permalinks
92
+ * @property transposh_option $enable_permalinks_o
93
+ * @property boolean $enable_footer_scripts Option to enable/disable footer scripts (2.8 and up)
94
+ * @property transposh_option $enable_footer_scripts_o
95
+ * @property boolean $enable_detect_redirect Option to enable detect and redirect language @since 0.3.8
96
+ * @property transposh_option $enable_detect_redirect_o
97
+ * @property boolean $transposh_collect_stats Should I allow collecting of anonymous stats (@since 0.7.6)
98
+ * @property transposh_option $transposh_collect_stats_o
99
+ *
100
+ * @property int $transposh_backup_schedule Stores the schedule for the backup service, 0-none, 1-daily, 2-live (backup @since 0.5.0)
101
+ * @property transposh_option $transposh_backup_schedule_o
102
+ * @property string $transposh_key Stores the site key to transposh services (backup @since 0.5.0)
103
+ * @property transposh_option $transposh_key_o
104
+ *
105
+ * Engines
106
+ *
107
+ * @property boolean $enable_autotranslate Option to enable/disable auto translation
108
+ * @property transposh_option $enable_autotranslate_o
109
+ * @property boolean $enable_autoposttranslate Option to enable/disable auto translation of posts
110
+ * @property transposh_option $enable_autoposttranslate_o
111
+ * @property string $msn_key Option to store the msn API key
112
+ * @property transposh_option $msn_key_o
113
+ * @property string $google_key Option to store the msn Google key
114
+ * @property transposh_option $google_key_o
115
+ * @property int $preferred_translator Option to store translator preference @since 0.4.2
116
+ * @property transposh_option $preferred_translator_o
117
+ * @property string $oht_id Option to store the oht ID
118
+ * @property transposh_option $oht_id_o
119
+ * @property string $oht_key Option to store the oht key;
120
+ * @property transposh_option $oht_key_o
121
+ *
122
+ * Widget
123
+ *
124
+ * @property boolean $widget_progressbar Option allowing progress bar display
125
+ * @property transposh_option $widget_progressbar_o
126
+ * @property boolean $widget_allow_set_deflang Allows user to set his default language per #63 @since 0.3.8
127
+ * @property transposh_option $widget_allow_set_deflang_o
128
+ * @property boolean $widget_remove_logo Allows removing of transposh logo in exchange for an ad @since 0.6.0
129
+ * @property transposh_option $widget_remove_logo_o
130
+ * @property string $widget_theme Allows theming of the progressbar and edit window @since 0.7.0
131
+ * @property transposh_option $widget_theme_o
132
+ *
133
+ * Advanced
134
+ *
135
+ * @property boolean $enable_url_translate Option to enable/disable url translation @since 0.5.3
136
+ * @property transposh_option $enable_url_translate_o
137
+ * @property boolean $parser_dont_break_puncts Option to allow punctuations such as , . ( not to break @since 0.9.0
138
+ * @property transposh_option $parser_dont_break_puncts_o
139
+ * @property boolean $parser_dont_break_numbers Option to allow numbers not to break @since 0.9.0
140
+ * @property transposh_option $parser_dont_break_numbers_o
141
+ * @property boolean $parser_dont_break_entities Option to allow html entities not to break @since 0.9.0
142
+ * @property transposh_option $parser_dont_break_entities_o
143
+ * @property boolean $debug_enable Option to enable debug
144
+ * @property transposh_option $debug_enable_o
145
+ * @property int $debug_loglevel Option holding the level of logging
146
+ * @property transposh_option $debug_loglevel_o
147
+ * @property string $debug_logfile Option holding a filename to store debugging into
148
+ * @property transposh_option $debug_logfile_o
149
+ * @property ip $debug_remoteip Option that limits remote firePhp debug to a certain IP
150
+ * @property transposh_option $debug_remoteip_o
151
+ *
152
+ * Hidden
153
+ *
154
+ * @property transposh_option $transposh_admin_hide_warnings Stores hidden warnings (@since 0.7.6)
155
+ *
156
+ */
157
+ class transposh_plugin_options {
158
 
159
+ /** @var array storing all our options */
160
+ private $options = array();
 
161
 
162
+ /** @var boolean set to true if any option was changed */
163
+ private $changed = false;
164
+ private $vars = array();
165
 
166
+ function set_default_option_value($option, $value = '') {
167
+ if (!isset($this->options[$option])) $this->options[$option] = $value;
168
  }
169
 
170
+ // private $vars array() = (1,2,3);
 
 
171
 
172
+ function register_option($name, $type, $default_value = '') {
173
+ if (!isset($this->options[$name]))
174
+ $this->options[$name] = $default_value;
175
+ // can't log... tp_logger($name . ' ' . $this->options[$name]);
176
+ $this->vars[$name] = new transposh_option($name, $this->options[$name], $type);
177
  }
178
 
179
+ function __get($name) {
180
+ if (substr($name, -2) === "_o")
181
+ return $this->vars[substr($name, 0, -2)];
182
+ // can't!? tp_logger($this->vars[$name]->get_value(), 5);
183
+ return $this->vars[$name]->get_value();
184
  }
185
 
186
+ function __set($name, $value) {
187
+ if ($value == TP_FROM_POST) {
188
+ if (isset($_POST[$name])) {
189
+ $value = $_POST[$name];
 
 
 
 
 
190
  } else {
191
+ $value = '';
192
  }
193
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
 
195
+ if (TP_OPT_BOOLEAN == $this->vars[$name]->get_type()) {
196
+ $value = ($value) ? 1 : 0;
197
+ }
 
 
 
 
 
 
 
 
198
 
199
+ if ($this->vars[$name]->get_value() !== $value) {
200
+ tp_logger("option '$name' value set: $value");
201
+ $this->vars[$name]->set_value($value);
 
 
 
 
 
202
  $this->changed = true;
203
  }
204
  }
205
 
206
+ function __construct() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
 
208
+ // can't tp_logger("creating options");
209
+ // load them here
210
+ $this->options = get_option(TRANSPOSH_OPTIONS);
211
+ // tp_logger($this->options);
212
 
213
+ $this->register_option('default_language', TP_OPT_STRING); // default?
214
+ $this->register_option('viewable_languages', TP_OPT_STRING);
215
+ $this->register_option('sorted_languages', TP_OPT_STRING);
 
216
 
217
+ $this->register_option('allow_anonymous_translation', TP_OPT_BOOLEAN, 1);
218
+ $this->register_option('enable_default_translate', TP_OPT_BOOLEAN, 0);
219
+ $this->register_option('enable_search_translate', TP_OPT_BOOLEAN, 1);
220
+ $this->register_option('transposh_gettext_integration', TP_OPT_BOOLEAN, 1);
221
+ $this->register_option('transposh_locale_override', TP_OPT_BOOLEAN, 1);
 
 
 
222
 
223
+ $this->register_option('enable_permalinks', TP_OPT_BOOLEAN, 0);
224
+ $this->register_option('enable_footer_scripts', TP_OPT_BOOLEAN, 0);
225
+ $this->register_option('enable_detect_redirect', TP_OPT_BOOLEAN, 0);
226
+ $this->register_option('transposh_collect_stats', TP_OPT_BOOLEAN, 1);
227
 
228
+ $this->register_option('transposh_backup_schedule', TP_OPT_OTHER, 2);
229
+ $this->register_option('transposh_key', TP_OPT_STRING);
 
 
230
 
231
+ $this->register_option('enable_autotranslate', TP_OPT_BOOLEAN, 1);
232
+ $this->register_option('enable_autoposttranslate', TP_OPT_BOOLEAN, 1);
233
+ $this->register_option('msn_key', TP_OPT_STRING);
234
+ $this->register_option('google_key', TP_OPT_STRING);
235
+ $this->register_option('preferred_translator', TP_OPT_OTHER, 1); // 1 is Google, 2 is MSN
236
+ $this->register_option('oht_id', TP_OPT_STRING);
237
+ $this->register_option('oht_key', TP_OPT_STRING);
238
 
 
 
 
 
239
 
240
+ $this->register_option('widget_progressbar', TP_OPT_BOOLEAN, 0);
241
+ $this->register_option('widget_allow_set_deflang', TP_OPT_BOOLEAN, 0);
242
+ $this->register_option('widget_remove_logo', TP_OPT_BOOLEAN, 0);
243
+ $this->register_option('widget_theme', TP_OPT_STRING, 'ui-lightness');
244
 
245
+ $this->register_option('enable_url_translate', TP_OPT_BOOLEAN, 0);
246
+ $this->register_option('parser_dont_break_puncts', TP_OPT_BOOLEAN, 0);
247
+ $this->register_option('parser_dont_break_numbers', TP_OPT_BOOLEAN, 0);
248
+ $this->register_option('parser_dont_break_entities', TP_OPT_BOOLEAN, 0);
249
+ $this->register_option('debug_enable', TP_OPT_BOOLEAN, 0);
250
+ $this->register_option('debug_loglevel', TP_OPT_OTHER, 3);
251
+ $this->register_option('debug_logfile', TP_OPT_STRING, '');
252
+ $this->register_option('debug_remoteip', TP_OPT_IP, '');
253
 
 
 
 
 
254
 
255
+ $this->register_option('transposh_admin_hide_warnings', TP_OPT_OTHER);
 
 
 
256
 
 
 
 
257
 
258
+ // Fix default language if needed, only done once now, and since this was being done constantly, we gain
259
+ //tp_logger($this->default_language->get_value());
 
260
 
261
+ if (!isset(transposh_consts::$languages[$this->default_language])) {
262
+ if (defined('WPLANG') && isset(transposh_consts::$languages[WPLANG])) {
263
+ $this->default_language = WPLANG;
264
+ } else {
265
+ $this->default_language = "en";
266
+ }
267
+ }
 
 
 
 
 
268
 
269
+ // can't log... tp_logger($this->options, 4);
 
270
  }
271
 
272
  /**
273
+ * Get a user sorted language list
274
+ * @since 0.3.9
275
+ * @return array sorted list of languages, pointing to names and flags
276
  */
277
+ function get_sorted_langs() {
278
+ if ($this->sorted_languages) {
279
+ tp_logger($this->sorted_languages, 5);
280
+ return array_merge(array_flip(explode(",", $this->sorted_languages)), transposh_consts::$languages);
281
  }
282
+ return transposh_consts::$languages;
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  }
284
 
285
+ function get_transposh_admin_hide_warning($id) {
286
+ return strpos($this->transposh_admin_hide_warnings, $id . ',') !== false;
 
287
  }
288
 
289
  function set_transposh_admin_hide_warning($id) {
290
  if (!$this->get_transposh_admin_hide_warning($id)) {
291
+ $this->transposh_admin_hide_warnings = $this->transposh_admin_hide_warnings . $id . ',';
292
  }
293
  }
294
 
 
 
 
 
 
295
  /**
296
  * Updates options at the wordpress options table if there was a change
297
  */
298
  function update_options() {
299
  if ($this->changed) {
300
+ foreach ($this->vars as $name => $var) {
301
+ $this->options[$name] = $var->get_value();
302
+ }
303
  update_option(TRANSPOSH_OPTIONS, $this->options);
304
+ $this->changed = false;
305
  } else {
306
+ tp_logger("no changes and no updates done", 3);
307
  }
 
308
  }
309
 
310
  /**
311
+ * Resets all options except keys
 
 
312
  */
313
+ function reset_options() {
314
+ $this->options = array();
315
+ foreach (array('msn_key', 'google_key', 'oht_id', 'oht_key', 'transposh_key') as $key) {
316
+ $this->options[$key] = $this->vars[$key]->get_value();
317
+ }
318
+ update_option(TRANSPOSH_OPTIONS, $this->options);
319
  }
320
 
321
  /**
322
+ * Determine if the given language code is the default language
323
+ * @param string $language
324
+ * @return boolean Is this the default language?
325
  */
326
+ function is_default_language($language) { // XXXX
327
+ return ($this->default_language == $language || '' == $language);
 
328
  }
329
 
330
  /**
331
+ * Determine if the given language in on the list of active languages
332
  * @return boolean Is this language viewable?
333
  */
334
+ function is_active_language($language) {
335
  if ($this->is_default_language($language)) return true;
336
+ return (strpos($this->viewable_languages . ',', $language . ',') !== false);
337
  }
338
 
339
  }
wp/transposh_postpublish.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /*
@@ -34,11 +34,10 @@ class transposh_postpublish {
34
  function transposh_postpublish(&$transposh) {
35
  $this->transposh = &$transposh;
36
  // we'll only do something if so configured to do
37
- if ($this->transposh->options->get_enable_auto_post_translate()) {
38
  add_action('edit_post', array(&$this, 'on_edit'));
39
- // add_action('publish_post',array(&$this, 'on_publish'));
40
- add_action('admin_menu', array(&$this, 'on_admin_menu'));
41
  }
 
42
  }
43
 
44
  /**
@@ -46,15 +45,21 @@ class transposh_postpublish {
46
  */
47
  function on_admin_menu() {
48
  //add our metaboxs to the post and publish pages
49
-
50
- add_meta_box('transposh_postpublish', __('Transposh', TRANSPOSH_TEXT_DOMAIN), array(&$this, "transposh_postpublish_box"), 'post', 'side', 'core');
51
- add_meta_box('transposh_postpublish', __('Transposh', TRANSPOSH_TEXT_DOMAIN), array(&$this, "transposh_postpublish_box"), 'page', 'side', 'core');
52
- add_meta_box('transposh_setlanguage', __('Set post language', TRANSPOSH_TEXT_DOMAIN), array(&$this, "transposh_setlanguage_box"), 'post', 'advanced', 'core');
53
- add_meta_box('transposh_setlanguage', __('Set page language', TRANSPOSH_TEXT_DOMAIN), array(&$this, "transposh_setlanguage_box"), 'page', 'advanced', 'core');
 
 
 
 
 
 
54
  if (!isset($_GET['post'])) return;
55
  if (get_post_meta($_GET['post'], 'transposh_can_translate', true)) { // do isdefined stuff
56
  $this->just_published = true; // this is later used in the meta boxes //XXXXXXXXXXXXXXXXXXXXXXXXXXXX
57
- wp_enqueue_script("transposh_backend", $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/transposhbackend.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
58
  $script_params = array(
59
  'post' => $_GET['post'],
60
  'l10n_print_after' =>
@@ -120,10 +125,10 @@ class transposh_postpublish {
120
 
121
  // Merge the two arrays for traversing
122
  $phrases = array_merge($phrases, $phrases2, $phrases3, $phrases4, $phrases5);
123
-
124
 
125
  // Add phrases from permalink
126
- if ($this->transposh->options->get_enable_url_translate()) {
127
  $permalink = get_permalink($postID);
128
  $permalink = substr($permalink, strlen($this->transposh->home_url) + 1);
129
  $parts = explode('/', $permalink);
@@ -140,10 +145,10 @@ class transposh_postpublish {
140
  $json['langs'] = array();
141
 
142
  foreach ($phrases as $key) {
143
- foreach (explode(',', $this->transposh->options->get_editable_langs()) as $lang) {
144
  // if this isn't the default language or we specifically allow default language translation, we will seek this out...
145
  // as we don't normally want to auto-translate the default language -FIX THIS to include only correct stuff, how?
146
- if (!$this->transposh->options->is_default_language($lang) || $this->transposh->options->get_enable_default_translate()) {
147
  // There is no point in returning phrases, languages pairs that cannot be translated
148
  if (in_array($lang, transposh_consts::$bing_languages) ||
149
  in_array($lang, transposh_consts::$google_languages) ||
@@ -216,12 +221,12 @@ class transposh_postpublish {
216
  } else {
217
  update_post_meta($postID, 'tp_language', $_POST['transposh_tp_language']);
218
  // if a language is set for a post, default language translate must be enabled, so we enable it
219
- if (!$this->transposh->options->get_enable_default_translate()) {
220
- $this->transposh->options->set_enable_default_translate(true);
221
  $this->transposh->options->update_options();
222
  }
223
  }
224
- //??
225
  }
226
 
227
  }
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Wed, 12 Dec 2012 22:23:17 +0200
12
  */
13
 
14
  /*
34
  function transposh_postpublish(&$transposh) {
35
  $this->transposh = &$transposh;
36
  // we'll only do something if so configured to do
37
+ if ($this->transposh->options->enable_autoposttranslate) {
38
  add_action('edit_post', array(&$this, 'on_edit'));
 
 
39
  }
40
+ add_action('admin_menu', array(&$this, 'on_admin_menu'));
41
  }
42
 
43
  /**
45
  */
46
  function on_admin_menu() {
47
  //add our metaboxs to the post and publish pages
48
+ tp_logger('adding metaboxes for admin pages/post/custom', 4);
49
+ $post_types = get_post_types();
50
+ foreach ($post_types as $post_type) {
51
+ if (in_array($post_type, array('attachment', 'revision', 'nav_menu_item')))
52
+ continue;
53
+ tp_logger($post_type, 5);
54
+ if ($this->transposh->options->enable_autoposttranslate) {
55
+ add_meta_box('transposh_postpublish', __('Transposh', TRANSPOSH_TEXT_DOMAIN), array(&$this, "transposh_postpublish_box"), $post_type, 'side', 'core');
56
+ }
57
+ add_meta_box('transposh_setlanguage', __('Set post language', TRANSPOSH_TEXT_DOMAIN), array(&$this, "transposh_setlanguage_box"), $post_type, 'advanced', 'core');
58
+ }
59
  if (!isset($_GET['post'])) return;
60
  if (get_post_meta($_GET['post'], 'transposh_can_translate', true)) { // do isdefined stuff
61
  $this->just_published = true; // this is later used in the meta boxes //XXXXXXXXXXXXXXXXXXXXXXXXXXXX
62
+ wp_enqueue_script("transposh_backend", $this->transposh->transposh_plugin_url . '/' . TRANSPOSH_DIR_JS . '/admin/backendtranslate.js', array('transposh'), TRANSPOSH_PLUGIN_VER, true);
63
  $script_params = array(
64
  'post' => $_GET['post'],
65
  'l10n_print_after' =>
125
 
126
  // Merge the two arrays for traversing
127
  $phrases = array_merge($phrases, $phrases2, $phrases3, $phrases4, $phrases5);
128
+ tp_logger($phrases, 4);
129
 
130
  // Add phrases from permalink
131
+ if ($this->transposh->options->enable_url_translate) {
132
  $permalink = get_permalink($postID);
133
  $permalink = substr($permalink, strlen($this->transposh->home_url) + 1);
134
  $parts = explode('/', $permalink);
145
  $json['langs'] = array();
146
 
147
  foreach ($phrases as $key) {
148
+ foreach (explode(',', $this->transposh->options->viewable_languages) as $lang) {
149
  // if this isn't the default language or we specifically allow default language translation, we will seek this out...
150
  // as we don't normally want to auto-translate the default language -FIX THIS to include only correct stuff, how?
151
+ if (!$this->transposh->options->is_default_language($lang) || $this->transposh->options->enable_default_translate) {
152
  // There is no point in returning phrases, languages pairs that cannot be translated
153
  if (in_array($lang, transposh_consts::$bing_languages) ||
154
  in_array($lang, transposh_consts::$google_languages) ||
221
  } else {
222
  update_post_meta($postID, 'tp_language', $_POST['transposh_tp_language']);
223
  // if a language is set for a post, default language translate must be enabled, so we enable it
224
+ if (!$this->transposh->options->enable_default_translate) {
225
+ $this->transposh->options->enable_default_translate = true;
226
  $this->transposh->options->update_options();
227
  }
228
  }
229
+ tp_logger($postID . ' ' . $_POST['transposh_tp_language']); //??
230
  }
231
 
232
  }
wp/transposh_widget.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /*
4
- * Transposh v0.8.5
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
- * Date: Sat, 15 Sep 2012 02:05:09 +0300
12
  */
13
 
14
  /*
@@ -38,10 +38,11 @@ class transposh_base_widget {
38
  * @param string $plugin_url
39
  */
40
  static function tp_widget_css($file, $plugin_dir, $plugin_url) {
 
41
  $basefile = substr($file, 0, -4);
42
  $widget_css = TRANSPOSH_DIR_WIDGETS . '/' . $basefile . ".css";
43
  if (file_exists($plugin_dir . $widget_css)) {
44
- wp_enqueue_style(str_replace('/','_', $basefile), $plugin_url . '/' . $widget_css, '', TRANSPOSH_PLUGIN_VER);
45
  }
46
  }
47
 
@@ -52,6 +53,7 @@ class transposh_base_widget {
52
  * @param string $plugin_url
53
  */
54
  static function tp_widget_js($file, $plugin_dir, $plugin_url) {
 
55
  $basefile = substr($file, 0, -4);
56
  $widget_js = TRANSPOSH_DIR_WIDGETS . '/' . $basefile . ".js";
57
  if (file_exists($plugin_dir . $widget_js)) {
@@ -88,8 +90,10 @@ class transposh_plugin_widget extends WP_Widget {
88
  // We only need to add those actions once, makes life simpler
89
  if (is_active_widget(false, false, $this->id_base) && self::$first_init) {
90
  self::$first_init = false;
91
- add_action('wp_print_styles', array(&$this, 'add_transposh_widget_css'));
92
- add_action('wp_print_scripts', array(&$this, 'add_transposh_widget_js'));
 
 
93
  }
94
  }
95
 
@@ -98,8 +102,8 @@ class transposh_plugin_widget extends WP_Widget {
98
  */
99
  function update($new_instance, $old_instance) {
100
  $instance = $old_instance;
101
-
102
-
103
  $instance['title'] = strip_tags(stripslashes($new_instance['title']));
104
  $instance['widget_file'] = strip_tags(stripslashes($new_instance['widget_file']));
105
  return $instance;
@@ -125,7 +129,7 @@ class transposh_plugin_widget extends WP_Widget {
125
  echo '<p><label for="' . $this->get_field_name('widget_file') . '">' . __('Style:', TRANSPOSH_TEXT_DOMAIN) .
126
  '<select id="' . $this->get_field_id('widget_file') . '" name="' . $this->get_field_name('widget_file') . '">';
127
  foreach ($widgets as $file => $widget) {
128
-
129
  $selected = ($instance['widget_file'] == $file) ? ' selected="selected"' : '';
130
  echo "<option value=\"$file\"$selected>{$widget['Name']}</option>";
131
  }
@@ -138,6 +142,7 @@ class transposh_plugin_widget extends WP_Widget {
138
  * Loads the subwidget class code
139
  */
140
  function load_widget($file) {
 
141
  $widget_src = $this->transposh->transposh_plugin_dir . TRANSPOSH_DIR_WIDGETS . '/' . $file;
142
  if ($file && file_exists($widget_src)) {
143
  include_once $widget_src;
@@ -169,7 +174,7 @@ class transposh_plugin_widget extends WP_Widget {
169
  $tmpclass->tp_widget_css($key, $this->transposh->transposh_plugin_dir, $this->transposh->transposh_plugin_url);
170
  }
171
  }
172
-
173
  }
174
 
175
  /**
@@ -192,7 +197,7 @@ class transposh_plugin_widget extends WP_Widget {
192
  $tmpclass->tp_widget_js($key, $this->transposh->transposh_plugin_dir, $this->transposh->transposh_plugin_url);
193
  }
194
  }
195
-
196
  }
197
 
198
  /**
@@ -213,12 +218,11 @@ class transposh_plugin_widget extends WP_Widget {
213
  foreach ($this->transposh->options->get_sorted_langs() as $code => $langrecord) {
214
  list ($langname, $language, $flag) = explode(',', $langrecord);
215
 
216
- // Only send languages which are viewable or (editable and the user is a translator)
217
- if ($this->transposh->options->is_viewable_language($code) ||
218
- ($this->transposh->options->is_editable_language($code) && $this->transposh->is_translator()) ||
219
  ($this->transposh->options->is_default_language($code))) {
220
  // now we alway do this... maybe cache this to APC/Memcache
221
- if ($this->transposh->options->get_enable_url_translate() && !$this->transposh->options->is_default_language($code)) {
222
  $page_url = transposh_utils::translate_url($clean_page_url, '', $code, array(&$this->transposh->database, 'fetch_translation'));
223
  } else {
224
  $page_url = $clean_page_url;
@@ -244,7 +248,7 @@ class transposh_plugin_widget extends WP_Widget {
244
  function widget($args, $instance) {
245
  // extract args given by wordpress
246
  extract($args);
247
-
248
 
249
  // we load the class needed and get its base name for later
250
  $class = $this->load_widget($instance['widget_file']);
@@ -254,16 +258,16 @@ class transposh_plugin_widget extends WP_Widget {
254
 
255
  $clean_page = $this->transposh->get_clean_url();
256
 
257
-
258
 
259
  $widget_args = $this->create_widget_args($clean_page);
260
  // at this point the widget args are ready
261
 
262
-
263
 
264
  // widget default title
265
  //echo $before_widget . $before_title . __('Translation', TRANSPOSH_TEXT_DOMAIN) . $after_title; - hmm? po/mo?
266
- echo $before_widget;
267
  if ($instance['title']) {
268
  /* TRANSLATORS: no need to translate this string */
269
  echo $before_title . __($instance['title'], TRANSPOSH_TEXT_DOMAIN) . $after_title;
@@ -279,7 +283,7 @@ class transposh_plugin_widget extends WP_Widget {
279
  //at least one language showing - add the edit box if applicable
280
  if (!empty($widget_args)) {
281
  // this is the set default language line
282
- if ($this->transposh->options->get_widget_allow_set_default_language()) {
283
  If ((isset($_COOKIE['TR_LNG']) && $_COOKIE['TR_LNG'] != $this->transposh->target_language) || (!isset($_COOKIE['TR_LNG']) && !$this->transposh->options->is_default_language($this->transposh->target_language))) {
284
  echo '<a id="' . SPAN_PREFIX . 'setdeflang' . self::$draw_calls . '" class="' . SPAN_PREFIX . 'setdeflang' . '" onClick="return false;" href="' . admin_url('admin-ajax.php') . '?action=tp_cookie_bck">' . __('Set as default language', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
285
  }
@@ -307,7 +311,7 @@ class transposh_plugin_widget extends WP_Widget {
307
  // last - you can now remove the logo in exchange to a few percentage of ad and affiliate revenues on your pages, isn't that better?
308
  $plugpath = parse_url($this->transposh->transposh_plugin_url, PHP_URL_PATH);
309
 
310
- if (!$this->transposh->options->get_widget_remove_logo()) {
311
  $tagline = esc_attr__('Transposh', TRANSPOSH_TEXT_DOMAIN) . ' - ';
312
  switch (ord(md5($_SERVER['REQUEST_URI'])) % 5) {
313
  case 0:
@@ -334,12 +338,12 @@ class transposh_plugin_widget extends WP_Widget {
334
  }
335
 
336
  echo '<div id="' . SPAN_PREFIX . 'credit' . self::$draw_calls . '">';
337
- if (!$this->transposh->options->get_widget_remove_logo()) {
338
  echo 'by <a href="http://tran' . 'sposh.org/' . $extralang . '"><img height="16" width="16" src="' .
339
- $plugpath . '/img/tplog' . 'o.png" style="padding:1px;border:0px" title="' . $tagline . '" alt="' . $tagline . '"/></a>';
340
  }
341
  echo '</div>';
342
- echo $after_widget;
343
  // increase the number of calls for unique IDs
344
  self::$draw_calls++;
345
  }
1
  <?php
2
 
3
  /*
4
+ * Transposh v0.9.0
5
  * http://transposh.org/
6
  *
7
  * Copyright 2012, Team Transposh
8
  * Licensed under the GPL Version 2 or higher.
9
  * http://transposh.org/license
10
  *
11
+ * Date: Thu, 13 Dec 2012 04:47:49 +0200
12
  */
13
 
14
  /*
38
  * @param string $plugin_url
39
  */
40
  static function tp_widget_css($file, $plugin_dir, $plugin_url) {
41
+ tp_logger('looking for css:' . $file, 4);
42
  $basefile = substr($file, 0, -4);
43
  $widget_css = TRANSPOSH_DIR_WIDGETS . '/' . $basefile . ".css";
44
  if (file_exists($plugin_dir . $widget_css)) {
45
+ wp_enqueue_style(str_replace('/', '_', $basefile), $plugin_url . '/' . $widget_css, '', TRANSPOSH_PLUGIN_VER);
46
  }
47
  }
48
 
53
  * @param string $plugin_url
54
  */
55
  static function tp_widget_js($file, $plugin_dir, $plugin_url) {
56
+ tp_logger('looking for js:' . $file, 4);
57
  $basefile = substr($file, 0, -4);
58
  $widget_js = TRANSPOSH_DIR_WIDGETS . '/' . $basefile . ".js";
59
  if (file_exists($plugin_dir . $widget_js)) {
90
  // We only need to add those actions once, makes life simpler
91
  if (is_active_widget(false, false, $this->id_base) && self::$first_init) {
92
  self::$first_init = false;
93
+ if (!is_admin()) {
94
+ add_action('wp_print_styles', array(&$this, 'add_transposh_widget_css'));
95
+ add_action('wp_print_scripts', array(&$this, 'add_transposh_widget_js'));
96
+ }
97
  }
98
  }
99
 
102
  */
103
  function update($new_instance, $old_instance) {
104
  $instance = $old_instance;
105
+ tp_logger($instance);
106
+ tp_logger($new_instance);
107
  $instance['title'] = strip_tags(stripslashes($new_instance['title']));
108
  $instance['widget_file'] = strip_tags(stripslashes($new_instance['widget_file']));
109
  return $instance;
129
  echo '<p><label for="' . $this->get_field_name('widget_file') . '">' . __('Style:', TRANSPOSH_TEXT_DOMAIN) .
130
  '<select id="' . $this->get_field_id('widget_file') . '" name="' . $this->get_field_name('widget_file') . '">';
131
  foreach ($widgets as $file => $widget) {
132
+ tp_logger($widget, 4);
133
  $selected = ($instance['widget_file'] == $file) ? ' selected="selected"' : '';
134
  echo "<option value=\"$file\"$selected>{$widget['Name']}</option>";
135
  }
142
  * Loads the subwidget class code
143
  */
144
  function load_widget($file) {
145
+ tp_logger("widget loaded: $file", 4);
146
  $widget_src = $this->transposh->transposh_plugin_dir . TRANSPOSH_DIR_WIDGETS . '/' . $file;
147
  if ($file && file_exists($widget_src)) {
148
  include_once $widget_src;
174
  $tmpclass->tp_widget_css($key, $this->transposh->transposh_plugin_dir, $this->transposh->transposh_plugin_url);
175
  }
176
  }
177
+ tp_logger('Added transposh_widget_css', 4);
178
  }
179
 
180
  /**
197
  $tmpclass->tp_widget_js($key, $this->transposh->transposh_plugin_dir, $this->transposh->transposh_plugin_url);
198
  }
199
  }
200
+ tp_logger('Added transposh_widget_js', 4);
201
  }
202
 
203
  /**
218
  foreach ($this->transposh->options->get_sorted_langs() as $code => $langrecord) {
219
  list ($langname, $language, $flag) = explode(',', $langrecord);
220
 
221
+ // Only send languages which are active
222
+ if ($this->transposh->options->is_active_language($code) ||
 
223
  ($this->transposh->options->is_default_language($code))) {
224
  // now we alway do this... maybe cache this to APC/Memcache
225
+ if ($this->transposh->options->enable_url_translate && !$this->transposh->options->is_default_language($code)) {
226
  $page_url = transposh_utils::translate_url($clean_page_url, '', $code, array(&$this->transposh->database, 'fetch_translation'));
227
  } else {
228
  $page_url = $clean_page_url;
248
  function widget($args, $instance) {
249
  // extract args given by wordpress
250
  extract($args);
251
+ tp_logger($args, 4);
252
 
253
  // we load the class needed and get its base name for later
254
  $class = $this->load_widget($instance['widget_file']);
258
 
259
  $clean_page = $this->transposh->get_clean_url();
260
 
261
+ tp_logger("WIDGET: clean page url: $clean_page", 4);
262
 
263
  $widget_args = $this->create_widget_args($clean_page);
264
  // at this point the widget args are ready
265
 
266
+ tp_logger('Enter widget', 4);
267
 
268
  // widget default title
269
  //echo $before_widget . $before_title . __('Translation', TRANSPOSH_TEXT_DOMAIN) . $after_title; - hmm? po/mo?
270
+ if (isset($before_widget)) echo $before_widget;
271
  if ($instance['title']) {
272
  /* TRANSLATORS: no need to translate this string */
273
  echo $before_title . __($instance['title'], TRANSPOSH_TEXT_DOMAIN) . $after_title;
283
  //at least one language showing - add the edit box if applicable
284
  if (!empty($widget_args)) {
285
  // this is the set default language line
286
+ if ($this->transposh->options->widget_allow_set_deflang) {
287
  If ((isset($_COOKIE['TR_LNG']) && $_COOKIE['TR_LNG'] != $this->transposh->target_language) || (!isset($_COOKIE['TR_LNG']) && !$this->transposh->options->is_default_language($this->transposh->target_language))) {
288
  echo '<a id="' . SPAN_PREFIX . 'setdeflang' . self::$draw_calls . '" class="' . SPAN_PREFIX . 'setdeflang' . '" onClick="return false;" href="' . admin_url('admin-ajax.php') . '?action=tp_cookie_bck">' . __('Set as default language', TRANSPOSH_TEXT_DOMAIN) . '</a><br/>';
289
  }
311
  // last - you can now remove the logo in exchange to a few percentage of ad and affiliate revenues on your pages, isn't that better?
312
  $plugpath = parse_url($this->transposh->transposh_plugin_url, PHP_URL_PATH);
313
 
314
+ if (!$this->transposh->options->widget_remove_logo) {
315
  $tagline = esc_attr__('Transposh', TRANSPOSH_TEXT_DOMAIN) . ' - ';
316
  switch (ord(md5($_SERVER['REQUEST_URI'])) % 5) {
317
  case 0:
338
  }
339
 
340
  echo '<div id="' . SPAN_PREFIX . 'credit' . self::$draw_calls . '">';
341
+ if (!$this->transposh->options->widget_remove_logo) {
342
  echo 'by <a href="http://tran' . 'sposh.org/' . $extralang . '"><img height="16" width="16" src="' .
343
+ $plugpath . '/img/tplog' . 'o.png" style="padding:1px;border:0;box-shadow:0 0;border-radius:0" title="' . $tagline . '" alt="' . $tagline . '"/></a>';
344
  }
345
  echo '</div>';
346
+ if (isset($after_widget)) echo $after_widget;
347
  // increase the number of calls for unique IDs
348
  self::$draw_calls++;
349
  }