BackWPup – WordPress Backup Plugin - Version 3.2.2

Version Description

= After an upgrade from version 2 =

Please check all settings after the update:

  • Dropbox authentication must be done again
  • SugarSync authentication must be done again
  • S3 Settings
  • Google Storage is now in S3
  • Check all your passwords
Download this release

Release Info

Developer danielhuesken
Plugin Icon 128x128 BackWPup – WordPress Backup Plugin
Version 3.2.2
Comparing to
See all releases

Code changes from version 3.2.1 to 3.2.2

.htaccess ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <Files *.php>
2
+ order allow,deny
3
+ deny from all
4
+ </Files>
backwpup.php CHANGED
@@ -1,532 +1,532 @@
1
- <?php
2
- /**
3
- * Plugin Name: BackWPup
4
- * Plugin URI: https://marketpress.com/product/backwpup-pro/
5
- * Description: WordPress Backup Plugin
6
- * Author: Inpsyde GmbH
7
- * Author URI: http://inpsyde.com
8
- * Version: 3.2.1
9
- * Text Domain: backwpup
10
- * Domain Path: /languages/
11
- * Network: true
12
- * License: GPLv3
13
- * License URI: http://www.gnu.org/licenses/gpl-3.0
14
- */
15
-
16
- /**
17
- * Copyright (C) 2012-2015 Inpsyde GmbH (email: info@inpsyde.com)
18
- *
19
- * This program is free software; you can redistribute it and/or
20
- * modify it under the terms of the GNU General Public License
21
- * as published by the Free Software Foundation; either version 2
22
- * of the License, or (at your option) any later version.
23
- *
24
- * This program is distributed in the hope that it will be useful,
25
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
26
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27
- * GNU General Public License for more details.
28
- *
29
- * You should have received a copy of the GNU General Public License
30
- * along with this program; if not, write to the Free Software
31
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
32
- */
33
-
34
- if ( ! class_exists( 'BackWPup' ) ) {
35
-
36
- // Don't activate on anything less than PHP 5.2.7 or WordPress 3.1
37
- if ( version_compare( PHP_VERSION, '5.2.7', '<' ) || version_compare( get_bloginfo( 'version' ), '3.4', '<' ) || ! function_exists( 'spl_autoload_register' ) ) {
38
- die( 'BackWPup requires PHP version 5.2.7 with spl extension or greater and WordPress 3.4 or greater.' );
39
- }
40
-
41
- //Start Plugin
42
- if ( function_exists( 'add_filter' ) ) {
43
- add_action( 'plugins_loaded', array( 'BackWPup', 'get_instance' ), 11 );
44
- }
45
-
46
- /**
47
- * Main BackWPup Plugin Class
48
- */
49
- final class BackWPup {
50
-
51
- private static $instance = NULL;
52
- private static $plugin_data = array();
53
- private static $autoload = array();
54
- private static $destinations = array();
55
- private static $registered_destinations = array();
56
- private static $job_types = array();
57
- private static $wizards = array();
58
-
59
- /**
60
- * Set needed filters and actions and load
61
- */
62
- private function __construct() {
63
-
64
- // Nothing else matters if we're not on the main site
65
- if ( ! is_main_site() ) {
66
- return;
67
- }
68
- //auto loader
69
- spl_autoload_register( array( $this, 'autoloader' ) );
70
- //start upgrade if needed
71
- if ( get_site_option( 'backwpup_version' ) != self::get_plugin_data( 'Version' ) ) {
72
- BackWPup_Install::activate();
73
- }
74
- //load pro features
75
- if ( class_exists( 'BackWPup_Pro' ) ) {
76
- BackWPup_Pro::get_instance();
77
- }
78
- //WP-Cron
79
- if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
80
- if ( ! empty( $_GET[ 'backwpup_run' ] ) && class_exists( 'BackWPup_Job' ) ) {
81
- //early disable caches
82
- BackWPup_Job::disable_caches();
83
- //add action for running jobs in wp-cron.php
84
- add_action( 'init', array( 'BackWPup_Cron', 'cron_active' ), PHP_INT_MAX );
85
- } else {
86
- //add cron actions
87
- add_action( 'backwpup_cron', array( 'BackWPup_Cron', 'run' ) );
88
- add_action( 'backwpup_check_cleanup', array( 'BackWPup_Cron', 'check_cleanup' ) );
89
- }
90
- //if in cron the rest is not needed
91
- return;
92
- }
93
- //deactivation hook
94
- register_deactivation_hook( __FILE__, array( 'BackWPup_Install', 'deactivate' ) );
95
- //Admin bar
96
- if ( get_site_option( 'backwpup_cfg_showadminbar', FALSE ) ) {
97
- add_action( 'init', array( 'BackWPup_Adminbar', 'get_instance' ) );
98
- }
99
- //only in backend
100
- if ( is_admin() && class_exists( 'BackWPup_Admin' ) ) {
101
- BackWPup_Admin::get_instance();
102
- }
103
- //work with wp-cli
104
- if ( defined( 'WP_CLI' ) && WP_CLI && method_exists( 'WP_CLI', 'add_command' ) ) {
105
- WP_CLI::add_command( 'backwpup', 'BackWPup_WP_CLI' );
106
- }
107
- }
108
-
109
- /**
110
- * @static
111
- *
112
- * @return self
113
- */
114
- public static function get_instance() {
115
-
116
- if (NULL === self::$instance) {
117
- self::$instance = new self;
118
- }
119
- return self::$instance;
120
- }
121
-
122
-
123
- private function __clone() {}
124
-
125
- /**
126
- * get information about the Plugin
127
- *
128
- * @param string $name Name of info to get or NULL to get all
129
- * @return string|array
130
- */
131
- public static function get_plugin_data( $name = NULL ) {
132
-
133
- if ( $name )
134
- $name = strtolower( trim( $name ) );
135
-
136
- if ( empty( self::$plugin_data ) ) {
137
- self::$plugin_data = get_file_data( __FILE__, array(
138
- 'name' => 'Plugin Name',
139
- 'pluginuri' => 'Plugin URI',
140
- 'version' => 'Version',
141
- 'description' => 'Description',
142
- 'author' => 'Author',
143
- 'authoruri' => 'Author URI',
144
- 'textdomain' => 'Text Domain',
145
- 'domainpath' => 'Domain Path',
146
- 'license' => 'License',
147
- 'licenseuri' => 'License URI'
148
- ), 'plugin' );
149
- //Translate some vars
150
- self::$plugin_data[ 'name' ] = trim( self::$plugin_data[ 'name' ] );
151
- self::$plugin_data[ 'pluginuri' ] = trim( self::$plugin_data[ 'pluginuri' ] );
152
- self::$plugin_data[ 'description' ] = trim( self::$plugin_data[ 'description' ] );
153
- self::$plugin_data[ 'author' ] = trim( self::$plugin_data[ 'author' ] );
154
- self::$plugin_data[ 'authoruri' ] = trim( self::$plugin_data[ 'authoruri' ] );
155
- //set some extra vars
156
- self::$plugin_data[ 'basename' ] = plugin_basename( dirname( __FILE__ ) );
157
- self::$plugin_data[ 'mainfile' ] = __FILE__ ;
158
- self::$plugin_data[ 'plugindir' ] = untrailingslashit( dirname( __FILE__ ) ) ;
159
- self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
160
- if ( empty( self::$plugin_data[ 'hash' ] ) || strlen( self::$plugin_data[ 'hash' ] ) < 6 || strlen( self::$plugin_data[ 'hash' ] ) > 12 ) {
161
- update_site_option( 'backwpup_cfg_hash', substr( md5( md5( BackWPup::get_plugin_data( "mainfile" ) ) ), 14, 6 ) );
162
- self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
163
- }
164
- if ( defined( 'WP_TEMP_DIR' ) && is_dir( WP_TEMP_DIR ) ) {
165
- self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', WP_TEMP_DIR ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] );
166
- } else {
167
- $upload_dir = wp_upload_dir();
168
- self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] . '-temp' );
169
- }
170
- self::$plugin_data[ 'running_file' ] = self::$plugin_data[ 'temp' ] . 'backwpup-working.php';
171
- self::$plugin_data[ 'url' ] = plugins_url( '', __FILE__ );
172
- self::$plugin_data[ 'cacert' ] = FALSE;
173
- if ( file_exists( self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem' ) )
174
- self::$plugin_data[ 'cacert' ] = self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem';
175
- self::$plugin_data[ 'cacert' ] = apply_filters( 'backwpup_cacert_bundle', self::$plugin_data[ 'cacert' ] );
176
- //get unmodified WP Versions
177
- include ABSPATH . WPINC . '/version.php';
178
- /** @var $wp_version string */
179
- self::$plugin_data[ 'wp_version' ] = $wp_version;
180
- //Build User Agent
181
- self::$plugin_data[ 'user-agent' ] = self::$plugin_data[ 'name' ].'/' . self::$plugin_data[ 'version' ] . '; WordPress/' . self::$plugin_data[ 'wp_version' ] . '; ' . home_url();
182
- }
183
-
184
- if ( ! empty( $name ) )
185
- return self::$plugin_data[ $name ];
186
- else
187
- return self::$plugin_data;
188
- }
189
-
190
-
191
- /**
192
- * include not existing classes automatically
193
- *
194
- * @param string $class Class to load from file
195
- */
196
- private function autoloader( $class ) {
197
-
198
- //BackWPup classes auto load
199
- if ( strstr( strtolower( $class ), 'backwpup_' ) ) {
200
- $dir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR;
201
- $class_file_name = 'class-' . str_replace( array( 'backwpup_', '_' ), array( '', '-' ), strtolower( $class ) ) . '.php';
202
- if ( strstr( strtolower( $class ), 'backwpup_pro' ) ) {
203
- $dir .= 'pro' . DIRECTORY_SEPARATOR;
204
- $class_file_name = str_replace( 'pro-','', $class_file_name );
205
- }
206
- if ( file_exists( $dir . $class_file_name ) )
207
- require $dir . $class_file_name;
208
- }
209
-
210
- // namespaced PSR-0
211
- if ( ! empty( self::$autoload ) ) {
212
- $pos = strrpos( $class, '\\' );
213
- if ( $pos !== FALSE ) {
214
- $class_path = str_replace( '\\', DIRECTORY_SEPARATOR, substr( $class, 0, $pos ) ) . DIRECTORY_SEPARATOR . str_replace( '_', DIRECTORY_SEPARATOR, substr( $class, $pos + 1 ) ) . '.php';
215
- foreach ( self::$autoload as $prefix => $dir ) {
216
- if ( $class === strstr( $class, $prefix ) ) {
217
- if ( file_exists( $dir . DIRECTORY_SEPARATOR . $class_path ) )
218
- require $dir . DIRECTORY_SEPARATOR . $class_path;
219
- }
220
- }
221
- } // Single class file
222
- elseif ( ! empty( self::$autoload[ $class ] ) && is_file( self::$autoload[ $class ] ) ) {
223
- require self::$autoload[ $class ];
224
- }
225
- }
226
-
227
- //Google SDK Auto loading
228
- $classPath = explode( '_', $class );
229
- if ( $classPath[0] == 'Google' ) {
230
- if ( count( $classPath ) > 3 ) {
231
- $classPath = array_slice( $classPath, 0, 3 );
232
- }
233
- $filePath = self::get_plugin_data( 'plugindir' ) . '/vendor/' . implode( '/', $classPath ) . '.php';
234
- if ( file_exists( $filePath ) ) {
235
- require $filePath;
236
- }
237
- }
238
-
239
- }
240
-
241
- /**
242
- * Load Plugin Translation
243
- *
244
- * @return bool Text domain loaded
245
- */
246
- public static function load_text_domain() {
247
-
248
- if ( is_textdomain_loaded( 'backwpup' ) ) {
249
- return TRUE;
250
- }
251
-
252
- return load_plugin_textdomain( 'backwpup', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
253
- }
254
-
255
- /**
256
- * Get a array of instances for Backup Destination's
257
- *
258
- * @param $key string Key of Destination where get class instance from
259
- * @return array BackWPup_Destinations
260
- */
261
- public static function get_destination( $key ) {
262
-
263
- $key = strtoupper( $key );
264
-
265
- if ( isset( self::$destinations[ $key ] ) && is_object( self::$destinations[ $key ] ) )
266
- return self::$destinations[ $key ];
267
-
268
- $reg_dests = self::get_registered_destinations();
269
- if ( ! empty( $reg_dests[ $key ][ 'class' ] ) ) {
270
- self::$destinations[ $key ] = new $reg_dests[ $key ][ 'class' ];
271
- } else {
272
- return NULL;
273
- }
274
-
275
- return self::$destinations[ $key ];
276
- }
277
-
278
- /**
279
- * Get a array of registered Destination's for Backups
280
- *
281
- * @return array BackWPup_Destinations
282
- */
283
- public static function get_registered_destinations() {
284
-
285
- //only run it one time
286
- if ( ! empty( self::$registered_destinations ) )
287
- return self::$registered_destinations;
288
-
289
- //add BackWPup Destinations
290
- // to folder
291
- self::$registered_destinations[ 'FOLDER' ] = array(
292
- 'class' => 'BackWPup_Destination_Folder',
293
- 'info' => array(
294
- 'ID' => 'FOLDER',
295
- 'name' => __( 'Folder', 'backwpup' ),
296
- 'description' => __( 'Backup to Folder', 'backwpup' ),
297
- ),
298
- 'can_sync' => FALSE,
299
- 'needed' => array(
300
- 'php_version' => '',
301
- 'functions' => array(),
302
- 'classes' => array()
303
- ),
304
- 'autoload' => array()
305
- );
306
- // backup with mail
307
- self::$registered_destinations[ 'EMAIL' ] = array(
308
- 'class' => 'BackWPup_Destination_Email',
309
- 'info' => array(
310
- 'ID' => 'EMAIL',
311
- 'name' => __( 'Email', 'backwpup' ),
312
- 'description' => __( 'Backup sent via email', 'backwpup' ),
313
- ),
314
- 'can_sync' => FALSE,
315
- 'needed' => array(
316
- 'php_version' => '5.2.4',
317
- 'functions' => array(),
318
- 'classes' => array()
319
- ),
320
- 'autoload' => array()
321
- );
322
- // backup to ftp
323
- self::$registered_destinations[ 'FTP' ] = array(
324
- 'class' => 'BackWPup_Destination_Ftp',
325
- 'info' => array(
326
- 'ID' => 'FTP',
327
- 'name' => __( 'FTP', 'backwpup' ),
328
- 'description' => __( 'Backup to FTP', 'backwpup' ),
329
- ),
330
- 'can_sync' => FALSE,
331
- 'needed' => array(
332
- 'mphp_version' => '',
333
- 'functions' => array( 'ftp_nb_fput' ),
334
- 'classes' => array()
335
- ),
336
- 'autoload' => array()
337
- );
338
- // backup to dropbox
339
- self::$registered_destinations[ 'DROPBOX' ] = array(
340
- 'class' => 'BackWPup_Destination_Dropbox',
341
- 'info' => array(
342
- 'ID' => 'DROPBOX',
343
- 'name' => __( 'Dropbox', 'backwpup' ),
344
- 'description' => __( 'Backup to Dropbox', 'backwpup' ),
345
- ),
346
- 'can_sync' => FALSE,
347
- 'needed' => array(
348
- 'php_version' => '',
349
- 'functions' => array( 'curl_exec' ),
350
- 'classes' => array()
351
- ),
352
- 'autoload' => array()
353
- );
354
- // Backup to S3
355
- if ( version_compare( PHP_VERSION, '5.3.3', '>=' ) ) {
356
- self::$registered_destinations[ 'S3' ] = array(
357
- 'class' => 'BackWPup_Destination_S3',
358
- 'info' => array(
359
- 'ID' => 'S3',
360
- 'name' => __( 'S3 Service', 'backwpup' ),
361
- 'description' => __( 'Backup to an S3 Service', 'backwpup' ),
362
- ),
363
- 'can_sync' => FALSE,
364
- 'needed' => array(
365
- 'php_version' => '5.3.3',
366
- 'functions' => array( 'curl_exec' ),
367
- 'classes' => array()
368
- ),
369
- 'autoload' => array( 'Aws\\Common' => dirname( __FILE__ ) .'/vendor',
370
- 'Aws\\S3' => dirname( __FILE__ ) .'/vendor',
371
- 'Symfony\\Component\\EventDispatcher' => dirname( __FILE__ ) . '/vendor',
372
- 'Guzzle' => dirname( __FILE__ ) . '/vendor' )
373
- );
374
- } else {
375
- self::$registered_destinations[ 'S3' ] = array(
376
- 'class' => 'BackWPup_Destination_S3_V1',
377
- 'info' => array(
378
- 'ID' => 'S3',
379
- 'name' => __( 'S3 Service', 'backwpup' ),
380
- 'description' => __( 'Backup to an S3 Service v1', 'backwpup' ),
381
- ),
382
- 'can_sync' => FALSE,
383
- 'needed' => array(
384
- 'php_version' => '',
385
- 'functions' => array( 'curl_exec' ),
386
- 'classes' => array()
387
- ),
388
- 'autoload' => array( 'AmazonS3' => dirname( __FILE__ ) . '/vendor/Aws_v1/sdk.class.php' )
389
- );
390
- }
391
- // backup to MS Azure
392
- self::$registered_destinations[ 'MSAZURE' ] = array(
393
- 'class' => 'BackWPup_Destination_MSAzure',
394
- 'info' => array(
395
- 'ID' => 'MSAZURE',
396
- 'name' => __( 'MS Azure', 'backwpup' ),
397
- 'description' => __( 'Backup to Microsoft Azure (Blob)', 'backwpup' ),
398
- ),
399
- 'can_sync' => FALSE,
400
- 'needed' => array(
401
- 'php_version' => '5.3.2',
402
- 'functions' => array(),
403
- 'classes' => array()
404
- ),
405
- 'autoload' => array( 'WindowsAzure' => dirname( __FILE__ ) . '/vendor' )
406
- );
407
- // backup to Rackspace Cloud
408
- self::$registered_destinations[ 'RSC' ] = array(
409
- 'class' => 'BackWPup_Destination_RSC',
410
- 'info' => array(
411
- 'ID' => 'RSC',
412
- 'name' => __( 'RSC', 'backwpup' ),
413
- 'description' => __( 'Backup to Rackspace Cloud Files', 'backwpup' ),
414
- ),
415
- 'can_sync' => FALSE,
416
- 'needed' => array(
417
- 'php_version' => '5.3.3',
418
- 'functions' => array( 'curl_exec' ),
419
- 'classes' => array()
420
- ),
421
- 'autoload' => array( 'OpenCloud' => dirname( __FILE__ ) . '/vendor',
422
- 'Guzzle' => dirname( __FILE__ ) . '/vendor' )
423
- );
424
- // backup to Sugarsync
425
- self::$registered_destinations[ 'SUGARSYNC' ] = array(
426
- 'class' => 'BackWPup_Destination_SugarSync',
427
- 'info' => array(
428
- 'ID' => 'SUGARSYNC',
429
- 'name' => __( 'SugarSync', 'backwpup' ),
430
- 'description' => __( 'Backup to SugarSync', 'backwpup' ),
431
- ),
432
- 'can_sync' => FALSE,
433
- 'needed' => array(
434
- 'php_version' => '',
435
- 'functions' => array( 'curl_exec' ),
436
- 'classes' => array()
437
- ),
438
- 'autoload' => array()
439
- );
440
-
441
- //Hook for adding Destinations like above
442
- self::$registered_destinations = apply_filters( 'backwpup_register_destination', self::$registered_destinations );
443
-
444
- //check BackWPup Destinations
445
- foreach ( self::$registered_destinations as $dest_key => $dest ) {
446
- self::$registered_destinations[ $dest_key ][ 'error'] = '';
447
- // check PHP Version
448
- if ( ! empty( $dest[ 'needed' ][ 'php_version' ] ) && version_compare( PHP_VERSION, $dest[ 'needed' ][ 'php_version' ], '<' ) ) {
449
- self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'PHP Version %1$s is to low, you need Version %2$s or above.', 'backwpup' ), PHP_VERSION, $dest[ 'needed' ][ 'php_version' ] ) . ' ';
450
- self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
451
- }
452
- //check functions exists
453
- if ( ! empty( $dest[ 'needed' ][ 'functions' ] ) ) {
454
- foreach ( $dest[ 'needed' ][ 'functions' ] as $function_need ) {
455
- if ( ! function_exists( $function_need ) ) {
456
- self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing function "%s".', 'backwpup' ), $function_need ) . ' ';
457
- self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
458
- }
459
- }
460
- }
461
- //check classes exists
462
- if ( ! empty( $dest[ 'needed' ][ 'classes' ] ) ) {
463
- foreach ( $dest[ 'needed' ][ 'classes' ] as $class_need ) {
464
- if ( ! class_exists( $class_need ) ) {
465
- self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing class "%s".', 'backwpup' ), $class_need ) . ' ';
466
- self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
467
- }
468
- }
469
- }
470
- //add class/namespace to auto load
471
- if ( ! empty( self::$registered_destinations[ $dest_key ][ 'class' ] ) && ! empty( self::$registered_destinations[ $dest_key ][ 'autoload' ] ) )
472
- self::$autoload = array_merge( self::$autoload, self::$registered_destinations[ $dest_key ][ 'autoload' ] );
473
-
474
- }
475
-
476
- return self::$registered_destinations;
477
- }
478
-
479
-
480
- /**
481
- * Gets a array of instances from Job types
482
- *
483
- * @return array BackWPup_JobTypes
484
- */
485
- public static function get_job_types() {
486
-
487
- if ( !empty( self::$job_types ) )
488
- return self::$job_types;
489
-
490
- self::$job_types[ 'DBDUMP' ] = new BackWPup_JobType_DBDump;
491
- self::$job_types[ 'FILE' ] = new BackWPup_JobType_File;
492
- self::$job_types[ 'WPEXP' ] = new BackWPup_JobType_WPEXP;
493
- self::$job_types[ 'WPPLUGIN' ] = new BackWPup_JobType_WPPlugin;
494
- self::$job_types[ 'DBCHECK' ] = new BackWPup_JobType_DBCheck;
495
-
496
- self::$job_types = apply_filters( 'backwpup_job_types', self::$job_types );
497
-
498
- //remove types can't load
499
- foreach ( self::$job_types as $key => $job_type ) {
500
- if ( empty( $job_type ) || ! is_object( $job_type ) )
501
- unset( self::$job_types[ $key ] );
502
- }
503
-
504
- return self::$job_types;
505
- }
506
-
507
-
508
- /**
509
- * Gets a array of instances from Wizards
510
- *
511
- * @return array BackWPup_Pro_Wizards
512
- */
513
- public static function get_wizards() {
514
-
515
- if ( !empty( self::$wizards ) )
516
- return self::$wizards;
517
-
518
- self::$wizards = apply_filters( 'backwpup_pro_wizards', self::$wizards );
519
-
520
- //remove wizards can't load
521
- foreach ( self::$wizards as $key => $wizard ) {
522
- if ( empty( $wizard ) || ! is_object( $wizard ) )
523
- unset( self::$wizards[ $key ] );
524
- }
525
-
526
- return self::$wizards;
527
-
528
- }
529
-
530
- }
531
-
532
- }
1
+ <?php
2
+ /**
3
+ * Plugin Name: BackWPup
4
+ * Plugin URI: https://marketpress.com/product/backwpup-pro/
5
+ * Description: WordPress Backup Plugin
6
+ * Author: Inpsyde GmbH
7
+ * Author URI: http://inpsyde.com
8
+ * Version: 3.2.2
9
+ * Text Domain: backwpup
10
+ * Domain Path: /languages/
11
+ * Network: true
12
+ * License: GPLv3
13
+ * License URI: http://www.gnu.org/licenses/gpl-3.0
14
+ */
15
+
16
+ /**
17
+ * Copyright (C) 2012-2015 Inpsyde GmbH (email: info@inpsyde.com)
18
+ *
19
+ * This program is free software; you can redistribute it and/or
20
+ * modify it under the terms of the GNU General Public License
21
+ * as published by the Free Software Foundation; either version 2
22
+ * of the License, or (at your option) any later version.
23
+ *
24
+ * This program is distributed in the hope that it will be useful,
25
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27
+ * GNU General Public License for more details.
28
+ *
29
+ * You should have received a copy of the GNU General Public License
30
+ * along with this program; if not, write to the Free Software
31
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
32
+ */
33
+
34
+ if ( ! class_exists( 'BackWPup' ) ) {
35
+
36
+ // Don't activate on anything less than PHP 5.2.7 or WordPress 3.1
37
+ if ( version_compare( PHP_VERSION, '5.2.7', '<' ) || version_compare( get_bloginfo( 'version' ), '3.4', '<' ) || ! function_exists( 'spl_autoload_register' ) ) {
38
+ die( 'BackWPup requires PHP version 5.2.7 with spl extension or greater and WordPress 3.4 or greater.' );
39
+ }
40
+
41
+ //Start Plugin
42
+ if ( function_exists( 'add_filter' ) ) {
43
+ add_action( 'plugins_loaded', array( 'BackWPup', 'get_instance' ), 11 );
44
+ }
45
+
46
+ /**
47
+ * Main BackWPup Plugin Class
48
+ */
49
+ final class BackWPup {
50
+
51
+ private static $instance = NULL;
52
+ private static $plugin_data = array();
53
+ private static $autoload = array();
54
+ private static $destinations = array();
55
+ private static $registered_destinations = array();
56
+ private static $job_types = array();
57
+ private static $wizards = array();
58
+
59
+ /**
60
+ * Set needed filters and actions and load
61
+ */
62
+ private function __construct() {
63
+
64
+ // Nothing else matters if we're not on the main site
65
+ if ( ! is_main_site() ) {
66
+ return;
67
+ }
68
+ //auto loader
69
+ spl_autoload_register( array( $this, 'autoloader' ) );
70
+ //start upgrade if needed
71
+ if ( get_site_option( 'backwpup_version' ) != self::get_plugin_data( 'Version' ) ) {
72
+ BackWPup_Install::activate();
73
+ }
74
+ //load pro features
75
+ if ( class_exists( 'BackWPup_Pro' ) ) {
76
+ BackWPup_Pro::get_instance();
77
+ }
78
+ //WP-Cron
79
+ if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
80
+ if ( ! empty( $_GET[ 'backwpup_run' ] ) && class_exists( 'BackWPup_Job' ) ) {
81
+ //early disable caches
82
+ BackWPup_Job::disable_caches();
83
+ //add action for running jobs in wp-cron.php
84
+ add_action( 'init', array( 'BackWPup_Cron', 'cron_active' ), PHP_INT_MAX );
85
+ } else {
86
+ //add cron actions
87
+ add_action( 'backwpup_cron', array( 'BackWPup_Cron', 'run' ) );
88
+ add_action( 'backwpup_check_cleanup', array( 'BackWPup_Cron', 'check_cleanup' ) );
89
+ }
90
+ //if in cron the rest is not needed
91
+ return;
92
+ }
93
+ //deactivation hook
94
+ register_deactivation_hook( __FILE__, array( 'BackWPup_Install', 'deactivate' ) );
95
+ //Admin bar
96
+ if ( get_site_option( 'backwpup_cfg_showadminbar', FALSE ) ) {
97
+ add_action( 'init', array( 'BackWPup_Adminbar', 'get_instance' ) );
98
+ }
99
+ //only in backend
100
+ if ( is_admin() && class_exists( 'BackWPup_Admin' ) ) {
101
+ BackWPup_Admin::get_instance();
102
+ }
103
+ //work with wp-cli
104
+ if ( defined( 'WP_CLI' ) && WP_CLI && method_exists( 'WP_CLI', 'add_command' ) ) {
105
+ WP_CLI::add_command( 'backwpup', 'BackWPup_WP_CLI' );
106
+ }
107
+ }
108
+
109
+ /**
110
+ * @static
111
+ *
112
+ * @return self
113
+ */
114
+ public static function get_instance() {
115
+
116
+ if (NULL === self::$instance) {
117
+ self::$instance = new self;
118
+ }
119
+ return self::$instance;
120
+ }
121
+
122
+
123
+ private function __clone() {}
124
+
125
+ /**
126
+ * get information about the Plugin
127
+ *
128
+ * @param string $name Name of info to get or NULL to get all
129
+ * @return string|array
130
+ */
131
+ public static function get_plugin_data( $name = NULL ) {
132
+
133
+ if ( $name )
134
+ $name = strtolower( trim( $name ) );
135
+
136
+ if ( empty( self::$plugin_data ) ) {
137
+ self::$plugin_data = get_file_data( __FILE__, array(
138
+ 'name' => 'Plugin Name',
139
+ 'pluginuri' => 'Plugin URI',
140
+ 'version' => 'Version',
141
+ 'description' => 'Description',
142
+ 'author' => 'Author',
143
+ 'authoruri' => 'Author URI',
144
+ 'textdomain' => 'Text Domain',
145
+ 'domainpath' => 'Domain Path',
146
+ 'license' => 'License',
147
+ 'licenseuri' => 'License URI'
148
+ ), 'plugin' );
149
+ //Translate some vars
150
+ self::$plugin_data[ 'name' ] = trim( self::$plugin_data[ 'name' ] );
151
+ self::$plugin_data[ 'pluginuri' ] = trim( self::$plugin_data[ 'pluginuri' ] );
152
+ self::$plugin_data[ 'description' ] = trim( self::$plugin_data[ 'description' ] );
153
+ self::$plugin_data[ 'author' ] = trim( self::$plugin_data[ 'author' ] );
154
+ self::$plugin_data[ 'authoruri' ] = trim( self::$plugin_data[ 'authoruri' ] );
155
+ //set some extra vars
156
+ self::$plugin_data[ 'basename' ] = plugin_basename( dirname( __FILE__ ) );
157
+ self::$plugin_data[ 'mainfile' ] = __FILE__ ;
158
+ self::$plugin_data[ 'plugindir' ] = untrailingslashit( dirname( __FILE__ ) ) ;
159
+ self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
160
+ if ( empty( self::$plugin_data[ 'hash' ] ) || strlen( self::$plugin_data[ 'hash' ] ) < 6 || strlen( self::$plugin_data[ 'hash' ] ) > 12 ) {
161
+ update_site_option( 'backwpup_cfg_hash', substr( md5( md5( BackWPup::get_plugin_data( "mainfile" ) ) ), 14, 6 ) );
162
+ self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
163
+ }
164
+ if ( defined( 'WP_TEMP_DIR' ) && is_dir( WP_TEMP_DIR ) ) {
165
+ self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', WP_TEMP_DIR ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] );
166
+ } else {
167
+ $upload_dir = wp_upload_dir();
168
+ self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] . '-temp' );
169
+ }
170
+ self::$plugin_data[ 'running_file' ] = self::$plugin_data[ 'temp' ] . 'backwpup-working.php';
171
+ self::$plugin_data[ 'url' ] = plugins_url( '', __FILE__ );
172
+ self::$plugin_data[ 'cacert' ] = FALSE;
173
+ if ( file_exists( self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem' ) )
174
+ self::$plugin_data[ 'cacert' ] = self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem';
175
+ self::$plugin_data[ 'cacert' ] = apply_filters( 'backwpup_cacert_bundle', self::$plugin_data[ 'cacert' ] );
176
+ //get unmodified WP Versions
177
+ include ABSPATH . WPINC . '/version.php';
178
+ /** @var $wp_version string */
179
+ self::$plugin_data[ 'wp_version' ] = $wp_version;
180
+ //Build User Agent
181
+ self::$plugin_data[ 'user-agent' ] = self::$plugin_data[ 'name' ].'/' . self::$plugin_data[ 'version' ] . '; WordPress/' . self::$plugin_data[ 'wp_version' ] . '; ' . home_url();
182
+ }
183
+
184
+ if ( ! empty( $name ) )
185
+ return self::$plugin_data[ $name ];
186
+ else
187
+ return self::$plugin_data;
188
+ }
189
+
190
+
191
+ /**
192
+ * include not existing classes automatically
193
+ *
194
+ * @param string $class Class to load from file
195
+ */
196
+ private function autoloader( $class ) {
197
+
198
+ //BackWPup classes auto load
199
+ if ( strstr( strtolower( $class ), 'backwpup_' ) ) {
200
+ $dir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR;
201
+ $class_file_name = 'class-' . str_replace( array( 'backwpup_', '_' ), array( '', '-' ), strtolower( $class ) ) . '.php';
202
+ if ( strstr( strtolower( $class ), 'backwpup_pro' ) ) {
203
+ $dir .= 'pro' . DIRECTORY_SEPARATOR;
204
+ $class_file_name = str_replace( 'pro-','', $class_file_name );
205
+ }
206
+ if ( file_exists( $dir . $class_file_name ) )
207
+ require $dir . $class_file_name;
208
+ }
209
+
210
+ // namespaced PSR-0
211
+ if ( ! empty( self::$autoload ) ) {
212
+ $pos = strrpos( $class, '\\' );
213
+ if ( $pos !== FALSE ) {
214
+ $class_path = str_replace( '\\', DIRECTORY_SEPARATOR, substr( $class, 0, $pos ) ) . DIRECTORY_SEPARATOR . str_replace( '_', DIRECTORY_SEPARATOR, substr( $class, $pos + 1 ) ) . '.php';
215
+ foreach ( self::$autoload as $prefix => $dir ) {
216
+ if ( $class === strstr( $class, $prefix ) ) {
217
+ if ( file_exists( $dir . DIRECTORY_SEPARATOR . $class_path ) )
218
+ require $dir . DIRECTORY_SEPARATOR . $class_path;
219
+ }
220
+ }
221
+ } // Single class file
222
+ elseif ( ! empty( self::$autoload[ $class ] ) && is_file( self::$autoload[ $class ] ) ) {
223
+ require self::$autoload[ $class ];
224
+ }
225
+ }
226
+
227
+ //Google SDK Auto loading
228
+ $classPath = explode( '_', $class );
229
+ if ( $classPath[0] == 'Google' ) {
230
+ if ( count( $classPath ) > 3 ) {
231
+ $classPath = array_slice( $classPath, 0, 3 );
232
+ }
233
+ $filePath = self::get_plugin_data( 'plugindir' ) . '/vendor/' . implode( '/', $classPath ) . '.php';
234
+ if ( file_exists( $filePath ) ) {
235
+ require $filePath;
236
+ }
237
+ }
238
+
239
+ }
240
+
241
+ /**
242
+ * Load Plugin Translation
243
+ *
244
+ * @return bool Text domain loaded
245
+ */
246
+ public static function load_text_domain() {
247
+
248
+ if ( is_textdomain_loaded( 'backwpup' ) ) {
249
+ return TRUE;
250
+ }
251
+
252
+ return load_plugin_textdomain( 'backwpup', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
253
+ }
254
+
255
+ /**
256
+ * Get a array of instances for Backup Destination's
257
+ *
258
+ * @param $key string Key of Destination where get class instance from
259
+ * @return array BackWPup_Destinations
260
+ */
261
+ public static function get_destination( $key ) {
262
+
263
+ $key = strtoupper( $key );
264
+
265
+ if ( isset( self::$destinations[ $key ] ) && is_object( self::$destinations[ $key ] ) )
266
+ return self::$destinations[ $key ];
267
+
268
+ $reg_dests = self::get_registered_destinations();
269
+ if ( ! empty( $reg_dests[ $key ][ 'class' ] ) ) {
270
+ self::$destinations[ $key ] = new $reg_dests[ $key ][ 'class' ];
271
+ } else {
272
+ return NULL;
273
+ }
274
+
275
+ return self::$destinations[ $key ];
276
+ }
277
+
278
+ /**
279
+ * Get a array of registered Destination's for Backups
280
+ *
281
+ * @return array BackWPup_Destinations
282
+ */
283
+ public static function get_registered_destinations() {
284
+
285
+ //only run it one time
286
+ if ( ! empty( self::$registered_destinations ) )
287
+ return self::$registered_destinations;
288
+
289
+ //add BackWPup Destinations
290
+ // to folder
291
+ self::$registered_destinations[ 'FOLDER' ] = array(
292
+ 'class' => 'BackWPup_Destination_Folder',
293
+ 'info' => array(
294
+ 'ID' => 'FOLDER',
295
+ 'name' => __( 'Folder', 'backwpup' ),
296
+ 'description' => __( 'Backup to Folder', 'backwpup' ),
297
+ ),
298
+ 'can_sync' => FALSE,
299
+ 'needed' => array(
300
+ 'php_version' => '',
301
+ 'functions' => array(),
302
+ 'classes' => array()
303
+ ),
304
+ 'autoload' => array()
305
+ );
306
+ // backup with mail
307
+ self::$registered_destinations[ 'EMAIL' ] = array(
308
+ 'class' => 'BackWPup_Destination_Email',
309
+ 'info' => array(
310
+ 'ID' => 'EMAIL',
311
+ 'name' => __( 'Email', 'backwpup' ),
312
+ 'description' => __( 'Backup sent via email', 'backwpup' ),
313
+ ),
314
+ 'can_sync' => FALSE,
315
+ 'needed' => array(
316
+ 'php_version' => '5.2.4',
317
+ 'functions' => array(),
318
+ 'classes' => array()
319
+ ),
320
+ 'autoload' => array()
321
+ );
322
+ // backup to ftp
323
+ self::$registered_destinations[ 'FTP' ] = array(
324
+ 'class' => 'BackWPup_Destination_Ftp',
325
+ 'info' => array(
326
+ 'ID' => 'FTP',
327
+ 'name' => __( 'FTP', 'backwpup' ),
328
+ 'description' => __( 'Backup to FTP', 'backwpup' ),
329
+ ),
330
+ 'can_sync' => FALSE,
331
+ 'needed' => array(
332
+ 'mphp_version' => '',
333
+ 'functions' => array( 'ftp_nb_fput' ),
334
+ 'classes' => array()
335
+ ),
336
+ 'autoload' => array()
337
+ );
338
+ // backup to dropbox
339
+ self::$registered_destinations[ 'DROPBOX' ] = array(
340
+ 'class' => 'BackWPup_Destination_Dropbox',
341
+ 'info' => array(
342
+ 'ID' => 'DROPBOX',
343
+ 'name' => __( 'Dropbox', 'backwpup' ),
344
+ 'description' => __( 'Backup to Dropbox', 'backwpup' ),
345
+ ),
346
+ 'can_sync' => FALSE,
347
+ 'needed' => array(
348
+ 'php_version' => '',
349
+ 'functions' => array( 'curl_exec' ),
350
+ 'classes' => array()
351
+ ),
352
+ 'autoload' => array()
353
+ );
354
+ // Backup to S3
355
+ if ( version_compare( PHP_VERSION, '5.3.3', '>=' ) ) {
356
+ self::$registered_destinations[ 'S3' ] = array(
357
+ 'class' => 'BackWPup_Destination_S3',
358
+ 'info' => array(
359
+ 'ID' => 'S3',
360
+ 'name' => __( 'S3 Service', 'backwpup' ),
361
+ 'description' => __( 'Backup to an S3 Service', 'backwpup' ),
362
+ ),
363
+ 'can_sync' => FALSE,
364
+ 'needed' => array(
365
+ 'php_version' => '5.3.3',
366
+ 'functions' => array( 'curl_exec' ),
367
+ 'classes' => array( 'XMLWriter' )
368
+ ),
369
+ 'autoload' => array( 'Aws\\Common' => dirname( __FILE__ ) .'/vendor',
370
+ 'Aws\\S3' => dirname( __FILE__ ) .'/vendor',
371
+ 'Symfony\\Component\\EventDispatcher' => dirname( __FILE__ ) . '/vendor',
372
+ 'Guzzle' => dirname( __FILE__ ) . '/vendor' )
373
+ );
374
+ } else {
375
+ self::$registered_destinations[ 'S3' ] = array(
376
+ 'class' => 'BackWPup_Destination_S3_V1',
377
+ 'info' => array(
378
+ 'ID' => 'S3',
379
+ 'name' => __( 'S3 Service', 'backwpup' ),
380
+ 'description' => __( 'Backup to an S3 Service v1', 'backwpup' ),
381
+ ),
382
+ 'can_sync' => FALSE,
383
+ 'needed' => array(
384
+ 'php_version' => '',
385
+ 'functions' => array( 'curl_exec' ),
386
+ 'classes' => array()
387
+ ),
388
+ 'autoload' => array( 'AmazonS3' => dirname( __FILE__ ) . '/vendor/Aws_v1/sdk.class.php' )
389
+ );
390
+ }
391
+ // backup to MS Azure
392
+ self::$registered_destinations[ 'MSAZURE' ] = array(
393
+ 'class' => 'BackWPup_Destination_MSAzure',
394
+ 'info' => array(
395
+ 'ID' => 'MSAZURE',
396
+ 'name' => __( 'MS Azure', 'backwpup' ),
397
+ 'description' => __( 'Backup to Microsoft Azure (Blob)', 'backwpup' ),
398
+ ),
399
+ 'can_sync' => FALSE,
400
+ 'needed' => array(
401
+ 'php_version' => '5.3.2',
402
+ 'functions' => array(),
403
+ 'classes' => array()
404
+ ),
405
+ 'autoload' => array( 'WindowsAzure' => dirname( __FILE__ ) . '/vendor' )
406
+ );
407
+ // backup to Rackspace Cloud
408
+ self::$registered_destinations[ 'RSC' ] = array(
409
+ 'class' => 'BackWPup_Destination_RSC',
410
+ 'info' => array(
411
+ 'ID' => 'RSC',
412
+ 'name' => __( 'RSC', 'backwpup' ),
413
+ 'description' => __( 'Backup to Rackspace Cloud Files', 'backwpup' ),
414
+ ),
415
+ 'can_sync' => FALSE,
416
+ 'needed' => array(
417
+ 'php_version' => '5.3.3',
418
+ 'functions' => array( 'curl_exec' ),
419
+ 'classes' => array()
420
+ ),
421
+ 'autoload' => array( 'OpenCloud' => dirname( __FILE__ ) . '/vendor',
422
+ 'Guzzle' => dirname( __FILE__ ) . '/vendor' )
423
+ );
424
+ // backup to Sugarsync
425
+ self::$registered_destinations[ 'SUGARSYNC' ] = array(
426
+ 'class' => 'BackWPup_Destination_SugarSync',
427
+ 'info' => array(
428
+ 'ID' => 'SUGARSYNC',
429
+ 'name' => __( 'SugarSync', 'backwpup' ),
430
+ 'description' => __( 'Backup to SugarSync', 'backwpup' ),
431
+ ),
432
+ 'can_sync' => FALSE,
433
+ 'needed' => array(
434
+ 'php_version' => '',
435
+ 'functions' => array( 'curl_exec' ),
436
+ 'classes' => array()
437
+ ),
438
+ 'autoload' => array()
439
+ );
440
+
441
+ //Hook for adding Destinations like above
442
+ self::$registered_destinations = apply_filters( 'backwpup_register_destination', self::$registered_destinations );
443
+
444
+ //check BackWPup Destinations
445
+ foreach ( self::$registered_destinations as $dest_key => $dest ) {
446
+ self::$registered_destinations[ $dest_key ][ 'error'] = '';
447
+ // check PHP Version
448
+ if ( ! empty( $dest[ 'needed' ][ 'php_version' ] ) && version_compare( PHP_VERSION, $dest[ 'needed' ][ 'php_version' ], '<' ) ) {
449
+ self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'PHP Version %1$s is to low, you need Version %2$s or above.', 'backwpup' ), PHP_VERSION, $dest[ 'needed' ][ 'php_version' ] ) . ' ';
450
+ self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
451
+ }
452
+ //check functions exists
453
+ if ( ! empty( $dest[ 'needed' ][ 'functions' ] ) ) {
454
+ foreach ( $dest[ 'needed' ][ 'functions' ] as $function_need ) {
455
+ if ( ! function_exists( $function_need ) ) {
456
+ self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing function "%s".', 'backwpup' ), $function_need ) . ' ';
457
+ self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
458
+ }
459
+ }
460
+ }
461
+ //check classes exists
462
+ if ( ! empty( $dest[ 'needed' ][ 'classes' ] ) ) {
463
+ foreach ( $dest[ 'needed' ][ 'classes' ] as $class_need ) {
464
+ if ( ! class_exists( $class_need ) ) {
465
+ self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing class "%s".', 'backwpup' ), $class_need ) . ' ';
466
+ self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
467
+ }
468
+ }
469
+ }
470
+ //add class/namespace to auto load
471
+ if ( ! empty( self::$registered_destinations[ $dest_key ][ 'class' ] ) && ! empty( self::$registered_destinations[ $dest_key ][ 'autoload' ] ) )
472
+ self::$autoload = array_merge( self::$autoload, self::$registered_destinations[ $dest_key ][ 'autoload' ] );
473
+
474
+ }
475
+
476
+ return self::$registered_destinations;
477
+ }
478
+
479
+
480
+ /**
481
+ * Gets a array of instances from Job types
482
+ *
483
+ * @return array BackWPup_JobTypes
484
+ */
485
+ public static function get_job_types() {
486
+
487
+ if ( !empty( self::$job_types ) )
488
+ return self::$job_types;
489
+
490
+ self::$job_types[ 'DBDUMP' ] = new BackWPup_JobType_DBDump;
491
+ self::$job_types[ 'FILE' ] = new BackWPup_JobType_File;
492
+ self::$job_types[ 'WPEXP' ] = new BackWPup_JobType_WPEXP;
493
+ self::$job_types[ 'WPPLUGIN' ] = new BackWPup_JobType_WPPlugin;
494
+ self::$job_types[ 'DBCHECK' ] = new BackWPup_JobType_DBCheck;
495
+
496
+ self::$job_types = apply_filters( 'backwpup_job_types', self::$job_types );
497
+
498
+ //remove types can't load
499
+ foreach ( self::$job_types as $key => $job_type ) {
500
+ if ( empty( $job_type ) || ! is_object( $job_type ) )
501
+ unset( self::$job_types[ $key ] );
502
+ }
503
+
504
+ return self::$job_types;
505
+ }
506
+
507
+
508
+ /**
509
+ * Gets a array of instances from Wizards
510
+ *
511
+ * @return array BackWPup_Pro_Wizards
512
+ */
513
+ public static function get_wizards() {
514
+
515
+ if ( !empty( self::$wizards ) )
516
+ return self::$wizards;
517
+
518
+ self::$wizards = apply_filters( 'backwpup_pro_wizards', self::$wizards );
519
+
520
+ //remove wizards can't load
521
+ foreach ( self::$wizards as $key => $wizard ) {
522
+ if ( empty( $wizard ) || ! is_object( $wizard ) )
523
+ unset( self::$wizards[ $key ] );
524
+ }
525
+
526
+ return self::$wizards;
527
+
528
+ }
529
+
530
+ }
531
+
532
+ }
inc/class-destination-folder.php CHANGED
@@ -73,9 +73,20 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
73
  */
74
  public function file_delete( $jobdest, $backupfile ) {
75
 
76
- if ( is_writeable( $backupfile ) && !is_dir( $backupfile ) && !is_link( $backupfile ) )
77
- unlink( $backupfile );
 
 
 
 
 
 
 
 
78
 
 
 
 
79
  }
80
 
81
  /**
@@ -84,7 +95,13 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
84
  */
85
  public function file_download( $jobid, $get_file ) {
86
 
87
- if ( is_readable( $get_file ) ) {
 
 
 
 
 
 
88
  header( "Pragma: public" );
89
  header( "Expires: 0" );
90
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
@@ -93,14 +110,12 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
93
  header( "Content-Transfer-Encoding: binary" );
94
  header( "Content-Length: " . filesize( $get_file ) );
95
  @set_time_limit( 300 );
96
- //chunked readfile
97
- @ob_end_clean();
98
  $handle = fopen( $get_file, 'rb' );
99
  if ( $handle ) {
100
  while ( ! feof( $handle ) ) {
101
- echo fread( $handle, 20482048 ); //2MB chunkes
102
- @ob_flush();
103
- @flush();
104
  }
105
  fclose( $handle );
106
  }
@@ -119,7 +134,7 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
119
  */
120
  public function file_get_list( $jobdest ) {
121
 
122
- list( $jobid, $dest ) = explode( '_', $jobdest );
123
  $filecounter = 0;
124
  $files = array();
125
  $backup_folder = BackWPup_Option::get( $jobid, 'backupdir' );
@@ -136,7 +151,7 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
136
  $files[ $filecounter ][ 'downloadurl' ] = add_query_arg( array(
137
  'page' => 'backwpupbackups',
138
  'action' => 'downloadfolder',
139
- 'file' => $backup_folder . $file,
140
  'jobid' => $jobid
141
  ), network_admin_url( 'admin.php' ) );
142
  $files[ $filecounter ][ 'filesize' ] = filesize( $backup_folder . $file );
@@ -161,7 +176,7 @@ class BackWPup_Destination_Folder extends BackWPup_Destinations {
161
  BackWPup_Option::update( $job_object->job[ 'jobid' ], 'lastbackupdownloadurl', add_query_arg( array(
162
  'page' => 'backwpupbackups',
163
  'action' => 'downloadfolder',
164
- 'file' => $job_object->backup_folder . $job_object->backup_file,
165
  'jobid' => $job_object->job[ 'jobid' ]
166
  ), network_admin_url( 'admin.php' ) ) );
167
  //Delete old Backupfiles
73
  */
74
  public function file_delete( $jobdest, $backupfile ) {
75
 
76
+ list( $jobid, $dest ) = explode( '_', $jobdest, 2 );
77
+
78
+ if ( empty( $jobid ) ) {
79
+ return;
80
+ }
81
+
82
+ $backup_dir = esc_attr( BackWPup_Option::get( (int)$jobid, 'backupdir' ) );
83
+ $backup_dir = BackWPup_File::get_absolute_path( $backup_dir );
84
+
85
+ $backupfile = realpath( trailingslashit( $backup_dir ) . basename( $backupfile ) );
86
 
87
+ if ( $backupfile && is_writeable( $backupfile ) && !is_dir( $backupfile ) && !is_link( $backupfile ) ) {
88
+ unlink( $backupfile );
89
+ }
90
  }
91
 
92
  /**
95
  */
96
  public function file_download( $jobid, $get_file ) {
97
 
98
+ $backup_dir = esc_attr( BackWPup_Option::get( (int)$jobid, 'backupdir' ) );
99
+ $backup_dir = BackWPup_File::get_absolute_path( $backup_dir );
100
+
101
+ $get_file = realpath( trailingslashit( $backup_dir ) . basename( $get_file ) );
102
+
103
+ if ( $get_file && is_readable( $get_file ) ) {
104
+ while( @ob_end_clean() );
105
  header( "Pragma: public" );
106
  header( "Expires: 0" );
107
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
110
  header( "Content-Transfer-Encoding: binary" );
111
  header( "Content-Length: " . filesize( $get_file ) );
112
  @set_time_limit( 300 );
113
+ //chunked read file
 
114
  $handle = fopen( $get_file, 'rb' );
115
  if ( $handle ) {
116
  while ( ! feof( $handle ) ) {
117
+ echo fread( $handle, 10241024 ); //chunks
118
+ flush();
 
119
  }
120
  fclose( $handle );
121
  }
134
  */
135
  public function file_get_list( $jobdest ) {
136
 
137
+ list( $jobid, $dest ) = explode( '_', $jobdest, 2 );
138
  $filecounter = 0;
139
  $files = array();
140
  $backup_folder = BackWPup_Option::get( $jobid, 'backupdir' );
151
  $files[ $filecounter ][ 'downloadurl' ] = add_query_arg( array(
152
  'page' => 'backwpupbackups',
153
  'action' => 'downloadfolder',
154
+ 'file' => $file,
155
  'jobid' => $jobid
156
  ), network_admin_url( 'admin.php' ) );
157
  $files[ $filecounter ][ 'filesize' ] = filesize( $backup_folder . $file );
176
  BackWPup_Option::update( $job_object->job[ 'jobid' ], 'lastbackupdownloadurl', add_query_arg( array(
177
  'page' => 'backwpupbackups',
178
  'action' => 'downloadfolder',
179
+ 'file' => basename( $job_object->backup_file ),
180
  'jobid' => $job_object->job[ 'jobid' ]
181
  ), network_admin_url( 'admin.php' ) ) );
182
  //Delete old Backupfiles
inc/class-destination-s3-v1.php CHANGED
@@ -175,7 +175,7 @@ class BackWPup_Destination_S3_V1 extends BackWPup_Destinations {
175
  <th scope="row"><label for="ids3storageclass"><?php _e( 'Amazon: Storage Class', 'backwpup' ); ?></label></th>
176
  <td>
177
  <select name="s3storageclass" id="ids3storageclass" title="<?php _e( 'Amazon: Storage Class', 'backwpup' ); ?>">
178
- <option value="" <?php selected( 'us-east-1', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard', 'backwpup' ); ?></option>
179
  <option value="STANDARD_IA" <?php selected( 'STANDARD_IA', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard-Infrequent Access', 'backwpup' ); ?></option>
180
  <option value="REDUCED_REDUNDANCY" <?php selected( 'REDUCED_REDUNDANCY', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Reduced Redundancy', 'backwpup' ); ?></option>
181
  </select>
175
  <th scope="row"><label for="ids3storageclass"><?php _e( 'Amazon: Storage Class', 'backwpup' ); ?></label></th>
176
  <td>
177
  <select name="s3storageclass" id="ids3storageclass" title="<?php _e( 'Amazon: Storage Class', 'backwpup' ); ?>">
178
+ <option value="" <?php selected( '', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard', 'backwpup' ); ?></option>
179
  <option value="STANDARD_IA" <?php selected( 'STANDARD_IA', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard-Infrequent Access', 'backwpup' ); ?></option>
180
  <option value="REDUCED_REDUNDANCY" <?php selected( 'REDUCED_REDUNDANCY', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Reduced Redundancy', 'backwpup' ); ?></option>
181
  </select>
inc/class-destination-s3.php CHANGED
@@ -190,7 +190,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
190
  <th scope="row"><label for="ids3storageclass"><?php _e( 'Amazon: Storage Class', 'backwpup' ); ?></label></th>
191
  <td>
192
  <select name="s3storageclass" id="ids3storageclass" title="<?php _e( 'Amazon: Storage Class', 'backwpup' ); ?>">
193
- <option value="" <?php selected( 'us-east-1', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard', 'backwpup' ); ?></option>
194
  <option value="STANDARD_IA" <?php selected( 'STANDARD_IA', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard-Infrequent Access', 'backwpup' ); ?></option>
195
  <option value="REDUCED_REDUNDANCY" <?php selected( 'REDUCED_REDUNDANCY', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Reduced Redundancy', 'backwpup' ); ?></option>
196
  </select>
@@ -416,10 +416,14 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
416
  $create_args = array();
417
  $create_args[ 'Bucket' ] = $job_object->job[ 's3bucket' ];
418
  $create_args[ 'ACL' ] = 'private';
419
- if ( ! empty( $job_object->job[ 's3ssencrypt' ] ) )
420
- $create_args[ 'ServerSideEncryption' ] = $job_object->job[ 's3ssencrypt' ]; //AES256
421
- if ( ! empty( $job_object->job[ 's3storageclass' ] ) ) //REDUCED_REDUNDANCY
 
 
 
422
  $create_args[ 'StorageClass' ] = $job_object->job[ 's3storageclass' ];
 
423
  $create_args[ 'Metadata' ] = array( 'BackupTime' => date( 'Y-m-d H:i:s', $job_object->start_time ) );
424
 
425
  $create_args[ 'Body' ] = $up_file_handle;
@@ -444,10 +448,12 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
444
  'Bucket' => $job_object->job[ 's3bucket' ],
445
  'ContentType' => $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file ),
446
  'Key' => $job_object->job[ 's3dir' ] . $job_object->backup_file );
447
- if ( !empty( $job_object->job[ 's3ssencrypt' ] ) )
448
  $args[ 'ServerSideEncryption' ] = $job_object->job[ 's3ssencrypt' ];
449
- if ( !empty( $job_object->job[ 's3storageclass' ] ) )
450
- $args[ 'StorageClass' ] = empty( $job_object->job[ 's3storageclass' ] ) ? 'STANDARD' : 'REDUCED_REDUNDANCY';
 
 
451
 
452
  $upload = $s3->createMultipartUpload( $args );
453
 
190
  <th scope="row"><label for="ids3storageclass"><?php _e( 'Amazon: Storage Class', 'backwpup' ); ?></label></th>
191
  <td>
192
  <select name="s3storageclass" id="ids3storageclass" title="<?php _e( 'Amazon: Storage Class', 'backwpup' ); ?>">
193
+ <option value="" <?php selected( '', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard', 'backwpup' ); ?></option>
194
  <option value="STANDARD_IA" <?php selected( 'STANDARD_IA', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Standard-Infrequent Access', 'backwpup' ); ?></option>
195
  <option value="REDUCED_REDUNDANCY" <?php selected( 'REDUCED_REDUNDANCY', BackWPup_Option::get( $jobid, 's3storageclass' ), TRUE ) ?>><?php _e( 'Reduced Redundancy', 'backwpup' ); ?></option>
196
  </select>
416
  $create_args = array();
417
  $create_args[ 'Bucket' ] = $job_object->job[ 's3bucket' ];
418
  $create_args[ 'ACL' ] = 'private';
419
+ //encrxption
420
+ if ( ! empty( $job_object->job[ 's3ssencrypt' ] ) ) {
421
+ $create_args[ 'ServerSideEncryption' ] = $job_object->job[ 's3ssencrypt' ];
422
+ }
423
+ //Storage Class
424
+ if ( ! empty( $job_object->job[ 's3storageclass' ] ) ) {
425
  $create_args[ 'StorageClass' ] = $job_object->job[ 's3storageclass' ];
426
+ }
427
  $create_args[ 'Metadata' ] = array( 'BackupTime' => date( 'Y-m-d H:i:s', $job_object->start_time ) );
428
 
429
  $create_args[ 'Body' ] = $up_file_handle;
448
  'Bucket' => $job_object->job[ 's3bucket' ],
449
  'ContentType' => $job_object->get_mime_type( $job_object->backup_folder . $job_object->backup_file ),
450
  'Key' => $job_object->job[ 's3dir' ] . $job_object->backup_file );
451
+ if ( !empty( $job_object->job[ 's3ssencrypt' ] ) ) {
452
  $args[ 'ServerSideEncryption' ] = $job_object->job[ 's3ssencrypt' ];
453
+ }
454
+ if ( !empty( $job_object->job[ 's3storageclass' ] ) ) {
455
+ $args[ 'StorageClass' ] = empty( $job_object->job[ 's3storageclass' ] ) ? '' : $job_object->job[ 's3storageclass' ];
456
+ }
457
 
458
  $upload = $s3->createMultipartUpload( $args );
459
 
inc/class-job.php CHANGED
@@ -1,2440 +1,2439 @@
1
- <?php
2
- /**
3
- * Class in that the BackWPup job runs
4
- */
5
- final class BackWPup_Job {
6
-
7
- /**
8
- * @var array of the job settings
9
- */
10
- public $job = array();
11
-
12
- /**
13
- * @var int The timestamp when the job starts
14
- */
15
- public $start_time = 0;
16
-
17
- /**
18
- * @var string the logfile
19
- */
20
- public $logfile = '';
21
- /**
22
- * @var array for temp values
23
- */
24
- public $temp = array();
25
- /**
26
- * @var string Folder where is Backup files in
27
- */
28
- public $backup_folder = '';
29
- /**
30
- * @var string the name of the Backup archive file
31
- */
32
- public $backup_file = '';
33
- /**
34
- * @var int The size of the Backup archive file
35
- */
36
- public $backup_filesize = 0;
37
- /**
38
- * @var int PID of script
39
- */
40
- public $pid = 0;
41
- /**
42
- * @var float Timestamp of last update off .running file
43
- */
44
- public $timestamp_last_update = 0;
45
- /**
46
- * @var float Timestamp of script start
47
- */
48
- private $timestamp_script_start = 0;
49
- /**
50
- * @var int Number of warnings
51
- */
52
- public $warnings = 0;
53
- /**
54
- * @var int Number of errors
55
- */
56
- public $errors = 0;
57
- /**
58
- * @var string the last log notice message
59
- */
60
- public $lastmsg = '';
61
- /**
62
- * @var string the last log error/waring message
63
- */
64
- public $lasterrormsg = '';
65
- /**
66
- * @var array of steps to do
67
- */
68
- public $steps_todo = array( 'CREATE' );
69
- /**
70
- * @var array of done steps
71
- */
72
- public $steps_done = array();
73
- /**
74
- * @var array of steps data
75
- */
76
- public $steps_data = array();
77
- /**
78
- * @var string working on step
79
- */
80
- public $step_working = 'CREATE';
81
- /**
82
- * @var int Number of sub steps must do in step
83
- */
84
- public $substeps_todo = 0;
85
- /**
86
- * @var int Number of sub steps done in step
87
- */
88
- public $substeps_done = 0;
89
- /**
90
- * @var int Percent of steps done
91
- */
92
- public $step_percent = 1;
93
- /**
94
- * @var int Percent of sub steps done
95
- */
96
- public $substep_percent = 1;
97
- /**
98
- * @var array of files to additional to backup
99
- */
100
- public $additional_files_to_backup = array();
101
- /**
102
- * @var array of files/folder to exclude from backup
103
- */
104
- public $exclude_from_backup = array();
105
- /**
106
- * @var int count of affected files
107
- */
108
- public $count_files = 0;
109
- /**
110
- * @var int count of affected file sizes
111
- */
112
- public $count_files_size = 0;
113
- /**
114
- * @var int count of affected folders
115
- */
116
- public $count_folder = 0;
117
-
118
- /**
119
- * If job aborted from user
120
- * @var bool
121
- */
122
- public $user_abort = FALSE;
123
-
124
- /**
125
- * Stores data that will only used in a single run
126
- * @var array
127
- */
128
- private $run = array();
129
-
130
- /**
131
- * A uniqid ID uniqid('', true); to identify process
132
- * @var string
133
- */
134
- public $uniqid = '';
135
-
136
- /**
137
- * @var string logging level (normal|normal_untranslated|debug|debug_untranslated)
138
- */
139
- private $log_level = 'normal';
140
-
141
-
142
- /**
143
- * Delete some data on cloned objects
144
- */
145
- public function __clone( ) {
146
-
147
- $this->temp = array();
148
- $this->run = array();
149
- }
150
-
151
- /**
152
- *
153
- * This starts or restarts the job working
154
- *
155
- * @param string $start_type Start types are 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli'
156
- * @param array|int $job_settings The id of job or the settings of a job to start
157
- */
158
- private function create( $start_type, $job_settings = 0 ) {
159
- global $wpdb;
160
- /* @var wpdb $wpdb */
161
-
162
- //check startype
163
- if ( ! in_array( $start_type, array( 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli' ) ) ) {
164
- return;
165
- }
166
-
167
- if ( is_int( $job_settings ) ) {
168
- $this->job = BackWPup_Option::get_job( $job_settings );
169
- } elseif( is_array( $job_settings ) ) {
170
- $this->job = $job_settings;
171
- } else {
172
- return;
173
- }
174
-
175
- $this->start_time = current_time( 'timestamp' );
176
- $this->lastmsg = __( 'Starting job', 'backwpup' );
177
- //set Logfile
178
- $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
179
- $log_folder = BackWPup_File::get_absolute_path( $log_folder );
180
- $this->logfile = $log_folder . 'backwpup_log_' . BackWPup::get_plugin_data( 'hash' ) . '_' . date( 'Y-m-d_H-i-s', current_time( 'timestamp' ) ) . '.html';
181
- //write settings to job
182
- if ( ! empty( $this->job[ 'jobid' ] ) ) {
183
- BackWPup_Option::update( $this->job[ 'jobid' ], 'lastrun', $this->start_time );
184
- BackWPup_Option::update( $this->job[ 'jobid' ], 'logfile', $this->logfile ); //Set current logfile
185
- BackWPup_Option::update( $this->job[ 'jobid' ], 'lastbackupdownloadurl', '' );
186
- }
187
- //Set needed job values
188
- $this->timestamp_last_update = microtime( TRUE );
189
- $this->exclude_from_backup = explode( ',', trim( $this->job[ 'fileexclude' ] ) );
190
- $this->exclude_from_backup = array_unique( $this->exclude_from_backup );
191
- //setup job steps
192
- $this->steps_data[ 'CREATE' ][ 'CALLBACK' ] = '';
193
- $this->steps_data[ 'CREATE' ][ 'NAME' ] = __( 'Job Start', 'backwpup' );
194
- $this->steps_data[ 'CREATE' ][ 'STEP_TRY' ] = 0;
195
- //ADD Job types file
196
- /* @var $job_type_class BackWPup_JobTypes */
197
- $job_need_dest = FALSE;
198
- if ( $job_types = BackWPup::get_job_types() ) {
199
- foreach ( $job_types as $id => $job_type_class ) {
200
- if ( in_array( $id, $this->job[ 'type' ] ) && $job_type_class->creates_file( ) ) {
201
- $this->steps_todo[ ] = 'JOB_' . $id;
202
- $this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
203
- $this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
204
- $this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
205
- $job_need_dest = TRUE;
206
- }
207
- }
208
- }
209
- //add destinations and create archive if a job where files to backup
210
- if ( $job_need_dest ) {
211
- //Create manifest file
212
- $this->steps_todo[ ] = 'CREATE_MANIFEST';
213
- $this->steps_data[ 'CREATE_MANIFEST' ][ 'NAME' ] = __( 'Creates manifest file', 'backwpup' );
214
- $this->steps_data[ 'CREATE_MANIFEST' ][ 'STEP_TRY' ] = 0;
215
- $this->steps_data[ 'CREATE_MANIFEST' ][ 'SAVE_STEP_TRY' ] = 0;
216
- //Add archive creation and backup filename on backup type archive
217
- if ( $this->job[ 'backuptype' ] == 'archive' ) {
218
- //get Backup folder if destination folder set
219
- if ( in_array( 'FOLDER', $this->job[ 'destinations' ] ) ) {
220
- $this->backup_folder = $this->job[ 'backupdir' ];
221
- //check backup folder
222
- if ( ! empty( $this->backup_folder ) ) {
223
- $this->backup_folder = BackWPup_File::get_absolute_path( $this->backup_folder );
224
- $this->job[ 'backupdir' ] = $this->backup_folder;
225
- }
226
- }
227
- //set temp folder to backup folder if not set because we need one
228
- if ( ! $this->backup_folder || $this->backup_folder == '/' ) {
229
- $this->backup_folder = BackWPup::get_plugin_data( 'TEMP' );
230
- }
231
- //Create backup archive full file name
232
- $this->backup_file = $this->generate_filename( $this->job[ 'archivename' ], $this->job[ 'archiveformat' ] );
233
- //add archive create
234
- $this->steps_todo[ ] = 'CREATE_ARCHIVE';
235
- $this->steps_data[ 'CREATE_ARCHIVE' ][ 'NAME' ] = __( 'Creates archive', 'backwpup' );
236
- $this->steps_data[ 'CREATE_ARCHIVE' ][ 'STEP_TRY' ] = 0;
237
- $this->steps_data[ 'CREATE_ARCHIVE' ][ 'SAVE_STEP_TRY' ] = 0;
238
- }
239
- //ADD Destinations
240
- /* @var BackWPup_Destinations $dest_class */
241
- foreach ( BackWPup::get_registered_destinations() as $id => $dest ) {
242
- if ( ! in_array( $id, $this->job[ 'destinations' ] ) || empty( $dest[ 'class' ] ) )
243
- continue;
244
- $dest_class = BackWPup::get_destination( $id );
245
- if ( $dest_class->can_run( $this->job ) ) {
246
- if ( $this->job[ 'backuptype' ] == 'sync' ) {
247
- if ( $dest[ 'can_sync' ] ) {
248
- $this->steps_todo[] = 'DEST_SYNC_' . $id;
249
- $this->steps_data[ 'DEST_SYNC_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
250
- $this->steps_data[ 'DEST_SYNC_' . $id ][ 'STEP_TRY' ] = 0;
251
- $this->steps_data[ 'DEST_SYNC_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
252
- }
253
- } else {
254
- $this->steps_todo[] = 'DEST_' . $id;
255
- $this->steps_data[ 'DEST_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
256
- $this->steps_data[ 'DEST_' . $id ][ 'STEP_TRY' ] = 0;
257
- $this->steps_data[ 'DEST_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
258
- }
259
- }
260
- }
261
- }
262
- //ADD Job type no file
263
- if ( $job_types = BackWPup::get_job_types() ) {
264
- foreach ( $job_types as $id => $job_type_class ) {
265
- if ( in_array( $id, $this->job[ 'type' ] ) && ! $job_type_class->creates_file() ) {
266
- $this->steps_todo[ ] = 'JOB_' . $id;
267
- $this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
268
- $this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
269
- $this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
270
- }
271
- }
272
- }
273
- $this->steps_todo[] = 'END';
274
- $this->steps_data[ 'END' ][ 'NAME' ] = __( 'End of Job', 'backwpup' );
275
- $this->steps_data[ 'END' ][ 'STEP_TRY' ] = 1;
276
- //must write working data
277
- $this->write_running_file();
278
-
279
- //load text domain if needed
280
- $this->log_level = get_site_option( 'backwpup_cfg_loglevel' );
281
- if ( ! in_array( $this->log_level, array( 'normal_translated', 'normal', 'debug_translated', 'debug' ) ) ) {
282
- $this->log_level = 'normal_translated';
283
- }
284
- //create log file
285
- $head = '';
286
- $info = '';
287
- $head .= "<!DOCTYPE html>" . PHP_EOL;
288
- $head .= "<html lang=\"" . str_replace( '_', '-', get_locale() ) . "\">" . PHP_EOL;
289
- $head .= "<head>" . PHP_EOL;
290
- $head .= "<meta charset=\"" . get_bloginfo( 'charset' ) . "\" />" . PHP_EOL;
291
- $head .= "<title>" . sprintf( __( 'BackWPup log for %1$s from %2$s at %3$s', 'backwpup' ), $this->job[ 'name' ], date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) ) . "</title>" . PHP_EOL;
292
- $head .= "<meta name=\"robots\" content=\"noindex, nofollow\" />" . PHP_EOL;
293
- $head .= "<meta name=\"copyright\" content=\"Copyright &copy; 2012 - " . date( 'Y' ) . " Inpsyde GmbH\" />" . PHP_EOL;
294
- $head .= "<meta name=\"author\" content=\"Inpsyde GmbH\" />" . PHP_EOL;
295
- $head .= "<meta name=\"generator\" content=\"BackWPup " . BackWPup::get_plugin_data( 'Version' ) . "\" />" . PHP_EOL;
296
- $head .= "<meta http-equiv=\"cache-control\" content=\"no-cache\" />" . PHP_EOL;
297
- $head .= "<meta http-equiv=\"pragma\" content=\"no-cache\" />" . PHP_EOL;
298
- $head .= "<meta name=\"date\" content=\"" . date( 'c' ) . "\" />" . PHP_EOL;
299
- $head .= str_pad( '<meta name="backwpup_errors" content="0" />', 100 ) . PHP_EOL;
300
- $head .= str_pad( '<meta name="backwpup_warnings" content="0" />', 100 ) . PHP_EOL;
301
- if ( ! empty( $this->job[ 'jobid' ] ) ) {
302
- $head .= "<meta name=\"backwpup_jobid\" content=\"" . $this->job[ 'jobid' ] . "\" />" . PHP_EOL;
303
- }
304
- $head .= "<meta name=\"backwpup_jobname\" content=\"" . esc_attr( $this->job[ 'name' ] ) . "\" />" . PHP_EOL;
305
- $head .= "<meta name=\"backwpup_jobtype\" content=\"" . implode( '+', $this->job[ 'type' ] ) . "\" />" . PHP_EOL;
306
- $head .= str_pad( '<meta name="backwpup_backupfilesize" content="0" />', 100 ) . PHP_EOL;
307
- $head .= str_pad( '<meta name="backwpup_jobruntime" content="0" />', 100 ) . PHP_EOL;
308
- $head .= "</head>" . PHP_EOL;
309
- $head .= "<body style=\"margin:0;padding:3px;font-family:monospace;font-size:12px;line-height:15px;background-color:#000;color:#fff;white-space:nowrap;\">" . PHP_EOL;
310
- $info .= sprintf( _x( '[INFO] %1$s %2$s; A project of Inpsyde GmbH', 'Plugin name; Plugin Version; plugin url','backwpup' ), BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'Version' ), BackWPup::get_plugin_data( 'pluginuri' ) ) . '<br />' . PHP_EOL;
311
- if ( $this->is_debug() ) {
312
- $info .= sprintf( _x( '[INFO] WordPress %1$s on %2$s', 'WordPress Version; Blog url', 'backwpup' ), BackWPup::get_plugin_data( 'wp_version' ), esc_attr( site_url( '/' ) ) ). '<br />' . PHP_EOL;
313
- }
314
- $job_name = esc_attr( $this->job[ 'name' ] );
315
- if ( $this->is_debug() ) {
316
- $job_name .= '; ' . implode( '+', $this->job[ 'type' ] );
317
- }
318
- $info .= sprintf( __( '[INFO] BackWPup job: %1$s', 'backwpup' ), $job_name ) . '<br />' . PHP_EOL;
319
- if ( $this->is_debug() ) {
320
- $current_user = wp_get_current_user();
321
- $info .= sprintf( __( '[INFO] Runs with user: %1$s (%2$d) ', 'backwpup' ), $current_user->user_login, $current_user->ID ) . '<br />' . PHP_EOL;
322
- }
323
- if ( $this->job[ 'activetype' ] == 'wpcron' ) {
324
- //check next run
325
- $cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
326
- if ( ! $cron_next || $cron_next < time() ) {
327
- wp_unschedule_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
328
- $cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
329
- wp_schedule_single_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
330
- $cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
331
- }
332
- //output scheduling
333
- if ( $this->is_debug() ) {
334
- if ( ! $cron_next ) {
335
- $cron_next = __( 'Not scheduled!', 'backwpup' );
336
- } else {
337
- $cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
338
- }
339
- $info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
340
- }
341
- }
342
- elseif( $this->job[ 'activetype' ] == 'link' && $this->is_debug() ) {
343
- $info .= __( '[INFO] BackWPup job start with link is active', 'backwpup' ) . '<br />' . PHP_EOL;
344
- }
345
- elseif( $this->job[ 'activetype' ] == 'easycron' && $this->is_debug() ) {
346
- $info .= __( '[INFO] BackWPup job start with EasyCron.com', 'backwpup' ) . '<br />' . PHP_EOL;
347
- //output scheduling
348
- if ( $this->is_debug() ) {
349
- $cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
350
- $cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
351
- $info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
352
- }
353
- }
354
- elseif( $this->is_debug() ) {
355
- $info .= __( '[INFO] BackWPup no automatic job start configured', 'backwpup' ) . '<br />' . PHP_EOL;
356
- }
357
- if ( $this->is_debug() ) {
358
- if ( $start_type == 'cronrun' ) {
359
- $info .= __( '[INFO] BackWPup job started from wp-cron', 'backwpup' ) . '<br />' . PHP_EOL;
360
- } elseif ( $start_type == 'runnow' || $start_type == 'runnowalt' ) {
361
- $info .= __( '[INFO] BackWPup job started manually', 'backwpup' ) . '<br />' . PHP_EOL;
362
- } elseif ( $start_type == 'runext' ) {
363
- $info .= __( '[INFO] BackWPup job started from external url', 'backwpup' ) . '<br />' . PHP_EOL;
364
- } elseif ( $start_type == 'runcli' ) {
365
- $info .= __( '[INFO] BackWPup job started form commandline interface', 'backwpup' ) . '<br />' . PHP_EOL;
366
- }
367
- $bit = '';
368
- if ( PHP_INT_SIZE === 4 ) {
369
- $bit = ' (32bit)';
370
- }
371
- if ( PHP_INT_SIZE === 8 ) {
372
- $bit = ' (64bit)';
373
- }
374
- $info .= __( '[INFO] PHP ver.:', 'backwpup' ) . ' ' . PHP_VERSION . $bit .'; ' . PHP_SAPI . '; ' . PHP_OS . '<br />' . PHP_EOL;
375
- $info .= sprintf( __( '[INFO] Maximum PHP script execution time is %1$d seconds', 'backwpup' ), ini_get( 'max_execution_time' ) ) . '<br />' . PHP_EOL;
376
- if ( php_sapi_name() != 'cli' ) {
377
- $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
378
- if ( ! empty( $job_max_execution_time ) ) {
379
- $info .= sprintf( __( '[INFO] Script restart time is configured to %1$d seconds', 'backwpup' ), $job_max_execution_time ) . '<br />' . PHP_EOL;
380
- }
381
- }
382
- $info .= sprintf( __( '[INFO] MySQL ver.: %s', 'backwpup' ), $wpdb->get_var( "SELECT VERSION() AS version" ) ) . '<br />' . PHP_EOL;
383
- if ( isset( $_SERVER[ 'SERVER_SOFTWARE' ] ) )
384
- $info .= sprintf( __( '[INFO] Web Server: %s', 'backwpup' ), $_SERVER[ 'SERVER_SOFTWARE' ] ) . '<br />' . PHP_EOL;
385
- if ( function_exists( 'curl_init' ) ) {
386
- $curlversion = curl_version();
387
- $info .= sprintf( __( '[INFO] curl ver.: %1$s; %2$s', 'backwpup' ), $curlversion[ 'version' ], $curlversion[ 'ssl_version' ] ) . '<br />' . PHP_EOL;
388
- }
389
- $info .= sprintf( __( '[INFO] Temp folder is: %s', 'backwpup' ), BackWPup::get_plugin_data( 'TEMP' ) ) . '<br />' . PHP_EOL;
390
- }
391
- if ( $this->is_debug() ) {
392
- $logfile = $this->logfile;
393
- } else {
394
- $logfile = basename( $this->logfile );
395
- }
396
- $info .= sprintf( __( '[INFO] Logfile is: %s', 'backwpup' ), $logfile ) . '<br />' . PHP_EOL;
397
- if ( ! empty( $this->backup_file ) && $this->job[ 'backuptype' ] == 'archive' ) {
398
- if ( $this->is_debug() ) {
399
- $backupfile = $this->backup_folder . $this->backup_file;
400
- } else {
401
- $backupfile = $this->backup_file;
402
- }
403
- $info .= sprintf( __( '[INFO] Backup file is: %s', 'backwpup' ), $backupfile ) . '<br />' . PHP_EOL;
404
- } else {
405
- $info .= sprintf( __( '[INFO] Backup type is: %s', 'backwpup' ), $this->job[ 'backuptype' ] ) . '<br />' . PHP_EOL;
406
- }
407
- //output info on cli
408
- if ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
409
- fwrite( STDOUT, strip_tags( $info ) ) ;
410
- }
411
- if ( ! file_put_contents( $this->logfile, $head . $info, FILE_APPEND ) ) {
412
- $this->logfile = '';
413
- $this->log( __( 'Could not write log file', 'backwpup' ), E_USER_ERROR );
414
- }
415
- //test for destinations
416
- if ( $job_need_dest ) {
417
- $desttest = FALSE;
418
- foreach ( $this->steps_todo as $deststeptest ) {
419
- if ( substr( $deststeptest, 0, 5 ) == 'DEST_' ) {
420
- $desttest = TRUE;
421
- break;
422
- }
423
- }
424
- if ( ! $desttest ) {
425
- $this->log( __( 'No destination correctly defined for backup! Please correct job settings.', 'backwpup' ), E_USER_ERROR );
426
- $this->steps_todo = array( 'END' );
427
- }
428
- }
429
- //test backup folder
430
- if ( ! empty( $this->backup_folder ) ) {
431
- $folder_message = BackWPup_File::check_folder( $this->backup_folder, TRUE );
432
- if ( ! empty( $folder_message ) ) {
433
- $this->log( $folder_message, E_USER_ERROR );
434
- $this->steps_todo = array( 'END' );
435
- }
436
- }
437
-
438
- //Set start as done
439
- $this->steps_done[] = 'CREATE';
440
- }
441
-
442
-
443
- /**
444
- *
445
- * Get a url to run a job of BackWPup
446
- *
447
- * @param string $starttype Start types are 'runnow', 'runnowlink', 'cronrun', 'runext', 'restart', 'restartalt', 'test'
448
- * @param int $jobid The id of job to start else 0
449
- * @return array|object [url] is the job url [header] for auth header or object form wp_remote_get()
450
- */
451
- public static function get_jobrun_url( $starttype, $jobid = 0 ) {
452
-
453
- $authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
454
- $url = site_url( 'wp-cron.php' );
455
- $header = array();
456
- $authurl = '';
457
- $query_args = array( '_nonce' => substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-' . $starttype, 'nonce' ), - 12, 10 ), 'doing_wp_cron' => sprintf( '%.22F', microtime( true ) ) );
458
-
459
- if ( in_array( $starttype, array( 'restart', 'runnow', 'cronrun', 'runext', 'test' ) ) ) {
460
- $query_args[ 'backwpup_run' ] = $starttype;
461
- }
462
-
463
- if ( in_array( $starttype, array( 'runnowlink', 'runnow', 'cronrun', 'runext' ) ) && ! empty( $jobid ) ) {
464
- $query_args[ 'jobid' ] = $jobid;
465
- }
466
-
467
- if ( ! empty( $authentication[ 'basic_user' ] ) && ! empty( $authentication[ 'basic_password' ] ) && $authentication[ 'method' ] == 'basic' ) {
468
- $header[ 'Authorization' ] = 'Basic ' . base64_encode( $authentication[ 'basic_user' ] . ':' . BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) );
469
- $authurl = urlencode( $authentication[ 'basic_user' ] ) . ':' . urlencode( BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) ) . '@';
470
- }
471
-
472
- if ( ! empty( $authentication[ 'query_arg' ] ) && $authentication[ 'method' ] == 'query_arg' ) {
473
- $url .= '?' . $authentication[ 'query_arg' ];
474
- }
475
-
476
- if ( $starttype == 'runext' ) {
477
- $query_args[ '_nonce' ] = get_site_option( 'backwpup_cfg_jobrunauthkey' );
478
- $query_args[ 'doing_wp_cron' ] = NULL;
479
- if ( ! empty( $authurl ) ) {
480
- $url = str_replace( 'https://', 'https://' . $authurl, $url );
481
- $url = str_replace( 'http://', 'http://' . $authurl, $url );
482
- }
483
- }
484
-
485
- if ( $starttype == 'runnowlink' && ( ! defined( 'ALTERNATE_WP_CRON' ) || ! ALTERNATE_WP_CRON ) ) {
486
- $url = wp_nonce_url( network_admin_url( 'admin.php' ), 'backwpup_job_run-' . $starttype );
487
- $query_args[ 'page' ] = 'backwpupjobs';
488
- $query_args[ 'action' ] = 'runnow';
489
- $query_args[ 'doing_wp_cron' ] = NULL;
490
- unset( $query_args[ '_nonce' ] );
491
- }
492
-
493
- if ( $starttype == 'runnowlink' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
494
- $query_args[ 'backwpup_run' ] = 'runnowalt';
495
- $query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-runnowalt', 'nonce' ), - 12, 10 );
496
- $query_args[ 'doing_wp_cron' ] = NULL;
497
- }
498
-
499
- if ( $starttype == 'restartalt' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
500
- $query_args[ 'backwpup_run' ] = 'restart';
501
- $query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-restart', 'nonce' ), - 12, 10 );
502
- }
503
-
504
- if ( ! empty( $authentication[ 'user_id' ] ) && $authentication[ 'method' ] == 'user' ) {
505
- //cache cookies for auth some
506
- $cookies = get_site_transient( 'backwpup_cookies' );
507
- if ( empty( $cookies ) ) {
508
- $wp_admin_user = get_users( array( 'role' => 'administrator', 'number' => 1 ) );
509
- if ( empty( $wp_admin_user ) ) {
510
- $wp_admin_user = get_users( array( 'role' => 'backwpup_admin', 'number' => 1 ) );
511
- }
512
- if ( ! empty( $wp_admin_user[ 0 ]->ID ) ) {
513
- $expiration = time() + ( 356 * DAY_IN_SECONDS );
514
- $manager = WP_Session_Tokens::get_instance( $wp_admin_user[ 0 ]->ID );
515
- $token = $manager->create( $expiration );
516
- $cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[ 0 ]->ID, $expiration, 'logged_in', $token );
517
- }
518
- set_site_transient( 'backwpup_cookies', $cookies, 3600 - 30 );
519
- }
520
- } else {
521
- $cookies = '';
522
- }
523
-
524
- $cron_request = array(
525
- 'url' => add_query_arg( $query_args, $url ),
526
- 'key' => $query_args[ 'doing_wp_cron' ],
527
- 'args' => array(
528
- 'blocking' => FALSE,
529
- 'sslverify' => apply_filters( 'https_local_ssl_verify', true ),
530
- 'timeout' => 0.01,
531
- 'headers' => $header,
532
- 'user-agent' => BackWpup::get_plugin_data( 'User-Agent' )
533
- )
534
- );
535
-
536
- if ( ! empty( $cookies ) ) {
537
- foreach ( $cookies as $name => $value ) {
538
- $cron_request[ 'args' ][ 'cookies' ][] = new WP_Http_Cookie( array( 'name' => $name, 'value' => $value ) );
539
- }
540
- }
541
-
542
- $cron_request = apply_filters( 'cron_request', $cron_request );
543
-
544
- if ( $starttype == 'test' ) {
545
- $cron_request[ 'args' ][ 'timeout' ] = 15;
546
- $cron_request[ 'args' ][ 'blocking' ] = TRUE;
547
- }
548
-
549
- if ( ! in_array( $starttype, array( 'runnowlink', 'runext', 'restartalt' ) ) ) {
550
- delete_transient( 'doing_cron' );
551
- return wp_remote_post( $cron_request[ 'url' ], $cron_request[ 'args' ] );
552
- }
553
-
554
- return $cron_request;
555
- }
556
-
557
-
558
- /**
559
- *
560
- */
561
- public static function start_http( $starttype ) {
562
-
563
- //load text domain
564
- $log_level = get_site_option( 'backwpup_cfg_loglevel' );
565
- if ( strstr( $log_level, 'translated' ) ) {
566
- BackWPup::load_text_domain();
567
- }
568
-
569
- if ( $starttype != 'restart' ) {
570
-
571
- //check get vars
572
- if ( isset( $_GET[ 'jobid' ] ) )
573
- $jobid = (int)$_GET[ 'jobid' ];
574
- else
575
- $jobid = 0;
576
-
577
- //check job id exists
578
- if ( $jobid != BackWPup_Option::get( $jobid, 'jobid' ) ) {
579
- die( '-1' );
580
- }
581
-
582
- //check folders
583
- $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
584
- $folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
585
- $folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
586
- if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
587
- BackWPup_Admin::message( $folder_message_log, TRUE );
588
- BackWPup_Admin::message( $folder_message_temp, TRUE );
589
- die( '-2' );
590
- }
591
- }
592
-
593
- // redirect
594
- if ( $starttype == 'runnowalt' ) {
595
- ob_start();
596
- wp_redirect( add_query_arg( array( 'page' => 'backwpupjobs' ), network_admin_url( 'admin.php' ) ) );
597
- echo ' ';
598
- while ( @ob_end_flush() );
599
- flush();
600
- }
601
-
602
- // Should be preventing doubled running job's on http requests
603
- $random = rand( 1, 9 ) * 100000;
604
- usleep( $random );
605
-
606
- //check running job
607
- $backwpup_job_object = self::get_working_data();
608
- //start class
609
- if ( ! $backwpup_job_object && in_array( $starttype, array( 'runnow', 'runnowalt', 'runext' ) ) && ! empty( $jobid ) ) {
610
- //schedule restart event
611
- wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
612
- //start job
613
- $backwpup_job_object = new self();
614
- $backwpup_job_object->create( $starttype, (int)$jobid );
615
- }
616
- if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
617
- $backwpup_job_object->run();
618
- }
619
-
620
- /**
621
- * @param $jobid
622
- */
623
- public static function start_cli( $jobid ) {
624
-
625
- if ( php_sapi_name() != 'cli' ) {
626
- return;
627
- }
628
-
629
- //define DOING_CRON to prevent caching
630
- if( ! defined( 'DOING_CRON' ) ) {
631
- define( 'DOING_CRON', TRUE );
632
- }
633
-
634
- //load text domain
635
- $log_level = get_site_option( 'backwpup_cfg_loglevel' );
636
- if ( strstr( $log_level, 'translated' ) ) {
637
- BackWPup::load_text_domain();
638
- }
639
-
640
- //Logs Folder
641
- $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
642
- $log_folder = BackWPup_File::get_absolute_path( $log_folder );
643
-
644
- //check job id exists
645
- $jobids = BackWPup_Option::get_job_ids();
646
- if ( ! in_array( $jobid, $jobids ) ) {
647
- die( __( 'Wrong BackWPup JobID', 'backwpup' ) );
648
- }
649
- //check folders
650
- $log_folder_message = BackWPup_File::check_folder( $log_folder );
651
- if ( ! empty( $log_folder_message ) ) {
652
- die( $log_folder_message );
653
- }
654
- $log_folder_message = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
655
- if ( ! empty( $log_folder_message ) ) {
656
- die( $log_folder_message );
657
- }
658
- //check running job
659
- if ( file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
660
- die( __( 'A BackWPup job is already running', 'backwpup' ) );
661
- }
662
-
663
- //start class
664
- $backwpup_job_object = new self();
665
- $backwpup_job_object->create( 'runcli', (int)$jobid );
666
- $backwpup_job_object->run();
667
- }
668
-
669
- /**
670
- * @param int $jobid
671
- */
672
- public static function start_wp_cron( $jobid = 0 ) {
673
-
674
- if ( ! defined( 'DOING_CRON' ) || ! DOING_CRON ) {
675
- return;
676
- }
677
-
678
- //load text domain
679
- $log_level = get_site_option( 'backwpup_cfg_loglevel' );
680
- if ( strstr( $log_level, 'translated' ) ) {
681
- BackWPup::load_text_domain();
682
- }
683
-
684
- if ( ! empty( $jobid ) ) {
685
- //check folders
686
- $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
687
- $folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
688
- $folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
689
- if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
690
- BackWPup_Admin::message( $folder_message_log, TRUE );
691
- BackWPup_Admin::message( $folder_message_temp, TRUE );
692
- return;
693
- }
694
- }
695
-
696
- // Should be preventing doubled running job's on http requests
697
- $random = rand( 1, 9 ) * 100000;
698
- usleep( $random );
699
-
700
- //get running job
701
- $backwpup_job_object = self::get_working_data();
702
- //start/restart class
703
- if ( empty( $backwpup_job_object ) && ! empty( $jobid ) ) {
704
- //schedule restart event
705
- wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
706
- //start job
707
- $backwpup_job_object = new self();
708
- $backwpup_job_object->create( 'cronrun', (int)$jobid );
709
- }
710
- if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
711
- $backwpup_job_object->run();
712
- }
713
-
714
- /**
715
- * disable caches
716
- */
717
- public static function disable_caches() {
718
-
719
- //Special settings
720
- @putenv( 'nokeepalive=1' );
721
- @ini_set( 'zlib.output_compression', 'Off' );
722
-
723
- // deactivate caches
724
- if ( ! defined( 'DONOTCACHEDB' ) ) {
725
- define( 'DONOTCACHEDB', TRUE );
726
- }
727
- if ( ! defined( 'DONOTCACHEPAGE' ) ) {
728
- define( 'DONOTCACHEPAGE', TRUE );
729
- }
730
- }
731
-
732
-
733
- /**
734
- * Run baby run
735
- */
736
- public function run() {
737
- global $wpdb;
738
- /* @var wpdb $wpdb */
739
-
740
- // Job can't run it is not created
741
- if ( empty( $this->steps_todo ) || empty( $this->logfile ) ) {
742
- $running_file = BackWPup::get_plugin_data( 'running_file' );
743
- if ( file_exists( $running_file ) ) {
744
- unlink( $running_file );
745
- }
746
- return;
747
- }
748
-
749
- //Check double running and inactivity
750
- $last_update = microtime( TRUE ) - $this->timestamp_last_update;
751
- if ( ! empty( $this->pid ) && $last_update > 300 ) {
752
- $this->log( __( 'Job restarts due to inactivity for more than 5 minutes.', 'backwpup' ), E_USER_WARNING );
753
- }
754
- elseif ( ! empty( $this->pid ) ) {
755
- return;
756
- }
757
- // set timestamp of script start
758
- $this->timestamp_script_start = microtime( TRUE );
759
- //set Pid
760
- $this->pid = self::get_pid();
761
- $this->uniqid = uniqid( '', TRUE );
762
- //Early write new working file
763
- $this->write_running_file();
764
- //set function for PHP user defined error handling
765
- $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] = ini_get( 'error_log' );
766
- $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ]= ini_get( 'error_reporting' );
767
- $this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] = ini_get( 'log_errors' );
768
- $this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] = ini_get( 'display_errors' );
769
- $this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] = ini_get( 'html_errors' );
770
- $this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ]= ini_get( 'report_memleaks' );
771
- $this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] = ini_get( 'zlib.output_compression' );
772
- $this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] = ini_get( 'implicit_flush' );
773
- if ( $this->is_debug() ) {
774
- @ini_set( 'error_log', $this->logfile );
775
- error_reporting( -1 );
776
- }
777
- @ini_set( 'display_errors', '0' );
778
- @ini_set( 'log_errors', '1' );
779
- @ini_set( 'html_errors', '0' );
780
- @ini_set( 'report_memleaks', '1' );
781
- @ini_set( 'zlib.output_compression', '0' );
782
- @ini_set( 'implicit_flush', '0' );
783
- //increase MySQL timeout
784
- @ini_set( 'mysql.connect_timeout', '360' );
785
- //set temp folder
786
- $can_set_temp_env = TRUE;
787
- $protected_env_vars = explode( ',', ini_get( 'safe_mode_protected_env_vars' ) ); //removed in php 5.4.0
788
- foreach( $protected_env_vars as $protected_env ) {
789
- if ( strtoupper( trim( $protected_env ) ) == 'TMPDIR' ) {
790
- $can_set_temp_env = FALSE;
791
- }
792
- }
793
- if ( $can_set_temp_env ) {
794
- $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] = getenv( 'TMPDIR' );
795
- @putenv( 'TMPDIR='.BackWPup::get_plugin_data( 'TEMP') );
796
- }
797
- //Write Wordpress DB errors to log
798
- $wpdb->suppress_errors( FALSE );
799
- $wpdb->hide_errors();
800
- //set wp max memory limit
801
- @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
802
- //set error handler
803
- if ( ! empty( $this->logfile ) ) {
804
- if ( $this->is_debug() ) {
805
- set_error_handler( array( $this, 'log' ) );
806
- } else {
807
- set_error_handler( array( $this, 'log' ), E_ALL ^ E_NOTICE );
808
- }
809
- }
810
- set_exception_handler( array( $this, 'exception_handler' ) );
811
- //not loading Textdomains and unload loaded
812
- if ( ! strstr( $this->log_level, 'translated' ) ) {
813
- add_filter( 'override_load_textdomain', create_function( '','return TRUE;' ) );
814
- $GLOBALS[ 'l10n' ] = array();
815
- }
816
- // execute function on job shutdown register_shutdown_function( array( $this, 'shutdown' ) );
817
- add_action( 'shutdown', array( $this, 'shutdown' ) );
818
- //remove_action('shutdown', array( $this, 'shutdown' ));
819
- if ( function_exists( 'pcntl_signal' ) ) {
820
- $signals = array(
821
- 'SIGHUP',
822
- 'SIGINT',
823
- 'SIGQUIT',
824
- 'SIGILL',
825
- 'SIGTRAP',
826
- 'SIGABRT',
827
- 'SIGBUS',
828
- 'SIGFPE',
829
- //'SIGKILL',
830
- 'SIGSEGV',
831
- //'SIGPIPE',
832
- //'SIGALRM',
833
- 'SIGTERM',
834
- 'SIGSTKFLT',
835
- 'SIGUSR1',
836
- 'SIGUSR2',
837
- //'SIGCHLD',
838
- //'SIGCONT',
839
- //'SIGSTOP',
840
- 'SIGTSTP',
841
- 'SIGTTIN',
842
- 'SIGTTOU',
843
- 'SIGURG',
844
- 'SIGXCPU',
845
- 'SIGXFSZ',
846
- //'SIGVTALRM',
847
- 'SIGPROF',
848
- 'SIGWINCH',
849
- //'SIGIO',
850
- 'SIGPWR',
851
- 'SIGSYS',
852
- );
853
- $signals = apply_filters( 'backwpup_job_signals_to_handel', $signals );
854
- declare( ticks = 1 ) ;
855
- foreach( $signals as $signal ) {
856
- if ( defined( $signal ) ) {
857
- pcntl_signal( constant( $signal ), array( $this, 'shutdown' ), FALSE );
858
- }
859
- }
860
- }
861
- //clear output buffer
862
- ob_start();
863
- while( @ob_end_clean() );
864
- @flush();
865
- $job_types = BackWPup::get_job_types();
866
- //go step by step
867
- foreach ( $this->steps_todo as $this->step_working ) {
868
- //Check if step already done
869
- if ( in_array( $this->step_working, $this->steps_done ) )
870
- continue;
871
- //calc step percent
872
- if ( count( $this->steps_done ) > 0 )
873
- $this->step_percent = round( count( $this->steps_done ) / count( $this->steps_todo ) * 100 );
874
- else
875
- $this->step_percent = 1;
876
- // do step tries
877
- while ( TRUE ) {
878
- if ( $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] >= get_site_option( 'backwpup_cfg_jobstepretry' ) ) {
879
- $this->log( __( 'Step aborted: too many attempts!', 'backwpup' ), E_USER_ERROR );
880
- $this->temp = array();
881
- $this->steps_done[ ] = $this->step_working;
882
- $this->substeps_done = 0;
883
- $this->substeps_todo = 0;
884
- $this->do_restart();
885
- break;
886
- }
887
-
888
- $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ++;
889
- $done = FALSE;
890
-
891
- //executes the methods of job process
892
- if ( $this->step_working == 'CREATE_ARCHIVE' ) {
893
- $done = $this->create_archive();
894
- }
895
- elseif ( $this->step_working == 'CREATE_MANIFEST' ) {
896
- $done = $this->create_manifest();
897
- }
898
- elseif ( $this->step_working == 'END' ) {
899
- $this->end();
900
- break 2;
901
- }
902
- elseif ( strstr( $this->step_working, 'JOB_' ) ) {
903
- $done = $job_types[ str_replace( 'JOB_', '', $this->step_working ) ]->job_run( $this );
904
- }
905
- elseif ( strstr( $this->step_working, 'DEST_SYNC_' ) ) {
906
- $done = BackWPup::get_destination( str_replace( 'DEST_SYNC_', '', $this->step_working ) )->job_run_sync( $this );
907
- }
908
- elseif ( strstr( $this->step_working, 'DEST_' ) ) {
909
- $done = BackWPup::get_destination( str_replace( 'DEST_', '', $this->step_working ) )->job_run_archive( $this );
910
- }
911
- elseif ( ! empty( $this->steps_data[ $this->step_working ][ 'CALLBACK' ] ) ) {
912
- $done = $this->steps_data[ $this->step_working ][ 'CALLBACK' ]( $this );
913
- }
914
-
915
- // set step as done
916
- if ( $done === TRUE ) {
917
- $this->temp = array();
918
- $this->steps_done[] = $this->step_working;
919
- $this->substeps_done = 0;
920
- $this->substeps_todo = 0;
921
- $this->write_running_file();
922
- }
923
- if ( count( $this->steps_done ) < count( $this->steps_todo ) -1 ) {
924
- $this->do_restart();
925
- }
926
- if ( $done === TRUE ) {
927
- break;
928
- }
929
- }
930
- }
931
- }
932
-
933
- /**
934
- * Do a job restart
935
- *
936
- * @param bool $must Restart must done
937
- * @param bool $msg Log restart message
938
- */
939
- public function do_restart( $must = FALSE ) {
940
-
941
- //no restart if in end step
942
- if ( $this->step_working == 'END' || ( count( $this->steps_done ) + 1 ) >= count( $this->steps_todo ) ) {
943
- return;
944
- }
945
-
946
- //no restart on cli usage
947
- if ( php_sapi_name() == 'cli' ) {
948
- return;
949
- }
950
-
951
- //no restart if no restart time configured
952
- $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
953
- if ( ! $must && empty( $job_max_execution_time ) ) {
954
- return;
955
- }
956
-
957
- //no restart when restart was 3 Seconds before
958
- $execution_time = microtime( TRUE ) - $this->timestamp_script_start;
959
- if ( ! $must && $execution_time < 3 ) {
960
- return;
961
- }
962
-
963
- //no restart if no working job
964
- if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
965
- return;
966
- }
967
-
968
- //print message
969
- if ( $this->is_debug() ) {
970
- $this->log( sprintf( __( 'Restart after %1$d seconds.', 'backwpup' ), ceil( $execution_time ) ) );
971
- }
972
-
973
- //do things for a clean restart
974
- $this->pid = 0;
975
- $this->uniqid = '';
976
- $this->write_running_file();
977
- remove_action( 'shutdown', array( $this, 'shutdown' ) );
978
- //do restart
979
- wp_clear_scheduled_hook( 'backwpup_cron', array( 'id' => 'restart' ) );
980
- wp_schedule_single_event( time() + 5, 'backwpup_cron', array( 'id' => 'restart' ) );
981
- self::get_jobrun_url( 'restart' );
982
-
983
- exit();
984
- }
985
-
986
- /**
987
- * Do a job restart
988
- *
989
- * @param bool $do_restart_now should time restart now be done
990
- * @return int remaining time
991
- */
992
- public function do_restart_time( $do_restart_now = FALSE ) {
993
-
994
- $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
995
-
996
- if ( empty( $job_max_execution_time ) ) {
997
- return 300;
998
- }
999
-
1000
- $execution_time = microtime( TRUE ) - $this->timestamp_script_start;
1001
-
1002
- // do restart 3 sec. before max. execution time
1003
- if ( $do_restart_now || $execution_time >= ( $job_max_execution_time - 3 ) ) {
1004
- $this->steps_data[ $this->step_working ][ 'SAVE_STEP_TRY' ] = $this->steps_data[ $this->step_working ][ 'STEP_TRY' ];
1005
- $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] -= 1;
1006
- $this->do_restart( TRUE );
1007
- }
1008
-
1009
- return $job_max_execution_time - $execution_time;
1010
-
1011
- }
1012
-
1013
- /**
1014
- * Get job restart time
1015
- *
1016
- * @return int remaining time
1017
- */
1018
- public function get_restart_time() {
1019
-
1020
- $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
1021
-
1022
- if ( empty( $job_max_execution_time ) ) {
1023
- return 300;
1024
- }
1025
-
1026
- $execution_time = microtime( TRUE ) - $this->timestamp_script_start;
1027
- return $job_max_execution_time - $execution_time - 3;
1028
- }
1029
-
1030
- /**
1031
- *
1032
- * Get data off a working job
1033
- *
1034
- * @return bool|object BackWPup_Job Object or Bool if file not exits
1035
- */
1036
- public static function get_working_data() {
1037
-
1038
- if ( version_compare( PHP_VERSION, '5.3', '>=' ) ) {
1039
- clearstatcache( TRUE, BackWPup::get_plugin_data( 'running_file' ) );
1040
- } else {
1041
- clearstatcache();
1042
- }
1043
-
1044
- if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1045
- return FALSE;
1046
- }
1047
-
1048
- $file_data = file_get_contents( BackWPup::get_plugin_data( 'running_file' ), FALSE, NULL, 8 );
1049
- if ( empty( $file_data ) ) {
1050
- return FALSE;
1051
- }
1052
-
1053
- if ( $job_object = unserialize( $file_data ) ) {
1054
- if ( $job_object instanceof BackWPup_Job )
1055
- return $job_object;
1056
- }
1057
-
1058
- return FALSE;
1059
-
1060
- }
1061
-
1062
- /**
1063
- *
1064
- * Reads a BackWPup logfile header and gives back a array of information
1065
- *
1066
- * @param string $logfile full logfile path
1067
- *
1068
- * @return array|bool
1069
- */
1070
- public static function read_logheader( $logfile ) {
1071
-
1072
- $usedmetas = array(
1073
- "date" => "logtime",
1074
- "backwpup_logtime" => "logtime", //old value of date
1075
- "backwpup_errors" => "errors",
1076
- "backwpup_warnings" => "warnings",
1077
- "backwpup_jobid" => "jobid",
1078
- "backwpup_jobname" => "name",
1079
- "backwpup_jobtype" => "type",
1080
- "backwpup_jobruntime" => "runtime",
1081
- "backwpup_backupfilesize" => "backupfilesize"
1082
- );
1083
-
1084
- //get metadata of logfile
1085
- $metas = array();
1086
- if ( is_readable( $logfile ) ) {
1087
- if ( '.gz' == substr( $logfile, -3 ) )
1088
- $metas = (array)get_meta_tags( 'compress.zlib://' . $logfile );
1089
- else
1090
- $metas = (array)get_meta_tags( $logfile );
1091
- }
1092
-
1093
- //only output needed data
1094
- foreach ( $usedmetas as $keyword => $field ) {
1095
- if ( isset( $metas[ $keyword ] ) ) {
1096
- $joddata[ $field ] = $metas[ $keyword ];
1097
- }
1098
- else {
1099
- $joddata[ $field ] = '';
1100
- }
1101
- }
1102
-
1103
- //convert date
1104
- if ( isset( $metas[ 'date' ] ) )
1105
- $joddata[ 'logtime' ] = strtotime( $metas[ 'date' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
1106
-
1107
- //use file create date if none
1108
- if ( empty( $joddata[ 'logtime' ] ) )
1109
- $joddata[ 'logtime' ] = filectime( $logfile );
1110
-
1111
- return $joddata;
1112
- }
1113
-
1114
-
1115
- /**
1116
- *
1117
- * Shutdown function is call if script terminates try to make a restart if needed
1118
- *
1119
- * Prepare the job for start
1120
- *
1121
- * @internal param int the signal that terminates the job
1122
- */
1123
- public function shutdown() {
1124
-
1125
- $args = func_get_args();
1126
-
1127
- //Put last error to log if one
1128
- $lasterror = error_get_last();
1129
- if ( $lasterror[ 'type' ] == E_ERROR or $lasterror[ 'type' ] == E_PARSE or $lasterror[ 'type' ] == E_CORE_ERROR or $lasterror[ 'type' ] == E_CORE_WARNING or $lasterror[ 'type' ] == E_COMPILE_ERROR or $lasterror[ 'type' ] == E_COMPILE_WARNING ) {
1130
- $this->log( $lasterror[ 'type' ], $lasterror[ 'message' ], $lasterror[ 'file' ], $lasterror[ 'line' ] );
1131
- }
1132
-
1133
- //Put signals to log
1134
- if ( ! empty( $args[ 0 ] ) ) {
1135
- $signals = array(
1136
- 'SIGHUP',
1137
- 'SIGINT',
1138
- 'SIGQUIT',
1139
- 'SIGILL',
1140
- 'SIGTRAP',
1141
- 'SIGABRT',
1142
- 'SIGBUS',
1143
- 'SIGFPE',
1144
- 'SIGKILL',
1145
- 'SIGSEGV',
1146
- 'SIGPIPE',
1147
- 'SIGALRM',
1148
- 'SIGTERM',
1149
- 'SIGSTKFLT',
1150
- 'SIGUSR1',
1151
- 'SIGUSR2',
1152
- 'SIGCHLD',
1153
- 'SIGCONT',
1154
- 'SIGSTOP',
1155
- 'SIGTSTP',
1156
- 'SIGTTIN',
1157
- 'SIGTTOU',
1158
- 'SIGURG',
1159
- 'SIGXCPU',
1160
- 'SIGXFSZ',
1161
- 'SIGVTALRM',
1162
- 'SIGPROF',
1163
- 'SIGWINCH',
1164
- 'SIGIO',
1165
- 'SIGPWR',
1166
- 'SIGSYS'
1167
- );
1168
- foreach ( $signals as $signal ) {
1169
- if ( defined( $signal ) && $args[ 0 ] === constant( $signal ) ) {
1170
- $this->log( sprintf( __( 'Signal "%s" is sent to script!', 'backwpup' ), $signal ), E_USER_ERROR );
1171
- break;
1172
- }
1173
- }
1174
- }
1175
-
1176
- if ( function_exists( 'pcntl_get_last_error' ) ) {
1177
- $error = pcntl_get_last_error();
1178
- if ( ! empty( $error ) ) {
1179
- $error_msg = pcntl_strerror( $error );
1180
- if ( ! empty( $error_msg ) ) {
1181
- $error = '(' . $error . ') ' . $error_msg;
1182
- }
1183
- }
1184
- if ( ! empty( $error ) ) {
1185
- $this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
1186
- }
1187
- }
1188
-
1189
- if ( function_exists( 'posix_get_last_error' ) && empty( $error ) ) {
1190
- $error = posix_get_last_error();
1191
- if ( ! empty( $error ) ) {
1192
- $error_msg = posix_strerror( $error );
1193
- if ( ! empty( $error_msg ) ) {
1194
- $error = '(' . $error . ') ' . $error_msg;
1195
- }
1196
- }
1197
- if ( ! empty( $error ) ) {
1198
- $this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
1199
- }
1200
- }
1201
-
1202
- $this->do_restart( TRUE );
1203
- }
1204
-
1205
- /**
1206
- *
1207
- * The uncouth exception handler
1208
- *
1209
- * @param object $exception
1210
- */
1211
- public function exception_handler( $exception ) {
1212
-
1213
- $this->log( sprintf( __( 'Exception caught in %1$s: %2$s', 'backwpup' ), get_class( $exception ), $exception->getMessage() ), E_USER_ERROR, $exception->getFile(), $exception->getLine() );
1214
- }
1215
-
1216
- /**
1217
- * Write messages to log file
1218
- *
1219
- * @param string $message the error message
1220
- * @param int $type the error number (E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE, ...)
1221
- * @param string $file the full path of file with error (__FILE__)
1222
- * @param int $line the line in that is the error (__LINE__)
1223
- *
1224
- * @return bool true
1225
- */
1226
- public function log( $message, $type = E_USER_NOTICE, $file = '', $line = 0 ) {
1227
-
1228
- // if error has been suppressed with an @
1229
- if ( error_reporting() == 0 ) {
1230
- return TRUE;
1231
- }
1232
-
1233
- //if first the type an second the message switch it on user errors
1234
- if ( ! is_int( $type ) && is_int( $message ) && in_array( $message, array( 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 ) ) ) {
1235
- $temp = $message;
1236
- $message = $type;
1237
- $type = $temp;
1238
- }
1239
-
1240
- //json message if array or object
1241
- if ( is_array( $message ) || is_object( $message ) ) {
1242
- $message = json_encode( $message );
1243
- }
1244
-
1245
- //if not set line and file get it
1246
- if ( $this->is_debug() ) {
1247
- if ( empty( $file ) || empty( $line ) ) {
1248
- $debug_info = debug_backtrace();
1249
- $file = $debug_info[ 0 ][ 'file' ];
1250
- $line = $debug_info[ 0 ][ 'line' ];
1251
- }
1252
- }
1253
-
1254
- $error_or_warning = FALSE;
1255
-
1256
- switch ( $type ) {
1257
- case E_NOTICE:
1258
- case E_USER_NOTICE:
1259
- break;
1260
- case E_WARNING:
1261
- case E_CORE_WARNING:
1262
- case E_COMPILE_WARNING:
1263
- case E_USER_WARNING:
1264
- $this->warnings ++;
1265
- $error_or_warning = TRUE;
1266
- $message = '%y' . __( 'WARNING:', 'backwpup' ) . ' ' . $message . '%n';
1267
- break;
1268
- case E_ERROR:
1269
- case E_PARSE:
1270
- case E_CORE_ERROR:
1271
- case E_COMPILE_ERROR:
1272
- case E_USER_ERROR:
1273
- $this->errors ++;
1274
- $error_or_warning = TRUE;
1275
- $message = '%r' . __( 'ERROR:', 'backwpup' ) . ' ' . $message . '%n';
1276
- break;
1277
- case 8192: //E_DEPRECATED comes with php 5.3
1278
- case 16384: //E_USER_DEPRECATED comes with php 5.3
1279
- $message = __( 'DEPRECATED:', 'backwpup' ) . ' ' . $message;
1280
- break;
1281
- case E_STRICT:
1282
- $message = __( 'STRICT NOTICE:', 'backwpup' ) . ' ' . $message;
1283
- break;
1284
- case E_RECOVERABLE_ERROR:
1285
- $this->errors ++;
1286
- $error_or_warning = TRUE;
1287
- $message = '%r' . __( 'RECOVERABLE ERROR:', 'backwpup' ) . ' ' . $message . '%n';
1288
- break;
1289
- default:
1290
- $message = $type . ': ' . $message;
1291
- break;
1292
- }
1293
-
1294
- $in_file = $this->get_destination_path_replacement( $file );
1295
-
1296
- //print message to cli
1297
- if ( defined( 'WP_CLI' ) && WP_CLI ) {
1298
- $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), strip_tags( $message ) );
1299
- if ( !call_user_func( array( '\cli\Shell', 'isPiped' ) ) ) {
1300
- $output_message = call_user_func( array( '\cli\Colors', 'colorize' ), $output_message, true );
1301
- } else {
1302
- $output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
1303
- }
1304
- WP_CLI::line( $output_message );
1305
- } elseif ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
1306
- $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), strip_tags( $message ) ) . PHP_EOL;
1307
- $output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
1308
- fwrite( STDOUT, $output_message ) ;
1309
- }
1310
-
1311
- //timestamp for log file
1312
- $debug_info = '';
1313
- if ( $this->is_debug() ) {
1314
- $debug_info = ' title="[Type: ' . $type . '|Line: ' . $line . '|File: ' . $in_file . '|Mem: ' . size_format( @memory_get_usage( TRUE ), 2 ) . '|Mem Max: ' . size_format( @memory_get_peak_usage( TRUE ), 2 ) . '|Mem Limit: ' . ini_get( 'memory_limit' ) . '|PID: ' . self::get_pid() . ' | UniqID: ' . $this->uniqid . '|Query\'s: ' . get_num_queries() . ']"';
1315
- }
1316
- $timestamp = '<span datetime="' . date( 'c' ) . '" ' . $debug_info . '>[' . date( 'd-M-Y H:i:s', current_time( 'timestamp' ) ) . ']</span> ';
1317
-
1318
- //set last Message
1319
- $output_message = esc_attr( $message );
1320
- $output_message = str_replace( array( '%y', '%r', '%n' ), array( '<span style="background-color:#ffc000;color:#fff">', '<span style="background-color:red;color:#fff">', '</span>' ), $output_message );
1321
- if ( $error_or_warning ) {
1322
- $this->lasterrormsg = $output_message;
1323
- } else {
1324
- $this->lastmsg = $output_message;
1325
- }
1326
- //write log file
1327
- if ( ! empty( $this->logfile ) ) {
1328
- if ( ! file_put_contents( $this->logfile, $timestamp . $output_message . '<br />' . PHP_EOL, FILE_APPEND ) ) {
1329
- $this->logfile = '';
1330
- restore_error_handler();
1331
- trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
1332
- }
1333
-
1334
- //write new log header
1335
- if ( $error_or_warning && ! empty( $this->logfile ) ) {
1336
- if ( $fd = fopen( $this->logfile, 'r+' ) ) {
1337
- $found = 0;
1338
- $file_pos = ftell( $fd );
1339
- while ( ! feof( $fd ) ) {
1340
- $line = fgets( $fd );
1341
- if ( stripos( $line, '<meta name="backwpup_errors" content="' ) !== FALSE ) {
1342
- fseek( $fd, $file_pos );
1343
- fwrite( $fd, str_pad( '<meta name="backwpup_errors" content="' . $this->errors . '" />', 100 ) . PHP_EOL );
1344
- $found ++;
1345
- }
1346
- if ( stripos( $line, '<meta name="backwpup_warnings" content="' ) !== FALSE ) {
1347
- fseek( $fd, $file_pos );
1348
- fwrite( $fd, str_pad( '<meta name="backwpup_warnings" content="' . $this->warnings . '" />', 100 ) . PHP_EOL );
1349
- $found ++;
1350
- }
1351
- if ( $found >= 2 ) {
1352
- break;
1353
- }
1354
- $file_pos = ftell( $fd );
1355
- }
1356
- fclose( $fd );
1357
- }
1358
- }
1359
-
1360
- } else {
1361
- trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
1362
- }
1363
-
1364
- //write working data
1365
- $this->update_working_data( $error_or_warning );
1366
-
1367
- //true for no more php error handling.
1368
- return TRUE;
1369
- }
1370
-
1371
- /**
1372
- *
1373
- * Write the Working data to display the process or that i can executes again
1374
- * The write will only done every second
1375
- *
1376
- * @global wpdb $wpdb
1377
- */
1378
- public function update_working_data() {
1379
- global $wpdb;
1380
- /* @var wpdb $wpdb */
1381
-
1382
- //to reduce server load
1383
- if ( get_site_option( 'backwpup_cfg_jobwaittimems' ) > 0 && get_site_option( 'backwpup_cfg_jobwaittimems') <= 500000 ) {
1384
- usleep( get_site_option( 'backwpup_cfg_jobwaittimems' ) );
1385
- }
1386
-
1387
- //check free memory
1388
- $this->need_free_memory( '10M' );
1389
-
1390
- //only run every 1 sec.
1391
- $time_to_update = microtime( TRUE ) - $this->timestamp_last_update;
1392
- if ( $time_to_update < 1 ) {
1393
- return;
1394
- }
1395
-
1396
- //FCGI must have a permanent output so that it not broke
1397
- if ( get_site_option( 'backwpup_cfg_jobdooutput' ) && ! defined( 'STDOUT' ) ) {
1398
- echo str_repeat( ' ', 12 );
1399
- flush();
1400
- }
1401
-
1402
- //set execution time again for 5 min
1403
- @set_time_limit( 300 );
1404
-
1405
- //check MySQL connection to WordPress Database and reconnect if needed
1406
- $res = $wpdb->query( 'SELECT ' . time() );
1407
- if ( $res === FALSE ) {
1408
- $wpdb->db_connect();
1409
- }
1410
-
1411
- //calc sub step percent
1412
- if ( $this->substeps_todo > 0 && $this->substeps_done > 0 ) {
1413
- $this->substep_percent = round( $this->substeps_done / $this->substeps_todo * 100 );
1414
- } else {
1415
- $this->substep_percent = 1;
1416
- }
1417
-
1418
- //check if job aborted
1419
- if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1420
- if ( $this->step_working != 'END' ) {
1421
- $this->end();
1422
- }
1423
- } else {
1424
- $this->timestamp_last_update = microtime( TRUE ); //last update of working file
1425
- $this->write_running_file();
1426
- }
1427
- }
1428
-
1429
- public function write_running_file() {
1430
-
1431
- $clone = clone $this;
1432
- $data = '<?php //' . serialize( $clone );
1433
-
1434
- $write = file_put_contents( BackWPup::get_plugin_data( 'running_file' ), $data );
1435
- if ( !$write || $write < strlen( $data ) ) {
1436
- unlink( BackWPup::get_plugin_data( 'running_file' ) );
1437
- $this->log( __( 'Cannot write progress to working file. Job will be aborted.', 'backwpup' ), E_USER_ERROR );
1438
- }
1439
- }
1440
-
1441
- /**
1442
- *
1443
- * Called on job stop makes cleanup and terminates the script
1444
- *
1445
- */
1446
- private function end() {
1447
-
1448
- $this->step_working = 'END';
1449
- $this->substeps_todo = 1;
1450
- $abort = FALSE;
1451
-
1452
- if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1453
- if ( ! $this->user_abort )
1454
- $abort = TRUE;
1455
- $this->log( __( 'Aborted by user!', 'backwpup' ), E_USER_ERROR );
1456
- }
1457
-
1458
- //delete old logs
1459
- if ( get_site_option( 'backwpup_cfg_maxlogs' ) ) {
1460
- $log_file_list = array();
1461
- $log_folder = trailingslashit( dirname( $this->logfile ) );
1462
- if ( is_readable( $log_folder ) && $dir = opendir( $log_folder ) ) { //make file list
1463
- while ( ( $file = readdir( $dir ) ) !== FALSE ) {
1464
- if ( strpos( $file, 'backwpup_log_' ) == 0 && FALSE !== strpos( $file, '.html' ) )
1465
- $log_file_list[ filemtime( $log_folder . $file ) ] = $file;
1466
- }
1467
- closedir( $dir );
1468
- }
1469
- if ( sizeof( $log_file_list ) > 0 ) {
1470
- krsort( $log_file_list, SORT_NUMERIC );
1471
- $num_delete_files = 0;
1472
- $i = -1;
1473
- foreach ( $log_file_list AS $log_file ) {
1474
- $i ++;
1475
- if ( $i < get_site_option( 'backwpup_cfg_maxlogs' ) ) {
1476
- continue;
1477
- }
1478
- unlink( $log_folder . $log_file );
1479
- $num_delete_files ++;
1480
- }
1481
- if ( $num_delete_files > 0 )
1482
- $this->log( sprintf( _n( 'One old log deleted', '%d old logs deleted', $num_delete_files, 'backwpup' ), $num_delete_files ) );
1483
- }
1484
- }
1485
-
1486
- //Display job working time
1487
- if ( $this->errors > 0 )
1488
- $this->log( sprintf( __( 'Job has ended with errors in %s seconds. You must resolve the errors for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_ERROR );
1489
- elseif ( $this->warnings > 0 )
1490
- $this->log( sprintf( __( 'Job finished with warnings in %s seconds. Please resolve them for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_WARNING );
1491
- else
1492
- $this->log( sprintf( __( 'Job done in %s seconds.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time, E_USER_NOTICE ) );
1493
-
1494
- //Update job options
1495
- if ( ! empty( $this->job[ 'jobid' ] ) ) {
1496
- $this->job[ 'lastruntime' ] = current_time( 'timestamp' ) - $this->start_time;
1497
- BackWPup_Option::update( $this->job[ 'jobid' ], 'lastruntime', $this->job[ 'lastruntime' ] );
1498
- }
1499
-
1500
- //write header info
1501
- if ( ! empty( $this->logfile ) ) {
1502
-
1503
- if ( $fd = fopen( $this->logfile, 'r+' ) ) {
1504
- $filepos = ftell( $fd );
1505
- $found = 0;
1506
- while ( ! feof( $fd ) ) {
1507
- $line = fgets( $fd );
1508
- if ( stripos( $line, '<meta name="backwpup_jobruntime"' ) !== FALSE ) {
1509
- fseek( $fd, $filepos );
1510
- fwrite( $fd, str_pad( '<meta name="backwpup_jobruntime" content="' . $this->job[ 'lastruntime' ] . '" />', 100 ) . PHP_EOL );
1511
- $found ++;
1512
- }
1513
- if ( stripos( $line, '<meta name="backwpup_backupfilesize"' ) !== FALSE ) {
1514
- fseek( $fd, $filepos );
1515
- fwrite( $fd, str_pad( '<meta name="backwpup_backupfilesize" content="' . $this->backup_filesize . '" />', 100 ) . PHP_EOL );
1516
- $found ++;
1517
- }
1518
- if ( $found >= 2 ) {
1519
- break;
1520
- }
1521
- $filepos = ftell( $fd );
1522
- }
1523
- fclose( $fd );
1524
- }
1525
-
1526
- //logfile end
1527
- file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
1528
-
1529
- //Send mail with log
1530
- $sendmail = FALSE;
1531
- if ( $this->errors > 0 && ! empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
1532
- $sendmail = TRUE;
1533
- if ( empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
1534
- $sendmail = TRUE;
1535
- if ( $sendmail ) {
1536
- //special subject
1537
- $status = __( 'SUCCESSFUL', 'backwpup' );
1538
- $priority = 3; //Normal
1539
- if ( $this->warnings > 0 ) {
1540
- $status = __( 'WARNING', 'backwpup' );
1541
- $priority = 2; //High
1542
- }
1543
- if ( $this->errors > 0 ) {
1544
- $status = __( 'ERROR', 'backwpup' );
1545
- $priority = 1; //Highest
1546
- }
1547
-
1548
- $subject = sprintf( __( '[%3$s] BackWPup log %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $this->start_time, TRUE ), esc_attr( $this->job[ 'name' ] ), $status );
1549
- $headers = array();
1550
- $headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
1551
- /* $headers[] = 'X-Priority: ' . $priority; */ // Priority not working with header setting
1552
- if ( ! empty( $this->job[ 'mailaddresssenderlog' ] ) ) {
1553
- if ( FALSE === $start_mail = strpos( $this->job[ 'mailaddresssenderlog' ], '<' ) ) {
1554
- if ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '@' ) ) {
1555
- $this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', $this->job[ 'mailaddresssenderlog' ] ) . '" <' . get_bloginfo( 'admin_email' ). '>';
1556
- }
1557
- }
1558
- elseif ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '>', $start_mail ) ) {
1559
- $this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', substr( $this->job[ 'mailaddresssenderlog' ], 0, $start_mail ) ) . '" <' . get_bloginfo( 'admin_email' ). '>';
1560
- }
1561
-
1562
- $headers[] = 'From: ' . $this->job[ 'mailaddresssenderlog' ];
1563
- }
1564
-
1565
- wp_mail( $this->job[ 'mailaddresslog' ], $subject, file_get_contents( $this->logfile ), $headers );
1566
- }
1567
- }
1568
-
1569
- //set done
1570
- $this->substeps_done = 1;
1571
- $this->steps_done[ ] = 'END';
1572
-
1573
- //clean up temp
1574
- self::clean_temp_folder();
1575
-
1576
- //remove shutdown action
1577
- remove_action( 'shutdown', array( $this, 'shutdown' ) );
1578
- restore_exception_handler();
1579
- restore_error_handler();
1580
- if ( ! empty( $this->run[ 'PHP' ] ) ) {
1581
- @ini_set( 'log_errors', $this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] );
1582
- @ini_set( 'error_log', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] );
1583
- @ini_set( 'display_errors', $this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] );
1584
- @ini_set( 'html_errors', $this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] );
1585
- @ini_set( 'zlib.output_compression', $this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] );
1586
- @ini_set( 'implicit_flush', $this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] );
1587
- @ini_set( 'error_reporting', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ] );
1588
- @ini_set( 'report_memleaks', $this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ] );
1589
- if ( !empty( $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] ) ) {
1590
- @putenv('TMPDIR=' . $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] );
1591
- }
1592
- }
1593
-
1594
- BackWPup_Cron::check_cleanup();
1595
-
1596
- if ( $abort )
1597
- exit();
1598
- }
1599
-
1600
-
1601
- public static function user_abort() {
1602
-
1603
- /* @var $job_object BackWPup_Job */
1604
- $job_object = BackWPup_Job::get_working_data();
1605
-
1606
- unlink( BackWPup::get_plugin_data( 'running_file' ) );
1607
-
1608
- //if job not working currently abort it this way for message
1609
- $not_worked_time = microtime( TRUE ) - $job_object->timestamp_last_update;
1610
- $restart_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
1611
- if ( empty( $restart_time ) )
1612
- $restart_time = 60;
1613
- if ( empty( $job_object->pid ) || $not_worked_time > $restart_time ) {
1614
- $job_object->user_abort = TRUE;
1615
- $job_object->update_working_data();
1616
- }
1617
-
1618
- }
1619
-
1620
- /**
1621
- *
1622
- * Increase automatically the memory that is needed
1623
- *
1624
- * @param int|string $memneed of the needed memory
1625
- */
1626
- public function need_free_memory( $memneed ) {
1627
-
1628
- //need memory
1629
- $needmemory = @memory_get_usage( TRUE ) + self::convert_hr_to_bytes( $memneed );
1630
- // increase Memory
1631
- if ( $needmemory > self::convert_hr_to_bytes( ini_get( 'memory_limit' ) ) ) {
1632
- $newmemory = round( $needmemory / 1024 / 1024 ) + 1 . 'M';
1633
- if ( $needmemory >= 1073741824 )
1634
- $newmemory = round( $needmemory / 1024 / 1024 / 1024 ) . 'G';
1635
- @ini_set( 'memory_limit', $newmemory );
1636
- }
1637
- }
1638
-
1639
-
1640
- /**
1641
- *
1642
- * Converts hr to bytes
1643
- *
1644
- * @param $size
1645
- * @return int
1646
- */
1647
- public static function convert_hr_to_bytes( $size ) {
1648
- $size = strtolower( $size );
1649
- $bytes = (int) $size;
1650
- if ( strpos( $size, 'k' ) !== FALSE )
1651
- $bytes = intval( $size ) * 1024;
1652
- elseif ( strpos( $size, 'm' ) !== FALSE )
1653
- $bytes = intval($size) * 1024 * 1024;
1654
- elseif ( strpos( $size, 'g' ) !== FALSE )
1655
- $bytes = intval( $size ) * 1024 * 1024 * 1024;
1656
- return $bytes;
1657
- }
1658
-
1659
- /**
1660
- *
1661
- * Callback for the CURLOPT_READFUNCTION that submit the transferred bytes
1662
- * to build the process bar
1663
- *
1664
- * @param $curl_handle
1665
- * @param $file_handle
1666
- * @param $read_count
1667
- * @return string
1668
- * @internal param $out
1669
- */
1670
- public function curl_read_callback( $curl_handle, $file_handle, $read_count ) {
1671
-
1672
- $data = NULL;
1673
- if ( ! empty( $file_handle ) && is_numeric( $read_count ) )
1674
- $data = fread( $file_handle, $read_count );
1675
-
1676
- if ( $this->job[ 'backuptype' ] == 'sync' )
1677
- return $data;
1678
-
1679
- $length = ( is_numeric( $read_count ) ) ? $read_count : strlen( $read_count );
1680
- $this->substeps_done = $this->substeps_done + $length;
1681
- $this->update_working_data();
1682
-
1683
- return $data;
1684
- }
1685
-
1686
-
1687
- /**
1688
- *
1689
- * Get the mime type of a file
1690
- *
1691
- * @param string $file The full file name
1692
- *
1693
- * @return bool|string the mime type or false
1694
- */
1695
- public static function get_mime_type( $file ) {
1696
-
1697
- if ( is_dir( $file ) || is_link( $file ) ) {
1698
- return 'application/octet-stream';
1699
- }
1700
-
1701
- $mime_types = array(
1702
- 'zip' => 'application/zip',
1703
- 'gz' => 'application/gzip',
1704
- 'bz2' => 'application/x-bzip',
1705
- 'tar' => 'application/x-tar',
1706
- '3gp' => 'video/3gpp',
1707
- 'ai' => 'application/postscript',
1708
- 'aif' => 'audio/x-aiff',
1709
- 'aifc' => 'audio/x-aiff',
1710
- 'aiff' => 'audio/x-aiff',
1711
- 'asc' => 'text/plain',
1712
- 'atom' => 'application/atom+xml',
1713
- 'au' => 'audio/basic',
1714
- 'avi' => 'video/x-msvideo',
1715
- 'bcpio' => 'application/x-bcpio',
1716
- 'bin' => 'application/octet-stream',
1717
- 'bmp' => 'image/bmp',
1718
- 'cdf' => 'application/x-netcdf',
1719
- 'cgm' => 'image/cgm',
1720
- 'class' => 'application/octet-stream',
1721
- 'cpio' => 'application/x-cpio',
1722
- 'cpt' => 'application/mac-compactpro',
1723
- 'csh' => 'application/x-csh',
1724
- 'css' => 'text/css',
1725
- 'dcr' => 'application/x-director',
1726
- 'dif' => 'video/x-dv',
1727
- 'dir' => 'application/x-director',
1728
- 'djv' => 'image/vnd.djvu',
1729
- 'djvu' => 'image/vnd.djvu',
1730
- 'dll' => 'application/octet-stream',
1731
- 'dmg' => 'application/octet-stream',
1732
- 'dms' => 'application/octet-stream',
1733
- 'doc' => 'application/msword',
1734
- 'dtd' => 'application/xml-dtd',
1735
- 'dv' => 'video/x-dv',
1736
- 'dvi' => 'application/x-dvi',
1737
- 'dxr' => 'application/x-director',
1738
- 'eps' => 'application/postscript',
1739
- 'etx' => 'text/x-setext',
1740
- 'exe' => 'application/octet-stream',
1741
- 'ez' => 'application/andrew-inset',
1742
- 'flv' => 'video/x-flv',
1743
- 'gif' => 'image/gif',
1744
- 'gram' => 'application/srgs',
1745
- 'grxml' => 'application/srgs+xml',
1746
- 'gtar' => 'application/x-gtar',
1747
- 'hdf' => 'application/x-hdf',
1748
- 'hqx' => 'application/mac-binhex40',
1749
- 'htm' => 'text/html',
1750
- 'html' => 'text/html',
1751
- 'ice' => 'x-conference/x-cooltalk',
1752
- 'ico' => 'image/x-icon',
1753
- 'ics' => 'text/calendar',
1754
- 'ief' => 'image/ief',
1755
- 'ifb' => 'text/calendar',
1756
- 'iges' => 'model/iges',
1757
- 'igs' => 'model/iges',
1758
- 'jnlp' => 'application/x-java-jnlp-file',
1759
- 'jp2' => 'image/jp2',
1760
- 'jpe' => 'image/jpeg',
1761
- 'jpeg' => 'image/jpeg',
1762
- 'jpg' => 'image/jpeg',
1763
- 'js' => 'application/x-javascript',
1764
- 'kar' => 'audio/midi',
1765
- 'latex' => 'application/x-latex',
1766
- 'lha' => 'application/octet-stream',
1767
- 'lzh' => 'application/octet-stream',
1768
- 'm3u' => 'audio/x-mpegurl',
1769
- 'm4a' => 'audio/mp4a-latm',
1770
- 'm4p' => 'audio/mp4a-latm',
1771
- 'm4u' => 'video/vnd.mpegurl',
1772
- 'm4v' => 'video/x-m4v',
1773
- 'mac' => 'image/x-macpaint',
1774
- 'man' => 'application/x-troff-man',
1775
- 'mathml' => 'application/mathml+xml',
1776
- 'me' => 'application/x-troff-me',
1777
- 'mesh' => 'model/mesh',
1778
- 'mid' => 'audio/midi',
1779
- 'midi' => 'audio/midi',
1780
- 'mif' => 'application/vnd.mif',
1781
- 'mov' => 'video/quicktime',
1782
- 'movie' => 'video/x-sgi-movie',
1783
- 'mp2' => 'audio/mpeg',
1784
- 'mp3' => 'audio/mpeg',
1785
- 'mp4' => 'video/mp4',
1786
- 'mpe' => 'video/mpeg',
1787
- 'mpeg' => 'video/mpeg',
1788
- 'mpg' => 'video/mpeg',
1789
- 'mpga' => 'audio/mpeg',
1790
- 'ms' => 'application/x-troff-ms',
1791
- 'msh' => 'model/mesh',
1792
- 'mxu' => 'video/vnd.mpegurl',
1793
- 'nc' => 'application/x-netcdf',
1794
- 'oda' => 'application/oda',
1795
- 'ogg' => 'application/ogg',
1796
- 'ogv' => 'video/ogv',
1797
- 'pbm' => 'image/x-portable-bitmap',
1798
- 'pct' => 'image/pict',
1799
- 'pdb' => 'chemical/x-pdb',
1800
- 'pdf' => 'application/pdf',
1801
- 'pgm' => 'image/x-portable-graymap',
1802
- 'pgn' => 'application/x-chess-pgn',
1803
- 'pic' => 'image/pict',
1804
- 'pict' => 'image/pict',
1805
- 'png' => 'image/png',
1806
- 'pnm' => 'image/x-portable-anymap',
1807
- 'pnt' => 'image/x-macpaint',
1808
- 'pntg' => 'image/x-macpaint',
1809
- 'ppm' => 'image/x-portable-pixmap',
1810
- 'ppt' => 'application/vnd.ms-powerpoint',
1811
- 'ps' => 'application/postscript',
1812
- 'qt' => 'video/quicktime',
1813
- 'qti' => 'image/x-quicktime',
1814
- 'qtif' => 'image/x-quicktime',
1815
- 'ra' => 'audio/x-pn-realaudio',
1816
- 'ram' => 'audio/x-pn-realaudio',
1817
- 'ras' => 'image/x-cmu-raster',
1818
- 'rdf' => 'application/rdf+xml',
1819
- 'rgb' => 'image/x-rgb',
1820
- 'rm' => 'application/vnd.rn-realmedia',
1821
- 'roff' => 'application/x-troff',
1822
- 'rtf' => 'text/rtf',
1823
- 'rtx' => 'text/richtext',
1824
- 'sgm' => 'text/sgml',
1825
- 'sgml' => 'text/sgml',
1826
- 'sh' => 'application/x-sh',
1827
- 'shar' => 'application/x-shar',
1828
- 'silo' => 'model/mesh',
1829
- 'sit' => 'application/x-stuffit',
1830
- 'skd' => 'application/x-koan',
1831
- 'skm' => 'application/x-koan',
1832
- 'skp' => 'application/x-koan',
1833
- 'skt' => 'application/x-koan',
1834
- 'smi' => 'application/smil',
1835
- 'smil' => 'application/smil',
1836
- 'snd' => 'audio/basic',
1837
- 'so' => 'application/octet-stream',
1838
- 'spl' => 'application/x-futuresplash',
1839
- 'src' => 'application/x-wais-source',
1840
- 'sv4cpio' => 'application/x-sv4cpio',
1841
- 'sv4crc' => 'application/x-sv4crc',
1842
- 'svg' => 'image/svg+xml',
1843
- 'swf' => 'application/x-shockwave-flash',
1844
- 't' => 'application/x-troff',
1845
- 'tcl' => 'application/x-tcl',
1846
- 'tex' => 'application/x-tex',
1847
- 'texi' => 'application/x-texinfo',
1848
- 'texinfo' => 'application/x-texinfo',
1849
- 'tif' => 'image/tiff',
1850
- 'tiff' => 'image/tiff',
1851
- 'tr' => 'application/x-troff',
1852
- 'tsv' => 'text/tab-separated-values',
1853
- 'txt' => 'text/plain',
1854
- 'ustar' => 'application/x-ustar',
1855
- 'vcd' => 'application/x-cdlink',
1856
- 'vrml' => 'model/vrml',
1857
- 'vxml' => 'application/voicexml+xml',
1858
- 'wav' => 'audio/x-wav',
1859
- 'wbmp' => 'image/vnd.wap.wbmp',
1860
- 'wbxml' => 'application/vnd.wap.wbxml',
1861
- 'webm' => 'video/webm',
1862
- 'wml' => 'text/vnd.wap.wml',
1863
- 'wmlc' => 'application/vnd.wap.wmlc',
1864
- 'wmls' => 'text/vnd.wap.wmlscript',
1865
- 'wmlsc' => 'application/vnd.wap.wmlscriptc',
1866
- 'wmv' => 'video/x-ms-wmv',
1867
- 'wrl' => 'model/vrml',
1868
- 'xbm' => 'image/x-xbitmap',
1869
- 'xht' => 'application/xhtml+xml',
1870
- 'xhtml' => 'application/xhtml+xml',
1871
- 'xls' => 'application/vnd.ms-excel',
1872
- 'xml' => 'application/xml',
1873
- 'xpm' => 'image/x-xpixmap',
1874
- 'xsl' => 'application/xml',
1875
- 'xslt' => 'application/xslt+xml',
1876
- 'xul' => 'application/vnd.mozilla.xul+xml',
1877
- 'xwd' => 'image/x-xwindowdump',
1878
- 'xyz' => 'chemical/x-xyz',
1879
- );
1880
-
1881
- $filesuffix = pathinfo( $file, PATHINFO_EXTENSION );
1882
- $suffix = strtolower( $filesuffix );
1883
- if ( isset( $mime_types[ $suffix ] ) ) {
1884
- return $mime_types[ $suffix ];
1885
- }
1886
-
1887
- if ( ! is_readable( $file ) ) {
1888
- return 'application/octet-stream';
1889
- }
1890
-
1891
- if ( function_exists( 'fileinfo' ) ) {
1892
- $finfo = finfo_open( FILEINFO_MIME_TYPE );
1893
- $mime = finfo_file( $finfo, $file );
1894
- }
1895
-
1896
- if ( empty( $mime ) && function_exists( 'mime_content_type' ) ) {
1897
- $mime = mime_content_type( $file );
1898
- }
1899
-
1900
- if ( ! empty( $mime ) ) {
1901
- return $mime;
1902
- }
1903
-
1904
- return 'application/octet-stream';
1905
- }
1906
-
1907
-
1908
- /**
1909
- *
1910
- * Gifs back a array of files to backup in the selected folder
1911
- *
1912
- * @param string $folder the folder to get the files from
1913
- *
1914
- * @return array files to backup
1915
- */
1916
- public function get_files_in_folder( $folder ) {
1917
-
1918
- $files = array();
1919
- $folder = trailingslashit( $folder );
1920
-
1921
- if ( ! is_dir( $folder ) ) {
1922
- $this->log( sprintf( _x( 'Folder %s not exists', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
1923
- return $files;
1924
- }
1925
-
1926
- if ( ! is_readable( $folder ) ) {
1927
- $this->log( sprintf( _x( 'Folder %s not readable', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
1928
- return $files;
1929
- }
1930
-
1931
- if ( $dir = opendir( $folder ) ) {
1932
- while ( FALSE !== ( $file = readdir( $dir ) ) ) {
1933
- if ( in_array( $file, array( '.', '..' ) ) || is_dir( $folder . $file ) ) {
1934
- continue;
1935
- }
1936
- foreach ( $this->exclude_from_backup as $exclusion ) { //exclude files
1937
- $exclusion = trim( $exclusion );
1938
- if ( FALSE !== stripos( $folder . $file, trim( $exclusion ) ) && ! empty( $exclusion ) ) {
1939
- continue 2;
1940
- }
1941
- }
1942
- if ( $this->job[ 'backupexcludethumbs' ] && strpos( $folder, BackWPup_File::get_upload_dir() ) !== FALSE && preg_match( "/\-[0-9]{1,4}x[0-9]{1,4}.+\.(jpg|png|gif)$/i", $file ) ) {
1943
- continue;
1944
- }
1945
- if ( is_link( $folder . $file ) ) {
1946
- $this->log( sprintf( __( 'Link "%s" not following.', 'backwpup' ), $folder . $file ), E_USER_WARNING );
1947
- } elseif ( ! is_readable( $folder . $file ) ) {
1948
- $this->log( sprintf( __( 'File "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
1949
- } else {
1950
- $file_size = filesize( $folder . $file );
1951
- if ( ! is_int( $file_size ) || $file_size < 0 || $file_size > 2147483647 ) {
1952
- $this->log( sprintf( __( 'File size of “%s” cannot be retrieved. File might be too large and will not be added to queue.', 'backwpup' ), $folder . $file . ' ' . $file_size ), E_USER_WARNING );
1953
- continue;
1954
- }
1955
- $files[] = $folder . $file;
1956
- }
1957
- }
1958
- closedir( $dir );
1959
- }
1960
-
1961
- return $files;
1962
- }
1963
-
1964
- /**
1965
- * create manifest file
1966
- * @return bool
1967
- */
1968
- public function create_manifest( ) {
1969
-
1970
- $this->substeps_todo = 3;
1971
-
1972
- $this->log( sprintf( __( '%d. Trying to generate a manifest file&#160;&hellip;', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ) );
1973
-
1974
- //build manifest
1975
- $manifest = array();
1976
- // add blog information
1977
- $manifest[ 'blog_info' ][ 'url' ] = home_url();
1978
- $manifest[ 'blog_info' ][ 'wpurl' ] = site_url();
1979
- $manifest[ 'blog_info' ][ 'prefix' ] = $GLOBALS[ 'wpdb' ]->prefix;
1980
- $manifest[ 'blog_info' ][ 'description' ] = get_option('blogdescription');
1981
- $manifest[ 'blog_info' ][ 'stylesheet_directory' ] = get_template_directory_uri();
1982
- $manifest[ 'blog_info' ][ 'activate_plugins' ] = wp_get_active_and_valid_plugins();
1983
- $manifest[ 'blog_info' ][ 'activate_theme' ] = wp_get_theme()->get('Name');
1984
- $manifest[ 'blog_info' ][ 'admin_email' ] = get_option('admin_email');
1985
- $manifest[ 'blog_info' ][ 'charset' ] = get_bloginfo( 'charset' );
1986
- $manifest[ 'blog_info' ][ 'version' ] = BackWPup::get_plugin_data( 'wp_version' );
1987
- $manifest[ 'blog_info' ][ 'backwpup_version' ] = BackWPup::get_plugin_data( 'version' );
1988
- $manifest[ 'blog_info' ][ 'language' ] = get_bloginfo( 'language' );
1989
- $manifest[ 'blog_info' ][ 'name' ] = get_bloginfo( 'name' );
1990
- $manifest[ 'blog_info' ][ 'abspath' ] = ABSPATH;
1991
- $manifest[ 'blog_info' ][ 'uploads' ] = wp_upload_dir();
1992
- $manifest[ 'blog_info' ][ 'contents' ][ 'basedir' ] = WP_CONTENT_DIR;
1993
- $manifest[ 'blog_info' ][ 'contents' ][ 'baseurl' ] = WP_CONTENT_URL;
1994
- $manifest[ 'blog_info' ][ 'plugins' ][ 'basedir' ] = WP_PLUGIN_DIR;
1995
- $manifest[ 'blog_info' ][ 'plugins' ][ 'baseurl' ] = WP_PLUGIN_URL;
1996
- $manifest[ 'blog_info' ][ 'themes' ][ 'basedir' ] = get_theme_root();
1997
- $manifest[ 'blog_info' ][ 'themes' ][ 'baseurl' ] = get_theme_root_uri();
1998
- // add job settings
1999
- $manifest[ 'job_settings' ] = $this->job;
2000
- // add archive info
2001
- foreach( $this->additional_files_to_backup as $file ) {
2002
- $manifest[ 'archive' ][ 'extra_files' ][] = basename( $file );
2003
- }
2004
- if ( isset( $this->steps_data[ 'JOB_FILE' ] ) ) {
2005
- if ( $this->job[ 'backuproot'] )
2006
- $manifest[ 'archive' ][ 'abspath' ] = trailingslashit( $this->get_destination_path_replacement( ABSPATH ) );
2007
- if ( $this->job[ 'backupuploads'] )
2008
- $manifest[ 'archive' ][ 'uploads' ] = trailingslashit( $this->get_destination_path_replacement( BackWPup_File::get_upload_dir() ) );
2009
- if ( $this->job[ 'backupcontent'] )
2010
- $manifest[ 'archive' ][ 'contents' ] = trailingslashit( $this->get_destination_path_replacement( WP_CONTENT_DIR ) );
2011
- if ( $this->job[ 'backupplugins'])
2012
- $manifest[ 'archive' ][ 'plugins' ] = trailingslashit( $this->get_destination_path_replacement( WP_PLUGIN_DIR ) );
2013
- if ( $this->job[ 'backupthemes'] )
2014
- $manifest[ 'archive' ][ 'themes' ] = trailingslashit( $this->get_destination_path_replacement( get_theme_root() ) );
2015
- }
2016
-
2017
- if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json', json_encode( $manifest ) ) )
2018
- return FALSE;
2019
- $this->substeps_done = 1;
2020
-
2021
- //Create backwpup_readme.txt
2022
- $readme_text = __( 'You may have noticed the manifest.json file in this archive.', 'backwpup' ) . PHP_EOL;
2023
- $readme_text .= __( 'manifest.json might be needed for later restoring a backup from this archive.', 'backwpup' ) . PHP_EOL;
2024
- $readme_text .= __( 'Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored.', 'backwpup' ) . PHP_EOL;
2025
- if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt', $readme_text ) ) {
2026
- return FALSE;
2027
- }
2028
- $this->substeps_done = 2;
2029
-
2030
- //add file to backup files
2031
- if ( is_readable( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ) ) {
2032
- $this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json';
2033
- $this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt';
2034
- $this->log( sprintf( __( 'Added manifest.json file with %1$s to backup file list.', 'backwpup' ), size_format( filesize( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ), 2 ) ) );
2035
- }
2036
- $this->substeps_done = 3;
2037
-
2038
- return TRUE;
2039
- }
2040
-
2041
- /**
2042
- * Creates the backup archive
2043
- */
2044
- private function create_archive() {
2045
-
2046
- //load folders to backup
2047
- $folders_to_backup = $this->get_folders_to_backup();
2048
-
2049
- $this->substeps_todo = $this->count_folder + 1;
2050
-
2051
- //initial settings for restarts in archiving
2052
- if ( ! isset( $this->steps_data[ $this->step_working ]['on_file'] ) ) {
2053
- $this->steps_data[ $this->step_working ]['on_file'] = '';
2054
- }
2055
- if ( ! isset( $this->steps_data[ $this->step_working ]['on_folder'] ) ) {
2056
- $this->steps_data[ $this->step_working ]['on_folder'] = '';
2057
- }
2058
-
2059
- if ( $this->steps_data[ $this->step_working ][ 'on_folder' ] == '' && $this->steps_data[ $this->step_working ][ 'on_file' ] == '' && is_file( $this->backup_folder . $this->backup_file ) ) {
2060
- unlink( $this->backup_folder . $this->backup_file );
2061
- }
2062
-
2063
- if ( $this->steps_data[ $this->step_working ]['SAVE_STEP_TRY'] != $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] )
2064
- $this->log( sprintf( __( '%d. Trying to create backup archive &hellip;', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ), E_USER_NOTICE );
2065
-
2066
- try {
2067
- $backup_archive = new BackWPup_Create_Archive( $this->backup_folder . $this->backup_file );
2068
-
2069
- //show method for creation
2070
- if ( $this->substeps_done == 0 ) {
2071
- $this->log( sprintf( _x( 'Compressing files as %s. Please be patient, this may take a moment.', 'Archive compression method', 'backwpup'), $backup_archive->get_method() ) );
2072
- }
2073
-
2074
- //add extra files
2075
- if ( $this->substeps_done == 0 ) {
2076
- if ( ! empty( $this->additional_files_to_backup ) && $this->substeps_done == 0 ) {
2077
- if ( $this->is_debug() ) {
2078
- $this->log( __( 'Adding Extra files to Archive', 'backwpup' ) );
2079
- }
2080
- foreach ( $this->additional_files_to_backup as $file ) {
2081
- if ( $backup_archive->add_file( $file, basename( $file ) ) ) {;
2082
- $this->count_files ++;
2083
- $this->count_files_size = $this->count_files_size + filesize( $file );
2084
- $this->update_working_data();
2085
- } else {
2086
- $backup_archive->close();
2087
- $this->steps_data[ $this->step_working ][ 'on_file' ] = '';
2088
- $this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
2089
- $this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
2090
- return FALSE;
2091
- }
2092
- }
2093
- }
2094
- $this->substeps_done ++;
2095
- }
2096
-
2097
- //add normal files
2098
- while ( $folder = array_shift( $folders_to_backup ) ) {
2099
- //jump over already done folders
2100
- if ( in_array( $this->steps_data[ $this->step_working ]['on_folder'], $folders_to_backup ) ) {
2101
- continue;
2102
- }
2103
- if ( $this->is_debug() ) {
2104
- $this->log( sprintf( __( 'Archiving Folder: %s', 'backwpup' ), $folder ) );
2105
- }
2106
- $this->steps_data[ $this->step_working ]['on_folder'] = $folder;
2107
- $files_in_folder = $this->get_files_in_folder( $folder );
2108
- //add empty folders
2109
- if ( empty( $files_in_folder ) ) {
2110
- $folder_name_in_archive = trim( ltrim( $this->get_destination_path_replacement( $folder ), '/' ) );
2111
- if ( ! empty ( $folder_name_in_archive ) ) {
2112
- $backup_archive->add_empty_folder( $folder, $folder_name_in_archive );
2113
- }
2114
- continue;
2115
- }
2116
- //add files
2117
- while ( $file = array_shift( $files_in_folder ) ) {
2118
- //jump over already done files
2119
- if ( in_array( $this->steps_data[ $this->step_working ]['on_file'], $files_in_folder ) ) {
2120
- continue;
2121
- }
2122
- $this->steps_data[ $this->step_working ]['on_file'] = $file;
2123
- //restart if needed
2124
- $restart_time = $this->get_restart_time();
2125
- if ( $restart_time <= 0 ) {
2126
- unset( $backup_archive );
2127
- $this->do_restart_time( TRUE );
2128
- return FALSE;
2129
- }
2130
- //generate filename in archive
2131
- $in_archive_filename = ltrim( $this->get_destination_path_replacement( $file ), '/' );
2132
- //add file to archive
2133
- if ( $backup_archive->add_file( $file, $in_archive_filename ) ) {
2134
- $this->count_files ++;
2135
- $this->count_files_size = $this->count_files_size + filesize( $file );
2136
- $this->update_working_data();
2137
- } else {
2138
- $backup_archive->close();
2139
- unset( $backup_archive );
2140
- $this->steps_data[ $this->step_working ][ 'on_file' ] = '';
2141
- $this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
2142
- $this->substeps_done = 0;
2143
- $this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
2144
- if ( $this->backup_filesize === FALSE ) {
2145
- $this->backup_filesize = PHP_INT_MAX;
2146
- }
2147
- $this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
2148
- return FALSE;
2149
- }
2150
- }
2151
- $this->steps_data[ $this->step_working ]['on_file'] = '';
2152
- $this->substeps_done ++;
2153
- }
2154
- $backup_archive->close();
2155
- unset( $backup_archive );
2156
- $this->log( __( 'Backup archive created.', 'backwpup' ), E_USER_NOTICE );
2157
- } catch ( Exception $e ) {
2158
- $this->log( $e->getMessage(), E_USER_ERROR, $e->getFile(), $e->getLine() );
2159
- unset( $backup_archive );
2160
- return FALSE;
2161
- }
2162
-
2163
- $this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
2164
- if ( $this->backup_filesize === FALSE ) {
2165
- $this->backup_filesize = PHP_INT_MAX;
2166
- }
2167
-
2168
- if ( $this->backup_filesize >= PHP_INT_MAX ) {
2169
- $this->log( __( 'The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each.', 'backwpup' ), E_USER_ERROR );
2170
- $this->end();
2171
- }
2172
- else {
2173
- $this->log( sprintf( __( 'Archive size is %s.', 'backwpup' ), size_format( $this->backup_filesize, 2 ) ), E_USER_NOTICE );
2174
- }
2175
-
2176
- $this->log( sprintf( __( '%1$d Files with %2$s in Archive.', 'backwpup' ), $this->count_files, size_format( $this->count_files_size, 2 ) ), E_USER_NOTICE );
2177
-
2178
- return TRUE;
2179
- }
2180
-
2181
- /**
2182
- * @param $name
2183
- * @param string $suffix
2184
- * @param bool $delete_temp_file
2185
- * @return string
2186
- */
2187
- public function generate_filename( $name, $suffix = '', $delete_temp_file = TRUE ) {
2188
-
2189
- $local_time = current_time( 'timestamp' );
2190
-
2191
- $datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
2192
- $datevalues = array( date( 'd', $local_time ), date( 'j', $local_time ), date( 'm', $local_time ), date( 'n', $local_time ), date( 'Y', $local_time ), date( 'y', $local_time ), date( 'a', $local_time ), date( 'A', $local_time ), date( 'B', $local_time ), date( 'g', $local_time ), date( 'G', $local_time ), date( 'h', $local_time ), date( 'H', $local_time ), date( 'i', $local_time ), date( 's', $local_time ) );
2193
-
2194
- if ( ! empty( $suffix ) && substr( $suffix, 0, 1 ) != '.' ) {
2195
- $suffix = '.' . $suffix;
2196
- }
2197
-
2198
- $name = str_replace( $datevars, $datevalues, self::sanitize_file_name( $name ) );
2199
- $name .= $suffix;
2200
- if ( $delete_temp_file && is_writeable( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_dir( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_link( BackWPup::get_plugin_data( 'TEMP' ) . $name ) ) {
2201
- unlink( BackWPup::get_plugin_data( 'TEMP' ) . $name );
2202
- }
2203
-
2204
- return $name;
2205
- }
2206
-
2207
- /**
2208
- * @param $filename
2209
- * @return bool
2210
- */
2211
- public function is_backup_archive( $filename ) {
2212
-
2213
- $filename = basename( $filename );
2214
-
2215
- if ( ! substr( $filename, -3 ) == '.gz' || ! substr( $filename, -4 ) == '.bz2' || ! substr( $filename, -4 ) == '.tar' || ! substr( $filename, -4 ) == '.zip' )
2216
- return FALSE;
2217
-
2218
- $filename = str_replace( array( '.gz', '.bz2', '.tar', '.zip' ), '', $filename );
2219
-
2220
- $datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
2221
- $dateregex = array( '(0[1-9]|[12][0-9]|3[01])', '([1-9]|[12][0-9]|3[01])', '(0[1-9]|1[012])', '([1-9]|1[012])', '((19|20|21)[0-9]{2})', '([0-9]{2})', '(am|pm)', '(AM|PM)', '([0-9]{3})', '([1-9]|1[012])', '([0-9]|1[0-9]|2[0-3])', '(0[1-9]|1[012])', '(0[0-9]|1[0-9]|2[0-3])', '([0-5][0-9])', '([0-5][0-9])' );
2222
-
2223
- $regex = "/^" . str_replace( $datevars, $dateregex, self::sanitize_file_name( $this->job[ 'archivename' ] ) ) . "$/";
2224
-
2225
- preg_match( $regex, $filename, $matches );
2226
- if ( ! empty( $matches[ 0 ] ) && $matches[ 0 ] == $filename )
2227
- return TRUE;
2228
-
2229
- return FALSE;
2230
- }
2231
-
2232
- /**
2233
- * Sanitizes a filename, replacing whitespace with underscores.
2234
- *
2235
- * @param $filename
2236
- *
2237
- * @return mixed
2238
- */
2239
- public static function sanitize_file_name( $filename ) {
2240
-
2241
- $filename = trim( $filename );
2242
-
2243
- $special_chars = array( "?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}", chr(0) );
2244
-
2245
- $filename = str_replace( $special_chars, '', $filename );
2246
-
2247
- $filename = str_replace( array( ' ', '%20', '+' ), '_', $filename );
2248
- $filename = str_replace( array( "\n", "\t", "\r" ), '-', $filename );
2249
- $filename = trim( $filename, '.-_' );
2250
-
2251
- return $filename;
2252
- }
2253
-
2254
- /**
2255
- * Get the Process id of working script
2256
- *
2257
- * @return int
2258
- */
2259
- private static function get_pid( ) {
2260
-
2261
- if ( function_exists( 'posix_getpid' ) ) {
2262
-
2263
- return posix_getpid();
2264
- } elseif ( function_exists( 'getmypid' ) ) {
2265
-
2266
- return getmypid();
2267
- }
2268
-
2269
- return -1;
2270
- }
2271
-
2272
- /**
2273
- * For storing and getting data in/from a extra temp file
2274
- *
2275
- * @param string $storage The name of the storage
2276
- * @param array $data data to save in storage
2277
- * @return array|mixed|null data from storage
2278
- */
2279
- public function data_storage( $storage = NULL, $data = NULL ) {
2280
-
2281
- if ( empty( $storage ) )
2282
- return $data;
2283
-
2284
- $storage = strtolower( $storage );
2285
-
2286
- $file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-' . $storage . '.json';
2287
-
2288
- if ( ! empty( $data ) ) {
2289
- file_put_contents( $file, json_encode( $data ) );
2290
- }
2291
- elseif ( is_readable( $file ) ) {
2292
- $json = file_get_contents( $file );
2293
- $data = json_decode( $json, TRUE );
2294
- }
2295
-
2296
- return $data;
2297
- }
2298
-
2299
- /**
2300
- * Get list of Folder for backup
2301
- *
2302
- * @return array folder list
2303
- */
2304
- public function get_folders_to_backup( ) {
2305
-
2306
- $file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
2307
-
2308
- if ( ! file_exists( $file ) ) {
2309
- return array();
2310
- }
2311
-
2312
- $folders = array();
2313
-
2314
- $file_data = file( $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
2315
-
2316
- foreach( $file_data as $folder ) {
2317
- $folder = trim( str_replace( array( '<?php', '//' ), '', $folder ) );
2318
- if ( ! empty( $folder ) && is_dir( $folder ) ) {
2319
- $folders[] = $folder;
2320
- }
2321
- }
2322
- $folders = array_unique( $folders );
2323
- sort( $folders );
2324
- $this->count_folder = count( $folders );
2325
-
2326
- return $folders;
2327
- }
2328
-
2329
-
2330
- /**
2331
- * Add a Folders to Folder list that should be backup
2332
- *
2333
- * @param array $folders folder to add
2334
- * @param bool $new overwrite existing file
2335
- */
2336
- public function add_folders_to_backup( $folders = array(), $new = FALSE ) {
2337
-
2338
- if ( ! is_array( $folders ) )
2339
- $folders = (array) $folders;
2340
-
2341
- $file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
2342
-
2343
- if ( ! file_exists( $file ) || $new ) {
2344
- file_put_contents( $file, '<?php' . PHP_EOL );
2345
- }
2346
-
2347
- $content = '';
2348
- foreach ( $folders AS $folder ) {
2349
- $content .= '//' . $folder . PHP_EOL;
2350
- }
2351
-
2352
- if ( ! empty( $content ) )
2353
- file_put_contents( $file, $content, FILE_APPEND );
2354
- }
2355
-
2356
- /**
2357
- * Check whether exec has been disabled.
2358
- *
2359
- * @access public
2360
- * @static
2361
- * @return bool
2362
- */
2363
- public static function is_exec() {
2364
-
2365
- // Is function avail
2366
- if ( ! function_exists( 'exec' ) ) {
2367
- return FALSE;
2368
- }
2369
-
2370
- // Is shell_exec disabled?
2371
- if ( in_array( 'exec', array_map( 'trim', explode( ',', @ini_get( 'disable_functions' ) ) ) ) ) {
2372
- return FALSE;
2373
- }
2374
-
2375
- // Can we issue a simple echo command?
2376
- $output = exec( 'echo backwpupechotest' );
2377
- if ( $output != 'backwpupechotest' ) {
2378
- return FALSE;
2379
- }
2380
-
2381
- return TRUE;
2382
-
2383
- }
2384
-
2385
- /**
2386
- * Cleanup Temp Folder
2387
- */
2388
- public static function clean_temp_folder() {
2389
-
2390
- $temp_dir = BackWPup::get_plugin_data( 'TEMP' );
2391
- $do_not_delete_files = array( '.htaccess', 'index.php', '.', '..', '.donotbackup' );
2392
-
2393
- if ( is_writable( $temp_dir ) && $dir = opendir( $temp_dir ) ) {
2394
- while ( FALSE !== ( $file = readdir( $dir ) ) ) {
2395
- if ( in_array( $file, $do_not_delete_files ) || is_dir( $temp_dir . $file ) || is_link( $temp_dir . $file ) ) {
2396
- continue;
2397
- }
2398
- if ( is_writeable( $temp_dir . $file ) ) {
2399
- unlink( $temp_dir . $file );
2400
- }
2401
- }
2402
- closedir( $dir );
2403
- }
2404
- }
2405
-
2406
- /**
2407
- * Is debug log active
2408
- *
2409
- * @return bool
2410
- */
2411
- public function is_debug() {
2412
-
2413
- return strstr( $this->log_level, 'debug' ) ? TRUE : FALSE;
2414
- }
2415
-
2416
- /**
2417
- * Change path of a given path
2418
- * for better storing in archives or on sync destinations
2419
- *
2420
- * @param $path string path to change to wp default path
2421
- *
2422
- * @return string
2423
- */
2424
- public function get_destination_path_replacement( $path ) {
2425
-
2426
- $path = str_replace( '\\', '/', $path );
2427
-
2428
- $abs_path = realpath( ABSPATH );
2429
- if ( $this->job[ 'backupabsfolderup' ] ) {
2430
- $abs_path = dirname( $abs_path );
2431
- }
2432
-
2433
- $abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
2434
-
2435
- $path = str_replace( $abs_path, '/', $path );
2436
-
2437
- return $path;
2438
- }
2439
-
2440
- }
1
+ <?php
2
+ /**
3
+ * Class in that the BackWPup job runs
4
+ */
5
+ final class BackWPup_Job {
6
+
7
+ /**
8
+ * @var array of the job settings
9
+ */
10
+ public $job = array();
11
+
12
+ /**
13
+ * @var int The timestamp when the job starts
14
+ */
15
+ public $start_time = 0;
16
+
17
+ /**
18
+ * @var string the logfile
19
+ */
20
+ public $logfile = '';
21
+ /**
22
+ * @var array for temp values
23
+ */
24
+ public $temp = array();
25
+ /**
26
+ * @var string Folder where is Backup files in
27
+ */
28
+ public $backup_folder = '';
29
+ /**
30
+ * @var string the name of the Backup archive file
31
+ */
32
+ public $backup_file = '';
33
+ /**
34
+ * @var int The size of the Backup archive file
35
+ */
36
+ public $backup_filesize = 0;
37
+ /**
38
+ * @var int PID of script
39
+ */
40
+ public $pid = 0;
41
+ /**
42
+ * @var float Timestamp of last update off .running file
43
+ */
44
+ public $timestamp_last_update = 0;
45
+ /**
46
+ * @var float Timestamp of script start
47
+ */
48
+ private $timestamp_script_start = 0;
49
+ /**
50
+ * @var int Number of warnings
51
+ */
52
+ public $warnings = 0;
53
+ /**
54
+ * @var int Number of errors
55
+ */
56
+ public $errors = 0;
57
+ /**
58
+ * @var string the last log notice message
59
+ */
60
+ public $lastmsg = '';
61
+ /**
62
+ * @var string the last log error/waring message
63
+ */
64
+ public $lasterrormsg = '';
65
+ /**
66
+ * @var array of steps to do
67
+ */
68
+ public $steps_todo = array( 'CREATE' );
69
+ /**
70
+ * @var array of done steps
71
+ */
72
+ public $steps_done = array();
73
+ /**
74
+ * @var array of steps data
75
+ */
76
+ public $steps_data = array();
77
+ /**
78
+ * @var string working on step
79
+ */
80
+ public $step_working = 'CREATE';
81
+ /**
82
+ * @var int Number of sub steps must do in step
83
+ */
84
+ public $substeps_todo = 0;
85
+ /**
86
+ * @var int Number of sub steps done in step
87
+ */
88
+ public $substeps_done = 0;
89
+ /**
90
+ * @var int Percent of steps done
91
+ */
92
+ public $step_percent = 1;
93
+ /**
94
+ * @var int Percent of sub steps done
95
+ */
96
+ public $substep_percent = 1;
97
+ /**
98
+ * @var array of files to additional to backup
99
+ */
100
+ public $additional_files_to_backup = array();
101
+ /**
102
+ * @var array of files/folder to exclude from backup
103
+ */
104
+ public $exclude_from_backup = array();
105
+ /**
106
+ * @var int count of affected files
107
+ */
108
+ public $count_files = 0;
109
+ /**
110
+ * @var int count of affected file sizes
111
+ */
112
+ public $count_files_size = 0;
113
+ /**
114
+ * @var int count of affected folders
115
+ */
116
+ public $count_folder = 0;
117
+
118
+ /**
119
+ * If job aborted from user
120
+ * @var bool
121
+ */
122
+ public $user_abort = FALSE;
123
+
124
+ /**
125
+ * Stores data that will only used in a single run
126
+ * @var array
127
+ */
128
+ private $run = array();
129
+
130
+ /**
131
+ * A uniqid ID uniqid('', true); to identify process
132
+ * @var string
133
+ */
134
+ public $uniqid = '';
135
+
136
+ /**
137
+ * @var string logging level (normal|normal_untranslated|debug|debug_untranslated)
138
+ */
139
+ private $log_level = 'normal';
140
+
141
+
142
+ /**
143
+ * Delete some data on cloned objects
144
+ */
145
+ public function __clone( ) {
146
+
147
+ $this->temp = array();
148
+ $this->run = array();
149
+ }
150
+
151
+ /**
152
+ *
153
+ * This starts or restarts the job working
154
+ *
155
+ * @param string $start_type Start types are 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli'
156
+ * @param array|int $job_settings The id of job or the settings of a job to start
157
+ */
158
+ private function create( $start_type, $job_settings = 0 ) {
159
+ global $wpdb;
160
+ /* @var wpdb $wpdb */
161
+
162
+ //check startype
163
+ if ( ! in_array( $start_type, array( 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli' ) ) ) {
164
+ return;
165
+ }
166
+
167
+ if ( is_int( $job_settings ) ) {
168
+ $this->job = BackWPup_Option::get_job( $job_settings );
169
+ } elseif( is_array( $job_settings ) ) {
170
+ $this->job = $job_settings;
171
+ } else {
172
+ return;
173
+ }
174
+
175
+ $this->start_time = current_time( 'timestamp' );
176
+ $this->lastmsg = __( 'Starting job', 'backwpup' );
177
+ //set Logfile
178
+ $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
179
+ $log_folder = BackWPup_File::get_absolute_path( $log_folder );
180
+ $this->logfile = $log_folder . 'backwpup_log_' . BackWPup::get_plugin_data( 'hash' ) . '_' . date( 'Y-m-d_H-i-s', current_time( 'timestamp' ) ) . '.html';
181
+ //write settings to job
182
+ if ( ! empty( $this->job[ 'jobid' ] ) ) {
183
+ BackWPup_Option::update( $this->job[ 'jobid' ], 'lastrun', $this->start_time );
184
+ BackWPup_Option::update( $this->job[ 'jobid' ], 'logfile', $this->logfile ); //Set current logfile
185
+ BackWPup_Option::update( $this->job[ 'jobid' ], 'lastbackupdownloadurl', '' );
186
+ }
187
+ //Set needed job values
188
+ $this->timestamp_last_update = microtime( TRUE );
189
+ $this->exclude_from_backup = explode( ',', trim( $this->job[ 'fileexclude' ] ) );
190
+ $this->exclude_from_backup = array_unique( $this->exclude_from_backup );
191
+ //setup job steps
192
+ $this->steps_data[ 'CREATE' ][ 'CALLBACK' ] = '';
193
+ $this->steps_data[ 'CREATE' ][ 'NAME' ] = __( 'Job Start', 'backwpup' );
194
+ $this->steps_data[ 'CREATE' ][ 'STEP_TRY' ] = 0;
195
+ //ADD Job types file
196
+ /* @var $job_type_class BackWPup_JobTypes */
197
+ $job_need_dest = FALSE;
198
+ if ( $job_types = BackWPup::get_job_types() ) {
199
+ foreach ( $job_types as $id => $job_type_class ) {
200
+ if ( in_array( $id, $this->job[ 'type' ] ) && $job_type_class->creates_file( ) ) {
201
+ $this->steps_todo[ ] = 'JOB_' . $id;
202
+ $this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
203
+ $this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
204
+ $this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
205
+ $job_need_dest = TRUE;
206
+ }
207
+ }
208
+ }
209
+ //add destinations and create archive if a job where files to backup
210
+ if ( $job_need_dest ) {
211
+ //Create manifest file
212
+ $this->steps_todo[ ] = 'CREATE_MANIFEST';
213
+ $this->steps_data[ 'CREATE_MANIFEST' ][ 'NAME' ] = __( 'Creates manifest file', 'backwpup' );
214
+ $this->steps_data[ 'CREATE_MANIFEST' ][ 'STEP_TRY' ] = 0;
215
+ $this->steps_data[ 'CREATE_MANIFEST' ][ 'SAVE_STEP_TRY' ] = 0;
216
+ //Add archive creation and backup filename on backup type archive
217
+ if ( $this->job[ 'backuptype' ] == 'archive' ) {
218
+ //get Backup folder if destination folder set
219
+ if ( in_array( 'FOLDER', $this->job[ 'destinations' ] ) ) {
220
+ $this->backup_folder = $this->job[ 'backupdir' ];
221
+ //check backup folder
222
+ if ( ! empty( $this->backup_folder ) ) {
223
+ $this->backup_folder = BackWPup_File::get_absolute_path( $this->backup_folder );
224
+ $this->job[ 'backupdir' ] = $this->backup_folder;
225
+ }
226
+ }
227
+ //set temp folder to backup folder if not set because we need one
228
+ if ( ! $this->backup_folder || $this->backup_folder == '/' ) {
229
+ $this->backup_folder = BackWPup::get_plugin_data( 'TEMP' );
230
+ }
231
+ //Create backup archive full file name
232
+ $this->backup_file = $this->generate_filename( $this->job[ 'archivename' ], $this->job[ 'archiveformat' ] );
233
+ //add archive create
234
+ $this->steps_todo[ ] = 'CREATE_ARCHIVE';
235
+ $this->steps_data[ 'CREATE_ARCHIVE' ][ 'NAME' ] = __( 'Creates archive', 'backwpup' );
236
+ $this->steps_data[ 'CREATE_ARCHIVE' ][ 'STEP_TRY' ] = 0;
237
+ $this->steps_data[ 'CREATE_ARCHIVE' ][ 'SAVE_STEP_TRY' ] = 0;
238
+ }
239
+ //ADD Destinations
240
+ /* @var BackWPup_Destinations $dest_class */
241
+ foreach ( BackWPup::get_registered_destinations() as $id => $dest ) {
242
+ if ( ! in_array( $id, $this->job[ 'destinations' ] ) || empty( $dest[ 'class' ] ) )
243
+ continue;
244
+ $dest_class = BackWPup::get_destination( $id );
245
+ if ( $dest_class->can_run( $this->job ) ) {
246
+ if ( $this->job[ 'backuptype' ] == 'sync' ) {
247
+ if ( $dest[ 'can_sync' ] ) {
248
+ $this->steps_todo[] = 'DEST_SYNC_' . $id;
249
+ $this->steps_data[ 'DEST_SYNC_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
250
+ $this->steps_data[ 'DEST_SYNC_' . $id ][ 'STEP_TRY' ] = 0;
251
+ $this->steps_data[ 'DEST_SYNC_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
252
+ }
253
+ } else {
254
+ $this->steps_todo[] = 'DEST_' . $id;
255
+ $this->steps_data[ 'DEST_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
256
+ $this->steps_data[ 'DEST_' . $id ][ 'STEP_TRY' ] = 0;
257
+ $this->steps_data[ 'DEST_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
258
+ }
259
+ }
260
+ }
261
+ }
262
+ //ADD Job type no file
263
+ if ( $job_types = BackWPup::get_job_types() ) {
264
+ foreach ( $job_types as $id => $job_type_class ) {
265
+ if ( in_array( $id, $this->job[ 'type' ] ) && ! $job_type_class->creates_file() ) {
266
+ $this->steps_todo[ ] = 'JOB_' . $id;
267
+ $this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
268
+ $this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
269
+ $this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
270
+ }
271
+ }
272
+ }
273
+ $this->steps_todo[] = 'END';
274
+ $this->steps_data[ 'END' ][ 'NAME' ] = __( 'End of Job', 'backwpup' );
275
+ $this->steps_data[ 'END' ][ 'STEP_TRY' ] = 1;
276
+ //must write working data
277
+ $this->write_running_file();
278
+
279
+ //load text domain if needed
280
+ $this->log_level = get_site_option( 'backwpup_cfg_loglevel' );
281
+ if ( ! in_array( $this->log_level, array( 'normal_translated', 'normal', 'debug_translated', 'debug' ) ) ) {
282
+ $this->log_level = 'normal_translated';
283
+ }
284
+ //create log file
285
+ $head = '';
286
+ $info = '';
287
+ $head .= "<!DOCTYPE html>" . PHP_EOL;
288
+ $head .= "<html lang=\"" . str_replace( '_', '-', get_locale() ) . "\">" . PHP_EOL;
289
+ $head .= "<head>" . PHP_EOL;
290
+ $head .= "<meta charset=\"" . get_bloginfo( 'charset' ) . "\" />" . PHP_EOL;
291
+ $head .= "<title>" . sprintf( __( 'BackWPup log for %1$s from %2$s at %3$s', 'backwpup' ), $this->job[ 'name' ], date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) ) . "</title>" . PHP_EOL;
292
+ $head .= "<meta name=\"robots\" content=\"noindex, nofollow\" />" . PHP_EOL;
293
+ $head .= "<meta name=\"copyright\" content=\"Copyright &copy; 2012 - " . date( 'Y' ) . " Inpsyde GmbH\" />" . PHP_EOL;
294
+ $head .= "<meta name=\"author\" content=\"Inpsyde GmbH\" />" . PHP_EOL;
295
+ $head .= "<meta name=\"generator\" content=\"BackWPup " . BackWPup::get_plugin_data( 'Version' ) . "\" />" . PHP_EOL;
296
+ $head .= "<meta http-equiv=\"cache-control\" content=\"no-cache\" />" . PHP_EOL;
297
+ $head .= "<meta http-equiv=\"pragma\" content=\"no-cache\" />" . PHP_EOL;
298
+ $head .= "<meta name=\"date\" content=\"" . date( 'c' ) . "\" />" . PHP_EOL;
299
+ $head .= str_pad( '<meta name="backwpup_errors" content="0" />', 100 ) . PHP_EOL;
300
+ $head .= str_pad( '<meta name="backwpup_warnings" content="0" />', 100 ) . PHP_EOL;
301
+ if ( ! empty( $this->job[ 'jobid' ] ) ) {
302
+ $head .= "<meta name=\"backwpup_jobid\" content=\"" . $this->job[ 'jobid' ] . "\" />" . PHP_EOL;
303
+ }
304
+ $head .= "<meta name=\"backwpup_jobname\" content=\"" . esc_attr( $this->job[ 'name' ] ) . "\" />" . PHP_EOL;
305
+ $head .= "<meta name=\"backwpup_jobtype\" content=\"" . implode( '+', $this->job[ 'type' ] ) . "\" />" . PHP_EOL;
306
+ $head .= str_pad( '<meta name="backwpup_backupfilesize" content="0" />', 100 ) . PHP_EOL;
307
+ $head .= str_pad( '<meta name="backwpup_jobruntime" content="0" />', 100 ) . PHP_EOL;
308
+ $head .= "</head>" . PHP_EOL;
309
+ $head .= "<body style=\"margin:0;padding:3px;font-family:monospace;font-size:12px;line-height:15px;background-color:#000;color:#fff;white-space:nowrap;\">" . PHP_EOL;
310
+ $info .= sprintf( _x( '[INFO] %1$s %2$s; A project of Inpsyde GmbH', 'Plugin name; Plugin Version; plugin url','backwpup' ), BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'Version' ), BackWPup::get_plugin_data( 'pluginuri' ) ) . '<br />' . PHP_EOL;
311
+ if ( $this->is_debug() ) {
312
+ $info .= sprintf( _x( '[INFO] WordPress %1$s on %2$s', 'WordPress Version; Blog url', 'backwpup' ), BackWPup::get_plugin_data( 'wp_version' ), esc_attr( site_url( '/' ) ) ). '<br />' . PHP_EOL;
313
+ }
314
+ $job_name = esc_attr( $this->job[ 'name' ] );
315
+ if ( $this->is_debug() ) {
316
+ $job_name .= '; ' . implode( '+', $this->job[ 'type' ] );
317
+ }
318
+ $info .= sprintf( __( '[INFO] BackWPup job: %1$s', 'backwpup' ), $job_name ) . '<br />' . PHP_EOL;
319
+ if ( $this->is_debug() ) {
320
+ $current_user = wp_get_current_user();
321
+ $info .= sprintf( __( '[INFO] Runs with user: %1$s (%2$d) ', 'backwpup' ), $current_user->user_login, $current_user->ID ) . '<br />' . PHP_EOL;
322
+ }
323
+ if ( $this->job[ 'activetype' ] == 'wpcron' ) {
324
+ //check next run
325
+ $cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
326
+ if ( ! $cron_next || $cron_next < time() ) {
327
+ wp_unschedule_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
328
+ $cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
329
+ wp_schedule_single_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
330
+ $cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
331
+ }
332
+ //output scheduling
333
+ if ( $this->is_debug() ) {
334
+ if ( ! $cron_next ) {
335
+ $cron_next = __( 'Not scheduled!', 'backwpup' );
336
+ } else {
337
+ $cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
338
+ }
339
+ $info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
340
+ }
341
+ }
342
+ elseif( $this->job[ 'activetype' ] == 'link' && $this->is_debug() ) {
343
+ $info .= __( '[INFO] BackWPup job start with link is active', 'backwpup' ) . '<br />' . PHP_EOL;
344
+ }
345
+ elseif( $this->job[ 'activetype' ] == 'easycron' && $this->is_debug() ) {
346
+ $info .= __( '[INFO] BackWPup job start with EasyCron.com', 'backwpup' ) . '<br />' . PHP_EOL;
347
+ //output scheduling
348
+ if ( $this->is_debug() ) {
349
+ $cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
350
+ $cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
351
+ $info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
352
+ }
353
+ }
354
+ elseif( $this->is_debug() ) {
355
+ $info .= __( '[INFO] BackWPup no automatic job start configured', 'backwpup' ) . '<br />' . PHP_EOL;
356
+ }
357
+ if ( $this->is_debug() ) {
358
+ if ( $start_type == 'cronrun' ) {
359
+ $info .= __( '[INFO] BackWPup job started from wp-cron', 'backwpup' ) . '<br />' . PHP_EOL;
360
+ } elseif ( $start_type == 'runnow' || $start_type == 'runnowalt' ) {
361
+ $info .= __( '[INFO] BackWPup job started manually', 'backwpup' ) . '<br />' . PHP_EOL;
362
+ } elseif ( $start_type == 'runext' ) {
363
+ $info .= __( '[INFO] BackWPup job started from external url', 'backwpup' ) . '<br />' . PHP_EOL;
364
+ } elseif ( $start_type == 'runcli' ) {
365
+ $info .= __( '[INFO] BackWPup job started form commandline interface', 'backwpup' ) . '<br />' . PHP_EOL;
366
+ }
367
+ $bit = '';
368
+ if ( PHP_INT_SIZE === 4 ) {
369
+ $bit = ' (32bit)';
370
+ }
371
+ if ( PHP_INT_SIZE === 8 ) {
372
+ $bit = ' (64bit)';
373
+ }
374
+ $info .= __( '[INFO] PHP ver.:', 'backwpup' ) . ' ' . PHP_VERSION . $bit .'; ' . PHP_SAPI . '; ' . PHP_OS . '<br />' . PHP_EOL;
375
+ $info .= sprintf( __( '[INFO] Maximum PHP script execution time is %1$d seconds', 'backwpup' ), ini_get( 'max_execution_time' ) ) . '<br />' . PHP_EOL;
376
+ if ( php_sapi_name() != 'cli' ) {
377
+ $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
378
+ if ( ! empty( $job_max_execution_time ) ) {
379
+ $info .= sprintf( __( '[INFO] Script restart time is configured to %1$d seconds', 'backwpup' ), $job_max_execution_time ) . '<br />' . PHP_EOL;
380
+ }
381
+ }
382
+ $info .= sprintf( __( '[INFO] MySQL ver.: %s', 'backwpup' ), $wpdb->get_var( "SELECT VERSION() AS version" ) ) . '<br />' . PHP_EOL;
383
+ if ( isset( $_SERVER[ 'SERVER_SOFTWARE' ] ) )
384
+ $info .= sprintf( __( '[INFO] Web Server: %s', 'backwpup' ), $_SERVER[ 'SERVER_SOFTWARE' ] ) . '<br />' . PHP_EOL;
385
+ if ( function_exists( 'curl_init' ) ) {
386
+ $curlversion = curl_version();
387
+ $info .= sprintf( __( '[INFO] curl ver.: %1$s; %2$s', 'backwpup' ), $curlversion[ 'version' ], $curlversion[ 'ssl_version' ] ) . '<br />' . PHP_EOL;
388
+ }
389
+ $info .= sprintf( __( '[INFO] Temp folder is: %s', 'backwpup' ), BackWPup::get_plugin_data( 'TEMP' ) ) . '<br />' . PHP_EOL;
390
+ }
391
+ if ( $this->is_debug() ) {
392
+ $logfile = $this->logfile;
393
+ } else {
394
+ $logfile = basename( $this->logfile );
395
+ }
396
+ $info .= sprintf( __( '[INFO] Logfile is: %s', 'backwpup' ), $logfile ) . '<br />' . PHP_EOL;
397
+ if ( ! empty( $this->backup_file ) && $this->job[ 'backuptype' ] == 'archive' ) {
398
+ if ( $this->is_debug() ) {
399
+ $backupfile = $this->backup_folder . $this->backup_file;
400
+ } else {
401
+ $backupfile = $this->backup_file;
402
+ }
403
+ $info .= sprintf( __( '[INFO] Backup file is: %s', 'backwpup' ), $backupfile ) . '<br />' . PHP_EOL;
404
+ } else {
405
+ $info .= sprintf( __( '[INFO] Backup type is: %s', 'backwpup' ), $this->job[ 'backuptype' ] ) . '<br />' . PHP_EOL;
406
+ }
407
+ //output info on cli
408
+ if ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
409
+ fwrite( STDOUT, strip_tags( $info ) ) ;
410
+ }
411
+ if ( ! file_put_contents( $this->logfile, $head . $info, FILE_APPEND ) ) {
412
+ $this->logfile = '';
413
+ $this->log( __( 'Could not write log file', 'backwpup' ), E_USER_ERROR );
414
+ }
415
+ //test for destinations
416
+ if ( $job_need_dest ) {
417
+ $desttest = FALSE;
418
+ foreach ( $this->steps_todo as $deststeptest ) {
419
+ if ( substr( $deststeptest, 0, 5 ) == 'DEST_' ) {
420
+ $desttest = TRUE;
421
+ break;
422
+ }
423
+ }
424
+ if ( ! $desttest ) {
425
+ $this->log( __( 'No destination correctly defined for backup! Please correct job settings.', 'backwpup' ), E_USER_ERROR );
426
+ $this->steps_todo = array( 'END' );
427
+ }
428
+ }
429
+ //test backup folder
430
+ if ( ! empty( $this->backup_folder ) ) {
431
+ $folder_message = BackWPup_File::check_folder( $this->backup_folder, TRUE );
432
+ if ( ! empty( $folder_message ) ) {
433
+ $this->log( $folder_message, E_USER_ERROR );
434
+ $this->steps_todo = array( 'END' );
435
+ }
436
+ }
437
+
438
+ //Set start as done
439
+ $this->steps_done[] = 'CREATE';
440
+ }
441
+
442
+
443
+ /**
444
+ *
445
+ * Get a url to run a job of BackWPup
446
+ *
447
+ * @param string $starttype Start types are 'runnow', 'runnowlink', 'cronrun', 'runext', 'restart', 'restartalt', 'test'
448
+ * @param int $jobid The id of job to start else 0
449
+ * @return array|object [url] is the job url [header] for auth header or object form wp_remote_get()
450
+ */
451
+ public static function get_jobrun_url( $starttype, $jobid = 0 ) {
452
+
453
+ $authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
454
+ $url = site_url( 'wp-cron.php' );
455
+ $header = array();
456
+ $authurl = '';
457
+ $query_args = array( '_nonce' => substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-' . $starttype, 'nonce' ), - 12, 10 ), 'doing_wp_cron' => sprintf( '%.22F', microtime( true ) ) );
458
+
459
+ if ( in_array( $starttype, array( 'restart', 'runnow', 'cronrun', 'runext', 'test' ) ) ) {
460
+ $query_args[ 'backwpup_run' ] = $starttype;
461
+ }
462
+
463
+ if ( in_array( $starttype, array( 'runnowlink', 'runnow', 'cronrun', 'runext' ) ) && ! empty( $jobid ) ) {
464
+ $query_args[ 'jobid' ] = $jobid;
465
+ }
466
+
467
+ if ( ! empty( $authentication[ 'basic_user' ] ) && ! empty( $authentication[ 'basic_password' ] ) && $authentication[ 'method' ] == 'basic' ) {
468
+ $header[ 'Authorization' ] = 'Basic ' . base64_encode( $authentication[ 'basic_user' ] . ':' . BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) );
469
+ $authurl = urlencode( $authentication[ 'basic_user' ] ) . ':' . urlencode( BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) ) . '@';
470
+ }
471
+
472
+ if ( ! empty( $authentication[ 'query_arg' ] ) && $authentication[ 'method' ] == 'query_arg' ) {
473
+ $url .= '?' . $authentication[ 'query_arg' ];
474
+ }
475
+
476
+ if ( $starttype == 'runext' ) {
477
+ $query_args[ '_nonce' ] = get_site_option( 'backwpup_cfg_jobrunauthkey' );
478
+ $query_args[ 'doing_wp_cron' ] = NULL;
479
+ if ( ! empty( $authurl ) ) {
480
+ $url = str_replace( 'https://', 'https://' . $authurl, $url );
481
+ $url = str_replace( 'http://', 'http://' . $authurl, $url );
482
+ }
483
+ }
484
+
485
+ if ( $starttype == 'runnowlink' && ( ! defined( 'ALTERNATE_WP_CRON' ) || ! ALTERNATE_WP_CRON ) ) {
486
+ $url = wp_nonce_url( network_admin_url( 'admin.php' ), 'backwpup_job_run-' . $starttype );
487
+ $query_args[ 'page' ] = 'backwpupjobs';
488
+ $query_args[ 'action' ] = 'runnow';
489
+ $query_args[ 'doing_wp_cron' ] = NULL;
490
+ unset( $query_args[ '_nonce' ] );
491
+ }
492
+
493
+ if ( $starttype == 'runnowlink' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
494
+ $query_args[ 'backwpup_run' ] = 'runnowalt';
495
+ $query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-runnowalt', 'nonce' ), - 12, 10 );
496
+ $query_args[ 'doing_wp_cron' ] = NULL;
497
+ }
498
+
499
+ if ( $starttype == 'restartalt' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
500
+ $query_args[ 'backwpup_run' ] = 'restart';
501
+ $query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-restart', 'nonce' ), - 12, 10 );
502
+ }
503
+
504
+ if ( ! empty( $authentication[ 'user_id' ] ) && $authentication[ 'method' ] == 'user' ) {
505
+ //cache cookies for auth some
506
+ $cookies = get_site_transient( 'backwpup_cookies' );
507
+ if ( empty( $cookies ) ) {
508
+ $wp_admin_user = get_users( array( 'role' => 'administrator', 'number' => 1 ) );
509
+ if ( empty( $wp_admin_user ) ) {
510
+ $wp_admin_user = get_users( array( 'role' => 'backwpup_admin', 'number' => 1 ) );
511
+ }
512
+ if ( ! empty( $wp_admin_user[ 0 ]->ID ) ) {
513
+ $expiration = time() + ( 356 * DAY_IN_SECONDS );
514
+ $manager = WP_Session_Tokens::get_instance( $wp_admin_user[ 0 ]->ID );
515
+ $token = $manager->create( $expiration );
516
+ $cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[ 0 ]->ID, $expiration, 'logged_in', $token );
517
+ }
518
+ set_site_transient( 'backwpup_cookies', $cookies, 3600 - 30 );
519
+ }
520
+ } else {
521
+ $cookies = '';
522
+ }
523
+
524
+ $cron_request = array(
525
+ 'url' => add_query_arg( $query_args, $url ),
526
+ 'key' => $query_args[ 'doing_wp_cron' ],
527
+ 'args' => array(
528
+ 'blocking' => FALSE,
529
+ 'sslverify' => apply_filters( 'https_local_ssl_verify', true ),
530
+ 'timeout' => 0.01,
531
+ 'headers' => $header,
532
+ 'user-agent' => BackWpup::get_plugin_data( 'User-Agent' )
533
+ )
534
+ );
535
+
536
+ if ( ! empty( $cookies ) ) {
537
+ foreach ( $cookies as $name => $value ) {
538
+ $cron_request[ 'args' ][ 'cookies' ][] = new WP_Http_Cookie( array( 'name' => $name, 'value' => $value ) );
539
+ }
540
+ }
541
+
542
+ $cron_request = apply_filters( 'cron_request', $cron_request );
543
+
544
+ if ( $starttype == 'test' ) {
545
+ $cron_request[ 'args' ][ 'timeout' ] = 15;
546
+ $cron_request[ 'args' ][ 'blocking' ] = TRUE;
547
+ }
548
+
549
+ if ( ! in_array( $starttype, array( 'runnowlink', 'runext', 'restartalt' ) ) ) {
550
+ delete_transient( 'doing_cron' );
551
+ return wp_remote_post( $cron_request[ 'url' ], $cron_request[ 'args' ] );
552
+ }
553
+
554
+ return $cron_request;
555
+ }
556
+
557
+
558
+ /**
559
+ *
560
+ */
561
+ public static function start_http( $starttype ) {
562
+
563
+ //load text domain
564
+ $log_level = get_site_option( 'backwpup_cfg_loglevel' );
565
+ if ( strstr( $log_level, 'translated' ) ) {
566
+ BackWPup::load_text_domain();
567
+ }
568
+
569
+ if ( $starttype != 'restart' ) {
570
+
571
+ //check get vars
572
+ if ( isset( $_GET[ 'jobid' ] ) )
573
+ $jobid = (int)$_GET[ 'jobid' ];
574
+ else
575
+ $jobid = 0;
576
+
577
+ //check job id exists
578
+ if ( $jobid != BackWPup_Option::get( $jobid, 'jobid' ) ) {
579
+ die( '-1' );
580
+ }
581
+
582
+ //check folders
583
+ $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
584
+ $folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
585
+ $folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
586
+ if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
587
+ BackWPup_Admin::message( $folder_message_log, TRUE );
588
+ BackWPup_Admin::message( $folder_message_temp, TRUE );
589
+ die( '-2' );
590
+ }
591
+ }
592
+
593
+ // redirect
594
+ if ( $starttype == 'runnowalt' ) {
595
+ ob_start();
596
+ wp_redirect( add_query_arg( array( 'page' => 'backwpupjobs' ), network_admin_url( 'admin.php' ) ) );
597
+ echo ' ';
598
+ while ( @ob_end_flush() );
599
+ flush();
600
+ }
601
+
602
+ // Should be preventing doubled running job's on http requests
603
+ $random = rand( 1, 9 ) * 100000;
604
+ usleep( $random );
605
+
606
+ //check running job
607
+ $backwpup_job_object = self::get_working_data();
608
+ //start class
609
+ if ( ! $backwpup_job_object && in_array( $starttype, array( 'runnow', 'runnowalt', 'runext' ) ) && ! empty( $jobid ) ) {
610
+ //schedule restart event
611
+ wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
612
+ //start job
613
+ $backwpup_job_object = new self();
614
+ $backwpup_job_object->create( $starttype, (int)$jobid );
615
+ }
616
+ if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
617
+ $backwpup_job_object->run();
618
+ }
619
+
620
+ /**
621
+ * @param $jobid
622
+ */
623
+ public static function start_cli( $jobid ) {
624
+
625
+ if ( php_sapi_name() != 'cli' ) {
626
+ return;
627
+ }
628
+
629
+ //define DOING_CRON to prevent caching
630
+ if( ! defined( 'DOING_CRON' ) ) {
631
+ define( 'DOING_CRON', TRUE );
632
+ }
633
+
634
+ //load text domain
635
+ $log_level = get_site_option( 'backwpup_cfg_loglevel' );
636
+ if ( strstr( $log_level, 'translated' ) ) {
637
+ BackWPup::load_text_domain();
638
+ }
639
+
640
+ //Logs Folder
641
+ $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
642
+ $log_folder = BackWPup_File::get_absolute_path( $log_folder );
643
+
644
+ //check job id exists
645
+ $jobids = BackWPup_Option::get_job_ids();
646
+ if ( ! in_array( $jobid, $jobids ) ) {
647
+ die( __( 'Wrong BackWPup JobID', 'backwpup' ) );
648
+ }
649
+ //check folders
650
+ $log_folder_message = BackWPup_File::check_folder( $log_folder );
651
+ if ( ! empty( $log_folder_message ) ) {
652
+ die( $log_folder_message );
653
+ }
654
+ $log_folder_message = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
655
+ if ( ! empty( $log_folder_message ) ) {
656
+ die( $log_folder_message );
657
+ }
658
+ //check running job
659
+ if ( file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
660
+ die( __( 'A BackWPup job is already running', 'backwpup' ) );
661
+ }
662
+
663
+ //start class
664
+ $backwpup_job_object = new self();
665
+ $backwpup_job_object->create( 'runcli', (int)$jobid );
666
+ $backwpup_job_object->run();
667
+ }
668
+
669
+ /**
670
+ * @param int $jobid
671
+ */
672
+ public static function start_wp_cron( $jobid = 0 ) {
673
+
674
+ if ( ! defined( 'DOING_CRON' ) || ! DOING_CRON ) {
675
+ return;
676
+ }
677
+
678
+ //load text domain
679
+ $log_level = get_site_option( 'backwpup_cfg_loglevel' );
680
+ if ( strstr( $log_level, 'translated' ) ) {
681
+ BackWPup::load_text_domain();
682
+ }
683
+
684
+ if ( ! empty( $jobid ) ) {
685
+ //check folders
686
+ $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
687
+ $folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
688
+ $folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
689
+ if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
690
+ BackWPup_Admin::message( $folder_message_log, TRUE );
691
+ BackWPup_Admin::message( $folder_message_temp, TRUE );
692
+ return;
693
+ }
694
+ }
695
+
696
+ // Should be preventing doubled running job's on http requests
697
+ $random = rand( 1, 9 ) * 100000;
698
+ usleep( $random );
699
+
700
+ //get running job
701
+ $backwpup_job_object = self::get_working_data();
702
+ //start/restart class
703
+ if ( empty( $backwpup_job_object ) && ! empty( $jobid ) ) {
704
+ //schedule restart event
705
+ wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
706
+ //start job
707
+ $backwpup_job_object = new self();
708
+ $backwpup_job_object->create( 'cronrun', (int)$jobid );
709
+ }
710
+ if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
711
+ $backwpup_job_object->run();
712
+ }
713
+
714
+ /**
715
+ * disable caches
716
+ */
717
+ public static function disable_caches() {
718
+
719
+ //Special settings
720
+ @putenv( 'nokeepalive=1' );
721
+ @ini_set( 'zlib.output_compression', 'Off' );
722
+
723
+ // deactivate caches
724
+ if ( ! defined( 'DONOTCACHEDB' ) ) {
725
+ define( 'DONOTCACHEDB', TRUE );
726
+ }
727
+ if ( ! defined( 'DONOTCACHEPAGE' ) ) {
728
+ define( 'DONOTCACHEPAGE', TRUE );
729
+ }
730
+ }
731
+
732
+
733
+ /**
734
+ * Run baby run
735
+ */
736
+ public function run() {
737
+ global $wpdb;
738
+ /* @var wpdb $wpdb */
739
+
740
+ // Job can't run it is not created
741
+ if ( empty( $this->steps_todo ) || empty( $this->logfile ) ) {
742
+ $running_file = BackWPup::get_plugin_data( 'running_file' );
743
+ if ( file_exists( $running_file ) ) {
744
+ unlink( $running_file );
745
+ }
746
+ return;
747
+ }
748
+
749
+ //Check double running and inactivity
750
+ $last_update = microtime( TRUE ) - $this->timestamp_last_update;
751
+ if ( ! empty( $this->pid ) && $last_update > 300 ) {
752
+ $this->log( __( 'Job restarts due to inactivity for more than 5 minutes.', 'backwpup' ), E_USER_WARNING );
753
+ }
754
+ elseif ( ! empty( $this->pid ) ) {
755
+ return;
756
+ }
757
+ // set timestamp of script start
758
+ $this->timestamp_script_start = microtime( TRUE );
759
+ //set Pid
760
+ $this->pid = self::get_pid();
761
+ $this->uniqid = uniqid( '', TRUE );
762
+ //Early write new working file
763
+ $this->write_running_file();
764
+ //set function for PHP user defined error handling
765
+ $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] = ini_get( 'error_log' );
766
+ $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ]= ini_get( 'error_reporting' );
767
+ $this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] = ini_get( 'log_errors' );
768
+ $this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] = ini_get( 'display_errors' );
769
+ $this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] = ini_get( 'html_errors' );
770
+ $this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ]= ini_get( 'report_memleaks' );
771
+ $this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] = ini_get( 'zlib.output_compression' );
772
+ $this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] = ini_get( 'implicit_flush' );
773
+ if ( $this->is_debug() ) {
774
+ @ini_set( 'error_log', $this->logfile );
775
+ error_reporting( -1 );
776
+ }
777
+ @ini_set( 'display_errors', '0' );
778
+ @ini_set( 'log_errors', '1' );
779
+ @ini_set( 'html_errors', '0' );
780
+ @ini_set( 'report_memleaks', '1' );
781
+ @ini_set( 'zlib.output_compression', '0' );
782
+ @ini_set( 'implicit_flush', '0' );
783
+ //increase MySQL timeout
784
+ @ini_set( 'mysql.connect_timeout', '360' );
785
+ //set temp folder
786
+ $can_set_temp_env = TRUE;
787
+ $protected_env_vars = explode( ',', ini_get( 'safe_mode_protected_env_vars' ) ); //removed in php 5.4.0
788
+ foreach( $protected_env_vars as $protected_env ) {
789
+ if ( strtoupper( trim( $protected_env ) ) == 'TMPDIR' ) {
790
+ $can_set_temp_env = FALSE;
791
+ }
792
+ }
793
+ if ( $can_set_temp_env ) {
794
+ $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] = getenv( 'TMPDIR' );
795
+ @putenv( 'TMPDIR='.BackWPup::get_plugin_data( 'TEMP') );
796
+ }
797
+ //Write Wordpress DB errors to log
798
+ $wpdb->suppress_errors( FALSE );
799
+ $wpdb->hide_errors();
800
+ //set wp max memory limit
801
+ @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
802
+ //set error handler
803
+ if ( ! empty( $this->logfile ) ) {
804
+ if ( $this->is_debug() ) {
805
+ set_error_handler( array( $this, 'log' ) );
806
+ } else {
807
+ set_error_handler( array( $this, 'log' ), E_ALL ^ E_NOTICE );
808
+ }
809
+ }
810
+ set_exception_handler( array( $this, 'exception_handler' ) );
811
+ //not loading Textdomains and unload loaded
812
+ if ( ! strstr( $this->log_level, 'translated' ) ) {
813
+ add_filter( 'override_load_textdomain', create_function( '','return TRUE;' ) );
814
+ $GLOBALS[ 'l10n' ] = array();
815
+ }
816
+ // execute function on job shutdown register_shutdown_function( array( $this, 'shutdown' ) );
817
+ add_action( 'shutdown', array( $this, 'shutdown' ) );
818
+ //remove_action('shutdown', array( $this, 'shutdown' ));
819
+ if ( function_exists( 'pcntl_signal' ) ) {
820
+ $signals = array(
821
+ 'SIGHUP',
822
+ 'SIGINT',
823
+ 'SIGQUIT',
824
+ 'SIGILL',
825
+ 'SIGTRAP',
826
+ 'SIGABRT',
827
+ 'SIGBUS',
828
+ 'SIGFPE',
829
+ //'SIGKILL',
830
+ 'SIGSEGV',
831
+ //'SIGPIPE',
832
+ //'SIGALRM',
833
+ 'SIGTERM',
834
+ 'SIGSTKFLT',
835
+ 'SIGUSR1',
836
+ 'SIGUSR2',
837
+ //'SIGCHLD',
838
+ //'SIGCONT',
839
+ //'SIGSTOP',
840
+ 'SIGTSTP',
841
+ 'SIGTTIN',
842
+ 'SIGTTOU',
843
+ 'SIGURG',
844
+ 'SIGXCPU',
845
+ 'SIGXFSZ',
846
+ //'SIGVTALRM',
847
+ 'SIGPROF',
848
+ 'SIGWINCH',
849
+ //'SIGIO',
850
+ 'SIGPWR',
851
+ 'SIGSYS',
852
+ );
853
+ $signals = apply_filters( 'backwpup_job_signals_to_handel', $signals );
854
+ declare( ticks = 1 ) ;
855
+ foreach( $signals as $signal ) {
856
+ if ( defined( $signal ) ) {
857
+ pcntl_signal( constant( $signal ), array( $this, 'shutdown' ), FALSE );
858
+ }
859
+ }
860
+ }
861
+ //clear output buffer
862
+ ob_start();
863
+ while( @ob_end_clean() );
864
+ @flush();
865
+ $job_types = BackWPup::get_job_types();
866
+ //go step by step
867
+ foreach ( $this->steps_todo as $this->step_working ) {
868
+ //Check if step already done
869
+ if ( in_array( $this->step_working, $this->steps_done ) )
870
+ continue;
871
+ //calc step percent
872
+ if ( count( $this->steps_done ) > 0 )
873
+ $this->step_percent = round( count( $this->steps_done ) / count( $this->steps_todo ) * 100 );
874
+ else
875
+ $this->step_percent = 1;
876
+ // do step tries
877
+ while ( TRUE ) {
878
+ if ( $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] >= get_site_option( 'backwpup_cfg_jobstepretry' ) ) {
879
+ $this->log( __( 'Step aborted: too many attempts!', 'backwpup' ), E_USER_ERROR );
880
+ $this->temp = array();
881
+ $this->steps_done[ ] = $this->step_working;
882
+ $this->substeps_done = 0;
883
+ $this->substeps_todo = 0;
884
+ $this->do_restart();
885
+ break;
886
+ }
887
+
888
+ $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ++;
889
+ $done = FALSE;
890
+
891
+ //executes the methods of job process
892
+ if ( $this->step_working == 'CREATE_ARCHIVE' ) {
893
+ $done = $this->create_archive();
894
+ }
895
+ elseif ( $this->step_working == 'CREATE_MANIFEST' ) {
896
+ $done = $this->create_manifest();
897
+ }
898
+ elseif ( $this->step_working == 'END' ) {
899
+ $this->end();
900
+ break 2;
901
+ }
902
+ elseif ( strstr( $this->step_working, 'JOB_' ) ) {
903
+ $done = $job_types[ str_replace( 'JOB_', '', $this->step_working ) ]->job_run( $this );
904
+ }
905
+ elseif ( strstr( $this->step_working, 'DEST_SYNC_' ) ) {
906
+ $done = BackWPup::get_destination( str_replace( 'DEST_SYNC_', '', $this->step_working ) )->job_run_sync( $this );
907
+ }
908
+ elseif ( strstr( $this->step_working, 'DEST_' ) ) {
909
+ $done = BackWPup::get_destination( str_replace( 'DEST_', '', $this->step_working ) )->job_run_archive( $this );
910
+ }
911
+ elseif ( ! empty( $this->steps_data[ $this->step_working ][ 'CALLBACK' ] ) ) {
912
+ $done = $this->steps_data[ $this->step_working ][ 'CALLBACK' ]( $this );
913
+ }
914
+
915
+ // set step as done
916
+ if ( $done === TRUE ) {
917
+ $this->temp = array();
918
+ $this->steps_done[] = $this->step_working;
919
+ $this->substeps_done = 0;
920
+ $this->substeps_todo = 0;
921
+ $this->write_running_file();
922
+ }
923
+ if ( count( $this->steps_done ) < count( $this->steps_todo ) -1 ) {
924
+ $this->do_restart();
925
+ }
926
+ if ( $done === TRUE ) {
927
+ break;
928
+ }
929
+ }
930
+ }
931
+ }
932
+
933
+ /**
934
+ * Do a job restart
935
+ *
936
+ * @param bool $must Restart must done
937
+ * @param bool $msg Log restart message
938
+ */
939
+ public function do_restart( $must = FALSE ) {
940
+
941
+ //no restart if in end step
942
+ if ( $this->step_working == 'END' || ( count( $this->steps_done ) + 1 ) >= count( $this->steps_todo ) ) {
943
+ return;
944
+ }
945
+
946
+ //no restart on cli usage
947
+ if ( php_sapi_name() == 'cli' ) {
948
+ return;
949
+ }
950
+
951
+ //no restart if no restart time configured
952
+ $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
953
+ if ( ! $must && empty( $job_max_execution_time ) ) {
954
+ return;
955
+ }
956
+
957
+ //no restart when restart was 3 Seconds before
958
+ $execution_time = microtime( TRUE ) - $this->timestamp_script_start;
959
+ if ( ! $must && $execution_time < 3 ) {
960
+ return;
961
+ }
962
+
963
+ //no restart if no working job
964
+ if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
965
+ return;
966
+ }
967
+
968
+ //print message
969
+ if ( $this->is_debug() ) {
970
+ $this->log( sprintf( __( 'Restart after %1$d seconds.', 'backwpup' ), ceil( $execution_time ) ) );
971
+ }
972
+
973
+ //do things for a clean restart
974
+ $this->pid = 0;
975
+ $this->uniqid = '';
976
+ $this->write_running_file();
977
+ remove_action( 'shutdown', array( $this, 'shutdown' ) );
978
+ //do restart
979
+ wp_clear_scheduled_hook( 'backwpup_cron', array( 'id' => 'restart' ) );
980
+ wp_schedule_single_event( time() + 5, 'backwpup_cron', array( 'id' => 'restart' ) );
981
+ self::get_jobrun_url( 'restart' );
982
+
983
+ exit();
984
+ }
985
+
986
+ /**
987
+ * Do a job restart
988
+ *
989
+ * @param bool $do_restart_now should time restart now be done
990
+ * @return int remaining time
991
+ */
992
+ public function do_restart_time( $do_restart_now = FALSE ) {
993
+
994
+ $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
995
+
996
+ if ( empty( $job_max_execution_time ) ) {
997
+ return 300;
998
+ }
999
+
1000
+ $execution_time = microtime( TRUE ) - $this->timestamp_script_start;
1001
+
1002
+ // do restart 3 sec. before max. execution time
1003
+ if ( $do_restart_now || $execution_time >= ( $job_max_execution_time - 3 ) ) {
1004
+ $this->steps_data[ $this->step_working ][ 'SAVE_STEP_TRY' ] = $this->steps_data[ $this->step_working ][ 'STEP_TRY' ];
1005
+ $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] -= 1;
1006
+ $this->do_restart( TRUE );
1007
+ }
1008
+
1009
+ return $job_max_execution_time - $execution_time;
1010
+
1011
+ }
1012
+
1013
+ /**
1014
+ * Get job restart time
1015
+ *
1016
+ * @return int remaining time
1017
+ */
1018
+ public function get_restart_time() {
1019
+
1020
+ $job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
1021
+
1022
+ if ( empty( $job_max_execution_time ) ) {
1023
+ return 300;
1024
+ }
1025
+
1026
+ $execution_time = microtime( TRUE ) - $this->timestamp_script_start;
1027
+ return $job_max_execution_time - $execution_time - 3;
1028
+ }
1029
+
1030
+ /**
1031
+ *
1032
+ * Get data off a working job
1033
+ *
1034
+ * @return bool|object BackWPup_Job Object or Bool if file not exits
1035
+ */
1036
+ public static function get_working_data() {
1037
+
1038
+ if ( version_compare( PHP_VERSION, '5.3', '>=' ) ) {
1039
+ clearstatcache( TRUE, BackWPup::get_plugin_data( 'running_file' ) );
1040
+ } else {
1041
+ clearstatcache();
1042
+ }
1043
+
1044
+ if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1045
+ return FALSE;
1046
+ }
1047
+
1048
+ $file_data = file_get_contents( BackWPup::get_plugin_data( 'running_file' ), FALSE, NULL, 8 );
1049
+ if ( empty( $file_data ) ) {
1050
+ return FALSE;
1051
+ }
1052
+
1053
+ if ( $job_object = unserialize( $file_data ) ) {
1054
+ if ( $job_object instanceof BackWPup_Job )
1055
+ return $job_object;
1056
+ }
1057
+
1058
+ return FALSE;
1059
+
1060
+ }
1061
+
1062
+ /**
1063
+ *
1064
+ * Reads a BackWPup logfile header and gives back a array of information
1065
+ *
1066
+ * @param string $logfile full logfile path
1067
+ *
1068
+ * @return array|bool
1069
+ */
1070
+ public static function read_logheader( $logfile ) {
1071
+
1072
+ $usedmetas = array(
1073
+ "date" => "logtime",
1074
+ "backwpup_logtime" => "logtime", //old value of date
1075
+ "backwpup_errors" => "errors",
1076
+ "backwpup_warnings" => "warnings",
1077
+ "backwpup_jobid" => "jobid",
1078
+ "backwpup_jobname" => "name",
1079
+ "backwpup_jobtype" => "type",
1080
+ "backwpup_jobruntime" => "runtime",
1081
+ "backwpup_backupfilesize" => "backupfilesize"
1082
+ );
1083
+
1084
+ //get metadata of logfile
1085
+ $metas = array();
1086
+ if ( is_readable( $logfile ) ) {
1087
+ if ( '.gz' == substr( $logfile, -3 ) )
1088
+ $metas = (array)get_meta_tags( 'compress.zlib://' . $logfile );
1089
+ else
1090
+ $metas = (array)get_meta_tags( $logfile );
1091
+ }
1092
+
1093
+ //only output needed data
1094
+ foreach ( $usedmetas as $keyword => $field ) {
1095
+ if ( isset( $metas[ $keyword ] ) ) {
1096
+ $joddata[ $field ] = $metas[ $keyword ];
1097
+ } else {
1098
+ $joddata[ $field ] = '';
1099
+ }
1100
+ }
1101
+
1102
+ //convert date
1103
+ if ( isset( $metas[ 'date' ] ) )
1104
+ $joddata[ 'logtime' ] = strtotime( $metas[ 'date' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
1105
+
1106
+ //use file create date if none
1107
+ if ( empty( $joddata[ 'logtime' ] ) )
1108
+ $joddata[ 'logtime' ] = filectime( $logfile );
1109
+
1110
+ return $joddata;
1111
+ }
1112
+
1113
+
1114
+ /**
1115
+ *
1116
+ * Shutdown function is call if script terminates try to make a restart if needed
1117
+ *
1118
+ * Prepare the job for start
1119
+ *
1120
+ * @internal param int the signal that terminates the job
1121
+ */
1122
+ public function shutdown() {
1123
+
1124
+ $args = func_get_args();
1125
+
1126
+ //Put last error to log if one
1127
+ $lasterror = error_get_last();
1128
+ if ( $lasterror[ 'type' ] == E_ERROR or $lasterror[ 'type' ] == E_PARSE or $lasterror[ 'type' ] == E_CORE_ERROR or $lasterror[ 'type' ] == E_CORE_WARNING or $lasterror[ 'type' ] == E_COMPILE_ERROR or $lasterror[ 'type' ] == E_COMPILE_WARNING ) {
1129
+ $this->log( $lasterror[ 'type' ], $lasterror[ 'message' ], $lasterror[ 'file' ], $lasterror[ 'line' ] );
1130
+ }
1131
+
1132
+ //Put signals to log
1133
+ if ( ! empty( $args[ 0 ] ) ) {
1134
+ $signals = array(
1135
+ 'SIGHUP',
1136
+ 'SIGINT',
1137
+ 'SIGQUIT',
1138
+ 'SIGILL',
1139
+ 'SIGTRAP',
1140
+ 'SIGABRT',
1141
+ 'SIGBUS',
1142
+ 'SIGFPE',
1143
+ 'SIGKILL',
1144
+ 'SIGSEGV',
1145
+ 'SIGPIPE',
1146
+ 'SIGALRM',
1147
+ 'SIGTERM',
1148
+ 'SIGSTKFLT',
1149
+ 'SIGUSR1',
1150
+ 'SIGUSR2',
1151
+ 'SIGCHLD',
1152
+ 'SIGCONT',
1153
+ 'SIGSTOP',
1154
+ 'SIGTSTP',
1155
+ 'SIGTTIN',
1156
+ 'SIGTTOU',
1157
+ 'SIGURG',
1158
+ 'SIGXCPU',
1159
+ 'SIGXFSZ',
1160
+ 'SIGVTALRM',
1161
+ 'SIGPROF',
1162
+ 'SIGWINCH',
1163
+ 'SIGIO',
1164
+ 'SIGPWR',
1165
+ 'SIGSYS'
1166
+ );
1167
+ foreach ( $signals as $signal ) {
1168
+ if ( defined( $signal ) && $args[ 0 ] === constant( $signal ) ) {
1169
+ $this->log( sprintf( __( 'Signal "%s" is sent to script!', 'backwpup' ), $signal ), E_USER_ERROR );
1170
+ break;
1171
+ }
1172
+ }
1173
+ }
1174
+
1175
+ if ( function_exists( 'pcntl_get_last_error' ) ) {
1176
+ $error = pcntl_get_last_error();
1177
+ if ( ! empty( $error ) ) {
1178
+ $error_msg = pcntl_strerror( $error );
1179
+ if ( ! empty( $error_msg ) ) {
1180
+ $error = '(' . $error . ') ' . $error_msg;
1181
+ }
1182
+ }
1183
+ if ( ! empty( $error ) ) {
1184
+ $this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
1185
+ }
1186
+ }
1187
+
1188
+ if ( function_exists( 'posix_get_last_error' ) && empty( $error ) ) {
1189
+ $error = posix_get_last_error();
1190
+ if ( ! empty( $error ) ) {
1191
+ $error_msg = posix_strerror( $error );
1192
+ if ( ! empty( $error_msg ) ) {
1193
+ $error = '(' . $error . ') ' . $error_msg;
1194
+ }
1195
+ }
1196
+ if ( ! empty( $error ) ) {
1197
+ $this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
1198
+ }
1199
+ }
1200
+
1201
+ $this->do_restart( TRUE );
1202
+ }
1203
+
1204
+ /**
1205
+ *
1206
+ * The uncouth exception handler
1207
+ *
1208
+ * @param object $exception
1209
+ */
1210
+ public function exception_handler( $exception ) {
1211
+
1212
+ $this->log( sprintf( __( 'Exception caught in %1$s: %2$s', 'backwpup' ), get_class( $exception ), $exception->getMessage() ), E_USER_ERROR, $exception->getFile(), $exception->getLine() );
1213
+ }
1214
+
1215
+ /**
1216
+ * Write messages to log file
1217
+ *
1218
+ * @param string $message the error message
1219
+ * @param int $type the error number (E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE, ...)
1220
+ * @param string $file the full path of file with error (__FILE__)
1221
+ * @param int $line the line in that is the error (__LINE__)
1222
+ *
1223
+ * @return bool true
1224
+ */
1225
+ public function log( $message, $type = E_USER_NOTICE, $file = '', $line = 0 ) {
1226
+
1227
+ // if error has been suppressed with an @
1228
+ if ( error_reporting() == 0 ) {
1229
+ return TRUE;
1230
+ }
1231
+
1232
+ //if first the type an second the message switch it on user errors
1233
+ if ( ! is_int( $type ) && is_int( $message ) && in_array( $message, array( 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 ) ) ) {
1234
+ $temp = $message;
1235
+ $message = $type;
1236
+ $type = $temp;
1237
+ }
1238
+
1239
+ //json message if array or object
1240
+ if ( is_array( $message ) || is_object( $message ) ) {
1241
+ $message = json_encode( $message );
1242
+ }
1243
+
1244
+ //if not set line and file get it
1245
+ if ( $this->is_debug() ) {
1246
+ if ( empty( $file ) || empty( $line ) ) {
1247
+ $debug_info = debug_backtrace();
1248
+ $file = $debug_info[ 0 ][ 'file' ];
1249
+ $line = $debug_info[ 0 ][ 'line' ];
1250
+ }
1251
+ }
1252
+
1253
+ $error_or_warning = FALSE;
1254
+
1255
+ switch ( $type ) {
1256
+ case E_NOTICE:
1257
+ case E_USER_NOTICE:
1258
+ break;
1259
+ case E_WARNING:
1260
+ case E_CORE_WARNING:
1261
+ case E_COMPILE_WARNING:
1262
+ case E_USER_WARNING:
1263
+ $this->warnings ++;
1264
+ $error_or_warning = TRUE;
1265
+ $message = '%y' . __( 'WARNING:', 'backwpup' ) . ' ' . $message . '%n';
1266
+ break;
1267
+ case E_ERROR:
1268
+ case E_PARSE:
1269
+ case E_CORE_ERROR:
1270
+ case E_COMPILE_ERROR:
1271
+ case E_USER_ERROR:
1272
+ $this->errors ++;
1273
+ $error_or_warning = TRUE;
1274
+ $message = '%r' . __( 'ERROR:', 'backwpup' ) . ' ' . $message . '%n';
1275
+ break;
1276
+ case 8192: //E_DEPRECATED comes with php 5.3
1277
+ case 16384: //E_USER_DEPRECATED comes with php 5.3
1278
+ $message = __( 'DEPRECATED:', 'backwpup' ) . ' ' . $message;
1279
+ break;
1280
+ case E_STRICT:
1281
+ $message = __( 'STRICT NOTICE:', 'backwpup' ) . ' ' . $message;
1282
+ break;
1283
+ case E_RECOVERABLE_ERROR:
1284
+ $this->errors ++;
1285
+ $error_or_warning = TRUE;
1286
+ $message = '%r' . __( 'RECOVERABLE ERROR:', 'backwpup' ) . ' ' . $message . '%n';
1287
+ break;
1288
+ default:
1289
+ $message = $type . ': ' . $message;
1290
+ break;
1291
+ }
1292
+
1293
+ $in_file = $this->get_destination_path_replacement( $file );
1294
+
1295
+ //print message to cli
1296
+ if ( defined( 'WP_CLI' ) && WP_CLI ) {
1297
+ $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), strip_tags( $message ) );
1298
+ if ( !call_user_func( array( '\cli\Shell', 'isPiped' ) ) ) {
1299
+ $output_message = call_user_func( array( '\cli\Colors', 'colorize' ), $output_message, true );
1300
+ } else {
1301
+ $output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
1302
+ }
1303
+ WP_CLI::line( $output_message );
1304
+ } elseif ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
1305
+ $output_message = str_replace( array( '&hellip;', '&#160;' ), array( '...', ' ' ), strip_tags( $message ) ) . PHP_EOL;
1306
+ $output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
1307
+ fwrite( STDOUT, $output_message ) ;
1308
+ }
1309
+
1310
+ //timestamp for log file
1311
+ $debug_info = '';
1312
+ if ( $this->is_debug() ) {
1313
+ $debug_info = ' title="[Type: ' . $type . '|Line: ' . $line . '|File: ' . $in_file . '|Mem: ' . size_format( @memory_get_usage( TRUE ), 2 ) . '|Mem Max: ' . size_format( @memory_get_peak_usage( TRUE ), 2 ) . '|Mem Limit: ' . ini_get( 'memory_limit' ) . '|PID: ' . self::get_pid() . ' | UniqID: ' . $this->uniqid . '|Query\'s: ' . get_num_queries() . ']"';
1314
+ }
1315
+ $timestamp = '<span datetime="' . date( 'c' ) . '" ' . $debug_info . '>[' . date( 'd-M-Y H:i:s', current_time( 'timestamp' ) ) . ']</span> ';
1316
+
1317
+ //set last Message
1318
+ $output_message = esc_attr( $message );
1319
+ $output_message = str_replace( array( '%y', '%r', '%n' ), array( '<span style="background-color:#ffc000;color:#fff">', '<span style="background-color:red;color:#fff">', '</span>' ), $output_message );
1320
+ if ( $error_or_warning ) {
1321
+ $this->lasterrormsg = $output_message;
1322
+ } else {
1323
+ $this->lastmsg = $output_message;
1324
+ }
1325
+ //write log file
1326
+ if ( ! empty( $this->logfile ) ) {
1327
+ if ( ! file_put_contents( $this->logfile, $timestamp . $output_message . '<br />' . PHP_EOL, FILE_APPEND ) ) {
1328
+ $this->logfile = '';
1329
+ restore_error_handler();
1330
+ trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
1331
+ }
1332
+
1333
+ //write new log header
1334
+ if ( $error_or_warning && ! empty( $this->logfile ) ) {
1335
+ if ( $fd = fopen( $this->logfile, 'r+' ) ) {
1336
+ $found = 0;
1337
+ $file_pos = ftell( $fd );
1338
+ while ( ! feof( $fd ) ) {
1339
+ $line = fgets( $fd );
1340
+ if ( stripos( $line, '<meta name="backwpup_errors" content="' ) !== FALSE ) {
1341
+ fseek( $fd, $file_pos );
1342
+ fwrite( $fd, str_pad( '<meta name="backwpup_errors" content="' . $this->errors . '" />', 100 ) . PHP_EOL );
1343
+ $found ++;
1344
+ }
1345
+ if ( stripos( $line, '<meta name="backwpup_warnings" content="' ) !== FALSE ) {
1346
+ fseek( $fd, $file_pos );
1347
+ fwrite( $fd, str_pad( '<meta name="backwpup_warnings" content="' . $this->warnings . '" />', 100 ) . PHP_EOL );
1348
+ $found ++;
1349
+ }
1350
+ if ( $found >= 2 ) {
1351
+ break;
1352
+ }
1353
+ $file_pos = ftell( $fd );
1354
+ }
1355
+ fclose( $fd );
1356
+ }
1357
+ }
1358
+
1359
+ } else {
1360
+ trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
1361
+ }
1362
+
1363
+ //write working data
1364
+ $this->update_working_data( $error_or_warning );
1365
+
1366
+ //true for no more php error handling.
1367
+ return TRUE;
1368
+ }
1369
+
1370
+ /**
1371
+ *
1372
+ * Write the Working data to display the process or that i can executes again
1373
+ * The write will only done every second
1374
+ *
1375
+ * @global wpdb $wpdb
1376
+ */
1377
+ public function update_working_data() {
1378
+ global $wpdb;
1379
+ /* @var wpdb $wpdb */
1380
+
1381
+ //to reduce server load
1382
+ if ( get_site_option( 'backwpup_cfg_jobwaittimems' ) > 0 && get_site_option( 'backwpup_cfg_jobwaittimems') <= 500000 ) {
1383
+ usleep( get_site_option( 'backwpup_cfg_jobwaittimems' ) );
1384
+ }
1385
+
1386
+ //check free memory
1387
+ $this->need_free_memory( '10M' );
1388
+
1389
+ //only run every 1 sec.
1390
+ $time_to_update = microtime( TRUE ) - $this->timestamp_last_update;
1391
+ if ( $time_to_update < 1 ) {
1392
+ return;
1393
+ }
1394
+
1395
+ //FCGI must have a permanent output so that it not broke
1396
+ if ( get_site_option( 'backwpup_cfg_jobdooutput' ) && ! defined( 'STDOUT' ) ) {
1397
+ echo str_repeat( ' ', 12 );
1398
+ flush();
1399
+ }
1400
+
1401
+ //set execution time again for 5 min
1402
+ @set_time_limit( 300 );
1403
+
1404
+ //check MySQL connection to WordPress Database and reconnect if needed
1405
+ $res = $wpdb->query( 'SELECT ' . time() );
1406
+ if ( $res === FALSE ) {
1407
+ $wpdb->db_connect();
1408
+ }
1409
+
1410
+ //calc sub step percent
1411
+ if ( $this->substeps_todo > 0 && $this->substeps_done > 0 ) {
1412
+ $this->substep_percent = round( $this->substeps_done / $this->substeps_todo * 100 );
1413
+ } else {
1414
+ $this->substep_percent = 1;
1415
+ }
1416
+
1417
+ //check if job aborted
1418
+ if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1419
+ if ( $this->step_working != 'END' ) {
1420
+ $this->end();
1421
+ }
1422
+ } else {
1423
+ $this->timestamp_last_update = microtime( TRUE ); //last update of working file
1424
+ $this->write_running_file();
1425
+ }
1426
+ }
1427
+
1428
+ public function write_running_file() {
1429
+
1430
+ $clone = clone $this;
1431
+ $data = '<?php //' . serialize( $clone );
1432
+
1433
+ $write = file_put_contents( BackWPup::get_plugin_data( 'running_file' ), $data );
1434
+ if ( !$write || $write < strlen( $data ) ) {
1435
+ unlink( BackWPup::get_plugin_data( 'running_file' ) );
1436
+ $this->log( __( 'Cannot write progress to working file. Job will be aborted.', 'backwpup' ), E_USER_ERROR );
1437
+ }
1438
+ }
1439
+
1440
+ /**
1441
+ *
1442
+ * Called on job stop makes cleanup and terminates the script
1443
+ *
1444
+ */
1445
+ private function end() {
1446
+
1447
+ $this->step_working = 'END';
1448
+ $this->substeps_todo = 1;
1449
+ $abort = FALSE;
1450
+
1451
+ if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
1452
+ if ( ! $this->user_abort )
1453
+ $abort = TRUE;
1454
+ $this->log( __( 'Aborted by user!', 'backwpup' ), E_USER_ERROR );
1455
+ }
1456
+
1457
+ //delete old logs
1458
+ if ( get_site_option( 'backwpup_cfg_maxlogs' ) ) {
1459
+ $log_file_list = array();
1460
+ $log_folder = trailingslashit( dirname( $this->logfile ) );
1461
+ if ( is_readable( $log_folder ) && $dir = opendir( $log_folder ) ) { //make file list
1462
+ while ( ( $file = readdir( $dir ) ) !== FALSE ) {
1463
+ if ( strpos( $file, 'backwpup_log_' ) == 0 && FALSE !== strpos( $file, '.html' ) )
1464
+ $log_file_list[ filemtime( $log_folder . $file ) ] = $file;
1465
+ }
1466
+ closedir( $dir );
1467
+ }
1468
+ if ( sizeof( $log_file_list ) > 0 ) {
1469
+ krsort( $log_file_list, SORT_NUMERIC );
1470
+ $num_delete_files = 0;
1471
+ $i = -1;
1472
+ foreach ( $log_file_list AS $log_file ) {
1473
+ $i ++;
1474
+ if ( $i < get_site_option( 'backwpup_cfg_maxlogs' ) ) {
1475
+ continue;
1476
+ }
1477
+ unlink( $log_folder . $log_file );
1478
+ $num_delete_files ++;
1479
+ }
1480
+ if ( $num_delete_files > 0 )
1481
+ $this->log( sprintf( _n( 'One old log deleted', '%d old logs deleted', $num_delete_files, 'backwpup' ), $num_delete_files ) );
1482
+ }
1483
+ }
1484
+
1485
+ //Display job working time
1486
+ if ( $this->errors > 0 )
1487
+ $this->log( sprintf( __( 'Job has ended with errors in %s seconds. You must resolve the errors for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_ERROR );
1488
+ elseif ( $this->warnings > 0 )
1489
+ $this->log( sprintf( __( 'Job finished with warnings in %s seconds. Please resolve them for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_WARNING );
1490
+ else
1491
+ $this->log( sprintf( __( 'Job done in %s seconds.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time, E_USER_NOTICE ) );
1492
+
1493
+ //Update job options
1494
+ if ( ! empty( $this->job[ 'jobid' ] ) ) {
1495
+ $this->job[ 'lastruntime' ] = current_time( 'timestamp' ) - $this->start_time;
1496
+ BackWPup_Option::update( $this->job[ 'jobid' ], 'lastruntime', $this->job[ 'lastruntime' ] );
1497
+ }
1498
+
1499
+ //write header info
1500
+ if ( ! empty( $this->logfile ) ) {
1501
+
1502
+ if ( $fd = fopen( $this->logfile, 'r+' ) ) {
1503
+ $filepos = ftell( $fd );
1504
+ $found = 0;
1505
+ while ( ! feof( $fd ) ) {
1506
+ $line = fgets( $fd );
1507
+ if ( stripos( $line, '<meta name="backwpup_jobruntime"' ) !== FALSE ) {
1508
+ fseek( $fd, $filepos );
1509
+ fwrite( $fd, str_pad( '<meta name="backwpup_jobruntime" content="' . $this->job[ 'lastruntime' ] . '" />', 100 ) . PHP_EOL );
1510
+ $found ++;
1511
+ }
1512
+ if ( stripos( $line, '<meta name="backwpup_backupfilesize"' ) !== FALSE ) {
1513
+ fseek( $fd, $filepos );
1514
+ fwrite( $fd, str_pad( '<meta name="backwpup_backupfilesize" content="' . $this->backup_filesize . '" />', 100 ) . PHP_EOL );
1515
+ $found ++;
1516
+ }
1517
+ if ( $found >= 2 ) {
1518
+ break;
1519
+ }
1520
+ $filepos = ftell( $fd );
1521
+ }
1522
+ fclose( $fd );
1523
+ }
1524
+
1525
+ //logfile end
1526
+ file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
1527
+
1528
+ //Send mail with log
1529
+ $sendmail = FALSE;
1530
+ if ( $this->errors > 0 && ! empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
1531
+ $sendmail = TRUE;
1532
+ if ( empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
1533
+ $sendmail = TRUE;
1534
+ if ( $sendmail ) {
1535
+ //special subject
1536
+ $status = __( 'SUCCESSFUL', 'backwpup' );
1537
+ $priority = 3; //Normal
1538
+ if ( $this->warnings > 0 ) {
1539
+ $status = __( 'WARNING', 'backwpup' );
1540
+ $priority = 2; //High
1541
+ }
1542
+ if ( $this->errors > 0 ) {
1543
+ $status = __( 'ERROR', 'backwpup' );
1544
+ $priority = 1; //Highest
1545
+ }
1546
+
1547
+ $subject = sprintf( __( '[%3$s] BackWPup log %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $this->start_time, TRUE ), esc_attr( $this->job[ 'name' ] ), $status );
1548
+ $headers = array();
1549
+ $headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
1550
+ /* $headers[] = 'X-Priority: ' . $priority; */ // Priority not working with header setting
1551
+ if ( ! empty( $this->job[ 'mailaddresssenderlog' ] ) ) {
1552
+ if ( FALSE === $start_mail = strpos( $this->job[ 'mailaddresssenderlog' ], '<' ) ) {
1553
+ if ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '@' ) ) {
1554
+ $this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', $this->job[ 'mailaddresssenderlog' ] ) . '" <' . get_bloginfo( 'admin_email' ). '>';
1555
+ }
1556
+ }
1557
+ elseif ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '>', $start_mail ) ) {
1558
+ $this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', substr( $this->job[ 'mailaddresssenderlog' ], 0, $start_mail ) ) . '" <' . get_bloginfo( 'admin_email' ). '>';
1559
+ }
1560
+
1561
+ $headers[] = 'From: ' . $this->job[ 'mailaddresssenderlog' ];
1562
+ }
1563
+
1564
+ wp_mail( $this->job[ 'mailaddresslog' ], $subject, file_get_contents( $this->logfile ), $headers );
1565
+ }
1566
+ }
1567
+
1568
+ //set done
1569
+ $this->substeps_done = 1;
1570
+ $this->steps_done[ ] = 'END';
1571
+
1572
+ //clean up temp
1573
+ self::clean_temp_folder();
1574
+
1575
+ //remove shutdown action
1576
+ remove_action( 'shutdown', array( $this, 'shutdown' ) );
1577
+ restore_exception_handler();
1578
+ restore_error_handler();
1579
+ if ( ! empty( $this->run[ 'PHP' ] ) ) {
1580
+ @ini_set( 'log_errors', $this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] );
1581
+ @ini_set( 'error_log', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] );
1582
+ @ini_set( 'display_errors', $this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] );
1583
+ @ini_set( 'html_errors', $this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] );
1584
+ @ini_set( 'zlib.output_compression', $this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] );
1585
+ @ini_set( 'implicit_flush', $this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] );
1586
+ @ini_set( 'error_reporting', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ] );
1587
+ @ini_set( 'report_memleaks', $this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ] );
1588
+ if ( !empty( $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] ) ) {
1589
+ @putenv('TMPDIR=' . $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] );
1590
+ }
1591
+ }
1592
+
1593
+ BackWPup_Cron::check_cleanup();
1594
+
1595
+ if ( $abort )
1596
+ exit();
1597
+ }
1598
+
1599
+
1600
+ public static function user_abort() {
1601
+
1602
+ /* @var $job_object BackWPup_Job */
1603
+ $job_object = BackWPup_Job::get_working_data();
1604
+
1605
+ unlink( BackWPup::get_plugin_data( 'running_file' ) );
1606
+
1607
+ //if job not working currently abort it this way for message
1608
+ $not_worked_time = microtime( TRUE ) - $job_object->timestamp_last_update;
1609
+ $restart_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
1610
+ if ( empty( $restart_time ) )
1611
+ $restart_time = 60;
1612
+ if ( empty( $job_object->pid ) || $not_worked_time > $restart_time ) {
1613
+ $job_object->user_abort = TRUE;
1614
+ $job_object->update_working_data();
1615
+ }
1616
+
1617
+ }
1618
+
1619
+ /**
1620
+ *
1621
+ * Increase automatically the memory that is needed
1622
+ *
1623
+ * @param int|string $memneed of the needed memory
1624
+ */
1625
+ public function need_free_memory( $memneed ) {
1626
+
1627
+ //need memory
1628
+ $needmemory = @memory_get_usage( TRUE ) + self::convert_hr_to_bytes( $memneed );
1629
+ // increase Memory
1630
+ if ( $needmemory > self::convert_hr_to_bytes( ini_get( 'memory_limit' ) ) ) {
1631
+ $newmemory = round( $needmemory / 1024 / 1024 ) + 1 . 'M';
1632
+ if ( $needmemory >= 1073741824 )
1633
+ $newmemory = round( $needmemory / 1024 / 1024 / 1024 ) . 'G';
1634
+ @ini_set( 'memory_limit', $newmemory );
1635
+ }
1636
+ }
1637
+
1638
+
1639
+ /**
1640
+ *
1641
+ * Converts hr to bytes
1642
+ *
1643
+ * @param $size
1644
+ * @return int
1645
+ */
1646
+ public static function convert_hr_to_bytes( $size ) {
1647
+ $size = strtolower( $size );
1648
+ $bytes = (int) $size;
1649
+ if ( strpos( $size, 'k' ) !== FALSE )
1650
+ $bytes = intval( $size ) * 1024;
1651
+ elseif ( strpos( $size, 'm' ) !== FALSE )
1652
+ $bytes = intval($size) * 1024 * 1024;
1653
+ elseif ( strpos( $size, 'g' ) !== FALSE )
1654
+ $bytes = intval( $size ) * 1024 * 1024 * 1024;
1655
+ return $bytes;
1656
+ }
1657
+
1658
+ /**
1659
+ *
1660
+ * Callback for the CURLOPT_READFUNCTION that submit the transferred bytes
1661
+ * to build the process bar
1662
+ *
1663
+ * @param $curl_handle
1664
+ * @param $file_handle
1665
+ * @param $read_count
1666
+ * @return string
1667
+ * @internal param $out
1668
+ */
1669
+ public function curl_read_callback( $curl_handle, $file_handle, $read_count ) {
1670
+
1671
+ $data = NULL;
1672
+ if ( ! empty( $file_handle ) && is_numeric( $read_count ) )
1673
+ $data = fread( $file_handle, $read_count );
1674
+
1675
+ if ( $this->job[ 'backuptype' ] == 'sync' )
1676
+ return $data;
1677
+
1678
+ $length = ( is_numeric( $read_count ) ) ? $read_count : strlen( $read_count );
1679
+ $this->substeps_done = $this->substeps_done + $length;
1680
+ $this->update_working_data();
1681
+
1682
+ return $data;
1683
+ }
1684
+
1685
+
1686
+ /**
1687
+ *
1688
+ * Get the mime type of a file
1689
+ *
1690
+ * @param string $file The full file name
1691
+ *
1692
+ * @return bool|string the mime type or false
1693
+ */
1694
+ public static function get_mime_type( $file ) {
1695
+
1696
+ if ( is_dir( $file ) || is_link( $file ) ) {
1697
+ return 'application/octet-stream';
1698
+ }
1699
+
1700
+ $mime_types = array(
1701
+ 'zip' => 'application/zip',
1702
+ 'gz' => 'application/gzip',
1703
+ 'bz2' => 'application/x-bzip',
1704
+ 'tar' => 'application/x-tar',
1705
+ '3gp' => 'video/3gpp',
1706
+ 'ai' => 'application/postscript',
1707
+ 'aif' => 'audio/x-aiff',
1708
+ 'aifc' => 'audio/x-aiff',
1709
+ 'aiff' => 'audio/x-aiff',
1710
+ 'asc' => 'text/plain',
1711
+ 'atom' => 'application/atom+xml',
1712
+ 'au' => 'audio/basic',
1713
+ 'avi' => 'video/x-msvideo',
1714
+ 'bcpio' => 'application/x-bcpio',
1715
+ 'bin' => 'application/octet-stream',
1716
+ 'bmp' => 'image/bmp',
1717
+ 'cdf' => 'application/x-netcdf',
1718
+ 'cgm' => 'image/cgm',
1719
+ 'class' => 'application/octet-stream',
1720
+ 'cpio' => 'application/x-cpio',
1721
+ 'cpt' => 'application/mac-compactpro',
1722
+ 'csh' => 'application/x-csh',
1723
+ 'css' => 'text/css',
1724
+ 'dcr' => 'application/x-director',
1725
+ 'dif' => 'video/x-dv',
1726
+ 'dir' => 'application/x-director',
1727
+ 'djv' => 'image/vnd.djvu',
1728
+ 'djvu' => 'image/vnd.djvu',
1729
+ 'dll' => 'application/octet-stream',
1730
+ 'dmg' => 'application/octet-stream',
1731
+ 'dms' => 'application/octet-stream',
1732
+ 'doc' => 'application/msword',
1733
+ 'dtd' => 'application/xml-dtd',
1734
+ 'dv' => 'video/x-dv',
1735
+ 'dvi' => 'application/x-dvi',
1736
+ 'dxr' => 'application/x-director',
1737
+ 'eps' => 'application/postscript',
1738
+ 'etx' => 'text/x-setext',
1739
+ 'exe' => 'application/octet-stream',
1740
+ 'ez' => 'application/andrew-inset',
1741
+ 'flv' => 'video/x-flv',
1742
+ 'gif' => 'image/gif',
1743
+ 'gram' => 'application/srgs',
1744
+ 'grxml' => 'application/srgs+xml',
1745
+ 'gtar' => 'application/x-gtar',
1746
+ 'hdf' => 'application/x-hdf',
1747
+ 'hqx' => 'application/mac-binhex40',
1748
+ 'htm' => 'text/html',
1749
+ 'html' => 'text/html',
1750
+ 'ice' => 'x-conference/x-cooltalk',
1751
+ 'ico' => 'image/x-icon',
1752
+ 'ics' => 'text/calendar',
1753
+ 'ief' => 'image/ief',
1754
+ 'ifb' => 'text/calendar',
1755
+ 'iges' => 'model/iges',
1756
+ 'igs' => 'model/iges',
1757
+ 'jnlp' => 'application/x-java-jnlp-file',
1758
+ 'jp2' => 'image/jp2',
1759
+ 'jpe' => 'image/jpeg',
1760
+ 'jpeg' => 'image/jpeg',
1761
+ 'jpg' => 'image/jpeg',
1762
+ 'js' => 'application/x-javascript',
1763
+ 'kar' => 'audio/midi',
1764
+ 'latex' => 'application/x-latex',
1765
+ 'lha' => 'application/octet-stream',
1766
+ 'lzh' => 'application/octet-stream',
1767
+ 'm3u' => 'audio/x-mpegurl',
1768
+ 'm4a' => 'audio/mp4a-latm',
1769
+ 'm4p' => 'audio/mp4a-latm',
1770
+ 'm4u' => 'video/vnd.mpegurl',
1771
+ 'm4v' => 'video/x-m4v',
1772
+ 'mac' => 'image/x-macpaint',
1773
+ 'man' => 'application/x-troff-man',
1774
+ 'mathml' => 'application/mathml+xml',
1775
+ 'me' => 'application/x-troff-me',
1776
+ 'mesh' => 'model/mesh',
1777
+ 'mid' => 'audio/midi',
1778
+ 'midi' => 'audio/midi',
1779
+ 'mif' => 'application/vnd.mif',
1780
+ 'mov' => 'video/quicktime',
1781
+ 'movie' => 'video/x-sgi-movie',
1782
+ 'mp2' => 'audio/mpeg',
1783
+ 'mp3' => 'audio/mpeg',
1784
+ 'mp4' => 'video/mp4',
1785
+ 'mpe' => 'video/mpeg',
1786
+ 'mpeg' => 'video/mpeg',
1787
+ 'mpg' => 'video/mpeg',
1788
+ 'mpga' => 'audio/mpeg',
1789
+ 'ms' => 'application/x-troff-ms',
1790
+ 'msh' => 'model/mesh',
1791
+ 'mxu' => 'video/vnd.mpegurl',
1792
+ 'nc' => 'application/x-netcdf',
1793
+ 'oda' => 'application/oda',
1794
+ 'ogg' => 'application/ogg',
1795
+ 'ogv' => 'video/ogv',
1796
+ 'pbm' => 'image/x-portable-bitmap',
1797
+ 'pct' => 'image/pict',
1798
+ 'pdb' => 'chemical/x-pdb',
1799
+ 'pdf' => 'application/pdf',
1800
+ 'pgm' => 'image/x-portable-graymap',
1801
+ 'pgn' => 'application/x-chess-pgn',
1802
+ 'pic' => 'image/pict',
1803
+ 'pict' => 'image/pict',
1804
+ 'png' => 'image/png',
1805
+ 'pnm' => 'image/x-portable-anymap',
1806
+ 'pnt' => 'image/x-macpaint',
1807
+ 'pntg' => 'image/x-macpaint',
1808
+ 'ppm' => 'image/x-portable-pixmap',
1809
+ 'ppt' => 'application/vnd.ms-powerpoint',
1810
+ 'ps' => 'application/postscript',
1811
+ 'qt' => 'video/quicktime',
1812
+ 'qti' => 'image/x-quicktime',
1813
+ 'qtif' => 'image/x-quicktime',
1814
+ 'ra' => 'audio/x-pn-realaudio',
1815
+ 'ram' => 'audio/x-pn-realaudio',
1816
+ 'ras' => 'image/x-cmu-raster',
1817
+ 'rdf' => 'application/rdf+xml',
1818
+ 'rgb' => 'image/x-rgb',
1819
+ 'rm' => 'application/vnd.rn-realmedia',
1820
+ 'roff' => 'application/x-troff',
1821
+ 'rtf' => 'text/rtf',
1822
+ 'rtx' => 'text/richtext',
1823
+ 'sgm' => 'text/sgml',
1824
+ 'sgml' => 'text/sgml',
1825
+ 'sh' => 'application/x-sh',
1826
+ 'shar' => 'application/x-shar',
1827
+ 'silo' => 'model/mesh',
1828
+ 'sit' => 'application/x-stuffit',
1829
+ 'skd' => 'application/x-koan',
1830
+ 'skm' => 'application/x-koan',
1831
+ 'skp' => 'application/x-koan',
1832
+ 'skt' => 'application/x-koan',
1833
+ 'smi' => 'application/smil',
1834
+ 'smil' => 'application/smil',
1835
+ 'snd' => 'audio/basic',
1836
+ 'so' => 'application/octet-stream',
1837
+ 'spl' => 'application/x-futuresplash',
1838
+ 'src' => 'application/x-wais-source',
1839
+ 'sv4cpio' => 'application/x-sv4cpio',
1840
+ 'sv4crc' => 'application/x-sv4crc',
1841
+ 'svg' => 'image/svg+xml',
1842
+ 'swf' => 'application/x-shockwave-flash',
1843
+ 't' => 'application/x-troff',
1844
+ 'tcl' => 'application/x-tcl',
1845
+ 'tex' => 'application/x-tex',
1846
+ 'texi' => 'application/x-texinfo',
1847
+ 'texinfo' => 'application/x-texinfo',
1848
+ 'tif' => 'image/tiff',
1849
+ 'tiff' => 'image/tiff',
1850
+ 'tr' => 'application/x-troff',
1851
+ 'tsv' => 'text/tab-separated-values',
1852
+ 'txt' => 'text/plain',
1853
+ 'ustar' => 'application/x-ustar',
1854
+ 'vcd' => 'application/x-cdlink',
1855
+ 'vrml' => 'model/vrml',
1856
+ 'vxml' => 'application/voicexml+xml',
1857
+ 'wav' => 'audio/x-wav',
1858
+ 'wbmp' => 'image/vnd.wap.wbmp',
1859
+ 'wbxml' => 'application/vnd.wap.wbxml',
1860
+ 'webm' => 'video/webm',
1861
+ 'wml' => 'text/vnd.wap.wml',
1862
+ 'wmlc' => 'application/vnd.wap.wmlc',
1863
+ 'wmls' => 'text/vnd.wap.wmlscript',
1864
+ 'wmlsc' => 'application/vnd.wap.wmlscriptc',
1865
+ 'wmv' => 'video/x-ms-wmv',
1866
+ 'wrl' => 'model/vrml',
1867
+ 'xbm' => 'image/x-xbitmap',
1868
+ 'xht' => 'application/xhtml+xml',
1869
+ 'xhtml' => 'application/xhtml+xml',
1870
+ 'xls' => 'application/vnd.ms-excel',
1871
+ 'xml' => 'application/xml',
1872
+ 'xpm' => 'image/x-xpixmap',
1873
+ 'xsl' => 'application/xml',
1874
+ 'xslt' => 'application/xslt+xml',
1875
+ 'xul' => 'application/vnd.mozilla.xul+xml',
1876
+ 'xwd' => 'image/x-xwindowdump',
1877
+ 'xyz' => 'chemical/x-xyz',
1878
+ );
1879
+
1880
+ $filesuffix = pathinfo( $file, PATHINFO_EXTENSION );
1881
+ $suffix = strtolower( $filesuffix );
1882
+ if ( isset( $mime_types[ $suffix ] ) ) {
1883
+ return $mime_types[ $suffix ];
1884
+ }
1885
+
1886
+ if ( ! is_readable( $file ) ) {
1887
+ return 'application/octet-stream';
1888
+ }
1889
+
1890
+ if ( function_exists( 'fileinfo' ) ) {
1891
+ $finfo = finfo_open( FILEINFO_MIME_TYPE );
1892
+ $mime = finfo_file( $finfo, $file );
1893
+ }
1894
+
1895
+ if ( empty( $mime ) && function_exists( 'mime_content_type' ) ) {
1896
+ $mime = mime_content_type( $file );
1897
+ }
1898
+
1899
+ if ( ! empty( $mime ) ) {
1900
+ return $mime;
1901
+ }
1902
+
1903
+ return 'application/octet-stream';
1904
+ }
1905
+
1906
+
1907
+ /**
1908
+ *
1909
+ * Gifs back a array of files to backup in the selected folder
1910
+ *
1911
+ * @param string $folder the folder to get the files from
1912
+ *
1913
+ * @return array files to backup
1914
+ */
1915
+ public function get_files_in_folder( $folder ) {
1916
+
1917
+ $files = array();
1918
+ $folder = trailingslashit( $folder );
1919
+
1920
+ if ( ! is_dir( $folder ) ) {
1921
+ $this->log( sprintf( _x( 'Folder %s not exists', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
1922
+ return $files;
1923
+ }
1924
+
1925
+ if ( ! is_readable( $folder ) ) {
1926
+ $this->log( sprintf( _x( 'Folder %s not readable', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
1927
+ return $files;
1928
+ }
1929
+
1930
+ if ( $dir = opendir( $folder ) ) {
1931
+ while ( FALSE !== ( $file = readdir( $dir ) ) ) {
1932
+ if ( in_array( $file, array( '.', '..' ) ) || is_dir( $folder . $file ) ) {
1933
+ continue;
1934
+ }
1935
+ foreach ( $this->exclude_from_backup as $exclusion ) { //exclude files
1936
+ $exclusion = trim( $exclusion );
1937
+ if ( FALSE !== stripos( $folder . $file, trim( $exclusion ) ) && ! empty( $exclusion ) ) {
1938
+ continue 2;
1939
+ }
1940
+ }
1941
+ if ( $this->job[ 'backupexcludethumbs' ] && strpos( $folder, BackWPup_File::get_upload_dir() ) !== FALSE && preg_match( "/\-[0-9]{1,4}x[0-9]{1,4}.+\.(jpg|png|gif)$/i", $file ) ) {
1942
+ continue;
1943
+ }
1944
+ if ( is_link( $folder . $file ) ) {
1945
+ $this->log( sprintf( __( 'Link "%s" not following.', 'backwpup' ), $folder . $file ), E_USER_WARNING );
1946
+ } elseif ( ! is_readable( $folder . $file ) ) {
1947
+ $this->log( sprintf( __( 'File "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
1948
+ } else {
1949
+ $file_size = filesize( $folder . $file );
1950
+ if ( ! is_int( $file_size ) || $file_size < 0 || $file_size > 2147483647 ) {
1951
+ $this->log( sprintf( __( 'File size of “%s” cannot be retrieved. File might be too large and will not be added to queue.', 'backwpup' ), $folder . $file . ' ' . $file_size ), E_USER_WARNING );
1952
+ continue;
1953
+ }
1954
+ $files[] = $folder . $file;
1955
+ }
1956
+ }
1957
+ closedir( $dir );
1958
+ }
1959
+
1960
+ return $files;
1961
+ }
1962
+
1963
+ /**
1964
+ * create manifest file
1965
+ * @return bool
1966
+ */
1967
+ public function create_manifest( ) {
1968
+
1969
+ $this->substeps_todo = 3;
1970
+
1971
+ $this->log( sprintf( __( '%d. Trying to generate a manifest file&#160;&hellip;', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ) );
1972
+
1973
+ //build manifest
1974
+ $manifest = array();
1975
+ // add blog information
1976
+ $manifest[ 'blog_info' ][ 'url' ] = home_url();
1977
+ $manifest[ 'blog_info' ][ 'wpurl' ] = site_url();
1978
+ $manifest[ 'blog_info' ][ 'prefix' ] = $GLOBALS[ 'wpdb' ]->prefix;
1979
+ $manifest[ 'blog_info' ][ 'description' ] = get_option('blogdescription');
1980
+ $manifest[ 'blog_info' ][ 'stylesheet_directory' ] = get_template_directory_uri();
1981
+ $manifest[ 'blog_info' ][ 'activate_plugins' ] = wp_get_active_and_valid_plugins();
1982
+ $manifest[ 'blog_info' ][ 'activate_theme' ] = wp_get_theme()->get('Name');
1983
+ $manifest[ 'blog_info' ][ 'admin_email' ] = get_option('admin_email');
1984
+ $manifest[ 'blog_info' ][ 'charset' ] = get_bloginfo( 'charset' );
1985
+ $manifest[ 'blog_info' ][ 'version' ] = BackWPup::get_plugin_data( 'wp_version' );
1986
+ $manifest[ 'blog_info' ][ 'backwpup_version' ] = BackWPup::get_plugin_data( 'version' );
1987
+ $manifest[ 'blog_info' ][ 'language' ] = get_bloginfo( 'language' );
1988
+ $manifest[ 'blog_info' ][ 'name' ] = get_bloginfo( 'name' );
1989
+ $manifest[ 'blog_info' ][ 'abspath' ] = ABSPATH;
1990
+ $manifest[ 'blog_info' ][ 'uploads' ] = wp_upload_dir();
1991
+ $manifest[ 'blog_info' ][ 'contents' ][ 'basedir' ] = WP_CONTENT_DIR;
1992
+ $manifest[ 'blog_info' ][ 'contents' ][ 'baseurl' ] = WP_CONTENT_URL;
1993
+ $manifest[ 'blog_info' ][ 'plugins' ][ 'basedir' ] = WP_PLUGIN_DIR;
1994
+ $manifest[ 'blog_info' ][ 'plugins' ][ 'baseurl' ] = WP_PLUGIN_URL;
1995
+ $manifest[ 'blog_info' ][ 'themes' ][ 'basedir' ] = get_theme_root();
1996
+ $manifest[ 'blog_info' ][ 'themes' ][ 'baseurl' ] = get_theme_root_uri();
1997
+ // add job settings
1998
+ $manifest[ 'job_settings' ] = $this->job;
1999
+ // add archive info
2000
+ foreach( $this->additional_files_to_backup as $file ) {
2001
+ $manifest[ 'archive' ][ 'extra_files' ][] = basename( $file );
2002
+ }
2003
+ if ( isset( $this->steps_data[ 'JOB_FILE' ] ) ) {
2004
+ if ( $this->job[ 'backuproot'] )
2005
+ $manifest[ 'archive' ][ 'abspath' ] = trailingslashit( $this->get_destination_path_replacement( ABSPATH ) );
2006
+ if ( $this->job[ 'backupuploads'] )
2007
+ $manifest[ 'archive' ][ 'uploads' ] = trailingslashit( $this->get_destination_path_replacement( BackWPup_File::get_upload_dir() ) );
2008
+ if ( $this->job[ 'backupcontent'] )
2009
+ $manifest[ 'archive' ][ 'contents' ] = trailingslashit( $this->get_destination_path_replacement( WP_CONTENT_DIR ) );
2010
+ if ( $this->job[ 'backupplugins'])
2011
+ $manifest[ 'archive' ][ 'plugins' ] = trailingslashit( $this->get_destination_path_replacement( WP_PLUGIN_DIR ) );
2012
+ if ( $this->job[ 'backupthemes'] )
2013
+ $manifest[ 'archive' ][ 'themes' ] = trailingslashit( $this->get_destination_path_replacement( get_theme_root() ) );
2014
+ }
2015
+
2016
+ if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json', json_encode( $manifest ) ) )
2017
+ return FALSE;
2018
+ $this->substeps_done = 1;
2019
+
2020
+ //Create backwpup_readme.txt
2021
+ $readme_text = __( 'You may have noticed the manifest.json file in this archive.', 'backwpup' ) . PHP_EOL;
2022
+ $readme_text .= __( 'manifest.json might be needed for later restoring a backup from this archive.', 'backwpup' ) . PHP_EOL;
2023
+ $readme_text .= __( 'Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored.', 'backwpup' ) . PHP_EOL;
2024
+ if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt', $readme_text ) ) {
2025
+ return FALSE;
2026
+ }
2027
+ $this->substeps_done = 2;
2028
+
2029
+ //add file to backup files
2030
+ if ( is_readable( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ) ) {
2031
+ $this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json';
2032
+ $this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt';
2033
+ $this->log( sprintf( __( 'Added manifest.json file with %1$s to backup file list.', 'backwpup' ), size_format( filesize( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ), 2 ) ) );
2034
+ }
2035
+ $this->substeps_done = 3;
2036
+
2037
+ return TRUE;
2038
+ }
2039
+
2040
+ /**
2041
+ * Creates the backup archive
2042
+ */
2043
+ private function create_archive() {
2044
+
2045
+ //load folders to backup
2046
+ $folders_to_backup = $this->get_folders_to_backup();
2047
+
2048
+ $this->substeps_todo = $this->count_folder + 1;
2049
+
2050
+ //initial settings for restarts in archiving
2051
+ if ( ! isset( $this->steps_data[ $this->step_working ]['on_file'] ) ) {
2052
+ $this->steps_data[ $this->step_working ]['on_file'] = '';
2053
+ }
2054
+ if ( ! isset( $this->steps_data[ $this->step_working ]['on_folder'] ) ) {
2055
+ $this->steps_data[ $this->step_working ]['on_folder'] = '';
2056
+ }
2057
+
2058
+ if ( $this->steps_data[ $this->step_working ][ 'on_folder' ] == '' && $this->steps_data[ $this->step_working ][ 'on_file' ] == '' && is_file( $this->backup_folder . $this->backup_file ) ) {
2059
+ unlink( $this->backup_folder . $this->backup_file );
2060
+ }
2061
+
2062
+ if ( $this->steps_data[ $this->step_working ]['SAVE_STEP_TRY'] != $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] )
2063
+ $this->log( sprintf( __( '%d. Trying to create backup archive &hellip;', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ), E_USER_NOTICE );
2064
+
2065
+ try {
2066
+ $backup_archive = new BackWPup_Create_Archive( $this->backup_folder . $this->backup_file );
2067
+
2068
+ //show method for creation
2069
+ if ( $this->substeps_done == 0 ) {
2070
+ $this->log( sprintf( _x( 'Compressing files as %s. Please be patient, this may take a moment.', 'Archive compression method', 'backwpup'), $backup_archive->get_method() ) );
2071
+ }
2072
+
2073
+ //add extra files
2074
+ if ( $this->substeps_done == 0 ) {
2075
+ if ( ! empty( $this->additional_files_to_backup ) && $this->substeps_done == 0 ) {
2076
+ if ( $this->is_debug() ) {
2077
+ $this->log( __( 'Adding Extra files to Archive', 'backwpup' ) );
2078
+ }
2079
+ foreach ( $this->additional_files_to_backup as $file ) {
2080
+ if ( $backup_archive->add_file( $file, basename( $file ) ) ) {;
2081
+ $this->count_files ++;
2082
+ $this->count_files_size = $this->count_files_size + filesize( $file );
2083
+ $this->update_working_data();
2084
+ } else {
2085
+ $backup_archive->close();
2086
+ $this->steps_data[ $this->step_working ][ 'on_file' ] = '';
2087
+ $this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
2088
+ $this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
2089
+ return FALSE;
2090
+ }
2091
+ }
2092
+ }
2093
+ $this->substeps_done ++;
2094
+ }
2095
+
2096
+ //add normal files
2097
+ while ( $folder = array_shift( $folders_to_backup ) ) {
2098
+ //jump over already done folders
2099
+ if ( in_array( $this->steps_data[ $this->step_working ]['on_folder'], $folders_to_backup ) ) {
2100
+ continue;
2101
+ }
2102
+ if ( $this->is_debug() ) {
2103
+ $this->log( sprintf( __( 'Archiving Folder: %s', 'backwpup' ), $folder ) );
2104
+ }
2105
+ $this->steps_data[ $this->step_working ]['on_folder'] = $folder;
2106
+ $files_in_folder = $this->get_files_in_folder( $folder );
2107
+ //add empty folders
2108
+ if ( empty( $files_in_folder ) ) {
2109
+ $folder_name_in_archive = trim( ltrim( $this->get_destination_path_replacement( $folder ), '/' ) );
2110
+ if ( ! empty ( $folder_name_in_archive ) ) {
2111
+ $backup_archive->add_empty_folder( $folder, $folder_name_in_archive );
2112
+ }
2113
+ continue;
2114
+ }
2115
+ //add files
2116
+ while ( $file = array_shift( $files_in_folder ) ) {
2117
+ //jump over already done files
2118
+ if ( in_array( $this->steps_data[ $this->step_working ]['on_file'], $files_in_folder ) ) {
2119
+ continue;
2120
+ }
2121
+ $this->steps_data[ $this->step_working ]['on_file'] = $file;
2122
+ //restart if needed
2123
+ $restart_time = $this->get_restart_time();
2124
+ if ( $restart_time <= 0 ) {
2125
+ unset( $backup_archive );
2126
+ $this->do_restart_time( TRUE );
2127
+ return FALSE;
2128
+ }
2129
+ //generate filename in archive
2130
+ $in_archive_filename = ltrim( $this->get_destination_path_replacement( $file ), '/' );
2131
+ //add file to archive
2132
+ if ( $backup_archive->add_file( $file, $in_archive_filename ) ) {
2133
+ $this->count_files ++;
2134
+ $this->count_files_size = $this->count_files_size + filesize( $file );
2135
+ $this->update_working_data();
2136
+ } else {
2137
+ $backup_archive->close();
2138
+ unset( $backup_archive );
2139
+ $this->steps_data[ $this->step_working ][ 'on_file' ] = '';
2140
+ $this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
2141
+ $this->substeps_done = 0;
2142
+ $this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
2143
+ if ( $this->backup_filesize === FALSE ) {
2144
+ $this->backup_filesize = PHP_INT_MAX;
2145
+ }
2146
+ $this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
2147
+ return FALSE;
2148
+ }
2149
+ }
2150
+ $this->steps_data[ $this->step_working ]['on_file'] = '';
2151
+ $this->substeps_done ++;
2152
+ }
2153
+ $backup_archive->close();
2154
+ unset( $backup_archive );
2155
+ $this->log( __( 'Backup archive created.', 'backwpup' ), E_USER_NOTICE );
2156
+ } catch ( Exception $e ) {
2157
+ $this->log( $e->getMessage(), E_USER_ERROR, $e->getFile(), $e->getLine() );
2158
+ unset( $backup_archive );
2159
+ return FALSE;
2160
+ }
2161
+
2162
+ $this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
2163
+ if ( $this->backup_filesize === FALSE ) {
2164
+ $this->backup_filesize = PHP_INT_MAX;
2165
+ }
2166
+
2167
+ if ( $this->backup_filesize >= PHP_INT_MAX ) {
2168
+ $this->log( __( 'The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each.', 'backwpup' ), E_USER_ERROR );
2169
+ $this->end();
2170
+ }
2171
+ else {
2172
+ $this->log( sprintf( __( 'Archive size is %s.', 'backwpup' ), size_format( $this->backup_filesize, 2 ) ), E_USER_NOTICE );
2173
+ }
2174
+
2175
+ $this->log( sprintf( __( '%1$d Files with %2$s in Archive.', 'backwpup' ), $this->count_files, size_format( $this->count_files_size, 2 ) ), E_USER_NOTICE );
2176
+
2177
+ return TRUE;
2178
+ }
2179
+
2180
+ /**
2181
+ * @param $name
2182
+ * @param string $suffix
2183
+ * @param bool $delete_temp_file
2184
+ * @return string
2185
+ */
2186
+ public function generate_filename( $name, $suffix = '', $delete_temp_file = TRUE ) {
2187
+
2188
+ $local_time = current_time( 'timestamp' );
2189
+
2190
+ $datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
2191
+ $datevalues = array( date( 'd', $local_time ), date( 'j', $local_time ), date( 'm', $local_time ), date( 'n', $local_time ), date( 'Y', $local_time ), date( 'y', $local_time ), date( 'a', $local_time ), date( 'A', $local_time ), date( 'B', $local_time ), date( 'g', $local_time ), date( 'G', $local_time ), date( 'h', $local_time ), date( 'H', $local_time ), date( 'i', $local_time ), date( 's', $local_time ) );
2192
+
2193
+ if ( ! empty( $suffix ) && substr( $suffix, 0, 1 ) != '.' ) {
2194
+ $suffix = '.' . $suffix;
2195
+ }
2196
+
2197
+ $name = str_replace( $datevars, $datevalues, self::sanitize_file_name( $name ) );
2198
+ $name .= $suffix;
2199
+ if ( $delete_temp_file && is_writeable( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_dir( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_link( BackWPup::get_plugin_data( 'TEMP' ) . $name ) ) {
2200
+ unlink( BackWPup::get_plugin_data( 'TEMP' ) . $name );
2201
+ }
2202
+
2203
+ return $name;
2204
+ }
2205
+
2206
+ /**
2207
+ * @param $filename
2208
+ * @return bool
2209
+ */
2210
+ public function is_backup_archive( $filename ) {
2211
+
2212
+ $filename = basename( $filename );
2213
+
2214
+ if ( ! substr( $filename, -3 ) == '.gz' || ! substr( $filename, -4 ) == '.bz2' || ! substr( $filename, -4 ) == '.tar' || ! substr( $filename, -4 ) == '.zip' )
2215
+ return FALSE;
2216
+
2217
+ $filename = str_replace( array( '.gz', '.bz2', '.tar', '.zip' ), '', $filename );
2218
+
2219
+ $datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
2220
+ $dateregex = array( '(0[1-9]|[12][0-9]|3[01])', '([1-9]|[12][0-9]|3[01])', '(0[1-9]|1[012])', '([1-9]|1[012])', '((19|20|21)[0-9]{2})', '([0-9]{2})', '(am|pm)', '(AM|PM)', '([0-9]{3})', '([1-9]|1[012])', '([0-9]|1[0-9]|2[0-3])', '(0[1-9]|1[012])', '(0[0-9]|1[0-9]|2[0-3])', '([0-5][0-9])', '([0-5][0-9])' );
2221
+
2222
+ $regex = "/^" . str_replace( $datevars, $dateregex, self::sanitize_file_name( $this->job[ 'archivename' ] ) ) . "$/";
2223
+
2224
+ preg_match( $regex, $filename, $matches );
2225
+ if ( ! empty( $matches[ 0 ] ) && $matches[ 0 ] == $filename )
2226
+ return TRUE;
2227
+
2228
+ return FALSE;
2229
+ }
2230
+
2231
+ /**
2232
+ * Sanitizes a filename, replacing whitespace with underscores.
2233
+ *
2234
+ * @param $filename
2235
+ *
2236
+ * @return mixed
2237
+ */
2238
+ public static function sanitize_file_name( $filename ) {
2239
+
2240
+ $filename = trim( $filename );
2241
+
2242
+ $special_chars = array( "?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}", chr(0) );
2243
+
2244
+ $filename = str_replace( $special_chars, '', $filename );
2245
+
2246
+ $filename = str_replace( array( ' ', '%20', '+' ), '_', $filename );
2247
+ $filename = str_replace( array( "\n", "\t", "\r" ), '-', $filename );
2248
+ $filename = trim( $filename, '.-_' );
2249
+
2250
+ return $filename;
2251
+ }
2252
+
2253
+ /**
2254
+ * Get the Process id of working script
2255
+ *
2256
+ * @return int
2257
+ */
2258
+ private static function get_pid( ) {
2259
+
2260
+ if ( function_exists( 'posix_getpid' ) ) {
2261
+
2262
+ return posix_getpid();
2263
+ } elseif ( function_exists( 'getmypid' ) ) {
2264
+
2265
+ return getmypid();
2266
+ }
2267
+
2268
+ return -1;
2269
+ }
2270
+
2271
+ /**
2272
+ * For storing and getting data in/from a extra temp file
2273
+ *
2274
+ * @param string $storage The name of the storage
2275
+ * @param array $data data to save in storage
2276
+ * @return array|mixed|null data from storage
2277
+ */
2278
+ public function data_storage( $storage = NULL, $data = NULL ) {
2279
+
2280
+ if ( empty( $storage ) )
2281
+ return $data;
2282
+
2283
+ $storage = strtolower( $storage );
2284
+
2285
+ $file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-' . $storage . '.json';
2286
+
2287
+ if ( ! empty( $data ) ) {
2288
+ file_put_contents( $file, json_encode( $data ) );
2289
+ }
2290
+ elseif ( is_readable( $file ) ) {
2291
+ $json = file_get_contents( $file );
2292
+ $data = json_decode( $json, TRUE );
2293
+ }
2294
+
2295
+ return $data;
2296
+ }
2297
+
2298
+ /**
2299
+ * Get list of Folder for backup
2300
+ *
2301
+ * @return array folder list
2302
+ */
2303
+ public function get_folders_to_backup( ) {
2304
+
2305
+ $file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
2306
+
2307
+ if ( ! file_exists( $file ) ) {
2308
+ return array();
2309
+ }
2310
+
2311
+ $folders = array();
2312
+
2313
+ $file_data = file( $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
2314
+
2315
+ foreach( $file_data as $folder ) {
2316
+ $folder = trim( str_replace( array( '<?php', '//' ), '', $folder ) );
2317
+ if ( ! empty( $folder ) && is_dir( $folder ) ) {
2318
+ $folders[] = $folder;
2319
+ }
2320
+ }
2321
+ $folders = array_unique( $folders );
2322
+ sort( $folders );
2323
+ $this->count_folder = count( $folders );
2324
+
2325
+ return $folders;
2326
+ }
2327
+
2328
+
2329
+ /**
2330
+ * Add a Folders to Folder list that should be backup
2331
+ *
2332
+ * @param array $folders folder to add
2333
+ * @param bool $new overwrite existing file
2334
+ */
2335
+ public function add_folders_to_backup( $folders = array(), $new = FALSE ) {
2336
+
2337
+ if ( ! is_array( $folders ) )
2338
+ $folders = (array) $folders;
2339
+
2340
+ $file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
2341
+
2342
+ if ( ! file_exists( $file ) || $new ) {
2343
+ file_put_contents( $file, '<?php' . PHP_EOL );
2344
+ }
2345
+
2346
+ $content = '';
2347
+ foreach ( $folders AS $folder ) {
2348
+ $content .= '//' . $folder . PHP_EOL;
2349
+ }
2350
+
2351
+ if ( ! empty( $content ) )
2352
+ file_put_contents( $file, $content, FILE_APPEND );
2353
+ }
2354
+
2355
+ /**
2356
+ * Check whether exec has been disabled.
2357
+ *
2358
+ * @access public
2359
+ * @static
2360
+ * @return bool
2361
+ */
2362
+ public static function is_exec() {
2363
+
2364
+ // Is function avail
2365
+ if ( ! function_exists( 'exec' ) ) {
2366
+ return FALSE;
2367
+ }
2368
+
2369
+ // Is shell_exec disabled?
2370
+ if ( in_array( 'exec', array_map( 'trim', explode( ',', @ini_get( 'disable_functions' ) ) ) ) ) {
2371
+ return FALSE;
2372
+ }
2373
+
2374
+ // Can we issue a simple echo command?
2375
+ $output = exec( 'echo backwpupechotest' );
2376
+ if ( $output != 'backwpupechotest' ) {
2377
+ return FALSE;
2378
+ }
2379
+
2380
+ return TRUE;
2381
+
2382
+ }
2383
+
2384
+ /**
2385
+ * Cleanup Temp Folder
2386
+ */
2387
+ public static function clean_temp_folder() {
2388
+
2389
+ $temp_dir = BackWPup::get_plugin_data( 'TEMP' );
2390
+ $do_not_delete_files = array( '.htaccess', 'index.php', '.', '..', '.donotbackup' );
2391
+
2392
+ if ( is_writable( $temp_dir ) && $dir = opendir( $temp_dir ) ) {
2393
+ while ( FALSE !== ( $file = readdir( $dir ) ) ) {
2394
+ if ( in_array( $file, $do_not_delete_files ) || is_dir( $temp_dir . $file ) || is_link( $temp_dir . $file ) ) {
2395
+ continue;
2396
+ }
2397
+ if ( is_writeable( $temp_dir . $file ) ) {
2398
+ unlink( $temp_dir . $file );
2399
+ }
2400
+ }
2401
+ closedir( $dir );
2402
+ }
2403
+ }
2404
+
2405
+ /**
2406
+ * Is debug log active
2407
+ *
2408
+ * @return bool
2409
+ */
2410
+ public function is_debug() {
2411
+
2412
+ return strstr( $this->log_level, 'debug' ) ? TRUE : FALSE;
2413
+ }
2414
+
2415
+ /**
2416
+ * Change path of a given path
2417
+ * for better storing in archives or on sync destinations
2418
+ *
2419
+ * @param $path string path to change to wp default path
2420
+ *
2421
+ * @return string
2422
+ */
2423
+ public function get_destination_path_replacement( $path ) {
2424
+
2425
+ $path = str_replace( '\\', '/', $path );
2426
+
2427
+ $abs_path = realpath( ABSPATH );
2428
+ if ( $this->job[ 'backupabsfolderup' ] ) {
2429
+ $abs_path = dirname( $abs_path );
2430
+ }
2431
+
2432
+ $abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
2433
+
2434
+ $path = str_replace( $abs_path, '/', $path );
2435
+
2436
+ return $path;
2437
+ }
2438
+
2439
+ }
 
inc/class-jobtype-wpexp.php CHANGED
@@ -459,7 +459,7 @@ class BackWPup_JobType_WPEXP extends BackWPup_JobTypes {
459
  if ( $valid )
460
  $job_object->log( __( 'WP Export file is a valid WXR file.', 'backwpup' ) );
461
  } else {
462
- $job_object->log( __( 'WP Export file can not checked, because no XML extension loaded with the file can checked.', 'backwpup' ) );
463
  }
464
 
465
  $job_object->steps_data[ $job_object->step_working ]['substep'] = 'compress';
459
  if ( $valid )
460
  $job_object->log( __( 'WP Export file is a valid WXR file.', 'backwpup' ) );
461
  } else {
462
+ $job_object->log( __( 'WP Export file can not be checked, because no XML extension is loaded, to ensure the file verification.', 'backwpup' ) );
463
  }
464
 
465
  $job_object->steps_data[ $job_object->step_working ]['substep'] = 'compress';
inc/class-mysqldump.php CHANGED
@@ -114,7 +114,7 @@ class BackWPup_MySQLDump {
114
  if ( ! empty( $args[ 'dbcharset' ] ) && method_exists( $this->mysqli, 'set_charset' ) ) {
115
  $res = $this->mysqli->set_charset( $args[ 'dbcharset' ] );
116
  if ( ! $res ) {
117
- throw new BackWPup_MySQLDump_Exception( sprintf( _x( 'Cannot set DB charset to %s','Database Charset', 'backwpup' ), $args[ 'dbcharset' ] ) );
118
  }
119
  }
120
 
@@ -439,11 +439,11 @@ class BackWPup_MySQLDump {
439
  public function dump_table( $table, $start = 0, $length = 0 ) {
440
 
441
  if ( ! is_numeric( $start ) ) {
442
- throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Start for table backup is not correctly set: %1$s ', 'backwpup' ), $start ) );
443
  }
444
 
445
  if ( ! is_numeric( $length ) ) {
446
- throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Length for table backup is not correctly set: %1$s ', 'backwpup' ), $length ) );
447
  }
448
 
449
  $done_records = 0;
114
  if ( ! empty( $args[ 'dbcharset' ] ) && method_exists( $this->mysqli, 'set_charset' ) ) {
115
  $res = $this->mysqli->set_charset( $args[ 'dbcharset' ] );
116
  if ( ! $res ) {
117
+ throw new BackWPup_MySQLDump_Exception( sprintf( _x( 'Cannot set DB charset to %s error: %s','Database Charset', 'backwpup' ), $args[ 'dbcharset' ], $this->mysqli->error ) );
118
  }
119
  }
120
 
439
  public function dump_table( $table, $start = 0, $length = 0 ) {
440
 
441
  if ( ! is_numeric( $start ) ) {
442
+ throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Start for table backup is not correctly set: %1$s', 'backwpup' ), $start ) );
443
  }
444
 
445
  if ( ! is_numeric( $length ) ) {
446
+ throw new BackWPup_MySQLDump_Exception( sprintf( __( 'Length for table backup is not correctly set: %1$s', 'backwpup' ), $length ) );
447
  }
448
 
449
  $done_records = 0;
inc/class-page-backups.php CHANGED
@@ -309,10 +309,12 @@ class BackWPup_Page_Backups extends WP_List_Table {
309
  if ( ! empty( $item[ 'info' ] ) )
310
  $r .= esc_attr( $item[ 'info' ] ) . '<br />';
311
  $actions = array();
312
- if ( current_user_can( 'backwpup_backups_delete' ) )
313
  $actions[ 'delete' ] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url( network_admin_url( 'admin.php' ) . '?page=backwpupbackups&action=delete&jobdest-top=' . $this->jobid . '_' . $this->dest . '&paged=' . $this->get_pagenum() . '&backupfiles[]=' . esc_attr( $item[ 'file' ] ), 'bulk-backups' ) . "\" onclick=\"if ( confirm('" . esc_js( __( "You are about to delete this backup archive. \n 'Cancel' to stop, 'OK' to delete.", "backwpup" ) ) . "') ) { return true;}return false;\">" . __( 'Delete', 'backwpup' ) . "</a>";
314
- if ( current_user_can( 'backwpup_backups_download' ) && ! empty( $item[ 'downloadurl' ] ) )
315
- $actions[ 'download' ] = "<a href=\"" . wp_nonce_url( $item[ 'downloadurl' ], 'download-backup' ) . "\">" . __( 'Download', 'backwpup' ) . "</a>";
 
 
316
  $r .= $this->row_actions( $actions );
317
 
318
  return $r;
@@ -411,10 +413,10 @@ class BackWPup_Page_Backups extends WP_List_Table {
411
  if ( ! current_user_can( 'backwpup_backups_download' ) ) {
412
  wp_die( __( 'Sorry, you don\'t have permissions to do that.', 'backwpup') );
413
  }
414
- check_admin_referer( 'download-backup' );
415
  /** @var BackWPup_Destinations $dest_class */
416
  $dest_class = BackWPup::get_destination( $dest );
417
- $dest_class->file_download( (int)$_GET[ 'jobid' ], $_GET[ 'file' ] );
418
  die();
419
  }
420
  }
309
  if ( ! empty( $item[ 'info' ] ) )
310
  $r .= esc_attr( $item[ 'info' ] ) . '<br />';
311
  $actions = array();
312
+ if ( current_user_can( 'backwpup_backups_delete' ) ) {
313
  $actions[ 'delete' ] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url( network_admin_url( 'admin.php' ) . '?page=backwpupbackups&action=delete&jobdest-top=' . $this->jobid . '_' . $this->dest . '&paged=' . $this->get_pagenum() . '&backupfiles[]=' . esc_attr( $item[ 'file' ] ), 'bulk-backups' ) . "\" onclick=\"if ( confirm('" . esc_js( __( "You are about to delete this backup archive. \n 'Cancel' to stop, 'OK' to delete.", "backwpup" ) ) . "') ) { return true;}return false;\">" . __( 'Delete', 'backwpup' ) . "</a>";
314
+ }
315
+ if ( current_user_can( 'backwpup_backups_download' ) && ! empty( $item[ 'downloadurl' ] ) ) {
316
+ $actions[ 'download' ] = "<a href=\"" . wp_nonce_url( $item[ 'downloadurl' ], 'download-backup_' . $this->jobid ) . "\">" . __( 'Download', 'backwpup' ) . "</a>";
317
+ }
318
  $r .= $this->row_actions( $actions );
319
 
320
  return $r;
413
  if ( ! current_user_can( 'backwpup_backups_download' ) ) {
414
  wp_die( __( 'Sorry, you don\'t have permissions to do that.', 'backwpup') );
415
  }
416
+ check_admin_referer( 'download-backup_' . $_GET[ 'jobid' ] );
417
  /** @var BackWPup_Destinations $dest_class */
418
  $dest_class = BackWPup::get_destination( $dest );
419
+ $dest_class->file_download( (int)$_GET[ 'jobid' ], trim( $_GET[ 'file' ] ) );
420
  die();
421
  }
422
  }
inc/class-page-backwpup.php CHANGED
@@ -315,7 +315,8 @@ class BackWPup_Page_BackWPup {
315
  $alternate = FALSE;
316
  }
317
  echo '<td>' . sprintf( __( '%1$s at %2$s', 'backwpup' ), date_i18n( get_option( 'date_format' ) , $logdata[ 'logtime' ] ), date_i18n( get_option( 'time_format' ), $logdata[ 'logtime' ] ) ) . '</td>';
318
- echo '<td><a class="thickbox" href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&logfile=' . basename( $logfile ) .'&_ajax_nonce=' . wp_create_nonce( 'view-logs' ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440" title="' . esc_attr( basename( $logfile ) ) . '">' . $logdata[ 'name' ] . '</i></a></td>';
 
319
  echo '<td>';
320
  if ( $logdata[ 'errors' ] > 0 )
321
  printf( '<span style="color:red;font-weight:bold;">' . _n( "%d ERROR", "%d ERRORS", $logdata[ 'errors' ], 'backwpup' ) . '</span><br />', $logdata[ 'errors' ] );
315
  $alternate = FALSE;
316
  }
317
  echo '<td>' . sprintf( __( '%1$s at %2$s', 'backwpup' ), date_i18n( get_option( 'date_format' ) , $logdata[ 'logtime' ] ), date_i18n( get_option( 'time_format' ), $logdata[ 'logtime' ] ) ) . '</td>';
318
+ $log_name = str_replace( array( '.html', '.gz' ), '', basename( $logfile ) );
319
+ echo '<td><a class="thickbox" href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&log=' . $log_name .'&_ajax_nonce=' . wp_create_nonce( 'view-log_' . $log_name ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440" title="' . esc_attr( basename( $logfile ) ) . '">' . $logdata[ 'name' ] . '</i></a></td>';
320
  echo '<td>';
321
  if ( $logdata[ 'errors' ] > 0 )
322
  printf( '<span style="color:red;font-weight:bold;">' . _n( "%d ERROR", "%d ERRORS", $logdata[ 'errors' ], 'backwpup' ) . '</span><br />', $logdata[ 'errors' ] );
inc/class-page-jobs.php CHANGED
@@ -182,9 +182,11 @@ class BackWPup_Page_Jobs extends WP_List_Table {
182
  }
183
  if ( current_user_can( 'backwpup_logs' ) && BackWPup_Option::get( $item, 'logfile' ) ) {
184
  $logfile = basename( BackWPup_Option::get( $item, 'logfile' ) );
185
- if ( is_object( $this->job_object ) && $this->job_object->job[ 'jobid' ] == $item )
186
- $logfile = basename( $this->job_object->logfile );
187
- $actions[ 'lastlog' ] = '<a href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&logfile=' . $logfile .'&_ajax_nonce=' . wp_create_nonce( 'view-logs' ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440\" title="' . esc_attr( $logfile ) . '" class="thickbox">' . __( 'Last log', 'backwpup' ) . '</a>';
 
 
188
  }
189
  $actions = apply_filters( 'backwpup_page_jobs_actions', $actions, $item, FALSE );
190
  $r .= '<div class="job-normal"' . $job_normal_hide . '>' . $this->row_actions( $actions ) . '</div>';
@@ -319,15 +321,19 @@ class BackWPup_Page_Jobs extends WP_List_Table {
319
  $r .= __( 'not yet', 'backwpup' );
320
  }
321
  $r .= "<br /><span class=\"last-action-links\">";
322
- if ( current_user_can( 'backwpup_backups_download' ) && BackWPup_Option::get( $item, 'lastbackupdownloadurl' ) ) {
323
- $r .= "<a href=\"" . wp_nonce_url( BackWPup_Option::get( $item, 'lastbackupdownloadurl' ), 'download-backup' ) . "\" title=\"" . esc_attr( __( 'Download last backup', 'backwpup' ) ) . "\">" . __( 'Download', 'backwpup' ) . "</a> | ";
 
 
 
324
  }
325
  if ( current_user_can( 'backwpup_logs' ) && BackWPup_Option::get( $item, 'logfile' ) ) {
326
  $logfile = basename( BackWPup_Option::get( $item, 'logfile' ) );
327
  if ( is_object( $this->job_object ) && $this->job_object->job[ 'jobid' ] == $item ) {
328
  $logfile = basename( $this->job_object->logfile );
329
  }
330
- $r .= '<a class="thickbox" href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&logfile=' . $logfile .'&_ajax_nonce=' . wp_create_nonce( 'view-logs' ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440" title="' . esc_attr( $logfile ) . '">' . __( 'Log', 'backwpup' ) . '</a>';
 
331
 
332
  }
333
  $r .= "</span>";
182
  }
183
  if ( current_user_can( 'backwpup_logs' ) && BackWPup_Option::get( $item, 'logfile' ) ) {
184
  $logfile = basename( BackWPup_Option::get( $item, 'logfile' ) );
185
+ if ( is_object( $this->job_object ) && $this->job_object->job[ 'jobid' ] == $item ) {
186
+ $logfile = basename( $this->job_object->logfile );
187
+ }
188
+ $log_name = str_replace( array( '.html', '.gz' ), '', basename( $logfile ) );
189
+ $actions[ 'lastlog' ] = '<a href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&log=' . $log_name .'&_ajax_nonce=' . wp_create_nonce( 'view-log_'. $log_name ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440\" title="' . esc_attr( $logfile ) . '" class="thickbox">' . __( 'Last log', 'backwpup' ) . '</a>';
190
  }
191
  $actions = apply_filters( 'backwpup_page_jobs_actions', $actions, $item, FALSE );
192
  $r .= '<div class="job-normal"' . $job_normal_hide . '>' . $this->row_actions( $actions ) . '</div>';
321
  $r .= __( 'not yet', 'backwpup' );
322
  }
323
  $r .= "<br /><span class=\"last-action-links\">";
324
+ if ( current_user_can( 'backwpup_backups_download' ) ) {
325
+ $download_url = BackWPup_Option::get( $item, 'lastbackupdownloadurl' );
326
+ if ( ! empty( $download_url ) ) {
327
+ $r .= "<a href=\"" . wp_nonce_url( $download_url, 'download-backup_' . $item ). "\" title=\"" . esc_attr( __( 'Download last backup', 'backwpup' ) ) . "\">" . __( 'Download', 'backwpup' ) . "</a> | ";
328
+ }
329
  }
330
  if ( current_user_can( 'backwpup_logs' ) && BackWPup_Option::get( $item, 'logfile' ) ) {
331
  $logfile = basename( BackWPup_Option::get( $item, 'logfile' ) );
332
  if ( is_object( $this->job_object ) && $this->job_object->job[ 'jobid' ] == $item ) {
333
  $logfile = basename( $this->job_object->logfile );
334
  }
335
+ $log_name = str_replace( array( '.html', '.gz' ), '', basename( $logfile ) );
336
+ $r .= '<a class="thickbox" href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&log=' . $log_name .'&_ajax_nonce=' . wp_create_nonce( 'view-log_' . $log_name ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440" title="' . esc_attr( $logfile ) . '">' . __( 'Log', 'backwpup' ) . '</a>';
337
 
338
  }
339
  $r .= "</span>";
inc/class-page-logs.php CHANGED
@@ -40,15 +40,17 @@ class BackWPup_Page_Logs extends WP_List_Table {
40
  $this->job_types = BackWPup::get_job_types();
41
 
42
  $per_page = $this->get_items_per_page( 'backwpuplogs_per_page' );
43
- if ( empty( $per_page ) || $per_page < 1 )
44
  $per_page = 20;
 
45
 
46
  //load logs
47
  $logfiles = array();
48
- if ( is_readable( $this->log_folder) && $dir = opendir( $this->log_folder ) ) {
49
  while ( ( $file = readdir( $dir ) ) !== FALSE ) {
50
- if ( is_readable( $this->log_folder . '/' . $file ) && is_file( $this->log_folder . '/' . $file ) && FALSE !== strpos( $file, 'backwpup_log_' ) && FALSE !== strpos( $file, '.html' ) ) {
51
- $logfiles[ filemtime( $this->log_folder . '/' . $file ) ] = $file;
 
52
  }
53
  }
54
  closedir( $dir );
@@ -57,28 +59,31 @@ class BackWPup_Page_Logs extends WP_List_Table {
57
  $order = isset( $_GET[ 'order' ] ) ? $_GET[ 'order' ] : 'desc';
58
  $orderby = isset( $_GET[ 'orderby' ] ) ? $_GET[ 'orderby' ] : 'time';
59
  if ( $orderby == 'time' ) {
60
- if ( $order == 'asc' )
61
- ksort( $logfiles, SORT_NUMERIC );
62
- else
63
- krsort ( $logfiles, SORT_NUMERIC );
 
64
  }
65
  //by page
66
  $start = intval( ( $this->get_pagenum() - 1 ) * $per_page );
67
  $end = $start + $per_page;
68
- if ( $end > count( $logfiles ) )
69
  $end = count( $logfiles );
 
70
 
71
  $this->items = array();
72
  $i = -1;
73
  foreach ( $logfiles as $mtime => $logfile ) {
74
  $i++;
75
- if ( $i < $start )
76
  continue;
77
- if ( $i >= $end )
 
78
  break;
 
79
  $this->items[$mtime] = BackWPup_Job::read_logheader( $this->log_folder . '/' . $logfile );
80
  $this->items[$mtime]['file'] = $logfile;
81
-
82
  }
83
 
84
  $this->set_pagination_args( array(
@@ -191,12 +196,14 @@ class BackWPup_Page_Logs extends WP_List_Table {
191
  */
192
  function column_job( $item ) {
193
 
194
- $r = "<strong><a class=\"thickbox\" href=\"" . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&logfile=' . $item['file'] .'&_ajax_nonce=' . wp_create_nonce( 'view-logs' ) . "&amp;TB_iframe=true&amp;width=640&amp;height=440\" title=\"" . esc_attr( $item['file'] ) . "\n" . sprintf( __( 'Job ID: %d', 'backwpup' ), $item[ 'jobid' ] ) . "\">" . esc_attr( ! empty( $item[ 'name' ] ) ? $item[ 'name' ] : $item['file'] ) . "</a></strong>";
 
195
  $actions = array();
196
- $actions[ 'view' ] = '<a class="thickbox" href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&logfile=' . $item['file'] .'&_ajax_nonce=' . wp_create_nonce( 'view-logs' ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440" title="' . $item['file'] . '">' . __( 'View', 'backwpup' ) . '</a>';
197
- if ( current_user_can( 'backwpup_logs_delete' ) )
198
  $actions[ 'delete' ] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url( network_admin_url( 'admin.php' ) . '?page=backwpuplogs&action=delete&paged=' . $this->get_pagenum() . '&logfiles[]=' . $item['file'], 'bulk-logs' ) . "\" onclick=\"return showNotice.warn();\">" . __( 'Delete', 'backwpup' ) . "</a>";
199
- $actions[ 'download' ] = "<a href=\"" . wp_nonce_url( network_admin_url( 'admin.php' ) . '?page=backwpuplogs&action=download&file=' . $item['file'], 'download-backup_' . $item['file'] ) . "\">" . __( 'Download', 'backwpup' ) . "</a>";
 
200
  $r .= $this->row_actions( $actions );
201
 
202
  return $r;
@@ -262,6 +269,7 @@ class BackWPup_Page_Logs extends WP_List_Table {
262
  if ( is_array( $_GET[ 'logfiles' ] ) ) {
263
  check_admin_referer( 'bulk-logs' );
264
  foreach ( $_GET[ 'logfiles' ] as $logfile ) {
 
265
  if ( is_writeable( self::$listtable->log_folder . '/' . $logfile ) && ! is_dir( self::$listtable->log_folder . '/' . $logfile ) && ! is_link( self::$listtable->log_folder . '/' . $logfile ) ) {
266
  unlink( self::$listtable->log_folder . '/' . $logfile );
267
  }
@@ -269,18 +277,25 @@ class BackWPup_Page_Logs extends WP_List_Table {
269
  }
270
  break;
271
  case 'download': //Download Log
272
- if ( ! current_user_can( 'backwpup_logs' ) )
273
  break;
274
- check_admin_referer( 'download-backup_' . $_GET[ 'file' ] );
275
- if ( is_readable( self::$listtable->log_folder . '/' . $_GET[ 'file' ] ) && ! is_dir( self::$listtable->log_folder . '/' . $_GET[ 'file' ] ) && !is_link( self::$listtable->log_folder . '/' . $_GET[ 'file' ] ) ) {
 
 
 
 
 
 
 
276
  header( "Pragma: public" );
277
  header( "Expires: 0" );
278
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
279
  header( "Content-Type: application/force-download" );
280
  header( "Content-Disposition: attachment; filename=" . $_GET[ 'file' ] . ";" );
281
  header( "Content-Transfer-Encoding: binary" );
282
- header( "Content-Length: " . filesize( self::$listtable->log_folder . '/' . $_GET[ 'file' ] ) );
283
- @readfile( self::$listtable->log_folder . '/' . $_GET[ 'file' ] );
284
  die();
285
  }
286
  else {
@@ -382,29 +397,24 @@ class BackWPup_Page_Logs extends WP_List_Table {
382
  */
383
  public static function ajax_view_log() {
384
 
385
- if ( ! current_user_can( 'backwpup_logs' ) ) {
386
- die( -1 );
387
  }
388
- check_ajax_referer( 'view-logs' );
 
 
389
  $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
390
  $log_folder = BackWPup_File::get_absolute_path( $log_folder );
391
- $log_file = $log_folder . $_GET[ 'logfile' ];
392
- if ( ! is_readable( $log_file ) && ! is_readable( $log_file . '.gz' ) && ! is_readable( $log_file . '.bz2' ) ) {
393
- die( -1 );
394
- }
395
- //change file end if not html helps if log file compression is on
396
- if ( ! file_exists( $log_file ) && file_exists( $log_file . '.gz' ) ) {
397
- $log_file = $log_file . '.gz';
398
- }
399
- if ( ! file_exists( $log_file ) && file_exists( $log_file . '.bz2' ) ) {
400
- $log_file = $log_file . '.bz2';
401
- }
402
- //output file
403
- if ( '.gz' == substr( $log_file, -3 ) ) {
404
- echo file_get_contents( 'compress.zlib://' .$log_file, FALSE );
405
  } else {
406
- echo file_get_contents( $log_file, FALSE );
407
  }
 
408
  die();
409
  }
410
 
40
  $this->job_types = BackWPup::get_job_types();
41
 
42
  $per_page = $this->get_items_per_page( 'backwpuplogs_per_page' );
43
+ if ( empty( $per_page ) || $per_page < 1 ) {
44
  $per_page = 20;
45
+ }
46
 
47
  //load logs
48
  $logfiles = array();
49
+ if ( is_readable( $this->log_folder ) && $dir = opendir( $this->log_folder ) ) {
50
  while ( ( $file = readdir( $dir ) ) !== FALSE ) {
51
+ $log_file = $this->log_folder . '/' . $file;
52
+ if ( is_file( $log_file ) && is_readable( $log_file ) && FALSE !== strpos( $file, 'backwpup_log_' ) && FALSE !== strpos( $file, '.html' ) ) {
53
+ $logfiles[] = $file;
54
  }
55
  }
56
  closedir( $dir );
59
  $order = isset( $_GET[ 'order' ] ) ? $_GET[ 'order' ] : 'desc';
60
  $orderby = isset( $_GET[ 'orderby' ] ) ? $_GET[ 'orderby' ] : 'time';
61
  if ( $orderby == 'time' ) {
62
+ if ( $order == 'asc' ) {
63
+ sort( $logfiles );
64
+ } else {
65
+ rsort( $logfiles );
66
+ }
67
  }
68
  //by page
69
  $start = intval( ( $this->get_pagenum() - 1 ) * $per_page );
70
  $end = $start + $per_page;
71
+ if ( $end > count( $logfiles ) ) {
72
  $end = count( $logfiles );
73
+ }
74
 
75
  $this->items = array();
76
  $i = -1;
77
  foreach ( $logfiles as $mtime => $logfile ) {
78
  $i++;
79
+ if ( $i < $start ) {
80
  continue;
81
+ }
82
+ if ( $i >= $end ) {
83
  break;
84
+ }
85
  $this->items[$mtime] = BackWPup_Job::read_logheader( $this->log_folder . '/' . $logfile );
86
  $this->items[$mtime]['file'] = $logfile;
 
87
  }
88
 
89
  $this->set_pagination_args( array(
196
  */
197
  function column_job( $item ) {
198
 
199
+ $log_name = str_replace( array( '.html', '.gz' ), '', basename( $item['file'] ) );
200
+ $r = "<strong><a class=\"thickbox\" href=\"" . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&log=' . $log_name .'&_ajax_nonce=' . wp_create_nonce( 'view-log_' . $log_name ) . "&amp;TB_iframe=true&amp;width=640&amp;height=440\" title=\"" . esc_attr( $item['file'] ) . "\n" . sprintf( __( 'Job ID: %d', 'backwpup' ), $item[ 'jobid' ] ) . "\">" . esc_attr( ! empty( $item[ 'name' ] ) ? $item[ 'name' ] : $item['file'] ) . "</a></strong>";
201
  $actions = array();
202
+ $actions[ 'view' ] = '<a class="thickbox" href="' . admin_url( 'admin-ajax.php' ) . '?&action=backwpup_view_log&log=' . $log_name .'&_ajax_nonce=' . wp_create_nonce( 'view-log_' . $log_name ) . '&amp;TB_iframe=true&amp;width=640&amp;height=440" title="' . $item['file'] . '">' . __( 'View', 'backwpup' ) . '</a>';
203
+ if ( current_user_can( 'backwpup_logs_delete' ) ) {
204
  $actions[ 'delete' ] = "<a class=\"submitdelete\" href=\"" . wp_nonce_url( network_admin_url( 'admin.php' ) . '?page=backwpuplogs&action=delete&paged=' . $this->get_pagenum() . '&logfiles[]=' . $item['file'], 'bulk-logs' ) . "\" onclick=\"return showNotice.warn();\">" . __( 'Delete', 'backwpup' ) . "</a>";
205
+ }
206
+ $actions[ 'download' ] = "<a href=\"" . wp_nonce_url( network_admin_url( 'admin.php' ) . '?page=backwpuplogs&action=download&file=' . $item['file'], 'download-log_' . $item['file'] ) . "\">" . __( 'Download', 'backwpup' ) . "</a>";
207
  $r .= $this->row_actions( $actions );
208
 
209
  return $r;
269
  if ( is_array( $_GET[ 'logfiles' ] ) ) {
270
  check_admin_referer( 'bulk-logs' );
271
  foreach ( $_GET[ 'logfiles' ] as $logfile ) {
272
+ $logfile = basename( $logfile );
273
  if ( is_writeable( self::$listtable->log_folder . '/' . $logfile ) && ! is_dir( self::$listtable->log_folder . '/' . $logfile ) && ! is_link( self::$listtable->log_folder . '/' . $logfile ) ) {
274
  unlink( self::$listtable->log_folder . '/' . $logfile );
275
  }
277
  }
278
  break;
279
  case 'download': //Download Log
280
+ if ( ! current_user_can( 'backwpup_logs' ) ) {
281
  break;
282
+ }
283
+
284
+ check_admin_referer( 'download-log_' . trim( $_GET[ 'file' ] ) );
285
+
286
+ $log_file = trailingslashit( self::$listtable->log_folder ) . basename( trim( $_GET[ 'file' ] ) );
287
+ $log_file = realpath( $log_file );
288
+
289
+ if ( $log_file && is_readable( $log_file ) && ! is_dir( $log_file ) && !is_link( $log_file ) ) {
290
+ while( @ob_end_clean() );
291
  header( "Pragma: public" );
292
  header( "Expires: 0" );
293
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
294
  header( "Content-Type: application/force-download" );
295
  header( "Content-Disposition: attachment; filename=" . $_GET[ 'file' ] . ";" );
296
  header( "Content-Transfer-Encoding: binary" );
297
+ header( "Content-Length: " . filesize( $log_file ) );
298
+ @readfile( $log_file );
299
  die();
300
  }
301
  else {
397
  */
398
  public static function ajax_view_log() {
399
 
400
+ if ( ! current_user_can( 'backwpup_logs' ) || ! isset( $_GET[ 'log' ] ) || strstr( $_GET[ 'log' ], 'backwpup_log_' ) === false ) {
401
+ die( '-1' );
402
  }
403
+
404
+ check_ajax_referer( 'view-log_' . $_GET[ 'log' ] );
405
+
406
  $log_folder = get_site_option( 'backwpup_cfg_logfolder' );
407
  $log_folder = BackWPup_File::get_absolute_path( $log_folder );
408
+ $log_file = $log_folder . esc_attr( trim( $_GET[ 'log' ] ) );
409
+
410
+ if ( file_exists( $log_file . '.html' ) && is_readable( $log_file . '.html' ) ) {
411
+ echo file_get_contents( $log_file . '.html', FALSE );
412
+ } elseif ( file_exists( $log_file . '.html.gz' ) && is_readable( $log_file . '.html.gz' ) ) {
413
+ echo file_get_contents( 'compress.zlib://' . $log_file . '.html.gz', FALSE );
 
 
 
 
 
 
 
 
414
  } else {
415
+ die( __( 'Logfile not found!', 'backwpup' ) );
416
  }
417
+
418
  die();
419
  }
420
 
inc/class-page-settings.php CHANGED
@@ -330,7 +330,7 @@ class BackWPup_Page_Settings {
330
  <div class="table ui-tabs-hide" id="backwpup-tab-net">
331
 
332
  <h3 class="title"><?php echo sprintf( __( 'Authentication for <code>%s</code>', 'backwpup' ), site_url( 'wp-cron.php' ) ); ?></h3>
333
- <p><?php _e( 'Is your blog protected with HTTP basic authentication (.htaccess)? Or did you use a Plugin to secure wp-cron.php than use the authentication methods below', 'backwpup' ); ?></p>
334
  <?php
335
  $authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
336
  ?>
330
  <div class="table ui-tabs-hide" id="backwpup-tab-net">
331
 
332
  <h3 class="title"><?php echo sprintf( __( 'Authentication for <code>%s</code>', 'backwpup' ), site_url( 'wp-cron.php' ) ); ?></h3>
333
+ <p><?php _e( 'If you protected your blog with HTTP basic authentication (.htaccess), or you use a Plugin to secure wp-cron.php, than use the authentication methods below.', 'backwpup' ); ?></p>
334
  <?php
335
  $authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
336
  ?>
languages/backwpup.pot CHANGED
@@ -1,5566 +1,5576 @@
1
- # Loco Gettext template
2
- #, fuzzy
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: BackWPup Pro\n"
6
- "Report-Msgid-Bugs-To: \n"
7
- "POT-Creation-Date: Tue Aug 25 2015 08:53:55 GMT+0200 (Mitteleuropäische "
8
- "Sommerzeit)\n"
9
- "POT-Revision-Date: Wed Oct 07 2015 12:44:48 GMT+0200 (Mitteleuropäische "
10
- "Sommerzeit)\n"
11
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: \n"
13
- "Language-Team: \n"
14
- "Language: \n"
15
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
16
- "MIME-Version: 1.0\n"
17
- "Content-Type: text/plain; charset=UTF-8\n"
18
- "Content-Transfer-Encoding: 8bit\n"
19
- "X-Poedit-SourceCharset: UTF-8\n"
20
- "X-Poedit-Basepath: .\n"
21
- "X-Poedit-SearchPath-0: ..\n"
22
- "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
23
- "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
24
- "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
25
- "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
26
- "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
27
- "X-Generator: Loco - https://localise.biz/"
28
-
29
- #. Name of the plugin
30
- msgid "BackWPup Pro"
31
- msgstr ""
32
-
33
- #. URI of the plugin
34
- msgid "https://marketpress.com/product/backwpup-pro"
35
- msgstr ""
36
-
37
- #. Description of the plugin
38
- msgid "WordPress Backup Plugin"
39
- msgstr ""
40
-
41
- #. Author of the plugin
42
- msgid "Inpsyde GmbH"
43
- msgstr ""
44
-
45
- #. Author URI of the plugin
46
- msgid "http://inpsyde.com"
47
- msgstr ""
48
-
49
- #: ../backwpup.php:295 ../inc/class-page-backups.php:269
50
- msgid "Folder"
51
- msgstr ""
52
-
53
- #: ../backwpup.php:296
54
- msgid "Backup to Folder"
55
- msgstr ""
56
-
57
- #: ../backwpup.php:311
58
- msgid "Email"
59
- msgstr ""
60
-
61
- #: ../backwpup.php:312
62
- msgid "Backup sent via email"
63
- msgstr ""
64
-
65
- #: ../backwpup.php:327
66
- msgid "FTP"
67
- msgstr ""
68
-
69
- #: ../backwpup.php:328
70
- msgid "Backup to FTP"
71
- msgstr ""
72
-
73
- #: ../backwpup.php:343 ../inc/class-destination-dropbox.php:278
74
- msgid "Dropbox"
75
- msgstr ""
76
-
77
- #: ../backwpup.php:344 ../inc/class-page-about.php:577
78
- msgid "Backup to Dropbox"
79
- msgstr ""
80
-
81
- #: ../backwpup.php:360 ../backwpup.php:379 ../inc/class-destination-s3-v1.php:71 .
82
- #: ./inc/class-destination-s3.php:74
83
- msgid "S3 Service"
84
- msgstr ""
85
-
86
- #: ../backwpup.php:361
87
- msgid "Backup to an S3 Service"
88
- msgstr ""
89
-
90
- #: ../backwpup.php:380
91
- msgid "Backup to an S3 Service v1"
92
- msgstr ""
93
-
94
- #: ../backwpup.php:396
95
- msgid "MS Azure"
96
- msgstr ""
97
-
98
- #: ../backwpup.php:397
99
- msgid "Backup to Microsoft Azure (Blob)"
100
- msgstr ""
101
-
102
- #: ../backwpup.php:412
103
- msgid "RSC"
104
- msgstr ""
105
-
106
- #: ../backwpup.php:413 ../inc/class-page-about.php:582
107
- msgid "Backup to Rackspace Cloud Files"
108
- msgstr ""
109
-
110
- #: ../backwpup.php:429
111
- msgid "SugarSync"
112
- msgstr ""
113
-
114
- #: ../backwpup.php:430 ../inc/class-page-about.php:597
115
- msgid "Backup to SugarSync"
116
- msgstr ""
117
-
118
- #: ../backwpup.php:449
119
- #, php-format
120
- msgid "PHP Version %1$s is to low, you need Version %2$s or above."
121
- msgstr ""
122
-
123
- #: ../backwpup.php:456
124
- #, php-format
125
- msgid "Missing function \"%s\"."
126
- msgstr ""
127
-
128
- #: ../backwpup.php:465
129
- #, php-format
130
- msgid "Missing class \"%s\"."
131
- msgstr ""
132
-
133
- #: ../inc/class-page-logs.php:108
134
- msgid "No Logs."
135
- msgstr ""
136
-
137
- #: ../inc/class-page-logs.php:120 ../inc/class-page-logs.php:198 ../inc/class-
138
- #: page-jobs.php:113 ../inc/class-page-jobs.php:177 ../inc/class-page-backups.php:
139
- #: 194 ../inc/class-page-backups.php:313
140
- msgid "Delete"
141
- msgstr ""
142
-
143
- #: ../inc/class-page-logs.php:131 ../inc/class-page-backwpup.php:288 ../inc/class-
144
- #: page-backwpup.php:352 ../inc/class-page-backups.php:267
145
- msgid "Time"
146
- msgstr ""
147
-
148
- #: ../inc/class-page-logs.php:132 ../inc/class-page-backwpup.php:288 ../inc/class-
149
- #: page-backwpup.php:353
150
- msgid "Job"
151
- msgstr ""
152
-
153
- #: ../inc/class-page-logs.php:133
154
- msgid "Status"
155
- msgstr ""
156
-
157
- #: ../inc/class-page-logs.php:134 ../inc/class-page-jobs.php:126 ../inc/class-
158
- #: page-editjob.php:718 ../inc/pro/class-wizard-job.php:302
159
- msgid "Type"
160
- msgstr ""
161
-
162
- #: ../inc/class-page-logs.php:135 ../inc/class-page-backups.php:270
163
- msgid "Size"
164
- msgstr ""
165
-
166
- #: ../inc/class-page-logs.php:136
167
- msgid "Runtime"
168
- msgstr ""
169
-
170
- #: ../inc/class-page-logs.php:159 ../inc/class-page-backwpup.php:317 ../inc/class-
171
- #: page-backwpup.php:390 ../inc/class-page-jobs.php:313 ../inc/class-page-backups.
172
- #: php:357
173
- #, php-format
174
- msgid "%1$s at %2$s"
175
- msgstr ""
176
-
177
- #: ../inc/class-page-logs.php:194 ../inc/class-page-jobs.php:172
178
- #, php-format
179
- msgid "Job ID: %d"
180
- msgstr ""
181
-
182
- #: ../inc/class-page-logs.php:196
183
- msgid "View"
184
- msgstr ""
185
-
186
- #: ../inc/class-page-logs.php:199 ../inc/class-page-jobs.php:323 ../inc/class-
187
- #: page-backups.php:315
188
- msgid "Download"
189
- msgstr ""
190
-
191
- #: ../inc/class-page-logs.php:215
192
- #, php-format
193
- msgid "1 ERROR"
194
- msgid_plural "%d ERRORS"
195
- msgstr[0] ""
196
- msgstr[1] ""
197
-
198
- #: ../inc/class-page-logs.php:217
199
- #, php-format
200
- msgid "1 WARNING"
201
- msgid_plural "%d WARNINGS"
202
- msgstr[0] ""
203
- msgstr[1] ""
204
-
205
- #: ../inc/class-page-logs.php:219
206
- msgid "O.K."
207
- msgstr ""
208
-
209
- #: ../inc/class-page-logs.php:236
210
- msgid "Log only"
211
- msgstr ""
212
-
213
- #: ../inc/class-page-logs.php:247 ../inc/class-destination-ftp.php:86 ..
214
- #: /inc/class-page-settings.php:477
215
- msgid "seconds"
216
- msgstr ""
217
-
218
- #: ../inc/class-page-logs.php:306 ../inc/class-admin.php:201 ../inc/class-admin.
219
- #: php:201 ../inc/class-adminbar.php:102 ../inc/class-page-settings.php:120
220
- msgid "Logs"
221
- msgstr ""
222
-
223
- #: ../inc/class-page-logs.php:369
224
- #, php-format
225
- msgid "%s Logs"
226
- msgstr ""
227
-
228
- #: ../inc/class-destination-msazure.php:25
229
- msgid "MS Azure access keys"
230
- msgstr ""
231
-
232
- #: ../inc/class-destination-msazure.php:29
233
- msgid "Account name"
234
- msgstr ""
235
-
236
- #: ../inc/class-destination-msazure.php:36
237
- msgid "Access key"
238
- msgstr ""
239
-
240
- #: ../inc/class-destination-msazure.php:44
241
- msgid "Blob container"
242
- msgstr ""
243
-
244
- #: ../inc/class-destination-msazure.php:48 ../inc/class-destination-rsc.php:77
245
- msgid "Container selection"
246
- msgstr ""
247
-
248
- #: ../inc/class-destination-msazure.php:59 ../inc/class-destination-rsc.php:89
249
- msgid "Create a new container"
250
- msgstr ""
251
-
252
- #: ../inc/class-destination-msazure.php:66 ../inc/class-destination-sugarsync.php:
253
- #: 86 ../inc/class-destination-folder.php:29 ../inc/class-destination-dropbox.php:
254
- #: 91 ../inc/class-destination-ftp.php:52 ../inc/class-destination-rsc.php:96 ..
255
- #: /inc/pro/class-destination-gdrive.php:61
256
- msgid "Backup settings"
257
- msgstr ""
258
-
259
- #: ../inc/class-destination-msazure.php:70
260
- msgid "Folder in container"
261
- msgstr ""
262
-
263
- #: ../inc/class-destination-msazure.php:76 ../inc/class-destination-s3-v1.php:155
264
- #: ../inc/class-destination-s3.php:160 ../inc/class-destination-rsc.php:106 ..
265
- #: /inc/pro/class-destination-glacier.php:94
266
- msgid "File deletion"
267
- msgstr ""
268
-
269
- #: ../inc/class-destination-msazure.php:81 ../inc/class-destination-s3-v1.php:160
270
- #: ../inc/class-destination-sugarsync.php:101 ../inc/class-destination-folder.php:
271
- #: 44 ../inc/class-destination-ftp.php:67 ../inc/class-destination-s3.php:165 ..
272
- #: /inc/class-destination-rsc.php:111 ../inc/pro/class-destination-msazure.php:35
273
- #: ../inc/pro/class-destination-s3-v1.php:60 ../inc/pro/class-destination-folder.
274
- #: php:24 ../inc/pro/class-destination-dropbox.php:42 ../inc/pro/class-
275
- #: destination-s3.php:62 ../inc/pro/class-destination-rsc.php:55 ../inc/pro/class-
276
- #: destination-gdrive.php:76 ../inc/pro/class-destination-gdrive.php:285 ..
277
- #: /inc/pro/class-destination-glacier.php:96 ../inc/pro/class-destination-glacier.
278
- #: php:180
279
- msgid "Oldest files will be deleted first. 0 = no deletion"
280
- msgstr ""
281
-
282
- #: ../inc/class-destination-msazure.php:82 ../inc/class-destination-s3-v1.php:161
283
- #: ../inc/class-destination-sugarsync.php:102 ../inc/class-destination-folder.php:
284
- #: 45 ../inc/class-destination-dropbox.php:108 ../inc/class-destination-s3.php:
285
- #: 166 ../inc/class-destination-rsc.php:112 ../inc/pro/class-destination-msazure.
286
- #: php:36 ../inc/pro/class-destination-s3-v1.php:61 ../inc/pro/class-destination-
287
- #: folder.php:25 ../inc/pro/class-destination-dropbox.php:43 ../inc/pro/class-
288
- #: destination-s3.php:63 ../inc/pro/class-destination-rsc.php:56 ../inc/pro/class-
289
- #: destination-gdrive.php:77 ../inc/pro/class-destination-gdrive.php:286
290
- msgid "Number of files to keep in folder."
291
- msgstr ""
292
-
293
- #: ../inc/class-destination-msazure.php:86 ../inc/class-destination-s3-v1.php:165
294
- #: ../inc/class-destination-sugarsync.php:106 ../inc/class-destination-folder.php:
295
- #: 49 ../inc/class-destination-dropbox.php:112 ../inc/class-destination-ftp.php:
296
- #: 72 ../inc/class-destination-s3.php:170 ../inc/class-destination-rsc.php:116 ..
297
- #: /inc/pro/class-destination-msazure.php:41 ../inc/pro/class-destination-s3-v1.
298
- #: php:66 ../inc/pro/class-destination-sugarsync.php:68 ../inc/pro/class-
299
- #: destination-folder.php:30 ../inc/pro/class-destination-dropbox.php:45 ..
300
- #: /inc/pro/class-destination-ftp.php:46 ../inc/pro/class-destination-s3.php:68 ..
301
- #: /inc/pro/class-destination-rsc.php:61 ../inc/pro/class-destination-gdrive.php:
302
- #: 81 ../inc/pro/class-destination-gdrive.php:288
303
- msgid "Do not delete files while syncing to destination!"
304
- msgstr ""
305
-
306
- #: ../inc/class-destination-msazure.php:124 ../inc/pro/class-destination-msazure.
307
- #: php:81
308
- #, php-format
309
- msgid "MS Azure container \"%s\" created."
310
- msgstr ""
311
-
312
- #: ../inc/class-destination-msazure.php:127 ../inc/pro/class-destination-msazure.
313
- #: php:84
314
- #, php-format
315
- msgid "MS Azure container create: %s"
316
- msgstr ""
317
-
318
- #: ../inc/class-destination-msazure.php:203
319
- #, php-format
320
- msgid "%d. Try sending backup to a Microsoft Azure (Blob)&#160;&hellip;"
321
- msgstr ""
322
-
323
- #: ../inc/class-destination-msazure.php:225 ../inc/pro/class-destination-msazure.
324
- #: php:126
325
- #, php-format
326
- msgid "MS Azure container \"%s\" does not exist!"
327
- msgstr ""
328
-
329
- #: ../inc/class-destination-msazure.php:229 ../inc/pro/class-destination-msazure.
330
- #: php:130
331
- #, php-format
332
- msgid "Connected to MS Azure container \"%s\"."
333
- msgstr ""
334
-
335
- #: ../inc/class-destination-msazure.php:232
336
- msgid "Starting upload to MS Azure&#160;&hellip;"
337
- msgstr ""
338
-
339
- #: ../inc/class-destination-msazure.php:259 ../inc/class-destination-ftp.php:344 .
340
- #: ./inc/class-destination-s3.php:413 ../inc/class-destination-s3.php:499 ..
341
- #: /inc/class-destination-rsc.php:282 ../inc/pro/class-destination-rsc.php:215 ..
342
- #: /inc/pro/class-destination-rsc.php:248 ../inc/pro/class-destination-gdrive.php:
343
- #: 602 ../inc/pro/class-destination-glacier.php:387
344
- msgid "Can not open source file for transfer."
345
- msgstr ""
346
-
347
- #: ../inc/class-destination-msazure.php:272 ../inc/class-destination-sugarsync.
348
- #: php:257 ../inc/class-destination-dropbox.php:269 ../inc/pro/class-destination-
349
- #: gdrive.php:611
350
- #, php-format
351
- msgid "Backup transferred to %s"
352
- msgstr ""
353
-
354
- #: ../inc/class-destination-msazure.php:277 ../inc/class-destination-msazure.php:
355
- #: 333 ../inc/pro/class-destination-msazure.php:215
356
- #, php-format
357
- msgid "Microsoft Azure API: %s"
358
- msgstr ""
359
-
360
- #: ../inc/class-destination-msazure.php:326
361
- #, php-format
362
- msgid "One file deleted on Microsoft Azure container."
363
- msgid_plural "%d files deleted on Microsoft Azure container."
364
- msgstr[0] ""
365
- msgstr[1] ""
366
-
367
- #: ../inc/class-destination-msazure.php:419
368
- msgid "Missing account name!"
369
- msgstr ""
370
-
371
- #: ../inc/class-destination-msazure.php:421 ../inc/class-destination-s3-v1.php:
372
- #: 576 ../inc/class-destination-s3.php:676 ../inc/pro/class-destination-glacier.
373
- #: php:536
374
- msgid "Missing access key!"
375
- msgstr ""
376
-
377
- #: ../inc/class-destination-msazure.php:425
378
- msgid "No container found!"
379
- msgstr ""
380
-
381
- #: ../inc/class-jobtype-dbdump.php:13
382
- msgid "DB Backup"
383
- msgstr ""
384
-
385
- #: ../inc/class-jobtype-dbdump.php:14
386
- msgid "Database backup"
387
- msgstr ""
388
-
389
- #: ../inc/class-jobtype-dbdump.php:15
390
- msgid "Creates an .sql database backup file"
391
- msgstr ""
392
-
393
- #: ../inc/class-jobtype-dbdump.php:61 ../inc/pro/class-jobtype-dbdump.php:84 ..
394
- #: /inc/pro/class-jobtype-dbdump.php:105
395
- msgid "Settings for database backup"
396
- msgstr ""
397
-
398
- #: ../inc/class-jobtype-dbdump.php:65 ../inc/pro/class-jobtype-dbdump.php:151
399
- msgid "Tables to backup"
400
- msgstr ""
401
-
402
- #: ../inc/class-jobtype-dbdump.php:67 ../inc/pro/class-jobtype-dbdump.php:153
403
- msgid "all"
404
- msgstr ""
405
-
406
- #: ../inc/class-jobtype-dbdump.php:68 ../inc/class-jobtype-dbdump.php:103 ..
407
- #: /inc/class-page-backwpup.php:333 ../inc/class-page-backwpup.php:398 ..
408
- #: /inc/class-destination-email.php:114 ../inc/class-page-settings.php:345 ..
409
- #: /inc/class-jobtype-wpexp.php:73 ../inc/class-jobtype-wpplugin.php:57 ..
410
- #: /inc/pro/class-jobtype-dbdump.php:154 ../inc/pro/class-jobtype-dbdump.php:198
411
- msgid "none"
412
- msgstr ""
413
-
414
- #: ../inc/class-jobtype-dbdump.php:91 ../inc/pro/class-jobtype-dbdump.php:186
415
- msgid "Backup file name"
416
- msgstr ""
417
-
418
- #: ../inc/class-jobtype-dbdump.php:99 ../inc/pro/class-jobtype-dbdump.php:194
419
- msgid "Backup file compression"
420
- msgstr ""
421
-
422
- #: ../inc/class-jobtype-dbdump.php:105 ../inc/class-jobtype-dbdump.php:107 ..
423
- #: /inc/class-jobtype-wpexp.php:75 ../inc/class-jobtype-wpexp.php:77 ../inc/class-
424
- #: jobtype-wpplugin.php:59 ../inc/class-jobtype-wpplugin.php:61 ../inc/pro/class-
425
- #: jobtype-dbdump.php:200 ../inc/pro/class-jobtype-dbdump.php:202
426
- msgid "GZip"
427
- msgstr ""
428
-
429
- #: ../inc/class-jobtype-dbdump.php:155 ../inc/pro/class-jobtype-dbdump.php:456
430
- #, php-format
431
- msgid "%d. Try to backup database&#160;&hellip;"
432
- msgstr ""
433
-
434
- #: ../inc/class-jobtype-dbdump.php:169 ../inc/pro/class-jobtype-dbdump.php:476
435
- #, php-format
436
- msgid "Connected to database %1$s on %2$s"
437
- msgstr ""
438
-
439
- #: ../inc/class-jobtype-dbdump.php:183 ../inc/pro/class-jobtype-dbdump.php:490
440
- msgid "No tables to backup."
441
- msgstr ""
442
-
443
- #: ../inc/class-jobtype-dbdump.php:206 ../inc/pro/class-jobtype-dbdump.php:516
444
- #, php-format
445
- msgid "Backup database table \"%s\" with \"%s\" records"
446
- msgstr ""
447
-
448
- #: ../inc/class-jobtype-dbdump.php:246 ../inc/pro/class-jobtype-dbdump.php:556
449
- msgid "MySQL backup file not created"
450
- msgstr ""
451
-
452
- #: ../inc/class-jobtype-dbdump.php:250 ../inc/pro/class-jobtype-dbdump.php:740
453
- #, php-format
454
- msgid "Added database dump \"%1$s\" with %2$s to backup file list"
455
- msgstr ""
456
-
457
- #: ../inc/class-jobtype-dbdump.php:256 ../inc/pro/class-jobtype-dbdump.php:566 ..
458
- #: /inc/pro/class-jobtype-dbdump.php:743
459
- msgid "Database backup done!"
460
- msgstr ""
461
-
462
- #: ../inc/class-page-about.php:394
463
- #, php-format
464
- msgid "%s Welcome"
465
- msgstr ""
466
-
467
- #: ../inc/class-page-about.php:401
468
- msgid "Heads up! You have updated from version 2.x"
469
- msgstr ""
470
-
471
- #: ../inc/class-page-about.php:402
472
- #, php-format
473
- msgid "Please <a href=\"%s\">check your settings</a> after updating from version 2.x:"
474
- msgstr ""
475
-
476
- #: ../inc/class-page-about.php:403
477
- msgid "Dropbox authentication must be re-entered"
478
- msgstr ""
479
-
480
- #: ../inc/class-page-about.php:404
481
- msgid "SugarSync authentication must be re-entered"
482
- msgstr ""
483
-
484
- #: ../inc/class-page-about.php:405
485
- msgid "S3 Settings"
486
- msgstr ""
487
-
488
- #: ../inc/class-page-about.php:406
489
- msgid "Google Storage is now a part of S3 service settings"
490
- msgstr ""
491
-
492
- #: ../inc/class-page-about.php:407
493
- msgid "All your passwords"
494
- msgstr ""
495
-
496
- #: ../inc/class-page-about.php:416
497
- msgid "Welcome to BackWPup Pro"
498
- msgstr ""
499
-
500
- #: ../inc/class-page-about.php:417 ../inc/class-page-backwpup.php:75
501
- msgid ""
502
- "BackWPup’s job wizards make planning and scheduling your backup jobs a "
503
- "breeze."
504
- msgstr ""
505
-
506
- #: ../inc/class-page-about.php:418 ../inc/class-page-about.php:428
507
- msgid ""
508
- "Use your backup archives to save your entire WordPress installation "
509
- "including <code>/wp-content/</code>. Push them to an external storage "
510
- "service if you don’t want to save the backups on the same server. With a "
511
- "single backup archive you are able to restore an installation. Use a tool "
512
- "like phpMyAdmin or a plugin like <a href=\"http://wordpress."
513
- "org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
514
- "backup files."
515
- msgstr ""
516
-
517
- #: ../inc/class-page-about.php:419
518
- #, php-format
519
- msgid ""
520
- "Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use "
521
- "the wizards</a> or plan your backup in expert mode."
522
- msgstr ""
523
-
524
- #: ../inc/class-page-about.php:426
525
- msgid "Welcome to BackWPup"
526
- msgstr ""
527
-
528
- #: ../inc/class-page-about.php:429
529
- msgid ""
530
- "Ready to set up a backup job? Use one of the wizards to plan what you want "
531
- "to save."
532
- msgstr ""
533
-
534
- #: ../inc/class-page-about.php:446
535
- msgid "Please activate your license"
536
- msgstr ""
537
-
538
- #: ../inc/class-page-about.php:447
539
- msgid ""
540
- "Please go to your plugin page and active the license to have the autoupdates "
541
- "enabled."
542
- msgstr ""
543
-
544
- #: ../inc/class-page-about.php:456
545
- msgid "Save your database"
546
- msgstr ""
547
-
548
- #: ../inc/class-page-about.php:459
549
- msgid "Save your database regularly"
550
- msgstr ""
551
-
552
- #: ../inc/class-page-about.php:460
553
- #, php-format
554
- msgid ""
555
- "With BackWPup you can schedule the database backup to run automatically. "
556
- "With a single backup file you can restore your database. You should <a "
557
- "href=\"%s\">set up a backup job</a>, so you will never forget it. There is "
558
- "also an option to repair and optimize the database after each backup."
559
- msgstr ""
560
-
561
- #: ../inc/class-page-about.php:465 ../inc/class-page-about.php:469
562
- msgid "WordPress XML Export"
563
- msgstr ""
564
-
565
- #: ../inc/class-page-about.php:466
566
- msgid ""
567
- "You can choose the built-in WordPress export format in addition or exclusive "
568
- "to save your data. This works in automated backups too of course. The "
569
- "advantage is: you can import these files into a blog with the regular "
570
- "WordPress importer."
571
- msgstr ""
572
-
573
- #: ../inc/class-page-about.php:474
574
- msgid "Save all data from the webserver"
575
- msgstr ""
576
-
577
- #: ../inc/class-page-about.php:477
578
- msgid "Save all files"
579
- msgstr ""
580
-
581
- #: ../inc/class-page-about.php:478
582
- #, php-format
583
- msgid ""
584
- "You can backup all your attachments, also all system files, plugins and "
585
- "themes in a single file. You can <a href=\"%s\">create a job</a> to update a "
586
- "backup copy of your file system only when files are changed."
587
- msgstr ""
588
-
589
- #: ../inc/class-page-about.php:483 ../inc/class-page-about.php:487
590
- msgid "Security!"
591
- msgstr ""
592
-
593
- #: ../inc/class-page-about.php:484
594
- msgid ""
595
- "By default everything is encrypted: connections to external services, local "
596
- "files and access to directories."
597
- msgstr ""
598
-
599
- #: ../inc/class-page-about.php:492 ../inc/class-page-about.php:495
600
- msgid "Cloud Support"
601
- msgstr ""
602
-
603
- #: ../inc/class-page-about.php:496
604
- msgid ""
605
- "BackWPup supports multiple cloud services in parallel. This ensures backups "
606
- "are redundant."
607
- msgstr ""
608
-
609
- #: ../inc/class-page-about.php:504
610
- msgid "Features / differences between Free and Pro"
611
- msgstr ""
612
-
613
- #: ../inc/class-page-about.php:507
614
- msgid "Features"
615
- msgstr ""
616
-
617
- #: ../inc/class-page-about.php:508
618
- msgid "FREE"
619
- msgstr ""
620
-
621
- #: ../inc/class-page-about.php:509
622
- msgid "PRO"
623
- msgstr ""
624
-
625
- #: ../inc/class-page-about.php:512
626
- msgid "Complete database backup"
627
- msgstr ""
628
-
629
- #: ../inc/class-page-about.php:517
630
- msgid "Complete file backup"
631
- msgstr ""
632
-
633
- #: ../inc/class-page-about.php:522
634
- msgid "Database check"
635
- msgstr ""
636
-
637
- #: ../inc/class-page-about.php:527
638
- msgid "Data compression"
639
- msgstr ""
640
-
641
- #: ../inc/class-page-about.php:532 ../inc/class-jobtype-wpexp.php:14
642
- msgid "WordPress XML export"
643
- msgstr ""
644
-
645
- #: ../inc/class-page-about.php:537
646
- msgid "List of installed plugins"
647
- msgstr ""
648
-
649
- #: ../inc/class-page-about.php:542
650
- msgid "Backup archives management"
651
- msgstr ""
652
-
653
- #: ../inc/class-page-about.php:547
654
- msgid "Log file management"
655
- msgstr ""
656
-
657
- #: ../inc/class-page-about.php:552
658
- msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
659
- msgstr ""
660
-
661
- #: ../inc/class-page-about.php:557
662
- msgid "Log report via email"
663
- msgstr ""
664
-
665
- #: ../inc/class-page-about.php:562
666
- msgid "Backup to Microsoft Azure"
667
- msgstr ""
668
-
669
- #: ../inc/class-page-about.php:567
670
- msgid "Backup as email"
671
- msgstr ""
672
-
673
- #: ../inc/class-page-about.php:572
674
- msgid ""
675
- "Backup to S3 services <small>(Amazon, Google Storage, Hosteurope and "
676
- "more)</small>"
677
- msgstr ""
678
-
679
- #: ../inc/class-page-about.php:587
680
- msgid "Backup to FTP server"
681
- msgstr ""
682
-
683
- #: ../inc/class-page-about.php:592
684
- msgid "Backup to your web space"
685
- msgstr ""
686
-
687
- #: ../inc/class-page-about.php:602 ../inc/pro/class-pro.php:131
688
- msgid "Backup to Google Drive"
689
- msgstr ""
690
-
691
- #: ../inc/class-page-about.php:607 ../inc/pro/class-pro.php:112
692
- msgid "Backup to Amazon Glacier"
693
- msgstr ""
694
-
695
- #: ../inc/class-page-about.php:612
696
- msgid "Custom API keys for DropBox and SugarSync"
697
- msgstr ""
698
-
699
- #: ../inc/class-page-about.php:617
700
- msgid "XML database backup as PHPMyAdmin schema"
701
- msgstr ""
702
-
703
- #: ../inc/class-page-about.php:622
704
- msgid "Database backup as mysqldump per command line"
705
- msgstr ""
706
-
707
- #: ../inc/class-page-about.php:627
708
- msgid "Database backup for additional MySQL databases"
709
- msgstr ""
710
-
711
- #: ../inc/class-page-about.php:632
712
- msgid "Import and export job settings as XML"
713
- msgstr ""
714
-
715
- #: ../inc/class-page-about.php:637
716
- msgid "Wizard for system tests"
717
- msgstr ""
718
-
719
- #: ../inc/class-page-about.php:642
720
- msgid "Wizard for scheduled backup jobs"
721
- msgstr ""
722
-
723
- #: ../inc/class-page-about.php:647
724
- msgid "Wizard to import settings and backup jobs"
725
- msgstr ""
726
-
727
- #: ../inc/class-page-about.php:652
728
- msgid "Differential backup of changed directories to Dropbox"
729
- msgstr ""
730
-
731
- #: ../inc/class-page-about.php:657
732
- msgid "Differential backup of changed directories to Rackspace Cloud Files"
733
- msgstr ""
734
-
735
- #: ../inc/class-page-about.php:662
736
- msgid "Differential backup of changed directories to S3"
737
- msgstr ""
738
-
739
- #: ../inc/class-page-about.php:667
740
- msgid "Differential backup of changed directories to MS Azure"
741
- msgstr ""
742
-
743
- #: ../inc/class-page-about.php:672
744
- msgid "<strong>Premium support</strong>"
745
- msgstr ""
746
-
747
- #: ../inc/class-page-about.php:677
748
- msgid "<strong>Dynamically loaded documentation</strong>"
749
- msgstr ""
750
-
751
- #: ../inc/class-page-about.php:682
752
- msgid "<strong>Automatic update from MarketPress</strong>"
753
- msgstr ""
754
-
755
- #: ../inc/class-page-about.php:689 ../inc/class-admin.php:404
756
- msgid "http://marketpress.com/product/backwpup-pro/"
757
- msgstr ""
758
-
759
- #: ../inc/class-page-about.php:689
760
- msgid "GET PRO"
761
- msgstr ""
762
-
763
- #: ../inc/class-cron.php:64
764
- msgid "Aborted, because no progress for one hour!"
765
- msgstr ""
766
-
767
- #: ../inc/class-page-backwpup.php:67
768
- #, php-format
769
- msgid "%s Dashboard"
770
- msgstr ""
771
-
772
- #: ../inc/class-page-backwpup.php:74 ../inc/class-page-backwpup.php:83
773
- msgctxt "Dashboard heading"
774
- msgid "Planning backups"
775
- msgstr ""
776
-
777
- #: ../inc/class-page-backwpup.php:75 ../inc/class-page-backwpup.php:84
778
- msgid ""
779
- "Use your backup archives to save your entire WordPress installation "
780
- "including <code>/wp-content/</code>. Push them to an external storage "
781
- "service if you don’t want to save the backups on the same server."
782
- msgstr ""
783
-
784
- #: ../inc/class-page-backwpup.php:76 ../inc/class-page-backwpup.php:85
785
- msgctxt "Dashboard heading"
786
- msgid "Restoring backups"
787
- msgstr ""
788
-
789
- #: ../inc/class-page-backwpup.php:77 ../inc/class-page-backwpup.php:86
790
- msgid ""
791
- "With a single backup archive you are able to restore an installation. Use a "
792
- "tool like phpMyAdmin or a plugin like <a href=\"http://wordpress."
793
- "org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
794
- "backup files."
795
- msgstr ""
796
-
797
- #: ../inc/class-page-backwpup.php:78 ../inc/class-page-backwpup.php:87
798
- msgctxt "Dashboard heading"
799
- msgid "Ready to set up a backup job?"
800
- msgstr ""
801
-
802
- #: ../inc/class-page-backwpup.php:79
803
- #, php-format
804
- msgid ""
805
- "Use one of the wizards to plan a backup, or use <a href=\"%s\">expert mode</a> "
806
- "for full control over all options."
807
- msgstr ""
808
-
809
- #: ../inc/class-page-backwpup.php:79 ../inc/class-page-backwpup.php:89
810
- msgid ""
811
- "<strong>Please note: You are solely responsible for the security of your "
812
- "data; the authors of this plugin are not.</strong>"
813
- msgstr ""
814
-
815
- #: ../inc/class-page-backwpup.php:84
816
- msgid ""
817
- "Use the short links in the <strong>First steps</strong> box to plan and "
818
- "schedule backup jobs."
819
- msgstr ""
820
-
821
- #: ../inc/class-page-backwpup.php:88
822
- #, php-format
823
- msgid "<a href=\"%s\">Add a new backup job</a> and plan what you want to save."
824
- msgstr ""
825
-
826
- #: ../inc/class-page-backwpup.php:96
827
- msgid "First Steps"
828
- msgstr ""
829
-
830
- #: ../inc/class-page-backwpup.php:100
831
- msgid "Test the installation"
832
- msgstr ""
833
-
834
- #: ../inc/class-page-backwpup.php:101 ../inc/class-page-backwpup.php:104
835
- msgid "Create a Job"
836
- msgstr ""
837
-
838
- #: ../inc/class-page-backwpup.php:103
839
- msgid "Check the installation"
840
- msgstr ""
841
-
842
- #: ../inc/class-page-backwpup.php:106
843
- msgid "Run the created job"
844
- msgstr ""
845
-
846
- #: ../inc/class-page-backwpup.php:107
847
- msgid "Check the job log"
848
- msgstr ""
849
-
850
- #: ../inc/class-page-backwpup.php:115
851
- msgid "One click backup"
852
- msgstr ""
853
-
854
- #: ../inc/class-page-backwpup.php:117
855
- msgid "Generate a database backup of WordPress tables and download it right away!"
856
- msgstr ""
857
-
858
- #: ../inc/class-page-backwpup.php:117
859
- msgid "Download database backup"
860
- msgstr ""
861
-
862
- #: ../inc/class-page-backwpup.php:123
863
- msgid "BackWPup News"
864
- msgstr ""
865
-
866
- #: ../inc/class-page-backwpup.php:128
867
- msgctxt "BackWPup News RSS Feed URL"
868
- msgid "https://marketpress.com/tag/backwpup/feed/"
869
- msgstr ""
870
-
871
- #: ../inc/class-page-backwpup.php:133
872
- #, php-format
873
- msgid "<strong>RSS Error</strong>: %s"
874
- msgstr ""
875
-
876
- #: ../inc/class-page-backwpup.php:137
877
- msgid ""
878
- "An error has occurred, which probably means the feed is down. Try again "
879
- "later."
880
- msgstr ""
881
-
882
- #: ../inc/class-page-backwpup.php:152
883
- msgid "Untitled"
884
- msgstr ""
885
-
886
- #: ../inc/class-page-backwpup.php:216 ../inc/pro/class-page-wizard.php:358
887
- msgid "Start wizard"
888
- msgstr ""
889
-
890
- #: ../inc/class-page-backwpup.php:223
891
- msgid "Video: Introduction"
892
- msgstr ""
893
-
894
- #: ../inc/class-page-backwpup.php:228
895
- msgid "Video: Settings"
896
- msgstr ""
897
-
898
- #: ../inc/class-page-backwpup.php:233
899
- msgid "Video: Daily Backups"
900
- msgstr ""
901
-
902
- #: ../inc/class-page-backwpup.php:238
903
- msgid "Video: Creating Full Backups"
904
- msgstr ""
905
-
906
- #: ../inc/class-page-backwpup.php:243
907
- msgid "Video: Restoring Backups"
908
- msgstr ""
909
-
910
- #: ../inc/class-page-backwpup.php:258
911
- msgctxt "Pro teaser box"
912
- msgid "Thank you for using BackWPup!"
913
- msgstr ""
914
-
915
- #: ../inc/class-page-backwpup.php:261
916
- msgctxt "Pro teaser box"
917
- msgid "Get access to:"
918
- msgstr ""
919
-
920
- #: ../inc/class-page-backwpup.php:263
921
- msgctxt "Pro teaser box"
922
- msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
923
- msgstr ""
924
-
925
- #: ../inc/class-page-backwpup.php:264
926
- msgctxt "Pro teaser box"
927
- msgid "Differential backups to Google Drive and other cloud storage service."
928
- msgstr ""
929
-
930
- #: ../inc/class-page-backwpup.php:265
931
- msgctxt "Pro teaser box"
932
- msgid "Easy-peasy wizards to create and schedule backup jobs."
933
- msgstr ""
934
-
935
- #: ../inc/class-page-backwpup.php:266
936
- msgctxt "Pro teaser box, link text"
937
- msgid "And more…"
938
- msgstr ""
939
-
940
- #: ../inc/class-page-backwpup.php:268
941
- msgctxt "Pro teaser box, link title"
942
- msgid "Get BackWPup Pro now"
943
- msgstr ""
944
-
945
- #: ../inc/class-page-backwpup.php:268
946
- msgctxt "Pro teaser box, link text"
947
- msgid "Get BackWPup Pro now"
948
- msgstr ""
949
-
950
- #: ../inc/class-page-backwpup.php:286
951
- msgid "Last logs"
952
- msgstr ""
953
-
954
- #: ../inc/class-page-backwpup.php:288
955
- msgid "Result"
956
- msgstr ""
957
-
958
- #: ../inc/class-page-backwpup.php:321
959
- #, php-format
960
- msgid "%d ERROR"
961
- msgstr ""
962
-
963
- #: ../inc/class-page-backwpup.php:323
964
- #, php-format
965
- msgid "%d WARNING"
966
- msgstr ""
967
-
968
- #: ../inc/class-page-backwpup.php:325
969
- msgid "OK"
970
- msgstr ""
971
-
972
- #: ../inc/class-page-backwpup.php:349
973
- msgid "Next scheduled jobs"
974
- msgstr ""
975
-
976
- #: ../inc/class-page-backwpup.php:376
977
- #, php-format
978
- msgid "working since %d seconds"
979
- msgstr ""
980
-
981
- #: ../inc/class-page-backwpup.php:378 ../inc/class-page-jobs.php:616
982
- msgid "Abort"
983
- msgstr ""
984
-
985
- #: ../inc/class-page-backwpup.php:392 ../inc/class-page-jobs.php:280 ../inc/class-
986
- #: page-jobs.php:289 ../inc/class-job.php:335
987
- msgid "Not scheduled!"
988
- msgstr ""
989
-
990
- #: ../inc/class-page-backwpup.php:394
991
- msgid "Edit Job"
992
- msgstr ""
993
-
994
- #: ../inc/class-jobtype-file.php:15
995
- msgid "Files"
996
- msgstr ""
997
-
998
- #: ../inc/class-jobtype-file.php:16
999
- msgid "File backup"
1000
- msgstr ""
1001
-
1002
- #: ../inc/class-jobtype-file.php:73
1003
- msgid "Folders to backup"
1004
- msgstr ""
1005
-
1006
- #: ../inc/class-jobtype-file.php:77
1007
- msgid "Backup WordPress install folder"
1008
- msgstr ""
1009
-
1010
- #: ../inc/class-jobtype-file.php:88 ../inc/class-jobtype-file.php:125 ..
1011
- #: /inc/class-jobtype-file.php:162 ../inc/class-jobtype-file.php:199 ../inc/class-
1012
- #: jobtype-file.php:236
1013
- #, php-format
1014
- msgid "Path as set by user (symlink?): %s"
1015
- msgstr ""
1016
-
1017
- #: ../inc/class-jobtype-file.php:91 ../inc/class-jobtype-file.php:128 ..
1018
- #: /inc/class-jobtype-file.php:165 ../inc/class-jobtype-file.php:202 ../inc/class-
1019
- #: jobtype-file.php:239
1020
- msgid "Exclude:"
1021
- msgstr ""
1022
-
1023
- #: ../inc/class-jobtype-file.php:102 ../inc/class-jobtype-file.php:139 ..
1024
- #: /inc/class-jobtype-file.php:176 ../inc/class-jobtype-file.php:213 ../inc/class-
1025
- #: jobtype-file.php:250
1026
- msgid "Excluded by .donotbackup file!"
1027
- msgstr ""
1028
-
1029
- #: ../inc/class-jobtype-file.php:114
1030
- msgid "Backup content folder"
1031
- msgstr ""
1032
-
1033
- #: ../inc/class-jobtype-file.php:151
1034
- msgid "Backup plugins"
1035
- msgstr ""
1036
-
1037
- #: ../inc/class-jobtype-file.php:188
1038
- msgid "Backup themes"
1039
- msgstr ""
1040
-
1041
- #: ../inc/class-jobtype-file.php:225 ../inc/pro/class-wizard-job.php:703 ..
1042
- #: /inc/pro/class-wizard-job.php:704
1043
- msgid "Backup uploads folder"
1044
- msgstr ""
1045
-
1046
- #: ../inc/class-jobtype-file.php:262
1047
- msgid "Extra folders to backup"
1048
- msgstr ""
1049
-
1050
- #: ../inc/class-jobtype-file.php:264
1051
- msgid ""
1052
- "Separate folder names with a line-break or a comma. Folders must be set with "
1053
- "their absolute path!"
1054
- msgstr ""
1055
-
1056
- #: ../inc/class-jobtype-file.php:269
1057
- msgid "Exclude from backup"
1058
- msgstr ""
1059
-
1060
- #: ../inc/class-jobtype-file.php:273
1061
- msgid "Thumbnails in uploads"
1062
- msgstr ""
1063
-
1064
- #: ../inc/class-jobtype-file.php:275
1065
- msgid ""
1066
- "All images with -???x???. will be excluded. Use a plugin like Regenerate "
1067
- "Thumbnails to rebuild them after a restore."
1068
- msgstr ""
1069
-
1070
- #: ../inc/class-jobtype-file.php:277
1071
- msgid "Don't backup thumbnails from the site's uploads folder."
1072
- msgstr ""
1073
-
1074
- #: ../inc/class-jobtype-file.php:281
1075
- msgid "Exclude files/folders from backup"
1076
- msgstr ""
1077
-
1078
- #: ../inc/class-jobtype-file.php:283
1079
- msgid ""
1080
- "Separate file / folder name parts with a line-break or a comma. For example "
1081
- "/logs/,.log,.tmp"
1082
- msgstr ""
1083
-
1084
- #: ../inc/class-jobtype-file.php:288
1085
- msgid "Special options"
1086
- msgstr ""
1087
-
1088
- #: ../inc/class-jobtype-file.php:292
1089
- msgid "Include special files"
1090
- msgstr ""
1091
-
1092
- #: ../inc/class-jobtype-file.php:294
1093
- msgid ""
1094
- "If the WordPress root folder is not included in this backup job, check this "
1095
- "option to additionally include wp-config.php, robots.txt, .htaccess, ."
1096
- "htpasswd and favicon.ico into the backup. Your wp-config.php will be "
1097
- "included even if you placed it in the parent directory of your root folder."
1098
- msgstr ""
1099
-
1100
- #: ../inc/class-jobtype-file.php:296
1101
- msgid ""
1102
- "Backup wp-config.php, robots.txt, .htaccess, .htpasswd and favicon.ico from "
1103
- "root."
1104
- msgstr ""
1105
-
1106
- #: ../inc/class-jobtype-file.php:300
1107
- msgid "Use one folder above as WP install folder"
1108
- msgstr ""
1109
-
1110
- #: ../inc/class-jobtype-file.php:304
1111
- msgid ""
1112
- "Use one folder above as WordPress install folder! That can be helpful, if "
1113
- "you would backup files and folder that are not in the WordPress installation "
1114
- "folder. Or if you made a \"<a href=\"https://codex.wordpress."
1115
- "org/Giving_WordPress_Its_Own_Directory\">Giving WordPress Its Own "
1116
- "Directory</a>\" installation. Excludes must be configured again."
1117
- msgstr ""
1118
-
1119
- #: ../inc/class-jobtype-file.php:387
1120
- #, php-format
1121
- msgid "%d. Trying to make a list of folders to back up&#160;&hellip;"
1122
- msgstr ""
1123
-
1124
- #: ../inc/class-jobtype-file.php:503 ../inc/class-jobtype-file.php:508 ..
1125
- #: /inc/class-jobtype-file.php:513 ../inc/class-jobtype-file.php:517 ../inc/class-
1126
- #: jobtype-file.php:521 ../inc/class-jobtype-file.php:525
1127
- #, php-format
1128
- msgid "Added \"%s\" to backup file list"
1129
- msgstr ""
1130
-
1131
- #: ../inc/class-jobtype-file.php:530
1132
- msgid "No files/folder for the backup."
1133
- msgstr ""
1134
-
1135
- #: ../inc/class-jobtype-file.php:532
1136
- #, php-format
1137
- msgid "%1$d folders to backup."
1138
- msgstr ""
1139
-
1140
- #: ../inc/class-jobtype-file.php:571
1141
- #, php-format
1142
- msgid "Folder \"%s\" is not readable!"
1143
- msgstr ""
1144
-
1145
- #: ../inc/class-wp-cli.php:23
1146
- msgid "A job is already running."
1147
- msgstr ""
1148
-
1149
- #: ../inc/class-wp-cli.php:35
1150
- msgid "No job ID specified!"
1151
- msgstr ""
1152
-
1153
- #: ../inc/class-wp-cli.php:41
1154
- msgid "Job ID does not exist!"
1155
- msgstr ""
1156
-
1157
- #: ../inc/class-wp-cli.php:54
1158
- msgid "Nothing to abort!"
1159
- msgstr ""
1160
-
1161
- #: ../inc/class-wp-cli.php:59 ../inc/class-page-jobs.php:479
1162
- msgid "Job will be terminated."
1163
- msgstr ""
1164
-
1165
- #: ../inc/class-wp-cli.php:105
1166
- msgid "No job running"
1167
- msgstr ""
1168
-
1169
- #: ../inc/class-destination-s3-v1.php:75 ../inc/class-destination-s3.php:78
1170
- msgid "Select a S3 service"
1171
- msgstr ""
1172
-
1173
- #: ../inc/class-destination-s3-v1.php:77 ../inc/class-destination-s3.php:80 ..
1174
- #: /inc/pro/class-destination-s3-v1.php:18 ../inc/pro/class-destination-s3.php:18
1175
- msgid "Amazon S3 Region"
1176
- msgstr ""
1177
-
1178
- #: ../inc/class-destination-s3-v1.php:78 ../inc/class-destination-s3.php:81 ..
1179
- #: /inc/pro/class-destination-s3-v1.php:19 ../inc/pro/class-destination-s3.php:19
1180
- msgid "Amazon S3: US Standard"
1181
- msgstr ""
1182
-
1183
- #: ../inc/class-destination-s3-v1.php:79 ../inc/class-destination-s3.php:82 ..
1184
- #: /inc/pro/class-destination-s3-v1.php:20 ../inc/pro/class-destination-s3.php:20
1185
- msgid "Amazon S3: US West (Northern California)"
1186
- msgstr ""
1187
-
1188
- #: ../inc/class-destination-s3-v1.php:80 ../inc/class-destination-s3.php:83 ..
1189
- #: /inc/pro/class-destination-s3-v1.php:21 ../inc/pro/class-destination-s3.php:21
1190
- msgid "Amazon S3: US West (Oregon)"
1191
- msgstr ""
1192
-
1193
- #: ../inc/class-destination-s3-v1.php:81 ../inc/class-destination-s3.php:84 ..
1194
- #: /inc/pro/class-destination-s3-v1.php:22 ../inc/pro/class-destination-s3.php:22
1195
- msgid "Amazon S3: EU (Ireland)"
1196
- msgstr ""
1197
-
1198
- #: ../inc/class-destination-s3-v1.php:82 ../inc/class-destination-s3.php:85 ..
1199
- #: /inc/pro/class-destination-s3.php:23
1200
- msgid "Amazon S3: EU (Germany)"
1201
- msgstr ""
1202
-
1203
- #: ../inc/class-destination-s3-v1.php:83 ../inc/class-destination-s3.php:86 ..
1204
- #: /inc/pro/class-destination-s3-v1.php:23 ../inc/pro/class-destination-s3.php:24
1205
- msgid "Amazon S3: Asia Pacific (Tokyo)"
1206
- msgstr ""
1207
-
1208
- #: ../inc/class-destination-s3-v1.php:84 ../inc/class-destination-s3.php:87 ..
1209
- #: /inc/pro/class-destination-s3-v1.php:24 ../inc/pro/class-destination-s3.php:25
1210
- msgid "Amazon S3: Asia Pacific (Singapore)"
1211
- msgstr ""
1212
-
1213
- #: ../inc/class-destination-s3-v1.php:85 ../inc/class-destination-s3.php:88 ..
1214
- #: /inc/pro/class-destination-s3-v1.php:25 ../inc/pro/class-destination-s3.php:26
1215
- msgid "Amazon S3: Asia Pacific (Sydney)"
1216
- msgstr ""
1217
-
1218
- #: ../inc/class-destination-s3-v1.php:86 ../inc/class-destination-s3.php:89 ..
1219
- #: /inc/pro/class-destination-s3-v1.php:26 ../inc/pro/class-destination-s3.php:27
1220
- msgid "Amazon S3: South America (Sao Paulo)"
1221
- msgstr ""
1222
-
1223
- #: ../inc/class-destination-s3-v1.php:87 ../inc/class-destination-s3.php:90 ..
1224
- #: /inc/pro/class-destination-s3-v1.php:27 ../inc/pro/class-destination-s3.php:28
1225
- msgid "Amazon S3: China (Beijing)"
1226
- msgstr ""
1227
-
1228
- #: ../inc/class-destination-s3-v1.php:88 ../inc/pro/class-destination-s3-v1.php:28
1229
- msgid "Google Storage (Interoperable Access)"
1230
- msgstr ""
1231
-
1232
- #: ../inc/class-destination-s3-v1.php:89 ../inc/class-destination-s3.php:94 ..
1233
- #: /inc/pro/class-destination-s3-v1.php:30 ../inc/pro/class-destination-s3.php:32
1234
- msgid "Dream Host Cloud Storage"
1235
- msgstr ""
1236
-
1237
- #: ../inc/class-destination-s3-v1.php:90 ../inc/class-destination-s3.php:95 ..
1238
- #: /inc/pro/class-destination-s3-v1.php:31 ../inc/pro/class-destination-s3.php:33
1239
- msgid "GreenQloud Storage Qloud"
1240
- msgstr ""
1241
-
1242
- #: ../inc/class-destination-s3-v1.php:95 ../inc/class-destination-s3.php:100
1243
- msgid "Or a S3 Server URL"
1244
- msgstr ""
1245
-
1246
- #: ../inc/class-destination-s3-v1.php:102 ../inc/class-destination-s3.php:107
1247
- msgid "S3 Access Keys"
1248
- msgstr ""
1249
-
1250
- #: ../inc/class-destination-s3-v1.php:106 ../inc/class-destination-s3.php:111 ..
1251
- #: /inc/pro/class-destination-glacier.php:52
1252
- msgid "Access Key"
1253
- msgstr ""
1254
-
1255
- #: ../inc/class-destination-s3-v1.php:113 ../inc/class-destination-s3.php:118 ..
1256
- #: /inc/pro/class-destination-glacier.php:59
1257
- msgid "Secret Key"
1258
- msgstr ""
1259
-
1260
- #: ../inc/class-destination-s3-v1.php:121 ../inc/class-destination-s3.php:126
1261
- msgid "S3 Bucket"
1262
- msgstr ""
1263
-
1264
- #: ../inc/class-destination-s3-v1.php:125 ../inc/class-destination-s3.php:130
1265
- msgid "Bucket selection"
1266
- msgstr ""
1267
-
1268
- #: ../inc/class-destination-s3-v1.php:138 ../inc/class-destination-s3.php:143
1269
- msgid "Create a new bucket"
1270
- msgstr ""
1271
-
1272
- #: ../inc/class-destination-s3-v1.php:145 ../inc/class-destination-s3.php:150
1273
- msgid "S3 Backup settings"
1274
- msgstr ""
1275
-
1276
- #: ../inc/class-destination-s3-v1.php:149 ../inc/class-destination-s3.php:154 ..
1277
- #: /inc/class-destination-rsc.php:100
1278
- msgid "Folder in bucket"
1279
- msgstr ""
1280
-
1281
- #: ../inc/class-destination-s3-v1.php:171 ../inc/class-destination-s3.php:186
1282
- msgid "Amazon specific settings"
1283
- msgstr ""
1284
-
1285
- #: ../inc/class-destination-s3-v1.php:175 ../inc/class-destination-s3-v1.php:177 .
1286
- #: ./inc/class-destination-s3.php:190 ../inc/class-destination-s3.php:192
1287
- msgid "Amazon: Storage Class"
1288
- msgstr ""
1289
-
1290
- #: ../inc/class-destination-s3-v1.php:178 ../inc/class-destination-s3.php:193
1291
- msgid "Standard"
1292
- msgstr ""
1293
-
1294
- #: ../inc/class-destination-s3-v1.php:179 ../inc/class-destination-s3.php:194
1295
- msgid "Standard-Infrequent Access"
1296
- msgstr ""
1297
-
1298
- #: ../inc/class-destination-s3-v1.php:180 ../inc/class-destination-s3.php:195
1299
- msgid "Reduced Redundancy"
1300
- msgstr ""
1301
-
1302
- #: ../inc/class-destination-s3-v1.php:185 ../inc/class-destination-s3.php:200
1303
- msgid "Server side encryption"
1304
- msgstr ""
1305
-
1306
- #: ../inc/class-destination-s3-v1.php:189 ../inc/class-destination-s3.php:204
1307
- msgid "Save files encrypted (AES256) on server."
1308
- msgstr ""
1309
-
1310
- #: ../inc/class-destination-s3-v1.php:250 ../inc/class-destination-s3.php:264
1311
- #, php-format
1312
- msgid "Bucket %1$s created."
1313
- msgstr ""
1314
-
1315
- #: ../inc/class-destination-s3-v1.php:252 ../inc/pro/class-destination-s3-v1.php:
1316
- #: 136
1317
- #, php-format
1318
- msgid "Bucket %s could not be created."
1319
- msgstr ""
1320
-
1321
- #: ../inc/class-destination-s3-v1.php:298 ../inc/class-destination-s3-v1.php:420 .
1322
- #: ./inc/class-destination-s3-v1.php:471 ../inc/class-destination-s3.php:307 ..
1323
- #: /inc/class-destination-s3.php:432 ../inc/class-destination-s3.php:484 ..
1324
- #: /inc/class-destination-s3.php:518 ../inc/class-destination-s3.php:578 ..
1325
- #: /inc/pro/class-destination-s3-v1.php:314 ../inc/pro/class-destination-s3.php:323
1326
- #, php-format
1327
- msgid "S3 Service API: %s"
1328
- msgstr ""
1329
-
1330
- #: ../inc/class-destination-s3-v1.php:363 ../inc/class-destination-s3.php:371
1331
- #, php-format
1332
- msgid "%d. Trying to send backup file to S3 Service&#160;&hellip;"
1333
- msgstr ""
1334
-
1335
- #: ../inc/class-destination-s3-v1.php:384 ../inc/class-destination-s3.php:384 ..
1336
- #: /inc/pro/class-destination-s3-v1.php:182 ../inc/pro/class-destination-s3.php:178
1337
- #, php-format
1338
- msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
1339
- msgstr ""
1340
-
1341
- #: ../inc/class-destination-s3-v1.php:387 ../inc/class-destination-s3.php:387 ..
1342
- #: /inc/pro/class-destination-s3-v1.php:185 ../inc/pro/class-destination-s3.php:181
1343
- #, php-format
1344
- msgid "S3 Bucket \"%s\" does not exist!"
1345
- msgstr ""
1346
-
1347
- #: ../inc/class-destination-s3-v1.php:393 ../inc/class-destination-s3.php:406
1348
- msgid "Starting upload to S3 Service&#160;&hellip;"
1349
- msgstr ""
1350
-
1351
- #: ../inc/class-destination-s3-v1.php:411 ../inc/class-destination-s3.php:509 ..
1352
- #: /inc/pro/class-destination-glacier.php:363
1353
- #, php-format
1354
- msgid "Backup transferred to %s."
1355
- msgstr ""
1356
-
1357
- #: ../inc/class-destination-s3-v1.php:416 ../inc/class-destination-s3.php:514
1358
- #, php-format
1359
- msgid "Cannot transfer backup to S3! (%1$d) %2$s"
1360
- msgstr ""
1361
-
1362
- #: ../inc/class-destination-s3-v1.php:461 ../inc/class-destination-s3.php:568
1363
- #, php-format
1364
- msgid "Cannot delete backup from %s."
1365
- msgstr ""
1366
-
1367
- #: ../inc/class-destination-s3-v1.php:465 ../inc/class-destination-s3.php:572
1368
- #, php-format
1369
- msgid "One file deleted on S3 Bucket."
1370
- msgid_plural "%d files deleted on S3 Bucket"
1371
- msgstr[0] ""
1372
- msgstr[1] ""
1373
-
1374
- #: ../inc/class-destination-s3-v1.php:578 ../inc/class-destination-s3.php:678 ..
1375
- #: /inc/pro/class-destination-glacier.php:538
1376
- msgid "Missing secret access key!"
1377
- msgstr ""
1378
-
1379
- #: ../inc/class-destination-s3-v1.php:584 ../inc/class-destination-s3.php:684
1380
- msgid "No bucket found!"
1381
- msgstr ""
1382
-
1383
- #: ../inc/class-create-archive.php:71
1384
- msgid "The file name of an archive cannot be empty."
1385
- msgstr ""
1386
-
1387
- #: ../inc/class-create-archive.php:79
1388
- #, php-format
1389
- msgctxt "%s = Folder name"
1390
- msgid "Folder %s for archive not found"
1391
- msgstr ""
1392
-
1393
- #: ../inc/class-create-archive.php:85 ../inc/class-create-archive.php:120 ..
1394
- #: /inc/class-create-archive.php:137 ../inc/class-mysqldump.php:133
1395
- msgid "Functions for gz compression not available"
1396
- msgstr ""
1397
-
1398
- #: ../inc/class-create-archive.php:92 ../inc/class-create-archive.php:143
1399
- msgid "Functions for bz2 compression not available"
1400
- msgstr ""
1401
-
1402
- #: ../inc/class-create-archive.php:116
1403
- #, php-format
1404
- msgctxt "ZipArchive open() result"
1405
- msgid "Cannot create zip archive: %d"
1406
- msgstr ""
1407
-
1408
- #: ../inc/class-create-archive.php:149
1409
- #, php-format
1410
- msgctxt "%s = file name"
1411
- msgid "Method to archive file %s not detected"
1412
- msgstr ""
1413
-
1414
- #: ../inc/class-create-archive.php:154
1415
- msgid "Cannot open archive file"
1416
- msgstr ""
1417
-
1418
- #: ../inc/class-create-archive.php:174 ../inc/class-create-archive.php:371
1419
- #, php-format
1420
- msgid "PclZip archive add error: %s"
1421
- msgstr ""
1422
-
1423
- #: ../inc/class-create-archive.php:184
1424
- msgid "ZIP archive cannot be closed correctly."
1425
- msgstr ""
1426
-
1427
- #: ../inc/class-create-archive.php:238
1428
- msgid "File name cannot be empty"
1429
- msgstr ""
1430
-
1431
- #: ../inc/class-create-archive.php:247
1432
- #, php-format
1433
- msgctxt "File to add to archive"
1434
- msgid "File %s does not exist or is not readable"
1435
- msgstr ""
1436
-
1437
- #: ../inc/class-create-archive.php:278 ../inc/class-create-archive.php:294 ..
1438
- #: /inc/class-create-archive.php:414 ../inc/class-create-archive.php:418
1439
- msgid "This archive method can only add one file"
1440
- msgstr ""
1441
-
1442
- #: ../inc/class-create-archive.php:283 ../inc/class-create-archive.php:299
1443
- #, php-format
1444
- msgid "Cannot open source file %s to archive"
1445
- msgstr ""
1446
-
1447
- #: ../inc/class-create-archive.php:333
1448
- msgid "ZIP archive cannot be closed correctly"
1449
- msgstr ""
1450
-
1451
- #: ../inc/class-create-archive.php:351 ../inc/class-create-archive.php:360 ..
1452
- #: /inc/class-create-archive.php:429
1453
- #, php-format
1454
- msgid "Cannot add \"%s\" to zip archive!"
1455
- msgstr ""
1456
-
1457
- #: ../inc/class-create-archive.php:396
1458
- msgid "Folder name cannot be empty"
1459
- msgstr ""
1460
-
1461
- #: ../inc/class-create-archive.php:401
1462
- #, php-format
1463
- msgctxt "Folder path to add to archive"
1464
- msgid "Folder %s does not exist or is not readable"
1465
- msgstr ""
1466
-
1467
- #: ../inc/class-create-archive.php:451
1468
- #, php-format
1469
- msgctxt "Text of ZipArchive status Message"
1470
- msgid "ZipArchive returns status: %s"
1471
- msgstr ""
1472
-
1473
- #: ../inc/class-create-archive.php:481
1474
- #, php-format
1475
- msgid "File name \"%1$s\" is too long to be saved correctly in %2$s archive!"
1476
- msgstr ""
1477
-
1478
- #: ../inc/class-create-archive.php:484
1479
- #, php-format
1480
- msgid "File path \"%1$s\" is too long to be saved correctly in %2$s archive!"
1481
- msgstr ""
1482
-
1483
- #: ../inc/class-create-archive.php:496
1484
- #, php-format
1485
- msgid "Cannot open source file %s for archiving"
1486
- msgstr ""
1487
-
1488
- #: ../inc/class-create-archive.php:501 ../inc/class-create-archive.php:502 ..
1489
- #: /inc/class-create-archive.php:601 ../inc/class-create-archive.php:602
1490
- msgid "Unknown"
1491
- msgstr ""
1492
-
1493
- #: ../inc/class-create-archive.php:592
1494
- #, php-format
1495
- msgid "Folder name \"%1$s\" is too long to be saved correctly in %2$s archive!"
1496
- msgstr ""
1497
-
1498
- #: ../inc/class-create-archive.php:595
1499
- #, php-format
1500
- msgid "Folder path \"%1$s\" is too long to be saved correctly in %2$s archive!"
1501
- msgstr ""
1502
-
1503
- #: ../inc/class-create-archive.php:676
1504
- #, php-format
1505
- msgid ""
1506
- "If %s will be added to your backup archive, the archive will be too large "
1507
- "for operations with this PHP Version. You might want to consider splitting "
1508
- "the backup job in multiple jobs with less files each."
1509
- msgstr ""
1510
-
1511
- #: ../inc/class-admin.php:137 ../inc/class-help.php:29
1512
- msgid "https://marketpress.com/documentation/backwpup-pro/"
1513
- msgstr ""
1514
-
1515
- #: ../inc/class-admin.php:137 ../inc/pro/class-marketpress-documentation.php:149 .
1516
- #: ./inc/pro/class-pro.php:197 ../inc/pro/class-pro.php:197
1517
- msgid "Documentation"
1518
- msgstr ""
1519
-
1520
- #: ../inc/class-admin.php:139 ../inc/class-help.php:26
1521
- msgid "https://marketpress.com/support/forum/plugins/backwpup-pro/"
1522
- msgstr ""
1523
-
1524
- #: ../inc/class-admin.php:139 ../inc/class-help.php:26
1525
- msgid "Pro Support"
1526
- msgstr ""
1527
-
1528
- #: ../inc/class-admin.php:141 ../inc/class-help.php:28
1529
- msgid "http://wordpress.org/support/plugin/backwpup/"
1530
- msgstr ""
1531
-
1532
- #: ../inc/class-admin.php:141 ../inc/class-help.php:28
1533
- msgid "Support"
1534
- msgstr ""
1535
-
1536
- #: ../inc/class-admin.php:154
1537
- msgid "BackWPup Dashboard"
1538
- msgstr ""
1539
-
1540
- #: ../inc/class-admin.php:154
1541
- msgid "Dashboard"
1542
- msgstr ""
1543
-
1544
- #: ../inc/class-admin.php:171 ../inc/class-admin.php:171 ../inc/class-adminbar.
1545
- #: php:86 ../inc/class-page-settings.php:120
1546
- msgid "Jobs"
1547
- msgstr ""
1548
-
1549
- #: ../inc/class-admin.php:186 ../inc/class-admin.php:186
1550
- msgid "Add new job"
1551
- msgstr ""
1552
-
1553
- #: ../inc/class-admin.php:216 ../inc/class-admin.php:216 ../inc/class-adminbar.
1554
- #: php:110
1555
- msgid "Backups"
1556
- msgstr ""
1557
-
1558
- #: ../inc/class-admin.php:231 ../inc/class-admin.php:231
1559
- msgid "Settings"
1560
- msgstr ""
1561
-
1562
- #: ../inc/class-admin.php:244 ../inc/class-admin.php:244
1563
- msgid "About"
1564
- msgstr ""
1565
-
1566
- #: ../inc/class-admin.php:281 ../inc/class-admin.php:287
1567
- msgid "Cheating, huh?"
1568
- msgstr ""
1569
-
1570
- #: ../inc/class-admin.php:402
1571
- msgid "http://marketpress.com"
1572
- msgstr ""
1573
-
1574
- #: ../inc/class-admin.php:402 ../inc/class-admin.php:402
1575
- msgid "MarketPress"
1576
- msgstr ""
1577
-
1578
- #: ../inc/class-admin.php:404
1579
- #, php-format
1580
- msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
1581
- msgstr ""
1582
-
1583
- #: ../inc/class-admin.php:423
1584
- #, php-format
1585
- msgid "version %s"
1586
- msgstr ""
1587
-
1588
- #: ../inc/class-admin.php:468
1589
- msgid "Add BackWPup Role"
1590
- msgstr ""
1591
-
1592
- #: ../inc/class-admin.php:472
1593
- msgid "&mdash; No additional role for BackWPup &mdash;"
1594
- msgstr ""
1595
-
1596
- #: ../inc/class-admin.php:544
1597
- #, php-format
1598
- msgid ""
1599
- "<strong>Important:</strong> before updating, please <a href=\"%1$s\">back up "
1600
- "your database and files</a> with <a href=\"http://marketpress."
1601
- "de/product/backwpup-pro/\">%2$s</a>. For help with updates, visit the <a "
1602
- "href=\"http://codex.wordpress.org/Updating_WordPress\">Updating WordPress</a> "
1603
- "Codex page."
1604
- msgstr ""
1605
-
1606
- #: ../inc/class-admin.php:548 ../inc/class-admin.php:552
1607
- #, php-format
1608
- msgid ""
1609
- "<strong>Important:</strong> before installing this plugin, please <a "
1610
- "href=\"%1$s\">back up your database and files</a> with <a href=\"http:"
1611
- "//marketpress.de/product/backwpup-pro/\">%2$s</a>."
1612
- msgstr ""
1613
-
1614
- #: ../inc/class-admin.php:566
1615
- msgid "BackWPup Role"
1616
- msgstr ""
1617
-
1618
- #: ../inc/class-admin.php:593
1619
- msgid "Administrator"
1620
- msgstr ""
1621
-
1622
- #: ../inc/class-easycron.php:179
1623
- #, php-format
1624
- msgid "EasyCron.com API returns (%s): %s"
1625
- msgstr ""
1626
-
1627
- #: ../inc/class-easycron.php:188
1628
- msgid "EasyCron"
1629
- msgstr ""
1630
-
1631
- #: ../inc/class-easycron.php:189
1632
- msgid ""
1633
- "Here you can setup your <a href=\"https://www.easycron.com/user/token?"
1634
- "ref=36673\" class=\"help-tip\" title=\"Affiliate Link!\">EasyCron.com API key</a> "
1635
- "to use this service."
1636
- msgstr ""
1637
-
1638
- #: ../inc/class-easycron.php:192
1639
- msgid "Api key:"
1640
- msgstr ""
1641
-
1642
- #: ../inc/class-easycron.php:200
1643
- msgid "Trigger WordPress Cron:"
1644
- msgstr ""
1645
-
1646
- #: ../inc/class-easycron.php:204
1647
- msgid ""
1648
- "If you check this box, a cron job will be created on EasyCron that all 5 "
1649
- "Minutes calls the WordPress cron."
1650
- msgstr ""
1651
-
1652
- #: ../inc/class-destination-sugarsync.php:22
1653
- msgid "Sugarsync Login"
1654
- msgstr ""
1655
-
1656
- #: ../inc/class-destination-sugarsync.php:28 ../inc/class-destination-sugarsync.
1657
- #: php:47 ../inc/class-destination-dropbox.php:55
1658
- msgid "Authentication"
1659
- msgstr ""
1660
-
1661
- #: ../inc/class-destination-sugarsync.php:30 ../inc/pro/class-destination-
1662
- #: sugarsync.php:17
1663
- msgid "Email address:"
1664
- msgstr ""
1665
-
1666
- #: ../inc/class-destination-sugarsync.php:34 ../inc/pro/class-jobtype-dbdump.php:
1667
- #: 123 ../inc/pro/class-destination-sugarsync.php:20 ../inc/pro/class-destination-
1668
- #: ftp.php:29
1669
- msgid "Password:"
1670
- msgstr ""
1671
-
1672
- #: ../inc/class-destination-sugarsync.php:40 ../inc/class-destination-sugarsync.
1673
- #: php:121
1674
- msgid "Authenticate with Sugarsync!"
1675
- msgstr ""
1676
-
1677
- #: ../inc/class-destination-sugarsync.php:42 ../inc/class-destination-sugarsync.
1678
- #: php:137 ../inc/pro/class-destination-sugarsync.php:27 ../inc/pro/class-
1679
- #: destination-sugarsync.php:101
1680
- msgid "Create Sugarsync account"
1681
- msgstr ""
1682
-
1683
- #: ../inc/class-destination-sugarsync.php:49 ../inc/class-destination-dropbox.php:
1684
- #: 60 ../inc/pro/class-destination-sugarsync.php:32 ../inc/pro/class-destination-
1685
- #: dropbox.php:35 ../inc/pro/class-destination-gdrive.php:53 ../inc/pro/class-
1686
- #: destination-gdrive.php:277
1687
- msgid "Authenticated!"
1688
- msgstr ""
1689
-
1690
- #: ../inc/class-destination-sugarsync.php:51 ../inc/class-destination-sugarsync.
1691
- #: php:133 ../inc/pro/class-destination-sugarsync.php:34 ../inc/pro/class-
1692
- #: destination-sugarsync.php:97
1693
- msgid "Delete Sugarsync authentication!"
1694
- msgstr ""
1695
-
1696
- #: ../inc/class-destination-sugarsync.php:57
1697
- msgid "SugarSync Root"
1698
- msgstr ""
1699
-
1700
- #: ../inc/class-destination-sugarsync.php:61
1701
- msgid "Sync folder selection"
1702
- msgstr ""
1703
-
1704
- #: ../inc/class-destination-sugarsync.php:69 ../inc/pro/class-destination-
1705
- #: sugarsync.php:43
1706
- msgid "No Syncfolders found!"
1707
- msgstr ""
1708
-
1709
- #: ../inc/class-destination-sugarsync.php:90
1710
- msgid "Folder in root"
1711
- msgstr ""
1712
-
1713
- #: ../inc/class-destination-sugarsync.php:96 ../inc/class-destination-folder.php:
1714
- #: 39 ../inc/class-destination-dropbox.php:102 ../inc/class-destination-ftp.php:
1715
- #: 62 ../inc/pro/class-destination-gdrive.php:71
1716
- msgid "File Deletion"
1717
- msgstr ""
1718
-
1719
- #: ../inc/class-destination-sugarsync.php:227
1720
- #, php-format
1721
- msgid "%d. Try to send backup to SugarSync&#160;&hellip;"
1722
- msgstr ""
1723
-
1724
- #: ../inc/class-destination-sugarsync.php:234
1725
- #, php-format
1726
- msgid "Authenticated to SugarSync with nickname %s"
1727
- msgstr ""
1728
-
1729
- #: ../inc/class-destination-sugarsync.php:237
1730
- #, php-format
1731
- msgctxt "Available space on SugarSync"
1732
- msgid "Not enough disk space available on SugarSync. Available: %s."
1733
- msgstr ""
1734
-
1735
- #: ../inc/class-destination-sugarsync.php:243
1736
- #, php-format
1737
- msgid "%s available at SugarSync"
1738
- msgstr ""
1739
-
1740
- #: ../inc/class-destination-sugarsync.php:250
1741
- msgid "Starting upload to SugarSync&#160;&hellip;"
1742
- msgstr ""
1743
-
1744
- #: ../inc/class-destination-sugarsync.php:260
1745
- msgid "Cannot transfer backup to SugarSync!"
1746
- msgstr ""
1747
-
1748
- #: ../inc/class-destination-sugarsync.php:299
1749
- #, php-format
1750
- msgid "One file deleted on SugarSync folder"
1751
- msgid_plural "%d files deleted on SugarSync folder"
1752
- msgstr[0] ""
1753
- msgstr[1] ""
1754
-
1755
- #: ../inc/class-destination-sugarsync.php:305
1756
- #, php-format
1757
- msgid "SugarSync API: %s"
1758
- msgstr ""
1759
-
1760
- #: ../inc/class-destination-folder.php:33
1761
- msgid "Folder to store backups in"
1762
- msgstr ""
1763
-
1764
- #: ../inc/class-destination-folder.php:196
1765
- #, php-format
1766
- msgid "One backup file deleted"
1767
- msgid_plural "%d backup files deleted"
1768
- msgstr[0] ""
1769
- msgstr[1] ""
1770
-
1771
- #: ../inc/class-destination-dropbox.php:36 ../inc/class-destination-dropbox.php:
1772
- #: 332 ../inc/pro/class-destination-dropbox.php:253
1773
- #, php-format
1774
- msgid "Dropbox API: %s"
1775
- msgstr ""
1776
-
1777
- #: ../inc/class-destination-dropbox.php:51 ../inc/pro/class-destination-gdrive.
1778
- #: php:45
1779
- msgid "Login"
1780
- msgstr ""
1781
-
1782
- #: ../inc/class-destination-dropbox.php:57 ../inc/pro/class-destination-gdrive.
1783
- #: php:51 ../inc/pro/class-destination-gdrive.php:271
1784
- msgid "Not authenticated!"
1785
- msgstr ""
1786
-
1787
- #: ../inc/class-destination-dropbox.php:58 ../inc/pro/class-destination-dropbox.
1788
- #: php:29
1789
- msgid "Create Account"
1790
- msgstr ""
1791
-
1792
- #: ../inc/class-destination-dropbox.php:61 ../inc/class-destination-dropbox.php:61
1793
- msgid "Delete Dropbox Authentication"
1794
- msgstr ""
1795
-
1796
- #: ../inc/class-destination-dropbox.php:68
1797
- msgid "App Access to Dropbox"
1798
- msgstr ""
1799
-
1800
- #: ../inc/class-destination-dropbox.php:70
1801
- msgid ""
1802
- "A dedicated folder named BackWPup will be created inside of the Apps folder "
1803
- "in your Dropbox. BackWPup will get read and write access to that folder only."
1804
- " You can specify a subfolder as your backup destination for this job in the "
1805
- "destination field below."
1806
- msgstr ""
1807
-
1808
- #: ../inc/class-destination-dropbox.php:71
1809
- msgid "Get Dropbox App auth code"
1810
- msgstr ""
1811
-
1812
- #: ../inc/class-destination-dropbox.php:72
1813
- msgid "Allows restricted access to Apps/BackWPup folder only."
1814
- msgstr ""
1815
-
1816
- #: ../inc/class-destination-dropbox.php:77
1817
- msgid " OR "
1818
- msgstr ""
1819
-
1820
- #: ../inc/class-destination-dropbox.php:80
1821
- msgid "Full Access to Dropbox"
1822
- msgstr ""
1823
-
1824
- #: ../inc/class-destination-dropbox.php:82
1825
- msgid ""
1826
- "BackWPup will have full read and write access to your entire Dropbox. You "
1827
- "can specify your backup destination wherever you want, just be aware that "
1828
- "ANY files or folders inside of your Dropbox can be overridden or deleted by "
1829
- "BackWPup."
1830
- msgstr ""
1831
-
1832
- #: ../inc/class-destination-dropbox.php:83
1833
- msgid "Get full Dropbox auth code "
1834
- msgstr ""
1835
-
1836
- #: ../inc/class-destination-dropbox.php:84
1837
- msgid "Allows full access to your entire Dropbox."
1838
- msgstr ""
1839
-
1840
- #: ../inc/class-destination-dropbox.php:95
1841
- msgid "Destination Folder"
1842
- msgstr ""
1843
-
1844
- #: ../inc/class-destination-dropbox.php:97
1845
- msgid ""
1846
- "Specify a subfolder where your backup archives will be stored. If you use "
1847
- "the App option from above, this folder will be created inside of "
1848
- "Apps/BackWPup. Otherwise it will be created at the root of your Dropbox. "
1849
- "Already exisiting folders with the same name will not be overriden."
1850
- msgstr ""
1851
-
1852
- #: ../inc/class-destination-dropbox.php:98
1853
- msgid "Folder inside your Dropbox where your backup archives will be stored."
1854
- msgstr ""
1855
-
1856
- #: ../inc/class-destination-dropbox.php:107
1857
- msgid "Older files will be deleted first. 0 = no files will be deleted."
1858
- msgstr ""
1859
-
1860
- #: ../inc/class-destination-dropbox.php:224
1861
- #, php-format
1862
- msgid "%d. Try to send backup file to Dropbox&#160;&hellip;"
1863
- msgstr ""
1864
-
1865
- #: ../inc/class-destination-dropbox.php:247 ../inc/pro/class-destination-dropbox.
1866
- #: php:128
1867
- #, php-format
1868
- msgid "Authenticated with Dropbox of user: %s"
1869
- msgstr ""
1870
-
1871
- #: ../inc/class-destination-dropbox.php:251 ../inc/pro/class-destination-dropbox.
1872
- #: php:132
1873
- #, php-format
1874
- msgid "%s available on your Dropbox"
1875
- msgstr ""
1876
-
1877
- #: ../inc/class-destination-dropbox.php:254 ../inc/pro/class-destination-dropbox.
1878
- #: php:135
1879
- msgid "Not Authenticated with Dropbox!"
1880
- msgstr ""
1881
-
1882
- #: ../inc/class-destination-dropbox.php:257
1883
- msgid "Uploading to Dropbox&#160;&hellip;"
1884
- msgstr ""
1885
-
1886
- #: ../inc/class-destination-dropbox.php:273 ../inc/pro/class-destination-gdrive.
1887
- #: php:615
1888
- msgid "Uploaded file size and local file size don't match."
1889
- msgstr ""
1890
-
1891
- #: ../inc/class-destination-dropbox.php:277 ../inc/pro/class-destination-gdrive.
1892
- #: php:617 ../inc/pro/class-destination-glacier.php:367
1893
- #, php-format
1894
- msgid "Error transfering backup to %s."
1895
- msgstr ""
1896
-
1897
- #: ../inc/class-destination-dropbox.php:323
1898
- #, php-format
1899
- msgid "Error while deleting file from Dropbox: %s"
1900
- msgstr ""
1901
-
1902
- #: ../inc/class-destination-dropbox.php:326
1903
- #, php-format
1904
- msgid "One file deleted from Dropbox"
1905
- msgid_plural "%d files deleted on Dropbox"
1906
- msgstr[0] ""
1907
- msgstr[1] ""
1908
-
1909
- #: ../inc/class-destination-ftp.php:23
1910
- msgid "FTP server and login"
1911
- msgstr ""
1912
-
1913
- #: ../inc/class-destination-ftp.php:27
1914
- msgid "FTP server"
1915
- msgstr ""
1916
-
1917
- #: ../inc/class-destination-ftp.php:31 ../inc/class-destination-email.php:104 ..
1918
- #: /inc/pro/class-destination-ftp.php:21
1919
- msgid "Port:"
1920
- msgstr ""
1921
-
1922
- #: ../inc/class-destination-ftp.php:37 ../inc/class-destination-rsc.php:45
1923
- msgid "Username"
1924
- msgstr ""
1925
-
1926
- #: ../inc/class-destination-ftp.php:44
1927
- msgid "Password"
1928
- msgstr ""
1929
-
1930
- #: ../inc/class-destination-ftp.php:56
1931
- msgid "Folder to store files in"
1932
- msgstr ""
1933
-
1934
- #: ../inc/class-destination-ftp.php:68
1935
- msgid "Maximum number of files to keep in folder."
1936
- msgstr ""
1937
-
1938
- #: ../inc/class-destination-ftp.php:78
1939
- msgid "FTP specific settings"
1940
- msgstr ""
1941
-
1942
- #: ../inc/class-destination-ftp.php:82
1943
- msgid "Timeout for FTP connection"
1944
- msgstr ""
1945
-
1946
- #: ../inc/class-destination-ftp.php:90
1947
- msgid "SSL-FTP connection"
1948
- msgstr ""
1949
-
1950
- #: ../inc/class-destination-ftp.php:94
1951
- msgid "Use explicit SSL-FTP connection."
1952
- msgstr ""
1953
-
1954
- #: ../inc/class-destination-ftp.php:99
1955
- msgid "FTP Passive Mode"
1956
- msgstr ""
1957
-
1958
- #: ../inc/class-destination-ftp.php:103
1959
- msgid "Use FTP Passive Mode."
1960
- msgstr ""
1961
-
1962
- #: ../inc/class-destination-ftp.php:179
1963
- msgid "FTP: Login failure!"
1964
- msgstr ""
1965
-
1966
- #: ../inc/class-destination-ftp.php:203
1967
- #, php-format
1968
- msgid "%d. Try to send backup file to an FTP server&#160;&hellip;"
1969
- msgstr ""
1970
-
1971
- #: ../inc/class-destination-ftp.php:209
1972
- #, php-format
1973
- msgid "Connected via explicit SSL-FTP to server: %s"
1974
- msgstr ""
1975
-
1976
- #: ../inc/class-destination-ftp.php:211
1977
- #, php-format
1978
- msgid "Cannot connect via explicit SSL-FTP to server: %s"
1979
- msgstr ""
1980
-
1981
- #: ../inc/class-destination-ftp.php:217
1982
- msgid "PHP function to connect with explicit SSL-FTP to server does not exist!"
1983
- msgstr ""
1984
-
1985
- #: ../inc/class-destination-ftp.php:225
1986
- #, php-format
1987
- msgid "Connected to FTP server: %s"
1988
- msgstr ""
1989
-
1990
- #: ../inc/class-destination-ftp.php:227
1991
- #, php-format
1992
- msgid "Cannot connect to FTP server: %s"
1993
- msgstr ""
1994
-
1995
- #: ../inc/class-destination-ftp.php:234 ../inc/class-destination-ftp.php:242 ..
1996
- #: /inc/class-destination-ftp.php:258 ../inc/class-destination-ftp.php:305
1997
- #, php-format
1998
- msgid "FTP client command: %s"
1999
- msgstr ""
2000
-
2001
- #: ../inc/class-destination-ftp.php:236
2002
- #, php-format
2003
- msgid "FTP server response: %s"
2004
- msgstr ""
2005
-
2006
- #: ../inc/class-destination-ftp.php:240 ../inc/class-destination-ftp.php:245 ..
2007
- #: /inc/class-destination-ftp.php:248 ../inc/class-destination-ftp.php:261 ..
2008
- #: /inc/class-destination-ftp.php:263 ../inc/class-destination-ftp.php:308 ..
2009
- #: /inc/class-destination-ftp.php:310 ../inc/class-destination-ftp.php:314 ..
2010
- #: /inc/class-destination-ftp.php:316
2011
- #, php-format
2012
- msgid "FTP server reply: %s"
2013
- msgstr ""
2014
-
2015
- #: ../inc/class-destination-ftp.php:263
2016
- msgid "Error getting SYSTYPE"
2017
- msgstr ""
2018
-
2019
- #: ../inc/class-destination-ftp.php:281
2020
- #, php-format
2021
- msgid "FTP Folder \"%s\" created!"
2022
- msgstr ""
2023
-
2024
- #: ../inc/class-destination-ftp.php:285
2025
- #, php-format
2026
- msgid "FTP Folder \"%s\" cannot be created!"
2027
- msgstr ""
2028
-
2029
- #: ../inc/class-destination-ftp.php:296
2030
- #, php-format
2031
- msgid "FTP current folder is: %s"
2032
- msgstr ""
2033
-
2034
- #: ../inc/class-destination-ftp.php:308
2035
- msgid "Entering passive mode"
2036
- msgstr ""
2037
-
2038
- #: ../inc/class-destination-ftp.php:310
2039
- msgid "Cannot enter passive mode"
2040
- msgstr ""
2041
-
2042
- #: ../inc/class-destination-ftp.php:314
2043
- msgid "Entering normal mode"
2044
- msgstr ""
2045
-
2046
- #: ../inc/class-destination-ftp.php:316
2047
- msgid "Cannot enter normal mode"
2048
- msgstr ""
2049
-
2050
- #: ../inc/class-destination-ftp.php:320
2051
- msgid "Starting upload to FTP &#160;&hellip;"
2052
- msgstr ""
2053
-
2054
- #: ../inc/class-destination-ftp.php:332
2055
- msgid "Cannot transfer backup to FTP server!"
2056
- msgstr ""
2057
-
2058
- #: ../inc/class-destination-ftp.php:337
2059
- #, php-format
2060
- msgid "Backup transferred to FTP server: %s"
2061
- msgstr ""
2062
-
2063
- #: ../inc/class-destination-ftp.php:388
2064
- #, php-format
2065
- msgid "Cannot delete \"%s\" on FTP server!"
2066
- msgstr ""
2067
-
2068
- #: ../inc/class-destination-ftp.php:391
2069
- #, php-format
2070
- msgid "One file deleted on FTP server"
2071
- msgid_plural "%d files deleted on FTP server"
2072
- msgstr[0] ""
2073
- msgstr[1] ""
2074
-
2075
- #: ../inc/class-destination-s3.php:91 ../inc/pro/class-destination-s3.php:29
2076
- msgid "Google Storage: EU"
2077
- msgstr ""
2078
-
2079
- #: ../inc/class-destination-s3.php:92 ../inc/pro/class-destination-s3.php:30
2080
- msgid "Google Storage: USA"
2081
- msgstr ""
2082
-
2083
- #: ../inc/class-destination-s3.php:93 ../inc/pro/class-destination-s3.php:31
2084
- msgid "Google Storage: Asia"
2085
- msgstr ""
2086
-
2087
- #: ../inc/class-destination-s3.php:176
2088
- msgid "Multipart Upload"
2089
- msgstr ""
2090
-
2091
- #: ../inc/class-destination-s3.php:178
2092
- msgid ""
2093
- "Multipart splits file into multiple chunks while uploading. This is "
2094
- "necessary for displaying the upload process and to transfer bigger files. "
2095
- "Works without a problem on Amazon. Other services might have issues."
2096
- msgstr ""
2097
-
2098
- #: ../inc/class-destination-s3.php:180
2099
- msgid "Use multipart upload for uploading a file"
2100
- msgstr ""
2101
-
2102
- #: ../inc/class-destination-s3.php:266 ../inc/pro/class-destination-s3.php:137
2103
- #, php-format
2104
- msgid " %s is not a valid bucket name."
2105
- msgstr ""
2106
-
2107
- #: ../inc/class-destination-s3.php:394
2108
- msgid "Checking for not aborted multipart Uploads&#160;&hellip;"
2109
- msgstr ""
2110
-
2111
- #: ../inc/class-destination-s3.php:400
2112
- #, php-format
2113
- msgid "Upload for %s aborted."
2114
- msgstr ""
2115
-
2116
- #: ../inc/class-destination-s3.php:542
2117
- #, php-format
2118
- msgid "Storage Class: %s"
2119
- msgstr ""
2120
-
2121
- #: ../inc/class-file.php:152
2122
- #, php-format
2123
- msgid "Folder %1$s not allowed, please use another folder."
2124
- msgstr ""
2125
-
2126
- #: ../inc/class-file.php:157
2127
- #, php-format
2128
- msgid "Folder %1$s is not in open basedir, please use another folder."
2129
- msgstr ""
2130
-
2131
- #: ../inc/class-file.php:163
2132
- #, php-format
2133
- msgid "Cannot create folder: %1$s"
2134
- msgstr ""
2135
-
2136
- #: ../inc/class-file.php:169
2137
- #, php-format
2138
- msgid "Folder \"%1$s\" is not writable"
2139
- msgstr ""
2140
-
2141
- #: ../inc/class-file.php:198
2142
- msgid ""
2143
- "BackWPup will not backup folders and its sub folders when this file is "
2144
- "inside."
2145
- msgstr ""
2146
-
2147
- #: ../inc/class-page-jobs.php:100
2148
- msgid "No Jobs."
2149
- msgstr ""
2150
-
2151
- #: ../inc/class-page-jobs.php:125 ../inc/class-page-editjob.php:438
2152
- msgid "Job Name"
2153
- msgstr ""
2154
-
2155
- #: ../inc/class-page-jobs.php:127 ../inc/pro/class-wizard-job.php:57 ..
2156
- #: /inc/pro/class-wizard-job.php:438
2157
- msgid "Destinations"
2158
- msgstr ""
2159
-
2160
- #: ../inc/class-page-jobs.php:128
2161
- msgid "Next Run"
2162
- msgstr ""
2163
-
2164
- #: ../inc/class-page-jobs.php:129
2165
- msgid "Last Run"
2166
- msgstr ""
2167
-
2168
- #: ../inc/class-page-jobs.php:175
2169
- msgid "Edit"
2170
- msgstr ""
2171
-
2172
- #: ../inc/class-page-jobs.php:176
2173
- msgid "Copy"
2174
- msgstr ""
2175
-
2176
- #: ../inc/class-page-jobs.php:181 ../inc/class-page-editjob.php:195
2177
- msgid "Run now"
2178
- msgstr ""
2179
-
2180
- #: ../inc/class-page-jobs.php:187
2181
- msgid "Last log"
2182
- msgstr ""
2183
-
2184
- #: ../inc/class-page-jobs.php:249
2185
- msgid "Not needed or set"
2186
- msgstr ""
2187
-
2188
- #: ../inc/class-page-jobs.php:271
2189
- #, php-format
2190
- msgid "Running for: %s seconds"
2191
- msgstr ""
2192
-
2193
- #: ../inc/class-page-jobs.php:278 ../inc/class-page-jobs.php:287
2194
- #, php-format
2195
- msgid "Cron: %s"
2196
- msgstr ""
2197
-
2198
- #: ../inc/class-page-jobs.php:278
2199
- #, php-format
2200
- msgid "%1$s at %2$s by WP-Cron"
2201
- msgstr ""
2202
-
2203
- #: ../inc/class-page-jobs.php:287
2204
- #, php-format
2205
- msgid "%1$s at %2$s by EasyCron"
2206
- msgstr ""
2207
-
2208
- #: ../inc/class-page-jobs.php:293
2209
- msgid "Inactive"
2210
- msgstr ""
2211
-
2212
- #: ../inc/class-page-jobs.php:315
2213
- #, php-format
2214
- msgid "Runtime: %d seconds"
2215
- msgstr ""
2216
-
2217
- #: ../inc/class-page-jobs.php:319
2218
- msgid "not yet"
2219
- msgstr ""
2220
-
2221
- #: ../inc/class-page-jobs.php:323
2222
- msgid "Download last backup"
2223
- msgstr ""
2224
-
2225
- #: ../inc/class-page-jobs.php:330
2226
- msgid "Log"
2227
- msgstr ""
2228
-
2229
- #: ../inc/class-page-jobs.php:373
2230
- msgid "Copy of"
2231
- msgstr ""
2232
-
2233
- #: ../inc/class-page-jobs.php:388 ../inc/class-page-backups.php:373 ../inc/class-
2234
- #: page-backups.php:412 ../inc/class-page-editjob.php:35
2235
- msgid "Sorry, you don't have permissions to do that."
2236
- msgstr ""
2237
-
2238
- #: ../inc/class-page-jobs.php:420
2239
- #, php-format
2240
- msgid "The job \"%s\" destination \"%s\" is not configured properly"
2241
- msgstr ""
2242
-
2243
- #: ../inc/class-page-jobs.php:425
2244
- #, php-format
2245
- msgid "The job \"%s\" needs properly configured destinations to run!"
2246
- msgstr ""
2247
-
2248
- #: ../inc/class-page-jobs.php:433 ../inc/class-page-settings.php:439
2249
- #, php-format
2250
- msgid "The HTTP response test get an error \"%s\""
2251
- msgstr ""
2252
-
2253
- #: ../inc/class-page-jobs.php:437 ../inc/class-page-settings.php:441
2254
- #, php-format
2255
- msgid "The HTTP response test get a false http status (%s)"
2256
- msgstr ""
2257
-
2258
- #: ../inc/class-page-jobs.php:441
2259
- #, php-format
2260
- msgid "Not expected HTTP response body: %s"
2261
- msgstr ""
2262
-
2263
- #: ../inc/class-page-jobs.php:462
2264
- #, php-format
2265
- msgid "Job “%s” has started, but not responded for 10 seconds."
2266
- msgstr ""
2267
-
2268
- #: ../inc/class-page-jobs.php:467
2269
- #, php-format
2270
- msgid "Job \"%s\" started."
2271
- msgstr ""
2272
-
2273
- #: ../inc/class-page-jobs.php:592
2274
- #, php-format
2275
- msgid "%s Jobs"
2276
- msgstr ""
2277
-
2278
- #: ../inc/class-page-jobs.php:592 ../inc/class-adminbar.php:94
2279
- msgid "Add new"
2280
- msgstr ""
2281
-
2282
- #: ../inc/class-page-jobs.php:612
2283
- #, php-format
2284
- msgid "Job currently running: %s"
2285
- msgstr ""
2286
-
2287
- #: ../inc/class-page-jobs.php:613
2288
- msgid "Warnings:"
2289
- msgstr ""
2290
-
2291
- #: ../inc/class-page-jobs.php:614
2292
- msgid "Errors:"
2293
- msgstr ""
2294
-
2295
- #: ../inc/class-page-jobs.php:615
2296
- msgid "Log of running job"
2297
- msgstr ""
2298
-
2299
- #: ../inc/class-page-jobs.php:615
2300
- msgid "Display working log"
2301
- msgstr ""
2302
-
2303
- #: ../inc/class-page-jobs.php:617
2304
- msgid "Close working screen"
2305
- msgstr ""
2306
-
2307
- #: ../inc/class-page-jobs.php:617
2308
- msgid "close"
2309
- msgstr ""
2310
-
2311
- #: ../inc/class-page-jobs.php:784
2312
- msgid "Job completed"
2313
- msgstr ""
2314
-
2315
- #: ../inc/class-page-jobs.php:786 ../inc/class-job.php:1275
2316
- msgid "ERROR:"
2317
- msgstr ""
2318
-
2319
- #: ../inc/class-page-jobs.php:786 ../inc/class-job.php:1488
2320
- #, php-format
2321
- msgid ""
2322
- "Job has ended with errors in %s seconds. You must resolve the errors for "
2323
- "correct execution."
2324
- msgstr ""
2325
-
2326
- #: ../inc/class-page-jobs.php:788 ../inc/class-job.php:1266
2327
- msgid "WARNING:"
2328
- msgstr ""
2329
-
2330
- #: ../inc/class-page-jobs.php:788
2331
- #, php-format
2332
- msgid ""
2333
- "Job has done with warnings in %s seconds. Please resolve them for correct "
2334
- "execution."
2335
- msgstr ""
2336
-
2337
- #: ../inc/class-page-jobs.php:790 ../inc/class-job.php:1492
2338
- #, php-format
2339
- msgid "Job done in %s seconds."
2340
- msgstr ""
2341
-
2342
- #: ../inc/class-destination-email.php:38 ../inc/class-destination-email.php:41 ..
2343
- #: /inc/pro/class-destination-email.php:16 ../inc/pro/class-destination-email.php:
2344
- #: 18
2345
- msgid "Email address"
2346
- msgstr ""
2347
-
2348
- #: ../inc/class-destination-email.php:43 ../inc/pro/class-destination-email.php:19
2349
- msgid "Email address to which Backups are sent."
2350
- msgstr ""
2351
-
2352
- #: ../inc/class-destination-email.php:48 ../inc/class-destination-email.php:50 ..
2353
- #: /inc/pro/class-destination-email.php:24 ../inc/pro/class-destination-email.php:
2354
- #: 25
2355
- msgid "Send test email"
2356
- msgstr ""
2357
-
2358
- #: ../inc/class-destination-email.php:55
2359
- msgid "Send email settings"
2360
- msgstr ""
2361
-
2362
- #: ../inc/class-destination-email.php:58
2363
- msgid "Maximum file size"
2364
- msgstr ""
2365
-
2366
- #: ../inc/class-destination-email.php:59
2367
- msgid "Maximum file size to be included in an email. 0 = unlimited"
2368
- msgstr ""
2369
-
2370
- #: ../inc/class-destination-email.php:59
2371
- msgid "MB"
2372
- msgstr ""
2373
-
2374
- #: ../inc/class-destination-email.php:63 ../inc/class-destination-email.php:64
2375
- msgid "Sender email address"
2376
- msgstr ""
2377
-
2378
- #: ../inc/class-destination-email.php:70
2379
- msgid "Sender name"
2380
- msgstr ""
2381
-
2382
- #: ../inc/class-destination-email.php:71
2383
- msgid "Name of email sender"
2384
- msgstr ""
2385
-
2386
- #: ../inc/class-destination-email.php:77
2387
- msgid "Sending method"
2388
- msgstr ""
2389
-
2390
- #: ../inc/class-destination-email.php:79
2391
- msgid ""
2392
- "- Use site settings: retrieve the email settings of your site.<br />-PHP "
2393
- "mail(): needs more PHP memory"
2394
- msgstr ""
2395
-
2396
- #: ../inc/class-destination-email.php:81
2397
- msgid "Use site settings"
2398
- msgstr ""
2399
-
2400
- #: ../inc/class-destination-email.php:82
2401
- msgid "PHP: mail()"
2402
- msgstr ""
2403
-
2404
- #: ../inc/class-destination-email.php:83
2405
- msgid "Sendmail"
2406
- msgstr ""
2407
-
2408
- #: ../inc/class-destination-email.php:84
2409
- msgid "SMTP"
2410
- msgstr ""
2411
-
2412
- #: ../inc/class-destination-email.php:91
2413
- msgid "Sendmail path"
2414
- msgstr ""
2415
-
2416
- #: ../inc/class-destination-email.php:99
2417
- msgid "SMTP host name"
2418
- msgstr ""
2419
-
2420
- #: ../inc/class-destination-email.php:110
2421
- msgid "SMTP secure connection"
2422
- msgstr ""
2423
-
2424
- #: ../inc/class-destination-email.php:115
2425
- msgid "SSL"
2426
- msgstr ""
2427
-
2428
- #: ../inc/class-destination-email.php:116
2429
- msgid "TLS"
2430
- msgstr ""
2431
-
2432
- #: ../inc/class-destination-email.php:121
2433
- msgid "SMTP username"
2434
- msgstr ""
2435
-
2436
- #: ../inc/class-destination-email.php:128
2437
- msgid "SMTP password"
2438
- msgstr ""
2439
-
2440
- #: ../inc/class-destination-email.php:204
2441
- #, php-format
2442
- msgid "%d. Try to send backup with email&#160;&hellip;"
2443
- msgstr ""
2444
-
2445
- #: ../inc/class-destination-email.php:209
2446
- msgid "Backup archive too big to be sent by email!"
2447
- msgstr ""
2448
-
2449
- #: ../inc/class-destination-email.php:216
2450
- #, php-format
2451
- msgid "Sending email to %s&hellip;"
2452
- msgstr ""
2453
-
2454
- #: ../inc/class-destination-email.php:292
2455
- #, php-format
2456
- msgid "BackWPup archive from %1$s: %2$s"
2457
- msgstr ""
2458
-
2459
- #: ../inc/class-destination-email.php:295
2460
- #, php-format
2461
- msgid "Backup archive: %s"
2462
- msgstr ""
2463
-
2464
- #: ../inc/class-destination-email.php:309 ../inc/class-destination-email.php:431
2465
- msgid "Error while sending email!"
2466
- msgstr ""
2467
-
2468
- #: ../inc/class-destination-email.php:315 ../inc/class-destination-email.php:433
2469
- msgid "Email sent."
2470
- msgstr ""
2471
-
2472
- #: ../inc/class-destination-email.php:415
2473
- msgid "BackWPup archive sending TEST Message"
2474
- msgstr ""
2475
-
2476
- #: ../inc/class-destination-email.php:418
2477
- msgid ""
2478
- "If this message reaches your inbox, sending backup archives via email should "
2479
- "work for you."
2480
- msgstr ""
2481
-
2482
- #: ../inc/class-help.php:15
2483
- msgid "Plugin Info"
2484
- msgstr ""
2485
-
2486
- #: ../inc/class-help.php:17
2487
- #, php-format
2488
- msgctxt "Plugin name and link; Plugin Version"
2489
- msgid ""
2490
- "%1$s version %2$s. A project by <a href=\"http://inpsyde.com\">Inpsyde "
2491
- "GmbH</a>."
2492
- msgstr ""
2493
-
2494
- #: ../inc/class-help.php:18
2495
- msgid ""
2496
- "BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you "
2497
- "are welcome to redistribute it under certain conditions."
2498
- msgstr ""
2499
-
2500
- #: ../inc/class-help.php:21
2501
- msgid "For more information:"
2502
- msgstr ""
2503
-
2504
- #: ../inc/class-help.php:23
2505
- msgid "Plugin on wordpress.org"
2506
- msgstr ""
2507
-
2508
- #: ../inc/class-help.php:24
2509
- msgid "https://marketpress.com/news/"
2510
- msgstr ""
2511
-
2512
- #: ../inc/class-help.php:24
2513
- msgid "News"
2514
- msgstr ""
2515
-
2516
- #: ../inc/class-help.php:29
2517
- msgid "Manual"
2518
- msgstr ""
2519
-
2520
- #: ../inc/class-destination-rsc.php:41
2521
- msgid "Rack Space Cloud Keys"
2522
- msgstr ""
2523
-
2524
- #: ../inc/class-destination-rsc.php:52
2525
- msgid "API Key"
2526
- msgstr ""
2527
-
2528
- #: ../inc/class-destination-rsc.php:60
2529
- msgid "Select region"
2530
- msgstr ""
2531
-
2532
- #: ../inc/class-destination-rsc.php:64 ../inc/class-destination-rsc.php:66 ..
2533
- #: /inc/pro/class-destination-rsc.php:30
2534
- msgid "Rackspace Cloud Files Region"
2535
- msgstr ""
2536
-
2537
- #: ../inc/class-destination-rsc.php:67 ../inc/pro/class-destination-rsc.php:31
2538
- msgid "Dallas (DFW)"
2539
- msgstr ""
2540
-
2541
- #: ../inc/class-destination-rsc.php:68 ../inc/pro/class-destination-rsc.php:32
2542
- msgid "Chicago (ORD)"
2543
- msgstr ""
2544
-
2545
- #: ../inc/class-destination-rsc.php:69 ../inc/pro/class-destination-rsc.php:33
2546
- msgid "Sydney (SYD)"
2547
- msgstr ""
2548
-
2549
- #: ../inc/class-destination-rsc.php:70 ../inc/pro/class-destination-rsc.php:34
2550
- msgid "London (LON)"
2551
- msgstr ""
2552
-
2553
- #: ../inc/class-destination-rsc.php:71 ../inc/pro/class-destination-rsc.php:35
2554
- msgid "Northern Virginia (IAD)"
2555
- msgstr ""
2556
-
2557
- #: ../inc/class-destination-rsc.php:72 ../inc/pro/class-destination-rsc.php:36
2558
- msgid "Hong Kong (HKG)"
2559
- msgstr ""
2560
-
2561
- #: ../inc/class-destination-rsc.php:155 ../inc/pro/class-destination-rsc.php:105
2562
- #, php-format
2563
- msgid "Rackspace Cloud container \"%s\" created."
2564
- msgstr ""
2565
-
2566
- #: ../inc/class-destination-rsc.php:159 ../inc/class-destination-rsc.php:267 ..
2567
- #: /inc/class-destination-rsc.php:307 ../inc/class-destination-rsc.php:352 ..
2568
- #: /inc/pro/class-destination-rsc.php:109 ../inc/pro/class-destination-rsc.php:
2569
- #: 159 ../inc/pro/class-destination-rsc.php:279
2570
- #, php-format
2571
- msgid "Rackspace Cloud API: %s"
2572
- msgstr ""
2573
-
2574
- #: ../inc/class-destination-rsc.php:250
2575
- #, php-format
2576
- msgid "%d. Trying to send backup file to Rackspace cloud &hellip;"
2577
- msgstr ""
2578
-
2579
- #: ../inc/class-destination-rsc.php:264
2580
- #, php-format
2581
- msgid "Connected to Rackspace cloud files container %s"
2582
- msgstr ""
2583
-
2584
- #: ../inc/class-destination-rsc.php:276
2585
- msgid "Upload to Rackspace cloud started &hellip;"
2586
- msgstr ""
2587
-
2588
- #: ../inc/class-destination-rsc.php:295
2589
- msgid "Backup File transferred to RSC://"
2590
- msgstr ""
2591
-
2592
- #: ../inc/class-destination-rsc.php:301
2593
- msgid "Cannot transfer backup to Rackspace cloud."
2594
- msgstr ""
2595
-
2596
- #: ../inc/class-destination-rsc.php:346
2597
- #, php-format
2598
- msgid "One file deleted on Rackspace cloud container."
2599
- msgid_plural "%d files deleted on Rackspace cloud container."
2600
- msgstr[0] ""
2601
- msgstr[1] ""
2602
-
2603
- #: ../inc/class-destination-rsc.php:449
2604
- msgid "Missing username!"
2605
- msgstr ""
2606
-
2607
- #: ../inc/class-destination-rsc.php:451
2608
- msgid "Missing API Key!"
2609
- msgstr ""
2610
-
2611
- #: ../inc/class-destination-rsc.php:455
2612
- msgid "A container could not be found!"
2613
- msgstr ""
2614
-
2615
- #: ../inc/class-adminbar.php:55
2616
- msgid "running"
2617
- msgstr ""
2618
-
2619
- #: ../inc/class-adminbar.php:71
2620
- msgid "Now Running"
2621
- msgstr ""
2622
-
2623
- #: ../inc/class-adminbar.php:77
2624
- msgid "Abort!"
2625
- msgstr ""
2626
-
2627
- #: ../inc/class-adminbar.php:132
2628
- msgid "Run Now"
2629
- msgstr ""
2630
-
2631
- #: ../inc/class-page-settings.php:60
2632
- msgid "Settings reset to default"
2633
- msgstr ""
2634
-
2635
- #: ../inc/class-page-settings.php:107
2636
- msgid "Settings saved"
2637
- msgstr ""
2638
-
2639
- #: ../inc/class-page-settings.php:118
2640
- #, php-format
2641
- msgid "%s Settings"
2642
- msgstr ""
2643
-
2644
- #: ../inc/class-page-settings.php:120 ../inc/class-page-editjob.php:389
2645
- msgid "General"
2646
- msgstr ""
2647
-
2648
- #: ../inc/class-page-settings.php:120
2649
- msgid "Network"
2650
- msgstr ""
2651
-
2652
- #: ../inc/class-page-settings.php:120
2653
- msgid "API Keys"
2654
- msgstr ""
2655
-
2656
- #: ../inc/class-page-settings.php:120
2657
- msgid "Information"
2658
- msgstr ""
2659
-
2660
- #: ../inc/class-page-settings.php:137
2661
- msgid "Display Settings"
2662
- msgstr ""
2663
-
2664
- #: ../inc/class-page-settings.php:138
2665
- msgid "Do you want to see BackWPup in the WordPress admin bar?"
2666
- msgstr ""
2667
-
2668
- #: ../inc/class-page-settings.php:141
2669
- msgid "Admin bar"
2670
- msgstr ""
2671
-
2672
- #: ../inc/class-page-settings.php:144
2673
- msgid "Admin Bar"
2674
- msgstr ""
2675
-
2676
- #: ../inc/class-page-settings.php:149
2677
- msgid "Show BackWPup links in admin bar."
2678
- msgstr ""
2679
-
2680
- #: ../inc/class-page-settings.php:154 ../inc/class-page-settings.php:157
2681
- msgid "Folder sizes"
2682
- msgstr ""
2683
-
2684
- #: ../inc/class-page-settings.php:162
2685
- msgid ""
2686
- "Display folder sizes in the files tab when editing a job. (Might increase "
2687
- "loading time of files tab.)"
2688
- msgstr ""
2689
-
2690
- #: ../inc/class-page-settings.php:167
2691
- msgid "Security"
2692
- msgstr ""
2693
-
2694
- #: ../inc/class-page-settings.php:168
2695
- msgid "Security option for BackWPup"
2696
- msgstr ""
2697
-
2698
- #: ../inc/class-page-settings.php:171 ../inc/class-page-settings.php:174
2699
- msgid "Protect folders"
2700
- msgstr ""
2701
-
2702
- #: ../inc/class-page-settings.php:179
2703
- msgid ""
2704
- "Protect BackWPup folders ( Temp, Log and Backups ) with <code>."
2705
- "htaccess</code> and <code>index.php</code>"
2706
- msgstr ""
2707
-
2708
- #: ../inc/class-page-settings.php:192
2709
- msgid ""
2710
- "Every time BackWPup runs a backup job, a log file is being generated. Choose "
2711
- "where to store your log files and how many of them."
2712
- msgstr ""
2713
-
2714
- #: ../inc/class-page-settings.php:195
2715
- msgid "Log file folder"
2716
- msgstr ""
2717
-
2718
- #: ../inc/class-page-settings.php:197
2719
- msgid ""
2720
- "You can use absolute or relative path! Relative path is relative to "
2721
- "WP_CONTENT_DIR."
2722
- msgstr ""
2723
-
2724
- #: ../inc/class-page-settings.php:203
2725
- msgid "Maximum number of log files in folder"
2726
- msgstr ""
2727
-
2728
- #: ../inc/class-page-settings.php:206
2729
- msgid "Oldest files will be deleted first."
2730
- msgstr ""
2731
-
2732
- #: ../inc/class-page-settings.php:211 ../inc/class-page-settings.php:214
2733
- msgid "Compression"
2734
- msgstr ""
2735
-
2736
- #: ../inc/class-page-settings.php:219
2737
- msgid "Compress log files with GZip."
2738
- msgstr ""
2739
-
2740
- #: ../inc/class-page-settings.php:224 ../inc/class-page-settings.php:227
2741
- msgid "Logging Level"
2742
- msgstr ""
2743
-
2744
- #: ../inc/class-page-settings.php:230
2745
- msgid ""
2746
- "Debug log has much more informations than normal logs. It is for support and "
2747
- "should be handled carefully. For support is the best to use a not translated "
2748
- "log file. Usage of not translated logs can reduce the PHP memory usage."
2749
- msgstr ""
2750
-
2751
- #: ../inc/class-page-settings.php:231
2752
- msgid "Normal (translated)"
2753
- msgstr ""
2754
-
2755
- #: ../inc/class-page-settings.php:232
2756
- msgid "Normal (not translated)"
2757
- msgstr ""
2758
-
2759
- #: ../inc/class-page-settings.php:233
2760
- msgid "Debug (translated)"
2761
- msgstr ""
2762
-
2763
- #: ../inc/class-page-settings.php:234
2764
- msgid "Debug (not translated)"
2765
- msgstr ""
2766
-
2767
- #: ../inc/class-page-settings.php:245
2768
- msgid "There are a couple of general options for backup jobs. Set them here."
2769
- msgstr ""
2770
-
2771
- #: ../inc/class-page-settings.php:249
2772
- msgid "Maximum number of retries for job steps"
2773
- msgstr ""
2774
-
2775
- #: ../inc/class-page-settings.php:257
2776
- msgid "Maximum script execution time"
2777
- msgstr ""
2778
-
2779
- #: ../inc/class-page-settings.php:260
2780
- msgid "Maximum PHP Script execution time"
2781
- msgstr ""
2782
-
2783
- #: ../inc/class-page-settings.php:263
2784
- msgid ""
2785
- "Job will restart before hitting maximum execution time. It will not work "
2786
- "with CLI and not on every step during execution. If "
2787
- "<code>ALTERNATE_WP_CRON</code> has been defined, WordPress Cron will be used."
2788
- msgstr ""
2789
-
2790
- #: ../inc/class-page-settings.php:265
2791
- msgid "seconds. 0 = disabled."
2792
- msgstr ""
2793
-
2794
- #: ../inc/class-page-settings.php:271 ../inc/class-page-settings.php:274
2795
- msgid "Method for creating ZIP-file archives"
2796
- msgstr ""
2797
-
2798
- #: ../inc/class-page-settings.php:277
2799
- msgid ""
2800
- "Auto = Uses PHP class ZipArchive if available; otherwise uses PclZip.<br "
2801
- "/>ZipArchive = Uses less memory, but many open files at a time.<br />PclZip "
2802
- "= Uses more memory, but only 2 open files at a time."
2803
- msgstr ""
2804
-
2805
- #: ../inc/class-page-settings.php:278
2806
- msgid "Auto"
2807
- msgstr ""
2808
-
2809
- #: ../inc/class-page-settings.php:279
2810
- msgid "ZipArchive"
2811
- msgstr ""
2812
-
2813
- #: ../inc/class-page-settings.php:280
2814
- msgid "PclZip"
2815
- msgstr ""
2816
-
2817
- #: ../inc/class-page-settings.php:288
2818
- msgid "Key to start jobs externally with an URL"
2819
- msgstr ""
2820
-
2821
- #: ../inc/class-page-settings.php:291
2822
- msgid ""
2823
- "empty = deactivated. Will be used to protect job starts from unauthorized "
2824
- "person."
2825
- msgstr ""
2826
-
2827
- #: ../inc/class-page-settings.php:296 ../inc/class-page-settings.php:299
2828
- msgid "Reduce server load"
2829
- msgstr ""
2830
-
2831
- #: ../inc/class-page-settings.php:302
2832
- msgid ""
2833
- "This adds short pauses to the process. Can be used to reduce the CPU load."
2834
- "<br /> Disabled = off<br /> minimum = shortest sleep<br /> medium = middle "
2835
- "between minimum and maximum<br /> maximum = longest sleep<br />"
2836
- msgstr ""
2837
-
2838
- #: ../inc/class-page-settings.php:303
2839
- msgid "disabled"
2840
- msgstr ""
2841
-
2842
- #: ../inc/class-page-settings.php:304
2843
- msgid "minimum"
2844
- msgstr ""
2845
-
2846
- #: ../inc/class-page-settings.php:305
2847
- msgid "medium"
2848
- msgstr ""
2849
-
2850
- #: ../inc/class-page-settings.php:306
2851
- msgid "maximum"
2852
- msgstr ""
2853
-
2854
- #: ../inc/class-page-settings.php:313
2855
- msgid "Empty output on working"
2856
- msgstr ""
2857
-
2858
- #: ../inc/class-page-settings.php:316 ../inc/class-page-settings.php:321
2859
- msgid "Enable an empty Output on backup working."
2860
- msgstr ""
2861
-
2862
- #: ../inc/class-page-settings.php:319
2863
- msgid ""
2864
- "This do an empty output on job working. This can help in some situations or "
2865
- "can brake the working. You must test it."
2866
- msgstr ""
2867
-
2868
- #: ../inc/class-page-settings.php:332
2869
- #, php-format
2870
- msgid "Authentication for <code>%s</code>"
2871
- msgstr ""
2872
-
2873
- #: ../inc/class-page-settings.php:333
2874
- msgid ""
2875
- "Is your blog protected with HTTP basic authentication (.htaccess)? Or did "
2876
- "you use a Plugin to secure wp-cron.php than use the authentication methods "
2877
- "below"
2878
- msgstr ""
2879
-
2880
- #: ../inc/class-page-settings.php:339 ../inc/class-page-settings.php:342
2881
- msgid "Authentication method"
2882
- msgstr ""
2883
-
2884
- #: ../inc/class-page-settings.php:346
2885
- msgid "Basic auth"
2886
- msgstr ""
2887
-
2888
- #: ../inc/class-page-settings.php:347
2889
- msgid "WordPress User"
2890
- msgstr ""
2891
-
2892
- #: ../inc/class-page-settings.php:348
2893
- msgid "Query argument"
2894
- msgstr ""
2895
-
2896
- #: ../inc/class-page-settings.php:355
2897
- msgid "Basic Auth Username:"
2898
- msgstr ""
2899
-
2900
- #: ../inc/class-page-settings.php:363
2901
- msgid "Basic Auth Password:"
2902
- msgstr ""
2903
-
2904
- #: ../inc/class-page-settings.php:370 ../inc/class-page-settings.php:373
2905
- msgid "Select WordPress User"
2906
- msgstr ""
2907
-
2908
- #: ../inc/class-page-settings.php:389
2909
- msgid "Query arg key=value:"
2910
- msgstr ""
2911
-
2912
- #: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
2913
- msgid "Setting"
2914
- msgstr ""
2915
-
2916
- #: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
2917
- msgid "Value"
2918
- msgstr ""
2919
-
2920
- #: ../inc/class-page-settings.php:411
2921
- msgid "WordPress version"
2922
- msgstr ""
2923
-
2924
- #: ../inc/class-page-settings.php:413
2925
- msgid "BackWPup version"
2926
- msgstr ""
2927
-
2928
- #: ../inc/class-page-settings.php:413
2929
- msgid "Get pro."
2930
- msgstr ""
2931
-
2932
- #: ../inc/class-page-settings.php:415
2933
- msgid "BackWPup Pro version"
2934
- msgstr ""
2935
-
2936
- #: ../inc/class-page-settings.php:423
2937
- msgid "PHP version"
2938
- msgstr ""
2939
-
2940
- #: ../inc/class-page-settings.php:424
2941
- msgid "MySQL version"
2942
- msgstr ""
2943
-
2944
- #: ../inc/class-page-settings.php:427 ../inc/class-page-settings.php:431
2945
- msgid "cURL version"
2946
- msgstr ""
2947
-
2948
- #: ../inc/class-page-settings.php:428
2949
- msgid "cURL SSL version"
2950
- msgstr ""
2951
-
2952
- #: ../inc/class-page-settings.php:431
2953
- msgid "unavailable"
2954
- msgstr ""
2955
-
2956
- #: ../inc/class-page-settings.php:433
2957
- msgid "WP-Cron url:"
2958
- msgstr ""
2959
-
2960
- #: ../inc/class-page-settings.php:435
2961
- msgid "Server self connect:"
2962
- msgstr ""
2963
-
2964
- #: ../inc/class-page-settings.php:444 ../inc/pro/class-wizard-systemtest.php:183
2965
- #, php-format
2966
- msgid "The BackWPup HTTP response header returns a false value: \"%s\""
2967
- msgstr ""
2968
-
2969
- #: ../inc/class-page-settings.php:447
2970
- msgid "Response Test O.K."
2971
- msgstr ""
2972
-
2973
- #: ../inc/class-page-settings.php:452
2974
- msgid "Temp folder:"
2975
- msgstr ""
2976
-
2977
- #: ../inc/class-page-settings.php:454
2978
- #, php-format
2979
- msgid "Temp folder %s doesn't exist."
2980
- msgstr ""
2981
-
2982
- #: ../inc/class-page-settings.php:456
2983
- #, php-format
2984
- msgid "Temporary folder %s is not writable."
2985
- msgstr ""
2986
-
2987
- #: ../inc/class-page-settings.php:462
2988
- msgid "Log folder:"
2989
- msgstr ""
2990
-
2991
- #: ../inc/class-page-settings.php:464
2992
- #, php-format
2993
- msgid "Logs folder %s not exist."
2994
- msgstr ""
2995
-
2996
- #: ../inc/class-page-settings.php:466
2997
- #, php-format
2998
- msgid "Log folder %s is not writable."
2999
- msgstr ""
3000
-
3001
- #: ../inc/class-page-settings.php:471
3002
- msgid "Server"
3003
- msgstr ""
3004
-
3005
- #: ../inc/class-page-settings.php:472
3006
- msgid "Operating System"
3007
- msgstr ""
3008
-
3009
- #: ../inc/class-page-settings.php:473
3010
- msgid "PHP SAPI"
3011
- msgstr ""
3012
-
3013
- #: ../inc/class-page-settings.php:474
3014
- msgid "Current PHP user"
3015
- msgstr ""
3016
-
3017
- #: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:479 ..
3018
- #: /inc/class-page-settings.php:483
3019
- msgid "On"
3020
- msgstr ""
3021
-
3022
- #: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:481 ..
3023
- #: /inc/class-page-settings.php:485
3024
- msgid "Off"
3025
- msgstr ""
3026
-
3027
- #: ../inc/class-page-settings.php:476
3028
- msgid "Safe Mode"
3029
- msgstr ""
3030
-
3031
- #: ../inc/class-page-settings.php:477
3032
- msgid "Maximum execution time"
3033
- msgstr ""
3034
-
3035
- #: ../inc/class-page-settings.php:479 ../inc/class-page-settings.php:481
3036
- msgid "Alternative WP Cron"
3037
- msgstr ""
3038
-
3039
- #: ../inc/class-page-settings.php:483 ../inc/class-page-settings.php:485
3040
- msgid "Disabled WP Cron"
3041
- msgstr ""
3042
-
3043
- #: ../inc/class-page-settings.php:487 ../inc/class-page-settings.php:489
3044
- msgid "CHMOD Dir"
3045
- msgstr ""
3046
-
3047
- #: ../inc/class-page-settings.php:491
3048
- msgid "Server Time"
3049
- msgstr ""
3050
-
3051
- #: ../inc/class-page-settings.php:492
3052
- msgid "Blog Time"
3053
- msgstr ""
3054
-
3055
- #: ../inc/class-page-settings.php:493
3056
- msgid "Blog Timezone"
3057
- msgstr ""
3058
-
3059
- #: ../inc/class-page-settings.php:494
3060
- msgid "Blog Time offset"
3061
- msgstr ""
3062
-
3063
- #: ../inc/class-page-settings.php:494
3064
- #, php-format
3065
- msgid "%s hours"
3066
- msgstr ""
3067
-
3068
- #: ../inc/class-page-settings.php:495
3069
- msgid "Blog language"
3070
- msgstr ""
3071
-
3072
- #: ../inc/class-page-settings.php:496
3073
- msgid "MySQL Client encoding"
3074
- msgstr ""
3075
-
3076
- #: ../inc/class-page-settings.php:499
3077
- msgid "Blog charset"
3078
- msgstr ""
3079
-
3080
- #: ../inc/class-page-settings.php:500
3081
- msgid "PHP Memory limit"
3082
- msgstr ""
3083
-
3084
- #: ../inc/class-page-settings.php:501
3085
- msgid "WP memory limit"
3086
- msgstr ""
3087
-
3088
- #: ../inc/class-page-settings.php:502
3089
- msgid "WP maximum memory limit"
3090
- msgstr ""
3091
-
3092
- #: ../inc/class-page-settings.php:503
3093
- msgid "Memory in use"
3094
- msgstr ""
3095
-
3096
- #: ../inc/class-page-settings.php:508
3097
- msgid "Disabled PHP Functions:"
3098
- msgstr ""
3099
-
3100
- #: ../inc/class-page-settings.php:513
3101
- msgid "Loaded PHP Extensions:"
3102
- msgstr ""
3103
-
3104
- #: ../inc/class-page-settings.php:525
3105
- msgid "Save Changes"
3106
- msgstr ""
3107
-
3108
- #: ../inc/class-page-settings.php:527
3109
- msgid "Reset all settings to default"
3110
- msgstr ""
3111
-
3112
- #: ../inc/class-page-backups.php:182
3113
- msgid "No files could be found. (List will be generated during next backup.)"
3114
- msgstr ""
3115
-
3116
- #: ../inc/class-page-backups.php:228
3117
- msgid "Change destination"
3118
- msgstr ""
3119
-
3120
- #: ../inc/class-page-backups.php:268
3121
- msgid "File"
3122
- msgstr ""
3123
-
3124
- #: ../inc/class-page-backups.php:313
3125
- msgid ""
3126
- "You are about to delete this backup archive. \n"
3127
- " 'Cancel' to stop, 'OK' to delete."
3128
- msgstr ""
3129
-
3130
- #: ../inc/class-page-backups.php:344
3131
- msgid "?"
3132
- msgstr ""
3133
-
3134
- #: ../inc/class-page-backups.php:436
3135
- msgid "Backup Files"
3136
- msgstr ""
3137
-
3138
- #: ../inc/class-page-backups.php:484
3139
- #, php-format
3140
- msgid "%s Manage Backup Archives"
3141
- msgstr ""
3142
-
3143
- #: ../inc/class-jobtype-dbcheck.php:13
3144
- msgid "DB Check"
3145
- msgstr ""
3146
-
3147
- #: ../inc/class-jobtype-dbcheck.php:14
3148
- msgid "Check database tables"
3149
- msgstr ""
3150
-
3151
- #: ../inc/class-jobtype-dbcheck.php:35 ../inc/pro/class-jobtype-dbcheck.php:16
3152
- msgid "Settings for database check"
3153
- msgstr ""
3154
-
3155
- #: ../inc/class-jobtype-dbcheck.php:39
3156
- msgid "WordPress tables only"
3157
- msgstr ""
3158
-
3159
- #: ../inc/class-jobtype-dbcheck.php:44
3160
- msgid "Check WordPress database tables only"
3161
- msgstr ""
3162
-
3163
- #: ../inc/class-jobtype-dbcheck.php:49
3164
- msgid "Repair"
3165
- msgstr ""
3166
-
3167
- #: ../inc/class-jobtype-dbcheck.php:54 ../inc/pro/class-jobtype-dbcheck.php:25
3168
- msgid "Try to repair defect table"
3169
- msgstr ""
3170
-
3171
- #: ../inc/class-jobtype-dbcheck.php:79
3172
- #, php-format
3173
- msgid "%d. Trying to check database&#160;&hellip;"
3174
- msgstr ""
3175
-
3176
- #: ../inc/class-jobtype-dbcheck.php:111
3177
- #, php-format
3178
- msgid "Table %1$s is a view. Not checked."
3179
- msgstr ""
3180
-
3181
- #: ../inc/class-jobtype-dbcheck.php:116
3182
- #, php-format
3183
- msgid "Table %1$s is not a MyISAM/InnoDB table. Not checked."
3184
- msgstr ""
3185
-
3186
- #: ../inc/class-jobtype-dbcheck.php:124 ../inc/class-jobtype-dbcheck.php:127 ..
3187
- #: /inc/class-jobtype-dbcheck.php:129
3188
- #, php-format
3189
- msgid "Result of table check for %1$s is: %2$s"
3190
- msgstr ""
3191
-
3192
- #: ../inc/class-jobtype-dbcheck.php:135 ../inc/class-jobtype-dbcheck.php:137 ..
3193
- #: /inc/class-jobtype-dbcheck.php:139
3194
- #, php-format
3195
- msgid "Result of table repair for %1$s is: %2$s"
3196
- msgstr ""
3197
-
3198
- #: ../inc/class-jobtype-dbcheck.php:145
3199
- msgid "Database check done!"
3200
- msgstr ""
3201
-
3202
- #: ../inc/class-jobtype-dbcheck.php:148
3203
- msgid "No tables to check."
3204
- msgstr ""
3205
-
3206
- #: ../inc/class-mysqldump.php:60
3207
- msgid "No MySQLi extension found. Please install it."
3208
- msgstr ""
3209
-
3210
- #: ../inc/class-mysqldump.php:100 ../inc/pro/class-jobtype-dbdump.php:808
3211
- msgid "Cannot init MySQLi database connection"
3212
- msgstr ""
3213
-
3214
- #: ../inc/class-mysqldump.php:105 ../inc/pro/class-jobtype-dbdump.php:814
3215
- msgid "Setting of MySQLi connection timeout failed"
3216
- msgstr ""
3217
-
3218
- #: ../inc/class-mysqldump.php:110 ../inc/pro/class-jobtype-dbdump.php:820
3219
- #, php-format
3220
- msgid "Cannot connect to MySQL database %1$d: %2$s"
3221
- msgstr ""
3222
-
3223
- #: ../inc/class-mysqldump.php:117 ../inc/pro/class-jobtype-dbdump.php:828
3224
- #, php-format
3225
- msgctxt "Database Charset"
3226
- msgid "Cannot set DB charset to %s"
3227
- msgstr ""
3228
-
3229
- #: ../inc/class-mysqldump.php:146
3230
- msgid "Cannot open SQL backup file"
3231
- msgstr ""
3232
-
3233
- #: ../inc/class-mysqldump.php:153 ../inc/class-mysqldump.php:164 ../inc/class-
3234
- #: mysqldump.php:257 ../inc/class-mysqldump.php:270 ../inc/class-mysqldump.php:
3235
- #: 285 ../inc/class-mysqldump.php:298 ../inc/class-mysqldump.php:344 ../inc/class-
3236
- #: mysqldump.php:368 ../inc/class-mysqldump.php:406 ../inc/class-mysqldump.php:
3237
- #: 463 ../inc/pro/class-jobtype-dbdump.php:836 ../inc/pro/class-jobtype-dbdump.
3238
- #: php:850 ../inc/pro/class-jobtype-dbdump.php:898 ../inc/pro/class-jobtype-
3239
- #: dbdump.php:917 ../inc/pro/class-jobtype-dbdump.php:960
3240
- #, php-format
3241
- msgid "Database error %1$s for query %2$s"
3242
- msgstr ""
3243
-
3244
- #: ../inc/class-mysqldump.php:442
3245
- #, php-format
3246
- msgid "Start for table backup is not correctly set: %1$s "
3247
- msgstr ""
3248
-
3249
- #: ../inc/class-mysqldump.php:446
3250
- #, php-format
3251
- msgid "Length for table backup is not correctly set: %1$s "
3252
- msgstr ""
3253
-
3254
- #: ../inc/class-mysqldump.php:521
3255
- msgid "Error while writing file!"
3256
- msgstr ""
3257
-
3258
- #: ../inc/class-job.php:176
3259
- msgid "Starting job"
3260
- msgstr ""
3261
-
3262
- #: ../inc/class-job.php:193
3263
- msgid "Job Start"
3264
- msgstr ""
3265
-
3266
- #: ../inc/class-job.php:213
3267
- msgid "Creates manifest file"
3268
- msgstr ""
3269
-
3270
- #: ../inc/class-job.php:235
3271
- msgid "Creates archive"
3272
- msgstr ""
3273
-
3274
- #: ../inc/class-job.php:274
3275
- msgid "End of Job"
3276
- msgstr ""
3277
-
3278
- #: ../inc/class-job.php:291
3279
- #, php-format
3280
- msgid "BackWPup log for %1$s from %2$s at %3$s"
3281
- msgstr ""
3282
-
3283
- #: ../inc/class-job.php:310
3284
- #, php-format
3285
- msgctxt "Plugin name; Plugin Version; plugin url"
3286
- msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
3287
- msgstr ""
3288
-
3289
- #: ../inc/class-job.php:312
3290
- #, php-format
3291
- msgctxt "WordPress Version; Blog url"
3292
- msgid "[INFO] WordPress %1$s on %2$s"
3293
- msgstr ""
3294
-
3295
- #: ../inc/class-job.php:318
3296
- #, php-format
3297
- msgid "[INFO] BackWPup job: %1$s"
3298
- msgstr ""
3299
-
3300
- #: ../inc/class-job.php:321
3301
- #, php-format
3302
- msgid "[INFO] Runs with user: %1$s (%2$d) "
3303
- msgstr ""
3304
-
3305
- #: ../inc/class-job.php:339 ../inc/class-job.php:351
3306
- #, php-format
3307
- msgid "[INFO] Cron: %s; Next: %s "
3308
- msgstr ""
3309
-
3310
- #: ../inc/class-job.php:343
3311
- msgid "[INFO] BackWPup job start with link is active"
3312
- msgstr ""
3313
-
3314
- #: ../inc/class-job.php:346
3315
- msgid "[INFO] BackWPup job start with EasyCron.com"
3316
- msgstr ""
3317
-
3318
- #: ../inc/class-job.php:355
3319
- msgid "[INFO] BackWPup no automatic job start configured"
3320
- msgstr ""
3321
-
3322
- #: ../inc/class-job.php:359
3323
- msgid "[INFO] BackWPup job started from wp-cron"
3324
- msgstr ""
3325
-
3326
- #: ../inc/class-job.php:361
3327
- msgid "[INFO] BackWPup job started manually"
3328
- msgstr ""
3329
-
3330
- #: ../inc/class-job.php:363
3331
- msgid "[INFO] BackWPup job started from external url"
3332
- msgstr ""
3333
-
3334
- #: ../inc/class-job.php:365
3335
- msgid "[INFO] BackWPup job started form commandline interface"
3336
- msgstr ""
3337
-
3338
- #: ../inc/class-job.php:374
3339
- msgid "[INFO] PHP ver.:"
3340
- msgstr ""
3341
-
3342
- #: ../inc/class-job.php:375
3343
- #, php-format
3344
- msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
3345
- msgstr ""
3346
-
3347
- #: ../inc/class-job.php:379
3348
- #, php-format
3349
- msgid "[INFO] Script restart time is configured to %1$d seconds"
3350
- msgstr ""
3351
-
3352
- #: ../inc/class-job.php:382
3353
- #, php-format
3354
- msgid "[INFO] MySQL ver.: %s"
3355
- msgstr ""
3356
-
3357
- #: ../inc/class-job.php:384
3358
- #, php-format
3359
- msgid "[INFO] Web Server: %s"
3360
- msgstr ""
3361
-
3362
- #: ../inc/class-job.php:387
3363
- #, php-format
3364
- msgid "[INFO] curl ver.: %1$s; %2$s"
3365
- msgstr ""
3366
-
3367
- #: ../inc/class-job.php:389
3368
- #, php-format
3369
- msgid "[INFO] Temp folder is: %s"
3370
- msgstr ""
3371
-
3372
- #: ../inc/class-job.php:396
3373
- #, php-format
3374
- msgid "[INFO] Logfile is: %s"
3375
- msgstr ""
3376
-
3377
- #: ../inc/class-job.php:403
3378
- #, php-format
3379
- msgid "[INFO] Backup file is: %s"
3380
- msgstr ""
3381
-
3382
- #: ../inc/class-job.php:405
3383
- #, php-format
3384
- msgid "[INFO] Backup type is: %s"
3385
- msgstr ""
3386
-
3387
- #: ../inc/class-job.php:413
3388
- msgid "Could not write log file"
3389
- msgstr ""
3390
-
3391
- #: ../inc/class-job.php:425
3392
- msgid "No destination correctly defined for backup! Please correct job settings."
3393
- msgstr ""
3394
-
3395
- #: ../inc/class-job.php:647
3396
- msgid "Wrong BackWPup JobID"
3397
- msgstr ""
3398
-
3399
- #: ../inc/class-job.php:660
3400
- msgid "A BackWPup job is already running"
3401
- msgstr ""
3402
-
3403
- #: ../inc/class-job.php:752
3404
- msgid "Job restarts due to inactivity for more than 5 minutes."
3405
- msgstr ""
3406
-
3407
- #: ../inc/class-job.php:879
3408
- msgid "Step aborted: too many attempts!"
3409
- msgstr ""
3410
-
3411
- #: ../inc/class-job.php:970
3412
- #, php-format
3413
- msgid "Restart after %1$d seconds."
3414
- msgstr ""
3415
-
3416
- #: ../inc/class-job.php:1170
3417
- #, php-format
3418
- msgid "Signal \"%s\" is sent to script!"
3419
- msgstr ""
3420
-
3421
- #: ../inc/class-job.php:1185 ../inc/class-job.php:1198
3422
- #, php-format
3423
- msgid "System: %s"
3424
- msgstr ""
3425
-
3426
- #: ../inc/class-job.php:1213
3427
- #, php-format
3428
- msgid "Exception caught in %1$s: %2$s"
3429
- msgstr ""
3430
-
3431
- #: ../inc/class-job.php:1279
3432
- msgid "DEPRECATED:"
3433
- msgstr ""
3434
-
3435
- #: ../inc/class-job.php:1282
3436
- msgid "STRICT NOTICE:"
3437
- msgstr ""
3438
-
3439
- #: ../inc/class-job.php:1287
3440
- msgid "RECOVERABLE ERROR:"
3441
- msgstr ""
3442
-
3443
- #: ../inc/class-job.php:1437
3444
- msgid "Cannot write progress to working file. Job will be aborted."
3445
- msgstr ""
3446
-
3447
- #: ../inc/class-job.php:1455
3448
- msgid "Aborted by user!"
3449
- msgstr ""
3450
-
3451
- #: ../inc/class-job.php:1482
3452
- #, php-format
3453
- msgid "One old log deleted"
3454
- msgid_plural "%d old logs deleted"
3455
- msgstr[0] ""
3456
- msgstr[1] ""
3457
-
3458
- #: ../inc/class-job.php:1490
3459
- #, php-format
3460
- msgid ""
3461
- "Job finished with warnings in %s seconds. Please resolve them for correct "
3462
- "execution."
3463
- msgstr ""
3464
-
3465
- #: ../inc/class-job.php:1537
3466
- msgid "SUCCESSFUL"
3467
- msgstr ""
3468
-
3469
- #: ../inc/class-job.php:1540
3470
- msgid "WARNING"
3471
- msgstr ""
3472
-
3473
- #: ../inc/class-job.php:1544
3474
- msgid "ERROR"
3475
- msgstr ""
3476
-
3477
- #: ../inc/class-job.php:1548
3478
- #, php-format
3479
- msgid "[%3$s] BackWPup log %1$s: %2$s"
3480
- msgstr ""
3481
-
3482
- #: ../inc/class-job.php:1922
3483
- #, php-format
3484
- msgctxt "Folder name"
3485
- msgid "Folder %s not exists"
3486
- msgstr ""
3487
-
3488
- #: ../inc/class-job.php:1927
3489
- #, php-format
3490
- msgctxt "Folder name"
3491
- msgid "Folder %s not readable"
3492
- msgstr ""
3493
-
3494
- #: ../inc/class-job.php:1946
3495
- #, php-format
3496
- msgid "Link \"%s\" not following."
3497
- msgstr ""
3498
-
3499
- #: ../inc/class-job.php:1948
3500
- #, php-format
3501
- msgid "File \"%s\" is not readable!"
3502
- msgstr ""
3503
-
3504
- #: ../inc/class-job.php:1952
3505
- #, php-format
3506
- msgid ""
3507
- "File size of “%s” cannot be retrieved. File might be too large and will not "
3508
- "be added to queue."
3509
- msgstr ""
3510
-
3511
- #: ../inc/class-job.php:1972
3512
- #, php-format
3513
- msgid "%d. Trying to generate a manifest file&#160;&hellip;"
3514
- msgstr ""
3515
-
3516
- #: ../inc/class-job.php:2022
3517
- msgid "You may have noticed the manifest.json file in this archive."
3518
- msgstr ""
3519
-
3520
- #: ../inc/class-job.php:2023
3521
- msgid "manifest.json might be needed for later restoring a backup from this archive."
3522
- msgstr ""
3523
-
3524
- #: ../inc/class-job.php:2024
3525
- msgid ""
3526
- "Please leave manifest.json untouched and in place. Otherwise it is safe to "
3527
- "be ignored."
3528
- msgstr ""
3529
-
3530
- #: ../inc/class-job.php:2034
3531
- #, php-format
3532
- msgid "Added manifest.json file with %1$s to backup file list."
3533
- msgstr ""
3534
-
3535
- #: ../inc/class-job.php:2064
3536
- #, php-format
3537
- msgid "%d. Trying to create backup archive &hellip;"
3538
- msgstr ""
3539
-
3540
- #: ../inc/class-job.php:2071
3541
- #, php-format
3542
- msgctxt "Archive compression method"
3543
- msgid "Compressing files as %s. Please be patient, this may take a moment."
3544
- msgstr ""
3545
-
3546
- #: ../inc/class-job.php:2078
3547
- msgid "Adding Extra files to Archive"
3548
- msgstr ""
3549
-
3550
- #: ../inc/class-job.php:2089 ../inc/class-job.php:2147
3551
- msgid "Cannot create backup archive correctly. Aborting creation."
3552
- msgstr ""
3553
-
3554
- #: ../inc/class-job.php:2104
3555
- #, php-format
3556
- msgid "Archiving Folder: %s"
3557
- msgstr ""
3558
-
3559
- #: ../inc/class-job.php:2156
3560
- msgid "Backup archive created."
3561
- msgstr ""
3562
-
3563
- #: ../inc/class-job.php:2169
3564
- msgid ""
3565
- "The Backup archive will be too large for file operations with this PHP "
3566
- "Version. You might want to consider splitting the backup job in multiple "
3567
- "jobs with less files each."
3568
- msgstr ""
3569
-
3570
- #: ../inc/class-job.php:2173
3571
- #, php-format
3572
- msgid "Archive size is %s."
3573
- msgstr ""
3574
-
3575
- #: ../inc/class-job.php:2176
3576
- #, php-format
3577
- msgid "%1$d Files with %2$s in Archive."
3578
- msgstr ""
3579
-
3580
- #: ../inc/class-install.php:83
3581
- msgid "BackWPup Admin"
3582
- msgstr ""
3583
-
3584
- #: ../inc/class-install.php:97
3585
- msgid "BackWPup jobs checker"
3586
- msgstr ""
3587
-
3588
- #: ../inc/class-install.php:111
3589
- msgid "BackWPup jobs helper"
3590
- msgstr ""
3591
-
3592
- #: ../inc/class-jobtype-wpexp.php:13
3593
- msgid "XML export"
3594
- msgstr ""
3595
-
3596
- #: ../inc/class-jobtype-wpexp.php:46
3597
- msgid "Items to export"
3598
- msgstr ""
3599
-
3600
- #: ../inc/class-jobtype-wpexp.php:49 ../inc/pro/class-jobtype-wpexp.php:20
3601
- msgid "All content"
3602
- msgstr ""
3603
-
3604
- #: ../inc/class-jobtype-wpexp.php:50 ../inc/pro/class-jobtype-wpexp.php:21
3605
- msgid "Posts"
3606
- msgstr ""
3607
-
3608
- #: ../inc/class-jobtype-wpexp.php:51 ../inc/pro/class-jobtype-wpexp.php:22
3609
- msgid "Pages"
3610
- msgstr ""
3611
-
3612
- #: ../inc/class-jobtype-wpexp.php:61
3613
- msgid "XML Export file name"
3614
- msgstr ""
3615
-
3616
- #: ../inc/class-jobtype-wpexp.php:69 ../inc/class-jobtype-wpplugin.php:53
3617
- msgid "File compression"
3618
- msgstr ""
3619
-
3620
- #: ../inc/class-jobtype-wpexp.php:79 ../inc/class-jobtype-wpexp.php:81 ..
3621
- #: /inc/class-jobtype-wpplugin.php:63 ../inc/class-jobtype-wpplugin.php:65
3622
- msgid "BZip2"
3623
- msgstr ""
3624
-
3625
- #: ../inc/class-jobtype-wpexp.php:111
3626
- #, php-format
3627
- msgid "%d. Trying to create a WordPress export to XML file&#160;&hellip;"
3628
- msgstr ""
3629
-
3630
- #: ../inc/class-jobtype-wpexp.php:126
3631
- #, php-format
3632
- msgid "WP Export: Post type “%s” does not allow export."
3633
- msgstr ""
3634
-
3635
- #: ../inc/class-jobtype-wpexp.php:171 ../inc/class-jobtype-wpexp.php:185 ..
3636
- #: /inc/class-jobtype-wpexp.php:214 ../inc/class-jobtype-wpexp.php:235 ..
3637
- #: /inc/class-jobtype-wpexp.php:268 ../inc/class-jobtype-wpexp.php:288 ..
3638
- #: /inc/class-jobtype-wpexp.php:378 ../inc/class-jobtype-wpexp.php:387
3639
- msgid "WP Export file could not written."
3640
- msgstr ""
3641
-
3642
- #: ../inc/class-jobtype-wpexp.php:402
3643
- msgid "Check WP Export file&#160;&hellip;"
3644
- msgstr ""
3645
-
3646
- #: ../inc/class-jobtype-wpexp.php:422
3647
- #, php-format
3648
- msgid "XML WARNING (%s): %s"
3649
- msgstr ""
3650
-
3651
- #: ../inc/class-jobtype-wpexp.php:425
3652
- #, php-format
3653
- msgid "XML RECOVERABLE (%s): %s"
3654
- msgstr ""
3655
-
3656
- #: ../inc/class-jobtype-wpexp.php:428
3657
- #, php-format
3658
- msgid "XML ERROR (%s): %s"
3659
- msgstr ""
3660
-
3661
- #: ../inc/class-jobtype-wpexp.php:438
3662
- msgid "There was an error when reading this WXR file"
3663
- msgstr ""
3664
-
3665
- #: ../inc/class-jobtype-wpexp.php:444 ../inc/class-jobtype-wpexp.php:451
3666
- msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
3667
- msgstr ""
3668
-
3669
- #: ../inc/class-jobtype-wpexp.php:460
3670
- msgid "WP Export file is a valid WXR file."
3671
- msgstr ""
3672
-
3673
- #: ../inc/class-jobtype-wpexp.php:462
3674
- msgid ""
3675
- "WP Export file can not checked, because no XML extension loaded with the "
3676
- "file can checked."
3677
- msgstr ""
3678
-
3679
- #: ../inc/class-jobtype-wpexp.php:474 ../inc/pro/class-jobtype-dbdump.php:718
3680
- msgid "Compressing file&#160;&hellip;"
3681
- msgstr ""
3682
-
3683
- #: ../inc/class-jobtype-wpexp.php:481 ../inc/pro/class-jobtype-dbdump.php:725
3684
- msgid "Compressing done."
3685
- msgstr ""
3686
-
3687
- #: ../inc/class-jobtype-wpexp.php:500
3688
- #, php-format
3689
- msgid "Added XML export \"%1$s\" with %2$s to backup file list."
3690
- msgstr ""
3691
-
3692
- #: ../inc/class-jobtype-wpplugin.php:13
3693
- msgid "Plugins"
3694
- msgstr ""
3695
-
3696
- #: ../inc/class-jobtype-wpplugin.php:14
3697
- msgid "Installed plugins list"
3698
- msgstr ""
3699
-
3700
- #: ../inc/class-jobtype-wpplugin.php:45
3701
- msgid "Plugin list file name"
3702
- msgstr ""
3703
-
3704
- #: ../inc/class-jobtype-wpplugin.php:93
3705
- #, php-format
3706
- msgid "%d. Trying to generate a file with installed plugin names&#160;&hellip;"
3707
- msgstr ""
3708
-
3709
- #: ../inc/class-jobtype-wpplugin.php:121
3710
- msgid "All plugin information:"
3711
- msgstr ""
3712
-
3713
- #: ../inc/class-jobtype-wpplugin.php:123
3714
- #, php-format
3715
- msgid "from %s"
3716
- msgstr ""
3717
-
3718
- #: ../inc/class-jobtype-wpplugin.php:125
3719
- msgid "Active plugins:"
3720
- msgstr ""
3721
-
3722
- #: ../inc/class-jobtype-wpplugin.php:131
3723
- msgid "Inactive plugins:"
3724
- msgstr ""
3725
-
3726
- #: ../inc/class-jobtype-wpplugin.php:138 ../inc/pro/class-jobtype-dbdump.php:775
3727
- msgid "Can not open target file for writing."
3728
- msgstr ""
3729
-
3730
- #: ../inc/class-jobtype-wpplugin.php:145
3731
- #, php-format
3732
- msgid "Added plugin list file \"%1$s\" with %2$s to backup file list."
3733
- msgstr ""
3734
-
3735
- #: ../inc/class-page-editjob.php:87 ../inc/class-page-editjob.php:444 ..
3736
- #: /inc/class-option.php:107
3737
- msgid "New Job"
3738
- msgstr ""
3739
-
3740
- #: ../inc/class-page-editjob.php:88
3741
- #, php-format
3742
- msgid "Job with ID %d"
3743
- msgstr ""
3744
-
3745
- #: ../inc/class-page-editjob.php:194
3746
- #, php-format
3747
- msgid "Changes for job <i>%s</i> saved."
3748
- msgstr ""
3749
-
3750
- #: ../inc/class-page-editjob.php:195
3751
- msgid "Jobs overview"
3752
- msgstr ""
3753
-
3754
- #: ../inc/class-page-editjob.php:332
3755
- msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
3756
- msgstr ""
3757
-
3758
- #: ../inc/class-page-editjob.php:341
3759
- #, php-format
3760
- msgid "ATTENTION: Job runs every %d minutes!"
3761
- msgstr ""
3762
-
3763
- #: ../inc/class-page-editjob.php:347
3764
- #, php-format
3765
- msgid "ATTENTION: Job runs every %d hours!"
3766
- msgstr ""
3767
-
3768
- #: ../inc/class-page-editjob.php:351
3769
- msgid "ATTENTION: Can't calculate cron!"
3770
- msgstr ""
3771
-
3772
- #: ../inc/class-page-editjob.php:354
3773
- msgid "Next runtime:"
3774
- msgstr ""
3775
-
3776
- #: ../inc/class-page-editjob.php:386
3777
- #, php-format
3778
- msgid "%1$s Job: %2$s"
3779
- msgstr ""
3780
-
3781
- #: ../inc/class-page-editjob.php:389
3782
- msgid "Schedule"
3783
- msgstr ""
3784
-
3785
- #: ../inc/class-page-editjob.php:404
3786
- #, php-format
3787
- msgid "To: %s"
3788
- msgstr ""
3789
-
3790
- #: ../inc/class-page-editjob.php:442
3791
- msgid "Please name this job."
3792
- msgstr ""
3793
-
3794
- #: ../inc/class-page-editjob.php:450
3795
- msgid "Job Tasks"
3796
- msgstr ""
3797
-
3798
- #: ../inc/class-page-editjob.php:454 ../inc/pro/class-wizard-job.php:235
3799
- msgid "This job is a&#160;&hellip;"
3800
- msgstr ""
3801
-
3802
- #: ../inc/class-page-editjob.php:457 ../inc/pro/class-wizard-job.php:238
3803
- msgid "Job tasks"
3804
- msgstr ""
3805
-
3806
- #: ../inc/class-page-editjob.php:475
3807
- msgid "Backup File Creation"
3808
- msgstr ""
3809
-
3810
- #: ../inc/class-page-editjob.php:480 ../inc/class-page-editjob.php:483 ..
3811
- #: /inc/pro/class-wizard-job.php:380 ../inc/pro/class-wizard-job.php:383
3812
- msgid "Backup type"
3813
- msgstr ""
3814
-
3815
- #: ../inc/class-page-editjob.php:487
3816
- msgid "Synchronize file by file to destination"
3817
- msgstr ""
3818
-
3819
- #: ../inc/class-page-editjob.php:491 ../inc/pro/class-wizard-job.php:391
3820
- msgid "Create a backup archive"
3821
- msgstr ""
3822
-
3823
- #: ../inc/class-page-editjob.php:497
3824
- msgid "Archive name"
3825
- msgstr ""
3826
-
3827
- #: ../inc/class-page-editjob.php:502
3828
- msgid "Replacement patterns:"
3829
- msgstr ""
3830
-
3831
- #: ../inc/class-page-editjob.php:503
3832
- #, php-format
3833
- msgid "%d = Two digit day of the month, with leading zeros"
3834
- msgstr ""
3835
-
3836
- #: ../inc/class-page-editjob.php:504
3837
- msgid "%j = Day of the month, without leading zeros"
3838
- msgstr ""
3839
-
3840
- #: ../inc/class-page-editjob.php:505
3841
- msgid "%m = Day of the month, with leading zeros"
3842
- msgstr ""
3843
-
3844
- #: ../inc/class-page-editjob.php:506
3845
- #, php-format
3846
- msgid "%n = Representation of the month (without leading zeros)"
3847
- msgstr ""
3848
-
3849
- #: ../inc/class-page-editjob.php:507
3850
- msgid "%Y = Four digit representation for the year"
3851
- msgstr ""
3852
-
3853
- #: ../inc/class-page-editjob.php:508
3854
- msgid "%y = Two digit representation of the year"
3855
- msgstr ""
3856
-
3857
- #: ../inc/class-page-editjob.php:509
3858
- #, php-format
3859
- msgid "%a = Lowercase ante meridiem (am) and post meridiem (pm)"
3860
- msgstr ""
3861
-
3862
- #: ../inc/class-page-editjob.php:510
3863
- #, php-format
3864
- msgid "%A = Uppercase ante meridiem (AM) and post meridiem (PM)"
3865
- msgstr ""
3866
-
3867
- #: ../inc/class-page-editjob.php:511
3868
- #, php-format
3869
- msgid "%B = Swatch Internet Time"
3870
- msgstr ""
3871
-
3872
- #: ../inc/class-page-editjob.php:512
3873
- #, php-format
3874
- msgid "%g = Hour in 12-hour format, without leading zeros"
3875
- msgstr ""
3876
-
3877
- #: ../inc/class-page-editjob.php:513
3878
- #, php-format
3879
- msgid "%G = Hour in 24-hour format, without leading zeros"
3880
- msgstr ""
3881
-
3882
- #: ../inc/class-page-editjob.php:514
3883
- msgid "%h = Hour in 12-hour format, with leading zeros"
3884
- msgstr ""
3885
-
3886
- #: ../inc/class-page-editjob.php:515
3887
- msgid "%H = Hour in 24-hour format, with leading zeros"
3888
- msgstr ""
3889
-
3890
- #: ../inc/class-page-editjob.php:516
3891
- #, php-format
3892
- msgid "%i = Two digit representation of the minute"
3893
- msgstr ""
3894
-
3895
- #: ../inc/class-page-editjob.php:517
3896
- #, php-format
3897
- msgid "%s = Two digit representation of the second"
3898
- msgstr ""
3899
-
3900
- #: ../inc/class-page-editjob.php:529 ../inc/class-page-editjob.php:532
3901
- msgid "Archive Format"
3902
- msgstr ""
3903
-
3904
- #: ../inc/class-page-editjob.php:535
3905
- msgid ""
3906
- "PHP Zip functions will be used if available (needs less memory). Otherwise "
3907
- "the PCLZip class will be used."
3908
- msgstr ""
3909
-
3910
- #: ../inc/class-page-editjob.php:535 ../inc/class-page-editjob.php:537 ..
3911
- #: /inc/pro/class-wizard-job.php:404 ../inc/pro/class-wizard-job.php:406
3912
- msgid "Zip"
3913
- msgstr ""
3914
-
3915
- #: ../inc/class-page-editjob.php:537 ../inc/class-page-editjob.php:542 ..
3916
- #: /inc/class-page-editjob.php:546
3917
- msgid "Disabled due to missing PHP function."
3918
- msgstr ""
3919
-
3920
- #: ../inc/class-page-editjob.php:538
3921
- msgid "A tarballed, not compressed archive (fast and less memory)"
3922
- msgstr ""
3923
-
3924
- #: ../inc/class-page-editjob.php:538 ../inc/pro/class-wizard-job.php:407
3925
- msgid "Tar"
3926
- msgstr ""
3927
-
3928
- #: ../inc/class-page-editjob.php:540
3929
- msgid "A tarballed, GZipped archive (fast and less memory)"
3930
- msgstr ""
3931
-
3932
- #: ../inc/class-page-editjob.php:540 ../inc/class-page-editjob.php:542 ..
3933
- #: /inc/pro/class-wizard-job.php:409 ../inc/pro/class-wizard-job.php:411
3934
- msgid "Tar GZip"
3935
- msgstr ""
3936
-
3937
- #: ../inc/class-page-editjob.php:544
3938
- msgid "A tarballed, BZipped archive (fast and less memory)"
3939
- msgstr ""
3940
-
3941
- #: ../inc/class-page-editjob.php:544 ../inc/class-page-editjob.php:546 ..
3942
- #: /inc/pro/class-wizard-job.php:413 ../inc/pro/class-wizard-job.php:415
3943
- msgid "Tar BZip2"
3944
- msgstr ""
3945
-
3946
- #: ../inc/class-page-editjob.php:552
3947
- msgid "Job Destination"
3948
- msgstr ""
3949
-
3950
- #: ../inc/class-page-editjob.php:556 ../inc/class-page-editjob.php:559
3951
- msgid "Where should your backup file be stored?"
3952
- msgstr ""
3953
-
3954
- #: ../inc/class-page-editjob.php:580
3955
- msgid "Log Files"
3956
- msgstr ""
3957
-
3958
- #: ../inc/class-page-editjob.php:584
3959
- msgid "Send log to email address"
3960
- msgstr ""
3961
-
3962
- #: ../inc/class-page-editjob.php:588
3963
- msgid ""
3964
- "Leave empty to not have log sent. Or separate with , for more than one "
3965
- "receiver."
3966
- msgstr ""
3967
-
3968
- #: ../inc/class-page-editjob.php:592
3969
- msgid "Email FROM field"
3970
- msgstr ""
3971
-
3972
- #: ../inc/class-page-editjob.php:596
3973
- msgid "Email \"From\" field (Name &lt;&#160;you@your-email-address.tld&#160;&gt;)"
3974
- msgstr ""
3975
-
3976
- #: ../inc/class-page-editjob.php:600
3977
- msgid "Errors only"
3978
- msgstr ""
3979
-
3980
- #: ../inc/class-page-editjob.php:605
3981
- msgid "Send email with log only when errors occur during job execution."
3982
- msgstr ""
3983
-
3984
- #: ../inc/class-page-editjob.php:616
3985
- msgid "Job Schedule"
3986
- msgstr ""
3987
-
3988
- #: ../inc/class-page-editjob.php:620 ../inc/class-page-editjob.php:623
3989
- msgid "Start job"
3990
- msgstr ""
3991
-
3992
- #: ../inc/class-page-editjob.php:627
3993
- msgid "manually only"
3994
- msgstr ""
3995
-
3996
- #: ../inc/class-page-editjob.php:631
3997
- msgid "with WordPress cron"
3998
- msgstr ""
3999
-
4000
- #: ../inc/class-page-editjob.php:642
4001
- msgid "Use EasyCron.com Cron jobs."
4002
- msgstr ""
4003
-
4004
- #: ../inc/class-page-editjob.php:642
4005
- msgid ""
4006
- "with <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
4007
- "title=\"Affiliate Link!\">EasyCron.com</a>"
4008
- msgstr ""
4009
-
4010
- #: ../inc/class-page-editjob.php:645
4011
- #, php-format
4012
- msgid ""
4013
- "Setup <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
4014
- "title=\"Affiliate Link!\">Account</a> / <a href=\"%s\">API Key</a> first."
4015
- msgstr ""
4016
-
4017
- #: ../inc/class-page-editjob.php:655
4018
- msgid ""
4019
- "Copy the link for an external start. This option has to be activated to make "
4020
- "the link work."
4021
- msgstr ""
4022
-
4023
- #: ../inc/class-page-editjob.php:655
4024
- msgid "with a link"
4025
- msgstr ""
4026
-
4027
- #: ../inc/class-page-editjob.php:661
4028
- msgid "Start job with CLI"
4029
- msgstr ""
4030
-
4031
- #: ../inc/class-page-editjob.php:662
4032
- msgid ""
4033
- "Use WP-CLI commands to let the job start with the server’s cron on command "
4034
- "line interface."
4035
- msgstr ""
4036
-
4037
- #: ../inc/class-page-editjob.php:664
4038
- msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline."
4039
- msgstr ""
4040
-
4041
- #: ../inc/class-page-editjob.php:669
4042
- msgid "Schedule execution time"
4043
- msgstr ""
4044
-
4045
- #: ../inc/class-page-editjob.php:673 ../inc/class-page-editjob.php:676
4046
- msgid "Scheduler type"
4047
- msgstr ""
4048
-
4049
- #: ../inc/class-page-editjob.php:680
4050
- msgid "basic"
4051
- msgstr ""
4052
-
4053
- #: ../inc/class-page-editjob.php:684
4054
- msgid "advanced"
4055
- msgstr ""
4056
-
4057
- #: ../inc/class-page-editjob.php:713 ../inc/class-page-editjob.php:781 ..
4058
- #: /inc/pro/class-wizard-job.php:298
4059
- msgid "Scheduler"
4060
- msgstr ""
4061
-
4062
- #: ../inc/class-page-editjob.php:723 ../inc/pro/class-wizard-job.php:308
4063
- msgid "Hour"
4064
- msgstr ""
4065
-
4066
- #: ../inc/class-page-editjob.php:726 ../inc/pro/class-wizard-job.php:311
4067
- msgid "Minute"
4068
- msgstr ""
4069
-
4070
- #: ../inc/class-page-editjob.php:730 ../inc/pro/class-wizard-job.php:315
4071
- msgid "monthly"
4072
- msgstr ""
4073
-
4074
- #: ../inc/class-page-editjob.php:732 ../inc/pro/class-wizard-job.php:317
4075
- msgid "on"
4076
- msgstr ""
4077
-
4078
- #: ../inc/class-page-editjob.php:742 ../inc/pro/class-wizard-job.php:327
4079
- msgid "weekly"
4080
- msgstr ""
4081
-
4082
- #: ../inc/class-page-editjob.php:744 ../inc/class-page-editjob.php:851 ..
4083
- #: /inc/pro/class-wizard-job.php:329
4084
- msgid "Sunday"
4085
- msgstr ""
4086
-
4087
- #: ../inc/class-page-editjob.php:745 ../inc/class-page-editjob.php:852 ..
4088
- #: /inc/pro/class-wizard-job.php:330
4089
- msgid "Monday"
4090
- msgstr ""
4091
-
4092
- #: ../inc/class-page-editjob.php:746 ../inc/class-page-editjob.php:853 ..
4093
- #: /inc/pro/class-wizard-job.php:331
4094
- msgid "Tuesday"
4095
- msgstr ""
4096
-
4097
- #: ../inc/class-page-editjob.php:747 ../inc/class-page-editjob.php:854 ..
4098
- #: /inc/pro/class-wizard-job.php:332
4099
- msgid "Wednesday"
4100
- msgstr ""
4101
-
4102
- #: ../inc/class-page-editjob.php:748 ../inc/class-page-editjob.php:855 ..
4103
- #: /inc/pro/class-wizard-job.php:333
4104
- msgid "Thursday"
4105
- msgstr ""
4106
-
4107
- #: ../inc/class-page-editjob.php:749 ../inc/class-page-editjob.php:856 ..
4108
- #: /inc/pro/class-wizard-job.php:334
4109
- msgid "Friday"
4110
- msgstr ""
4111
-
4112
- #: ../inc/class-page-editjob.php:750 ../inc/class-page-editjob.php:857 ..
4113
- #: /inc/pro/class-wizard-job.php:335
4114
- msgid "Saturday"
4115
- msgstr ""
4116
-
4117
- #: ../inc/class-page-editjob.php:760 ../inc/pro/class-wizard-job.php:345
4118
- msgid "daily"
4119
- msgstr ""
4120
-
4121
- #: ../inc/class-page-editjob.php:770 ../inc/pro/class-wizard-job.php:355
4122
- msgid "hourly"
4123
- msgstr ""
4124
-
4125
- #: ../inc/class-page-editjob.php:784
4126
- msgid "Minutes:"
4127
- msgstr ""
4128
-
4129
- #: ../inc/class-page-editjob.php:786 ../inc/class-page-editjob.php:799 ..
4130
- #: /inc/class-page-editjob.php:811 ../inc/class-page-editjob.php:825 ../inc/class-
4131
- #: page-editjob.php:847
4132
- msgid "Any (*)"
4133
- msgstr ""
4134
-
4135
- #: ../inc/class-page-editjob.php:796
4136
- msgid "Hours:"
4137
- msgstr ""
4138
-
4139
- #: ../inc/class-page-editjob.php:809
4140
- msgid "Day of Month:"
4141
- msgstr ""
4142
-
4143
- #: ../inc/class-page-editjob.php:823
4144
- msgid "Month:"
4145
- msgstr ""
4146
-
4147
- #: ../inc/class-page-editjob.php:829
4148
- msgid "January"
4149
- msgstr ""
4150
-
4151
- #: ../inc/class-page-editjob.php:830
4152
- msgid "February"
4153
- msgstr ""
4154
-
4155
- #: ../inc/class-page-editjob.php:831
4156
- msgid "March"
4157
- msgstr ""
4158
-
4159
- #: ../inc/class-page-editjob.php:832
4160
- msgid "April"
4161
- msgstr ""
4162
-
4163
- #: ../inc/class-page-editjob.php:833
4164
- msgid "May"
4165
- msgstr ""
4166
-
4167
- #: ../inc/class-page-editjob.php:834
4168
- msgid "June"
4169
- msgstr ""
4170
-
4171
- #: ../inc/class-page-editjob.php:835
4172
- msgid "July"
4173
- msgstr ""
4174
-
4175
- #: ../inc/class-page-editjob.php:836
4176
- msgid "August"
4177
- msgstr ""
4178
-
4179
- #: ../inc/class-page-editjob.php:837
4180
- msgid "September"
4181
- msgstr ""
4182
-
4183
- #: ../inc/class-page-editjob.php:838
4184
- msgid "October"
4185
- msgstr ""
4186
-
4187
- #: ../inc/class-page-editjob.php:839
4188
- msgid "November"
4189
- msgstr ""
4190
-
4191
- #: ../inc/class-page-editjob.php:840
4192
- msgid "December"
4193
- msgstr ""
4194
-
4195
- #: ../inc/class-page-editjob.php:845
4196
- msgid "Day of Week:"
4197
- msgstr ""
4198
-
4199
- #: ../inc/class-page-editjob.php:881
4200
- msgid "Save changes"
4201
- msgstr ""
4202
-
4203
- #: ../inc/pro/class-destination-msazure.php:17
4204
- msgid "Account Name:"
4205
- msgstr ""
4206
-
4207
- #: ../inc/pro/class-destination-msazure.php:19 ../inc/pro/class-destination-s3-v1.
4208
- #: php:36 ../inc/pro/class-destination-s3.php:38 ../inc/pro/class-destination-
4209
- #: glacier.php:165
4210
- msgid "Access Key:"
4211
- msgstr ""
4212
-
4213
- #: ../inc/pro/class-destination-msazure.php:21 ../inc/pro/class-destination-rsc.
4214
- #: php:38
4215
- msgid "Container:"
4216
- msgstr ""
4217
-
4218
- #: ../inc/pro/class-destination-msazure.php:28 ../inc/pro/class-destination-rsc.
4219
- #: php:47
4220
- msgid "Create container:"
4221
- msgstr ""
4222
-
4223
- #: ../inc/pro/class-destination-msazure.php:30 ../inc/pro/class-destination-rsc.
4224
- #: php:49
4225
- msgid "Folder in container:"
4226
- msgstr ""
4227
-
4228
- #: ../inc/pro/class-destination-msazure.php:101
4229
- #, php-format
4230
- msgid "%d. Trying to sync files with Microsoft Azure (Blob) &hellip;"
4231
- msgstr ""
4232
-
4233
- #: ../inc/pro/class-destination-msazure.php:136
4234
- msgid "Retrieving file list from MS Azure."
4235
- msgstr ""
4236
-
4237
- #: ../inc/pro/class-destination-msazure.php:152
4238
- msgid "Upload changed files to MS Azure."
4239
- msgstr ""
4240
-
4241
- #: ../inc/pro/class-destination-msazure.php:164
4242
- #, php-format
4243
- msgid "File %s uploaded to MS Azure."
4244
- msgstr ""
4245
-
4246
- #: ../inc/pro/class-destination-msazure.php:190
4247
- #, php-format
4248
- msgid "Extra file %s uploaded to MS Azure."
4249
- msgstr ""
4250
-
4251
- #: ../inc/pro/class-destination-msazure.php:203
4252
- msgid "Delete nonexistent files on MS Azure."
4253
- msgstr ""
4254
-
4255
- #: ../inc/pro/class-destination-msazure.php:206
4256
- #, php-format
4257
- msgid "File %s deleted from MS Azure."
4258
- msgstr ""
4259
-
4260
- #: ../inc/pro/class-wizard-systemtest.php:14
4261
- msgid "System Test"
4262
- msgstr ""
4263
-
4264
- #: ../inc/pro/class-wizard-systemtest.php:15
4265
- msgid "Wizard to test if BackWPup can work properly"
4266
- msgstr ""
4267
-
4268
- #: ../inc/pro/class-wizard-systemtest.php:32
4269
- msgid "Run tests"
4270
- msgstr ""
4271
-
4272
- #: ../inc/pro/class-wizard-systemtest.php:45
4273
- msgid "Environment"
4274
- msgstr ""
4275
-
4276
- #: ../inc/pro/class-wizard-systemtest.php:45
4277
- msgid "System Environment"
4278
- msgstr ""
4279
-
4280
- #: ../inc/pro/class-wizard-systemtest.php:59
4281
- msgid "Test if BackWPup can work without problems."
4282
- msgstr ""
4283
-
4284
- #: ../inc/pro/class-wizard-systemtest.php:99
4285
- #, php-format
4286
- msgid ""
4287
- "You must run WordPress version 3.4 or higher to use this plugin. You are "
4288
- "using version %s now."
4289
- msgstr ""
4290
-
4291
- #: ../inc/pro/class-wizard-systemtest.php:104
4292
- #, php-format
4293
- msgid ""
4294
- "You must run PHP version 5.2.6 or higher to use this plugin. You are using "
4295
- "version %s now."
4296
- msgstr ""
4297
-
4298
- #: ../inc/pro/class-wizard-systemtest.php:108
4299
- #, php-format
4300
- msgid ""
4301
- "We recommend to run a PHP version above 5.3.2 to get the full plugin "
4302
- "functionality. You are using version %s now."
4303
- msgstr ""
4304
-
4305
- #: ../inc/pro/class-wizard-systemtest.php:113
4306
- #, php-format
4307
- msgid ""
4308
- "You must have the MySQLi extension installed and a MySQL server version of 5."
4309
- "0.7 or higher to use this plugin. You are using version %s now."
4310
- msgstr ""
4311
-
4312
- #: ../inc/pro/class-wizard-systemtest.php:118
4313
- msgid "PHP cURL extension must be installed to use the full plugin functionality."
4314
- msgstr ""
4315
-
4316
- #: ../inc/pro/class-wizard-systemtest.php:122
4317
- #, php-format
4318
- msgctxt "%1 = extension name, %2 = file suffix"
4319
- msgid "We recommend to install the %1$s extension to generate %2$s archives."
4320
- msgstr ""
4321
-
4322
- #: ../inc/pro/class-wizard-systemtest.php:146
4323
- #, php-format
4324
- msgctxt "Link to PHP manual"
4325
- msgid "Please disable the deprecated <a href=\"%s\">PHP safe mode</a>."
4326
- msgstr ""
4327
-
4328
- #: ../inc/pro/class-wizard-systemtest.php:154
4329
- msgid ""
4330
- "We recommend to install the PHP FTP extension to use the FTP backup "
4331
- "destination."
4332
- msgstr ""
4333
-
4334
- #: ../inc/pro/class-wizard-systemtest.php:174
4335
- #, php-format
4336
- msgid "The HTTP response test result is an error: \"%s\"."
4337
- msgstr ""
4338
-
4339
- #: ../inc/pro/class-wizard-systemtest.php:178
4340
- #, php-format
4341
- msgid ""
4342
- "The HTTP response test result is a wrong HTTP status: %s. It should be "
4343
- "status 200."
4344
- msgstr ""
4345
-
4346
- #: ../inc/pro/class-wizard-systemtest.php:196
4347
- msgid "WP-Cron seems to be broken. But it is needed to run scheduled jobs."
4348
- msgstr ""
4349
-
4350
- #: ../inc/pro/class-wizard-systemtest.php:201
4351
- msgid "All tests passed without errors."
4352
- msgstr ""
4353
-
4354
- #: ../inc/pro/class-wizard-systemtest.php:204
4355
- msgid ""
4356
- "There is no error, but some warnings. BackWPup will work, but with "
4357
- "limitations."
4358
- msgstr ""
4359
-
4360
- #: ../inc/pro/class-wizard-systemtest.php:207
4361
- msgid "There are errors. Please correct them, or BackWPup cannot work."
4362
- msgstr ""
4363
-
4364
- #: ../inc/pro/class-jobtype-dbdump.php:89
4365
- msgid "Backup only WordPress Database tables"
4366
- msgstr ""
4367
-
4368
- #: ../inc/pro/class-jobtype-dbdump.php:109
4369
- msgid "Database connection"
4370
- msgstr ""
4371
-
4372
- #: ../inc/pro/class-jobtype-dbdump.php:113
4373
- msgid "Use WordPress database connection."
4374
- msgstr ""
4375
-
4376
- #: ../inc/pro/class-jobtype-dbdump.php:117
4377
- msgid "Host:"
4378
- msgstr ""
4379
-
4380
- #: ../inc/pro/class-jobtype-dbdump.php:120
4381
- msgid "User:"
4382
- msgstr ""
4383
-
4384
- #: ../inc/pro/class-jobtype-dbdump.php:127
4385
- msgid "Charset:"
4386
- msgstr ""
4387
-
4388
- #: ../inc/pro/class-jobtype-dbdump.php:138
4389
- msgid "Database:"
4390
- msgstr ""
4391
-
4392
- #: ../inc/pro/class-jobtype-dbdump.php:166
4393
- msgid "Database Backup type"
4394
- msgstr ""
4395
-
4396
- #: ../inc/pro/class-jobtype-dbdump.php:170
4397
- msgid "SQL File (with mysqli)"
4398
- msgstr ""
4399
-
4400
- #: ../inc/pro/class-jobtype-dbdump.php:171
4401
- msgid "SQL File (with mysqldump)"
4402
- msgstr ""
4403
-
4404
- #: ../inc/pro/class-jobtype-dbdump.php:172
4405
- msgid "XML File (phpMyAdmin schema)"
4406
- msgstr ""
4407
-
4408
- #: ../inc/pro/class-jobtype-dbdump.php:178
4409
- msgid "Path to <em>mysqldump</em> file"
4410
- msgstr ""
4411
-
4412
- #: ../inc/pro/class-jobtype-dbdump.php:180
4413
- msgid ""
4414
- "Path to mysqldump file, so a backup can be made with it. If it is correct "
4415
- "and <em>shell_exec</em> is active, the backup will be generated with a "
4416
- "system command. If <em>shell_exec</em> ist not active, this is disabled"
4417
- msgstr ""
4418
-
4419
- #: ../inc/pro/class-jobtype-dbdump.php:560
4420
- #, php-format
4421
- msgid "Added database backup \"%1$s\" with %2$s to backup file list"
4422
- msgstr ""
4423
-
4424
- #: ../inc/pro/class-jobtype-dbdump.php:581
4425
- #, php-format
4426
- msgid "%d. Try to backup MySQL system&#160;&hellip;"
4427
- msgstr ""
4428
-
4429
- #: ../inc/pro/class-jobtype-dbdump.php:588
4430
- msgid "Executing of system commands not allowed. Please use backup with mysqli."
4431
- msgstr ""
4432
-
4433
- #: ../inc/pro/class-jobtype-dbdump.php:593
4434
- #, php-format
4435
- msgid "%s file not in open basedir of PHP."
4436
- msgstr ""
4437
-
4438
- #: ../inc/pro/class-jobtype-dbdump.php:598
4439
- #, php-format
4440
- msgid "%s file not found. Please correct the path for the mysqldump file."
4441
- msgstr ""
4442
-
4443
- #: ../inc/pro/class-jobtype-dbdump.php:678
4444
- #, php-format
4445
- msgctxt "Executed exec() command"
4446
- msgid "CLI Exec: %s"
4447
- msgstr ""
4448
-
4449
- #: ../inc/pro/class-jobtype-dbdump.php:689
4450
- msgid "Usage error."
4451
- msgstr ""
4452
-
4453
- #: ../inc/pro/class-jobtype-dbdump.php:690
4454
- msgid ""
4455
- "MySQL Server Error. This could be an issue with permissions. Try using "
4456
- "database backup with mysqli."
4457
- msgstr ""
4458
-
4459
- #: ../inc/pro/class-jobtype-dbdump.php:691
4460
- msgid "Error during consistency checks."
4461
- msgstr ""
4462
-
4463
- #: ../inc/pro/class-jobtype-dbdump.php:692
4464
- msgid "Not enough memory."
4465
- msgstr ""
4466
-
4467
- #: ../inc/pro/class-jobtype-dbdump.php:693
4468
- msgid "Error during writing of SQL backup file."
4469
- msgstr ""
4470
-
4471
- #: ../inc/pro/class-jobtype-dbdump.php:694
4472
- msgid "Illegal table"
4473
- msgstr ""
4474
-
4475
- #: ../inc/pro/class-jobtype-dbdump.php:699
4476
- #, php-format
4477
- msgid "mysqldump returned: (%d) %s"
4478
- msgstr ""
4479
-
4480
- #: ../inc/pro/class-jobtype-dbdump.php:712
4481
- msgid "Can not create mysql backup with mysqldump command"
4482
- msgstr ""
4483
-
4484
- #: ../inc/pro/class-jobtype-dbdump.php:758
4485
- #, php-format
4486
- msgid "%d. Try to backup database as XML&#160;&hellip;"
4487
- msgstr ""
4488
-
4489
- #: ../inc/pro/class-jobtype-dbdump.php:857
4490
- msgid "No tables for XML backup"
4491
- msgstr ""
4492
-
4493
- #: ../inc/pro/class-jobtype-dbdump.php:893
4494
- #, php-format
4495
- msgid "Dump database create view \"%s\""
4496
- msgstr ""
4497
-
4498
- #: ../inc/pro/class-jobtype-dbdump.php:911
4499
- #, php-format
4500
- msgid "Backup database structure \"%s\" to XML"
4501
- msgstr ""
4502
-
4503
- #: ../inc/pro/class-jobtype-dbdump.php:953
4504
- #, php-format
4505
- msgid "Backup table \"%s\" data to XML"
4506
- msgstr ""
4507
-
4508
- #: ../inc/pro/class-jobtype-dbdump.php:1021
4509
- #, php-format
4510
- msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
4511
- msgstr ""
4512
-
4513
- #: ../inc/pro/class-jobtype-dbdump.php:1024
4514
- msgid "Database XML backup done!"
4515
- msgstr ""
4516
-
4517
- #: ../inc/pro/class-export-jobs.php:12 ../inc/pro/class-export-jobs.php:23
4518
- msgid "Export"
4519
- msgstr ""
4520
-
4521
- #: ../inc/pro/class-jobtype-file.php:19
4522
- msgid "Backup WordPress main files"
4523
- msgstr ""
4524
-
4525
- #: ../inc/pro/class-jobtype-file.php:23
4526
- msgid "Backup blog content folder"
4527
- msgstr ""
4528
-
4529
- #: ../inc/pro/class-jobtype-file.php:27
4530
- msgid "Backup blog plugins"
4531
- msgstr ""
4532
-
4533
- #: ../inc/pro/class-jobtype-file.php:31
4534
- msgid "Backup blog themes"
4535
- msgstr ""
4536
-
4537
- #: ../inc/pro/class-jobtype-file.php:35
4538
- msgid "Backup blog uploads folder"
4539
- msgstr ""
4540
-
4541
- #: ../inc/pro/class-settings-apikeys.php:42
4542
- msgid "Hash key"
4543
- msgstr ""
4544
-
4545
- #: ../inc/pro/class-settings-apikeys.php:43
4546
- msgid ""
4547
- "Hash Key for BackWPup. It will be used to have hashes in folder and file "
4548
- "names. It must at least 6 chars long."
4549
- msgstr ""
4550
-
4551
- #: ../inc/pro/class-settings-apikeys.php:46
4552
- msgid "Hash key:"
4553
- msgstr ""
4554
-
4555
- #: ../inc/pro/class-settings-apikeys.php:59
4556
- msgid "Dropbox API Keys"
4557
- msgstr ""
4558
-
4559
- #: ../inc/pro/class-settings-apikeys.php:60
4560
- msgid ""
4561
- "If you want to set your own Dropbox API Keys, you can do it here. Leave "
4562
- "empty for default."
4563
- msgstr ""
4564
-
4565
- #: ../inc/pro/class-settings-apikeys.php:63
4566
- msgid "Full Dropbox App key:"
4567
- msgstr ""
4568
-
4569
- #: ../inc/pro/class-settings-apikeys.php:71
4570
- msgid "Full Dropbox App secret:"
4571
- msgstr ""
4572
-
4573
- #: ../inc/pro/class-settings-apikeys.php:79
4574
- msgid "Sandbox App key:"
4575
- msgstr ""
4576
-
4577
- #: ../inc/pro/class-settings-apikeys.php:87
4578
- msgid "Sandbox App secret:"
4579
- msgstr ""
4580
-
4581
- #: ../inc/pro/class-settings-apikeys.php:100
4582
- msgid "SugarSync API Keys"
4583
- msgstr ""
4584
-
4585
- #: ../inc/pro/class-settings-apikeys.php:101
4586
- msgid ""
4587
- "If you want to set your own SugarSync API keys you can do that here. Leave "
4588
- "empty for default."
4589
- msgstr ""
4590
-
4591
- #: ../inc/pro/class-settings-apikeys.php:104
4592
- msgid "Access Key ID:"
4593
- msgstr ""
4594
-
4595
- #: ../inc/pro/class-settings-apikeys.php:112
4596
- msgid "Private Access Key:"
4597
- msgstr ""
4598
-
4599
- #: ../inc/pro/class-settings-apikeys.php:119
4600
- msgid "App ID:"
4601
- msgstr ""
4602
-
4603
- #: ../inc/pro/class-settings-apikeys.php:132
4604
- msgid "Google API Keys"
4605
- msgstr ""
4606
-
4607
- #: ../inc/pro/class-settings-apikeys.php:136
4608
- msgid "Client ID:"
4609
- msgstr ""
4610
-
4611
- #: ../inc/pro/class-settings-apikeys.php:144
4612
- msgid "Client secret:"
4613
- msgstr ""
4614
-
4615
- #: ../inc/pro/class-settings-apikeys.php:151
4616
- msgid "Redirect URIs:"
4617
- msgstr ""
4618
-
4619
- #: ../inc/pro/class-settings-apikeys.php:155
4620
- msgid "Add this URI in a new line to the field."
4621
- msgstr ""
4622
-
4623
- #: ../inc/pro/class-wizard-jobimport.php:14
4624
- msgid "XML job import"
4625
- msgstr ""
4626
-
4627
- #: ../inc/pro/class-wizard-jobimport.php:15
4628
- msgid "Wizard for importing BackWPup jobs from an XML file"
4629
- msgstr ""
4630
-
4631
- #: ../inc/pro/class-wizard-jobimport.php:32 ../inc/pro/class-wizard-jobimport.php:
4632
- #: 98
4633
- msgid "Import"
4634
- msgstr ""
4635
-
4636
- #: ../inc/pro/class-wizard-jobimport.php:45
4637
- msgid "Import File"
4638
- msgstr ""
4639
-
4640
- #: ../inc/pro/class-wizard-jobimport.php:45
4641
- msgid "Upload XML job file for import"
4642
- msgstr ""
4643
-
4644
- #: ../inc/pro/class-wizard-jobimport.php:46
4645
- msgid "Select items to import"
4646
- msgstr ""
4647
-
4648
- #: ../inc/pro/class-wizard-jobimport.php:46
4649
- msgid "Select which job should be imported or overwritten."
4650
- msgstr ""
4651
-
4652
- #: ../inc/pro/class-wizard-jobimport.php:67
4653
- msgid ""
4654
- "Please upload your BackWPup job XML export file and we&#8217;ll import the "
4655
- "jobs into BackWPup."
4656
- msgstr ""
4657
-
4658
- #: ../inc/pro/class-wizard-jobimport.php:69
4659
- msgid "Choose a file from your computer:"
4660
- msgstr ""
4661
-
4662
- #: ../inc/pro/class-wizard-jobimport.php:69
4663
- #, php-format
4664
- msgid "Maximum size: %s"
4665
- msgstr ""
4666
-
4667
- #: ../inc/pro/class-wizard-jobimport.php:91
4668
- msgid "Import Jobs"
4669
- msgstr ""
4670
-
4671
- #: ../inc/pro/class-wizard-jobimport.php:94
4672
- msgid "Import Type"
4673
- msgstr ""
4674
-
4675
- #: ../inc/pro/class-wizard-jobimport.php:94
4676
- msgid "No Import"
4677
- msgstr ""
4678
-
4679
- #: ../inc/pro/class-wizard-jobimport.php:96
4680
- msgid "Overwrite"
4681
- msgstr ""
4682
-
4683
- #: ../inc/pro/class-wizard-jobimport.php:96
4684
- msgid "Append"
4685
- msgstr ""
4686
-
4687
- #: ../inc/pro/class-wizard-jobimport.php:110
4688
- msgid "Import Config"
4689
- msgstr ""
4690
-
4691
- #: ../inc/pro/class-wizard-jobimport.php:113
4692
- msgid "Import BackWPup configuration"
4693
- msgstr ""
4694
-
4695
- #: ../inc/pro/class-wizard-jobimport.php:138
4696
- msgid ""
4697
- "File is empty. Please upload something more substantial. This error could "
4698
- "also caused by uploads being disabled in your php.ini or by post_max_size "
4699
- "being defined as smaller than upload_max_filesize in php.ini."
4700
- msgstr ""
4701
-
4702
- #: ../inc/pro/class-wizard-jobimport.php:153
4703
- #, php-format
4704
- msgid ""
4705
- "The export file could not be found at <code>%s</code>. This is likely due to "
4706
- "an issue with permissions."
4707
- msgstr ""
4708
-
4709
- #: ../inc/pro/class-wizard-jobimport.php:160
4710
- msgid "Sorry, there has been a phrase error."
4711
- msgstr ""
4712
-
4713
- #: ../inc/pro/class-wizard-jobimport.php:167
4714
- #, php-format
4715
- msgid ""
4716
- "This Export file (version %s) may not be supported by this version of the "
4717
- "importer."
4718
- msgstr ""
4719
-
4720
- #: ../inc/pro/class-wizard-jobimport.php:173
4721
- msgid "This is not a BackWPup XML file"
4722
- msgstr ""
4723
-
4724
- #: ../inc/pro/class-wizard-jobimport.php:236
4725
- #, php-format
4726
- msgid "Job %1$s with id %2$d imported"
4727
- msgstr ""
4728
-
4729
- #: ../inc/pro/class-wizard-jobimport.php:244
4730
- msgid "BackWPup config imported"
4731
- msgstr ""
4732
-
4733
- #: ../inc/pro/class-destination-s3-v1.php:17 ../inc/pro/class-destination-s3.php:17
4734
- msgid "Select a S3 service:"
4735
- msgstr ""
4736
-
4737
- #: ../inc/pro/class-destination-s3-v1.php:29
4738
- msgid "Hosteurope Cloud Storage"
4739
- msgstr ""
4740
-
4741
- #: ../inc/pro/class-destination-s3-v1.php:33 ../inc/pro/class-destination-s3.php:35
4742
- msgid "or set an S3 Server URL:"
4743
- msgstr ""
4744
-
4745
- #: ../inc/pro/class-destination-s3-v1.php:39 ../inc/pro/class-destination-s3.php:
4746
- #: 41 ../inc/pro/class-destination-glacier.php:167
4747
- msgid "Secret Key:"
4748
- msgstr ""
4749
-
4750
- #: ../inc/pro/class-destination-s3-v1.php:42 ../inc/pro/class-destination-s3.php:44
4751
- msgid "Bucket:"
4752
- msgstr ""
4753
-
4754
- #: ../inc/pro/class-destination-s3-v1.php:52 ../inc/pro/class-destination-s3.php:54
4755
- msgid "New Bucket:"
4756
- msgstr ""
4757
-
4758
- #: ../inc/pro/class-destination-s3-v1.php:54 ../inc/pro/class-destination-s3.php:56
4759
- msgid "Folder in bucket:"
4760
- msgstr ""
4761
-
4762
- #: ../inc/pro/class-destination-s3-v1.php:134 ../inc/pro/class-destination-s3.php:
4763
- #: 135
4764
- #, php-format
4765
- msgid "Bucket %1$s created in %2$s."
4766
- msgstr ""
4767
-
4768
- #: ../inc/pro/class-destination-s3-v1.php:157 ../inc/pro/class-destination-s3.php:
4769
- #: 159
4770
- #, php-format
4771
- msgid "%d. Trying to sync files to S3 Service&#160;&hellip;"
4772
- msgstr ""
4773
-
4774
- #: ../inc/pro/class-destination-s3-v1.php:196 ../inc/pro/class-destination-s3.php:
4775
- #: 193
4776
- msgid "Retrieving file list from S3."
4777
- msgstr ""
4778
-
4779
- #: ../inc/pro/class-destination-s3-v1.php:252 ../inc/pro/class-destination-s3.php:
4780
- #: 251
4781
- msgid "Upload changed files to S3."
4782
- msgstr ""
4783
-
4784
- #: ../inc/pro/class-destination-s3-v1.php:264 ../inc/pro/class-destination-s3.php:
4785
- #: 266
4786
- #, php-format
4787
- msgid "File %s uploaded to S3."
4788
- msgstr ""
4789
-
4790
- #: ../inc/pro/class-destination-s3-v1.php:289 ../inc/pro/class-destination-s3.php:
4791
- #: 294
4792
- #, php-format
4793
- msgid "Extra file %s uploaded to S3."
4794
- msgstr ""
4795
-
4796
- #: ../inc/pro/class-destination-s3-v1.php:302 ../inc/pro/class-destination-s3.php:
4797
- #: 307
4798
- msgid "Delete nonexistent files on S3"
4799
- msgstr ""
4800
-
4801
- #: ../inc/pro/class-destination-s3-v1.php:305 ../inc/pro/class-destination-s3.php:
4802
- #: 314
4803
- #, php-format
4804
- msgid "File %s deleted from S3."
4805
- msgstr ""
4806
-
4807
- #: ../inc/pro/class-destination-sugarsync.php:25 ../inc/pro/class-destination-
4808
- #: sugarsync.php:85
4809
- msgid "Sugarsync authenticate!"
4810
- msgstr ""
4811
-
4812
- #: ../inc/pro/class-destination-sugarsync.php:31 ../inc/pro/class-destination-
4813
- #: dropbox.php:34 ../inc/pro/class-destination-gdrive.php:270 ../inc/pro/class-
4814
- #: destination-gdrive.php:276
4815
- msgid "Login:"
4816
- msgstr ""
4817
-
4818
- #: ../inc/pro/class-destination-sugarsync.php:36
4819
- msgid "Root:"
4820
- msgstr ""
4821
-
4822
- #: ../inc/pro/class-destination-sugarsync.php:58 ../inc/pro/class-destination-
4823
- #: dropbox.php:38 ../inc/pro/class-destination-gdrive.php:281
4824
- msgid "Folder:"
4825
- msgstr ""
4826
-
4827
- #: ../inc/pro/class-destination-sugarsync.php:61 ../inc/pro/class-destination-ftp.
4828
- #: php:39
4829
- msgid "Maximum number of backup files to keep in folder:"
4830
- msgstr ""
4831
-
4832
- #: ../inc/pro/class-destination-sugarsync.php:63 ../inc/pro/class-destination-ftp.
4833
- #: php:42
4834
- msgid "(Oldest files will be deleted first.)"
4835
- msgstr ""
4836
-
4837
- #: ../inc/pro/class-destination-folder.php:18
4838
- msgid "Absolute path to folder for backup files:"
4839
- msgstr ""
4840
-
4841
- #: ../inc/pro/class-destination-folder.php:69
4842
- #, php-format
4843
- msgid "%d. Try to sync files to folder&#160;&hellip;"
4844
- msgstr ""
4845
-
4846
- #: ../inc/pro/class-destination-folder.php:73
4847
- msgid "Retrieving file list from folder"
4848
- msgstr ""
4849
-
4850
- #: ../inc/pro/class-destination-folder.php:79
4851
- msgid "Copy changed files to folder"
4852
- msgstr ""
4853
-
4854
- #: ../inc/pro/class-destination-folder.php:92
4855
- #, php-format
4856
- msgid "File %s copied"
4857
- msgstr ""
4858
-
4859
- #: ../inc/pro/class-destination-folder.php:105
4860
- msgid "Delete not existing files from folder"
4861
- msgstr ""
4862
-
4863
- #: ../inc/pro/class-destination-folder.php:113
4864
- #, php-format
4865
- msgid "Extra file %s copied"
4866
- msgstr ""
4867
-
4868
- #: ../inc/pro/class-destination-folder.php:129
4869
- #, php-format
4870
- msgid "File %s deleted from folder"
4871
- msgstr ""
4872
-
4873
- #: ../inc/pro/class-destination-folder.php:186
4874
- #, php-format
4875
- msgid "Empty folder %s deleted"
4876
- msgstr ""
4877
-
4878
- #: ../inc/pro/class-destination-dropbox.php:24
4879
- msgid "Auth Code:"
4880
- msgstr ""
4881
-
4882
- #: ../inc/pro/class-destination-dropbox.php:27
4883
- msgid "Get auth code"
4884
- msgstr ""
4885
-
4886
- #: ../inc/pro/class-destination-dropbox.php:105
4887
- #, php-format
4888
- msgid "%d. Try to sync files to Dropbox&#160;&hellip;"
4889
- msgstr ""
4890
-
4891
- #: ../inc/pro/class-destination-dropbox.php:145
4892
- msgid "Retrieving file list from Dropbox"
4893
- msgstr ""
4894
-
4895
- #: ../inc/pro/class-destination-dropbox.php:159
4896
- msgid "Upload changed files to Dropbox"
4897
- msgstr ""
4898
-
4899
- #: ../inc/pro/class-destination-dropbox.php:181
4900
- #, php-format
4901
- msgid "File %s uploaded to Dropbox"
4902
- msgstr ""
4903
-
4904
- #: ../inc/pro/class-destination-dropbox.php:208
4905
- #, php-format
4906
- msgid "Extra file %s uploaded to Dropbox"
4907
- msgstr ""
4908
-
4909
- #: ../inc/pro/class-destination-dropbox.php:217
4910
- msgid "Delete not existing files from Dropbox"
4911
- msgstr ""
4912
-
4913
- #: ../inc/pro/class-destination-dropbox.php:224
4914
- #, php-format
4915
- msgid "Folder %s deleted from Dropbox"
4916
- msgstr ""
4917
-
4918
- #: ../inc/pro/class-destination-dropbox.php:242
4919
- #, php-format
4920
- msgid "File %s deleted from Dropbox"
4921
- msgstr ""
4922
-
4923
- #: ../inc/pro/class-page-wizard.php:122
4924
- msgid "No BackWPup Wizard Session found!"
4925
- msgstr ""
4926
-
4927
- #: ../inc/pro/class-page-wizard.php:134 ../inc/pro/class-page-wizard.php:442
4928
- msgid "Cancel"
4929
- msgstr ""
4930
-
4931
- #: ../inc/pro/class-page-wizard.php:169 ../inc/pro/class-page-wizard.php:437 ..
4932
- #: /inc/pro/class-page-wizard.php:470
4933
- msgid "Next ›"
4934
- msgstr ""
4935
-
4936
- #: ../inc/pro/class-page-wizard.php:186 ../inc/pro/class-page-wizard.php:433
4937
- msgid "‹ Previous"
4938
- msgstr ""
4939
-
4940
- #: ../inc/pro/class-page-wizard.php:335
4941
- #, php-format
4942
- msgctxt "Plugin Name"
4943
- msgid "%s Wizards"
4944
- msgstr ""
4945
-
4946
- #: ../inc/pro/class-page-wizard.php:373
4947
- #, php-format
4948
- msgctxt "Plugin Name"
4949
- msgid "%s Wizard:"
4950
- msgstr ""
4951
-
4952
- #: ../inc/pro/class-page-wizard.php:445
4953
- msgid "Back to overview"
4954
- msgstr ""
4955
-
4956
- #: ../inc/pro/class-destination-ftp.php:17
4957
- msgid "Hostname:"
4958
- msgstr ""
4959
-
4960
- #: ../inc/pro/class-destination-ftp.php:25 ../inc/pro/class-destination-rsc.php:23
4961
- msgid "Username:"
4962
- msgstr ""
4963
-
4964
- #: ../inc/pro/class-destination-ftp.php:33
4965
- msgid "Folder on server:"
4966
- msgstr ""
4967
-
4968
- #: ../inc/pro/class-destination-rsc.php:26
4969
- msgid "API Key:"
4970
- msgstr ""
4971
-
4972
- #: ../inc/pro/class-destination-rsc.php:29
4973
- msgid "Select region:"
4974
- msgstr ""
4975
-
4976
- #: ../inc/pro/class-destination-rsc.php:136
4977
- #, php-format
4978
- msgid "%d. Trying to sync files to Rackspace cloud&#160;&hellip;"
4979
- msgstr ""
4980
-
4981
- #: ../inc/pro/class-destination-rsc.php:156
4982
- #, php-format
4983
- msgid "Connected to Rackspace cloud files container %s."
4984
- msgstr ""
4985
-
4986
- #: ../inc/pro/class-destination-rsc.php:170
4987
- msgid "Retrieving files list from Rackspace Cloud."
4988
- msgstr ""
4989
-
4990
- #: ../inc/pro/class-destination-rsc.php:201
4991
- msgid "Upload changed files to Rackspace Cloud."
4992
- msgstr ""
4993
-
4994
- #: ../inc/pro/class-destination-rsc.php:219
4995
- #, php-format
4996
- msgid "File %s uploaded to Rackspace Cloud."
4997
- msgstr ""
4998
-
4999
- #: ../inc/pro/class-destination-rsc.php:252
5000
- #, php-format
5001
- msgid "Extra file %s uploaded to Rackspace Cloud."
5002
- msgstr ""
5003
-
5004
- #: ../inc/pro/class-destination-rsc.php:265
5005
- msgid "Delete nonexistent files on Rackspace Cloud."
5006
- msgstr ""
5007
-
5008
- #: ../inc/pro/class-destination-rsc.php:269
5009
- #, php-format
5010
- msgid "File %s deleted from Rackspace Cloud."
5011
- msgstr ""
5012
-
5013
- #: ../inc/pro/class-marketpress-documentation.php:175
5014
- msgid "Loading Menu ..."
5015
- msgstr ""
5016
-
5017
- #: ../inc/pro/class-marketpress-documentation.php:218 ../inc/pro/class-
5018
- #: marketpress-documentation.php:334
5019
- #, php-format
5020
- msgctxt "%s = Remote Code"
5021
- msgid "Could not connect to remote host, code %d. Please try again later."
5022
- msgstr ""
5023
-
5024
- #: ../inc/pro/class-marketpress-documentation.php:230 ../inc/pro/class-
5025
- #: marketpress-documentation.php:346
5026
- msgid "Could not find content for this page. Please try again later."
5027
- msgstr ""
5028
-
5029
- #: ../inc/pro/class-marketpress-documentation.php:236 ../inc/pro/class-
5030
- #: marketpress-documentation.php:351
5031
- msgid "Could not connect to remote host. Please try again later."
5032
- msgstr ""
5033
-
5034
- #: ../inc/pro/class-marketpress-documentation.php:282 ../inc/pro/class-
5035
- #: marketpress-documentation.php:290
5036
- msgid "Loading Content ..."
5037
- msgstr ""
5038
-
5039
- #: ../inc/pro/class-jobtype-dbcheck.php:21
5040
- msgid "Check only WordPress Database tables"
5041
- msgstr ""
5042
-
5043
- #: ../inc/pro/class-jobtype-wpexp.php:17
5044
- msgid "Items to export:"
5045
- msgstr ""
5046
-
5047
- #: ../inc/pro/class-destination-gdrive.php:35 ../inc/pro/class-destination-gdrive.
5048
- #: php:257
5049
- #, php-format
5050
- msgid ""
5051
- "Looks like you haven’t set up any API keys yet. Head over to <a "
5052
- "href=\"%s\">Settings | API-Keys</a> and get Google Drive all set up, then come "
5053
- "back here."
5054
- msgstr ""
5055
-
5056
- #: ../inc/pro/class-destination-gdrive.php:49 ../inc/pro/class-destination-gdrive.
5057
- #: php:272
5058
- msgid "Authenticate"
5059
- msgstr ""
5060
-
5061
- #: ../inc/pro/class-destination-gdrive.php:55 ../inc/pro/class-destination-gdrive.
5062
- #: php:278
5063
- msgid "Reauthenticate"
5064
- msgstr ""
5065
-
5066
- #: ../inc/pro/class-destination-gdrive.php:65
5067
- msgid "Folder in Google Drive"
5068
- msgstr ""
5069
-
5070
- #: ../inc/pro/class-destination-gdrive.php:85
5071
- msgid ""
5072
- "Consider using trash to delete files. If trash is not enabled, files will be "
5073
- "deleted permanently."
5074
- msgstr ""
5075
-
5076
- #: ../inc/pro/class-destination-gdrive.php:142 ../inc/pro/class-destination-
5077
- #: gdrive.php:169
5078
- msgid "GDrive: Authenticated."
5079
- msgstr ""
5080
-
5081
- #: ../inc/pro/class-destination-gdrive.php:146 ../inc/pro/class-destination-
5082
- #: gdrive.php:173
5083
- msgid "GDrive: No refresh token received. Try to Authenticate again!"
5084
- msgstr ""
5085
-
5086
- #: ../inc/pro/class-destination-gdrive.php:153 ../inc/pro/class-destination-
5087
- #: gdrive.php:178 ../inc/pro/class-destination-gdrive.php:202 ../inc/pro/class-
5088
- #: destination-gdrive.php:224
5089
- #, php-format
5090
- msgid "GDrive API: %s"
5091
- msgstr ""
5092
-
5093
- #: ../inc/pro/class-destination-gdrive.php:389
5094
- #, php-format
5095
- msgid "%d. Try to send backup file to Google Drive&#160;&hellip;"
5096
- msgstr ""
5097
-
5098
- #: ../inc/pro/class-destination-gdrive.php:415
5099
- msgid "Uploading to Google Drive&#160;&hellip;"
5100
- msgstr ""
5101
-
5102
- #: ../inc/pro/class-destination-gdrive.php:475
5103
- msgid "Google Drive API: could not create resumable file"
5104
- msgstr ""
5105
-
5106
- #: ../inc/pro/class-destination-gdrive.php:521
5107
- msgid "Can not resume transfer backup to Google Drive!"
5108
- msgstr ""
5109
-
5110
- #: ../inc/pro/class-destination-gdrive.php:590
5111
- #, php-format
5112
- msgid "Error transfering file chunks to %s."
5113
- msgstr ""
5114
-
5115
- #: ../inc/pro/class-destination-gdrive.php:591 ../inc/pro/class-destination-
5116
- #: gdrive.php:617
5117
- msgid "Google Drive"
5118
- msgstr ""
5119
-
5120
- #: ../inc/pro/class-destination-gdrive.php:661
5121
- #, php-format
5122
- msgid "One file deleted from Google Drive"
5123
- msgid_plural "%d files deleted on Google Drive"
5124
- msgstr[0] ""
5125
- msgstr[1] ""
5126
-
5127
- #: ../inc/pro/class-destination-gdrive.php:667 ../inc/pro/class-destination-
5128
- #: gdrive.php:889
5129
- #, php-format
5130
- msgid "Google Drive API: %s"
5131
- msgstr ""
5132
-
5133
- #: ../inc/pro/class-destination-gdrive.php:715
5134
- #, php-format
5135
- msgid "%d. Try to sync files to Google Drive&#160;&hellip;"
5136
- msgstr ""
5137
-
5138
- #: ../inc/pro/class-destination-gdrive.php:739
5139
- msgid "Syncing changed files to Google Drive"
5140
- msgstr ""
5141
-
5142
- #: ../inc/pro/class-destination-gdrive.php:768
5143
- #, php-format
5144
- msgid "File %s updated on Google Drive"
5145
- msgstr ""
5146
-
5147
- #: ../inc/pro/class-destination-gdrive.php:788
5148
- #, php-format
5149
- msgid "File %s uploaded to Google Drive"
5150
- msgstr ""
5151
-
5152
- #: ../inc/pro/class-destination-gdrive.php:809
5153
- #, php-format
5154
- msgid "File %s moved to trash in Google Drive"
5155
- msgstr ""
5156
-
5157
- #: ../inc/pro/class-destination-gdrive.php:812
5158
- #, php-format
5159
- msgid "File %s deleted permanently in Google Drive"
5160
- msgstr ""
5161
-
5162
- #: ../inc/pro/class-destination-gdrive.php:857
5163
- #, php-format
5164
- msgid "Extra file %s updated on Google Drive"
5165
- msgstr ""
5166
-
5167
- #: ../inc/pro/class-destination-gdrive.php:878
5168
- #, php-format
5169
- msgid "Extra file %s uploaded to Google Drive"
5170
- msgstr ""
5171
-
5172
- #: ../inc/pro/class-destination-glacier.php:26
5173
- msgid "Amazon Glacier"
5174
- msgstr ""
5175
-
5176
- #: ../inc/pro/class-destination-glacier.php:30
5177
- msgid "Select a region:"
5178
- msgstr ""
5179
-
5180
- #: ../inc/pro/class-destination-glacier.php:32 ../inc/pro/class-destination-
5181
- #: glacier.php:154
5182
- msgid "Amazon Glacier Region"
5183
- msgstr ""
5184
-
5185
- #: ../inc/pro/class-destination-glacier.php:33 ../inc/pro/class-destination-
5186
- #: glacier.php:155
5187
- msgid "US Standard"
5188
- msgstr ""
5189
-
5190
- #: ../inc/pro/class-destination-glacier.php:34 ../inc/pro/class-destination-
5191
- #: glacier.php:156
5192
- msgid "US West (Northern California)"
5193
- msgstr ""
5194
-
5195
- #: ../inc/pro/class-destination-glacier.php:35 ../inc/pro/class-destination-
5196
- #: glacier.php:157
5197
- msgid "US West (Oregon)"
5198
- msgstr ""
5199
-
5200
- #: ../inc/pro/class-destination-glacier.php:36 ../inc/pro/class-destination-
5201
- #: glacier.php:158
5202
- msgid "EU (Ireland)"
5203
- msgstr ""
5204
-
5205
- #: ../inc/pro/class-destination-glacier.php:37 ../inc/pro/class-destination-
5206
- #: glacier.php:159
5207
- msgid "EU (Germany)"
5208
- msgstr ""
5209
-
5210
- #: ../inc/pro/class-destination-glacier.php:38 ../inc/pro/class-destination-
5211
- #: glacier.php:160
5212
- msgid "Asia Pacific (Tokyo)"
5213
- msgstr ""
5214
-
5215
- #: ../inc/pro/class-destination-glacier.php:39 ../inc/pro/class-destination-
5216
- #: glacier.php:161
5217
- msgid "Asia Pacific (Singapore)"
5218
- msgstr ""
5219
-
5220
- #: ../inc/pro/class-destination-glacier.php:40 ../inc/pro/class-destination-
5221
- #: glacier.php:162
5222
- msgid "Asia Pacific (Sydney)"
5223
- msgstr ""
5224
-
5225
- #: ../inc/pro/class-destination-glacier.php:41 ../inc/pro/class-destination-
5226
- #: glacier.php:163
5227
- msgid "South America (Sao Paulo)"
5228
- msgstr ""
5229
-
5230
- #: ../inc/pro/class-destination-glacier.php:42
5231
- msgid "China (Beijing)"
5232
- msgstr ""
5233
-
5234
- #: ../inc/pro/class-destination-glacier.php:48
5235
- msgid "Amazon Access Keys"
5236
- msgstr ""
5237
-
5238
- #: ../inc/pro/class-destination-glacier.php:67
5239
- msgid "Vault"
5240
- msgstr ""
5241
-
5242
- #: ../inc/pro/class-destination-glacier.php:71
5243
- msgid "Vault selection"
5244
- msgstr ""
5245
-
5246
- #: ../inc/pro/class-destination-glacier.php:83
5247
- msgid "Create a new vault"
5248
- msgstr ""
5249
-
5250
- #: ../inc/pro/class-destination-glacier.php:90
5251
- msgid "Glacier Backup settings"
5252
- msgstr ""
5253
-
5254
- #: ../inc/pro/class-destination-glacier.php:97 ../inc/pro/class-destination-
5255
- #: glacier.php:181
5256
- msgid ""
5257
- "Number of files to keep in folder. (Archives deleted before 3 months after "
5258
- "they have been stored may cause extra costs when deleted.)"
5259
- msgstr ""
5260
-
5261
- #: ../inc/pro/class-destination-glacier.php:130 ../inc/pro/class-destination-
5262
- #: glacier.php:216
5263
- #, php-format
5264
- msgid "Vault %1$s created."
5265
- msgstr ""
5266
-
5267
- #: ../inc/pro/class-destination-glacier.php:132 ../inc/pro/class-destination-
5268
- #: glacier.php:218
5269
- #, php-format
5270
- msgid "Vault %s could not be created."
5271
- msgstr ""
5272
-
5273
- #: ../inc/pro/class-destination-glacier.php:153
5274
- msgid "Select an Amazon Glacier region:"
5275
- msgstr ""
5276
-
5277
- #: ../inc/pro/class-destination-glacier.php:169
5278
- msgid "Vault:"
5279
- msgstr ""
5280
-
5281
- #: ../inc/pro/class-destination-glacier.php:178
5282
- msgid "New Vault:"
5283
- msgstr ""
5284
-
5285
- #: ../inc/pro/class-destination-glacier.php:259 ../inc/pro/class-destination-
5286
- #: glacier.php:375 ../inc/pro/class-destination-glacier.php:394 ../inc/pro/class-
5287
- #: destination-glacier.php:434
5288
- #, php-format
5289
- msgid "AWS API: %s"
5290
- msgstr ""
5291
-
5292
- #: ../inc/pro/class-destination-glacier.php:283
5293
- #, php-format
5294
- msgid "%d. Trying to send backup file to Amazon Glacier&#160;&hellip;"
5295
- msgstr ""
5296
-
5297
- #: ../inc/pro/class-destination-glacier.php:296
5298
- #, php-format
5299
- msgid "Connected to Glacier vault \"%1$s\" with %2$d archives and size of %3$d"
5300
- msgstr ""
5301
-
5302
- #: ../inc/pro/class-destination-glacier.php:298
5303
- #, php-format
5304
- msgid "Glacier vault \"%s\" does not exist!"
5305
- msgstr ""
5306
-
5307
- #: ../inc/pro/class-destination-glacier.php:304
5308
- msgid "Starting upload to Amazon Glacier&#160;&hellip;"
5309
- msgstr ""
5310
-
5311
- #: ../inc/pro/class-destination-glacier.php:357
5312
- #, php-format
5313
- msgid "Archive ID: %s"
5314
- msgstr ""
5315
-
5316
- #: ../inc/pro/class-destination-glacier.php:368 ../inc/pro/class-pro.php:111
5317
- msgid "Glacier"
5318
- msgstr ""
5319
-
5320
- #: ../inc/pro/class-destination-glacier.php:424
5321
- #, php-format
5322
- msgid "Cannot delete archive from %s."
5323
- msgstr ""
5324
-
5325
- #: ../inc/pro/class-destination-glacier.php:428
5326
- #, php-format
5327
- msgid "One file deleted on vault."
5328
- msgid_plural "%d files deleted on vault"
5329
- msgstr[0] ""
5330
- msgstr[1] ""
5331
-
5332
- #: ../inc/pro/class-destination-glacier.php:542
5333
- msgid "No vault found!"
5334
- msgstr ""
5335
-
5336
- #: ../inc/pro/class-jobtype-wpplugin.php:13
5337
- msgid "Nothing to configure"
5338
- msgstr ""
5339
-
5340
- #: ../inc/pro/class-marketpress-autoupdate.php:352 ../inc/pro/class-marketpress-
5341
- #: autoupdate.php:587
5342
- msgctxt "MarketPress URL part, should be .de for German languages"
5343
- msgid "marketpress.com"
5344
- msgstr ""
5345
-
5346
- #: ../inc/pro/class-marketpress-autoupdate.php:362
5347
- #, php-format
5348
- msgid ""
5349
- "<strong>Whoops!</strong> The license key you have entered appears not to be "
5350
- "valid. You can always get your valid key from your Downloads page at %s. "
5351
- "Automatic updates for this plugin have been disabled until you enter a valid "
5352
- "key."
5353
- msgstr ""
5354
-
5355
- #: ../inc/pro/class-marketpress-autoupdate.php:369
5356
- #, php-format
5357
- msgid ""
5358
- "<strong>All is fine.</strong> You are using a valid license key from %s for "
5359
- "this plugin. If you need to enter a new key, just override the current one "
5360
- "and save."
5361
- msgstr ""
5362
-
5363
- #: ../inc/pro/class-marketpress-autoupdate.php:382
5364
- #, php-format
5365
- msgid "Enter a valid license key from %s below."
5366
- msgstr ""
5367
-
5368
- #: ../inc/pro/class-marketpress-autoupdate.php:387
5369
- msgid "Help! I need to retrieve my key."
5370
- msgstr ""
5371
-
5372
- #: ../inc/pro/class-marketpress-autoupdate.php:393
5373
- msgid ""
5374
- "<strong>Whoops!</strong> The license key you have entered appears not to be "
5375
- "valid. Automatic updates for this plugin have been disabled until you enter "
5376
- "a valid key."
5377
- msgstr ""
5378
-
5379
- #: ../inc/pro/class-marketpress-autoupdate.php:398
5380
- #, php-format
5381
- msgid ""
5382
- "<strong>All is fine.</strong> You are using a valid license key from %s for "
5383
- "this plugin. If you need to enter a new key, just override the current one "
5384
- "and save. Or just <a href=\\\"%s\\\">delete it</a> to make it disappear."
5385
- msgstr ""
5386
-
5387
- #: ../inc/pro/class-marketpress-autoupdate.php:408
5388
- msgid "Your license status"
5389
- msgstr ""
5390
-
5391
- #: ../inc/pro/class-marketpress-autoupdate.php:414
5392
- msgid "License Key"
5393
- msgstr ""
5394
-
5395
- #: ../inc/pro/class-marketpress-autoupdate.php:416
5396
- msgid "Activate"
5397
- msgstr ""
5398
-
5399
- #: ../inc/pro/class-marketpress-autoupdate.php:594
5400
- msgid "License key has been deleted."
5401
- msgstr ""
5402
-
5403
- #: ../inc/pro/class-marketpress-autoupdate.php:600
5404
- msgid "License activated successfully."
5405
- msgstr ""
5406
-
5407
- #: ../inc/pro/class-marketpress-autoupdate.php:606 ../inc/pro/class-marketpress-
5408
- #: autoupdate.php:613 ../inc/pro/class-marketpress-autoupdate.php:622 ..
5409
- #: /inc/pro/class-marketpress-autoupdate.php:631
5410
- msgid "License cannot be activated."
5411
- msgstr ""
5412
-
5413
- #: ../inc/pro/class-marketpress-autoupdate.php:607
5414
- msgid "The license key you have entered is not correct."
5415
- msgstr ""
5416
-
5417
- #: ../inc/pro/class-marketpress-autoupdate.php:614
5418
- #, php-format
5419
- msgid ""
5420
- "You have reached the limit of URLs included in your license. Please update "
5421
- "your license at %s."
5422
- msgstr ""
5423
-
5424
- #: ../inc/pro/class-marketpress-autoupdate.php:623
5425
- #, php-format
5426
- msgid ""
5427
- "Something went wrong. Please try again later or contact the support staff at "
5428
- "%s."
5429
- msgstr ""
5430
-
5431
- #: ../inc/pro/class-marketpress-autoupdate.php:632
5432
- #, php-format
5433
- msgid ""
5434
- "Your license does not appear to be valid for this plugin. Please update your "
5435
- "license at %s."
5436
- msgstr ""
5437
-
5438
- #: ../inc/pro/class-wizard-job.php:15
5439
- msgid "Create a job"
5440
- msgstr ""
5441
-
5442
- #: ../inc/pro/class-wizard-job.php:16
5443
- msgid "Choose a job"
5444
- msgstr ""
5445
-
5446
- #: ../inc/pro/class-wizard-job.php:41
5447
- msgid "Job Types"
5448
- msgstr ""
5449
-
5450
- #: ../inc/pro/class-wizard-job.php:41
5451
- msgid "Select a task for your job."
5452
- msgstr ""
5453
-
5454
- #: ../inc/pro/class-wizard-job.php:55
5455
- msgid "Archive Settings"
5456
- msgstr ""
5457
-
5458
- #: ../inc/pro/class-wizard-job.php:55
5459
- msgid "Settings for the Backup Archive"
5460
- msgstr ""
5461
-
5462
- #: ../inc/pro/class-wizard-job.php:57
5463
- msgid "Where would you like to store the backup file?"
5464
- msgstr ""
5465
-
5466
- #: ../inc/pro/class-wizard-job.php:67 ../inc/pro/class-wizard-job.php:292
5467
- msgid "Scheduling"
5468
- msgstr ""
5469
-
5470
- #: ../inc/pro/class-wizard-job.php:67
5471
- msgid "When would you like to start the job?"
5472
- msgstr ""
5473
-
5474
- #: ../inc/pro/class-wizard-job.php:236
5475
- msgid "Select one or more tasks for your backup job."
5476
- msgstr ""
5477
-
5478
- #: ../inc/pro/class-wizard-job.php:293
5479
- msgid "Activate scheduling"
5480
- msgstr ""
5481
-
5482
- #: ../inc/pro/class-wizard-job.php:387
5483
- msgid "Sync file by file to destination"
5484
- msgstr ""
5485
-
5486
- #: ../inc/pro/class-wizard-job.php:398
5487
- msgid "Select a compression type for the backup archive"
5488
- msgstr ""
5489
-
5490
- #: ../inc/pro/class-wizard-job.php:401
5491
- msgid "Archive compression type"
5492
- msgstr ""
5493
-
5494
- #: ../inc/pro/class-wizard-job.php:404
5495
- msgid ""
5496
- "PHP Zip functions will be used if available (memory lees). Else PCLZip Class "
5497
- "will used."
5498
- msgstr ""
5499
-
5500
- #: ../inc/pro/class-wizard-job.php:406 ../inc/pro/class-wizard-job.php:411 ..
5501
- #: /inc/pro/class-wizard-job.php:415
5502
- msgid "Disabled because missing PHP function."
5503
- msgstr ""
5504
-
5505
- #: ../inc/pro/class-wizard-job.php:407
5506
- msgid "Tar (fast and memory less) uncompressed"
5507
- msgstr ""
5508
-
5509
- #: ../inc/pro/class-wizard-job.php:409
5510
- msgid "A tared and GZipped archive (fast and memory less)"
5511
- msgstr ""
5512
-
5513
- #: ../inc/pro/class-wizard-job.php:413
5514
- msgid "A tared and BZipped archive (fast and memory less)"
5515
- msgstr ""
5516
-
5517
- #: ../inc/pro/class-wizard-job.php:435
5518
- msgid "Where to store the files"
5519
- msgstr ""
5520
-
5521
- #: ../inc/pro/class-wizard-job.php:619
5522
- #, php-format
5523
- msgid "Wizard: %1$s"
5524
- msgstr ""
5525
-
5526
- #: ../inc/pro/class-wizard-job.php:638
5527
- #, php-format
5528
- msgid "New job %s generated."
5529
- msgstr ""
5530
-
5531
- #: ../inc/pro/class-wizard-job.php:650
5532
- msgid "Create Job"
5533
- msgstr ""
5534
-
5535
- #: ../inc/pro/class-wizard-job.php:675 ../inc/pro/class-wizard-job.php:676
5536
- msgid "Database Backup and XML Export (Daily)"
5537
- msgstr ""
5538
-
5539
- #: ../inc/pro/class-wizard-job.php:693 ../inc/pro/class-wizard-job.php:694
5540
- msgid "Database Check (Weekly)"
5541
- msgstr ""
5542
-
5543
- #: ../inc/pro/class-wizard-job.php:718 ../inc/pro/class-wizard-job.php:719
5544
- msgid "Backup all files"
5545
- msgstr ""
5546
-
5547
- #: ../inc/pro/class-wizard-job.php:733
5548
- msgid "Essential files + list of plugins"
5549
- msgstr ""
5550
-
5551
- #: ../inc/pro/class-wizard-job.php:734
5552
- msgid "Backup essential files and folders, plus a list of installed plugins."
5553
- msgstr ""
5554
-
5555
- #: ../inc/pro/class-wizard-job.php:749 ../inc/pro/class-wizard-job.php:750
5556
- msgid "Custom configuration"
5557
- msgstr ""
5558
-
5559
- #: ../inc/pro/class-pro.php:130
5560
- msgid "GDrive"
5561
- msgstr ""
5562
-
5563
- #: ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.
5564
- #: php:219
5565
- msgid "Wizards"
5566
- msgstr ""
 
 
 
 
 
 
 
 
 
 
1
+ # Loco Gettext template
2
+ #, fuzzy
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: BackWPup Pro\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: Tue Aug 25 2015 08:53:55 GMT+0200 (Mitteleuropäische "
8
+ "Sommerzeit)\n"
9
+ "POT-Revision-Date: Tue Nov 24 2015 13:41:11 GMT+0100 (Mitteleuropäische "
10
+ "Zeit)\n"
11
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: \n"
14
+ "Language: \n"
15
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "X-Poedit-SourceCharset: UTF-8\n"
20
+ "X-Poedit-Basepath: .\n"
21
+ "X-Poedit-SearchPath-0: ..\n"
22
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
23
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
24
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
25
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
26
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
27
+ "X-Generator: Loco - https://localise.biz/"
28
+
29
+ #. Name of the plugin
30
+ msgid "BackWPup Pro"
31
+ msgstr ""
32
+
33
+ #. URI of the plugin
34
+ msgid "https://marketpress.com/product/backwpup-pro"
35
+ msgstr ""
36
+
37
+ #. Description of the plugin
38
+ msgid "WordPress Backup Plugin"
39
+ msgstr ""
40
+
41
+ #. Author of the plugin
42
+ msgid "Inpsyde GmbH"
43
+ msgstr ""
44
+
45
+ #. Author URI of the plugin
46
+ msgid "http://inpsyde.com"
47
+ msgstr ""
48
+
49
+ #: ../backwpup.php:295 ../inc/class-page-backups.php:269
50
+ msgid "Folder"
51
+ msgstr ""
52
+
53
+ #: ../backwpup.php:296
54
+ msgid "Backup to Folder"
55
+ msgstr ""
56
+
57
+ #: ../backwpup.php:311
58
+ msgid "Email"
59
+ msgstr ""
60
+
61
+ #: ../backwpup.php:312
62
+ msgid "Backup sent via email"
63
+ msgstr ""
64
+
65
+ #: ../backwpup.php:327
66
+ msgid "FTP"
67
+ msgstr ""
68
+
69
+ #: ../backwpup.php:328
70
+ msgid "Backup to FTP"
71
+ msgstr ""
72
+
73
+ #: ../backwpup.php:343 ../inc/class-destination-dropbox.php:278
74
+ msgid "Dropbox"
75
+ msgstr ""
76
+
77
+ #: ../backwpup.php:344 ../inc/class-page-about.php:577
78
+ msgid "Backup to Dropbox"
79
+ msgstr ""
80
+
81
+ #: ../backwpup.php:360 ../backwpup.php:379 ../inc/class-destination-s3-v1.php:71 .
82
+ #: ./inc/class-destination-s3.php:74
83
+ msgid "S3 Service"
84
+ msgstr ""
85
+
86
+ #: ../backwpup.php:361
87
+ msgid "Backup to an S3 Service"
88
+ msgstr ""
89
+
90
+ #: ../backwpup.php:380
91
+ msgid "Backup to an S3 Service v1"
92
+ msgstr ""
93
+
94
+ #: ../backwpup.php:396
95
+ msgid "MS Azure"
96
+ msgstr ""
97
+
98
+ #: ../backwpup.php:397
99
+ msgid "Backup to Microsoft Azure (Blob)"
100
+ msgstr ""
101
+
102
+ #: ../backwpup.php:412
103
+ msgid "RSC"
104
+ msgstr ""
105
+
106
+ #: ../backwpup.php:413 ../inc/class-page-about.php:582
107
+ msgid "Backup to Rackspace Cloud Files"
108
+ msgstr ""
109
+
110
+ #: ../backwpup.php:429
111
+ msgid "SugarSync"
112
+ msgstr ""
113
+
114
+ #: ../backwpup.php:430 ../inc/class-page-about.php:597
115
+ msgid "Backup to SugarSync"
116
+ msgstr ""
117
+
118
+ #: ../backwpup.php:449
119
+ #, php-format
120
+ msgid "PHP Version %1$s is to low, you need Version %2$s or above."
121
+ msgstr ""
122
+
123
+ #: ../backwpup.php:456
124
+ #, php-format
125
+ msgid "Missing function \"%s\"."
126
+ msgstr ""
127
+
128
+ #: ../backwpup.php:465
129
+ #, php-format
130
+ msgid "Missing class \"%s\"."
131
+ msgstr ""
132
+
133
+ #: ../inc/class-page-logs.php:113
134
+ msgid "No Logs."
135
+ msgstr ""
136
+
137
+ #: ../inc/class-page-logs.php:125 ../inc/class-page-logs.php:204 ../inc/class-
138
+ #: page-jobs.php:113 ../inc/class-page-jobs.php:177 ../inc/class-page-backups.php:
139
+ #: 194 ../inc/class-page-backups.php:313
140
+ msgid "Delete"
141
+ msgstr ""
142
+
143
+ #: ../inc/class-page-logs.php:136 ../inc/class-page-backwpup.php:288 ../inc/class-
144
+ #: page-backwpup.php:353 ../inc/class-page-backups.php:267
145
+ msgid "Time"
146
+ msgstr ""
147
+
148
+ #: ../inc/class-page-logs.php:137 ../inc/class-page-backwpup.php:288 ../inc/class-
149
+ #: page-backwpup.php:354
150
+ msgid "Job"
151
+ msgstr ""
152
+
153
+ #: ../inc/class-page-logs.php:138
154
+ msgid "Status"
155
+ msgstr ""
156
+
157
+ #: ../inc/class-page-logs.php:139 ../inc/class-page-jobs.php:126 ../inc/class-
158
+ #: page-editjob.php:718 ../inc/pro/class-wizard-job.php:302
159
+ msgid "Type"
160
+ msgstr ""
161
+
162
+ #: ../inc/class-page-logs.php:140 ../inc/class-page-backups.php:270
163
+ msgid "Size"
164
+ msgstr ""
165
+
166
+ #: ../inc/class-page-logs.php:141
167
+ msgid "Runtime"
168
+ msgstr ""
169
+
170
+ #: ../inc/class-page-logs.php:164 ../inc/class-page-backwpup.php:317 ../inc/class-
171
+ #: page-backwpup.php:391 ../inc/class-page-jobs.php:315 ../inc/class-page-backups.
172
+ #: php:359
173
+ #, php-format
174
+ msgid "%1$s at %2$s"
175
+ msgstr ""
176
+
177
+ #: ../inc/class-page-logs.php:200 ../inc/class-page-jobs.php:172
178
+ #, php-format
179
+ msgid "Job ID: %d"
180
+ msgstr ""
181
+
182
+ #: ../inc/class-page-logs.php:202
183
+ msgid "View"
184
+ msgstr ""
185
+
186
+ #: ../inc/class-page-logs.php:206 ../inc/class-page-jobs.php:327 ../inc/class-
187
+ #: page-backups.php:316
188
+ msgid "Download"
189
+ msgstr ""
190
+
191
+ #: ../inc/class-page-logs.php:222
192
+ #, php-format
193
+ msgid "1 ERROR"
194
+ msgid_plural "%d ERRORS"
195
+ msgstr[0] ""
196
+ msgstr[1] ""
197
+
198
+ #: ../inc/class-page-logs.php:224
199
+ #, php-format
200
+ msgid "1 WARNING"
201
+ msgid_plural "%d WARNINGS"
202
+ msgstr[0] ""
203
+ msgstr[1] ""
204
+
205
+ #: ../inc/class-page-logs.php:226
206
+ msgid "O.K."
207
+ msgstr ""
208
+
209
+ #: ../inc/class-page-logs.php:243
210
+ msgid "Log only"
211
+ msgstr ""
212
+
213
+ #: ../inc/class-page-logs.php:254 ../inc/class-destination-ftp.php:86 ..
214
+ #: /inc/class-page-settings.php:477
215
+ msgid "seconds"
216
+ msgstr ""
217
+
218
+ #: ../inc/class-page-logs.php:321 ../inc/class-admin.php:201 ../inc/class-admin.
219
+ #: php:201 ../inc/class-adminbar.php:102 ../inc/class-page-settings.php:120
220
+ msgid "Logs"
221
+ msgstr ""
222
+
223
+ #: ../inc/class-page-logs.php:384
224
+ #, php-format
225
+ msgid "%s Logs"
226
+ msgstr ""
227
+
228
+ #: ../inc/class-page-logs.php:415
229
+ msgid "Logfile not found!"
230
+ msgstr ""
231
+
232
+ #: ../inc/class-destination-msazure.php:25
233
+ msgid "MS Azure access keys"
234
+ msgstr ""
235
+
236
+ #: ../inc/class-destination-msazure.php:29
237
+ msgid "Account name"
238
+ msgstr ""
239
+
240
+ #: ../inc/class-destination-msazure.php:36
241
+ msgid "Access key"
242
+ msgstr ""
243
+
244
+ #: ../inc/class-destination-msazure.php:44
245
+ msgid "Blob container"
246
+ msgstr ""
247
+
248
+ #: ../inc/class-destination-msazure.php:48 ../inc/class-destination-rsc.php:77
249
+ msgid "Container selection"
250
+ msgstr ""
251
+
252
+ #: ../inc/class-destination-msazure.php:59 ../inc/class-destination-rsc.php:89
253
+ msgid "Create a new container"
254
+ msgstr ""
255
+
256
+ #: ../inc/class-destination-msazure.php:66 ../inc/class-destination-sugarsync.php:
257
+ #: 86 ../inc/class-destination-folder.php:29 ../inc/class-destination-dropbox.php:
258
+ #: 91 ../inc/class-destination-ftp.php:52 ../inc/class-destination-rsc.php:96 ..
259
+ #: /inc/pro/class-destination-gdrive.php:61
260
+ msgid "Backup settings"
261
+ msgstr ""
262
+
263
+ #: ../inc/class-destination-msazure.php:70
264
+ msgid "Folder in container"
265
+ msgstr ""
266
+
267
+ #: ../inc/class-destination-msazure.php:76 ../inc/class-destination-s3-v1.php:155
268
+ #: ../inc/class-destination-s3.php:160 ../inc/class-destination-rsc.php:106 ..
269
+ #: /inc/pro/class-destination-glacier.php:94
270
+ msgid "File deletion"
271
+ msgstr ""
272
+
273
+ #: ../inc/class-destination-msazure.php:81 ../inc/class-destination-s3-v1.php:160
274
+ #: ../inc/class-destination-sugarsync.php:101 ../inc/class-destination-folder.php:
275
+ #: 44 ../inc/class-destination-ftp.php:67 ../inc/class-destination-s3.php:165 ..
276
+ #: /inc/class-destination-rsc.php:111 ../inc/pro/class-destination-msazure.php:35
277
+ #: ../inc/pro/class-destination-s3-v1.php:60 ../inc/pro/class-destination-folder.
278
+ #: php:24 ../inc/pro/class-destination-dropbox.php:42 ../inc/pro/class-
279
+ #: destination-s3.php:62 ../inc/pro/class-destination-rsc.php:55 ../inc/pro/class-
280
+ #: destination-gdrive.php:76 ../inc/pro/class-destination-gdrive.php:285 ..
281
+ #: /inc/pro/class-destination-glacier.php:96 ../inc/pro/class-destination-glacier.
282
+ #: php:180
283
+ msgid "Oldest files will be deleted first. 0 = no deletion"
284
+ msgstr ""
285
+
286
+ #: ../inc/class-destination-msazure.php:82 ../inc/class-destination-s3-v1.php:161
287
+ #: ../inc/class-destination-sugarsync.php:102 ../inc/class-destination-folder.php:
288
+ #: 45 ../inc/class-destination-dropbox.php:108 ../inc/class-destination-s3.php:
289
+ #: 166 ../inc/class-destination-rsc.php:112 ../inc/pro/class-destination-msazure.
290
+ #: php:36 ../inc/pro/class-destination-s3-v1.php:61 ../inc/pro/class-destination-
291
+ #: folder.php:25 ../inc/pro/class-destination-dropbox.php:43 ../inc/pro/class-
292
+ #: destination-s3.php:63 ../inc/pro/class-destination-rsc.php:56 ../inc/pro/class-
293
+ #: destination-gdrive.php:77 ../inc/pro/class-destination-gdrive.php:286
294
+ msgid "Number of files to keep in folder."
295
+ msgstr ""
296
+
297
+ #: ../inc/class-destination-msazure.php:86 ../inc/class-destination-s3-v1.php:165
298
+ #: ../inc/class-destination-sugarsync.php:106 ../inc/class-destination-folder.php:
299
+ #: 49 ../inc/class-destination-dropbox.php:112 ../inc/class-destination-ftp.php:
300
+ #: 72 ../inc/class-destination-s3.php:170 ../inc/class-destination-rsc.php:116 ..
301
+ #: /inc/pro/class-destination-msazure.php:41 ../inc/pro/class-destination-s3-v1.
302
+ #: php:66 ../inc/pro/class-destination-sugarsync.php:68 ../inc/pro/class-
303
+ #: destination-folder.php:30 ../inc/pro/class-destination-dropbox.php:45 ..
304
+ #: /inc/pro/class-destination-ftp.php:46 ../inc/pro/class-destination-s3.php:68 ..
305
+ #: /inc/pro/class-destination-rsc.php:61 ../inc/pro/class-destination-gdrive.php:
306
+ #: 81 ../inc/pro/class-destination-gdrive.php:288
307
+ msgid "Do not delete files while syncing to destination!"
308
+ msgstr ""
309
+
310
+ #: ../inc/class-destination-msazure.php:124 ../inc/pro/class-destination-msazure.
311
+ #: php:81
312
+ #, php-format
313
+ msgid "MS Azure container \"%s\" created."
314
+ msgstr ""
315
+
316
+ #: ../inc/class-destination-msazure.php:127 ../inc/pro/class-destination-msazure.
317
+ #: php:84
318
+ #, php-format
319
+ msgid "MS Azure container create: %s"
320
+ msgstr ""
321
+
322
+ #: ../inc/class-destination-msazure.php:203
323
+ #, php-format
324
+ msgid "%d. Try sending backup to a Microsoft Azure (Blob)&#160;&hellip;"
325
+ msgstr ""
326
+
327
+ #: ../inc/class-destination-msazure.php:225 ../inc/pro/class-destination-msazure.
328
+ #: php:126
329
+ #, php-format
330
+ msgid "MS Azure container \"%s\" does not exist!"
331
+ msgstr ""
332
+
333
+ #: ../inc/class-destination-msazure.php:229 ../inc/pro/class-destination-msazure.
334
+ #: php:130
335
+ #, php-format
336
+ msgid "Connected to MS Azure container \"%s\"."
337
+ msgstr ""
338
+
339
+ #: ../inc/class-destination-msazure.php:232
340
+ msgid "Starting upload to MS Azure&#160;&hellip;"
341
+ msgstr ""
342
+
343
+ #: ../inc/class-destination-msazure.php:259 ../inc/class-destination-ftp.php:344 .
344
+ #: ./inc/class-destination-s3.php:413 ../inc/class-destination-s3.php:505 ..
345
+ #: /inc/class-destination-rsc.php:282 ../inc/pro/class-destination-rsc.php:215 ..
346
+ #: /inc/pro/class-destination-rsc.php:248 ../inc/pro/class-destination-gdrive.php:
347
+ #: 602 ../inc/pro/class-destination-glacier.php:387
348
+ msgid "Can not open source file for transfer."
349
+ msgstr ""
350
+
351
+ #: ../inc/class-destination-msazure.php:272 ../inc/class-destination-sugarsync.
352
+ #: php:257 ../inc/class-destination-dropbox.php:269 ../inc/pro/class-destination-
353
+ #: gdrive.php:611
354
+ #, php-format
355
+ msgid "Backup transferred to %s"
356
+ msgstr ""
357
+
358
+ #: ../inc/class-destination-msazure.php:277 ../inc/class-destination-msazure.php:
359
+ #: 333 ../inc/pro/class-destination-msazure.php:215
360
+ #, php-format
361
+ msgid "Microsoft Azure API: %s"
362
+ msgstr ""
363
+
364
+ #: ../inc/class-destination-msazure.php:326
365
+ #, php-format
366
+ msgid "One file deleted on Microsoft Azure container."
367
+ msgid_plural "%d files deleted on Microsoft Azure container."
368
+ msgstr[0] ""
369
+ msgstr[1] ""
370
+
371
+ #: ../inc/class-destination-msazure.php:419
372
+ msgid "Missing account name!"
373
+ msgstr ""
374
+
375
+ #: ../inc/class-destination-msazure.php:421 ../inc/class-destination-s3-v1.php:
376
+ #: 576 ../inc/class-destination-s3.php:682 ../inc/pro/class-destination-glacier.
377
+ #: php:536
378
+ msgid "Missing access key!"
379
+ msgstr ""
380
+
381
+ #: ../inc/class-destination-msazure.php:425
382
+ msgid "No container found!"
383
+ msgstr ""
384
+
385
+ #: ../inc/class-jobtype-dbdump.php:13
386
+ msgid "DB Backup"
387
+ msgstr ""
388
+
389
+ #: ../inc/class-jobtype-dbdump.php:14
390
+ msgid "Database backup"
391
+ msgstr ""
392
+
393
+ #: ../inc/class-jobtype-dbdump.php:15
394
+ msgid "Creates an .sql database backup file"
395
+ msgstr ""
396
+
397
+ #: ../inc/class-jobtype-dbdump.php:61 ../inc/pro/class-jobtype-dbdump.php:84 ..
398
+ #: /inc/pro/class-jobtype-dbdump.php:105
399
+ msgid "Settings for database backup"
400
+ msgstr ""
401
+
402
+ #: ../inc/class-jobtype-dbdump.php:65 ../inc/pro/class-jobtype-dbdump.php:151
403
+ msgid "Tables to backup"
404
+ msgstr ""
405
+
406
+ #: ../inc/class-jobtype-dbdump.php:67 ../inc/pro/class-jobtype-dbdump.php:153
407
+ msgid "all"
408
+ msgstr ""
409
+
410
+ #: ../inc/class-jobtype-dbdump.php:68 ../inc/class-jobtype-dbdump.php:103 ..
411
+ #: /inc/class-page-backwpup.php:334 ../inc/class-page-backwpup.php:399 ..
412
+ #: /inc/class-destination-email.php:114 ../inc/class-page-settings.php:345 ..
413
+ #: /inc/class-jobtype-wpexp.php:73 ../inc/class-jobtype-wpplugin.php:57 ..
414
+ #: /inc/pro/class-jobtype-dbdump.php:154 ../inc/pro/class-jobtype-dbdump.php:198
415
+ msgid "none"
416
+ msgstr ""
417
+
418
+ #: ../inc/class-jobtype-dbdump.php:91 ../inc/pro/class-jobtype-dbdump.php:186
419
+ msgid "Backup file name"
420
+ msgstr ""
421
+
422
+ #: ../inc/class-jobtype-dbdump.php:99 ../inc/pro/class-jobtype-dbdump.php:194
423
+ msgid "Backup file compression"
424
+ msgstr ""
425
+
426
+ #: ../inc/class-jobtype-dbdump.php:105 ../inc/class-jobtype-dbdump.php:107 ..
427
+ #: /inc/class-jobtype-wpexp.php:75 ../inc/class-jobtype-wpexp.php:77 ../inc/class-
428
+ #: jobtype-wpplugin.php:59 ../inc/class-jobtype-wpplugin.php:61 ../inc/pro/class-
429
+ #: jobtype-dbdump.php:200 ../inc/pro/class-jobtype-dbdump.php:202
430
+ msgid "GZip"
431
+ msgstr ""
432
+
433
+ #: ../inc/class-jobtype-dbdump.php:155 ../inc/pro/class-jobtype-dbdump.php:456
434
+ #, php-format
435
+ msgid "%d. Try to backup database&#160;&hellip;"
436
+ msgstr ""
437
+
438
+ #: ../inc/class-jobtype-dbdump.php:169 ../inc/pro/class-jobtype-dbdump.php:476
439
+ #, php-format
440
+ msgid "Connected to database %1$s on %2$s"
441
+ msgstr ""
442
+
443
+ #: ../inc/class-jobtype-dbdump.php:183 ../inc/pro/class-jobtype-dbdump.php:490
444
+ msgid "No tables to backup."
445
+ msgstr ""
446
+
447
+ #: ../inc/class-jobtype-dbdump.php:206 ../inc/pro/class-jobtype-dbdump.php:516
448
+ #, php-format
449
+ msgid "Backup database table \"%s\" with \"%s\" records"
450
+ msgstr ""
451
+
452
+ #: ../inc/class-jobtype-dbdump.php:246 ../inc/pro/class-jobtype-dbdump.php:556
453
+ msgid "MySQL backup file not created"
454
+ msgstr ""
455
+
456
+ #: ../inc/class-jobtype-dbdump.php:250 ../inc/pro/class-jobtype-dbdump.php:740
457
+ #, php-format
458
+ msgid "Added database dump \"%1$s\" with %2$s to backup file list"
459
+ msgstr ""
460
+
461
+ #: ../inc/class-jobtype-dbdump.php:256 ../inc/pro/class-jobtype-dbdump.php:566 ..
462
+ #: /inc/pro/class-jobtype-dbdump.php:743
463
+ msgid "Database backup done!"
464
+ msgstr ""
465
+
466
+ #: ../inc/class-page-about.php:394
467
+ #, php-format
468
+ msgid "%s Welcome"
469
+ msgstr ""
470
+
471
+ #: ../inc/class-page-about.php:401
472
+ msgid "Heads up! You have updated from version 2.x"
473
+ msgstr ""
474
+
475
+ #: ../inc/class-page-about.php:402
476
+ #, php-format
477
+ msgid "Please <a href=\"%s\">check your settings</a> after updating from version 2.x:"
478
+ msgstr ""
479
+
480
+ #: ../inc/class-page-about.php:403
481
+ msgid "Dropbox authentication must be re-entered"
482
+ msgstr ""
483
+
484
+ #: ../inc/class-page-about.php:404
485
+ msgid "SugarSync authentication must be re-entered"
486
+ msgstr ""
487
+
488
+ #: ../inc/class-page-about.php:405
489
+ msgid "S3 Settings"
490
+ msgstr ""
491
+
492
+ #: ../inc/class-page-about.php:406
493
+ msgid "Google Storage is now a part of S3 service settings"
494
+ msgstr ""
495
+
496
+ #: ../inc/class-page-about.php:407
497
+ msgid "All your passwords"
498
+ msgstr ""
499
+
500
+ #: ../inc/class-page-about.php:416
501
+ msgid "Welcome to BackWPup Pro"
502
+ msgstr ""
503
+
504
+ #: ../inc/class-page-about.php:417 ../inc/class-page-backwpup.php:75
505
+ msgid ""
506
+ "BackWPup’s job wizards make planning and scheduling your backup jobs a "
507
+ "breeze."
508
+ msgstr ""
509
+
510
+ #: ../inc/class-page-about.php:418 ../inc/class-page-about.php:428
511
+ msgid ""
512
+ "Use your backup archives to save your entire WordPress installation "
513
+ "including <code>/wp-content/</code>. Push them to an external storage "
514
+ "service if you don’t want to save the backups on the same server. With a "
515
+ "single backup archive you are able to restore an installation. Use a tool "
516
+ "like phpMyAdmin or a plugin like <a href=\"http://wordpress."
517
+ "org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
518
+ "backup files."
519
+ msgstr ""
520
+
521
+ #: ../inc/class-page-about.php:419
522
+ #, php-format
523
+ msgid ""
524
+ "Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use "
525
+ "the wizards</a> or plan your backup in expert mode."
526
+ msgstr ""
527
+
528
+ #: ../inc/class-page-about.php:426
529
+ msgid "Welcome to BackWPup"
530
+ msgstr ""
531
+
532
+ #: ../inc/class-page-about.php:429
533
+ msgid ""
534
+ "Ready to set up a backup job? Use one of the wizards to plan what you want "
535
+ "to save."
536
+ msgstr ""
537
+
538
+ #: ../inc/class-page-about.php:446
539
+ msgid "Please activate your license"
540
+ msgstr ""
541
+
542
+ #: ../inc/class-page-about.php:447
543
+ msgid ""
544
+ "Please go to your plugin page and active the license to have the autoupdates "
545
+ "enabled."
546
+ msgstr ""
547
+
548
+ #: ../inc/class-page-about.php:456
549
+ msgid "Save your database"
550
+ msgstr ""
551
+
552
+ #: ../inc/class-page-about.php:459
553
+ msgid "Save your database regularly"
554
+ msgstr ""
555
+
556
+ #: ../inc/class-page-about.php:460
557
+ #, php-format
558
+ msgid ""
559
+ "With BackWPup you can schedule the database backup to run automatically. "
560
+ "With a single backup file you can restore your database. You should <a "
561
+ "href=\"%s\">set up a backup job</a>, so you will never forget it. There is "
562
+ "also an option to repair and optimize the database after each backup."
563
+ msgstr ""
564
+
565
+ #: ../inc/class-page-about.php:465 ../inc/class-page-about.php:469
566
+ msgid "WordPress XML Export"
567
+ msgstr ""
568
+
569
+ #: ../inc/class-page-about.php:466
570
+ msgid ""
571
+ "You can choose the built-in WordPress export format in addition or exclusive "
572
+ "to save your data. This works in automated backups too of course. The "
573
+ "advantage is: you can import these files into a blog with the regular "
574
+ "WordPress importer."
575
+ msgstr ""
576
+
577
+ #: ../inc/class-page-about.php:474
578
+ msgid "Save all data from the webserver"
579
+ msgstr ""
580
+
581
+ #: ../inc/class-page-about.php:477
582
+ msgid "Save all files"
583
+ msgstr ""
584
+
585
+ #: ../inc/class-page-about.php:478
586
+ #, php-format
587
+ msgid ""
588
+ "You can backup all your attachments, also all system files, plugins and "
589
+ "themes in a single file. You can <a href=\"%s\">create a job</a> to update a "
590
+ "backup copy of your file system only when files are changed."
591
+ msgstr ""
592
+
593
+ #: ../inc/class-page-about.php:483 ../inc/class-page-about.php:487
594
+ msgid "Security!"
595
+ msgstr ""
596
+
597
+ #: ../inc/class-page-about.php:484
598
+ msgid ""
599
+ "By default everything is encrypted: connections to external services, local "
600
+ "files and access to directories."
601
+ msgstr ""
602
+
603
+ #: ../inc/class-page-about.php:492 ../inc/class-page-about.php:495
604
+ msgid "Cloud Support"
605
+ msgstr ""
606
+
607
+ #: ../inc/class-page-about.php:496
608
+ msgid ""
609
+ "BackWPup supports multiple cloud services in parallel. This ensures backups "
610
+ "are redundant."
611
+ msgstr ""
612
+
613
+ #: ../inc/class-page-about.php:504
614
+ msgid "Features / differences between Free and Pro"
615
+ msgstr ""
616
+
617
+ #: ../inc/class-page-about.php:507
618
+ msgid "Features"
619
+ msgstr ""
620
+
621
+ #: ../inc/class-page-about.php:508
622
+ msgid "FREE"
623
+ msgstr ""
624
+
625
+ #: ../inc/class-page-about.php:509
626
+ msgid "PRO"
627
+ msgstr ""
628
+
629
+ #: ../inc/class-page-about.php:512
630
+ msgid "Complete database backup"
631
+ msgstr ""
632
+
633
+ #: ../inc/class-page-about.php:517
634
+ msgid "Complete file backup"
635
+ msgstr ""
636
+
637
+ #: ../inc/class-page-about.php:522
638
+ msgid "Database check"
639
+ msgstr ""
640
+
641
+ #: ../inc/class-page-about.php:527
642
+ msgid "Data compression"
643
+ msgstr ""
644
+
645
+ #: ../inc/class-page-about.php:532 ../inc/class-jobtype-wpexp.php:14
646
+ msgid "WordPress XML export"
647
+ msgstr ""
648
+
649
+ #: ../inc/class-page-about.php:537
650
+ msgid "List of installed plugins"
651
+ msgstr ""
652
+
653
+ #: ../inc/class-page-about.php:542
654
+ msgid "Backup archives management"
655
+ msgstr ""
656
+
657
+ #: ../inc/class-page-about.php:547
658
+ msgid "Log file management"
659
+ msgstr ""
660
+
661
+ #: ../inc/class-page-about.php:552
662
+ msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
663
+ msgstr ""
664
+
665
+ #: ../inc/class-page-about.php:557
666
+ msgid "Log report via email"
667
+ msgstr ""
668
+
669
+ #: ../inc/class-page-about.php:562
670
+ msgid "Backup to Microsoft Azure"
671
+ msgstr ""
672
+
673
+ #: ../inc/class-page-about.php:567
674
+ msgid "Backup as email"
675
+ msgstr ""
676
+
677
+ #: ../inc/class-page-about.php:572
678
+ msgid ""
679
+ "Backup to S3 services <small>(Amazon, Google Storage, Hosteurope and "
680
+ "more)</small>"
681
+ msgstr ""
682
+
683
+ #: ../inc/class-page-about.php:587
684
+ msgid "Backup to FTP server"
685
+ msgstr ""
686
+
687
+ #: ../inc/class-page-about.php:592
688
+ msgid "Backup to your web space"
689
+ msgstr ""
690
+
691
+ #: ../inc/class-page-about.php:602 ../inc/pro/class-pro.php:131
692
+ msgid "Backup to Google Drive"
693
+ msgstr ""
694
+
695
+ #: ../inc/class-page-about.php:607 ../inc/pro/class-pro.php:112
696
+ msgid "Backup to Amazon Glacier"
697
+ msgstr ""
698
+
699
+ #: ../inc/class-page-about.php:612
700
+ msgid "Custom API keys for DropBox and SugarSync"
701
+ msgstr ""
702
+
703
+ #: ../inc/class-page-about.php:617
704
+ msgid "XML database backup as PHPMyAdmin schema"
705
+ msgstr ""
706
+
707
+ #: ../inc/class-page-about.php:622
708
+ msgid "Database backup as mysqldump per command line"
709
+ msgstr ""
710
+
711
+ #: ../inc/class-page-about.php:627
712
+ msgid "Database backup for additional MySQL databases"
713
+ msgstr ""
714
+
715
+ #: ../inc/class-page-about.php:632
716
+ msgid "Import and export job settings as XML"
717
+ msgstr ""
718
+
719
+ #: ../inc/class-page-about.php:637
720
+ msgid "Wizard for system tests"
721
+ msgstr ""
722
+
723
+ #: ../inc/class-page-about.php:642
724
+ msgid "Wizard for scheduled backup jobs"
725
+ msgstr ""
726
+
727
+ #: ../inc/class-page-about.php:647
728
+ msgid "Wizard to import settings and backup jobs"
729
+ msgstr ""
730
+
731
+ #: ../inc/class-page-about.php:652
732
+ msgid "Differential backup of changed directories to Dropbox"
733
+ msgstr ""
734
+
735
+ #: ../inc/class-page-about.php:657
736
+ msgid "Differential backup of changed directories to Rackspace Cloud Files"
737
+ msgstr ""
738
+
739
+ #: ../inc/class-page-about.php:662
740
+ msgid "Differential backup of changed directories to S3"
741
+ msgstr ""
742
+
743
+ #: ../inc/class-page-about.php:667
744
+ msgid "Differential backup of changed directories to MS Azure"
745
+ msgstr ""
746
+
747
+ #: ../inc/class-page-about.php:672
748
+ msgid "<strong>Premium support</strong>"
749
+ msgstr ""
750
+
751
+ #: ../inc/class-page-about.php:677
752
+ msgid "<strong>Dynamically loaded documentation</strong>"
753
+ msgstr ""
754
+
755
+ #: ../inc/class-page-about.php:682
756
+ msgid "<strong>Automatic update from MarketPress</strong>"
757
+ msgstr ""
758
+
759
+ #: ../inc/class-page-about.php:689 ../inc/class-admin.php:404
760
+ msgid "http://marketpress.com/product/backwpup-pro/"
761
+ msgstr ""
762
+
763
+ #: ../inc/class-page-about.php:689
764
+ msgid "GET PRO"
765
+ msgstr ""
766
+
767
+ #: ../inc/class-cron.php:64
768
+ msgid "Aborted, because no progress for one hour!"
769
+ msgstr ""
770
+
771
+ #: ../inc/class-page-backwpup.php:67
772
+ #, php-format
773
+ msgid "%s Dashboard"
774
+ msgstr ""
775
+
776
+ #: ../inc/class-page-backwpup.php:74 ../inc/class-page-backwpup.php:83
777
+ msgctxt "Dashboard heading"
778
+ msgid "Planning backups"
779
+ msgstr ""
780
+
781
+ #: ../inc/class-page-backwpup.php:75 ../inc/class-page-backwpup.php:84
782
+ msgid ""
783
+ "Use your backup archives to save your entire WordPress installation "
784
+ "including <code>/wp-content/</code>. Push them to an external storage "
785
+ "service if you don’t want to save the backups on the same server."
786
+ msgstr ""
787
+
788
+ #: ../inc/class-page-backwpup.php:76 ../inc/class-page-backwpup.php:85
789
+ msgctxt "Dashboard heading"
790
+ msgid "Restoring backups"
791
+ msgstr ""
792
+
793
+ #: ../inc/class-page-backwpup.php:77 ../inc/class-page-backwpup.php:86
794
+ msgid ""
795
+ "With a single backup archive you are able to restore an installation. Use a "
796
+ "tool like phpMyAdmin or a plugin like <a href=\"http://wordpress."
797
+ "org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
798
+ "backup files."
799
+ msgstr ""
800
+
801
+ #: ../inc/class-page-backwpup.php:78 ../inc/class-page-backwpup.php:87
802
+ msgctxt "Dashboard heading"
803
+ msgid "Ready to set up a backup job?"
804
+ msgstr ""
805
+
806
+ #: ../inc/class-page-backwpup.php:79
807
+ #, php-format
808
+ msgid ""
809
+ "Use one of the wizards to plan a backup, or use <a href=\"%s\">expert mode</a> "
810
+ "for full control over all options."
811
+ msgstr ""
812
+
813
+ #: ../inc/class-page-backwpup.php:79 ../inc/class-page-backwpup.php:89
814
+ msgid ""
815
+ "<strong>Please note: You are solely responsible for the security of your "
816
+ "data; the authors of this plugin are not.</strong>"
817
+ msgstr ""
818
+
819
+ #: ../inc/class-page-backwpup.php:84
820
+ msgid ""
821
+ "Use the short links in the <strong>First steps</strong> box to plan and "
822
+ "schedule backup jobs."
823
+ msgstr ""
824
+
825
+ #: ../inc/class-page-backwpup.php:88
826
+ #, php-format
827
+ msgid "<a href=\"%s\">Add a new backup job</a> and plan what you want to save."
828
+ msgstr ""
829
+
830
+ #: ../inc/class-page-backwpup.php:96
831
+ msgid "First Steps"
832
+ msgstr ""
833
+
834
+ #: ../inc/class-page-backwpup.php:100
835
+ msgid "Test the installation"
836
+ msgstr ""
837
+
838
+ #: ../inc/class-page-backwpup.php:101 ../inc/class-page-backwpup.php:104
839
+ msgid "Create a Job"
840
+ msgstr ""
841
+
842
+ #: ../inc/class-page-backwpup.php:103
843
+ msgid "Check the installation"
844
+ msgstr ""
845
+
846
+ #: ../inc/class-page-backwpup.php:106
847
+ msgid "Run the created job"
848
+ msgstr ""
849
+
850
+ #: ../inc/class-page-backwpup.php:107
851
+ msgid "Check the job log"
852
+ msgstr ""
853
+
854
+ #: ../inc/class-page-backwpup.php:115
855
+ msgid "One click backup"
856
+ msgstr ""
857
+
858
+ #: ../inc/class-page-backwpup.php:117
859
+ msgid "Generate a database backup of WordPress tables and download it right away!"
860
+ msgstr ""
861
+
862
+ #: ../inc/class-page-backwpup.php:117
863
+ msgid "Download database backup"
864
+ msgstr ""
865
+
866
+ #: ../inc/class-page-backwpup.php:123
867
+ msgid "BackWPup News"
868
+ msgstr ""
869
+
870
+ #: ../inc/class-page-backwpup.php:128
871
+ msgctxt "BackWPup News RSS Feed URL"
872
+ msgid "https://marketpress.com/tag/backwpup/feed/"
873
+ msgstr ""
874
+
875
+ #: ../inc/class-page-backwpup.php:133
876
+ #, php-format
877
+ msgid "<strong>RSS Error</strong>: %s"
878
+ msgstr ""
879
+
880
+ #: ../inc/class-page-backwpup.php:137
881
+ msgid ""
882
+ "An error has occurred, which probably means the feed is down. Try again "
883
+ "later."
884
+ msgstr ""
885
+
886
+ #: ../inc/class-page-backwpup.php:152
887
+ msgid "Untitled"
888
+ msgstr ""
889
+
890
+ #: ../inc/class-page-backwpup.php:216 ../inc/pro/class-page-wizard.php:358
891
+ msgid "Start wizard"
892
+ msgstr ""
893
+
894
+ #: ../inc/class-page-backwpup.php:223
895
+ msgid "Video: Introduction"
896
+ msgstr ""
897
+
898
+ #: ../inc/class-page-backwpup.php:228
899
+ msgid "Video: Settings"
900
+ msgstr ""
901
+
902
+ #: ../inc/class-page-backwpup.php:233
903
+ msgid "Video: Daily Backups"
904
+ msgstr ""
905
+
906
+ #: ../inc/class-page-backwpup.php:238
907
+ msgid "Video: Creating Full Backups"
908
+ msgstr ""
909
+
910
+ #: ../inc/class-page-backwpup.php:243
911
+ msgid "Video: Restoring Backups"
912
+ msgstr ""
913
+
914
+ #: ../inc/class-page-backwpup.php:258
915
+ msgctxt "Pro teaser box"
916
+ msgid "Thank you for using BackWPup!"
917
+ msgstr ""
918
+
919
+ #: ../inc/class-page-backwpup.php:261
920
+ msgctxt "Pro teaser box"
921
+ msgid "Get access to:"
922
+ msgstr ""
923
+
924
+ #: ../inc/class-page-backwpup.php:263
925
+ msgctxt "Pro teaser box"
926
+ msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
927
+ msgstr ""
928
+
929
+ #: ../inc/class-page-backwpup.php:264
930
+ msgctxt "Pro teaser box"
931
+ msgid "Differential backups to Google Drive and other cloud storage service."
932
+ msgstr ""
933
+
934
+ #: ../inc/class-page-backwpup.php:265
935
+ msgctxt "Pro teaser box"
936
+ msgid "Easy-peasy wizards to create and schedule backup jobs."
937
+ msgstr ""
938
+
939
+ #: ../inc/class-page-backwpup.php:266
940
+ msgctxt "Pro teaser box, link text"
941
+ msgid "And more…"
942
+ msgstr ""
943
+
944
+ #: ../inc/class-page-backwpup.php:268
945
+ msgctxt "Pro teaser box, link title"
946
+ msgid "Get BackWPup Pro now"
947
+ msgstr ""
948
+
949
+ #: ../inc/class-page-backwpup.php:268
950
+ msgctxt "Pro teaser box, link text"
951
+ msgid "Get BackWPup Pro now"
952
+ msgstr ""
953
+
954
+ #: ../inc/class-page-backwpup.php:286
955
+ msgid "Last logs"
956
+ msgstr ""
957
+
958
+ #: ../inc/class-page-backwpup.php:288
959
+ msgid "Result"
960
+ msgstr ""
961
+
962
+ #: ../inc/class-page-backwpup.php:322
963
+ #, php-format
964
+ msgid "%d ERROR"
965
+ msgstr ""
966
+
967
+ #: ../inc/class-page-backwpup.php:324
968
+ #, php-format
969
+ msgid "%d WARNING"
970
+ msgstr ""
971
+
972
+ #: ../inc/class-page-backwpup.php:326
973
+ msgid "OK"
974
+ msgstr ""
975
+
976
+ #: ../inc/class-page-backwpup.php:350
977
+ msgid "Next scheduled jobs"
978
+ msgstr ""
979
+
980
+ #: ../inc/class-page-backwpup.php:377
981
+ #, php-format
982
+ msgid "working since %d seconds"
983
+ msgstr ""
984
+
985
+ #: ../inc/class-page-backwpup.php:379 ../inc/class-page-jobs.php:622
986
+ msgid "Abort"
987
+ msgstr ""
988
+
989
+ #: ../inc/class-page-backwpup.php:393 ../inc/class-page-jobs.php:282 ../inc/class-
990
+ #: page-jobs.php:291 ../inc/class-job.php:335
991
+ msgid "Not scheduled!"
992
+ msgstr ""
993
+
994
+ #: ../inc/class-page-backwpup.php:395
995
+ msgid "Edit Job"
996
+ msgstr ""
997
+
998
+ #: ../inc/class-jobtype-file.php:15
999
+ msgid "Files"
1000
+ msgstr ""
1001
+
1002
+ #: ../inc/class-jobtype-file.php:16
1003
+ msgid "File backup"
1004
+ msgstr ""
1005
+
1006
+ #: ../inc/class-jobtype-file.php:73
1007
+ msgid "Folders to backup"
1008
+ msgstr ""
1009
+
1010
+ #: ../inc/class-jobtype-file.php:77
1011
+ msgid "Backup WordPress install folder"
1012
+ msgstr ""
1013
+
1014
+ #: ../inc/class-jobtype-file.php:88 ../inc/class-jobtype-file.php:125 ..
1015
+ #: /inc/class-jobtype-file.php:162 ../inc/class-jobtype-file.php:199 ../inc/class-
1016
+ #: jobtype-file.php:236
1017
+ #, php-format
1018
+ msgid "Path as set by user (symlink?): %s"
1019
+ msgstr ""
1020
+
1021
+ #: ../inc/class-jobtype-file.php:91 ../inc/class-jobtype-file.php:128 ..
1022
+ #: /inc/class-jobtype-file.php:165 ../inc/class-jobtype-file.php:202 ../inc/class-
1023
+ #: jobtype-file.php:239
1024
+ msgid "Exclude:"
1025
+ msgstr ""
1026
+
1027
+ #: ../inc/class-jobtype-file.php:102 ../inc/class-jobtype-file.php:139 ..
1028
+ #: /inc/class-jobtype-file.php:176 ../inc/class-jobtype-file.php:213 ../inc/class-
1029
+ #: jobtype-file.php:250
1030
+ msgid "Excluded by .donotbackup file!"
1031
+ msgstr ""
1032
+
1033
+ #: ../inc/class-jobtype-file.php:114
1034
+ msgid "Backup content folder"
1035
+ msgstr ""
1036
+
1037
+ #: ../inc/class-jobtype-file.php:151
1038
+ msgid "Backup plugins"
1039
+ msgstr ""
1040
+
1041
+ #: ../inc/class-jobtype-file.php:188
1042
+ msgid "Backup themes"
1043
+ msgstr ""
1044
+
1045
+ #: ../inc/class-jobtype-file.php:225 ../inc/pro/class-wizard-job.php:703 ..
1046
+ #: /inc/pro/class-wizard-job.php:704
1047
+ msgid "Backup uploads folder"
1048
+ msgstr ""
1049
+
1050
+ #: ../inc/class-jobtype-file.php:262
1051
+ msgid "Extra folders to backup"
1052
+ msgstr ""
1053
+
1054
+ #: ../inc/class-jobtype-file.php:264
1055
+ msgid ""
1056
+ "Separate folder names with a line-break or a comma. Folders must be set with "
1057
+ "their absolute path!"
1058
+ msgstr ""
1059
+
1060
+ #: ../inc/class-jobtype-file.php:269
1061
+ msgid "Exclude from backup"
1062
+ msgstr ""
1063
+
1064
+ #: ../inc/class-jobtype-file.php:273
1065
+ msgid "Thumbnails in uploads"
1066
+ msgstr ""
1067
+
1068
+ #: ../inc/class-jobtype-file.php:275
1069
+ msgid ""
1070
+ "All images with -???x???. will be excluded. Use a plugin like Regenerate "
1071
+ "Thumbnails to rebuild them after a restore."
1072
+ msgstr ""
1073
+
1074
+ #: ../inc/class-jobtype-file.php:277
1075
+ msgid "Don't backup thumbnails from the site's uploads folder."
1076
+ msgstr ""
1077
+
1078
+ #: ../inc/class-jobtype-file.php:281
1079
+ msgid "Exclude files/folders from backup"
1080
+ msgstr ""
1081
+
1082
+ #: ../inc/class-jobtype-file.php:283
1083
+ msgid ""
1084
+ "Separate file / folder name parts with a line-break or a comma. For example "
1085
+ "/logs/,.log,.tmp"
1086
+ msgstr ""
1087
+
1088
+ #: ../inc/class-jobtype-file.php:288
1089
+ msgid "Special options"
1090
+ msgstr ""
1091
+
1092
+ #: ../inc/class-jobtype-file.php:292
1093
+ msgid "Include special files"
1094
+ msgstr ""
1095
+
1096
+ #: ../inc/class-jobtype-file.php:294
1097
+ msgid ""
1098
+ "If the WordPress root folder is not included in this backup job, check this "
1099
+ "option to additionally include wp-config.php, robots.txt, .htaccess, ."
1100
+ "htpasswd and favicon.ico into the backup. Your wp-config.php will be "
1101
+ "included even if you placed it in the parent directory of your root folder."
1102
+ msgstr ""
1103
+
1104
+ #: ../inc/class-jobtype-file.php:296
1105
+ msgid ""
1106
+ "Backup wp-config.php, robots.txt, .htaccess, .htpasswd and favicon.ico from "
1107
+ "root."
1108
+ msgstr ""
1109
+
1110
+ #: ../inc/class-jobtype-file.php:300
1111
+ msgid "Use one folder above as WP install folder"
1112
+ msgstr ""
1113
+
1114
+ #: ../inc/class-jobtype-file.php:304
1115
+ msgid ""
1116
+ "Use one folder above as WordPress install folder! That can be helpful, if "
1117
+ "you would backup files and folder that are not in the WordPress installation "
1118
+ "folder. Or if you made a \"<a href=\"https://codex.wordpress."
1119
+ "org/Giving_WordPress_Its_Own_Directory\">Giving WordPress Its Own "
1120
+ "Directory</a>\" installation. Excludes must be configured again."
1121
+ msgstr ""
1122
+
1123
+ #: ../inc/class-jobtype-file.php:387
1124
+ #, php-format
1125
+ msgid "%d. Trying to make a list of folders to back up&#160;&hellip;"
1126
+ msgstr ""
1127
+
1128
+ #: ../inc/class-jobtype-file.php:503 ../inc/class-jobtype-file.php:508 ..
1129
+ #: /inc/class-jobtype-file.php:513 ../inc/class-jobtype-file.php:517 ../inc/class-
1130
+ #: jobtype-file.php:521 ../inc/class-jobtype-file.php:525
1131
+ #, php-format
1132
+ msgid "Added \"%s\" to backup file list"
1133
+ msgstr ""
1134
+
1135
+ #: ../inc/class-jobtype-file.php:530
1136
+ msgid "No files/folder for the backup."
1137
+ msgstr ""
1138
+
1139
+ #: ../inc/class-jobtype-file.php:532
1140
+ #, php-format
1141
+ msgid "%1$d folders to backup."
1142
+ msgstr ""
1143
+
1144
+ #: ../inc/class-jobtype-file.php:571
1145
+ #, php-format
1146
+ msgid "Folder \"%s\" is not readable!"
1147
+ msgstr ""
1148
+
1149
+ #: ../inc/class-wp-cli.php:23
1150
+ msgid "A job is already running."
1151
+ msgstr ""
1152
+
1153
+ #: ../inc/class-wp-cli.php:35
1154
+ msgid "No job ID specified!"
1155
+ msgstr ""
1156
+
1157
+ #: ../inc/class-wp-cli.php:41
1158
+ msgid "Job ID does not exist!"
1159
+ msgstr ""
1160
+
1161
+ #: ../inc/class-wp-cli.php:54
1162
+ msgid "Nothing to abort!"
1163
+ msgstr ""
1164
+
1165
+ #: ../inc/class-wp-cli.php:59 ../inc/class-page-jobs.php:485
1166
+ msgid "Job will be terminated."
1167
+ msgstr ""
1168
+
1169
+ #: ../inc/class-wp-cli.php:105
1170
+ msgid "No job running"
1171
+ msgstr ""
1172
+
1173
+ #: ../inc/class-destination-s3-v1.php:75 ../inc/class-destination-s3.php:78
1174
+ msgid "Select a S3 service"
1175
+ msgstr ""
1176
+
1177
+ #: ../inc/class-destination-s3-v1.php:77 ../inc/class-destination-s3.php:80 ..
1178
+ #: /inc/pro/class-destination-s3-v1.php:18 ../inc/pro/class-destination-s3.php:18
1179
+ msgid "Amazon S3 Region"
1180
+ msgstr ""
1181
+
1182
+ #: ../inc/class-destination-s3-v1.php:78 ../inc/class-destination-s3.php:81 ..
1183
+ #: /inc/pro/class-destination-s3-v1.php:19 ../inc/pro/class-destination-s3.php:19
1184
+ msgid "Amazon S3: US Standard"
1185
+ msgstr ""
1186
+
1187
+ #: ../inc/class-destination-s3-v1.php:79 ../inc/class-destination-s3.php:82 ..
1188
+ #: /inc/pro/class-destination-s3-v1.php:20 ../inc/pro/class-destination-s3.php:20
1189
+ msgid "Amazon S3: US West (Northern California)"
1190
+ msgstr ""
1191
+
1192
+ #: ../inc/class-destination-s3-v1.php:80 ../inc/class-destination-s3.php:83 ..
1193
+ #: /inc/pro/class-destination-s3-v1.php:21 ../inc/pro/class-destination-s3.php:21
1194
+ msgid "Amazon S3: US West (Oregon)"
1195
+ msgstr ""
1196
+
1197
+ #: ../inc/class-destination-s3-v1.php:81 ../inc/class-destination-s3.php:84 ..
1198
+ #: /inc/pro/class-destination-s3-v1.php:22 ../inc/pro/class-destination-s3.php:22
1199
+ msgid "Amazon S3: EU (Ireland)"
1200
+ msgstr ""
1201
+
1202
+ #: ../inc/class-destination-s3-v1.php:82 ../inc/class-destination-s3.php:85 ..
1203
+ #: /inc/pro/class-destination-s3.php:23
1204
+ msgid "Amazon S3: EU (Germany)"
1205
+ msgstr ""
1206
+
1207
+ #: ../inc/class-destination-s3-v1.php:83 ../inc/class-destination-s3.php:86 ..
1208
+ #: /inc/pro/class-destination-s3-v1.php:23 ../inc/pro/class-destination-s3.php:24
1209
+ msgid "Amazon S3: Asia Pacific (Tokyo)"
1210
+ msgstr ""
1211
+
1212
+ #: ../inc/class-destination-s3-v1.php:84 ../inc/class-destination-s3.php:87 ..
1213
+ #: /inc/pro/class-destination-s3-v1.php:24 ../inc/pro/class-destination-s3.php:25
1214
+ msgid "Amazon S3: Asia Pacific (Singapore)"
1215
+ msgstr ""
1216
+
1217
+ #: ../inc/class-destination-s3-v1.php:85 ../inc/class-destination-s3.php:88 ..
1218
+ #: /inc/pro/class-destination-s3-v1.php:25 ../inc/pro/class-destination-s3.php:26
1219
+ msgid "Amazon S3: Asia Pacific (Sydney)"
1220
+ msgstr ""
1221
+
1222
+ #: ../inc/class-destination-s3-v1.php:86 ../inc/class-destination-s3.php:89 ..
1223
+ #: /inc/pro/class-destination-s3-v1.php:26 ../inc/pro/class-destination-s3.php:27
1224
+ msgid "Amazon S3: South America (Sao Paulo)"
1225
+ msgstr ""
1226
+
1227
+ #: ../inc/class-destination-s3-v1.php:87 ../inc/class-destination-s3.php:90 ..
1228
+ #: /inc/pro/class-destination-s3-v1.php:27 ../inc/pro/class-destination-s3.php:28
1229
+ msgid "Amazon S3: China (Beijing)"
1230
+ msgstr ""
1231
+
1232
+ #: ../inc/class-destination-s3-v1.php:88 ../inc/pro/class-destination-s3-v1.php:28
1233
+ msgid "Google Storage (Interoperable Access)"
1234
+ msgstr ""
1235
+
1236
+ #: ../inc/class-destination-s3-v1.php:89 ../inc/class-destination-s3.php:94 ..
1237
+ #: /inc/pro/class-destination-s3-v1.php:30 ../inc/pro/class-destination-s3.php:32
1238
+ msgid "Dream Host Cloud Storage"
1239
+ msgstr ""
1240
+
1241
+ #: ../inc/class-destination-s3-v1.php:90 ../inc/class-destination-s3.php:95 ..
1242
+ #: /inc/pro/class-destination-s3-v1.php:31 ../inc/pro/class-destination-s3.php:33
1243
+ msgid "GreenQloud Storage Qloud"
1244
+ msgstr ""
1245
+
1246
+ #: ../inc/class-destination-s3-v1.php:95 ../inc/class-destination-s3.php:100
1247
+ msgid "Or a S3 Server URL"
1248
+ msgstr ""
1249
+
1250
+ #: ../inc/class-destination-s3-v1.php:102 ../inc/class-destination-s3.php:107
1251
+ msgid "S3 Access Keys"
1252
+ msgstr ""
1253
+
1254
+ #: ../inc/class-destination-s3-v1.php:106 ../inc/class-destination-s3.php:111 ..
1255
+ #: /inc/pro/class-destination-glacier.php:52
1256
+ msgid "Access Key"
1257
+ msgstr ""
1258
+
1259
+ #: ../inc/class-destination-s3-v1.php:113 ../inc/class-destination-s3.php:118 ..
1260
+ #: /inc/pro/class-destination-glacier.php:59
1261
+ msgid "Secret Key"
1262
+ msgstr ""
1263
+
1264
+ #: ../inc/class-destination-s3-v1.php:121 ../inc/class-destination-s3.php:126
1265
+ msgid "S3 Bucket"
1266
+ msgstr ""
1267
+
1268
+ #: ../inc/class-destination-s3-v1.php:125 ../inc/class-destination-s3.php:130
1269
+ msgid "Bucket selection"
1270
+ msgstr ""
1271
+
1272
+ #: ../inc/class-destination-s3-v1.php:138 ../inc/class-destination-s3.php:143
1273
+ msgid "Create a new bucket"
1274
+ msgstr ""
1275
+
1276
+ #: ../inc/class-destination-s3-v1.php:145 ../inc/class-destination-s3.php:150
1277
+ msgid "S3 Backup settings"
1278
+ msgstr ""
1279
+
1280
+ #: ../inc/class-destination-s3-v1.php:149 ../inc/class-destination-s3.php:154 ..
1281
+ #: /inc/class-destination-rsc.php:100
1282
+ msgid "Folder in bucket"
1283
+ msgstr ""
1284
+
1285
+ #: ../inc/class-destination-s3-v1.php:171 ../inc/class-destination-s3.php:186
1286
+ msgid "Amazon specific settings"
1287
+ msgstr ""
1288
+
1289
+ #: ../inc/class-destination-s3-v1.php:175 ../inc/class-destination-s3-v1.php:177 .
1290
+ #: ./inc/class-destination-s3.php:190 ../inc/class-destination-s3.php:192
1291
+ msgid "Amazon: Storage Class"
1292
+ msgstr ""
1293
+
1294
+ #: ../inc/class-destination-s3-v1.php:178 ../inc/class-destination-s3.php:193
1295
+ msgid "Standard"
1296
+ msgstr ""
1297
+
1298
+ #: ../inc/class-destination-s3-v1.php:179 ../inc/class-destination-s3.php:194
1299
+ msgid "Standard-Infrequent Access"
1300
+ msgstr ""
1301
+
1302
+ #: ../inc/class-destination-s3-v1.php:180 ../inc/class-destination-s3.php:195
1303
+ msgid "Reduced Redundancy"
1304
+ msgstr ""
1305
+
1306
+ #: ../inc/class-destination-s3-v1.php:185 ../inc/class-destination-s3.php:200
1307
+ msgid "Server side encryption"
1308
+ msgstr ""
1309
+
1310
+ #: ../inc/class-destination-s3-v1.php:189 ../inc/class-destination-s3.php:204
1311
+ msgid "Save files encrypted (AES256) on server."
1312
+ msgstr ""
1313
+
1314
+ #: ../inc/class-destination-s3-v1.php:250 ../inc/class-destination-s3.php:264
1315
+ #, php-format
1316
+ msgid "Bucket %1$s created."
1317
+ msgstr ""
1318
+
1319
+ #: ../inc/class-destination-s3-v1.php:252 ../inc/pro/class-destination-s3-v1.php:
1320
+ #: 136
1321
+ #, php-format
1322
+ msgid "Bucket %s could not be created."
1323
+ msgstr ""
1324
+
1325
+ #: ../inc/class-destination-s3-v1.php:298 ../inc/class-destination-s3-v1.php:420 .
1326
+ #: ./inc/class-destination-s3-v1.php:471 ../inc/class-destination-s3.php:307 ..
1327
+ #: /inc/class-destination-s3.php:436 ../inc/class-destination-s3.php:490 ..
1328
+ #: /inc/class-destination-s3.php:524 ../inc/class-destination-s3.php:584 ..
1329
+ #: /inc/pro/class-destination-s3-v1.php:314 ../inc/pro/class-destination-s3.php:327
1330
+ #, php-format
1331
+ msgid "S3 Service API: %s"
1332
+ msgstr ""
1333
+
1334
+ #: ../inc/class-destination-s3-v1.php:363 ../inc/class-destination-s3.php:371
1335
+ #, php-format
1336
+ msgid "%d. Trying to send backup file to S3 Service&#160;&hellip;"
1337
+ msgstr ""
1338
+
1339
+ #: ../inc/class-destination-s3-v1.php:384 ../inc/class-destination-s3.php:384 ..
1340
+ #: /inc/pro/class-destination-s3-v1.php:182 ../inc/pro/class-destination-s3.php:178
1341
+ #, php-format
1342
+ msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
1343
+ msgstr ""
1344
+
1345
+ #: ../inc/class-destination-s3-v1.php:387 ../inc/class-destination-s3.php:387 ..
1346
+ #: /inc/pro/class-destination-s3-v1.php:185 ../inc/pro/class-destination-s3.php:181
1347
+ #, php-format
1348
+ msgid "S3 Bucket \"%s\" does not exist!"
1349
+ msgstr ""
1350
+
1351
+ #: ../inc/class-destination-s3-v1.php:393 ../inc/class-destination-s3.php:406
1352
+ msgid "Starting upload to S3 Service&#160;&hellip;"
1353
+ msgstr ""
1354
+
1355
+ #: ../inc/class-destination-s3-v1.php:411 ../inc/class-destination-s3.php:515 ..
1356
+ #: /inc/pro/class-destination-glacier.php:363
1357
+ #, php-format
1358
+ msgid "Backup transferred to %s."
1359
+ msgstr ""
1360
+
1361
+ #: ../inc/class-destination-s3-v1.php:416 ../inc/class-destination-s3.php:520
1362
+ #, php-format
1363
+ msgid "Cannot transfer backup to S3! (%1$d) %2$s"
1364
+ msgstr ""
1365
+
1366
+ #: ../inc/class-destination-s3-v1.php:461 ../inc/class-destination-s3.php:574
1367
+ #, php-format
1368
+ msgid "Cannot delete backup from %s."
1369
+ msgstr ""
1370
+
1371
+ #: ../inc/class-destination-s3-v1.php:465 ../inc/class-destination-s3.php:578
1372
+ #, php-format
1373
+ msgid "One file deleted on S3 Bucket."
1374
+ msgid_plural "%d files deleted on S3 Bucket"
1375
+ msgstr[0] ""
1376
+ msgstr[1] ""
1377
+
1378
+ #: ../inc/class-destination-s3-v1.php:578 ../inc/class-destination-s3.php:684 ..
1379
+ #: /inc/pro/class-destination-glacier.php:538
1380
+ msgid "Missing secret access key!"
1381
+ msgstr ""
1382
+
1383
+ #: ../inc/class-destination-s3-v1.php:584 ../inc/class-destination-s3.php:690
1384
+ msgid "No bucket found!"
1385
+ msgstr ""
1386
+
1387
+ #: ../inc/class-create-archive.php:71
1388
+ msgid "The file name of an archive cannot be empty."
1389
+ msgstr ""
1390
+
1391
+ #: ../inc/class-create-archive.php:79
1392
+ #, php-format
1393
+ msgctxt "%s = Folder name"
1394
+ msgid "Folder %s for archive not found"
1395
+ msgstr ""
1396
+
1397
+ #: ../inc/class-create-archive.php:85 ../inc/class-create-archive.php:120 ..
1398
+ #: /inc/class-create-archive.php:137 ../inc/class-mysqldump.php:133
1399
+ msgid "Functions for gz compression not available"
1400
+ msgstr ""
1401
+
1402
+ #: ../inc/class-create-archive.php:92 ../inc/class-create-archive.php:143
1403
+ msgid "Functions for bz2 compression not available"
1404
+ msgstr ""
1405
+
1406
+ #: ../inc/class-create-archive.php:116
1407
+ #, php-format
1408
+ msgctxt "ZipArchive open() result"
1409
+ msgid "Cannot create zip archive: %d"
1410
+ msgstr ""
1411
+
1412
+ #: ../inc/class-create-archive.php:149
1413
+ #, php-format
1414
+ msgctxt "%s = file name"
1415
+ msgid "Method to archive file %s not detected"
1416
+ msgstr ""
1417
+
1418
+ #: ../inc/class-create-archive.php:154
1419
+ msgid "Cannot open archive file"
1420
+ msgstr ""
1421
+
1422
+ #: ../inc/class-create-archive.php:174 ../inc/class-create-archive.php:371
1423
+ #, php-format
1424
+ msgid "PclZip archive add error: %s"
1425
+ msgstr ""
1426
+
1427
+ #: ../inc/class-create-archive.php:184
1428
+ msgid "ZIP archive cannot be closed correctly."
1429
+ msgstr ""
1430
+
1431
+ #: ../inc/class-create-archive.php:238
1432
+ msgid "File name cannot be empty"
1433
+ msgstr ""
1434
+
1435
+ #: ../inc/class-create-archive.php:247
1436
+ #, php-format
1437
+ msgctxt "File to add to archive"
1438
+ msgid "File %s does not exist or is not readable"
1439
+ msgstr ""
1440
+
1441
+ #: ../inc/class-create-archive.php:278 ../inc/class-create-archive.php:294 ..
1442
+ #: /inc/class-create-archive.php:414 ../inc/class-create-archive.php:418
1443
+ msgid "This archive method can only add one file"
1444
+ msgstr ""
1445
+
1446
+ #: ../inc/class-create-archive.php:283 ../inc/class-create-archive.php:299
1447
+ #, php-format
1448
+ msgid "Cannot open source file %s to archive"
1449
+ msgstr ""
1450
+
1451
+ #: ../inc/class-create-archive.php:333
1452
+ msgid "ZIP archive cannot be closed correctly"
1453
+ msgstr ""
1454
+
1455
+ #: ../inc/class-create-archive.php:351 ../inc/class-create-archive.php:360 ..
1456
+ #: /inc/class-create-archive.php:429
1457
+ #, php-format
1458
+ msgid "Cannot add \"%s\" to zip archive!"
1459
+ msgstr ""
1460
+
1461
+ #: ../inc/class-create-archive.php:396
1462
+ msgid "Folder name cannot be empty"
1463
+ msgstr ""
1464
+
1465
+ #: ../inc/class-create-archive.php:401
1466
+ #, php-format
1467
+ msgctxt "Folder path to add to archive"
1468
+ msgid "Folder %s does not exist or is not readable"
1469
+ msgstr ""
1470
+
1471
+ #: ../inc/class-create-archive.php:451
1472
+ #, php-format
1473
+ msgctxt "Text of ZipArchive status Message"
1474
+ msgid "ZipArchive returns status: %s"
1475
+ msgstr ""
1476
+
1477
+ #: ../inc/class-create-archive.php:481
1478
+ #, php-format
1479
+ msgid "File name \"%1$s\" is too long to be saved correctly in %2$s archive!"
1480
+ msgstr ""
1481
+
1482
+ #: ../inc/class-create-archive.php:484
1483
+ #, php-format
1484
+ msgid "File path \"%1$s\" is too long to be saved correctly in %2$s archive!"
1485
+ msgstr ""
1486
+
1487
+ #: ../inc/class-create-archive.php:496
1488
+ #, php-format
1489
+ msgid "Cannot open source file %s for archiving"
1490
+ msgstr ""
1491
+
1492
+ #: ../inc/class-create-archive.php:501 ../inc/class-create-archive.php:502 ..
1493
+ #: /inc/class-create-archive.php:601 ../inc/class-create-archive.php:602
1494
+ msgid "Unknown"
1495
+ msgstr ""
1496
+
1497
+ #: ../inc/class-create-archive.php:592
1498
+ #, php-format
1499
+ msgid "Folder name \"%1$s\" is too long to be saved correctly in %2$s archive!"
1500
+ msgstr ""
1501
+
1502
+ #: ../inc/class-create-archive.php:595
1503
+ #, php-format
1504
+ msgid "Folder path \"%1$s\" is too long to be saved correctly in %2$s archive!"
1505
+ msgstr ""
1506
+
1507
+ #: ../inc/class-create-archive.php:676
1508
+ #, php-format
1509
+ msgid ""
1510
+ "If %s will be added to your backup archive, the archive will be too large "
1511
+ "for operations with this PHP Version. You might want to consider splitting "
1512
+ "the backup job in multiple jobs with less files each."
1513
+ msgstr ""
1514
+
1515
+ #: ../inc/class-admin.php:137 ../inc/class-help.php:29
1516
+ msgid "https://marketpress.com/documentation/backwpup-pro/"
1517
+ msgstr ""
1518
+
1519
+ #: ../inc/class-admin.php:137 ../inc/pro/class-marketpress-documentation.php:149 .
1520
+ #: ./inc/pro/class-pro.php:197 ../inc/pro/class-pro.php:197
1521
+ msgid "Documentation"
1522
+ msgstr ""
1523
+
1524
+ #: ../inc/class-admin.php:139 ../inc/class-help.php:26
1525
+ msgid "https://marketpress.com/support/forum/plugins/backwpup-pro/"
1526
+ msgstr ""
1527
+
1528
+ #: ../inc/class-admin.php:139 ../inc/class-help.php:26
1529
+ msgid "Pro Support"
1530
+ msgstr ""
1531
+
1532
+ #: ../inc/class-admin.php:141 ../inc/class-help.php:28
1533
+ msgid "http://wordpress.org/support/plugin/backwpup/"
1534
+ msgstr ""
1535
+
1536
+ #: ../inc/class-admin.php:141 ../inc/class-help.php:28
1537
+ msgid "Support"
1538
+ msgstr ""
1539
+
1540
+ #: ../inc/class-admin.php:154
1541
+ msgid "BackWPup Dashboard"
1542
+ msgstr ""
1543
+
1544
+ #: ../inc/class-admin.php:154
1545
+ msgid "Dashboard"
1546
+ msgstr ""
1547
+
1548
+ #: ../inc/class-admin.php:171 ../inc/class-admin.php:171 ../inc/class-adminbar.
1549
+ #: php:86 ../inc/class-page-settings.php:120
1550
+ msgid "Jobs"
1551
+ msgstr ""
1552
+
1553
+ #: ../inc/class-admin.php:186 ../inc/class-admin.php:186
1554
+ msgid "Add new job"
1555
+ msgstr ""
1556
+
1557
+ #: ../inc/class-admin.php:216 ../inc/class-admin.php:216 ../inc/class-adminbar.
1558
+ #: php:110
1559
+ msgid "Backups"
1560
+ msgstr ""
1561
+
1562
+ #: ../inc/class-admin.php:231 ../inc/class-admin.php:231
1563
+ msgid "Settings"
1564
+ msgstr ""
1565
+
1566
+ #: ../inc/class-admin.php:244 ../inc/class-admin.php:244
1567
+ msgid "About"
1568
+ msgstr ""
1569
+
1570
+ #: ../inc/class-admin.php:281 ../inc/class-admin.php:287
1571
+ msgid "Cheating, huh?"
1572
+ msgstr ""
1573
+
1574
+ #: ../inc/class-admin.php:402
1575
+ msgid "http://marketpress.com"
1576
+ msgstr ""
1577
+
1578
+ #: ../inc/class-admin.php:402 ../inc/class-admin.php:402
1579
+ msgid "MarketPress"
1580
+ msgstr ""
1581
+
1582
+ #: ../inc/class-admin.php:404
1583
+ #, php-format
1584
+ msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
1585
+ msgstr ""
1586
+
1587
+ #: ../inc/class-admin.php:423
1588
+ #, php-format
1589
+ msgid "version %s"
1590
+ msgstr ""
1591
+
1592
+ #: ../inc/class-admin.php:468
1593
+ msgid "Add BackWPup Role"
1594
+ msgstr ""
1595
+
1596
+ #: ../inc/class-admin.php:472
1597
+ msgid "&mdash; No additional role for BackWPup &mdash;"
1598
+ msgstr ""
1599
+
1600
+ #: ../inc/class-admin.php:544
1601
+ #, php-format
1602
+ msgid ""
1603
+ "<strong>Important:</strong> before updating, please <a href=\"%1$s\">back up "
1604
+ "your database and files</a> with <a href=\"http://marketpress."
1605
+ "de/product/backwpup-pro/\">%2$s</a>. For help with updates, visit the <a "
1606
+ "href=\"http://codex.wordpress.org/Updating_WordPress\">Updating WordPress</a> "
1607
+ "Codex page."
1608
+ msgstr ""
1609
+
1610
+ #: ../inc/class-admin.php:548 ../inc/class-admin.php:552
1611
+ #, php-format
1612
+ msgid ""
1613
+ "<strong>Important:</strong> before installing this plugin, please <a "
1614
+ "href=\"%1$s\">back up your database and files</a> with <a href=\"http:"
1615
+ "//marketpress.de/product/backwpup-pro/\">%2$s</a>."
1616
+ msgstr ""
1617
+
1618
+ #: ../inc/class-admin.php:566
1619
+ msgid "BackWPup Role"
1620
+ msgstr ""
1621
+
1622
+ #: ../inc/class-admin.php:593
1623
+ msgid "Administrator"
1624
+ msgstr ""
1625
+
1626
+ #: ../inc/class-easycron.php:179
1627
+ #, php-format
1628
+ msgid "EasyCron.com API returns (%s): %s"
1629
+ msgstr ""
1630
+
1631
+ #: ../inc/class-easycron.php:188
1632
+ msgid "EasyCron"
1633
+ msgstr ""
1634
+
1635
+ #: ../inc/class-easycron.php:189
1636
+ msgid ""
1637
+ "Here you can setup your <a href=\"https://www.easycron.com/user/token?"
1638
+ "ref=36673\" class=\"help-tip\" title=\"Affiliate Link!\">EasyCron.com API key</a> "
1639
+ "to use this service."
1640
+ msgstr ""
1641
+
1642
+ #: ../inc/class-easycron.php:192
1643
+ msgid "Api key:"
1644
+ msgstr ""
1645
+
1646
+ #: ../inc/class-easycron.php:200
1647
+ msgid "Trigger WordPress Cron:"
1648
+ msgstr ""
1649
+
1650
+ #: ../inc/class-easycron.php:204
1651
+ msgid ""
1652
+ "If you check this box, a cron job will be created on EasyCron that all 5 "
1653
+ "Minutes calls the WordPress cron."
1654
+ msgstr ""
1655
+
1656
+ #: ../inc/class-destination-sugarsync.php:22
1657
+ msgid "Sugarsync Login"
1658
+ msgstr ""
1659
+
1660
+ #: ../inc/class-destination-sugarsync.php:28 ../inc/class-destination-sugarsync.
1661
+ #: php:47 ../inc/class-destination-dropbox.php:55
1662
+ msgid "Authentication"
1663
+ msgstr ""
1664
+
1665
+ #: ../inc/class-destination-sugarsync.php:30 ../inc/pro/class-destination-
1666
+ #: sugarsync.php:17
1667
+ msgid "Email address:"
1668
+ msgstr ""
1669
+
1670
+ #: ../inc/class-destination-sugarsync.php:34 ../inc/pro/class-jobtype-dbdump.php:
1671
+ #: 123 ../inc/pro/class-destination-sugarsync.php:20 ../inc/pro/class-destination-
1672
+ #: ftp.php:29
1673
+ msgid "Password:"
1674
+ msgstr ""
1675
+
1676
+ #: ../inc/class-destination-sugarsync.php:40 ../inc/class-destination-sugarsync.
1677
+ #: php:121
1678
+ msgid "Authenticate with Sugarsync!"
1679
+ msgstr ""
1680
+
1681
+ #: ../inc/class-destination-sugarsync.php:42 ../inc/class-destination-sugarsync.
1682
+ #: php:137 ../inc/pro/class-destination-sugarsync.php:27 ../inc/pro/class-
1683
+ #: destination-sugarsync.php:101
1684
+ msgid "Create Sugarsync account"
1685
+ msgstr ""
1686
+
1687
+ #: ../inc/class-destination-sugarsync.php:49 ../inc/class-destination-dropbox.php:
1688
+ #: 60 ../inc/pro/class-destination-sugarsync.php:32 ../inc/pro/class-destination-
1689
+ #: dropbox.php:35 ../inc/pro/class-destination-gdrive.php:53 ../inc/pro/class-
1690
+ #: destination-gdrive.php:277
1691
+ msgid "Authenticated!"
1692
+ msgstr ""
1693
+
1694
+ #: ../inc/class-destination-sugarsync.php:51 ../inc/class-destination-sugarsync.
1695
+ #: php:133 ../inc/pro/class-destination-sugarsync.php:34 ../inc/pro/class-
1696
+ #: destination-sugarsync.php:97
1697
+ msgid "Delete Sugarsync authentication!"
1698
+ msgstr ""
1699
+
1700
+ #: ../inc/class-destination-sugarsync.php:57
1701
+ msgid "SugarSync Root"
1702
+ msgstr ""
1703
+
1704
+ #: ../inc/class-destination-sugarsync.php:61
1705
+ msgid "Sync folder selection"
1706
+ msgstr ""
1707
+
1708
+ #: ../inc/class-destination-sugarsync.php:69 ../inc/pro/class-destination-
1709
+ #: sugarsync.php:43
1710
+ msgid "No Syncfolders found!"
1711
+ msgstr ""
1712
+
1713
+ #: ../inc/class-destination-sugarsync.php:90
1714
+ msgid "Folder in root"
1715
+ msgstr ""
1716
+
1717
+ #: ../inc/class-destination-sugarsync.php:96 ../inc/class-destination-folder.php:
1718
+ #: 39 ../inc/class-destination-dropbox.php:102 ../inc/class-destination-ftp.php:
1719
+ #: 62 ../inc/pro/class-destination-gdrive.php:71
1720
+ msgid "File Deletion"
1721
+ msgstr ""
1722
+
1723
+ #: ../inc/class-destination-sugarsync.php:227
1724
+ #, php-format
1725
+ msgid "%d. Try to send backup to SugarSync&#160;&hellip;"
1726
+ msgstr ""
1727
+
1728
+ #: ../inc/class-destination-sugarsync.php:234
1729
+ #, php-format
1730
+ msgid "Authenticated to SugarSync with nickname %s"
1731
+ msgstr ""
1732
+
1733
+ #: ../inc/class-destination-sugarsync.php:237
1734
+ #, php-format
1735
+ msgctxt "Available space on SugarSync"
1736
+ msgid "Not enough disk space available on SugarSync. Available: %s."
1737
+ msgstr ""
1738
+
1739
+ #: ../inc/class-destination-sugarsync.php:243
1740
+ #, php-format
1741
+ msgid "%s available at SugarSync"
1742
+ msgstr ""
1743
+
1744
+ #: ../inc/class-destination-sugarsync.php:250
1745
+ msgid "Starting upload to SugarSync&#160;&hellip;"
1746
+ msgstr ""
1747
+
1748
+ #: ../inc/class-destination-sugarsync.php:260
1749
+ msgid "Cannot transfer backup to SugarSync!"
1750
+ msgstr ""
1751
+
1752
+ #: ../inc/class-destination-sugarsync.php:299
1753
+ #, php-format
1754
+ msgid "One file deleted on SugarSync folder"
1755
+ msgid_plural "%d files deleted on SugarSync folder"
1756
+ msgstr[0] ""
1757
+ msgstr[1] ""
1758
+
1759
+ #: ../inc/class-destination-sugarsync.php:305
1760
+ #, php-format
1761
+ msgid "SugarSync API: %s"
1762
+ msgstr ""
1763
+
1764
+ #: ../inc/class-destination-folder.php:33
1765
+ msgid "Folder to store backups in"
1766
+ msgstr ""
1767
+
1768
+ #: ../inc/class-destination-folder.php:211
1769
+ #, php-format
1770
+ msgid "One backup file deleted"
1771
+ msgid_plural "%d backup files deleted"
1772
+ msgstr[0] ""
1773
+ msgstr[1] ""
1774
+
1775
+ #: ../inc/class-destination-dropbox.php:36 ../inc/class-destination-dropbox.php:
1776
+ #: 332 ../inc/pro/class-destination-dropbox.php:253
1777
+ #, php-format
1778
+ msgid "Dropbox API: %s"
1779
+ msgstr ""
1780
+
1781
+ #: ../inc/class-destination-dropbox.php:51 ../inc/pro/class-destination-gdrive.
1782
+ #: php:45
1783
+ msgid "Login"
1784
+ msgstr ""
1785
+
1786
+ #: ../inc/class-destination-dropbox.php:57 ../inc/pro/class-destination-gdrive.
1787
+ #: php:51 ../inc/pro/class-destination-gdrive.php:271
1788
+ msgid "Not authenticated!"
1789
+ msgstr ""
1790
+
1791
+ #: ../inc/class-destination-dropbox.php:58 ../inc/pro/class-destination-dropbox.
1792
+ #: php:29
1793
+ msgid "Create Account"
1794
+ msgstr ""
1795
+
1796
+ #: ../inc/class-destination-dropbox.php:61 ../inc/class-destination-dropbox.php:61
1797
+ msgid "Delete Dropbox Authentication"
1798
+ msgstr ""
1799
+
1800
+ #: ../inc/class-destination-dropbox.php:68
1801
+ msgid "App Access to Dropbox"
1802
+ msgstr ""
1803
+
1804
+ #: ../inc/class-destination-dropbox.php:70
1805
+ msgid ""
1806
+ "A dedicated folder named BackWPup will be created inside of the Apps folder "
1807
+ "in your Dropbox. BackWPup will get read and write access to that folder only."
1808
+ " You can specify a subfolder as your backup destination for this job in the "
1809
+ "destination field below."
1810
+ msgstr ""
1811
+
1812
+ #: ../inc/class-destination-dropbox.php:71
1813
+ msgid "Get Dropbox App auth code"
1814
+ msgstr ""
1815
+
1816
+ #: ../inc/class-destination-dropbox.php:72
1817
+ msgid "Allows restricted access to Apps/BackWPup folder only."
1818
+ msgstr ""
1819
+
1820
+ #: ../inc/class-destination-dropbox.php:77
1821
+ msgid " OR "
1822
+ msgstr ""
1823
+
1824
+ #: ../inc/class-destination-dropbox.php:80
1825
+ msgid "Full Access to Dropbox"
1826
+ msgstr ""
1827
+
1828
+ #: ../inc/class-destination-dropbox.php:82
1829
+ msgid ""
1830
+ "BackWPup will have full read and write access to your entire Dropbox. You "
1831
+ "can specify your backup destination wherever you want, just be aware that "
1832
+ "ANY files or folders inside of your Dropbox can be overridden or deleted by "
1833
+ "BackWPup."
1834
+ msgstr ""
1835
+
1836
+ #: ../inc/class-destination-dropbox.php:83
1837
+ msgid "Get full Dropbox auth code "
1838
+ msgstr ""
1839
+
1840
+ #: ../inc/class-destination-dropbox.php:84
1841
+ msgid "Allows full access to your entire Dropbox."
1842
+ msgstr ""
1843
+
1844
+ #: ../inc/class-destination-dropbox.php:95
1845
+ msgid "Destination Folder"
1846
+ msgstr ""
1847
+
1848
+ #: ../inc/class-destination-dropbox.php:97
1849
+ msgid ""
1850
+ "Specify a subfolder where your backup archives will be stored. If you use "
1851
+ "the App option from above, this folder will be created inside of "
1852
+ "Apps/BackWPup. Otherwise it will be created at the root of your Dropbox. "
1853
+ "Already exisiting folders with the same name will not be overriden."
1854
+ msgstr ""
1855
+
1856
+ #: ../inc/class-destination-dropbox.php:98
1857
+ msgid "Folder inside your Dropbox where your backup archives will be stored."
1858
+ msgstr ""
1859
+
1860
+ #: ../inc/class-destination-dropbox.php:107
1861
+ msgid "Older files will be deleted first. 0 = no files will be deleted."
1862
+ msgstr ""
1863
+
1864
+ #: ../inc/class-destination-dropbox.php:224
1865
+ #, php-format
1866
+ msgid "%d. Try to send backup file to Dropbox&#160;&hellip;"
1867
+ msgstr ""
1868
+
1869
+ #: ../inc/class-destination-dropbox.php:247 ../inc/pro/class-destination-dropbox.
1870
+ #: php:128
1871
+ #, php-format
1872
+ msgid "Authenticated with Dropbox of user: %s"
1873
+ msgstr ""
1874
+
1875
+ #: ../inc/class-destination-dropbox.php:251 ../inc/pro/class-destination-dropbox.
1876
+ #: php:132
1877
+ #, php-format
1878
+ msgid "%s available on your Dropbox"
1879
+ msgstr ""
1880
+
1881
+ #: ../inc/class-destination-dropbox.php:254 ../inc/pro/class-destination-dropbox.
1882
+ #: php:135
1883
+ msgid "Not Authenticated with Dropbox!"
1884
+ msgstr ""
1885
+
1886
+ #: ../inc/class-destination-dropbox.php:257
1887
+ msgid "Uploading to Dropbox&#160;&hellip;"
1888
+ msgstr ""
1889
+
1890
+ #: ../inc/class-destination-dropbox.php:273 ../inc/pro/class-destination-gdrive.
1891
+ #: php:615
1892
+ msgid "Uploaded file size and local file size don't match."
1893
+ msgstr ""
1894
+
1895
+ #: ../inc/class-destination-dropbox.php:277 ../inc/pro/class-destination-gdrive.
1896
+ #: php:617 ../inc/pro/class-destination-glacier.php:367
1897
+ #, php-format
1898
+ msgid "Error transfering backup to %s."
1899
+ msgstr ""
1900
+
1901
+ #: ../inc/class-destination-dropbox.php:323
1902
+ #, php-format
1903
+ msgid "Error while deleting file from Dropbox: %s"
1904
+ msgstr ""
1905
+
1906
+ #: ../inc/class-destination-dropbox.php:326
1907
+ #, php-format
1908
+ msgid "One file deleted from Dropbox"
1909
+ msgid_plural "%d files deleted on Dropbox"
1910
+ msgstr[0] ""
1911
+ msgstr[1] ""
1912
+
1913
+ #: ../inc/class-destination-ftp.php:23
1914
+ msgid "FTP server and login"
1915
+ msgstr ""
1916
+
1917
+ #: ../inc/class-destination-ftp.php:27
1918
+ msgid "FTP server"
1919
+ msgstr ""
1920
+
1921
+ #: ../inc/class-destination-ftp.php:31 ../inc/class-destination-email.php:104 ..
1922
+ #: /inc/pro/class-destination-ftp.php:21
1923
+ msgid "Port:"
1924
+ msgstr ""
1925
+
1926
+ #: ../inc/class-destination-ftp.php:37 ../inc/class-destination-rsc.php:45
1927
+ msgid "Username"
1928
+ msgstr ""
1929
+
1930
+ #: ../inc/class-destination-ftp.php:44
1931
+ msgid "Password"
1932
+ msgstr ""
1933
+
1934
+ #: ../inc/class-destination-ftp.php:56
1935
+ msgid "Folder to store files in"
1936
+ msgstr ""
1937
+
1938
+ #: ../inc/class-destination-ftp.php:68
1939
+ msgid "Maximum number of files to keep in folder."
1940
+ msgstr ""
1941
+
1942
+ #: ../inc/class-destination-ftp.php:78
1943
+ msgid "FTP specific settings"
1944
+ msgstr ""
1945
+
1946
+ #: ../inc/class-destination-ftp.php:82
1947
+ msgid "Timeout for FTP connection"
1948
+ msgstr ""
1949
+
1950
+ #: ../inc/class-destination-ftp.php:90
1951
+ msgid "SSL-FTP connection"
1952
+ msgstr ""
1953
+
1954
+ #: ../inc/class-destination-ftp.php:94
1955
+ msgid "Use explicit SSL-FTP connection."
1956
+ msgstr ""
1957
+
1958
+ #: ../inc/class-destination-ftp.php:99
1959
+ msgid "FTP Passive Mode"
1960
+ msgstr ""
1961
+
1962
+ #: ../inc/class-destination-ftp.php:103
1963
+ msgid "Use FTP Passive Mode."
1964
+ msgstr ""
1965
+
1966
+ #: ../inc/class-destination-ftp.php:179
1967
+ msgid "FTP: Login failure!"
1968
+ msgstr ""
1969
+
1970
+ #: ../inc/class-destination-ftp.php:203
1971
+ #, php-format
1972
+ msgid "%d. Try to send backup file to an FTP server&#160;&hellip;"
1973
+ msgstr ""
1974
+
1975
+ #: ../inc/class-destination-ftp.php:209
1976
+ #, php-format
1977
+ msgid "Connected via explicit SSL-FTP to server: %s"
1978
+ msgstr ""
1979
+
1980
+ #: ../inc/class-destination-ftp.php:211
1981
+ #, php-format
1982
+ msgid "Cannot connect via explicit SSL-FTP to server: %s"
1983
+ msgstr ""
1984
+
1985
+ #: ../inc/class-destination-ftp.php:217
1986
+ msgid "PHP function to connect with explicit SSL-FTP to server does not exist!"
1987
+ msgstr ""
1988
+
1989
+ #: ../inc/class-destination-ftp.php:225
1990
+ #, php-format
1991
+ msgid "Connected to FTP server: %s"
1992
+ msgstr ""
1993
+
1994
+ #: ../inc/class-destination-ftp.php:227
1995
+ #, php-format
1996
+ msgid "Cannot connect to FTP server: %s"
1997
+ msgstr ""
1998
+
1999
+ #: ../inc/class-destination-ftp.php:234 ../inc/class-destination-ftp.php:242 ..
2000
+ #: /inc/class-destination-ftp.php:258 ../inc/class-destination-ftp.php:305
2001
+ #, php-format
2002
+ msgid "FTP client command: %s"
2003
+ msgstr ""
2004
+
2005
+ #: ../inc/class-destination-ftp.php:236
2006
+ #, php-format
2007
+ msgid "FTP server response: %s"
2008
+ msgstr ""
2009
+
2010
+ #: ../inc/class-destination-ftp.php:240 ../inc/class-destination-ftp.php:245 ..
2011
+ #: /inc/class-destination-ftp.php:248 ../inc/class-destination-ftp.php:261 ..
2012
+ #: /inc/class-destination-ftp.php:263 ../inc/class-destination-ftp.php:308 ..
2013
+ #: /inc/class-destination-ftp.php:310 ../inc/class-destination-ftp.php:314 ..
2014
+ #: /inc/class-destination-ftp.php:316
2015
+ #, php-format
2016
+ msgid "FTP server reply: %s"
2017
+ msgstr ""
2018
+
2019
+ #: ../inc/class-destination-ftp.php:263
2020
+ msgid "Error getting SYSTYPE"
2021
+ msgstr ""
2022
+
2023
+ #: ../inc/class-destination-ftp.php:281
2024
+ #, php-format
2025
+ msgid "FTP Folder \"%s\" created!"
2026
+ msgstr ""
2027
+
2028
+ #: ../inc/class-destination-ftp.php:285
2029
+ #, php-format
2030
+ msgid "FTP Folder \"%s\" cannot be created!"
2031
+ msgstr ""
2032
+
2033
+ #: ../inc/class-destination-ftp.php:296
2034
+ #, php-format
2035
+ msgid "FTP current folder is: %s"
2036
+ msgstr ""
2037
+
2038
+ #: ../inc/class-destination-ftp.php:308
2039
+ msgid "Entering passive mode"
2040
+ msgstr ""
2041
+
2042
+ #: ../inc/class-destination-ftp.php:310
2043
+ msgid "Cannot enter passive mode"
2044
+ msgstr ""
2045
+
2046
+ #: ../inc/class-destination-ftp.php:314
2047
+ msgid "Entering normal mode"
2048
+ msgstr ""
2049
+
2050
+ #: ../inc/class-destination-ftp.php:316
2051
+ msgid "Cannot enter normal mode"
2052
+ msgstr ""
2053
+
2054
+ #: ../inc/class-destination-ftp.php:320
2055
+ msgid "Starting upload to FTP &#160;&hellip;"
2056
+ msgstr ""
2057
+
2058
+ #: ../inc/class-destination-ftp.php:332
2059
+ msgid "Cannot transfer backup to FTP server!"
2060
+ msgstr ""
2061
+
2062
+ #: ../inc/class-destination-ftp.php:337
2063
+ #, php-format
2064
+ msgid "Backup transferred to FTP server: %s"
2065
+ msgstr ""
2066
+
2067
+ #: ../inc/class-destination-ftp.php:388
2068
+ #, php-format
2069
+ msgid "Cannot delete \"%s\" on FTP server!"
2070
+ msgstr ""
2071
+
2072
+ #: ../inc/class-destination-ftp.php:391
2073
+ #, php-format
2074
+ msgid "One file deleted on FTP server"
2075
+ msgid_plural "%d files deleted on FTP server"
2076
+ msgstr[0] ""
2077
+ msgstr[1] ""
2078
+
2079
+ #: ../inc/class-destination-s3.php:91 ../inc/pro/class-destination-s3.php:29
2080
+ msgid "Google Storage: EU"
2081
+ msgstr ""
2082
+
2083
+ #: ../inc/class-destination-s3.php:92 ../inc/pro/class-destination-s3.php:30
2084
+ msgid "Google Storage: USA"
2085
+ msgstr ""
2086
+
2087
+ #: ../inc/class-destination-s3.php:93 ../inc/pro/class-destination-s3.php:31
2088
+ msgid "Google Storage: Asia"
2089
+ msgstr ""
2090
+
2091
+ #: ../inc/class-destination-s3.php:176
2092
+ msgid "Multipart Upload"
2093
+ msgstr ""
2094
+
2095
+ #: ../inc/class-destination-s3.php:178
2096
+ msgid ""
2097
+ "Multipart splits file into multiple chunks while uploading. This is "
2098
+ "necessary for displaying the upload process and to transfer bigger files. "
2099
+ "Works without a problem on Amazon. Other services might have issues."
2100
+ msgstr ""
2101
+
2102
+ #: ../inc/class-destination-s3.php:180
2103
+ msgid "Use multipart upload for uploading a file"
2104
+ msgstr ""
2105
+
2106
+ #: ../inc/class-destination-s3.php:266 ../inc/pro/class-destination-s3.php:137
2107
+ #, php-format
2108
+ msgid " %s is not a valid bucket name."
2109
+ msgstr ""
2110
+
2111
+ #: ../inc/class-destination-s3.php:394
2112
+ msgid "Checking for not aborted multipart Uploads&#160;&hellip;"
2113
+ msgstr ""
2114
+
2115
+ #: ../inc/class-destination-s3.php:400
2116
+ #, php-format
2117
+ msgid "Upload for %s aborted."
2118
+ msgstr ""
2119
+
2120
+ #: ../inc/class-destination-s3.php:548
2121
+ #, php-format
2122
+ msgid "Storage Class: %s"
2123
+ msgstr ""
2124
+
2125
+ #: ../inc/class-file.php:152
2126
+ #, php-format
2127
+ msgid "Folder %1$s not allowed, please use another folder."
2128
+ msgstr ""
2129
+
2130
+ #: ../inc/class-file.php:157
2131
+ #, php-format
2132
+ msgid "Folder %1$s is not in open basedir, please use another folder."
2133
+ msgstr ""
2134
+
2135
+ #: ../inc/class-file.php:163
2136
+ #, php-format
2137
+ msgid "Cannot create folder: %1$s"
2138
+ msgstr ""
2139
+
2140
+ #: ../inc/class-file.php:169
2141
+ #, php-format
2142
+ msgid "Folder \"%1$s\" is not writable"
2143
+ msgstr ""
2144
+
2145
+ #: ../inc/class-file.php:198
2146
+ msgid ""
2147
+ "BackWPup will not backup folders and its sub folders when this file is "
2148
+ "inside."
2149
+ msgstr ""
2150
+
2151
+ #: ../inc/class-page-jobs.php:100
2152
+ msgid "No Jobs."
2153
+ msgstr ""
2154
+
2155
+ #: ../inc/class-page-jobs.php:125 ../inc/class-page-editjob.php:438
2156
+ msgid "Job Name"
2157
+ msgstr ""
2158
+
2159
+ #: ../inc/class-page-jobs.php:127 ../inc/pro/class-wizard-job.php:57 ..
2160
+ #: /inc/pro/class-wizard-job.php:438
2161
+ msgid "Destinations"
2162
+ msgstr ""
2163
+
2164
+ #: ../inc/class-page-jobs.php:128
2165
+ msgid "Next Run"
2166
+ msgstr ""
2167
+
2168
+ #: ../inc/class-page-jobs.php:129
2169
+ msgid "Last Run"
2170
+ msgstr ""
2171
+
2172
+ #: ../inc/class-page-jobs.php:175
2173
+ msgid "Edit"
2174
+ msgstr ""
2175
+
2176
+ #: ../inc/class-page-jobs.php:176
2177
+ msgid "Copy"
2178
+ msgstr ""
2179
+
2180
+ #: ../inc/class-page-jobs.php:181 ../inc/class-page-editjob.php:195
2181
+ msgid "Run now"
2182
+ msgstr ""
2183
+
2184
+ #: ../inc/class-page-jobs.php:189
2185
+ msgid "Last log"
2186
+ msgstr ""
2187
+
2188
+ #: ../inc/class-page-jobs.php:251
2189
+ msgid "Not needed or set"
2190
+ msgstr ""
2191
+
2192
+ #: ../inc/class-page-jobs.php:273
2193
+ #, php-format
2194
+ msgid "Running for: %s seconds"
2195
+ msgstr ""
2196
+
2197
+ #: ../inc/class-page-jobs.php:280 ../inc/class-page-jobs.php:289
2198
+ #, php-format
2199
+ msgid "Cron: %s"
2200
+ msgstr ""
2201
+
2202
+ #: ../inc/class-page-jobs.php:280
2203
+ #, php-format
2204
+ msgid "%1$s at %2$s by WP-Cron"
2205
+ msgstr ""
2206
+
2207
+ #: ../inc/class-page-jobs.php:289
2208
+ #, php-format
2209
+ msgid "%1$s at %2$s by EasyCron"
2210
+ msgstr ""
2211
+
2212
+ #: ../inc/class-page-jobs.php:295
2213
+ msgid "Inactive"
2214
+ msgstr ""
2215
+
2216
+ #: ../inc/class-page-jobs.php:317
2217
+ #, php-format
2218
+ msgid "Runtime: %d seconds"
2219
+ msgstr ""
2220
+
2221
+ #: ../inc/class-page-jobs.php:321
2222
+ msgid "not yet"
2223
+ msgstr ""
2224
+
2225
+ #: ../inc/class-page-jobs.php:327
2226
+ msgid "Download last backup"
2227
+ msgstr ""
2228
+
2229
+ #: ../inc/class-page-jobs.php:336
2230
+ msgid "Log"
2231
+ msgstr ""
2232
+
2233
+ #: ../inc/class-page-jobs.php:379
2234
+ msgid "Copy of"
2235
+ msgstr ""
2236
+
2237
+ #: ../inc/class-page-jobs.php:394 ../inc/class-page-backups.php:375 ../inc/class-
2238
+ #: page-backups.php:414 ../inc/class-page-editjob.php:35
2239
+ msgid "Sorry, you don't have permissions to do that."
2240
+ msgstr ""
2241
+
2242
+ #: ../inc/class-page-jobs.php:426
2243
+ #, php-format
2244
+ msgid "The job \"%s\" destination \"%s\" is not configured properly"
2245
+ msgstr ""
2246
+
2247
+ #: ../inc/class-page-jobs.php:431
2248
+ #, php-format
2249
+ msgid "The job \"%s\" needs properly configured destinations to run!"
2250
+ msgstr ""
2251
+
2252
+ #: ../inc/class-page-jobs.php:439 ../inc/class-page-settings.php:439
2253
+ #, php-format
2254
+ msgid "The HTTP response test get an error \"%s\""
2255
+ msgstr ""
2256
+
2257
+ #: ../inc/class-page-jobs.php:443 ../inc/class-page-settings.php:441
2258
+ #, php-format
2259
+ msgid "The HTTP response test get a false http status (%s)"
2260
+ msgstr ""
2261
+
2262
+ #: ../inc/class-page-jobs.php:447
2263
+ #, php-format
2264
+ msgid "Not expected HTTP response body: %s"
2265
+ msgstr ""
2266
+
2267
+ #: ../inc/class-page-jobs.php:468
2268
+ #, php-format
2269
+ msgid "Job “%s” has started, but not responded for 10 seconds."
2270
+ msgstr ""
2271
+
2272
+ #: ../inc/class-page-jobs.php:473
2273
+ #, php-format
2274
+ msgid "Job \"%s\" started."
2275
+ msgstr ""
2276
+
2277
+ #: ../inc/class-page-jobs.php:598
2278
+ #, php-format
2279
+ msgid "%s Jobs"
2280
+ msgstr ""
2281
+
2282
+ #: ../inc/class-page-jobs.php:598 ../inc/class-adminbar.php:94
2283
+ msgid "Add new"
2284
+ msgstr ""
2285
+
2286
+ #: ../inc/class-page-jobs.php:618
2287
+ #, php-format
2288
+ msgid "Job currently running: %s"
2289
+ msgstr ""
2290
+
2291
+ #: ../inc/class-page-jobs.php:619
2292
+ msgid "Warnings:"
2293
+ msgstr ""
2294
+
2295
+ #: ../inc/class-page-jobs.php:620
2296
+ msgid "Errors:"
2297
+ msgstr ""
2298
+
2299
+ #: ../inc/class-page-jobs.php:621
2300
+ msgid "Log of running job"
2301
+ msgstr ""
2302
+
2303
+ #: ../inc/class-page-jobs.php:621
2304
+ msgid "Display working log"
2305
+ msgstr ""
2306
+
2307
+ #: ../inc/class-page-jobs.php:623
2308
+ msgid "Close working screen"
2309
+ msgstr ""
2310
+
2311
+ #: ../inc/class-page-jobs.php:623
2312
+ msgid "close"
2313
+ msgstr ""
2314
+
2315
+ #: ../inc/class-page-jobs.php:790
2316
+ msgid "Job completed"
2317
+ msgstr ""
2318
+
2319
+ #: ../inc/class-page-jobs.php:792 ../inc/class-job.php:1274
2320
+ msgid "ERROR:"
2321
+ msgstr ""
2322
+
2323
+ #: ../inc/class-page-jobs.php:792 ../inc/class-job.php:1487
2324
+ #, php-format
2325
+ msgid ""
2326
+ "Job has ended with errors in %s seconds. You must resolve the errors for "
2327
+ "correct execution."
2328
+ msgstr ""
2329
+
2330
+ #: ../inc/class-page-jobs.php:794 ../inc/class-job.php:1265
2331
+ msgid "WARNING:"
2332
+ msgstr ""
2333
+
2334
+ #: ../inc/class-page-jobs.php:794
2335
+ #, php-format
2336
+ msgid ""
2337
+ "Job has done with warnings in %s seconds. Please resolve them for correct "
2338
+ "execution."
2339
+ msgstr ""
2340
+
2341
+ #: ../inc/class-page-jobs.php:796 ../inc/class-job.php:1491
2342
+ #, php-format
2343
+ msgid "Job done in %s seconds."
2344
+ msgstr ""
2345
+
2346
+ #: ../inc/class-destination-email.php:38 ../inc/class-destination-email.php:41 ..
2347
+ #: /inc/pro/class-destination-email.php:16 ../inc/pro/class-destination-email.php:
2348
+ #: 18
2349
+ msgid "Email address"
2350
+ msgstr ""
2351
+
2352
+ #: ../inc/class-destination-email.php:43 ../inc/pro/class-destination-email.php:19
2353
+ msgid "Email address to which Backups are sent."
2354
+ msgstr ""
2355
+
2356
+ #: ../inc/class-destination-email.php:48 ../inc/class-destination-email.php:50 ..
2357
+ #: /inc/pro/class-destination-email.php:24 ../inc/pro/class-destination-email.php:
2358
+ #: 25
2359
+ msgid "Send test email"
2360
+ msgstr ""
2361
+
2362
+ #: ../inc/class-destination-email.php:55
2363
+ msgid "Send email settings"
2364
+ msgstr ""
2365
+
2366
+ #: ../inc/class-destination-email.php:58
2367
+ msgid "Maximum file size"
2368
+ msgstr ""
2369
+
2370
+ #: ../inc/class-destination-email.php:59
2371
+ msgid "Maximum file size to be included in an email. 0 = unlimited"
2372
+ msgstr ""
2373
+
2374
+ #: ../inc/class-destination-email.php:59
2375
+ msgid "MB"
2376
+ msgstr ""
2377
+
2378
+ #: ../inc/class-destination-email.php:63 ../inc/class-destination-email.php:64
2379
+ msgid "Sender email address"
2380
+ msgstr ""
2381
+
2382
+ #: ../inc/class-destination-email.php:70
2383
+ msgid "Sender name"
2384
+ msgstr ""
2385
+
2386
+ #: ../inc/class-destination-email.php:71
2387
+ msgid "Name of email sender"
2388
+ msgstr ""
2389
+
2390
+ #: ../inc/class-destination-email.php:77
2391
+ msgid "Sending method"
2392
+ msgstr ""
2393
+
2394
+ #: ../inc/class-destination-email.php:79
2395
+ msgid ""
2396
+ "- Use site settings: retrieve the email settings of your site.<br />-PHP "
2397
+ "mail(): needs more PHP memory"
2398
+ msgstr ""
2399
+
2400
+ #: ../inc/class-destination-email.php:81
2401
+ msgid "Use site settings"
2402
+ msgstr ""
2403
+
2404
+ #: ../inc/class-destination-email.php:82
2405
+ msgid "PHP: mail()"
2406
+ msgstr ""
2407
+
2408
+ #: ../inc/class-destination-email.php:83
2409
+ msgid "Sendmail"
2410
+ msgstr ""
2411
+
2412
+ #: ../inc/class-destination-email.php:84
2413
+ msgid "SMTP"
2414
+ msgstr ""
2415
+
2416
+ #: ../inc/class-destination-email.php:91
2417
+ msgid "Sendmail path"
2418
+ msgstr ""
2419
+
2420
+ #: ../inc/class-destination-email.php:99
2421
+ msgid "SMTP host name"
2422
+ msgstr ""
2423
+
2424
+ #: ../inc/class-destination-email.php:110
2425
+ msgid "SMTP secure connection"
2426
+ msgstr ""
2427
+
2428
+ #: ../inc/class-destination-email.php:115
2429
+ msgid "SSL"
2430
+ msgstr ""
2431
+
2432
+ #: ../inc/class-destination-email.php:116
2433
+ msgid "TLS"
2434
+ msgstr ""
2435
+
2436
+ #: ../inc/class-destination-email.php:121
2437
+ msgid "SMTP username"
2438
+ msgstr ""
2439
+
2440
+ #: ../inc/class-destination-email.php:128
2441
+ msgid "SMTP password"
2442
+ msgstr ""
2443
+
2444
+ #: ../inc/class-destination-email.php:204
2445
+ #, php-format
2446
+ msgid "%d. Try to send backup with email&#160;&hellip;"
2447
+ msgstr ""
2448
+
2449
+ #: ../inc/class-destination-email.php:209
2450
+ msgid "Backup archive too big to be sent by email!"
2451
+ msgstr ""
2452
+
2453
+ #: ../inc/class-destination-email.php:216
2454
+ #, php-format
2455
+ msgid "Sending email to %s&hellip;"
2456
+ msgstr ""
2457
+
2458
+ #: ../inc/class-destination-email.php:292
2459
+ #, php-format
2460
+ msgid "BackWPup archive from %1$s: %2$s"
2461
+ msgstr ""
2462
+
2463
+ #: ../inc/class-destination-email.php:295
2464
+ #, php-format
2465
+ msgid "Backup archive: %s"
2466
+ msgstr ""
2467
+
2468
+ #: ../inc/class-destination-email.php:309 ../inc/class-destination-email.php:431
2469
+ msgid "Error while sending email!"
2470
+ msgstr ""
2471
+
2472
+ #: ../inc/class-destination-email.php:315 ../inc/class-destination-email.php:433
2473
+ msgid "Email sent."
2474
+ msgstr ""
2475
+
2476
+ #: ../inc/class-destination-email.php:415
2477
+ msgid "BackWPup archive sending TEST Message"
2478
+ msgstr ""
2479
+
2480
+ #: ../inc/class-destination-email.php:418
2481
+ msgid ""
2482
+ "If this message reaches your inbox, sending backup archives via email should "
2483
+ "work for you."
2484
+ msgstr ""
2485
+
2486
+ #: ../inc/class-help.php:15
2487
+ msgid "Plugin Info"
2488
+ msgstr ""
2489
+
2490
+ #: ../inc/class-help.php:17
2491
+ #, php-format
2492
+ msgctxt "Plugin name and link; Plugin Version"
2493
+ msgid ""
2494
+ "%1$s version %2$s. A project by <a href=\"http://inpsyde.com\">Inpsyde "
2495
+ "GmbH</a>."
2496
+ msgstr ""
2497
+
2498
+ #: ../inc/class-help.php:18
2499
+ msgid ""
2500
+ "BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you "
2501
+ "are welcome to redistribute it under certain conditions."
2502
+ msgstr ""
2503
+
2504
+ #: ../inc/class-help.php:21
2505
+ msgid "For more information:"
2506
+ msgstr ""
2507
+
2508
+ #: ../inc/class-help.php:23
2509
+ msgid "Plugin on wordpress.org"
2510
+ msgstr ""
2511
+
2512
+ #: ../inc/class-help.php:24
2513
+ msgid "https://marketpress.com/news/"
2514
+ msgstr ""
2515
+
2516
+ #: ../inc/class-help.php:24
2517
+ msgid "News"
2518
+ msgstr ""
2519
+
2520
+ #: ../inc/class-help.php:29
2521
+ msgid "Manual"
2522
+ msgstr ""
2523
+
2524
+ #: ../inc/class-destination-rsc.php:41
2525
+ msgid "Rack Space Cloud Keys"
2526
+ msgstr ""
2527
+
2528
+ #: ../inc/class-destination-rsc.php:52
2529
+ msgid "API Key"
2530
+ msgstr ""
2531
+
2532
+ #: ../inc/class-destination-rsc.php:60
2533
+ msgid "Select region"
2534
+ msgstr ""
2535
+
2536
+ #: ../inc/class-destination-rsc.php:64 ../inc/class-destination-rsc.php:66 ..
2537
+ #: /inc/pro/class-destination-rsc.php:30
2538
+ msgid "Rackspace Cloud Files Region"
2539
+ msgstr ""
2540
+
2541
+ #: ../inc/class-destination-rsc.php:67 ../inc/pro/class-destination-rsc.php:31
2542
+ msgid "Dallas (DFW)"
2543
+ msgstr ""
2544
+
2545
+ #: ../inc/class-destination-rsc.php:68 ../inc/pro/class-destination-rsc.php:32
2546
+ msgid "Chicago (ORD)"
2547
+ msgstr ""
2548
+
2549
+ #: ../inc/class-destination-rsc.php:69 ../inc/pro/class-destination-rsc.php:33
2550
+ msgid "Sydney (SYD)"
2551
+ msgstr ""
2552
+
2553
+ #: ../inc/class-destination-rsc.php:70 ../inc/pro/class-destination-rsc.php:34
2554
+ msgid "London (LON)"
2555
+ msgstr ""
2556
+
2557
+ #: ../inc/class-destination-rsc.php:71 ../inc/pro/class-destination-rsc.php:35
2558
+ msgid "Northern Virginia (IAD)"
2559
+ msgstr ""
2560
+
2561
+ #: ../inc/class-destination-rsc.php:72 ../inc/pro/class-destination-rsc.php:36
2562
+ msgid "Hong Kong (HKG)"
2563
+ msgstr ""
2564
+
2565
+ #: ../inc/class-destination-rsc.php:155 ../inc/pro/class-destination-rsc.php:105
2566
+ #, php-format
2567
+ msgid "Rackspace Cloud container \"%s\" created."
2568
+ msgstr ""
2569
+
2570
+ #: ../inc/class-destination-rsc.php:159 ../inc/class-destination-rsc.php:267 ..
2571
+ #: /inc/class-destination-rsc.php:307 ../inc/class-destination-rsc.php:352 ..
2572
+ #: /inc/pro/class-destination-rsc.php:109 ../inc/pro/class-destination-rsc.php:
2573
+ #: 159 ../inc/pro/class-destination-rsc.php:279
2574
+ #, php-format
2575
+ msgid "Rackspace Cloud API: %s"
2576
+ msgstr ""
2577
+
2578
+ #: ../inc/class-destination-rsc.php:250
2579
+ #, php-format
2580
+ msgid "%d. Trying to send backup file to Rackspace cloud &hellip;"
2581
+ msgstr ""
2582
+
2583
+ #: ../inc/class-destination-rsc.php:264
2584
+ #, php-format
2585
+ msgid "Connected to Rackspace cloud files container %s"
2586
+ msgstr ""
2587
+
2588
+ #: ../inc/class-destination-rsc.php:276
2589
+ msgid "Upload to Rackspace cloud started &hellip;"
2590
+ msgstr ""
2591
+
2592
+ #: ../inc/class-destination-rsc.php:295
2593
+ msgid "Backup File transferred to RSC://"
2594
+ msgstr ""
2595
+
2596
+ #: ../inc/class-destination-rsc.php:301
2597
+ msgid "Cannot transfer backup to Rackspace cloud."
2598
+ msgstr ""
2599
+
2600
+ #: ../inc/class-destination-rsc.php:346
2601
+ #, php-format
2602
+ msgid "One file deleted on Rackspace cloud container."
2603
+ msgid_plural "%d files deleted on Rackspace cloud container."
2604
+ msgstr[0] ""
2605
+ msgstr[1] ""
2606
+
2607
+ #: ../inc/class-destination-rsc.php:449
2608
+ msgid "Missing username!"
2609
+ msgstr ""
2610
+
2611
+ #: ../inc/class-destination-rsc.php:451
2612
+ msgid "Missing API Key!"
2613
+ msgstr ""
2614
+
2615
+ #: ../inc/class-destination-rsc.php:455
2616
+ msgid "A container could not be found!"
2617
+ msgstr ""
2618
+
2619
+ #: ../inc/class-adminbar.php:55
2620
+ msgid "running"
2621
+ msgstr ""
2622
+
2623
+ #: ../inc/class-adminbar.php:71
2624
+ msgid "Now Running"
2625
+ msgstr ""
2626
+
2627
+ #: ../inc/class-adminbar.php:77
2628
+ msgid "Abort!"
2629
+ msgstr ""
2630
+
2631
+ #: ../inc/class-adminbar.php:132
2632
+ msgid "Run Now"
2633
+ msgstr ""
2634
+
2635
+ #: ../inc/class-page-settings.php:60
2636
+ msgid "Settings reset to default"
2637
+ msgstr ""
2638
+
2639
+ #: ../inc/class-page-settings.php:107
2640
+ msgid "Settings saved"
2641
+ msgstr ""
2642
+
2643
+ #: ../inc/class-page-settings.php:118
2644
+ #, php-format
2645
+ msgid "%s Settings"
2646
+ msgstr ""
2647
+
2648
+ #: ../inc/class-page-settings.php:120 ../inc/class-page-editjob.php:389
2649
+ msgid "General"
2650
+ msgstr ""
2651
+
2652
+ #: ../inc/class-page-settings.php:120
2653
+ msgid "Network"
2654
+ msgstr ""
2655
+
2656
+ #: ../inc/class-page-settings.php:120
2657
+ msgid "API Keys"
2658
+ msgstr ""
2659
+
2660
+ #: ../inc/class-page-settings.php:120
2661
+ msgid "Information"
2662
+ msgstr ""
2663
+
2664
+ #: ../inc/class-page-settings.php:137
2665
+ msgid "Display Settings"
2666
+ msgstr ""
2667
+
2668
+ #: ../inc/class-page-settings.php:138
2669
+ msgid "Do you want to see BackWPup in the WordPress admin bar?"
2670
+ msgstr ""
2671
+
2672
+ #: ../inc/class-page-settings.php:141
2673
+ msgid "Admin bar"
2674
+ msgstr ""
2675
+
2676
+ #: ../inc/class-page-settings.php:144
2677
+ msgid "Admin Bar"
2678
+ msgstr ""
2679
+
2680
+ #: ../inc/class-page-settings.php:149
2681
+ msgid "Show BackWPup links in admin bar."
2682
+ msgstr ""
2683
+
2684
+ #: ../inc/class-page-settings.php:154 ../inc/class-page-settings.php:157
2685
+ msgid "Folder sizes"
2686
+ msgstr ""
2687
+
2688
+ #: ../inc/class-page-settings.php:162
2689
+ msgid ""
2690
+ "Display folder sizes in the files tab when editing a job. (Might increase "
2691
+ "loading time of files tab.)"
2692
+ msgstr ""
2693
+
2694
+ #: ../inc/class-page-settings.php:167
2695
+ msgid "Security"
2696
+ msgstr ""
2697
+
2698
+ #: ../inc/class-page-settings.php:168
2699
+ msgid "Security option for BackWPup"
2700
+ msgstr ""
2701
+
2702
+ #: ../inc/class-page-settings.php:171 ../inc/class-page-settings.php:174
2703
+ msgid "Protect folders"
2704
+ msgstr ""
2705
+
2706
+ #: ../inc/class-page-settings.php:179
2707
+ msgid ""
2708
+ "Protect BackWPup folders ( Temp, Log and Backups ) with <code>."
2709
+ "htaccess</code> and <code>index.php</code>"
2710
+ msgstr ""
2711
+
2712
+ #: ../inc/class-page-settings.php:192
2713
+ msgid ""
2714
+ "Every time BackWPup runs a backup job, a log file is being generated. Choose "
2715
+ "where to store your log files and how many of them."
2716
+ msgstr ""
2717
+
2718
+ #: ../inc/class-page-settings.php:195
2719
+ msgid "Log file folder"
2720
+ msgstr ""
2721
+
2722
+ #: ../inc/class-page-settings.php:197
2723
+ msgid ""
2724
+ "You can use absolute or relative path! Relative path is relative to "
2725
+ "WP_CONTENT_DIR."
2726
+ msgstr ""
2727
+
2728
+ #: ../inc/class-page-settings.php:203
2729
+ msgid "Maximum number of log files in folder"
2730
+ msgstr ""
2731
+
2732
+ #: ../inc/class-page-settings.php:206
2733
+ msgid "Oldest files will be deleted first."
2734
+ msgstr ""
2735
+
2736
+ #: ../inc/class-page-settings.php:211 ../inc/class-page-settings.php:214
2737
+ msgid "Compression"
2738
+ msgstr ""
2739
+
2740
+ #: ../inc/class-page-settings.php:219
2741
+ msgid "Compress log files with GZip."
2742
+ msgstr ""
2743
+
2744
+ #: ../inc/class-page-settings.php:224 ../inc/class-page-settings.php:227
2745
+ msgid "Logging Level"
2746
+ msgstr ""
2747
+
2748
+ #: ../inc/class-page-settings.php:230
2749
+ msgid ""
2750
+ "Debug log has much more informations than normal logs. It is for support and "
2751
+ "should be handled carefully. For support is the best to use a not translated "
2752
+ "log file. Usage of not translated logs can reduce the PHP memory usage."
2753
+ msgstr ""
2754
+
2755
+ #: ../inc/class-page-settings.php:231
2756
+ msgid "Normal (translated)"
2757
+ msgstr ""
2758
+
2759
+ #: ../inc/class-page-settings.php:232
2760
+ msgid "Normal (not translated)"
2761
+ msgstr ""
2762
+
2763
+ #: ../inc/class-page-settings.php:233
2764
+ msgid "Debug (translated)"
2765
+ msgstr ""
2766
+
2767
+ #: ../inc/class-page-settings.php:234
2768
+ msgid "Debug (not translated)"
2769
+ msgstr ""
2770
+
2771
+ #: ../inc/class-page-settings.php:245
2772
+ msgid "There are a couple of general options for backup jobs. Set them here."
2773
+ msgstr ""
2774
+
2775
+ #: ../inc/class-page-settings.php:249
2776
+ msgid "Maximum number of retries for job steps"
2777
+ msgstr ""
2778
+
2779
+ #: ../inc/class-page-settings.php:257
2780
+ msgid "Maximum script execution time"
2781
+ msgstr ""
2782
+
2783
+ #: ../inc/class-page-settings.php:260
2784
+ msgid "Maximum PHP Script execution time"
2785
+ msgstr ""
2786
+
2787
+ #: ../inc/class-page-settings.php:263
2788
+ msgid ""
2789
+ "Job will restart before hitting maximum execution time. It will not work "
2790
+ "with CLI and not on every step during execution. If "
2791
+ "<code>ALTERNATE_WP_CRON</code> has been defined, WordPress Cron will be used."
2792
+ msgstr ""
2793
+
2794
+ #: ../inc/class-page-settings.php:265
2795
+ msgid "seconds. 0 = disabled."
2796
+ msgstr ""
2797
+
2798
+ #: ../inc/class-page-settings.php:271 ../inc/class-page-settings.php:274
2799
+ msgid "Method for creating ZIP-file archives"
2800
+ msgstr ""
2801
+
2802
+ #: ../inc/class-page-settings.php:277
2803
+ msgid ""
2804
+ "Auto = Uses PHP class ZipArchive if available; otherwise uses PclZip.<br "
2805
+ "/>ZipArchive = Uses less memory, but many open files at a time.<br />PclZip "
2806
+ "= Uses more memory, but only 2 open files at a time."
2807
+ msgstr ""
2808
+
2809
+ #: ../inc/class-page-settings.php:278
2810
+ msgid "Auto"
2811
+ msgstr ""
2812
+
2813
+ #: ../inc/class-page-settings.php:279
2814
+ msgid "ZipArchive"
2815
+ msgstr ""
2816
+
2817
+ #: ../inc/class-page-settings.php:280
2818
+ msgid "PclZip"
2819
+ msgstr ""
2820
+
2821
+ #: ../inc/class-page-settings.php:288
2822
+ msgid "Key to start jobs externally with an URL"
2823
+ msgstr ""
2824
+
2825
+ #: ../inc/class-page-settings.php:291
2826
+ msgid ""
2827
+ "empty = deactivated. Will be used to protect job starts from unauthorized "
2828
+ "person."
2829
+ msgstr ""
2830
+
2831
+ #: ../inc/class-page-settings.php:296 ../inc/class-page-settings.php:299
2832
+ msgid "Reduce server load"
2833
+ msgstr ""
2834
+
2835
+ #: ../inc/class-page-settings.php:302
2836
+ msgid ""
2837
+ "This adds short pauses to the process. Can be used to reduce the CPU load."
2838
+ "<br /> Disabled = off<br /> minimum = shortest sleep<br /> medium = middle "
2839
+ "between minimum and maximum<br /> maximum = longest sleep<br />"
2840
+ msgstr ""
2841
+
2842
+ #: ../inc/class-page-settings.php:303
2843
+ msgid "disabled"
2844
+ msgstr ""
2845
+
2846
+ #: ../inc/class-page-settings.php:304
2847
+ msgid "minimum"
2848
+ msgstr ""
2849
+
2850
+ #: ../inc/class-page-settings.php:305
2851
+ msgid "medium"
2852
+ msgstr ""
2853
+
2854
+ #: ../inc/class-page-settings.php:306
2855
+ msgid "maximum"
2856
+ msgstr ""
2857
+
2858
+ #: ../inc/class-page-settings.php:313
2859
+ msgid "Empty output on working"
2860
+ msgstr ""
2861
+
2862
+ #: ../inc/class-page-settings.php:316 ../inc/class-page-settings.php:321
2863
+ msgid "Enable an empty Output on backup working."
2864
+ msgstr ""
2865
+
2866
+ #: ../inc/class-page-settings.php:319
2867
+ msgid ""
2868
+ "This do an empty output on job working. This can help in some situations or "
2869
+ "can brake the working. You must test it."
2870
+ msgstr ""
2871
+
2872
+ #: ../inc/class-page-settings.php:332
2873
+ #, php-format
2874
+ msgid "Authentication for <code>%s</code>"
2875
+ msgstr ""
2876
+
2877
+ #: ../inc/class-page-settings.php:333
2878
+ msgid ""
2879
+ "If you protected your blog with HTTP basic authentication (.htaccess), or "
2880
+ "you use a Plugin to secure wp-cron.php, than use the authentication methods "
2881
+ "below."
2882
+ msgstr ""
2883
+
2884
+ #: ../inc/class-page-settings.php:339 ../inc/class-page-settings.php:342
2885
+ msgid "Authentication method"
2886
+ msgstr ""
2887
+
2888
+ #: ../inc/class-page-settings.php:346
2889
+ msgid "Basic auth"
2890
+ msgstr ""
2891
+
2892
+ #: ../inc/class-page-settings.php:347
2893
+ msgid "WordPress User"
2894
+ msgstr ""
2895
+
2896
+ #: ../inc/class-page-settings.php:348
2897
+ msgid "Query argument"
2898
+ msgstr ""
2899
+
2900
+ #: ../inc/class-page-settings.php:355
2901
+ msgid "Basic Auth Username:"
2902
+ msgstr ""
2903
+
2904
+ #: ../inc/class-page-settings.php:363
2905
+ msgid "Basic Auth Password:"
2906
+ msgstr ""
2907
+
2908
+ #: ../inc/class-page-settings.php:370 ../inc/class-page-settings.php:373
2909
+ msgid "Select WordPress User"
2910
+ msgstr ""
2911
+
2912
+ #: ../inc/class-page-settings.php:389
2913
+ msgid "Query arg key=value:"
2914
+ msgstr ""
2915
+
2916
+ #: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
2917
+ msgid "Setting"
2918
+ msgstr ""
2919
+
2920
+ #: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
2921
+ msgid "Value"
2922
+ msgstr ""
2923
+
2924
+ #: ../inc/class-page-settings.php:411
2925
+ msgid "WordPress version"
2926
+ msgstr ""
2927
+
2928
+ #: ../inc/class-page-settings.php:413
2929
+ msgid "BackWPup version"
2930
+ msgstr ""
2931
+
2932
+ #: ../inc/class-page-settings.php:413
2933
+ msgid "Get pro."
2934
+ msgstr ""
2935
+
2936
+ #: ../inc/class-page-settings.php:415
2937
+ msgid "BackWPup Pro version"
2938
+ msgstr ""
2939
+
2940
+ #: ../inc/class-page-settings.php:423
2941
+ msgid "PHP version"
2942
+ msgstr ""
2943
+
2944
+ #: ../inc/class-page-settings.php:424
2945
+ msgid "MySQL version"
2946
+ msgstr ""
2947
+
2948
+ #: ../inc/class-page-settings.php:427 ../inc/class-page-settings.php:431
2949
+ msgid "cURL version"
2950
+ msgstr ""
2951
+
2952
+ #: ../inc/class-page-settings.php:428
2953
+ msgid "cURL SSL version"
2954
+ msgstr ""
2955
+
2956
+ #: ../inc/class-page-settings.php:431
2957
+ msgid "unavailable"
2958
+ msgstr ""
2959
+
2960
+ #: ../inc/class-page-settings.php:433
2961
+ msgid "WP-Cron url:"
2962
+ msgstr ""
2963
+
2964
+ #: ../inc/class-page-settings.php:435
2965
+ msgid "Server self connect:"
2966
+ msgstr ""
2967
+
2968
+ #: ../inc/class-page-settings.php:444 ../inc/pro/class-wizard-systemtest.php:183
2969
+ #, php-format
2970
+ msgid "The BackWPup HTTP response header returns a false value: \"%s\""
2971
+ msgstr ""
2972
+
2973
+ #: ../inc/class-page-settings.php:447
2974
+ msgid "Response Test O.K."
2975
+ msgstr ""
2976
+
2977
+ #: ../inc/class-page-settings.php:452
2978
+ msgid "Temp folder:"
2979
+ msgstr ""
2980
+
2981
+ #: ../inc/class-page-settings.php:454
2982
+ #, php-format
2983
+ msgid "Temp folder %s doesn't exist."
2984
+ msgstr ""
2985
+
2986
+ #: ../inc/class-page-settings.php:456
2987
+ #, php-format
2988
+ msgid "Temporary folder %s is not writable."
2989
+ msgstr ""
2990
+
2991
+ #: ../inc/class-page-settings.php:462
2992
+ msgid "Log folder:"
2993
+ msgstr ""
2994
+
2995
+ #: ../inc/class-page-settings.php:464
2996
+ #, php-format
2997
+ msgid "Logs folder %s not exist."
2998
+ msgstr ""
2999
+
3000
+ #: ../inc/class-page-settings.php:466
3001
+ #, php-format
3002
+ msgid "Log folder %s is not writable."
3003
+ msgstr ""
3004
+
3005
+ #: ../inc/class-page-settings.php:471
3006
+ msgid "Server"
3007
+ msgstr ""
3008
+
3009
+ #: ../inc/class-page-settings.php:472
3010
+ msgid "Operating System"
3011
+ msgstr ""
3012
+
3013
+ #: ../inc/class-page-settings.php:473
3014
+ msgid "PHP SAPI"
3015
+ msgstr ""
3016
+
3017
+ #: ../inc/class-page-settings.php:474
3018
+ msgid "Current PHP user"
3019
+ msgstr ""
3020
+
3021
+ #: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:479 ..
3022
+ #: /inc/class-page-settings.php:483
3023
+ msgid "On"
3024
+ msgstr ""
3025
+
3026
+ #: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:481 ..
3027
+ #: /inc/class-page-settings.php:485
3028
+ msgid "Off"
3029
+ msgstr ""
3030
+
3031
+ #: ../inc/class-page-settings.php:476
3032
+ msgid "Safe Mode"
3033
+ msgstr ""
3034
+
3035
+ #: ../inc/class-page-settings.php:477
3036
+ msgid "Maximum execution time"
3037
+ msgstr ""
3038
+
3039
+ #: ../inc/class-page-settings.php:479 ../inc/class-page-settings.php:481
3040
+ msgid "Alternative WP Cron"
3041
+ msgstr ""
3042
+
3043
+ #: ../inc/class-page-settings.php:483 ../inc/class-page-settings.php:485
3044
+ msgid "Disabled WP Cron"
3045
+ msgstr ""
3046
+
3047
+ #: ../inc/class-page-settings.php:487 ../inc/class-page-settings.php:489
3048
+ msgid "CHMOD Dir"
3049
+ msgstr ""
3050
+
3051
+ #: ../inc/class-page-settings.php:491
3052
+ msgid "Server Time"
3053
+ msgstr ""
3054
+
3055
+ #: ../inc/class-page-settings.php:492
3056
+ msgid "Blog Time"
3057
+ msgstr ""
3058
+
3059
+ #: ../inc/class-page-settings.php:493
3060
+ msgid "Blog Timezone"
3061
+ msgstr ""
3062
+
3063
+ #: ../inc/class-page-settings.php:494
3064
+ msgid "Blog Time offset"
3065
+ msgstr ""
3066
+
3067
+ #: ../inc/class-page-settings.php:494
3068
+ #, php-format
3069
+ msgid "%s hours"
3070
+ msgstr ""
3071
+
3072
+ #: ../inc/class-page-settings.php:495
3073
+ msgid "Blog language"
3074
+ msgstr ""
3075
+
3076
+ #: ../inc/class-page-settings.php:496
3077
+ msgid "MySQL Client encoding"
3078
+ msgstr ""
3079
+
3080
+ #: ../inc/class-page-settings.php:499
3081
+ msgid "Blog charset"
3082
+ msgstr ""
3083
+
3084
+ #: ../inc/class-page-settings.php:500
3085
+ msgid "PHP Memory limit"
3086
+ msgstr ""
3087
+
3088
+ #: ../inc/class-page-settings.php:501
3089
+ msgid "WP memory limit"
3090
+ msgstr ""
3091
+
3092
+ #: ../inc/class-page-settings.php:502
3093
+ msgid "WP maximum memory limit"
3094
+ msgstr ""
3095
+
3096
+ #: ../inc/class-page-settings.php:503
3097
+ msgid "Memory in use"
3098
+ msgstr ""
3099
+
3100
+ #: ../inc/class-page-settings.php:508
3101
+ msgid "Disabled PHP Functions:"
3102
+ msgstr ""
3103
+
3104
+ #: ../inc/class-page-settings.php:513
3105
+ msgid "Loaded PHP Extensions:"
3106
+ msgstr ""
3107
+
3108
+ #: ../inc/class-page-settings.php:525
3109
+ msgid "Save Changes"
3110
+ msgstr ""
3111
+
3112
+ #: ../inc/class-page-settings.php:527
3113
+ msgid "Reset all settings to default"
3114
+ msgstr ""
3115
+
3116
+ #: ../inc/class-page-backups.php:182
3117
+ msgid "No files could be found. (List will be generated during next backup.)"
3118
+ msgstr ""
3119
+
3120
+ #: ../inc/class-page-backups.php:228
3121
+ msgid "Change destination"
3122
+ msgstr ""
3123
+
3124
+ #: ../inc/class-page-backups.php:268
3125
+ msgid "File"
3126
+ msgstr ""
3127
+
3128
+ #: ../inc/class-page-backups.php:313
3129
+ msgid ""
3130
+ "You are about to delete this backup archive. \n"
3131
+ " 'Cancel' to stop, 'OK' to delete."
3132
+ msgstr ""
3133
+
3134
+ #: ../inc/class-page-backups.php:346
3135
+ msgid "?"
3136
+ msgstr ""
3137
+
3138
+ #: ../inc/class-page-backups.php:438
3139
+ msgid "Backup Files"
3140
+ msgstr ""
3141
+
3142
+ #: ../inc/class-page-backups.php:486
3143
+ #, php-format
3144
+ msgid "%s Manage Backup Archives"
3145
+ msgstr ""
3146
+
3147
+ #: ../inc/class-jobtype-dbcheck.php:13
3148
+ msgid "DB Check"
3149
+ msgstr ""
3150
+
3151
+ #: ../inc/class-jobtype-dbcheck.php:14
3152
+ msgid "Check database tables"
3153
+ msgstr ""
3154
+
3155
+ #: ../inc/class-jobtype-dbcheck.php:35 ../inc/pro/class-jobtype-dbcheck.php:16
3156
+ msgid "Settings for database check"
3157
+ msgstr ""
3158
+
3159
+ #: ../inc/class-jobtype-dbcheck.php:39
3160
+ msgid "WordPress tables only"
3161
+ msgstr ""
3162
+
3163
+ #: ../inc/class-jobtype-dbcheck.php:44
3164
+ msgid "Check WordPress database tables only"
3165
+ msgstr ""
3166
+
3167
+ #: ../inc/class-jobtype-dbcheck.php:49
3168
+ msgid "Repair"
3169
+ msgstr ""
3170
+
3171
+ #: ../inc/class-jobtype-dbcheck.php:54 ../inc/pro/class-jobtype-dbcheck.php:25
3172
+ msgid "Try to repair defect table"
3173
+ msgstr ""
3174
+
3175
+ #: ../inc/class-jobtype-dbcheck.php:79
3176
+ #, php-format
3177
+ msgid "%d. Trying to check database&#160;&hellip;"
3178
+ msgstr ""
3179
+
3180
+ #: ../inc/class-jobtype-dbcheck.php:111
3181
+ #, php-format
3182
+ msgid "Table %1$s is a view. Not checked."
3183
+ msgstr ""
3184
+
3185
+ #: ../inc/class-jobtype-dbcheck.php:116
3186
+ #, php-format
3187
+ msgid "Table %1$s is not a MyISAM/InnoDB table. Not checked."
3188
+ msgstr ""
3189
+
3190
+ #: ../inc/class-jobtype-dbcheck.php:124 ../inc/class-jobtype-dbcheck.php:127 ..
3191
+ #: /inc/class-jobtype-dbcheck.php:129
3192
+ #, php-format
3193
+ msgid "Result of table check for %1$s is: %2$s"
3194
+ msgstr ""
3195
+
3196
+ #: ../inc/class-jobtype-dbcheck.php:135 ../inc/class-jobtype-dbcheck.php:137 ..
3197
+ #: /inc/class-jobtype-dbcheck.php:139
3198
+ #, php-format
3199
+ msgid "Result of table repair for %1$s is: %2$s"
3200
+ msgstr ""
3201
+
3202
+ #: ../inc/class-jobtype-dbcheck.php:145
3203
+ msgid "Database check done!"
3204
+ msgstr ""
3205
+
3206
+ #: ../inc/class-jobtype-dbcheck.php:148
3207
+ msgid "No tables to check."
3208
+ msgstr ""
3209
+
3210
+ #: ../inc/class-mysqldump.php:60
3211
+ msgid "No MySQLi extension found. Please install it."
3212
+ msgstr ""
3213
+
3214
+ #: ../inc/class-mysqldump.php:100 ../inc/pro/class-jobtype-dbdump.php:808
3215
+ msgid "Cannot init MySQLi database connection"
3216
+ msgstr ""
3217
+
3218
+ #: ../inc/class-mysqldump.php:105 ../inc/pro/class-jobtype-dbdump.php:814
3219
+ msgid "Setting of MySQLi connection timeout failed"
3220
+ msgstr ""
3221
+
3222
+ #: ../inc/class-mysqldump.php:110 ../inc/pro/class-jobtype-dbdump.php:820
3223
+ #, php-format
3224
+ msgid "Cannot connect to MySQL database %1$d: %2$s"
3225
+ msgstr ""
3226
+
3227
+ #: ../inc/class-mysqldump.php:117
3228
+ #, php-format
3229
+ msgctxt "Database Charset"
3230
+ msgid "Cannot set DB charset to %s error: %s"
3231
+ msgstr ""
3232
+
3233
+ #: ../inc/class-mysqldump.php:146
3234
+ msgid "Cannot open SQL backup file"
3235
+ msgstr ""
3236
+
3237
+ #: ../inc/class-mysqldump.php:153 ../inc/class-mysqldump.php:164 ../inc/class-
3238
+ #: mysqldump.php:257 ../inc/class-mysqldump.php:270 ../inc/class-mysqldump.php:
3239
+ #: 285 ../inc/class-mysqldump.php:298 ../inc/class-mysqldump.php:344 ../inc/class-
3240
+ #: mysqldump.php:368 ../inc/class-mysqldump.php:406 ../inc/class-mysqldump.php:
3241
+ #: 463 ../inc/pro/class-jobtype-dbdump.php:836 ../inc/pro/class-jobtype-dbdump.
3242
+ #: php:850 ../inc/pro/class-jobtype-dbdump.php:898 ../inc/pro/class-jobtype-
3243
+ #: dbdump.php:917 ../inc/pro/class-jobtype-dbdump.php:960
3244
+ #, php-format
3245
+ msgid "Database error %1$s for query %2$s"
3246
+ msgstr ""
3247
+
3248
+ #: ../inc/class-mysqldump.php:442
3249
+ #, php-format
3250
+ msgid "Start for table backup is not correctly set: %1$s "
3251
+ msgstr ""
3252
+
3253
+ #: ../inc/class-mysqldump.php:446
3254
+ #, php-format
3255
+ msgid "Length for table backup is not correctly set: %1$s "
3256
+ msgstr ""
3257
+
3258
+ #: ../inc/class-mysqldump.php:521
3259
+ msgid "Error while writing file!"
3260
+ msgstr ""
3261
+
3262
+ #: ../inc/class-job.php:176
3263
+ msgid "Starting job"
3264
+ msgstr ""
3265
+
3266
+ #: ../inc/class-job.php:193
3267
+ msgid "Job Start"
3268
+ msgstr ""
3269
+
3270
+ #: ../inc/class-job.php:213
3271
+ msgid "Creates manifest file"
3272
+ msgstr ""
3273
+
3274
+ #: ../inc/class-job.php:235
3275
+ msgid "Creates archive"
3276
+ msgstr ""
3277
+
3278
+ #: ../inc/class-job.php:274
3279
+ msgid "End of Job"
3280
+ msgstr ""
3281
+
3282
+ #: ../inc/class-job.php:291
3283
+ #, php-format
3284
+ msgid "BackWPup log for %1$s from %2$s at %3$s"
3285
+ msgstr ""
3286
+
3287
+ #: ../inc/class-job.php:310
3288
+ #, php-format
3289
+ msgctxt "Plugin name; Plugin Version; plugin url"
3290
+ msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
3291
+ msgstr ""
3292
+
3293
+ #: ../inc/class-job.php:312
3294
+ #, php-format
3295
+ msgctxt "WordPress Version; Blog url"
3296
+ msgid "[INFO] WordPress %1$s on %2$s"
3297
+ msgstr ""
3298
+
3299
+ #: ../inc/class-job.php:318
3300
+ #, php-format
3301
+ msgid "[INFO] BackWPup job: %1$s"
3302
+ msgstr ""
3303
+
3304
+ #: ../inc/class-job.php:321
3305
+ #, php-format
3306
+ msgid "[INFO] Runs with user: %1$s (%2$d) "
3307
+ msgstr ""
3308
+
3309
+ #: ../inc/class-job.php:339 ../inc/class-job.php:351
3310
+ #, php-format
3311
+ msgid "[INFO] Cron: %s; Next: %s "
3312
+ msgstr ""
3313
+
3314
+ #: ../inc/class-job.php:343
3315
+ msgid "[INFO] BackWPup job start with link is active"
3316
+ msgstr ""
3317
+
3318
+ #: ../inc/class-job.php:346
3319
+ msgid "[INFO] BackWPup job start with EasyCron.com"
3320
+ msgstr ""
3321
+
3322
+ #: ../inc/class-job.php:355
3323
+ msgid "[INFO] BackWPup no automatic job start configured"
3324
+ msgstr ""
3325
+
3326
+ #: ../inc/class-job.php:359
3327
+ msgid "[INFO] BackWPup job started from wp-cron"
3328
+ msgstr ""
3329
+
3330
+ #: ../inc/class-job.php:361
3331
+ msgid "[INFO] BackWPup job started manually"
3332
+ msgstr ""
3333
+
3334
+ #: ../inc/class-job.php:363
3335
+ msgid "[INFO] BackWPup job started from external url"
3336
+ msgstr ""
3337
+
3338
+ #: ../inc/class-job.php:365
3339
+ msgid "[INFO] BackWPup job started form commandline interface"
3340
+ msgstr ""
3341
+
3342
+ #: ../inc/class-job.php:374
3343
+ msgid "[INFO] PHP ver.:"
3344
+ msgstr ""
3345
+
3346
+ #: ../inc/class-job.php:375
3347
+ #, php-format
3348
+ msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
3349
+ msgstr ""
3350
+
3351
+ #: ../inc/class-job.php:379
3352
+ #, php-format
3353
+ msgid "[INFO] Script restart time is configured to %1$d seconds"
3354
+ msgstr ""
3355
+
3356
+ #: ../inc/class-job.php:382
3357
+ #, php-format
3358
+ msgid "[INFO] MySQL ver.: %s"
3359
+ msgstr ""
3360
+
3361
+ #: ../inc/class-job.php:384
3362
+ #, php-format
3363
+ msgid "[INFO] Web Server: %s"
3364
+ msgstr ""
3365
+
3366
+ #: ../inc/class-job.php:387
3367
+ #, php-format
3368
+ msgid "[INFO] curl ver.: %1$s; %2$s"
3369
+ msgstr ""
3370
+
3371
+ #: ../inc/class-job.php:389
3372
+ #, php-format
3373
+ msgid "[INFO] Temp folder is: %s"
3374
+ msgstr ""
3375
+
3376
+ #: ../inc/class-job.php:396
3377
+ #, php-format
3378
+ msgid "[INFO] Logfile is: %s"
3379
+ msgstr ""
3380
+
3381
+ #: ../inc/class-job.php:403
3382
+ #, php-format
3383
+ msgid "[INFO] Backup file is: %s"
3384
+ msgstr ""
3385
+
3386
+ #: ../inc/class-job.php:405
3387
+ #, php-format
3388
+ msgid "[INFO] Backup type is: %s"
3389
+ msgstr ""
3390
+
3391
+ #: ../inc/class-job.php:413
3392
+ msgid "Could not write log file"
3393
+ msgstr ""
3394
+
3395
+ #: ../inc/class-job.php:425
3396
+ msgid "No destination correctly defined for backup! Please correct job settings."
3397
+ msgstr ""
3398
+
3399
+ #: ../inc/class-job.php:647
3400
+ msgid "Wrong BackWPup JobID"
3401
+ msgstr ""
3402
+
3403
+ #: ../inc/class-job.php:660
3404
+ msgid "A BackWPup job is already running"
3405
+ msgstr ""
3406
+
3407
+ #: ../inc/class-job.php:752
3408
+ msgid "Job restarts due to inactivity for more than 5 minutes."
3409
+ msgstr ""
3410
+
3411
+ #: ../inc/class-job.php:879
3412
+ msgid "Step aborted: too many attempts!"
3413
+ msgstr ""
3414
+
3415
+ #: ../inc/class-job.php:970
3416
+ #, php-format
3417
+ msgid "Restart after %1$d seconds."
3418
+ msgstr ""
3419
+
3420
+ #: ../inc/class-job.php:1169
3421
+ #, php-format
3422
+ msgid "Signal \"%s\" is sent to script!"
3423
+ msgstr ""
3424
+
3425
+ #: ../inc/class-job.php:1184 ../inc/class-job.php:1197
3426
+ #, php-format
3427
+ msgid "System: %s"
3428
+ msgstr ""
3429
+
3430
+ #: ../inc/class-job.php:1212
3431
+ #, php-format
3432
+ msgid "Exception caught in %1$s: %2$s"
3433
+ msgstr ""
3434
+
3435
+ #: ../inc/class-job.php:1278
3436
+ msgid "DEPRECATED:"
3437
+ msgstr ""
3438
+
3439
+ #: ../inc/class-job.php:1281
3440
+ msgid "STRICT NOTICE:"
3441
+ msgstr ""
3442
+
3443
+ #: ../inc/class-job.php:1286
3444
+ msgid "RECOVERABLE ERROR:"
3445
+ msgstr ""
3446
+
3447
+ #: ../inc/class-job.php:1436
3448
+ msgid "Cannot write progress to working file. Job will be aborted."
3449
+ msgstr ""
3450
+
3451
+ #: ../inc/class-job.php:1454
3452
+ msgid "Aborted by user!"
3453
+ msgstr ""
3454
+
3455
+ #: ../inc/class-job.php:1481
3456
+ #, php-format
3457
+ msgid "One old log deleted"
3458
+ msgid_plural "%d old logs deleted"
3459
+ msgstr[0] ""
3460
+ msgstr[1] ""
3461
+
3462
+ #: ../inc/class-job.php:1489
3463
+ #, php-format
3464
+ msgid ""
3465
+ "Job finished with warnings in %s seconds. Please resolve them for correct "
3466
+ "execution."
3467
+ msgstr ""
3468
+
3469
+ #: ../inc/class-job.php:1536
3470
+ msgid "SUCCESSFUL"
3471
+ msgstr ""
3472
+
3473
+ #: ../inc/class-job.php:1539
3474
+ msgid "WARNING"
3475
+ msgstr ""
3476
+
3477
+ #: ../inc/class-job.php:1543
3478
+ msgid "ERROR"
3479
+ msgstr ""
3480
+
3481
+ #: ../inc/class-job.php:1547
3482
+ #, php-format
3483
+ msgid "[%3$s] BackWPup log %1$s: %2$s"
3484
+ msgstr ""
3485
+
3486
+ #: ../inc/class-job.php:1921
3487
+ #, php-format
3488
+ msgctxt "Folder name"
3489
+ msgid "Folder %s not exists"
3490
+ msgstr ""
3491
+
3492
+ #: ../inc/class-job.php:1926
3493
+ #, php-format
3494
+ msgctxt "Folder name"
3495
+ msgid "Folder %s not readable"
3496
+ msgstr ""
3497
+
3498
+ #: ../inc/class-job.php:1945
3499
+ #, php-format
3500
+ msgid "Link \"%s\" not following."
3501
+ msgstr ""
3502
+
3503
+ #: ../inc/class-job.php:1947
3504
+ #, php-format
3505
+ msgid "File \"%s\" is not readable!"
3506
+ msgstr ""
3507
+
3508
+ #: ../inc/class-job.php:1951
3509
+ #, php-format
3510
+ msgid ""
3511
+ "File size of “%s” cannot be retrieved. File might be too large and will not "
3512
+ "be added to queue."
3513
+ msgstr ""
3514
+
3515
+ #: ../inc/class-job.php:1971
3516
+ #, php-format
3517
+ msgid "%d. Trying to generate a manifest file&#160;&hellip;"
3518
+ msgstr ""
3519
+
3520
+ #: ../inc/class-job.php:2021
3521
+ msgid "You may have noticed the manifest.json file in this archive."
3522
+ msgstr ""
3523
+
3524
+ #: ../inc/class-job.php:2022
3525
+ msgid "manifest.json might be needed for later restoring a backup from this archive."
3526
+ msgstr ""
3527
+
3528
+ #: ../inc/class-job.php:2023
3529
+ msgid ""
3530
+ "Please leave manifest.json untouched and in place. Otherwise it is safe to "
3531
+ "be ignored."
3532
+ msgstr ""
3533
+
3534
+ #: ../inc/class-job.php:2033
3535
+ #, php-format
3536
+ msgid "Added manifest.json file with %1$s to backup file list."
3537
+ msgstr ""
3538
+
3539
+ #: ../inc/class-job.php:2063
3540
+ #, php-format
3541
+ msgid "%d. Trying to create backup archive &hellip;"
3542
+ msgstr ""
3543
+
3544
+ #: ../inc/class-job.php:2070
3545
+ #, php-format
3546
+ msgctxt "Archive compression method"
3547
+ msgid "Compressing files as %s. Please be patient, this may take a moment."
3548
+ msgstr ""
3549
+
3550
+ #: ../inc/class-job.php:2077
3551
+ msgid "Adding Extra files to Archive"
3552
+ msgstr ""
3553
+
3554
+ #: ../inc/class-job.php:2088 ../inc/class-job.php:2146
3555
+ msgid "Cannot create backup archive correctly. Aborting creation."
3556
+ msgstr ""
3557
+
3558
+ #: ../inc/class-job.php:2103
3559
+ #, php-format
3560
+ msgid "Archiving Folder: %s"
3561
+ msgstr ""
3562
+
3563
+ #: ../inc/class-job.php:2155
3564
+ msgid "Backup archive created."
3565
+ msgstr ""
3566
+
3567
+ #: ../inc/class-job.php:2168
3568
+ msgid ""
3569
+ "The Backup archive will be too large for file operations with this PHP "
3570
+ "Version. You might want to consider splitting the backup job in multiple "
3571
+ "jobs with less files each."
3572
+ msgstr ""
3573
+
3574
+ #: ../inc/class-job.php:2172
3575
+ #, php-format
3576
+ msgid "Archive size is %s."
3577
+ msgstr ""
3578
+
3579
+ #: ../inc/class-job.php:2175
3580
+ #, php-format
3581
+ msgid "%1$d Files with %2$s in Archive."
3582
+ msgstr ""
3583
+
3584
+ #: ../inc/class-install.php:83
3585
+ msgid "BackWPup Admin"
3586
+ msgstr ""
3587
+
3588
+ #: ../inc/class-install.php:97
3589
+ msgid "BackWPup jobs checker"
3590
+ msgstr ""
3591
+
3592
+ #: ../inc/class-install.php:111
3593
+ msgid "BackWPup jobs helper"
3594
+ msgstr ""
3595
+
3596
+ #: ../inc/class-jobtype-wpexp.php:13
3597
+ msgid "XML export"
3598
+ msgstr ""
3599
+
3600
+ #: ../inc/class-jobtype-wpexp.php:46
3601
+ msgid "Items to export"
3602
+ msgstr ""
3603
+
3604
+ #: ../inc/class-jobtype-wpexp.php:49 ../inc/pro/class-jobtype-wpexp.php:20
3605
+ msgid "All content"
3606
+ msgstr ""
3607
+
3608
+ #: ../inc/class-jobtype-wpexp.php:50 ../inc/pro/class-jobtype-wpexp.php:21
3609
+ msgid "Posts"
3610
+ msgstr ""
3611
+
3612
+ #: ../inc/class-jobtype-wpexp.php:51 ../inc/pro/class-jobtype-wpexp.php:22
3613
+ msgid "Pages"
3614
+ msgstr ""
3615
+
3616
+ #: ../inc/class-jobtype-wpexp.php:61
3617
+ msgid "XML Export file name"
3618
+ msgstr ""
3619
+
3620
+ #: ../inc/class-jobtype-wpexp.php:69 ../inc/class-jobtype-wpplugin.php:53
3621
+ msgid "File compression"
3622
+ msgstr ""
3623
+
3624
+ #: ../inc/class-jobtype-wpexp.php:79 ../inc/class-jobtype-wpexp.php:81 ..
3625
+ #: /inc/class-jobtype-wpplugin.php:63 ../inc/class-jobtype-wpplugin.php:65
3626
+ msgid "BZip2"
3627
+ msgstr ""
3628
+
3629
+ #: ../inc/class-jobtype-wpexp.php:111
3630
+ #, php-format
3631
+ msgid "%d. Trying to create a WordPress export to XML file&#160;&hellip;"
3632
+ msgstr ""
3633
+
3634
+ #: ../inc/class-jobtype-wpexp.php:126
3635
+ #, php-format
3636
+ msgid "WP Export: Post type “%s” does not allow export."
3637
+ msgstr ""
3638
+
3639
+ #: ../inc/class-jobtype-wpexp.php:171 ../inc/class-jobtype-wpexp.php:185 ..
3640
+ #: /inc/class-jobtype-wpexp.php:214 ../inc/class-jobtype-wpexp.php:235 ..
3641
+ #: /inc/class-jobtype-wpexp.php:268 ../inc/class-jobtype-wpexp.php:288 ..
3642
+ #: /inc/class-jobtype-wpexp.php:378 ../inc/class-jobtype-wpexp.php:387
3643
+ msgid "WP Export file could not written."
3644
+ msgstr ""
3645
+
3646
+ #: ../inc/class-jobtype-wpexp.php:402
3647
+ msgid "Check WP Export file&#160;&hellip;"
3648
+ msgstr ""
3649
+
3650
+ #: ../inc/class-jobtype-wpexp.php:422
3651
+ #, php-format
3652
+ msgid "XML WARNING (%s): %s"
3653
+ msgstr ""
3654
+
3655
+ #: ../inc/class-jobtype-wpexp.php:425
3656
+ #, php-format
3657
+ msgid "XML RECOVERABLE (%s): %s"
3658
+ msgstr ""
3659
+
3660
+ #: ../inc/class-jobtype-wpexp.php:428
3661
+ #, php-format
3662
+ msgid "XML ERROR (%s): %s"
3663
+ msgstr ""
3664
+
3665
+ #: ../inc/class-jobtype-wpexp.php:438
3666
+ msgid "There was an error when reading this WXR file"
3667
+ msgstr ""
3668
+
3669
+ #: ../inc/class-jobtype-wpexp.php:444 ../inc/class-jobtype-wpexp.php:451
3670
+ msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
3671
+ msgstr ""
3672
+
3673
+ #: ../inc/class-jobtype-wpexp.php:460
3674
+ msgid "WP Export file is a valid WXR file."
3675
+ msgstr ""
3676
+
3677
+ #: ../inc/class-jobtype-wpexp.php:462
3678
+ msgid ""
3679
+ "WP Export file can not be checked, because no XML extension is loaded, to "
3680
+ "ensure the file verification."
3681
+ msgstr ""
3682
+
3683
+ #: ../inc/class-jobtype-wpexp.php:474 ../inc/pro/class-jobtype-dbdump.php:718
3684
+ msgid "Compressing file&#160;&hellip;"
3685
+ msgstr ""
3686
+
3687
+ #: ../inc/class-jobtype-wpexp.php:481 ../inc/pro/class-jobtype-dbdump.php:725
3688
+ msgid "Compressing done."
3689
+ msgstr ""
3690
+
3691
+ #: ../inc/class-jobtype-wpexp.php:500
3692
+ #, php-format
3693
+ msgid "Added XML export \"%1$s\" with %2$s to backup file list."
3694
+ msgstr ""
3695
+
3696
+ #: ../inc/class-jobtype-wpplugin.php:13
3697
+ msgid "Plugins"
3698
+ msgstr ""
3699
+
3700
+ #: ../inc/class-jobtype-wpplugin.php:14
3701
+ msgid "Installed plugins list"
3702
+ msgstr ""
3703
+
3704
+ #: ../inc/class-jobtype-wpplugin.php:45
3705
+ msgid "Plugin list file name"
3706
+ msgstr ""
3707
+
3708
+ #: ../inc/class-jobtype-wpplugin.php:93
3709
+ #, php-format
3710
+ msgid "%d. Trying to generate a file with installed plugin names&#160;&hellip;"
3711
+ msgstr ""
3712
+
3713
+ #: ../inc/class-jobtype-wpplugin.php:121
3714
+ msgid "All plugin information:"
3715
+ msgstr ""
3716
+
3717
+ #: ../inc/class-jobtype-wpplugin.php:123
3718
+ #, php-format
3719
+ msgid "from %s"
3720
+ msgstr ""
3721
+
3722
+ #: ../inc/class-jobtype-wpplugin.php:125
3723
+ msgid "Active plugins:"
3724
+ msgstr ""
3725
+
3726
+ #: ../inc/class-jobtype-wpplugin.php:131
3727
+ msgid "Inactive plugins:"
3728
+ msgstr ""
3729
+
3730
+ #: ../inc/class-jobtype-wpplugin.php:138 ../inc/pro/class-jobtype-dbdump.php:775
3731
+ msgid "Can not open target file for writing."
3732
+ msgstr ""
3733
+
3734
+ #: ../inc/class-jobtype-wpplugin.php:145
3735
+ #, php-format
3736
+ msgid "Added plugin list file \"%1$s\" with %2$s to backup file list."
3737
+ msgstr ""
3738
+
3739
+ #: ../inc/class-page-editjob.php:87 ../inc/class-page-editjob.php:444 ..
3740
+ #: /inc/class-option.php:107
3741
+ msgid "New Job"
3742
+ msgstr ""
3743
+
3744
+ #: ../inc/class-page-editjob.php:88
3745
+ #, php-format
3746
+ msgid "Job with ID %d"
3747
+ msgstr ""
3748
+
3749
+ #: ../inc/class-page-editjob.php:194
3750
+ #, php-format
3751
+ msgid "Changes for job <i>%s</i> saved."
3752
+ msgstr ""
3753
+
3754
+ #: ../inc/class-page-editjob.php:195
3755
+ msgid "Jobs overview"
3756
+ msgstr ""
3757
+
3758
+ #: ../inc/class-page-editjob.php:332
3759
+ msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
3760
+ msgstr ""
3761
+
3762
+ #: ../inc/class-page-editjob.php:341
3763
+ #, php-format
3764
+ msgid "ATTENTION: Job runs every %d minutes!"
3765
+ msgstr ""
3766
+
3767
+ #: ../inc/class-page-editjob.php:347
3768
+ #, php-format
3769
+ msgid "ATTENTION: Job runs every %d hours!"
3770
+ msgstr ""
3771
+
3772
+ #: ../inc/class-page-editjob.php:351
3773
+ msgid "ATTENTION: Can't calculate cron!"
3774
+ msgstr ""
3775
+
3776
+ #: ../inc/class-page-editjob.php:354
3777
+ msgid "Next runtime:"
3778
+ msgstr ""
3779
+
3780
+ #: ../inc/class-page-editjob.php:386
3781
+ #, php-format
3782
+ msgid "%1$s Job: %2$s"
3783
+ msgstr ""
3784
+
3785
+ #: ../inc/class-page-editjob.php:389
3786
+ msgid "Schedule"
3787
+ msgstr ""
3788
+
3789
+ #: ../inc/class-page-editjob.php:404
3790
+ #, php-format
3791
+ msgid "To: %s"
3792
+ msgstr ""
3793
+
3794
+ #: ../inc/class-page-editjob.php:442
3795
+ msgid "Please name this job."
3796
+ msgstr ""
3797
+
3798
+ #: ../inc/class-page-editjob.php:450
3799
+ msgid "Job Tasks"
3800
+ msgstr ""
3801
+
3802
+ #: ../inc/class-page-editjob.php:454 ../inc/pro/class-wizard-job.php:235
3803
+ msgid "This job is a&#160;&hellip;"
3804
+ msgstr ""
3805
+
3806
+ #: ../inc/class-page-editjob.php:457 ../inc/pro/class-wizard-job.php:238
3807
+ msgid "Job tasks"
3808
+ msgstr ""
3809
+
3810
+ #: ../inc/class-page-editjob.php:475
3811
+ msgid "Backup File Creation"
3812
+ msgstr ""
3813
+
3814
+ #: ../inc/class-page-editjob.php:480 ../inc/class-page-editjob.php:483 ..
3815
+ #: /inc/pro/class-wizard-job.php:380 ../inc/pro/class-wizard-job.php:383
3816
+ msgid "Backup type"
3817
+ msgstr ""
3818
+
3819
+ #: ../inc/class-page-editjob.php:487
3820
+ msgid "Synchronize file by file to destination"
3821
+ msgstr ""
3822
+
3823
+ #: ../inc/class-page-editjob.php:491 ../inc/pro/class-wizard-job.php:391
3824
+ msgid "Create a backup archive"
3825
+ msgstr ""
3826
+
3827
+ #: ../inc/class-page-editjob.php:497
3828
+ msgid "Archive name"
3829
+ msgstr ""
3830
+
3831
+ #: ../inc/class-page-editjob.php:502
3832
+ msgid "Replacement patterns:"
3833
+ msgstr ""
3834
+
3835
+ #: ../inc/class-page-editjob.php:503
3836
+ #, php-format
3837
+ msgid "%d = Two digit day of the month, with leading zeros"
3838
+ msgstr ""
3839
+
3840
+ #: ../inc/class-page-editjob.php:504
3841
+ msgid "%j = Day of the month, without leading zeros"
3842
+ msgstr ""
3843
+
3844
+ #: ../inc/class-page-editjob.php:505
3845
+ msgid "%m = Day of the month, with leading zeros"
3846
+ msgstr ""
3847
+
3848
+ #: ../inc/class-page-editjob.php:506
3849
+ #, php-format
3850
+ msgid "%n = Representation of the month (without leading zeros)"
3851
+ msgstr ""
3852
+
3853
+ #: ../inc/class-page-editjob.php:507
3854
+ msgid "%Y = Four digit representation for the year"
3855
+ msgstr ""
3856
+
3857
+ #: ../inc/class-page-editjob.php:508
3858
+ msgid "%y = Two digit representation of the year"
3859
+ msgstr ""
3860
+
3861
+ #: ../inc/class-page-editjob.php:509
3862
+ #, php-format
3863
+ msgid "%a = Lowercase ante meridiem (am) and post meridiem (pm)"
3864
+ msgstr ""
3865
+
3866
+ #: ../inc/class-page-editjob.php:510
3867
+ #, php-format
3868
+ msgid "%A = Uppercase ante meridiem (AM) and post meridiem (PM)"
3869
+ msgstr ""
3870
+
3871
+ #: ../inc/class-page-editjob.php:511
3872
+ #, php-format
3873
+ msgid "%B = Swatch Internet Time"
3874
+ msgstr ""
3875
+
3876
+ #: ../inc/class-page-editjob.php:512
3877
+ #, php-format
3878
+ msgid "%g = Hour in 12-hour format, without leading zeros"
3879
+ msgstr ""
3880
+
3881
+ #: ../inc/class-page-editjob.php:513
3882
+ #, php-format
3883
+ msgid "%G = Hour in 24-hour format, without leading zeros"
3884
+ msgstr ""
3885
+
3886
+ #: ../inc/class-page-editjob.php:514
3887
+ msgid "%h = Hour in 12-hour format, with leading zeros"
3888
+ msgstr ""
3889
+
3890
+ #: ../inc/class-page-editjob.php:515
3891
+ msgid "%H = Hour in 24-hour format, with leading zeros"
3892
+ msgstr ""
3893
+
3894
+ #: ../inc/class-page-editjob.php:516
3895
+ #, php-format
3896
+ msgid "%i = Two digit representation of the minute"
3897
+ msgstr ""
3898
+
3899
+ #: ../inc/class-page-editjob.php:517
3900
+ #, php-format
3901
+ msgid "%s = Two digit representation of the second"
3902
+ msgstr ""
3903
+
3904
+ #: ../inc/class-page-editjob.php:529 ../inc/class-page-editjob.php:532
3905
+ msgid "Archive Format"
3906
+ msgstr ""
3907
+
3908
+ #: ../inc/class-page-editjob.php:535
3909
+ msgid ""
3910
+ "PHP Zip functions will be used if available (needs less memory). Otherwise "
3911
+ "the PCLZip class will be used."
3912
+ msgstr ""
3913
+
3914
+ #: ../inc/class-page-editjob.php:535 ../inc/class-page-editjob.php:537 ..
3915
+ #: /inc/pro/class-wizard-job.php:404 ../inc/pro/class-wizard-job.php:406
3916
+ msgid "Zip"
3917
+ msgstr ""
3918
+
3919
+ #: ../inc/class-page-editjob.php:537 ../inc/class-page-editjob.php:542 ..
3920
+ #: /inc/class-page-editjob.php:546
3921
+ msgid "Disabled due to missing PHP function."
3922
+ msgstr ""
3923
+
3924
+ #: ../inc/class-page-editjob.php:538
3925
+ msgid "A tarballed, not compressed archive (fast and less memory)"
3926
+ msgstr ""
3927
+
3928
+ #: ../inc/class-page-editjob.php:538 ../inc/pro/class-wizard-job.php:407
3929
+ msgid "Tar"
3930
+ msgstr ""
3931
+
3932
+ #: ../inc/class-page-editjob.php:540
3933
+ msgid "A tarballed, GZipped archive (fast and less memory)"
3934
+ msgstr ""
3935
+
3936
+ #: ../inc/class-page-editjob.php:540 ../inc/class-page-editjob.php:542 ..
3937
+ #: /inc/pro/class-wizard-job.php:409 ../inc/pro/class-wizard-job.php:411
3938
+ msgid "Tar GZip"
3939
+ msgstr ""
3940
+
3941
+ #: ../inc/class-page-editjob.php:544
3942
+ msgid "A tarballed, BZipped archive (fast and less memory)"
3943
+ msgstr ""
3944
+
3945
+ #: ../inc/class-page-editjob.php:544 ../inc/class-page-editjob.php:546 ..
3946
+ #: /inc/pro/class-wizard-job.php:413 ../inc/pro/class-wizard-job.php:415
3947
+ msgid "Tar BZip2"
3948
+ msgstr ""
3949
+
3950
+ #: ../inc/class-page-editjob.php:552
3951
+ msgid "Job Destination"
3952
+ msgstr ""
3953
+
3954
+ #: ../inc/class-page-editjob.php:556 ../inc/class-page-editjob.php:559
3955
+ msgid "Where should your backup file be stored?"
3956
+ msgstr ""
3957
+
3958
+ #: ../inc/class-page-editjob.php:580
3959
+ msgid "Log Files"
3960
+ msgstr ""
3961
+
3962
+ #: ../inc/class-page-editjob.php:584
3963
+ msgid "Send log to email address"
3964
+ msgstr ""
3965
+
3966
+ #: ../inc/class-page-editjob.php:588
3967
+ msgid ""
3968
+ "Leave empty to not have log sent. Or separate with , for more than one "
3969
+ "receiver."
3970
+ msgstr ""
3971
+
3972
+ #: ../inc/class-page-editjob.php:592
3973
+ msgid "Email FROM field"
3974
+ msgstr ""
3975
+
3976
+ #: ../inc/class-page-editjob.php:596
3977
+ msgid "Email \"From\" field (Name &lt;&#160;you@your-email-address.tld&#160;&gt;)"
3978
+ msgstr ""
3979
+
3980
+ #: ../inc/class-page-editjob.php:600
3981
+ msgid "Errors only"
3982
+ msgstr ""
3983
+
3984
+ #: ../inc/class-page-editjob.php:605
3985
+ msgid "Send email with log only when errors occur during job execution."
3986
+ msgstr ""
3987
+
3988
+ #: ../inc/class-page-editjob.php:616
3989
+ msgid "Job Schedule"
3990
+ msgstr ""
3991
+
3992
+ #: ../inc/class-page-editjob.php:620 ../inc/class-page-editjob.php:623
3993
+ msgid "Start job"
3994
+ msgstr ""
3995
+
3996
+ #: ../inc/class-page-editjob.php:627
3997
+ msgid "manually only"
3998
+ msgstr ""
3999
+
4000
+ #: ../inc/class-page-editjob.php:631
4001
+ msgid "with WordPress cron"
4002
+ msgstr ""
4003
+
4004
+ #: ../inc/class-page-editjob.php:642
4005
+ msgid "Use EasyCron.com Cron jobs."
4006
+ msgstr ""
4007
+
4008
+ #: ../inc/class-page-editjob.php:642
4009
+ msgid ""
4010
+ "with <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
4011
+ "title=\"Affiliate Link!\">EasyCron.com</a>"
4012
+ msgstr ""
4013
+
4014
+ #: ../inc/class-page-editjob.php:645
4015
+ #, php-format
4016
+ msgid ""
4017
+ "Setup <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
4018
+ "title=\"Affiliate Link!\">Account</a> / <a href=\"%s\">API Key</a> first."
4019
+ msgstr ""
4020
+
4021
+ #: ../inc/class-page-editjob.php:655
4022
+ msgid ""
4023
+ "Copy the link for an external start. This option has to be activated to make "
4024
+ "the link work."
4025
+ msgstr ""
4026
+
4027
+ #: ../inc/class-page-editjob.php:655
4028
+ msgid "with a link"
4029
+ msgstr ""
4030
+
4031
+ #: ../inc/class-page-editjob.php:661
4032
+ msgid "Start job with CLI"
4033
+ msgstr ""
4034
+
4035
+ #: ../inc/class-page-editjob.php:662
4036
+ msgid ""
4037
+ "Use WP-CLI commands to let the job start with the server’s cron on command "
4038
+ "line interface."
4039
+ msgstr ""
4040
+
4041
+ #: ../inc/class-page-editjob.php:664
4042
+ msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline."
4043
+ msgstr ""
4044
+
4045
+ #: ../inc/class-page-editjob.php:669
4046
+ msgid "Schedule execution time"
4047
+ msgstr ""
4048
+
4049
+ #: ../inc/class-page-editjob.php:673 ../inc/class-page-editjob.php:676
4050
+ msgid "Scheduler type"
4051
+ msgstr ""
4052
+
4053
+ #: ../inc/class-page-editjob.php:680
4054
+ msgid "basic"
4055
+ msgstr ""
4056
+
4057
+ #: ../inc/class-page-editjob.php:684
4058
+ msgid "advanced"
4059
+ msgstr ""
4060
+
4061
+ #: ../inc/class-page-editjob.php:713 ../inc/class-page-editjob.php:781 ..
4062
+ #: /inc/pro/class-wizard-job.php:298
4063
+ msgid "Scheduler"
4064
+ msgstr ""
4065
+
4066
+ #: ../inc/class-page-editjob.php:723 ../inc/pro/class-wizard-job.php:308
4067
+ msgid "Hour"
4068
+ msgstr ""
4069
+
4070
+ #: ../inc/class-page-editjob.php:726 ../inc/pro/class-wizard-job.php:311
4071
+ msgid "Minute"
4072
+ msgstr ""
4073
+
4074
+ #: ../inc/class-page-editjob.php:730 ../inc/pro/class-wizard-job.php:315
4075
+ msgid "monthly"
4076
+ msgstr ""
4077
+
4078
+ #: ../inc/class-page-editjob.php:732 ../inc/pro/class-wizard-job.php:317
4079
+ msgid "on"
4080
+ msgstr ""
4081
+
4082
+ #: ../inc/class-page-editjob.php:742 ../inc/pro/class-wizard-job.php:327
4083
+ msgid "weekly"
4084
+ msgstr ""
4085
+
4086
+ #: ../inc/class-page-editjob.php:744 ../inc/class-page-editjob.php:851 ..
4087
+ #: /inc/pro/class-wizard-job.php:329
4088
+ msgid "Sunday"
4089
+ msgstr ""
4090
+
4091
+ #: ../inc/class-page-editjob.php:745 ../inc/class-page-editjob.php:852 ..
4092
+ #: /inc/pro/class-wizard-job.php:330
4093
+ msgid "Monday"
4094
+ msgstr ""
4095
+
4096
+ #: ../inc/class-page-editjob.php:746 ../inc/class-page-editjob.php:853 ..
4097
+ #: /inc/pro/class-wizard-job.php:331
4098
+ msgid "Tuesday"
4099
+ msgstr ""
4100
+
4101
+ #: ../inc/class-page-editjob.php:747 ../inc/class-page-editjob.php:854 ..
4102
+ #: /inc/pro/class-wizard-job.php:332
4103
+ msgid "Wednesday"
4104
+ msgstr ""
4105
+
4106
+ #: ../inc/class-page-editjob.php:748 ../inc/class-page-editjob.php:855 ..
4107
+ #: /inc/pro/class-wizard-job.php:333
4108
+ msgid "Thursday"
4109
+ msgstr ""
4110
+
4111
+ #: ../inc/class-page-editjob.php:749 ../inc/class-page-editjob.php:856 ..
4112
+ #: /inc/pro/class-wizard-job.php:334
4113
+ msgid "Friday"
4114
+ msgstr ""
4115
+
4116
+ #: ../inc/class-page-editjob.php:750 ../inc/class-page-editjob.php:857 ..
4117
+ #: /inc/pro/class-wizard-job.php:335
4118
+ msgid "Saturday"
4119
+ msgstr ""
4120
+
4121
+ #: ../inc/class-page-editjob.php:760 ../inc/pro/class-wizard-job.php:345
4122
+ msgid "daily"
4123
+ msgstr ""
4124
+
4125
+ #: ../inc/class-page-editjob.php:770 ../inc/pro/class-wizard-job.php:355
4126
+ msgid "hourly"
4127
+ msgstr ""
4128
+
4129
+ #: ../inc/class-page-editjob.php:784
4130
+ msgid "Minutes:"
4131
+ msgstr ""
4132
+
4133
+ #: ../inc/class-page-editjob.php:786 ../inc/class-page-editjob.php:799 ..
4134
+ #: /inc/class-page-editjob.php:811 ../inc/class-page-editjob.php:825 ../inc/class-
4135
+ #: page-editjob.php:847
4136
+ msgid "Any (*)"
4137
+ msgstr ""
4138
+
4139
+ #: ../inc/class-page-editjob.php:796
4140
+ msgid "Hours:"
4141
+ msgstr ""
4142
+
4143
+ #: ../inc/class-page-editjob.php:809
4144
+ msgid "Day of Month:"
4145
+ msgstr ""
4146
+
4147
+ #: ../inc/class-page-editjob.php:823
4148
+ msgid "Month:"
4149
+ msgstr ""
4150
+
4151
+ #: ../inc/class-page-editjob.php:829
4152
+ msgid "January"
4153
+ msgstr ""
4154
+
4155
+ #: ../inc/class-page-editjob.php:830
4156
+ msgid "February"
4157
+ msgstr ""
4158
+
4159
+ #: ../inc/class-page-editjob.php:831
4160
+ msgid "March"
4161
+ msgstr ""
4162
+
4163
+ #: ../inc/class-page-editjob.php:832
4164
+ msgid "April"
4165
+ msgstr ""
4166
+
4167
+ #: ../inc/class-page-editjob.php:833
4168
+ msgid "May"
4169
+ msgstr ""
4170
+
4171
+ #: ../inc/class-page-editjob.php:834
4172
+ msgid "June"
4173
+ msgstr ""
4174
+
4175
+ #: ../inc/class-page-editjob.php:835
4176
+ msgid "July"
4177
+ msgstr ""
4178
+
4179
+ #: ../inc/class-page-editjob.php:836
4180
+ msgid "August"
4181
+ msgstr ""
4182
+
4183
+ #: ../inc/class-page-editjob.php:837
4184
+ msgid "September"
4185
+ msgstr ""
4186
+
4187
+ #: ../inc/class-page-editjob.php:838
4188
+ msgid "October"
4189
+ msgstr ""
4190
+
4191
+ #: ../inc/class-page-editjob.php:839
4192
+ msgid "November"
4193
+ msgstr ""
4194
+
4195
+ #: ../inc/class-page-editjob.php:840
4196
+ msgid "December"
4197
+ msgstr ""
4198
+
4199
+ #: ../inc/class-page-editjob.php:845
4200
+ msgid "Day of Week:"
4201
+ msgstr ""
4202
+
4203
+ #: ../inc/class-page-editjob.php:881
4204
+ msgid "Save changes"
4205
+ msgstr ""
4206
+
4207
+ #: ../inc/pro/class-destination-msazure.php:17
4208
+ msgid "Account Name:"
4209
+ msgstr ""
4210
+
4211
+ #: ../inc/pro/class-destination-msazure.php:19 ../inc/pro/class-destination-s3-v1.
4212
+ #: php:36 ../inc/pro/class-destination-s3.php:38 ../inc/pro/class-destination-
4213
+ #: glacier.php:165
4214
+ msgid "Access Key:"
4215
+ msgstr ""
4216
+
4217
+ #: ../inc/pro/class-destination-msazure.php:21 ../inc/pro/class-destination-rsc.
4218
+ #: php:38
4219
+ msgid "Container:"
4220
+ msgstr ""
4221
+
4222
+ #: ../inc/pro/class-destination-msazure.php:28 ../inc/pro/class-destination-rsc.
4223
+ #: php:47
4224
+ msgid "Create container:"
4225
+ msgstr ""
4226
+
4227
+ #: ../inc/pro/class-destination-msazure.php:30 ../inc/pro/class-destination-rsc.
4228
+ #: php:49
4229
+ msgid "Folder in container:"
4230
+ msgstr ""
4231
+
4232
+ #: ../inc/pro/class-destination-msazure.php:101
4233
+ #, php-format
4234
+ msgid "%d. Trying to sync files with Microsoft Azure (Blob) &hellip;"
4235
+ msgstr ""
4236
+
4237
+ #: ../inc/pro/class-destination-msazure.php:136
4238
+ msgid "Retrieving file list from MS Azure."
4239
+ msgstr ""
4240
+
4241
+ #: ../inc/pro/class-destination-msazure.php:152
4242
+ msgid "Upload changed files to MS Azure."
4243
+ msgstr ""
4244
+
4245
+ #: ../inc/pro/class-destination-msazure.php:164
4246
+ #, php-format
4247
+ msgid "File %s uploaded to MS Azure."
4248
+ msgstr ""
4249
+
4250
+ #: ../inc/pro/class-destination-msazure.php:190
4251
+ #, php-format
4252
+ msgid "Extra file %s uploaded to MS Azure."
4253
+ msgstr ""
4254
+
4255
+ #: ../inc/pro/class-destination-msazure.php:203
4256
+ msgid "Delete nonexistent files on MS Azure."
4257
+ msgstr ""
4258
+
4259
+ #: ../inc/pro/class-destination-msazure.php:206
4260
+ #, php-format
4261
+ msgid "File %s deleted from MS Azure."
4262
+ msgstr ""
4263
+
4264
+ #: ../inc/pro/class-wizard-systemtest.php:14
4265
+ msgid "System Test"
4266
+ msgstr ""
4267
+
4268
+ #: ../inc/pro/class-wizard-systemtest.php:15
4269
+ msgid "Wizard to test if BackWPup can work properly"
4270
+ msgstr ""
4271
+
4272
+ #: ../inc/pro/class-wizard-systemtest.php:32
4273
+ msgid "Run tests"
4274
+ msgstr ""
4275
+
4276
+ #: ../inc/pro/class-wizard-systemtest.php:45
4277
+ msgid "Environment"
4278
+ msgstr ""
4279
+
4280
+ #: ../inc/pro/class-wizard-systemtest.php:45
4281
+ msgid "System Environment"
4282
+ msgstr ""
4283
+
4284
+ #: ../inc/pro/class-wizard-systemtest.php:59
4285
+ msgid "Test if BackWPup can work without problems."
4286
+ msgstr ""
4287
+
4288
+ #: ../inc/pro/class-wizard-systemtest.php:99
4289
+ #, php-format
4290
+ msgid ""
4291
+ "You must run WordPress version 3.4 or higher to use this plugin. You are "
4292
+ "using version %s now."
4293
+ msgstr ""
4294
+
4295
+ #: ../inc/pro/class-wizard-systemtest.php:104
4296
+ #, php-format
4297
+ msgid ""
4298
+ "You must run PHP version 5.2.6 or higher to use this plugin. You are using "
4299
+ "version %s now."
4300
+ msgstr ""
4301
+
4302
+ #: ../inc/pro/class-wizard-systemtest.php:108
4303
+ #, php-format
4304
+ msgid ""
4305
+ "We recommend to run a PHP version above 5.3.2 to get the full plugin "
4306
+ "functionality. You are using version %s now."
4307
+ msgstr ""
4308
+
4309
+ #: ../inc/pro/class-wizard-systemtest.php:113
4310
+ #, php-format
4311
+ msgid ""
4312
+ "You must have the MySQLi extension installed and a MySQL server version of 5."
4313
+ "0.7 or higher to use this plugin. You are using version %s now."
4314
+ msgstr ""
4315
+
4316
+ #: ../inc/pro/class-wizard-systemtest.php:118
4317
+ msgid "PHP cURL extension must be installed to use the full plugin functionality."
4318
+ msgstr ""
4319
+
4320
+ #: ../inc/pro/class-wizard-systemtest.php:122
4321
+ #, php-format
4322
+ msgctxt "%1 = extension name, %2 = file suffix"
4323
+ msgid "We recommend to install the %1$s extension to generate %2$s archives."
4324
+ msgstr ""
4325
+
4326
+ #: ../inc/pro/class-wizard-systemtest.php:146
4327
+ #, php-format
4328
+ msgctxt "Link to PHP manual"
4329
+ msgid "Please disable the deprecated <a href=\"%s\">PHP safe mode</a>."
4330
+ msgstr ""
4331
+
4332
+ #: ../inc/pro/class-wizard-systemtest.php:154
4333
+ msgid ""
4334
+ "We recommend to install the PHP FTP extension to use the FTP backup "
4335
+ "destination."
4336
+ msgstr ""
4337
+
4338
+ #: ../inc/pro/class-wizard-systemtest.php:174
4339
+ #, php-format
4340
+ msgid "The HTTP response test result is an error: \"%s\"."
4341
+ msgstr ""
4342
+
4343
+ #: ../inc/pro/class-wizard-systemtest.php:178
4344
+ #, php-format
4345
+ msgid ""
4346
+ "The HTTP response test result is a wrong HTTP status: %s. It should be "
4347
+ "status 200."
4348
+ msgstr ""
4349
+
4350
+ #: ../inc/pro/class-wizard-systemtest.php:196
4351
+ msgid "WP-Cron seems to be broken. But it is needed to run scheduled jobs."
4352
+ msgstr ""
4353
+
4354
+ #: ../inc/pro/class-wizard-systemtest.php:201
4355
+ msgid "All tests passed without errors."
4356
+ msgstr ""
4357
+
4358
+ #: ../inc/pro/class-wizard-systemtest.php:204
4359
+ msgid ""
4360
+ "There is no error, but some warnings. BackWPup will work, but with "
4361
+ "limitations."
4362
+ msgstr ""
4363
+
4364
+ #: ../inc/pro/class-wizard-systemtest.php:207
4365
+ msgid "There are errors. Please correct them, or BackWPup cannot work."
4366
+ msgstr ""
4367
+
4368
+ #: ../inc/pro/class-jobtype-dbdump.php:89
4369
+ msgid "Backup only WordPress Database tables"
4370
+ msgstr ""
4371
+
4372
+ #: ../inc/pro/class-jobtype-dbdump.php:109
4373
+ msgid "Database connection"
4374
+ msgstr ""
4375
+
4376
+ #: ../inc/pro/class-jobtype-dbdump.php:113
4377
+ msgid "Use WordPress database connection."
4378
+ msgstr ""
4379
+
4380
+ #: ../inc/pro/class-jobtype-dbdump.php:117
4381
+ msgid "Host:"
4382
+ msgstr ""
4383
+
4384
+ #: ../inc/pro/class-jobtype-dbdump.php:120
4385
+ msgid "User:"
4386
+ msgstr ""
4387
+
4388
+ #: ../inc/pro/class-jobtype-dbdump.php:127
4389
+ msgid "Charset:"
4390
+ msgstr ""
4391
+
4392
+ #: ../inc/pro/class-jobtype-dbdump.php:138
4393
+ msgid "Database:"
4394
+ msgstr ""
4395
+
4396
+ #: ../inc/pro/class-jobtype-dbdump.php:166
4397
+ msgid "Database Backup type"
4398
+ msgstr ""
4399
+
4400
+ #: ../inc/pro/class-jobtype-dbdump.php:170
4401
+ msgid "SQL File (with mysqli)"
4402
+ msgstr ""
4403
+
4404
+ #: ../inc/pro/class-jobtype-dbdump.php:171
4405
+ msgid "SQL File (with mysqldump)"
4406
+ msgstr ""
4407
+
4408
+ #: ../inc/pro/class-jobtype-dbdump.php:172
4409
+ msgid "XML File (phpMyAdmin schema)"
4410
+ msgstr ""
4411
+
4412
+ #: ../inc/pro/class-jobtype-dbdump.php:178
4413
+ msgid "Path to <em>mysqldump</em> file"
4414
+ msgstr ""
4415
+
4416
+ #: ../inc/pro/class-jobtype-dbdump.php:180
4417
+ msgid ""
4418
+ "Path to mysqldump file, so a backup can be made with it. If it is correct "
4419
+ "and <em>shell_exec</em> is active, the backup will be generated with a "
4420
+ "system command. If <em>shell_exec</em> ist not active, this is disabled"
4421
+ msgstr ""
4422
+
4423
+ #: ../inc/pro/class-jobtype-dbdump.php:560
4424
+ #, php-format
4425
+ msgid "Added database backup \"%1$s\" with %2$s to backup file list"
4426
+ msgstr ""
4427
+
4428
+ #: ../inc/pro/class-jobtype-dbdump.php:581
4429
+ #, php-format
4430
+ msgid "%d. Try to backup MySQL system&#160;&hellip;"
4431
+ msgstr ""
4432
+
4433
+ #: ../inc/pro/class-jobtype-dbdump.php:588
4434
+ msgid "Executing of system commands not allowed. Please use backup with mysqli."
4435
+ msgstr ""
4436
+
4437
+ #: ../inc/pro/class-jobtype-dbdump.php:593
4438
+ #, php-format
4439
+ msgid "%s file not in open basedir of PHP."
4440
+ msgstr ""
4441
+
4442
+ #: ../inc/pro/class-jobtype-dbdump.php:598
4443
+ #, php-format
4444
+ msgid "%s file not found. Please correct the path for the mysqldump file."
4445
+ msgstr ""
4446
+
4447
+ #: ../inc/pro/class-jobtype-dbdump.php:678
4448
+ #, php-format
4449
+ msgctxt "Executed exec() command"
4450
+ msgid "CLI Exec: %s"
4451
+ msgstr ""
4452
+
4453
+ #: ../inc/pro/class-jobtype-dbdump.php:689
4454
+ msgid "Usage error."
4455
+ msgstr ""
4456
+
4457
+ #: ../inc/pro/class-jobtype-dbdump.php:690
4458
+ msgid ""
4459
+ "MySQL Server Error. This could be an issue with permissions. Try using "
4460
+ "database backup with mysqli."
4461
+ msgstr ""
4462
+
4463
+ #: ../inc/pro/class-jobtype-dbdump.php:691
4464
+ msgid "Error during consistency checks."
4465
+ msgstr ""
4466
+
4467
+ #: ../inc/pro/class-jobtype-dbdump.php:692
4468
+ msgid "Not enough memory."
4469
+ msgstr ""
4470
+
4471
+ #: ../inc/pro/class-jobtype-dbdump.php:693
4472
+ msgid "Error during writing of SQL backup file."
4473
+ msgstr ""
4474
+
4475
+ #: ../inc/pro/class-jobtype-dbdump.php:694
4476
+ msgid "Illegal table"
4477
+ msgstr ""
4478
+
4479
+ #: ../inc/pro/class-jobtype-dbdump.php:699
4480
+ #, php-format
4481
+ msgid "mysqldump returned: (%d) %s"
4482
+ msgstr ""
4483
+
4484
+ #: ../inc/pro/class-jobtype-dbdump.php:712
4485
+ msgid "Can not create mysql backup with mysqldump command"
4486
+ msgstr ""
4487
+
4488
+ #: ../inc/pro/class-jobtype-dbdump.php:758
4489
+ #, php-format
4490
+ msgid "%d. Try to backup database as XML&#160;&hellip;"
4491
+ msgstr ""
4492
+
4493
+ #: ../inc/pro/class-jobtype-dbdump.php:828
4494
+ #, php-format
4495
+ msgctxt "Database Charset"
4496
+ msgid "Cannot set DB charset to %s"
4497
+ msgstr ""
4498
+
4499
+ #: ../inc/pro/class-jobtype-dbdump.php:857
4500
+ msgid "No tables for XML backup"
4501
+ msgstr ""
4502
+
4503
+ #: ../inc/pro/class-jobtype-dbdump.php:893
4504
+ #, php-format
4505
+ msgid "Dump database create view \"%s\""
4506
+ msgstr ""
4507
+
4508
+ #: ../inc/pro/class-jobtype-dbdump.php:911
4509
+ #, php-format
4510
+ msgid "Backup database structure \"%s\" to XML"
4511
+ msgstr ""
4512
+
4513
+ #: ../inc/pro/class-jobtype-dbdump.php:953
4514
+ #, php-format
4515
+ msgid "Backup table \"%s\" data to XML"
4516
+ msgstr ""
4517
+
4518
+ #: ../inc/pro/class-jobtype-dbdump.php:1021
4519
+ #, php-format
4520
+ msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
4521
+ msgstr ""
4522
+
4523
+ #: ../inc/pro/class-jobtype-dbdump.php:1024
4524
+ msgid "Database XML backup done!"
4525
+ msgstr ""
4526
+
4527
+ #: ../inc/pro/class-export-jobs.php:12 ../inc/pro/class-export-jobs.php:23
4528
+ msgid "Export"
4529
+ msgstr ""
4530
+
4531
+ #: ../inc/pro/class-jobtype-file.php:19
4532
+ msgid "Backup WordPress main files"
4533
+ msgstr ""
4534
+
4535
+ #: ../inc/pro/class-jobtype-file.php:23
4536
+ msgid "Backup blog content folder"
4537
+ msgstr ""
4538
+
4539
+ #: ../inc/pro/class-jobtype-file.php:27
4540
+ msgid "Backup blog plugins"
4541
+ msgstr ""
4542
+
4543
+ #: ../inc/pro/class-jobtype-file.php:31
4544
+ msgid "Backup blog themes"
4545
+ msgstr ""
4546
+
4547
+ #: ../inc/pro/class-jobtype-file.php:35
4548
+ msgid "Backup blog uploads folder"
4549
+ msgstr ""
4550
+
4551
+ #: ../inc/pro/class-settings-apikeys.php:42
4552
+ msgid "Hash key"
4553
+ msgstr ""
4554
+
4555
+ #: ../inc/pro/class-settings-apikeys.php:43
4556
+ msgid ""
4557
+ "Hash Key for BackWPup. It will be used to have hashes in folder and file "
4558
+ "names. It must at least 6 chars long."
4559
+ msgstr ""
4560
+
4561
+ #: ../inc/pro/class-settings-apikeys.php:46
4562
+ msgid "Hash key:"
4563
+ msgstr ""
4564
+
4565
+ #: ../inc/pro/class-settings-apikeys.php:59
4566
+ msgid "Dropbox API Keys"
4567
+ msgstr ""
4568
+
4569
+ #: ../inc/pro/class-settings-apikeys.php:60
4570
+ msgid ""
4571
+ "If you want to set your own Dropbox API Keys, you can do it here. Leave "
4572
+ "empty for default."
4573
+ msgstr ""
4574
+
4575
+ #: ../inc/pro/class-settings-apikeys.php:63
4576
+ msgid "Full Dropbox App key:"
4577
+ msgstr ""
4578
+
4579
+ #: ../inc/pro/class-settings-apikeys.php:71
4580
+ msgid "Full Dropbox App secret:"
4581
+ msgstr ""
4582
+
4583
+ #: ../inc/pro/class-settings-apikeys.php:79
4584
+ msgid "Sandbox App key:"
4585
+ msgstr ""
4586
+
4587
+ #: ../inc/pro/class-settings-apikeys.php:87
4588
+ msgid "Sandbox App secret:"
4589
+ msgstr ""
4590
+
4591
+ #: ../inc/pro/class-settings-apikeys.php:100
4592
+ msgid "SugarSync API Keys"
4593
+ msgstr ""
4594
+
4595
+ #: ../inc/pro/class-settings-apikeys.php:101
4596
+ msgid ""
4597
+ "If you want to set your own SugarSync API keys you can do that here. Leave "
4598
+ "empty for default."
4599
+ msgstr ""
4600
+
4601
+ #: ../inc/pro/class-settings-apikeys.php:104
4602
+ msgid "Access Key ID:"
4603
+ msgstr ""
4604
+
4605
+ #: ../inc/pro/class-settings-apikeys.php:112
4606
+ msgid "Private Access Key:"
4607
+ msgstr ""
4608
+
4609
+ #: ../inc/pro/class-settings-apikeys.php:119
4610
+ msgid "App ID:"
4611
+ msgstr ""
4612
+
4613
+ #: ../inc/pro/class-settings-apikeys.php:132
4614
+ msgid "Google API Keys"
4615
+ msgstr ""
4616
+
4617
+ #: ../inc/pro/class-settings-apikeys.php:136
4618
+ msgid "Client ID:"
4619
+ msgstr ""
4620
+
4621
+ #: ../inc/pro/class-settings-apikeys.php:144
4622
+ msgid "Client secret:"
4623
+ msgstr ""
4624
+
4625
+ #: ../inc/pro/class-settings-apikeys.php:151
4626
+ msgid "Redirect URIs:"
4627
+ msgstr ""
4628
+
4629
+ #: ../inc/pro/class-settings-apikeys.php:155
4630
+ msgid "Add this URI in a new line to the field."
4631
+ msgstr ""
4632
+
4633
+ #: ../inc/pro/class-wizard-jobimport.php:14
4634
+ msgid "XML job import"
4635
+ msgstr ""
4636
+
4637
+ #: ../inc/pro/class-wizard-jobimport.php:15
4638
+ msgid "Wizard for importing BackWPup jobs from an XML file"
4639
+ msgstr ""
4640
+
4641
+ #: ../inc/pro/class-wizard-jobimport.php:32 ../inc/pro/class-wizard-jobimport.php:
4642
+ #: 98
4643
+ msgid "Import"
4644
+ msgstr ""
4645
+
4646
+ #: ../inc/pro/class-wizard-jobimport.php:45
4647
+ msgid "Import File"
4648
+ msgstr ""
4649
+
4650
+ #: ../inc/pro/class-wizard-jobimport.php:45
4651
+ msgid "Upload XML job file for import"
4652
+ msgstr ""
4653
+
4654
+ #: ../inc/pro/class-wizard-jobimport.php:46
4655
+ msgid "Select items to import"
4656
+ msgstr ""
4657
+
4658
+ #: ../inc/pro/class-wizard-jobimport.php:46
4659
+ msgid "Select which job should be imported or overwritten."
4660
+ msgstr ""
4661
+
4662
+ #: ../inc/pro/class-wizard-jobimport.php:67
4663
+ msgid ""
4664
+ "Please upload your BackWPup job XML export file and we&#8217;ll import the "
4665
+ "jobs into BackWPup."
4666
+ msgstr ""
4667
+
4668
+ #: ../inc/pro/class-wizard-jobimport.php:69
4669
+ msgid "Choose a file from your computer:"
4670
+ msgstr ""
4671
+
4672
+ #: ../inc/pro/class-wizard-jobimport.php:69
4673
+ #, php-format
4674
+ msgid "Maximum size: %s"
4675
+ msgstr ""
4676
+
4677
+ #: ../inc/pro/class-wizard-jobimport.php:91
4678
+ msgid "Import Jobs"
4679
+ msgstr ""
4680
+
4681
+ #: ../inc/pro/class-wizard-jobimport.php:94
4682
+ msgid "Import Type"
4683
+ msgstr ""
4684
+
4685
+ #: ../inc/pro/class-wizard-jobimport.php:94
4686
+ msgid "No Import"
4687
+ msgstr ""
4688
+
4689
+ #: ../inc/pro/class-wizard-jobimport.php:96
4690
+ msgid "Overwrite"
4691
+ msgstr ""
4692
+
4693
+ #: ../inc/pro/class-wizard-jobimport.php:96
4694
+ msgid "Append"
4695
+ msgstr ""
4696
+
4697
+ #: ../inc/pro/class-wizard-jobimport.php:110
4698
+ msgid "Import Config"
4699
+ msgstr ""
4700
+
4701
+ #: ../inc/pro/class-wizard-jobimport.php:113
4702
+ msgid "Import BackWPup configuration"
4703
+ msgstr ""
4704
+
4705
+ #: ../inc/pro/class-wizard-jobimport.php:138
4706
+ msgid ""
4707
+ "File is empty. Please upload something more substantial. This error could "
4708
+ "also caused by uploads being disabled in your php.ini or by post_max_size "
4709
+ "being defined as smaller than upload_max_filesize in php.ini."
4710
+ msgstr ""
4711
+
4712
+ #: ../inc/pro/class-wizard-jobimport.php:153
4713
+ #, php-format
4714
+ msgid ""
4715
+ "The export file could not be found at <code>%s</code>. This is likely due to "
4716
+ "an issue with permissions."
4717
+ msgstr ""
4718
+
4719
+ #: ../inc/pro/class-wizard-jobimport.php:160
4720
+ msgid "Sorry, there has been a phrase error."
4721
+ msgstr ""
4722
+
4723
+ #: ../inc/pro/class-wizard-jobimport.php:167
4724
+ #, php-format
4725
+ msgid ""
4726
+ "This Export file (version %s) may not be supported by this version of the "
4727
+ "importer."
4728
+ msgstr ""
4729
+
4730
+ #: ../inc/pro/class-wizard-jobimport.php:173
4731
+ msgid "This is not a BackWPup XML file"
4732
+ msgstr ""
4733
+
4734
+ #: ../inc/pro/class-wizard-jobimport.php:236
4735
+ #, php-format
4736
+ msgid "Job %1$s with id %2$d imported"
4737
+ msgstr ""
4738
+
4739
+ #: ../inc/pro/class-wizard-jobimport.php:244
4740
+ msgid "BackWPup config imported"
4741
+ msgstr ""
4742
+
4743
+ #: ../inc/pro/class-destination-s3-v1.php:17 ../inc/pro/class-destination-s3.php:17
4744
+ msgid "Select a S3 service:"
4745
+ msgstr ""
4746
+
4747
+ #: ../inc/pro/class-destination-s3-v1.php:29
4748
+ msgid "Hosteurope Cloud Storage"
4749
+ msgstr ""
4750
+
4751
+ #: ../inc/pro/class-destination-s3-v1.php:33 ../inc/pro/class-destination-s3.php:35
4752
+ msgid "or set an S3 Server URL:"
4753
+ msgstr ""
4754
+
4755
+ #: ../inc/pro/class-destination-s3-v1.php:39 ../inc/pro/class-destination-s3.php:
4756
+ #: 41 ../inc/pro/class-destination-glacier.php:167
4757
+ msgid "Secret Key:"
4758
+ msgstr ""
4759
+
4760
+ #: ../inc/pro/class-destination-s3-v1.php:42 ../inc/pro/class-destination-s3.php:44
4761
+ msgid "Bucket:"
4762
+ msgstr ""
4763
+
4764
+ #: ../inc/pro/class-destination-s3-v1.php:52 ../inc/pro/class-destination-s3.php:54
4765
+ msgid "New Bucket:"
4766
+ msgstr ""
4767
+
4768
+ #: ../inc/pro/class-destination-s3-v1.php:54 ../inc/pro/class-destination-s3.php:56
4769
+ msgid "Folder in bucket:"
4770
+ msgstr ""
4771
+
4772
+ #: ../inc/pro/class-destination-s3-v1.php:134 ../inc/pro/class-destination-s3.php:
4773
+ #: 135
4774
+ #, php-format
4775
+ msgid "Bucket %1$s created in %2$s."
4776
+ msgstr ""
4777
+
4778
+ #: ../inc/pro/class-destination-s3-v1.php:157 ../inc/pro/class-destination-s3.php:
4779
+ #: 159
4780
+ #, php-format
4781
+ msgid "%d. Trying to sync files to S3 Service&#160;&hellip;"
4782
+ msgstr ""
4783
+
4784
+ #: ../inc/pro/class-destination-s3-v1.php:196 ../inc/pro/class-destination-s3.php:
4785
+ #: 193
4786
+ msgid "Retrieving file list from S3."
4787
+ msgstr ""
4788
+
4789
+ #: ../inc/pro/class-destination-s3-v1.php:252 ../inc/pro/class-destination-s3.php:
4790
+ #: 255
4791
+ msgid "Upload changed files to S3."
4792
+ msgstr ""
4793
+
4794
+ #: ../inc/pro/class-destination-s3-v1.php:264 ../inc/pro/class-destination-s3.php:
4795
+ #: 270
4796
+ #, php-format
4797
+ msgid "File %s uploaded to S3."
4798
+ msgstr ""
4799
+
4800
+ #: ../inc/pro/class-destination-s3-v1.php:289 ../inc/pro/class-destination-s3.php:
4801
+ #: 298
4802
+ #, php-format
4803
+ msgid "Extra file %s uploaded to S3."
4804
+ msgstr ""
4805
+
4806
+ #: ../inc/pro/class-destination-s3-v1.php:302 ../inc/pro/class-destination-s3.php:
4807
+ #: 311
4808
+ msgid "Delete nonexistent files on S3"
4809
+ msgstr ""
4810
+
4811
+ #: ../inc/pro/class-destination-s3-v1.php:305 ../inc/pro/class-destination-s3.php:
4812
+ #: 318
4813
+ #, php-format
4814
+ msgid "File %s deleted from S3."
4815
+ msgstr ""
4816
+
4817
+ #: ../inc/pro/class-destination-sugarsync.php:25 ../inc/pro/class-destination-
4818
+ #: sugarsync.php:85
4819
+ msgid "Sugarsync authenticate!"
4820
+ msgstr ""
4821
+
4822
+ #: ../inc/pro/class-destination-sugarsync.php:31 ../inc/pro/class-destination-
4823
+ #: dropbox.php:34 ../inc/pro/class-destination-gdrive.php:270 ../inc/pro/class-
4824
+ #: destination-gdrive.php:276
4825
+ msgid "Login:"
4826
+ msgstr ""
4827
+
4828
+ #: ../inc/pro/class-destination-sugarsync.php:36
4829
+ msgid "Root:"
4830
+ msgstr ""
4831
+
4832
+ #: ../inc/pro/class-destination-sugarsync.php:58 ../inc/pro/class-destination-
4833
+ #: dropbox.php:38 ../inc/pro/class-destination-gdrive.php:281
4834
+ msgid "Folder:"
4835
+ msgstr ""
4836
+
4837
+ #: ../inc/pro/class-destination-sugarsync.php:61 ../inc/pro/class-destination-ftp.
4838
+ #: php:39
4839
+ msgid "Maximum number of backup files to keep in folder:"
4840
+ msgstr ""
4841
+
4842
+ #: ../inc/pro/class-destination-sugarsync.php:63 ../inc/pro/class-destination-ftp.
4843
+ #: php:42
4844
+ msgid "(Oldest files will be deleted first.)"
4845
+ msgstr ""
4846
+
4847
+ #: ../inc/pro/class-destination-folder.php:18
4848
+ msgid "Absolute path to folder for backup files:"
4849
+ msgstr ""
4850
+
4851
+ #: ../inc/pro/class-destination-folder.php:69
4852
+ #, php-format
4853
+ msgid "%d. Try to sync files to folder&#160;&hellip;"
4854
+ msgstr ""
4855
+
4856
+ #: ../inc/pro/class-destination-folder.php:73
4857
+ msgid "Retrieving file list from folder"
4858
+ msgstr ""
4859
+
4860
+ #: ../inc/pro/class-destination-folder.php:79
4861
+ msgid "Copy changed files to folder"
4862
+ msgstr ""
4863
+
4864
+ #: ../inc/pro/class-destination-folder.php:92
4865
+ #, php-format
4866
+ msgid "File %s copied"
4867
+ msgstr ""
4868
+
4869
+ #: ../inc/pro/class-destination-folder.php:105
4870
+ msgid "Delete not existing files from folder"
4871
+ msgstr ""
4872
+
4873
+ #: ../inc/pro/class-destination-folder.php:113
4874
+ #, php-format
4875
+ msgid "Extra file %s copied"
4876
+ msgstr ""
4877
+
4878
+ #: ../inc/pro/class-destination-folder.php:129
4879
+ #, php-format
4880
+ msgid "File %s deleted from folder"
4881
+ msgstr ""
4882
+
4883
+ #: ../inc/pro/class-destination-folder.php:186
4884
+ #, php-format
4885
+ msgid "Empty folder %s deleted"
4886
+ msgstr ""
4887
+
4888
+ #: ../inc/pro/class-destination-dropbox.php:24
4889
+ msgid "Auth Code:"
4890
+ msgstr ""
4891
+
4892
+ #: ../inc/pro/class-destination-dropbox.php:27
4893
+ msgid "Get auth code"
4894
+ msgstr ""
4895
+
4896
+ #: ../inc/pro/class-destination-dropbox.php:105
4897
+ #, php-format
4898
+ msgid "%d. Try to sync files to Dropbox&#160;&hellip;"
4899
+ msgstr ""
4900
+
4901
+ #: ../inc/pro/class-destination-dropbox.php:145
4902
+ msgid "Retrieving file list from Dropbox"
4903
+ msgstr ""
4904
+
4905
+ #: ../inc/pro/class-destination-dropbox.php:159
4906
+ msgid "Upload changed files to Dropbox"
4907
+ msgstr ""
4908
+
4909
+ #: ../inc/pro/class-destination-dropbox.php:181
4910
+ #, php-format
4911
+ msgid "File %s uploaded to Dropbox"
4912
+ msgstr ""
4913
+
4914
+ #: ../inc/pro/class-destination-dropbox.php:208
4915
+ #, php-format
4916
+ msgid "Extra file %s uploaded to Dropbox"
4917
+ msgstr ""
4918
+
4919
+ #: ../inc/pro/class-destination-dropbox.php:217
4920
+ msgid "Delete not existing files from Dropbox"
4921
+ msgstr ""
4922
+
4923
+ #: ../inc/pro/class-destination-dropbox.php:224
4924
+ #, php-format
4925
+ msgid "Folder %s deleted from Dropbox"
4926
+ msgstr ""
4927
+
4928
+ #: ../inc/pro/class-destination-dropbox.php:242
4929
+ #, php-format
4930
+ msgid "File %s deleted from Dropbox"
4931
+ msgstr ""
4932
+
4933
+ #: ../inc/pro/class-page-wizard.php:122
4934
+ msgid "No BackWPup Wizard Session found!"
4935
+ msgstr ""
4936
+
4937
+ #: ../inc/pro/class-page-wizard.php:134 ../inc/pro/class-page-wizard.php:442
4938
+ msgid "Cancel"
4939
+ msgstr ""
4940
+
4941
+ #: ../inc/pro/class-page-wizard.php:169 ../inc/pro/class-page-wizard.php:437 ..
4942
+ #: /inc/pro/class-page-wizard.php:470
4943
+ msgid "Next "
4944
+ msgstr ""
4945
+
4946
+ #: ../inc/pro/class-page-wizard.php:186 ../inc/pro/class-page-wizard.php:433
4947
+ msgid "‹ Previous"
4948
+ msgstr ""
4949
+
4950
+ #: ../inc/pro/class-page-wizard.php:335
4951
+ #, php-format
4952
+ msgctxt "Plugin Name"
4953
+ msgid "%s Wizards"
4954
+ msgstr ""
4955
+
4956
+ #: ../inc/pro/class-page-wizard.php:373
4957
+ #, php-format
4958
+ msgctxt "Plugin Name"
4959
+ msgid "%s Wizard:"
4960
+ msgstr ""
4961
+
4962
+ #: ../inc/pro/class-page-wizard.php:445
4963
+ msgid "Back to overview"
4964
+ msgstr ""
4965
+
4966
+ #: ../inc/pro/class-destination-ftp.php:17
4967
+ msgid "Hostname:"
4968
+ msgstr ""
4969
+
4970
+ #: ../inc/pro/class-destination-ftp.php:25 ../inc/pro/class-destination-rsc.php:23
4971
+ msgid "Username:"
4972
+ msgstr ""
4973
+
4974
+ #: ../inc/pro/class-destination-ftp.php:33
4975
+ msgid "Folder on server:"
4976
+ msgstr ""
4977
+
4978
+ #: ../inc/pro/class-destination-rsc.php:26
4979
+ msgid "API Key:"
4980
+ msgstr ""
4981
+
4982
+ #: ../inc/pro/class-destination-rsc.php:29
4983
+ msgid "Select region:"
4984
+ msgstr ""
4985
+
4986
+ #: ../inc/pro/class-destination-rsc.php:136
4987
+ #, php-format
4988
+ msgid "%d. Trying to sync files to Rackspace cloud&#160;&hellip;"
4989
+ msgstr ""
4990
+
4991
+ #: ../inc/pro/class-destination-rsc.php:156
4992
+ #, php-format
4993
+ msgid "Connected to Rackspace cloud files container %s."
4994
+ msgstr ""
4995
+
4996
+ #: ../inc/pro/class-destination-rsc.php:170
4997
+ msgid "Retrieving files list from Rackspace Cloud."
4998
+ msgstr ""
4999
+
5000
+ #: ../inc/pro/class-destination-rsc.php:201
5001
+ msgid "Upload changed files to Rackspace Cloud."
5002
+ msgstr ""
5003
+
5004
+ #: ../inc/pro/class-destination-rsc.php:219
5005
+ #, php-format
5006
+ msgid "File %s uploaded to Rackspace Cloud."
5007
+ msgstr ""
5008
+
5009
+ #: ../inc/pro/class-destination-rsc.php:252
5010
+ #, php-format
5011
+ msgid "Extra file %s uploaded to Rackspace Cloud."
5012
+ msgstr ""
5013
+
5014
+ #: ../inc/pro/class-destination-rsc.php:265
5015
+ msgid "Delete nonexistent files on Rackspace Cloud."
5016
+ msgstr ""
5017
+
5018
+ #: ../inc/pro/class-destination-rsc.php:269
5019
+ #, php-format
5020
+ msgid "File %s deleted from Rackspace Cloud."
5021
+ msgstr ""
5022
+
5023
+ #: ../inc/pro/class-marketpress-documentation.php:175
5024
+ msgid "Loading Menu ..."
5025
+ msgstr ""
5026
+
5027
+ #: ../inc/pro/class-marketpress-documentation.php:218 ../inc/pro/class-
5028
+ #: marketpress-documentation.php:334
5029
+ #, php-format
5030
+ msgctxt "%s = Remote Code"
5031
+ msgid "Could not connect to remote host, code %d. Please try again later."
5032
+ msgstr ""
5033
+
5034
+ #: ../inc/pro/class-marketpress-documentation.php:230 ../inc/pro/class-
5035
+ #: marketpress-documentation.php:346
5036
+ msgid "Could not find content for this page. Please try again later."
5037
+ msgstr ""
5038
+
5039
+ #: ../inc/pro/class-marketpress-documentation.php:236 ../inc/pro/class-
5040
+ #: marketpress-documentation.php:351
5041
+ msgid "Could not connect to remote host. Please try again later."
5042
+ msgstr ""
5043
+
5044
+ #: ../inc/pro/class-marketpress-documentation.php:282 ../inc/pro/class-
5045
+ #: marketpress-documentation.php:290
5046
+ msgid "Loading Content ..."
5047
+ msgstr ""
5048
+
5049
+ #: ../inc/pro/class-jobtype-dbcheck.php:21
5050
+ msgid "Check only WordPress Database tables"
5051
+ msgstr ""
5052
+
5053
+ #: ../inc/pro/class-jobtype-wpexp.php:17
5054
+ msgid "Items to export:"
5055
+ msgstr ""
5056
+
5057
+ #: ../inc/pro/class-destination-gdrive.php:35 ../inc/pro/class-destination-gdrive.
5058
+ #: php:257
5059
+ #, php-format
5060
+ msgid ""
5061
+ "Looks like you haven’t set up any API keys yet. Head over to <a "
5062
+ "href=\"%s\">Settings | API-Keys</a> and get Google Drive all set up, then come "
5063
+ "back here."
5064
+ msgstr ""
5065
+
5066
+ #: ../inc/pro/class-destination-gdrive.php:49 ../inc/pro/class-destination-gdrive.
5067
+ #: php:272
5068
+ msgid "Authenticate"
5069
+ msgstr ""
5070
+
5071
+ #: ../inc/pro/class-destination-gdrive.php:55 ../inc/pro/class-destination-gdrive.
5072
+ #: php:278
5073
+ msgid "Reauthenticate"
5074
+ msgstr ""
5075
+
5076
+ #: ../inc/pro/class-destination-gdrive.php:65
5077
+ msgid "Folder in Google Drive"
5078
+ msgstr ""
5079
+
5080
+ #: ../inc/pro/class-destination-gdrive.php:85
5081
+ msgid ""
5082
+ "Consider using trash to delete files. If trash is not enabled, files will be "
5083
+ "deleted permanently."
5084
+ msgstr ""
5085
+
5086
+ #: ../inc/pro/class-destination-gdrive.php:142 ../inc/pro/class-destination-
5087
+ #: gdrive.php:169
5088
+ msgid "GDrive: Authenticated."
5089
+ msgstr ""
5090
+
5091
+ #: ../inc/pro/class-destination-gdrive.php:146 ../inc/pro/class-destination-
5092
+ #: gdrive.php:173
5093
+ msgid "GDrive: No refresh token received. Try to Authenticate again!"
5094
+ msgstr ""
5095
+
5096
+ #: ../inc/pro/class-destination-gdrive.php:153 ../inc/pro/class-destination-
5097
+ #: gdrive.php:178 ../inc/pro/class-destination-gdrive.php:202 ../inc/pro/class-
5098
+ #: destination-gdrive.php:224
5099
+ #, php-format
5100
+ msgid "GDrive API: %s"
5101
+ msgstr ""
5102
+
5103
+ #: ../inc/pro/class-destination-gdrive.php:389
5104
+ #, php-format
5105
+ msgid "%d. Try to send backup file to Google Drive&#160;&hellip;"
5106
+ msgstr ""
5107
+
5108
+ #: ../inc/pro/class-destination-gdrive.php:415
5109
+ msgid "Uploading to Google Drive&#160;&hellip;"
5110
+ msgstr ""
5111
+
5112
+ #: ../inc/pro/class-destination-gdrive.php:475
5113
+ msgid "Google Drive API: could not create resumable file"
5114
+ msgstr ""
5115
+
5116
+ #: ../inc/pro/class-destination-gdrive.php:521
5117
+ msgid "Can not resume transfer backup to Google Drive!"
5118
+ msgstr ""
5119
+
5120
+ #: ../inc/pro/class-destination-gdrive.php:590
5121
+ #, php-format
5122
+ msgid "Error transfering file chunks to %s."
5123
+ msgstr ""
5124
+
5125
+ #: ../inc/pro/class-destination-gdrive.php:591 ../inc/pro/class-destination-
5126
+ #: gdrive.php:617
5127
+ msgid "Google Drive"
5128
+ msgstr ""
5129
+
5130
+ #: ../inc/pro/class-destination-gdrive.php:661
5131
+ #, php-format
5132
+ msgid "One file deleted from Google Drive"
5133
+ msgid_plural "%d files deleted on Google Drive"
5134
+ msgstr[0] ""
5135
+ msgstr[1] ""
5136
+
5137
+ #: ../inc/pro/class-destination-gdrive.php:667 ../inc/pro/class-destination-
5138
+ #: gdrive.php:889
5139
+ #, php-format
5140
+ msgid "Google Drive API: %s"
5141
+ msgstr ""
5142
+
5143
+ #: ../inc/pro/class-destination-gdrive.php:715
5144
+ #, php-format
5145
+ msgid "%d. Try to sync files to Google Drive&#160;&hellip;"
5146
+ msgstr ""
5147
+
5148
+ #: ../inc/pro/class-destination-gdrive.php:739
5149
+ msgid "Syncing changed files to Google Drive"
5150
+ msgstr ""
5151
+
5152
+ #: ../inc/pro/class-destination-gdrive.php:768
5153
+ #, php-format
5154
+ msgid "File %s updated on Google Drive"
5155
+ msgstr ""
5156
+
5157
+ #: ../inc/pro/class-destination-gdrive.php:788
5158
+ #, php-format
5159
+ msgid "File %s uploaded to Google Drive"
5160
+ msgstr ""
5161
+
5162
+ #: ../inc/pro/class-destination-gdrive.php:809
5163
+ #, php-format
5164
+ msgid "File %s moved to trash in Google Drive"
5165
+ msgstr ""
5166
+
5167
+ #: ../inc/pro/class-destination-gdrive.php:812
5168
+ #, php-format
5169
+ msgid "File %s deleted permanently in Google Drive"
5170
+ msgstr ""
5171
+
5172
+ #: ../inc/pro/class-destination-gdrive.php:857
5173
+ #, php-format
5174
+ msgid "Extra file %s updated on Google Drive"
5175
+ msgstr ""
5176
+
5177
+ #: ../inc/pro/class-destination-gdrive.php:878
5178
+ #, php-format
5179
+ msgid "Extra file %s uploaded to Google Drive"
5180
+ msgstr ""
5181
+
5182
+ #: ../inc/pro/class-destination-glacier.php:26
5183
+ msgid "Amazon Glacier"
5184
+ msgstr ""
5185
+
5186
+ #: ../inc/pro/class-destination-glacier.php:30
5187
+ msgid "Select a region:"
5188
+ msgstr ""
5189
+
5190
+ #: ../inc/pro/class-destination-glacier.php:32 ../inc/pro/class-destination-
5191
+ #: glacier.php:154
5192
+ msgid "Amazon Glacier Region"
5193
+ msgstr ""
5194
+
5195
+ #: ../inc/pro/class-destination-glacier.php:33 ../inc/pro/class-destination-
5196
+ #: glacier.php:155
5197
+ msgid "US Standard"
5198
+ msgstr ""
5199
+
5200
+ #: ../inc/pro/class-destination-glacier.php:34 ../inc/pro/class-destination-
5201
+ #: glacier.php:156
5202
+ msgid "US West (Northern California)"
5203
+ msgstr ""
5204
+
5205
+ #: ../inc/pro/class-destination-glacier.php:35 ../inc/pro/class-destination-
5206
+ #: glacier.php:157
5207
+ msgid "US West (Oregon)"
5208
+ msgstr ""
5209
+
5210
+ #: ../inc/pro/class-destination-glacier.php:36 ../inc/pro/class-destination-
5211
+ #: glacier.php:158
5212
+ msgid "EU (Ireland)"
5213
+ msgstr ""
5214
+
5215
+ #: ../inc/pro/class-destination-glacier.php:37 ../inc/pro/class-destination-
5216
+ #: glacier.php:159
5217
+ msgid "EU (Germany)"
5218
+ msgstr ""
5219
+
5220
+ #: ../inc/pro/class-destination-glacier.php:38 ../inc/pro/class-destination-
5221
+ #: glacier.php:160
5222
+ msgid "Asia Pacific (Tokyo)"
5223
+ msgstr ""
5224
+
5225
+ #: ../inc/pro/class-destination-glacier.php:39 ../inc/pro/class-destination-
5226
+ #: glacier.php:161
5227
+ msgid "Asia Pacific (Singapore)"
5228
+ msgstr ""
5229
+
5230
+ #: ../inc/pro/class-destination-glacier.php:40 ../inc/pro/class-destination-
5231
+ #: glacier.php:162
5232
+ msgid "Asia Pacific (Sydney)"
5233
+ msgstr ""
5234
+
5235
+ #: ../inc/pro/class-destination-glacier.php:41 ../inc/pro/class-destination-
5236
+ #: glacier.php:163
5237
+ msgid "South America (Sao Paulo)"
5238
+ msgstr ""
5239
+
5240
+ #: ../inc/pro/class-destination-glacier.php:42
5241
+ msgid "China (Beijing)"
5242
+ msgstr ""
5243
+
5244
+ #: ../inc/pro/class-destination-glacier.php:48
5245
+ msgid "Amazon Access Keys"
5246
+ msgstr ""
5247
+
5248
+ #: ../inc/pro/class-destination-glacier.php:67
5249
+ msgid "Vault"
5250
+ msgstr ""
5251
+
5252
+ #: ../inc/pro/class-destination-glacier.php:71
5253
+ msgid "Vault selection"
5254
+ msgstr ""
5255
+
5256
+ #: ../inc/pro/class-destination-glacier.php:83
5257
+ msgid "Create a new vault"
5258
+ msgstr ""
5259
+
5260
+ #: ../inc/pro/class-destination-glacier.php:90
5261
+ msgid "Glacier Backup settings"
5262
+ msgstr ""
5263
+
5264
+ #: ../inc/pro/class-destination-glacier.php:97 ../inc/pro/class-destination-
5265
+ #: glacier.php:181
5266
+ msgid ""
5267
+ "Number of files to keep in folder. (Archives deleted before 3 months after "
5268
+ "they have been stored may cause extra costs when deleted.)"
5269
+ msgstr ""
5270
+
5271
+ #: ../inc/pro/class-destination-glacier.php:130 ../inc/pro/class-destination-
5272
+ #: glacier.php:216
5273
+ #, php-format
5274
+ msgid "Vault %1$s created."
5275
+ msgstr ""
5276
+
5277
+ #: ../inc/pro/class-destination-glacier.php:132 ../inc/pro/class-destination-
5278
+ #: glacier.php:218
5279
+ #, php-format
5280
+ msgid "Vault %s could not be created."
5281
+ msgstr ""
5282
+
5283
+ #: ../inc/pro/class-destination-glacier.php:153
5284
+ msgid "Select an Amazon Glacier region:"
5285
+ msgstr ""
5286
+
5287
+ #: ../inc/pro/class-destination-glacier.php:169
5288
+ msgid "Vault:"
5289
+ msgstr ""
5290
+
5291
+ #: ../inc/pro/class-destination-glacier.php:178
5292
+ msgid "New Vault:"
5293
+ msgstr ""
5294
+
5295
+ #: ../inc/pro/class-destination-glacier.php:259 ../inc/pro/class-destination-
5296
+ #: glacier.php:375 ../inc/pro/class-destination-glacier.php:394 ../inc/pro/class-
5297
+ #: destination-glacier.php:434
5298
+ #, php-format
5299
+ msgid "AWS API: %s"
5300
+ msgstr ""
5301
+
5302
+ #: ../inc/pro/class-destination-glacier.php:283
5303
+ #, php-format
5304
+ msgid "%d. Trying to send backup file to Amazon Glacier&#160;&hellip;"
5305
+ msgstr ""
5306
+
5307
+ #: ../inc/pro/class-destination-glacier.php:296
5308
+ #, php-format
5309
+ msgid "Connected to Glacier vault \"%1$s\" with %2$d archives and size of %3$d"
5310
+ msgstr ""
5311
+
5312
+ #: ../inc/pro/class-destination-glacier.php:298
5313
+ #, php-format
5314
+ msgid "Glacier vault \"%s\" does not exist!"
5315
+ msgstr ""
5316
+
5317
+ #: ../inc/pro/class-destination-glacier.php:304
5318
+ msgid "Starting upload to Amazon Glacier&#160;&hellip;"
5319
+ msgstr ""
5320
+
5321
+ #: ../inc/pro/class-destination-glacier.php:357
5322
+ #, php-format
5323
+ msgid "Archive ID: %s"
5324
+ msgstr ""
5325
+
5326
+ #: ../inc/pro/class-destination-glacier.php:368 ../inc/pro/class-pro.php:111
5327
+ msgid "Glacier"
5328
+ msgstr ""
5329
+
5330
+ #: ../inc/pro/class-destination-glacier.php:424
5331
+ #, php-format
5332
+ msgid "Cannot delete archive from %s."
5333
+ msgstr ""
5334
+
5335
+ #: ../inc/pro/class-destination-glacier.php:428
5336
+ #, php-format
5337
+ msgid "One file deleted on vault."
5338
+ msgid_plural "%d files deleted on vault"
5339
+ msgstr[0] ""
5340
+ msgstr[1] ""
5341
+
5342
+ #: ../inc/pro/class-destination-glacier.php:542
5343
+ msgid "No vault found!"
5344
+ msgstr ""
5345
+
5346
+ #: ../inc/pro/class-jobtype-wpplugin.php:13
5347
+ msgid "Nothing to configure"
5348
+ msgstr ""
5349
+
5350
+ #: ../inc/pro/class-marketpress-autoupdate.php:352 ../inc/pro/class-marketpress-
5351
+ #: autoupdate.php:587
5352
+ msgctxt "MarketPress URL part, should be .de for German languages"
5353
+ msgid "marketpress.com"
5354
+ msgstr ""
5355
+
5356
+ #: ../inc/pro/class-marketpress-autoupdate.php:362
5357
+ #, php-format
5358
+ msgid ""
5359
+ "<strong>Whoops!</strong> The license key you have entered appears not to be "
5360
+ "valid. You can always get your valid key from your Downloads page at %s. "
5361
+ "Automatic updates for this plugin have been disabled until you enter a valid "
5362
+ "key."
5363
+ msgstr ""
5364
+
5365
+ #: ../inc/pro/class-marketpress-autoupdate.php:369
5366
+ #, php-format
5367
+ msgid ""
5368
+ "<strong>All is fine.</strong> You are using a valid license key from %s for "
5369
+ "this plugin. If you need to enter a new key, just override the current one "
5370
+ "and save."
5371
+ msgstr ""
5372
+
5373
+ #: ../inc/pro/class-marketpress-autoupdate.php:382
5374
+ #, php-format
5375
+ msgid "Enter a valid license key from %s below."
5376
+ msgstr ""
5377
+
5378
+ #: ../inc/pro/class-marketpress-autoupdate.php:387
5379
+ msgid "Help! I need to retrieve my key."
5380
+ msgstr ""
5381
+
5382
+ #: ../inc/pro/class-marketpress-autoupdate.php:393
5383
+ msgid ""
5384
+ "<strong>Whoops!</strong> The license key you have entered appears not to be "
5385
+ "valid. Automatic updates for this plugin have been disabled until you enter "
5386
+ "a valid key."
5387
+ msgstr ""
5388
+
5389
+ #: ../inc/pro/class-marketpress-autoupdate.php:398
5390
+ #, php-format
5391
+ msgid ""
5392
+ "<strong>All is fine.</strong> You are using a valid license key from %s for "
5393
+ "this plugin. If you need to enter a new key, just override the current one "
5394
+ "and save. Or just <a href=\\\"%s\\\">delete it</a> to make it disappear."
5395
+ msgstr ""
5396
+
5397
+ #: ../inc/pro/class-marketpress-autoupdate.php:408
5398
+ msgid "Your license status"
5399
+ msgstr ""
5400
+
5401
+ #: ../inc/pro/class-marketpress-autoupdate.php:414
5402
+ msgid "License Key"
5403
+ msgstr ""
5404
+
5405
+ #: ../inc/pro/class-marketpress-autoupdate.php:416
5406
+ msgid "Activate"
5407
+ msgstr ""
5408
+
5409
+ #: ../inc/pro/class-marketpress-autoupdate.php:594
5410
+ msgid "License key has been deleted."
5411
+ msgstr ""
5412
+
5413
+ #: ../inc/pro/class-marketpress-autoupdate.php:600
5414
+ msgid "License activated successfully."
5415
+ msgstr ""
5416
+
5417
+ #: ../inc/pro/class-marketpress-autoupdate.php:606 ../inc/pro/class-marketpress-
5418
+ #: autoupdate.php:613 ../inc/pro/class-marketpress-autoupdate.php:622 ..
5419
+ #: /inc/pro/class-marketpress-autoupdate.php:631
5420
+ msgid "License cannot be activated."
5421
+ msgstr ""
5422
+
5423
+ #: ../inc/pro/class-marketpress-autoupdate.php:607
5424
+ msgid "The license key you have entered is not correct."
5425
+ msgstr ""
5426
+
5427
+ #: ../inc/pro/class-marketpress-autoupdate.php:614
5428
+ #, php-format
5429
+ msgid ""
5430
+ "You have reached the limit of URLs included in your license. Please update "
5431
+ "your license at %s."
5432
+ msgstr ""
5433
+
5434
+ #: ../inc/pro/class-marketpress-autoupdate.php:623
5435
+ #, php-format
5436
+ msgid ""
5437
+ "Something went wrong. Please try again later or contact the support staff at "
5438
+ "%s."
5439
+ msgstr ""
5440
+
5441
+ #: ../inc/pro/class-marketpress-autoupdate.php:632
5442
+ #, php-format
5443
+ msgid ""
5444
+ "Your license does not appear to be valid for this plugin. Please update your "
5445
+ "license at %s."
5446
+ msgstr ""
5447
+
5448
+ #: ../inc/pro/class-wizard-job.php:15
5449
+ msgid "Create a job"
5450
+ msgstr ""
5451
+
5452
+ #: ../inc/pro/class-wizard-job.php:16
5453
+ msgid "Choose a job"
5454
+ msgstr ""
5455
+
5456
+ #: ../inc/pro/class-wizard-job.php:41
5457
+ msgid "Job Types"
5458
+ msgstr ""
5459
+
5460
+ #: ../inc/pro/class-wizard-job.php:41
5461
+ msgid "Select a task for your job."
5462
+ msgstr ""
5463
+
5464
+ #: ../inc/pro/class-wizard-job.php:55
5465
+ msgid "Archive Settings"
5466
+ msgstr ""
5467
+
5468
+ #: ../inc/pro/class-wizard-job.php:55
5469
+ msgid "Settings for the Backup Archive"
5470
+ msgstr ""
5471
+
5472
+ #: ../inc/pro/class-wizard-job.php:57
5473
+ msgid "Where would you like to store the backup file?"
5474
+ msgstr ""
5475
+
5476
+ #: ../inc/pro/class-wizard-job.php:67 ../inc/pro/class-wizard-job.php:292
5477
+ msgid "Scheduling"
5478
+ msgstr ""
5479
+
5480
+ #: ../inc/pro/class-wizard-job.php:67
5481
+ msgid "When would you like to start the job?"
5482
+ msgstr ""
5483
+
5484
+ #: ../inc/pro/class-wizard-job.php:236
5485
+ msgid "Select one or more tasks for your backup job."
5486
+ msgstr ""
5487
+
5488
+ #: ../inc/pro/class-wizard-job.php:293
5489
+ msgid "Activate scheduling"
5490
+ msgstr ""
5491
+
5492
+ #: ../inc/pro/class-wizard-job.php:387
5493
+ msgid "Sync file by file to destination"
5494
+ msgstr ""
5495
+
5496
+ #: ../inc/pro/class-wizard-job.php:398
5497
+ msgid "Select a compression type for the backup archive"
5498
+ msgstr ""
5499
+
5500
+ #: ../inc/pro/class-wizard-job.php:401
5501
+ msgid "Archive compression type"
5502
+ msgstr ""
5503
+
5504
+ #: ../inc/pro/class-wizard-job.php:404
5505
+ msgid ""
5506
+ "PHP Zip functions will be used if available (memory lees). Else PCLZip Class "
5507
+ "will used."
5508
+ msgstr ""
5509
+
5510
+ #: ../inc/pro/class-wizard-job.php:406 ../inc/pro/class-wizard-job.php:411 ..
5511
+ #: /inc/pro/class-wizard-job.php:415
5512
+ msgid "Disabled because missing PHP function."
5513
+ msgstr ""
5514
+
5515
+ #: ../inc/pro/class-wizard-job.php:407
5516
+ msgid "Tar (fast and memory less) uncompressed"
5517
+ msgstr ""
5518
+
5519
+ #: ../inc/pro/class-wizard-job.php:409
5520
+ msgid "A tared and GZipped archive (fast and memory less)"
5521
+ msgstr ""
5522
+
5523
+ #: ../inc/pro/class-wizard-job.php:413
5524
+ msgid "A tared and BZipped archive (fast and memory less)"
5525
+ msgstr ""
5526
+
5527
+ #: ../inc/pro/class-wizard-job.php:435
5528
+ msgid "Where to store the files"
5529
+ msgstr ""
5530
+
5531
+ #: ../inc/pro/class-wizard-job.php:619
5532
+ #, php-format
5533
+ msgid "Wizard: %1$s"
5534
+ msgstr ""
5535
+
5536
+ #: ../inc/pro/class-wizard-job.php:638
5537
+ #, php-format
5538
+ msgid "New job %s generated."
5539
+ msgstr ""
5540
+
5541
+ #: ../inc/pro/class-wizard-job.php:650
5542
+ msgid "Create Job"
5543
+ msgstr ""
5544
+
5545
+ #: ../inc/pro/class-wizard-job.php:675 ../inc/pro/class-wizard-job.php:676
5546
+ msgid "Database Backup and XML Export (Daily)"
5547
+ msgstr ""
5548
+
5549
+ #: ../inc/pro/class-wizard-job.php:693 ../inc/pro/class-wizard-job.php:694
5550
+ msgid "Database Check (Weekly)"
5551
+ msgstr ""
5552
+
5553
+ #: ../inc/pro/class-wizard-job.php:718 ../inc/pro/class-wizard-job.php:719
5554
+ msgid "Backup all files"
5555
+ msgstr ""
5556
+
5557
+ #: ../inc/pro/class-wizard-job.php:733
5558
+ msgid "Essential files + list of plugins"
5559
+ msgstr ""
5560
+
5561
+ #: ../inc/pro/class-wizard-job.php:734
5562
+ msgid "Backup essential files and folders, plus a list of installed plugins."
5563
+ msgstr ""
5564
+
5565
+ #: ../inc/pro/class-wizard-job.php:749 ../inc/pro/class-wizard-job.php:750
5566
+ msgid "Custom configuration"
5567
+ msgstr ""
5568
+
5569
+ #: ../inc/pro/class-pro.php:130
5570
+ msgid "GDrive"
5571
+ msgstr ""
5572
+
5573
+ #: ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.
5574
+ #: php:219
5575
+ msgid "Wizards"
5576
+ msgstr ""
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
3
  Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
4
  Requires at least: 3.8
5
  Tested up to: 4.4
6
- Stable tag: 3.2.1
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -170,6 +170,10 @@ Please check all settings after the update:
170
 
171
 
172
  == Changelog ==
 
 
 
 
173
  = Version 3.2.1 =
174
  * Fixed: open basedir check
175
  * Fixed: Change Zip creation back to use lower resources
3
  Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
4
  Requires at least: 3.8
5
  Tested up to: 4.4
6
+ Stable tag: 3.2.2
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
170
 
171
 
172
  == Changelog ==
173
+ = Version 3.2.2 =
174
+ * Fixed: Setting of S3 storage class STANDARD | STANDARD_IA | REDUCED_REDUNDANCY
175
+ * Fixed: Potential security problems on log view and file download
176
+
177
  = Version 3.2.1 =
178
  * Fixed: open basedir check
179
  * Fixed: Change Zip creation back to use lower resources