BackWPup – WordPress Backup Plugin - Version 3.2.3

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.3
Comparing to
See all releases

Code changes from version 3.2.2 to 3.2.3

assets/css/lower_wp38.css DELETED
@@ -1,60 +0,0 @@
1
- #adminmenu #toplevel_page_backwpup div.wp-menu-image:before {
2
- speak: none;
3
- font-size: 16px !important;
4
- color: #999;
5
- padding-top: 6px;
6
- padding-left: 7px;
7
- height: 20px;
8
- width: 20px;
9
- display: inline-block;
10
- -webkit-font-smoothing: antialiased;
11
- -moz-osx-font-smoothing: grayscale;
12
- -moz-transition: all .1s ease-in-out;
13
- -webkit-transition: all .1s ease-in-out;
14
- transition: all .1s ease-in-out;
15
- }
16
-
17
-
18
- #adminmenu #toplevel_page_backwpup.wp-has-current-submenu div.wp-menu-image:before {
19
- color: #ffffff;
20
- }
21
-
22
- #wp-admin-bar-backwpup .ab-icon {
23
- margin-top: 3px;
24
- }
25
-
26
- #wp-admin-bar-backwpup .ab-icon:before {
27
- top: 0;
28
- font-size: 16px !important;
29
- speak: none;
30
- display: inline-block;
31
- -webkit-font-smoothing: antialiased;
32
- -moz-osx-font-smoothing: grayscale;
33
- -moz-transition: all .1s ease-in-out;
34
- -webkit-transition: all .1s ease-in-out;
35
- transition: all .1s ease-in-out;
36
- }
37
-
38
- @media screen and (max-width: 782px) {
39
- #wp-admin-bar-backwpup .ab-icon {
40
- position: relative;
41
- float: left;
42
- width: 16px;
43
- height: 16px;
44
- font-size: 16px !important;
45
- top: 4px;
46
- }
47
- }
48
-
49
- #backwpup-page-icon:before {
50
- font-family: 'backwpup' !important;
51
- content: "\e600";
52
- }
53
-
54
- #backwpup-page .backwpup-floated-postbox {
55
- padding: 0;
56
- }
57
- #backwpup-page .backwpup-floated-postbox > .inside,
58
- #backwpup-page .wizardbox > form {
59
- margin: 15px;
60
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/lower_wp38.min.css DELETED
@@ -1 +0,0 @@
1
- #adminmenu #toplevel_page_backwpup div.wp-menu-image:before,#wp-admin-bar-backwpup .ab-icon:before{font-size:16px!important;speak:none;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#adminmenu #toplevel_page_backwpup div.wp-menu-image:before{color:#999;padding-top:6px;padding-left:7px;height:20px;width:20px;-moz-transition:all .1s ease-in-out;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu #toplevel_page_backwpup.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#wp-admin-bar-backwpup .ab-icon{margin-top:3px}#wp-admin-bar-backwpup .ab-icon:before{top:0;-moz-transition:all .1s ease-in-out;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}@media screen and (max-width:782px){#wp-admin-bar-backwpup .ab-icon{position:relative;float:left;width:16px;height:16px;font-size:16px!important;top:4px}}#backwpup-page-icon:before{font-family:backwpup!important;content:"\e600"}#backwpup-page .backwpup-floated-postbox{padding:0}#backwpup-page .backwpup-floated-postbox>.inside,#backwpup-page .wizardbox>form{margin:15px}
 
backwpup.php CHANGED
@@ -1,532 +1,534 @@
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
- }
 
 
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.3
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-2016 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.8', '<' ) || ! function_exists( 'spl_autoload_register' ) ) {
38
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
39
+ deactivate_plugins( __FILE__ );
40
+ die( 'BackWPup requires PHP version 5.2.7 with spl extension or greater and WordPress 3.8 or greater.' );
41
+ }
42
+
43
+ //Start Plugin
44
+ if ( function_exists( 'add_filter' ) ) {
45
+ add_action( 'plugins_loaded', array( 'BackWPup', 'get_instance' ), 11 );
46
+ }
47
+
48
+ /**
49
+ * Main BackWPup Plugin Class
50
+ */
51
+ final class BackWPup {
52
+
53
+ private static $instance = NULL;
54
+ private static $plugin_data = array();
55
+ private static $autoload = array();
56
+ private static $destinations = array();
57
+ private static $registered_destinations = array();
58
+ private static $job_types = array();
59
+ private static $wizards = array();
60
+
61
+ /**
62
+ * Set needed filters and actions and load
63
+ */
64
+ private function __construct() {
65
+
66
+ // Nothing else matters if we're not on the main site
67
+ if ( ! is_main_site() ) {
68
+ return;
69
+ }
70
+ //auto loader
71
+ spl_autoload_register( array( $this, 'autoloader' ) );
72
+ //start upgrade if needed
73
+ if ( get_site_option( 'backwpup_version' ) != self::get_plugin_data( 'Version' ) ) {
74
+ BackWPup_Install::activate();
75
+ }
76
+ //load pro features
77
+ if ( class_exists( 'BackWPup_Pro' ) ) {
78
+ BackWPup_Pro::get_instance();
79
+ }
80
+ //WP-Cron
81
+ if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
82
+ if ( ! empty( $_GET[ 'backwpup_run' ] ) && class_exists( 'BackWPup_Job' ) ) {
83
+ //early disable caches
84
+ BackWPup_Job::disable_caches();
85
+ //add action for running jobs in wp-cron.php
86
+ add_action( 'init', array( 'BackWPup_Cron', 'cron_active' ), PHP_INT_MAX );
87
+ } else {
88
+ //add cron actions
89
+ add_action( 'backwpup_cron', array( 'BackWPup_Cron', 'run' ) );
90
+ add_action( 'backwpup_check_cleanup', array( 'BackWPup_Cron', 'check_cleanup' ) );
91
+ }
92
+ //if in cron the rest is not needed
93
+ return;
94
+ }
95
+ //deactivation hook
96
+ register_deactivation_hook( __FILE__, array( 'BackWPup_Install', 'deactivate' ) );
97
+ //Admin bar
98
+ if ( get_site_option( 'backwpup_cfg_showadminbar', FALSE ) ) {
99
+ add_action( 'init', array( 'BackWPup_Adminbar', 'get_instance' ) );
100
+ }
101
+ //only in backend
102
+ if ( is_admin() && class_exists( 'BackWPup_Admin' ) ) {
103
+ BackWPup_Admin::get_instance();
104
+ }
105
+ //work with wp-cli
106
+ if ( defined( 'WP_CLI' ) && WP_CLI && method_exists( 'WP_CLI', 'add_command' ) ) {
107
+ WP_CLI::add_command( 'backwpup', 'BackWPup_WP_CLI' );
108
+ }
109
+ }
110
+
111
+ /**
112
+ * @static
113
+ *
114
+ * @return self
115
+ */
116
+ public static function get_instance() {
117
+
118
+ if (NULL === self::$instance) {
119
+ self::$instance = new self;
120
+ }
121
+ return self::$instance;
122
+ }
123
+
124
+
125
+ private function __clone() {}
126
+
127
+ /**
128
+ * get information about the Plugin
129
+ *
130
+ * @param string $name Name of info to get or NULL to get all
131
+ * @return string|array
132
+ */
133
+ public static function get_plugin_data( $name = NULL ) {
134
+
135
+ if ( $name )
136
+ $name = strtolower( trim( $name ) );
137
+
138
+ if ( empty( self::$plugin_data ) ) {
139
+ self::$plugin_data = get_file_data( __FILE__, array(
140
+ 'name' => 'Plugin Name',
141
+ 'pluginuri' => 'Plugin URI',
142
+ 'version' => 'Version',
143
+ 'description' => 'Description',
144
+ 'author' => 'Author',
145
+ 'authoruri' => 'Author URI',
146
+ 'textdomain' => 'Text Domain',
147
+ 'domainpath' => 'Domain Path',
148
+ 'license' => 'License',
149
+ 'licenseuri' => 'License URI'
150
+ ), 'plugin' );
151
+ //Translate some vars
152
+ self::$plugin_data[ 'name' ] = trim( self::$plugin_data[ 'name' ] );
153
+ self::$plugin_data[ 'pluginuri' ] = trim( self::$plugin_data[ 'pluginuri' ] );
154
+ self::$plugin_data[ 'description' ] = trim( self::$plugin_data[ 'description' ] );
155
+ self::$plugin_data[ 'author' ] = trim( self::$plugin_data[ 'author' ] );
156
+ self::$plugin_data[ 'authoruri' ] = trim( self::$plugin_data[ 'authoruri' ] );
157
+ //set some extra vars
158
+ self::$plugin_data[ 'basename' ] = plugin_basename( dirname( __FILE__ ) );
159
+ self::$plugin_data[ 'mainfile' ] = __FILE__ ;
160
+ self::$plugin_data[ 'plugindir' ] = untrailingslashit( dirname( __FILE__ ) ) ;
161
+ self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
162
+ if ( empty( self::$plugin_data[ 'hash' ] ) || strlen( self::$plugin_data[ 'hash' ] ) < 6 || strlen( self::$plugin_data[ 'hash' ] ) > 12 ) {
163
+ update_site_option( 'backwpup_cfg_hash', substr( md5( md5( BackWPup::get_plugin_data( "mainfile" ) ) ), 14, 6 ) );
164
+ self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
165
+ }
166
+ if ( defined( 'WP_TEMP_DIR' ) && is_dir( WP_TEMP_DIR ) ) {
167
+ self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', WP_TEMP_DIR ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] );
168
+ } else {
169
+ $upload_dir = wp_upload_dir();
170
+ self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] . '-temp' );
171
+ }
172
+ self::$plugin_data[ 'running_file' ] = self::$plugin_data[ 'temp' ] . 'backwpup-working.php';
173
+ self::$plugin_data[ 'url' ] = plugins_url( '', __FILE__ );
174
+ self::$plugin_data[ 'cacert' ] = FALSE;
175
+ if ( file_exists( self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem' ) )
176
+ self::$plugin_data[ 'cacert' ] = self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem';
177
+ self::$plugin_data[ 'cacert' ] = apply_filters( 'backwpup_cacert_bundle', self::$plugin_data[ 'cacert' ] );
178
+ //get unmodified WP Versions
179
+ include ABSPATH . WPINC . '/version.php';
180
+ /** @var $wp_version string */
181
+ self::$plugin_data[ 'wp_version' ] = $wp_version;
182
+ //Build User Agent
183
+ self::$plugin_data[ 'user-agent' ] = self::$plugin_data[ 'name' ].'/' . self::$plugin_data[ 'version' ] . '; WordPress/' . self::$plugin_data[ 'wp_version' ] . '; ' . home_url();
184
+ }
185
+
186
+ if ( ! empty( $name ) )
187
+ return self::$plugin_data[ $name ];
188
+ else
189
+ return self::$plugin_data;
190
+ }
191
+
192
+
193
+ /**
194
+ * include not existing classes automatically
195
+ *
196
+ * @param string $class Class to load from file
197
+ */
198
+ private function autoloader( $class ) {
199
+
200
+ //BackWPup classes auto load
201
+ if ( strstr( strtolower( $class ), 'backwpup_' ) ) {
202
+ $dir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR;
203
+ $class_file_name = 'class-' . str_replace( array( 'backwpup_', '_' ), array( '', '-' ), strtolower( $class ) ) . '.php';
204
+ if ( strstr( strtolower( $class ), 'backwpup_pro' ) ) {
205
+ $dir .= 'pro' . DIRECTORY_SEPARATOR;
206
+ $class_file_name = str_replace( 'pro-','', $class_file_name );
207
+ }
208
+ if ( file_exists( $dir . $class_file_name ) )
209
+ require $dir . $class_file_name;
210
+ }
211
+
212
+ // namespaced PSR-0
213
+ if ( ! empty( self::$autoload ) ) {
214
+ $pos = strrpos( $class, '\\' );
215
+ if ( $pos !== FALSE ) {
216
+ $class_path = str_replace( '\\', DIRECTORY_SEPARATOR, substr( $class, 0, $pos ) ) . DIRECTORY_SEPARATOR . str_replace( '_', DIRECTORY_SEPARATOR, substr( $class, $pos + 1 ) ) . '.php';
217
+ foreach ( self::$autoload as $prefix => $dir ) {
218
+ if ( $class === strstr( $class, $prefix ) ) {
219
+ if ( file_exists( $dir . DIRECTORY_SEPARATOR . $class_path ) )
220
+ require $dir . DIRECTORY_SEPARATOR . $class_path;
221
+ }
222
+ }
223
+ } // Single class file
224
+ elseif ( ! empty( self::$autoload[ $class ] ) && is_file( self::$autoload[ $class ] ) ) {
225
+ require self::$autoload[ $class ];
226
+ }
227
+ }
228
+
229
+ //Google SDK Auto loading
230
+ $classPath = explode( '_', $class );
231
+ if ( $classPath[0] == 'Google' ) {
232
+ if ( count( $classPath ) > 3 ) {
233
+ $classPath = array_slice( $classPath, 0, 3 );
234
+ }
235
+ $filePath = self::get_plugin_data( 'plugindir' ) . '/vendor/' . implode( '/', $classPath ) . '.php';
236
+ if ( file_exists( $filePath ) ) {
237
+ require $filePath;
238
+ }
239
+ }
240
+
241
+ }
242
+
243
+ /**
244
+ * Load Plugin Translation
245
+ *
246
+ * @return bool Text domain loaded
247
+ */
248
+ public static function load_text_domain() {
249
+
250
+ if ( is_textdomain_loaded( 'backwpup' ) ) {
251
+ return TRUE;
252
+ }
253
+
254
+ return load_plugin_textdomain( 'backwpup', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
255
+ }
256
+
257
+ /**
258
+ * Get a array of instances for Backup Destination's
259
+ *
260
+ * @param $key string Key of Destination where get class instance from
261
+ * @return array BackWPup_Destinations
262
+ */
263
+ public static function get_destination( $key ) {
264
+
265
+ $key = strtoupper( $key );
266
+
267
+ if ( isset( self::$destinations[ $key ] ) && is_object( self::$destinations[ $key ] ) )
268
+ return self::$destinations[ $key ];
269
+
270
+ $reg_dests = self::get_registered_destinations();
271
+ if ( ! empty( $reg_dests[ $key ][ 'class' ] ) ) {
272
+ self::$destinations[ $key ] = new $reg_dests[ $key ][ 'class' ];
273
+ } else {
274
+ return NULL;
275
+ }
276
+
277
+ return self::$destinations[ $key ];
278
+ }
279
+
280
+ /**
281
+ * Get a array of registered Destination's for Backups
282
+ *
283
+ * @return array BackWPup_Destinations
284
+ */
285
+ public static function get_registered_destinations() {
286
+
287
+ //only run it one time
288
+ if ( ! empty( self::$registered_destinations ) )
289
+ return self::$registered_destinations;
290
+
291
+ //add BackWPup Destinations
292
+ // to folder
293
+ self::$registered_destinations[ 'FOLDER' ] = array(
294
+ 'class' => 'BackWPup_Destination_Folder',
295
+ 'info' => array(
296
+ 'ID' => 'FOLDER',
297
+ 'name' => __( 'Folder', 'backwpup' ),
298
+ 'description' => __( 'Backup to Folder', 'backwpup' ),
299
+ ),
300
+ 'can_sync' => FALSE,
301
+ 'needed' => array(
302
+ 'php_version' => '',
303
+ 'functions' => array(),
304
+ 'classes' => array()
305
+ ),
306
+ 'autoload' => array()
307
+ );
308
+ // backup with mail
309
+ self::$registered_destinations[ 'EMAIL' ] = array(
310
+ 'class' => 'BackWPup_Destination_Email',
311
+ 'info' => array(
312
+ 'ID' => 'EMAIL',
313
+ 'name' => __( 'Email', 'backwpup' ),
314
+ 'description' => __( 'Backup sent via email', 'backwpup' ),
315
+ ),
316
+ 'can_sync' => FALSE,
317
+ 'needed' => array(
318
+ 'php_version' => '5.2.4',
319
+ 'functions' => array(),
320
+ 'classes' => array()
321
+ ),
322
+ 'autoload' => array()
323
+ );
324
+ // backup to ftp
325
+ self::$registered_destinations[ 'FTP' ] = array(
326
+ 'class' => 'BackWPup_Destination_Ftp',
327
+ 'info' => array(
328
+ 'ID' => 'FTP',
329
+ 'name' => __( 'FTP', 'backwpup' ),
330
+ 'description' => __( 'Backup to FTP', 'backwpup' ),
331
+ ),
332
+ 'can_sync' => FALSE,
333
+ 'needed' => array(
334
+ 'mphp_version' => '',
335
+ 'functions' => array( 'ftp_nb_fput' ),
336
+ 'classes' => array()
337
+ ),
338
+ 'autoload' => array()
339
+ );
340
+ // backup to dropbox
341
+ self::$registered_destinations[ 'DROPBOX' ] = array(
342
+ 'class' => 'BackWPup_Destination_Dropbox',
343
+ 'info' => array(
344
+ 'ID' => 'DROPBOX',
345
+ 'name' => __( 'Dropbox', 'backwpup' ),
346
+ 'description' => __( 'Backup to Dropbox', 'backwpup' ),
347
+ ),
348
+ 'can_sync' => FALSE,
349
+ 'needed' => array(
350
+ 'php_version' => '',
351
+ 'functions' => array( 'curl_exec' ),
352
+ 'classes' => array()
353
+ ),
354
+ 'autoload' => array()
355
+ );
356
+ // Backup to S3
357
+ if ( version_compare( PHP_VERSION, '5.3.3', '>=' ) ) {
358
+ self::$registered_destinations[ 'S3' ] = array(
359
+ 'class' => 'BackWPup_Destination_S3',
360
+ 'info' => array(
361
+ 'ID' => 'S3',
362
+ 'name' => __( 'S3 Service', 'backwpup' ),
363
+ 'description' => __( 'Backup to an S3 Service', 'backwpup' ),
364
+ ),
365
+ 'can_sync' => FALSE,
366
+ 'needed' => array(
367
+ 'php_version' => '5.3.3',
368
+ 'functions' => array( 'curl_exec' ),
369
+ 'classes' => array( 'XMLWriter' )
370
+ ),
371
+ 'autoload' => array( 'Aws\\Common' => dirname( __FILE__ ) .'/vendor',
372
+ 'Aws\\S3' => dirname( __FILE__ ) .'/vendor',
373
+ 'Symfony\\Component\\EventDispatcher' => dirname( __FILE__ ) . '/vendor',
374
+ 'Guzzle' => dirname( __FILE__ ) . '/vendor' )
375
+ );
376
+ } else {
377
+ self::$registered_destinations[ 'S3' ] = array(
378
+ 'class' => 'BackWPup_Destination_S3_V1',
379
+ 'info' => array(
380
+ 'ID' => 'S3',
381
+ 'name' => __( 'S3 Service', 'backwpup' ),
382
+ 'description' => __( 'Backup to an S3 Service v1', 'backwpup' ),
383
+ ),
384
+ 'can_sync' => FALSE,
385
+ 'needed' => array(
386
+ 'php_version' => '',
387
+ 'functions' => array( 'curl_exec' ),
388
+ 'classes' => array()
389
+ ),
390
+ 'autoload' => array( 'AmazonS3' => dirname( __FILE__ ) . '/vendor/Aws_v1/sdk.class.php' )
391
+ );
392
+ }
393
+ // backup to MS Azure
394
+ self::$registered_destinations[ 'MSAZURE' ] = array(
395
+ 'class' => 'BackWPup_Destination_MSAzure',
396
+ 'info' => array(
397
+ 'ID' => 'MSAZURE',
398
+ 'name' => __( 'MS Azure', 'backwpup' ),
399
+ 'description' => __( 'Backup to Microsoft Azure (Blob)', 'backwpup' ),
400
+ ),
401
+ 'can_sync' => FALSE,
402
+ 'needed' => array(
403
+ 'php_version' => '5.3.2',
404
+ 'functions' => array(),
405
+ 'classes' => array()
406
+ ),
407
+ 'autoload' => array( 'WindowsAzure' => dirname( __FILE__ ) . '/vendor' )
408
+ );
409
+ // backup to Rackspace Cloud
410
+ self::$registered_destinations[ 'RSC' ] = array(
411
+ 'class' => 'BackWPup_Destination_RSC',
412
+ 'info' => array(
413
+ 'ID' => 'RSC',
414
+ 'name' => __( 'RSC', 'backwpup' ),
415
+ 'description' => __( 'Backup to Rackspace Cloud Files', 'backwpup' ),
416
+ ),
417
+ 'can_sync' => FALSE,
418
+ 'needed' => array(
419
+ 'php_version' => '5.3.3',
420
+ 'functions' => array( 'curl_exec' ),
421
+ 'classes' => array()
422
+ ),
423
+ 'autoload' => array( 'OpenCloud' => dirname( __FILE__ ) . '/vendor',
424
+ 'Guzzle' => dirname( __FILE__ ) . '/vendor' )
425
+ );
426
+ // backup to Sugarsync
427
+ self::$registered_destinations[ 'SUGARSYNC' ] = array(
428
+ 'class' => 'BackWPup_Destination_SugarSync',
429
+ 'info' => array(
430
+ 'ID' => 'SUGARSYNC',
431
+ 'name' => __( 'SugarSync', 'backwpup' ),
432
+ 'description' => __( 'Backup to SugarSync', 'backwpup' ),
433
+ ),
434
+ 'can_sync' => FALSE,
435
+ 'needed' => array(
436
+ 'php_version' => '',
437
+ 'functions' => array( 'curl_exec' ),
438
+ 'classes' => array()
439
+ ),
440
+ 'autoload' => array()
441
+ );
442
+
443
+ //Hook for adding Destinations like above
444
+ self::$registered_destinations = apply_filters( 'backwpup_register_destination', self::$registered_destinations );
445
+
446
+ //check BackWPup Destinations
447
+ foreach ( self::$registered_destinations as $dest_key => $dest ) {
448
+ self::$registered_destinations[ $dest_key ][ 'error'] = '';
449
+ // check PHP Version
450
+ if ( ! empty( $dest[ 'needed' ][ 'php_version' ] ) && version_compare( PHP_VERSION, $dest[ 'needed' ][ 'php_version' ], '<' ) ) {
451
+ 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' ] ) . ' ';
452
+ self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
453
+ }
454
+ //check functions exists
455
+ if ( ! empty( $dest[ 'needed' ][ 'functions' ] ) ) {
456
+ foreach ( $dest[ 'needed' ][ 'functions' ] as $function_need ) {
457
+ if ( ! function_exists( $function_need ) ) {
458
+ self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing function "%s".', 'backwpup' ), $function_need ) . ' ';
459
+ self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
460
+ }
461
+ }
462
+ }
463
+ //check classes exists
464
+ if ( ! empty( $dest[ 'needed' ][ 'classes' ] ) ) {
465
+ foreach ( $dest[ 'needed' ][ 'classes' ] as $class_need ) {
466
+ if ( ! class_exists( $class_need ) ) {
467
+ self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing class "%s".', 'backwpup' ), $class_need ) . ' ';
468
+ self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
469
+ }
470
+ }
471
+ }
472
+ //add class/namespace to auto load
473
+ if ( ! empty( self::$registered_destinations[ $dest_key ][ 'class' ] ) && ! empty( self::$registered_destinations[ $dest_key ][ 'autoload' ] ) )
474
+ self::$autoload = array_merge( self::$autoload, self::$registered_destinations[ $dest_key ][ 'autoload' ] );
475
+
476
+ }
477
+
478
+ return self::$registered_destinations;
479
+ }
480
+
481
+
482
+ /**
483
+ * Gets a array of instances from Job types
484
+ *
485
+ * @return array BackWPup_JobTypes
486
+ */
487
+ public static function get_job_types() {
488
+
489
+ if ( !empty( self::$job_types ) )
490
+ return self::$job_types;
491
+
492
+ self::$job_types[ 'DBDUMP' ] = new BackWPup_JobType_DBDump;
493
+ self::$job_types[ 'FILE' ] = new BackWPup_JobType_File;
494
+ self::$job_types[ 'WPEXP' ] = new BackWPup_JobType_WPEXP;
495
+ self::$job_types[ 'WPPLUGIN' ] = new BackWPup_JobType_WPPlugin;
496
+ self::$job_types[ 'DBCHECK' ] = new BackWPup_JobType_DBCheck;
497
+
498
+ self::$job_types = apply_filters( 'backwpup_job_types', self::$job_types );
499
+
500
+ //remove types can't load
501
+ foreach ( self::$job_types as $key => $job_type ) {
502
+ if ( empty( $job_type ) || ! is_object( $job_type ) )
503
+ unset( self::$job_types[ $key ] );
504
+ }
505
+
506
+ return self::$job_types;
507
+ }
508
+
509
+
510
+ /**
511
+ * Gets a array of instances from Wizards
512
+ *
513
+ * @return array BackWPup_Pro_Wizards
514
+ */
515
+ public static function get_wizards() {
516
+
517
+ if ( !empty( self::$wizards ) )
518
+ return self::$wizards;
519
+
520
+ self::$wizards = apply_filters( 'backwpup_pro_wizards', self::$wizards );
521
+
522
+ //remove wizards can't load
523
+ foreach ( self::$wizards as $key => $wizard ) {
524
+ if ( empty( $wizard ) || ! is_object( $wizard ) )
525
+ unset( self::$wizards[ $key ] );
526
+ }
527
+
528
+ return self::$wizards;
529
+
530
+ }
531
+
532
+ }
533
+
534
+ }
inc/class-admin.php CHANGED
@@ -47,8 +47,7 @@ final class BackWPup_Admin {
47
  add_action( 'show_user_profile', array( $this, 'user_profile_fields' ) );
48
  add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
49
  add_action( 'profile_update', array( $this, 'save_profile_update' ) );
50
- add_filter( 'manage_users_columns', array( $this, 'manage_users_columns' ) );
51
- add_filter( 'manage_users_custom_column', array( $this, 'manage_users_custom_column' ), 10, 3 );
52
  //Change Backup message on core updates
53
  add_filter( 'gettext', array( $this, 'gettext' ), 10, 3 );
54
 
@@ -112,14 +111,8 @@ final class BackWPup_Admin {
112
  //register js and css for BackWPup
113
  if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
114
  wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.css', array(), time(), 'screen' );
115
- if ( version_compare( BackWPup::get_plugin_data( 'wp_version' ), '3.8-beta-1', '<' ) ) {
116
- wp_enqueue_style( 'backwpup-wplt38', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/lower_wp38.css', array( 'backwpup' ), time(), 'screen' );
117
- }
118
  } else {
119
  wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.min.css', array(), BackWPup::get_plugin_data( 'Version' ), 'screen' );
120
- if ( version_compare( BackWPup::get_plugin_data( 'wp_version' ), '3.8-beta-1', '<' ) ) {
121
- wp_enqueue_style( 'backwpup-wplt38', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/lower_wp38.min.css', array( 'backwpup' ), BackWPup::get_plugin_data( 'Version' ), 'screen' );
122
- }
123
  }
124
  }
125
 
@@ -498,10 +491,12 @@ final class BackWPup_Admin {
498
  return;
499
  }
500
 
501
- if ( empty( $_POST[ 'backwpup_role' ] ) ) {
502
  return;
503
  }
504
 
 
 
505
  //get BackWPup roles
506
  $backwpup_roles = array();
507
  foreach ( array_keys( $wp_roles->roles ) as $role ) {
@@ -513,17 +508,26 @@ final class BackWPup_Admin {
513
 
514
  //get user for adding/removing role
515
  $user = new WP_User( $user_id );
516
- //remove BackWPup role from user
 
 
 
 
 
517
  foreach ( $user->roles as $role ) {
518
  if ( ! strstr( $role, 'backwpup_' ) ) {
519
  continue;
520
  }
521
- $user->remove_role( $role );
 
 
 
 
522
  }
523
 
524
- //add new role to user
525
- if ( ! empty( $_POST['backwpup_role'] ) && in_array( $_POST['backwpup_role'], $backwpup_roles ) ) {
526
- $user->add_role( $_POST['backwpup_role'] );
527
  }
528
 
529
  return;
@@ -555,46 +559,5 @@ final class BackWPup_Admin {
555
  return $translations;
556
  }
557
 
558
- /**
559
- * Add column for displaying BackWPup user role
560
- *
561
- * @param $columns
562
- * @return mixed
563
- */
564
- public function manage_users_columns( $columns ) {
565
-
566
- $columns[ 'backwpup_role' ] = __( 'BackWPup Role', 'backwpup' );
567
-
568
- return $columns;
569
- }
570
-
571
- /**
572
- * Display BackWPup user role in column
573
- *
574
- * @param $value
575
- * @param $column_name
576
- * @param $user_id
577
- * @return string
578
- */
579
- public function manage_users_custom_column( $value, $column_name, $user_id ) {
580
- global $wp_roles;
581
-
582
- if ( 'backwpup_role' != $column_name ) {
583
- return $value;
584
- }
585
-
586
- $user = get_userdata( $user_id );
587
-
588
- foreach ( $user->roles as $role ) {
589
- if ( substr( $role, 0, 8 ) === 'backwpup' ) {
590
- $value .= $wp_roles->roles[ $role ][ 'name' ]. '<br />';
591
- }
592
- if ( $role === 'administrator' ) {
593
- $value .= __( 'Administrator', 'backwpup' );
594
- }
595
- }
596
-
597
- return $value;
598
- }
599
 
600
  }
47
  add_action( 'show_user_profile', array( $this, 'user_profile_fields' ) );
48
  add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
49
  add_action( 'profile_update', array( $this, 'save_profile_update' ) );
50
+
 
51
  //Change Backup message on core updates
52
  add_filter( 'gettext', array( $this, 'gettext' ), 10, 3 );
53
 
111
  //register js and css for BackWPup
112
  if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
113
  wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.css', array(), time(), 'screen' );
 
 
 
114
  } else {
115
  wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.min.css', array(), BackWPup::get_plugin_data( 'Version' ), 'screen' );
 
 
 
116
  }
117
  }
118
 
491
  return;
492
  }
493
 
494
+ if ( ! isset( $_POST[ 'backwpup_role' ] ) ) {
495
  return;
496
  }
497
 
498
+ $backwpup_role = esc_attr( $_POST[ 'backwpup_role' ] );
499
+
500
  //get BackWPup roles
501
  $backwpup_roles = array();
502
  foreach ( array_keys( $wp_roles->roles ) as $role ) {
508
 
509
  //get user for adding/removing role
510
  $user = new WP_User( $user_id );
511
+ //a admin needs no extra role
512
+ if ( $user->has_cap( 'administrator' ) && $user->has_cap( 'backwpup_settings' ) ) {
513
+ $backwpup_role = '';
514
+ }
515
+
516
+ //remove BackWPup role from user if it not the actual
517
  foreach ( $user->roles as $role ) {
518
  if ( ! strstr( $role, 'backwpup_' ) ) {
519
  continue;
520
  }
521
+ if ( $role !== $backwpup_role ) {
522
+ $user->remove_role( $role );
523
+ } else {
524
+ $backwpup_role = '';
525
+ }
526
  }
527
 
528
+ //add new role to user if it not the actual
529
+ if ( $backwpup_role && in_array( $backwpup_role, $backwpup_roles ) ) {
530
+ $user->add_role( $backwpup_role );
531
  }
532
 
533
  return;
559
  return $translations;
560
  }
561
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
562
 
563
  }
inc/class-destination-s3-v1.php CHANGED
@@ -33,6 +33,8 @@ class BackWPup_Destination_S3_V1 extends BackWPup_Destinations {
33
  return 'https://s3-eu-central-1.amazonaws.com';
34
  case 'ap-northeast-1':
35
  return 'https://s3-ap-northeast-1.amazonaws.com';
 
 
36
  case 'ap-southeast-1':
37
  return 'https://s3-ap-southeast-1.amazonaws.com';
38
  case 'ap-southeast-2':
@@ -81,6 +83,7 @@ class BackWPup_Destination_S3_V1 extends BackWPup_Destinations {
81
  <option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
82
  <option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
83
  <option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
 
84
  <option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
85
  <option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
86
  <option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
33
  return 'https://s3-eu-central-1.amazonaws.com';
34
  case 'ap-northeast-1':
35
  return 'https://s3-ap-northeast-1.amazonaws.com';
36
+ case 'ap-northeast-2':
37
+ return 'https://s3-ap-northeast-2.amazonaws.com';
38
  case 'ap-southeast-1':
39
  return 'https://s3-ap-southeast-1.amazonaws.com';
40
  case 'ap-southeast-2':
83
  <option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
84
  <option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
85
  <option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
86
+ <option value="ap-northeast-2" <?php selected( 'ap-northeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Seoul)', 'backwpup' ); ?></option>
87
  <option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
88
  <option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
89
  <option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
inc/class-destination-s3.php CHANGED
@@ -32,6 +32,8 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
32
  return 'https://s3-eu-central-1.amazonaws.com';
33
  case 'ap-northeast-1':
34
  return 'https://s3-ap-northeast-1.amazonaws.com';
 
 
35
  case 'ap-southeast-1':
36
  return 'https://s3-ap-southeast-1.amazonaws.com';
37
  case 'ap-southeast-2':
@@ -84,6 +86,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
84
  <option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
85
  <option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
86
  <option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
 
87
  <option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
88
  <option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
89
  <option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
32
  return 'https://s3-eu-central-1.amazonaws.com';
33
  case 'ap-northeast-1':
34
  return 'https://s3-ap-northeast-1.amazonaws.com';
35
+ case 'ap-northeast-2':
36
+ return 'https://s3-ap-northeast-2.amazonaws.com';
37
  case 'ap-southeast-1':
38
  return 'https://s3-ap-southeast-1.amazonaws.com';
39
  case 'ap-southeast-2':
86
  <option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
87
  <option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
88
  <option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
89
+ <option value="ap-northeast-2" <?php selected( 'ap-northeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Seoul)', 'backwpup' ); ?></option>
90
  <option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
91
  <option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
92
  <option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
inc/class-file.php CHANGED
@@ -38,7 +38,7 @@ class BackWPup_File {
38
  */
39
  public static function is_in_open_basedir( $file ) {
40
 
41
- $ini_open_basedir = strtolower( str_replace( '\\', '/', ini_get( 'open_basedir' ) ) );
42
 
43
  if ( empty( $ini_open_basedir ) ) {
44
  return TRUE;
@@ -51,6 +51,8 @@ class BackWPup_File {
51
  if ( empty( $open_base_dir ) ) {
52
  continue;
53
  }
 
 
54
  $part = substr( $file, 0, strlen( $open_base_dir ) );
55
  if ( $part === $open_base_dir ) {
56
  return TRUE;
38
  */
39
  public static function is_in_open_basedir( $file ) {
40
 
41
+ $ini_open_basedir = ini_get( 'open_basedir' );
42
 
43
  if ( empty( $ini_open_basedir ) ) {
44
  return TRUE;
51
  if ( empty( $open_base_dir ) ) {
52
  continue;
53
  }
54
+ $open_base_dir = realpath( $open_base_dir );
55
+ $open_base_dir = strtolower( str_replace( '\\', '/', $open_base_dir ) );
56
  $part = substr( $file, 0, strlen( $open_base_dir ) );
57
  if ( $part === $open_base_dir ) {
58
  return TRUE;
inc/class-job.php CHANGED
@@ -1,2439 +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
- } 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
- }
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-option.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Class for options
4
  */
@@ -25,7 +26,7 @@ final class BackWPup_Option {
25
  $max_execution_time = (int) ini_get( 'max_execution_time' );
26
  }
27
  add_site_option( 'backwpup_cfg_jobmaxexecutiontime', $max_execution_time );
28
- add_site_option( 'backwpup_cfg_jobziparchivemethod','' );
29
  add_site_option( 'backwpup_cfg_jobstepretry', 3 );
30
  add_site_option( 'backwpup_cfg_jobrunauthkey', substr( md5( BackWPup::get_plugin_data( 'hash' ) ), 11, 8 ) );
31
  add_site_option( 'backwpup_cfg_loglevel', 'normal_translated' );
@@ -34,13 +35,13 @@ final class BackWPup_Option {
34
  //Logs
35
  add_site_option( 'backwpup_cfg_maxlogs', 30 );
36
  add_site_option( 'backwpup_cfg_gzlogs', 0 );
37
- $upload_dir = wp_upload_dir();
38
- $logs_dir = trailingslashit( str_replace( '\\', '/',$upload_dir[ 'basedir' ] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-logs/';
39
  $content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
40
- $logs_dir = str_replace( $content_path, '', $logs_dir );
41
  add_site_option( 'backwpup_cfg_logfolder', $logs_dir );
42
  //Network Auth
43
- add_site_option( 'backwpup_cfg_httpauthuser','' );
44
  add_site_option( 'backwpup_cfg_httpauthpassword', '' );
45
 
46
  }
@@ -51,28 +52,29 @@ final class BackWPup_Option {
51
  * Load BackWPup Options
52
  *
53
  * @param bool $use_cache
 
54
  * @return array of options
55
  */
56
- private static function jobs_options( $use_cache = TRUE ) {
57
-
58
- if ( $use_cache ) {
59
- return get_site_option( 'backwpup_jobs' );
60
- }
61
-
62
- if ( is_multisite() ) {
63
- return get_site_option( 'backwpup_jobs', array(), FALSE );
64
- }
65
-
66
- //remove from options cache
67
- wp_cache_delete( 'backwpup_jobs', 'options' );
68
- //remove from all options
69
- $alloptions = wp_cache_get( 'alloptions', 'options' );
70
- if ( isset( $alloptions[ 'backwpup_jobs' ] ) ) {
71
- unset( $alloptions[ 'backwpup_jobs' ] );
72
- wp_cache_set( 'alloptions', $alloptions, 'options' );
73
  }
74
 
75
- return get_option( 'backwpup_jobs', array() );
76
  }
77
 
78
  /**
@@ -80,6 +82,7 @@ final class BackWPup_Option {
80
  * Update BackWPup Options
81
  *
82
  * @param array $options The options array to save
 
83
  * @return bool updated or not
84
  */
85
  private static function update_jobs_options( $options ) {
@@ -92,7 +95,8 @@ final class BackWPup_Option {
92
  *
93
  * Get default option for BackWPup option
94
  *
95
- * @param string $key Option key
 
96
  * @internal param int $id The job id
97
  *
98
  * @return bool|mixed
@@ -102,25 +106,25 @@ final class BackWPup_Option {
102
  $key = sanitize_key( trim( $key ) );
103
 
104
  //set defaults
105
- $default[ 'type' ] = array( 'DBDUMP', 'FILE', 'WPPLUGIN' );
106
- $default[ 'destinations' ] = array();
107
- $default[ 'name' ] = __( 'New Job', 'backwpup' );
108
- $default[ 'activetype' ] = '';
109
- $default[ 'logfile' ] = '';
110
- $default[ 'lastbackupdownloadurl' ] = '';
111
- $default[ 'cronselect' ] = 'basic';
112
- $default[ 'cron' ] = '0 3 * * *';
113
- $default[ 'mailaddresslog' ] = sanitize_email( get_bloginfo( 'admin_email' ) );
114
- $default[ 'mailaddresssenderlog' ] = 'BackWPup ' . get_bloginfo( 'name' ) . ' <' . sanitize_email( get_bloginfo( 'admin_email' ) ).'>';
115
- $default[ 'mailerroronly' ] = TRUE;
116
- $default[ 'backuptype' ] = 'archive';
117
- $default[ 'archiveformat' ] = '.tar.gz';
118
- $default[ 'archivename' ] = 'backwpup_' . BackWPup::get_plugin_data( 'hash' ) . '_%Y-%m-%d_%H-%i-%s';
119
  //defaults vor destinations
120
  foreach ( BackWPup::get_registered_destinations() as $dest_key => $dest ) {
121
- if ( ! empty( $dest[ 'class' ] ) ) {
122
  $dest_object = BackWPup::get_destination( $dest_key );
123
- $default = array_merge( $default, $dest_object->option_defaults() );
124
  }
125
  }
126
  //defaults vor job types
@@ -136,7 +140,7 @@ final class BackWPup_Option {
136
  if ( isset( $default[ $key ] ) ) {
137
  return $default[ $key ];
138
  } else {
139
- return FALSE;
140
  }
141
  }
142
 
@@ -144,9 +148,9 @@ final class BackWPup_Option {
144
  *
145
  * Update a BackWPup option
146
  *
147
- * @param int $jobid the job id
148
- * @param string $option Option key
149
- * @param mixed $value the value to store
150
  *
151
  * @return bool if option save or not
152
  */
@@ -156,12 +160,13 @@ final class BackWPup_Option {
156
  $option = sanitize_key( trim( $option ) );
157
 
158
  if ( empty( $jobid ) || empty( $option ) ) {
159
- return FALSE;
160
  }
161
 
162
  //Update option
163
- $jobs_options = self::jobs_options( FALSE );
164
  $jobs_options[ $jobid ][ $option ] = $value;
 
165
  return self::update_jobs_options( $jobs_options );
166
  }
167
 
@@ -170,19 +175,20 @@ final class BackWPup_Option {
170
  *
171
  * Get a BackWPup Option
172
  *
173
- * @param int $jobid Option the job id
174
- * @param string $option Option key
175
- * @param mixed $default returned if no value, if null the the default BackWPup option will get
176
- * @param bool $use_cache USe the cache
 
177
  * @return bool|mixed false if nothing can get else the option value
178
  */
179
- public static function get( $jobid, $option, $default = NULL, $use_cache = TRUE ) {
180
 
181
  $jobid = (int) $jobid;
182
  $option = sanitize_key( trim( $option ) );
183
 
184
  if ( empty( $jobid ) || empty( $option ) ) {
185
- return FALSE;
186
  }
187
 
188
  $jobs_options = self::jobs_options( $use_cache );
@@ -199,21 +205,21 @@ final class BackWPup_Option {
199
  *
200
  * BackWPup Job Options
201
  *
202
- * @param int $id The job id
203
  * @param bool $use_cache
204
  *
205
  * @return array of all job options
206
  */
207
- public static function get_job( $id, $use_cache = TRUE ) {
208
 
209
  if ( ! is_numeric( $id ) ) {
210
- return FALSE;
211
  }
212
 
213
- $id = intval( $id );
214
  $jobs_options = self::jobs_options( $use_cache );
215
 
216
- return wp_parse_args( $jobs_options[ $id ], self::defaults_job( ) );
217
  }
218
 
219
 
@@ -221,8 +227,8 @@ final class BackWPup_Option {
221
  *
222
  * Delete a BackWPup Option
223
  *
224
- * @param int $jobid the job id
225
- * @param string $option Option key
226
  *
227
  * @return bool deleted or not
228
  */
@@ -232,11 +238,11 @@ final class BackWPup_Option {
232
  $option = sanitize_key( trim( $option ) );
233
 
234
  if ( empty( $jobid ) || empty( $option ) ) {
235
- return FALSE;
236
  }
237
 
238
  //delete option
239
- $jobs_options = self::jobs_options( FALSE );
240
  unset( $jobs_options[ $jobid ][ $option ] );
241
 
242
  return self::update_jobs_options( $jobs_options );
@@ -253,11 +259,11 @@ final class BackWPup_Option {
253
  public static function delete_job( $id ) {
254
 
255
  if ( ! is_numeric( $id ) ) {
256
- return FALSE;
257
  }
258
 
259
- $id = intval( $id );
260
- $jobs_options = self::jobs_options( FALSE );
261
  unset( $jobs_options[ $id ] );
262
 
263
  return self::update_jobs_options( $jobs_options );
@@ -267,15 +273,15 @@ final class BackWPup_Option {
267
  *
268
  * get the id's of jobs
269
  *
270
- * @param string|null $key Option key or null for getting all id's
271
- * @param bool $value Value that the option must have to get the id
272
  *
273
  * @return array job id's
274
  */
275
- public static function get_job_ids( $key = NULL, $value = FALSE ) {
276
 
277
- $key = sanitize_key( trim( $key ) );
278
- $jobs_options = self::jobs_options( FALSE );
279
 
280
  if ( empty( $jobs_options ) ) {
281
  return array();
@@ -290,7 +296,7 @@ final class BackWPup_Option {
290
  $new_option_job_ids = array();
291
  foreach ( $jobs_options as $id => $option ) {
292
  if ( isset( $option[ $key ] ) && $value == $option[ $key ] ) {
293
- $new_option_job_ids[ ] = $id;
294
  }
295
  }
296
  sort( $new_option_job_ids );
1
  <?php
2
+
3
  /**
4
  * Class for options
5
  */
26
  $max_execution_time = (int) ini_get( 'max_execution_time' );
27
  }
28
  add_site_option( 'backwpup_cfg_jobmaxexecutiontime', $max_execution_time );
29
+ add_site_option( 'backwpup_cfg_jobziparchivemethod', '' );
30
  add_site_option( 'backwpup_cfg_jobstepretry', 3 );
31
  add_site_option( 'backwpup_cfg_jobrunauthkey', substr( md5( BackWPup::get_plugin_data( 'hash' ) ), 11, 8 ) );
32
  add_site_option( 'backwpup_cfg_loglevel', 'normal_translated' );
35
  //Logs
36
  add_site_option( 'backwpup_cfg_maxlogs', 30 );
37
  add_site_option( 'backwpup_cfg_gzlogs', 0 );
38
+ $upload_dir = wp_upload_dir();
39
+ $logs_dir = trailingslashit( str_replace( '\\', '/', $upload_dir['basedir'] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-logs/';
40
  $content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
41
+ $logs_dir = str_replace( $content_path, '', $logs_dir );
42
  add_site_option( 'backwpup_cfg_logfolder', $logs_dir );
43
  //Network Auth
44
+ add_site_option( 'backwpup_cfg_httpauthuser', '' );
45
  add_site_option( 'backwpup_cfg_httpauthpassword', '' );
46
 
47
  }
52
  * Load BackWPup Options
53
  *
54
  * @param bool $use_cache
55
+ *
56
  * @return array of options
57
  */
58
+ private static function jobs_options( $use_cache = true ) {
59
+ global $current_site;
60
+
61
+ //remove from cache
62
+ if ( ! $use_cache ) {
63
+ if ( is_multisite() ) {
64
+ $network_id = $current_site->id;
65
+ $cache_key = "$network_id:backwpup_jobs";
66
+ wp_cache_delete( $cache_key, 'site-options' );
67
+ } else {
68
+ wp_cache_delete( 'backwpup_jobs', 'options' );
69
+ $alloptions = wp_cache_get( 'alloptions', 'options' );
70
+ if ( isset( $alloptions['backwpup_jobs'] ) ) {
71
+ unset( $alloptions['backwpup_jobs'] );
72
+ wp_cache_set( 'alloptions', $alloptions, 'options' );
73
+ }
74
+ }
75
  }
76
 
77
+ return get_site_option( 'backwpup_jobs', array() );
78
  }
79
 
80
  /**
82
  * Update BackWPup Options
83
  *
84
  * @param array $options The options array to save
85
+ *
86
  * @return bool updated or not
87
  */
88
  private static function update_jobs_options( $options ) {
95
  *
96
  * Get default option for BackWPup option
97
  *
98
+ * @param string $key Option key
99
+ *
100
  * @internal param int $id The job id
101
  *
102
  * @return bool|mixed
106
  $key = sanitize_key( trim( $key ) );
107
 
108
  //set defaults
109
+ $default['type'] = array( 'DBDUMP', 'FILE', 'WPPLUGIN' );
110
+ $default['destinations'] = array();
111
+ $default['name'] = __( 'New Job', 'backwpup' );
112
+ $default['activetype'] = '';
113
+ $default['logfile'] = '';
114
+ $default['lastbackupdownloadurl'] = '';
115
+ $default['cronselect'] = 'basic';
116
+ $default['cron'] = '0 3 * * *';
117
+ $default['mailaddresslog'] = sanitize_email( get_bloginfo( 'admin_email' ) );
118
+ $default['mailaddresssenderlog'] = 'BackWPup ' . get_bloginfo( 'name' ) . ' <' . sanitize_email( get_bloginfo( 'admin_email' ) ) . '>';
119
+ $default['mailerroronly'] = true;
120
+ $default['backuptype'] = 'archive';
121
+ $default['archiveformat'] = '.tar.gz';
122
+ $default['archivename'] = 'backwpup_' . BackWPup::get_plugin_data( 'hash' ) . '_%Y-%m-%d_%H-%i-%s';
123
  //defaults vor destinations
124
  foreach ( BackWPup::get_registered_destinations() as $dest_key => $dest ) {
125
+ if ( ! empty( $dest['class'] ) ) {
126
  $dest_object = BackWPup::get_destination( $dest_key );
127
+ $default = array_merge( $default, $dest_object->option_defaults() );
128
  }
129
  }
130
  //defaults vor job types
140
  if ( isset( $default[ $key ] ) ) {
141
  return $default[ $key ];
142
  } else {
143
+ return false;
144
  }
145
  }
146
 
148
  *
149
  * Update a BackWPup option
150
  *
151
+ * @param int $jobid the job id
152
+ * @param string $option Option key
153
+ * @param mixed $value the value to store
154
  *
155
  * @return bool if option save or not
156
  */
160
  $option = sanitize_key( trim( $option ) );
161
 
162
  if ( empty( $jobid ) || empty( $option ) ) {
163
+ return false;
164
  }
165
 
166
  //Update option
167
+ $jobs_options = self::jobs_options( false );
168
  $jobs_options[ $jobid ][ $option ] = $value;
169
+
170
  return self::update_jobs_options( $jobs_options );
171
  }
172
 
175
  *
176
  * Get a BackWPup Option
177
  *
178
+ * @param int $jobid Option the job id
179
+ * @param string $option Option key
180
+ * @param mixed $default returned if no value, if null the the default BackWPup option will get
181
+ * @param bool $use_cache USe the cache
182
+ *
183
  * @return bool|mixed false if nothing can get else the option value
184
  */
185
+ public static function get( $jobid, $option, $default = null, $use_cache = true ) {
186
 
187
  $jobid = (int) $jobid;
188
  $option = sanitize_key( trim( $option ) );
189
 
190
  if ( empty( $jobid ) || empty( $option ) ) {
191
+ return false;
192
  }
193
 
194
  $jobs_options = self::jobs_options( $use_cache );
205
  *
206
  * BackWPup Job Options
207
  *
208
+ * @param int $id The job id
209
  * @param bool $use_cache
210
  *
211
  * @return array of all job options
212
  */
213
+ public static function get_job( $id, $use_cache = true ) {
214
 
215
  if ( ! is_numeric( $id ) ) {
216
+ return false;
217
  }
218
 
219
+ $id = intval( $id );
220
  $jobs_options = self::jobs_options( $use_cache );
221
 
222
+ return wp_parse_args( $jobs_options[ $id ], self::defaults_job() );
223
  }
224
 
225
 
227
  *
228
  * Delete a BackWPup Option
229
  *
230
+ * @param int $jobid the job id
231
+ * @param string $option Option key
232
  *
233
  * @return bool deleted or not
234
  */
238
  $option = sanitize_key( trim( $option ) );
239
 
240
  if ( empty( $jobid ) || empty( $option ) ) {
241
+ return false;
242
  }
243
 
244
  //delete option
245
+ $jobs_options = self::jobs_options( false );
246
  unset( $jobs_options[ $jobid ][ $option ] );
247
 
248
  return self::update_jobs_options( $jobs_options );
259
  public static function delete_job( $id ) {
260
 
261
  if ( ! is_numeric( $id ) ) {
262
+ return false;
263
  }
264
 
265
+ $id = intval( $id );
266
+ $jobs_options = self::jobs_options( false );
267
  unset( $jobs_options[ $id ] );
268
 
269
  return self::update_jobs_options( $jobs_options );
273
  *
274
  * get the id's of jobs
275
  *
276
+ * @param string|null $key Option key or null for getting all id's
277
+ * @param bool $value Value that the option must have to get the id
278
  *
279
  * @return array job id's
280
  */
281
+ public static function get_job_ids( $key = null, $value = false ) {
282
 
283
+ $key = sanitize_key( trim( $key ) );
284
+ $jobs_options = self::jobs_options( false );
285
 
286
  if ( empty( $jobs_options ) ) {
287
  return array();
296
  $new_option_job_ids = array();
297
  foreach ( $jobs_options as $id => $option ) {
298
  if ( isset( $option[ $key ] ) && $value == $option[ $key ] ) {
299
+ $new_option_job_ids[] = $id;
300
  }
301
  }
302
  sort( $new_option_job_ids );
inc/class-page-jobs.php CHANGED
@@ -282,7 +282,7 @@ class BackWPup_Page_Jobs extends WP_List_Table {
282
  $r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
283
  }
284
  }
285
- if ( BackWPup_Option::get( $item, 'activetype' ) == 'easycron' ) {
286
  $easycron_status = BackWPup_EasyCron::status( $item );
287
  if ( !empty( $easycron_status ) ) {
288
  $nextrun = BackWPup_Cron::cron_next( $easycron_status[ 'cron_expression' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
@@ -291,6 +291,9 @@ class BackWPup_Page_Jobs extends WP_List_Table {
291
  $r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
292
  }
293
  }
 
 
 
294
  else {
295
  $r .= __( 'Inactive', 'backwpup' );
296
  }
282
  $r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
283
  }
284
  }
285
+ elseif ( BackWPup_Option::get( $item, 'activetype' ) == 'easycron' ) {
286
  $easycron_status = BackWPup_EasyCron::status( $item );
287
  if ( !empty( $easycron_status ) ) {
288
  $nextrun = BackWPup_Cron::cron_next( $easycron_status[ 'cron_expression' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
291
  $r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
292
  }
293
  }
294
+ elseif ( BackWPup_Option::get( $item, 'activetype' ) == 'link' ) {
295
+ $r .= __( 'External link', 'backwpup' ) . '<br />';
296
+ }
297
  else {
298
  $r .= __( 'Inactive', 'backwpup' );
299
  }
languages/backwpup.pot CHANGED
@@ -1,5576 +1,5583 @@
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 ""
 
 
 
 
 
 
 
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: Fri Jan 08 2016 09:59:59 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:297 ../inc/class-page-backups.php:269
50
+ msgid "Folder"
51
+ msgstr ""
52
+
53
+ #: ../backwpup.php:298
54
+ msgid "Backup to Folder"
55
+ msgstr ""
56
+
57
+ #: ../backwpup.php:313
58
+ msgid "Email"
59
+ msgstr ""
60
+
61
+ #: ../backwpup.php:314
62
+ msgid "Backup sent via email"
63
+ msgstr ""
64
+
65
+ #: ../backwpup.php:329
66
+ msgid "FTP"
67
+ msgstr ""
68
+
69
+ #: ../backwpup.php:330
70
+ msgid "Backup to FTP"
71
+ msgstr ""
72
+
73
+ #: ../backwpup.php:345 ../inc/class-destination-dropbox.php:278
74
+ msgid "Dropbox"
75
+ msgstr ""
76
+
77
+ #: ../backwpup.php:346 ../inc/class-page-about.php:577
78
+ msgid "Backup to Dropbox"
79
+ msgstr ""
80
+
81
+ #: ../backwpup.php:362 ../backwpup.php:381 ../inc/class-destination-s3-v1.php:73 .
82
+ #: ./inc/class-destination-s3.php:76
83
+ msgid "S3 Service"
84
+ msgstr ""
85
+
86
+ #: ../backwpup.php:363
87
+ msgid "Backup to an S3 Service"
88
+ msgstr ""
89
+
90
+ #: ../backwpup.php:382
91
+ msgid "Backup to an S3 Service v1"
92
+ msgstr ""
93
+
94
+ #: ../backwpup.php:398
95
+ msgid "MS Azure"
96
+ msgstr ""
97
+
98
+ #: ../backwpup.php:399
99
+ msgid "Backup to Microsoft Azure (Blob)"
100
+ msgstr ""
101
+
102
+ #: ../backwpup.php:414
103
+ msgid "RSC"
104
+ msgstr ""
105
+
106
+ #: ../backwpup.php:415 ../inc/class-page-about.php:582
107
+ msgid "Backup to Rackspace Cloud Files"
108
+ msgstr ""
109
+
110
+ #: ../backwpup.php:431
111
+ msgid "SugarSync"
112
+ msgstr ""
113
+
114
+ #: ../backwpup.php:432 ../inc/class-page-about.php:597
115
+ msgid "Backup to SugarSync"
116
+ msgstr ""
117
+
118
+ #: ../backwpup.php:451
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:458
124
+ #, php-format
125
+ msgid "Missing function \"%s\"."
126
+ msgstr ""
127
+
128
+ #: ../backwpup.php:467
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:318 ../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:330 ../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:194 ../inc/class-admin.
219
+ #: php:194 ../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:158
268
+ #: ../inc/class-destination-s3.php:163 ../inc/class-destination-rsc.php:106 ..
269
+ #: /inc/pro/class-destination-glacier.php:95
270
+ msgid "File deletion"
271
+ msgstr ""
272
+
273
+ #: ../inc/class-destination-msazure.php:81 ../inc/class-destination-s3-v1.php:163
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:168 ..
276
+ #: /inc/class-destination-rsc.php:111 ../inc/pro/class-destination-msazure.php:35
277
+ #: ../inc/pro/class-destination-s3-v1.php:61 ../inc/pro/class-destination-folder.
278
+ #: php:24 ../inc/pro/class-destination-dropbox.php:42 ../inc/pro/class-
279
+ #: destination-s3.php:63 ../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:97 ../inc/pro/class-destination-glacier.
282
+ #: php:183
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:164
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
+ #: 169 ../inc/class-destination-rsc.php:112 ../inc/pro/class-destination-msazure.
290
+ #: php:36 ../inc/pro/class-destination-s3-v1.php:62 ../inc/pro/class-destination-
291
+ #: folder.php:25 ../inc/pro/class-destination-dropbox.php:43 ../inc/pro/class-
292
+ #: destination-s3.php:64 ../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:168
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:173 ../inc/class-destination-rsc.php:116 ..
301
+ #: /inc/pro/class-destination-msazure.php:41 ../inc/pro/class-destination-s3-v1.
302
+ #: php:67 ../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:69 ..
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:416 ../inc/class-destination-s3.php:508 ..
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:390
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
+ #: 579 ../inc/class-destination-s3.php:685 ../inc/pro/class-destination-glacier.
377
+ #: php:539
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:397
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:625
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:488
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:77 ../inc/class-destination-s3.php:80
1174
+ msgid "Select a S3 service"
1175
+ msgstr ""
1176
+
1177
+ #: ../inc/class-destination-s3-v1.php:79 ../inc/class-destination-s3.php:82 ..
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:80 ../inc/class-destination-s3.php:83 ..
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:81 ../inc/class-destination-s3.php:84 ..
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:82 ../inc/class-destination-s3.php:85 ..
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:83 ../inc/class-destination-s3.php:86 ..
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:84 ../inc/class-destination-s3.php:87 ..
1203
+ #: /inc/pro/class-destination-s3.php:23
1204
+ msgid "Amazon S3: EU (Germany)"
1205
+ msgstr ""
1206
+
1207
+ #: ../inc/class-destination-s3-v1.php:85 ../inc/class-destination-s3.php:88 ..
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:86 ../inc/class-destination-s3.php:89 ..
1213
+ #: /inc/pro/class-destination-s3-v1.php:24 ../inc/pro/class-destination-s3.php:25
1214
+ msgid "Amazon S3: Asia Pacific (Seoul)"
1215
+ msgstr ""
1216
+
1217
+ #: ../inc/class-destination-s3-v1.php:87 ../inc/class-destination-s3.php:90 ..
1218
+ #: /inc/pro/class-destination-s3-v1.php:25 ../inc/pro/class-destination-s3.php:26
1219
+ msgid "Amazon S3: Asia Pacific (Singapore)"
1220
+ msgstr ""
1221
+
1222
+ #: ../inc/class-destination-s3-v1.php:88 ../inc/class-destination-s3.php:91 ..
1223
+ #: /inc/pro/class-destination-s3-v1.php:26 ../inc/pro/class-destination-s3.php:27
1224
+ msgid "Amazon S3: Asia Pacific (Sydney)"
1225
+ msgstr ""
1226
+
1227
+ #: ../inc/class-destination-s3-v1.php:89 ../inc/class-destination-s3.php:92 ..
1228
+ #: /inc/pro/class-destination-s3-v1.php:27 ../inc/pro/class-destination-s3.php:28
1229
+ msgid "Amazon S3: South America (Sao Paulo)"
1230
+ msgstr ""
1231
+
1232
+ #: ../inc/class-destination-s3-v1.php:90 ../inc/class-destination-s3.php:93 ..
1233
+ #: /inc/pro/class-destination-s3-v1.php:28 ../inc/pro/class-destination-s3.php:29
1234
+ msgid "Amazon S3: China (Beijing)"
1235
+ msgstr ""
1236
+
1237
+ #: ../inc/class-destination-s3-v1.php:91 ../inc/pro/class-destination-s3-v1.php:29
1238
+ msgid "Google Storage (Interoperable Access)"
1239
+ msgstr ""
1240
+
1241
+ #: ../inc/class-destination-s3-v1.php:92 ../inc/class-destination-s3.php:97 ..
1242
+ #: /inc/pro/class-destination-s3-v1.php:31 ../inc/pro/class-destination-s3.php:33
1243
+ msgid "Dream Host Cloud Storage"
1244
+ msgstr ""
1245
+
1246
+ #: ../inc/class-destination-s3-v1.php:93 ../inc/class-destination-s3.php:98 ..
1247
+ #: /inc/pro/class-destination-s3-v1.php:32 ../inc/pro/class-destination-s3.php:34
1248
+ msgid "GreenQloud Storage Qloud"
1249
+ msgstr ""
1250
+
1251
+ #: ../inc/class-destination-s3-v1.php:98 ../inc/class-destination-s3.php:103
1252
+ msgid "Or a S3 Server URL"
1253
+ msgstr ""
1254
+
1255
+ #: ../inc/class-destination-s3-v1.php:105 ../inc/class-destination-s3.php:110
1256
+ msgid "S3 Access Keys"
1257
+ msgstr ""
1258
+
1259
+ #: ../inc/class-destination-s3-v1.php:109 ../inc/class-destination-s3.php:114 ..
1260
+ #: /inc/pro/class-destination-glacier.php:53
1261
+ msgid "Access Key"
1262
+ msgstr ""
1263
+
1264
+ #: ../inc/class-destination-s3-v1.php:116 ../inc/class-destination-s3.php:121 ..
1265
+ #: /inc/pro/class-destination-glacier.php:60
1266
+ msgid "Secret Key"
1267
+ msgstr ""
1268
+
1269
+ #: ../inc/class-destination-s3-v1.php:124 ../inc/class-destination-s3.php:129
1270
+ msgid "S3 Bucket"
1271
+ msgstr ""
1272
+
1273
+ #: ../inc/class-destination-s3-v1.php:128 ../inc/class-destination-s3.php:133
1274
+ msgid "Bucket selection"
1275
+ msgstr ""
1276
+
1277
+ #: ../inc/class-destination-s3-v1.php:141 ../inc/class-destination-s3.php:146
1278
+ msgid "Create a new bucket"
1279
+ msgstr ""
1280
+
1281
+ #: ../inc/class-destination-s3-v1.php:148 ../inc/class-destination-s3.php:153
1282
+ msgid "S3 Backup settings"
1283
+ msgstr ""
1284
+
1285
+ #: ../inc/class-destination-s3-v1.php:152 ../inc/class-destination-s3.php:157 ..
1286
+ #: /inc/class-destination-rsc.php:100
1287
+ msgid "Folder in bucket"
1288
+ msgstr ""
1289
+
1290
+ #: ../inc/class-destination-s3-v1.php:174 ../inc/class-destination-s3.php:189
1291
+ msgid "Amazon specific settings"
1292
+ msgstr ""
1293
+
1294
+ #: ../inc/class-destination-s3-v1.php:178 ../inc/class-destination-s3-v1.php:180 .
1295
+ #: ./inc/class-destination-s3.php:193 ../inc/class-destination-s3.php:195
1296
+ msgid "Amazon: Storage Class"
1297
+ msgstr ""
1298
+
1299
+ #: ../inc/class-destination-s3-v1.php:181 ../inc/class-destination-s3.php:196
1300
+ msgid "Standard"
1301
+ msgstr ""
1302
+
1303
+ #: ../inc/class-destination-s3-v1.php:182 ../inc/class-destination-s3.php:197
1304
+ msgid "Standard-Infrequent Access"
1305
+ msgstr ""
1306
+
1307
+ #: ../inc/class-destination-s3-v1.php:183 ../inc/class-destination-s3.php:198
1308
+ msgid "Reduced Redundancy"
1309
+ msgstr ""
1310
+
1311
+ #: ../inc/class-destination-s3-v1.php:188 ../inc/class-destination-s3.php:203
1312
+ msgid "Server side encryption"
1313
+ msgstr ""
1314
+
1315
+ #: ../inc/class-destination-s3-v1.php:192 ../inc/class-destination-s3.php:207
1316
+ msgid "Save files encrypted (AES256) on server."
1317
+ msgstr ""
1318
+
1319
+ #: ../inc/class-destination-s3-v1.php:253 ../inc/class-destination-s3.php:267
1320
+ #, php-format
1321
+ msgid "Bucket %1$s created."
1322
+ msgstr ""
1323
+
1324
+ #: ../inc/class-destination-s3-v1.php:255 ../inc/pro/class-destination-s3-v1.php:
1325
+ #: 137
1326
+ #, php-format
1327
+ msgid "Bucket %s could not be created."
1328
+ msgstr ""
1329
+
1330
+ #: ../inc/class-destination-s3-v1.php:301 ../inc/class-destination-s3-v1.php:423 .
1331
+ #: ./inc/class-destination-s3-v1.php:474 ../inc/class-destination-s3.php:310 ..
1332
+ #: /inc/class-destination-s3.php:439 ../inc/class-destination-s3.php:493 ..
1333
+ #: /inc/class-destination-s3.php:527 ../inc/class-destination-s3.php:587 ..
1334
+ #: /inc/pro/class-destination-s3-v1.php:315 ../inc/pro/class-destination-s3.php:328
1335
+ #, php-format
1336
+ msgid "S3 Service API: %s"
1337
+ msgstr ""
1338
+
1339
+ #: ../inc/class-destination-s3-v1.php:366 ../inc/class-destination-s3.php:374
1340
+ #, php-format
1341
+ msgid "%d. Trying to send backup file to S3 Service&#160;&hellip;"
1342
+ msgstr ""
1343
+
1344
+ #: ../inc/class-destination-s3-v1.php:387 ../inc/class-destination-s3.php:387 ..
1345
+ #: /inc/pro/class-destination-s3-v1.php:183 ../inc/pro/class-destination-s3.php:179
1346
+ #, php-format
1347
+ msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
1348
+ msgstr ""
1349
+
1350
+ #: ../inc/class-destination-s3-v1.php:390 ../inc/class-destination-s3.php:390 ..
1351
+ #: /inc/pro/class-destination-s3-v1.php:186 ../inc/pro/class-destination-s3.php:182
1352
+ #, php-format
1353
+ msgid "S3 Bucket \"%s\" does not exist!"
1354
+ msgstr ""
1355
+
1356
+ #: ../inc/class-destination-s3-v1.php:396 ../inc/class-destination-s3.php:409
1357
+ msgid "Starting upload to S3 Service&#160;&hellip;"
1358
+ msgstr ""
1359
+
1360
+ #: ../inc/class-destination-s3-v1.php:414 ../inc/class-destination-s3.php:518 ..
1361
+ #: /inc/pro/class-destination-glacier.php:366
1362
+ #, php-format
1363
+ msgid "Backup transferred to %s."
1364
+ msgstr ""
1365
+
1366
+ #: ../inc/class-destination-s3-v1.php:419 ../inc/class-destination-s3.php:523
1367
+ #, php-format
1368
+ msgid "Cannot transfer backup to S3! (%1$d) %2$s"
1369
+ msgstr ""
1370
+
1371
+ #: ../inc/class-destination-s3-v1.php:464 ../inc/class-destination-s3.php:577
1372
+ #, php-format
1373
+ msgid "Cannot delete backup from %s."
1374
+ msgstr ""
1375
+
1376
+ #: ../inc/class-destination-s3-v1.php:468 ../inc/class-destination-s3.php:581
1377
+ #, php-format
1378
+ msgid "One file deleted on S3 Bucket."
1379
+ msgid_plural "%d files deleted on S3 Bucket"
1380
+ msgstr[0] ""
1381
+ msgstr[1] ""
1382
+
1383
+ #: ../inc/class-destination-s3-v1.php:581 ../inc/class-destination-s3.php:687 ..
1384
+ #: /inc/pro/class-destination-glacier.php:541
1385
+ msgid "Missing secret access key!"
1386
+ msgstr ""
1387
+
1388
+ #: ../inc/class-destination-s3-v1.php:587 ../inc/class-destination-s3.php:693
1389
+ msgid "No bucket found!"
1390
+ msgstr ""
1391
+
1392
+ #: ../inc/class-create-archive.php:71
1393
+ msgid "The file name of an archive cannot be empty."
1394
+ msgstr ""
1395
+
1396
+ #: ../inc/class-create-archive.php:79
1397
+ #, php-format
1398
+ msgctxt "%s = Folder name"
1399
+ msgid "Folder %s for archive not found"
1400
+ msgstr ""
1401
+
1402
+ #: ../inc/class-create-archive.php:85 ../inc/class-create-archive.php:120 ..
1403
+ #: /inc/class-create-archive.php:137 ../inc/class-mysqldump.php:133
1404
+ msgid "Functions for gz compression not available"
1405
+ msgstr ""
1406
+
1407
+ #: ../inc/class-create-archive.php:92 ../inc/class-create-archive.php:143
1408
+ msgid "Functions for bz2 compression not available"
1409
+ msgstr ""
1410
+
1411
+ #: ../inc/class-create-archive.php:116
1412
+ #, php-format
1413
+ msgctxt "ZipArchive open() result"
1414
+ msgid "Cannot create zip archive: %d"
1415
+ msgstr ""
1416
+
1417
+ #: ../inc/class-create-archive.php:149
1418
+ #, php-format
1419
+ msgctxt "%s = file name"
1420
+ msgid "Method to archive file %s not detected"
1421
+ msgstr ""
1422
+
1423
+ #: ../inc/class-create-archive.php:154
1424
+ msgid "Cannot open archive file"
1425
+ msgstr ""
1426
+
1427
+ #: ../inc/class-create-archive.php:174 ../inc/class-create-archive.php:371
1428
+ #, php-format
1429
+ msgid "PclZip archive add error: %s"
1430
+ msgstr ""
1431
+
1432
+ #: ../inc/class-create-archive.php:184
1433
+ msgid "ZIP archive cannot be closed correctly."
1434
+ msgstr ""
1435
+
1436
+ #: ../inc/class-create-archive.php:238
1437
+ msgid "File name cannot be empty"
1438
+ msgstr ""
1439
+
1440
+ #: ../inc/class-create-archive.php:247
1441
+ #, php-format
1442
+ msgctxt "File to add to archive"
1443
+ msgid "File %s does not exist or is not readable"
1444
+ msgstr ""
1445
+
1446
+ #: ../inc/class-create-archive.php:278 ../inc/class-create-archive.php:294 ..
1447
+ #: /inc/class-create-archive.php:414 ../inc/class-create-archive.php:418
1448
+ msgid "This archive method can only add one file"
1449
+ msgstr ""
1450
+
1451
+ #: ../inc/class-create-archive.php:283 ../inc/class-create-archive.php:299
1452
+ #, php-format
1453
+ msgid "Cannot open source file %s to archive"
1454
+ msgstr ""
1455
+
1456
+ #: ../inc/class-create-archive.php:333
1457
+ msgid "ZIP archive cannot be closed correctly"
1458
+ msgstr ""
1459
+
1460
+ #: ../inc/class-create-archive.php:351 ../inc/class-create-archive.php:360 ..
1461
+ #: /inc/class-create-archive.php:429
1462
+ #, php-format
1463
+ msgid "Cannot add \"%s\" to zip archive!"
1464
+ msgstr ""
1465
+
1466
+ #: ../inc/class-create-archive.php:396
1467
+ msgid "Folder name cannot be empty"
1468
+ msgstr ""
1469
+
1470
+ #: ../inc/class-create-archive.php:401
1471
+ #, php-format
1472
+ msgctxt "Folder path to add to archive"
1473
+ msgid "Folder %s does not exist or is not readable"
1474
+ msgstr ""
1475
+
1476
+ #: ../inc/class-create-archive.php:451
1477
+ #, php-format
1478
+ msgctxt "Text of ZipArchive status Message"
1479
+ msgid "ZipArchive returns status: %s"
1480
+ msgstr ""
1481
+
1482
+ #: ../inc/class-create-archive.php:481
1483
+ #, php-format
1484
+ msgid "File name \"%1$s\" is too long to be saved correctly in %2$s archive!"
1485
+ msgstr ""
1486
+
1487
+ #: ../inc/class-create-archive.php:484
1488
+ #, php-format
1489
+ msgid "File path \"%1$s\" is too long to be saved correctly in %2$s archive!"
1490
+ msgstr ""
1491
+
1492
+ #: ../inc/class-create-archive.php:496
1493
+ #, php-format
1494
+ msgid "Cannot open source file %s for archiving"
1495
+ msgstr ""
1496
+
1497
+ #: ../inc/class-create-archive.php:501 ../inc/class-create-archive.php:502 ..
1498
+ #: /inc/class-create-archive.php:601 ../inc/class-create-archive.php:602
1499
+ msgid "Unknown"
1500
+ msgstr ""
1501
+
1502
+ #: ../inc/class-create-archive.php:592
1503
+ #, php-format
1504
+ msgid "Folder name \"%1$s\" is too long to be saved correctly in %2$s archive!"
1505
+ msgstr ""
1506
+
1507
+ #: ../inc/class-create-archive.php:595
1508
+ #, php-format
1509
+ msgid "Folder path \"%1$s\" is too long to be saved correctly in %2$s archive!"
1510
+ msgstr ""
1511
+
1512
+ #: ../inc/class-create-archive.php:676
1513
+ #, php-format
1514
+ msgid ""
1515
+ "If %s will be added to your backup archive, the archive will be too large "
1516
+ "for operations with this PHP Version. You might want to consider splitting "
1517
+ "the backup job in multiple jobs with less files each."
1518
+ msgstr ""
1519
+
1520
+ #: ../inc/class-admin.php:130 ../inc/class-help.php:29
1521
+ msgid "https://marketpress.com/documentation/backwpup-pro/"
1522
+ msgstr ""
1523
+
1524
+ #: ../inc/class-admin.php:130 ../inc/pro/class-marketpress-documentation.php:149 .
1525
+ #: ./inc/pro/class-pro.php:197 ../inc/pro/class-pro.php:197
1526
+ msgid "Documentation"
1527
+ msgstr ""
1528
+
1529
+ #: ../inc/class-admin.php:132 ../inc/class-help.php:26
1530
+ msgid "https://marketpress.com/support/forum/plugins/backwpup-pro/"
1531
+ msgstr ""
1532
+
1533
+ #: ../inc/class-admin.php:132 ../inc/class-help.php:26
1534
+ msgid "Pro Support"
1535
+ msgstr ""
1536
+
1537
+ #: ../inc/class-admin.php:134 ../inc/class-help.php:28
1538
+ msgid "http://wordpress.org/support/plugin/backwpup/"
1539
+ msgstr ""
1540
+
1541
+ #: ../inc/class-admin.php:134 ../inc/class-help.php:28
1542
+ msgid "Support"
1543
+ msgstr ""
1544
+
1545
+ #: ../inc/class-admin.php:147
1546
+ msgid "BackWPup Dashboard"
1547
+ msgstr ""
1548
+
1549
+ #: ../inc/class-admin.php:147
1550
+ msgid "Dashboard"
1551
+ msgstr ""
1552
+
1553
+ #: ../inc/class-admin.php:164 ../inc/class-admin.php:164 ../inc/class-adminbar.
1554
+ #: php:86 ../inc/class-page-settings.php:120
1555
+ msgid "Jobs"
1556
+ msgstr ""
1557
+
1558
+ #: ../inc/class-admin.php:179 ../inc/class-admin.php:179
1559
+ msgid "Add new job"
1560
+ msgstr ""
1561
+
1562
+ #: ../inc/class-admin.php:209 ../inc/class-admin.php:209 ../inc/class-adminbar.
1563
+ #: php:110
1564
+ msgid "Backups"
1565
+ msgstr ""
1566
+
1567
+ #: ../inc/class-admin.php:224 ../inc/class-admin.php:224
1568
+ msgid "Settings"
1569
+ msgstr ""
1570
+
1571
+ #: ../inc/class-admin.php:237 ../inc/class-admin.php:237
1572
+ msgid "About"
1573
+ msgstr ""
1574
+
1575
+ #: ../inc/class-admin.php:274 ../inc/class-admin.php:280
1576
+ msgid "Cheating, huh?"
1577
+ msgstr ""
1578
+
1579
+ #: ../inc/class-admin.php:395
1580
+ msgid "http://marketpress.com"
1581
+ msgstr ""
1582
+
1583
+ #: ../inc/class-admin.php:395 ../inc/class-admin.php:395
1584
+ msgid "MarketPress"
1585
+ msgstr ""
1586
+
1587
+ #: ../inc/class-admin.php:397
1588
+ #, php-format
1589
+ msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
1590
+ msgstr ""
1591
+
1592
+ #: ../inc/class-admin.php:416
1593
+ #, php-format
1594
+ msgid "version %s"
1595
+ msgstr ""
1596
+
1597
+ #: ../inc/class-admin.php:461
1598
+ msgid "Add BackWPup Role"
1599
+ msgstr ""
1600
+
1601
+ #: ../inc/class-admin.php:465
1602
+ msgid "&mdash; No additional role for BackWPup &mdash;"
1603
+ msgstr ""
1604
+
1605
+ #: ../inc/class-admin.php:548
1606
+ #, php-format
1607
+ msgid ""
1608
+ "<strong>Important:</strong> before updating, please <a href=\"%1$s\">back up "
1609
+ "your database and files</a> with <a href=\"http://marketpress."
1610
+ "de/product/backwpup-pro/\">%2$s</a>. For help with updates, visit the <a "
1611
+ "href=\"http://codex.wordpress.org/Updating_WordPress\">Updating WordPress</a> "
1612
+ "Codex page."
1613
+ msgstr ""
1614
+
1615
+ #: ../inc/class-admin.php:552 ../inc/class-admin.php:556
1616
+ #, php-format
1617
+ msgid ""
1618
+ "<strong>Important:</strong> before installing this plugin, please <a "
1619
+ "href=\"%1$s\">back up your database and files</a> with <a href=\"http:"
1620
+ "//marketpress.de/product/backwpup-pro/\">%2$s</a>."
1621
+ msgstr ""
1622
+
1623
+ #: ../inc/class-easycron.php:179
1624
+ #, php-format
1625
+ msgid "EasyCron.com API returns (%s): %s"
1626
+ msgstr ""
1627
+
1628
+ #: ../inc/class-easycron.php:188
1629
+ msgid "EasyCron"
1630
+ msgstr ""
1631
+
1632
+ #: ../inc/class-easycron.php:189
1633
+ msgid ""
1634
+ "Here you can setup your <a href=\"https://www.easycron.com/user/token?"
1635
+ "ref=36673\" class=\"help-tip\" title=\"Affiliate Link!\">EasyCron.com API key</a> "
1636
+ "to use this service."
1637
+ msgstr ""
1638
+
1639
+ #: ../inc/class-easycron.php:192
1640
+ msgid "Api key:"
1641
+ msgstr ""
1642
+
1643
+ #: ../inc/class-easycron.php:200
1644
+ msgid "Trigger WordPress Cron:"
1645
+ msgstr ""
1646
+
1647
+ #: ../inc/class-easycron.php:204
1648
+ msgid ""
1649
+ "If you check this box, a cron job will be created on EasyCron that all 5 "
1650
+ "Minutes calls the WordPress cron."
1651
+ msgstr ""
1652
+
1653
+ #: ../inc/class-destination-sugarsync.php:22
1654
+ msgid "Sugarsync Login"
1655
+ msgstr ""
1656
+
1657
+ #: ../inc/class-destination-sugarsync.php:28 ../inc/class-destination-sugarsync.
1658
+ #: php:47 ../inc/class-destination-dropbox.php:55
1659
+ msgid "Authentication"
1660
+ msgstr ""
1661
+
1662
+ #: ../inc/class-destination-sugarsync.php:30 ../inc/pro/class-destination-
1663
+ #: sugarsync.php:17
1664
+ msgid "Email address:"
1665
+ msgstr ""
1666
+
1667
+ #: ../inc/class-destination-sugarsync.php:34 ../inc/pro/class-jobtype-dbdump.php:
1668
+ #: 123 ../inc/pro/class-destination-sugarsync.php:20 ../inc/pro/class-destination-
1669
+ #: ftp.php:29
1670
+ msgid "Password:"
1671
+ msgstr ""
1672
+
1673
+ #: ../inc/class-destination-sugarsync.php:40 ../inc/class-destination-sugarsync.
1674
+ #: php:121
1675
+ msgid "Authenticate with Sugarsync!"
1676
+ msgstr ""
1677
+
1678
+ #: ../inc/class-destination-sugarsync.php:42 ../inc/class-destination-sugarsync.
1679
+ #: php:137 ../inc/pro/class-destination-sugarsync.php:27 ../inc/pro/class-
1680
+ #: destination-sugarsync.php:101
1681
+ msgid "Create Sugarsync account"
1682
+ msgstr ""
1683
+
1684
+ #: ../inc/class-destination-sugarsync.php:49 ../inc/class-destination-dropbox.php:
1685
+ #: 60 ../inc/pro/class-destination-sugarsync.php:32 ../inc/pro/class-destination-
1686
+ #: dropbox.php:35 ../inc/pro/class-destination-gdrive.php:53 ../inc/pro/class-
1687
+ #: destination-gdrive.php:277
1688
+ msgid "Authenticated!"
1689
+ msgstr ""
1690
+
1691
+ #: ../inc/class-destination-sugarsync.php:51 ../inc/class-destination-sugarsync.
1692
+ #: php:133 ../inc/pro/class-destination-sugarsync.php:34 ../inc/pro/class-
1693
+ #: destination-sugarsync.php:97
1694
+ msgid "Delete Sugarsync authentication!"
1695
+ msgstr ""
1696
+
1697
+ #: ../inc/class-destination-sugarsync.php:57
1698
+ msgid "SugarSync Root"
1699
+ msgstr ""
1700
+
1701
+ #: ../inc/class-destination-sugarsync.php:61
1702
+ msgid "Sync folder selection"
1703
+ msgstr ""
1704
+
1705
+ #: ../inc/class-destination-sugarsync.php:69 ../inc/pro/class-destination-
1706
+ #: sugarsync.php:43
1707
+ msgid "No Syncfolders found!"
1708
+ msgstr ""
1709
+
1710
+ #: ../inc/class-destination-sugarsync.php:90
1711
+ msgid "Folder in root"
1712
+ msgstr ""
1713
+
1714
+ #: ../inc/class-destination-sugarsync.php:96 ../inc/class-destination-folder.php:
1715
+ #: 39 ../inc/class-destination-dropbox.php:102 ../inc/class-destination-ftp.php:
1716
+ #: 62 ../inc/pro/class-destination-gdrive.php:71
1717
+ msgid "File Deletion"
1718
+ msgstr ""
1719
+
1720
+ #: ../inc/class-destination-sugarsync.php:227
1721
+ #, php-format
1722
+ msgid "%d. Try to send backup to SugarSync&#160;&hellip;"
1723
+ msgstr ""
1724
+
1725
+ #: ../inc/class-destination-sugarsync.php:234
1726
+ #, php-format
1727
+ msgid "Authenticated to SugarSync with nickname %s"
1728
+ msgstr ""
1729
+
1730
+ #: ../inc/class-destination-sugarsync.php:237
1731
+ #, php-format
1732
+ msgctxt "Available space on SugarSync"
1733
+ msgid "Not enough disk space available on SugarSync. Available: %s."
1734
+ msgstr ""
1735
+
1736
+ #: ../inc/class-destination-sugarsync.php:243
1737
+ #, php-format
1738
+ msgid "%s available at SugarSync"
1739
+ msgstr ""
1740
+
1741
+ #: ../inc/class-destination-sugarsync.php:250
1742
+ msgid "Starting upload to SugarSync&#160;&hellip;"
1743
+ msgstr ""
1744
+
1745
+ #: ../inc/class-destination-sugarsync.php:260
1746
+ msgid "Cannot transfer backup to SugarSync!"
1747
+ msgstr ""
1748
+
1749
+ #: ../inc/class-destination-sugarsync.php:299
1750
+ #, php-format
1751
+ msgid "One file deleted on SugarSync folder"
1752
+ msgid_plural "%d files deleted on SugarSync folder"
1753
+ msgstr[0] ""
1754
+ msgstr[1] ""
1755
+
1756
+ #: ../inc/class-destination-sugarsync.php:305
1757
+ #, php-format
1758
+ msgid "SugarSync API: %s"
1759
+ msgstr ""
1760
+
1761
+ #: ../inc/class-destination-folder.php:33
1762
+ msgid "Folder to store backups in"
1763
+ msgstr ""
1764
+
1765
+ #: ../inc/class-destination-folder.php:211
1766
+ #, php-format
1767
+ msgid "One backup file deleted"
1768
+ msgid_plural "%d backup files deleted"
1769
+ msgstr[0] ""
1770
+ msgstr[1] ""
1771
+
1772
+ #: ../inc/class-destination-dropbox.php:36 ../inc/class-destination-dropbox.php:
1773
+ #: 332 ../inc/pro/class-destination-dropbox.php:253
1774
+ #, php-format
1775
+ msgid "Dropbox API: %s"
1776
+ msgstr ""
1777
+
1778
+ #: ../inc/class-destination-dropbox.php:51 ../inc/pro/class-destination-gdrive.
1779
+ #: php:45
1780
+ msgid "Login"
1781
+ msgstr ""
1782
+
1783
+ #: ../inc/class-destination-dropbox.php:57 ../inc/pro/class-destination-gdrive.
1784
+ #: php:51 ../inc/pro/class-destination-gdrive.php:271
1785
+ msgid "Not authenticated!"
1786
+ msgstr ""
1787
+
1788
+ #: ../inc/class-destination-dropbox.php:58 ../inc/pro/class-destination-dropbox.
1789
+ #: php:29
1790
+ msgid "Create Account"
1791
+ msgstr ""
1792
+
1793
+ #: ../inc/class-destination-dropbox.php:61 ../inc/class-destination-dropbox.php:61
1794
+ msgid "Delete Dropbox Authentication"
1795
+ msgstr ""
1796
+
1797
+ #: ../inc/class-destination-dropbox.php:68
1798
+ msgid "App Access to Dropbox"
1799
+ msgstr ""
1800
+
1801
+ #: ../inc/class-destination-dropbox.php:70
1802
+ msgid ""
1803
+ "A dedicated folder named BackWPup will be created inside of the Apps folder "
1804
+ "in your Dropbox. BackWPup will get read and write access to that folder only."
1805
+ " You can specify a subfolder as your backup destination for this job in the "
1806
+ "destination field below."
1807
+ msgstr ""
1808
+
1809
+ #: ../inc/class-destination-dropbox.php:71
1810
+ msgid "Get Dropbox App auth code"
1811
+ msgstr ""
1812
+
1813
+ #: ../inc/class-destination-dropbox.php:72
1814
+ msgid "Allows restricted access to Apps/BackWPup folder only."
1815
+ msgstr ""
1816
+
1817
+ #: ../inc/class-destination-dropbox.php:77
1818
+ msgid "— OR —"
1819
+ msgstr ""
1820
+
1821
+ #: ../inc/class-destination-dropbox.php:80
1822
+ msgid "Full Access to Dropbox"
1823
+ msgstr ""
1824
+
1825
+ #: ../inc/class-destination-dropbox.php:82
1826
+ msgid ""
1827
+ "BackWPup will have full read and write access to your entire Dropbox. You "
1828
+ "can specify your backup destination wherever you want, just be aware that "
1829
+ "ANY files or folders inside of your Dropbox can be overridden or deleted by "
1830
+ "BackWPup."
1831
+ msgstr ""
1832
+
1833
+ #: ../inc/class-destination-dropbox.php:83
1834
+ msgid "Get full Dropbox auth code "
1835
+ msgstr ""
1836
+
1837
+ #: ../inc/class-destination-dropbox.php:84
1838
+ msgid "Allows full access to your entire Dropbox."
1839
+ msgstr ""
1840
+
1841
+ #: ../inc/class-destination-dropbox.php:95
1842
+ msgid "Destination Folder"
1843
+ msgstr ""
1844
+
1845
+ #: ../inc/class-destination-dropbox.php:97
1846
+ msgid ""
1847
+ "Specify a subfolder where your backup archives will be stored. If you use "
1848
+ "the App option from above, this folder will be created inside of "
1849
+ "Apps/BackWPup. Otherwise it will be created at the root of your Dropbox. "
1850
+ "Already exisiting folders with the same name will not be overriden."
1851
+ msgstr ""
1852
+
1853
+ #: ../inc/class-destination-dropbox.php:98
1854
+ msgid "Folder inside your Dropbox where your backup archives will be stored."
1855
+ msgstr ""
1856
+
1857
+ #: ../inc/class-destination-dropbox.php:107
1858
+ msgid "Older files will be deleted first. 0 = no files will be deleted."
1859
+ msgstr ""
1860
+
1861
+ #: ../inc/class-destination-dropbox.php:224
1862
+ #, php-format
1863
+ msgid "%d. Try to send backup file to Dropbox&#160;&hellip;"
1864
+ msgstr ""
1865
+
1866
+ #: ../inc/class-destination-dropbox.php:247 ../inc/pro/class-destination-dropbox.
1867
+ #: php:128
1868
+ #, php-format
1869
+ msgid "Authenticated with Dropbox of user: %s"
1870
+ msgstr ""
1871
+
1872
+ #: ../inc/class-destination-dropbox.php:251 ../inc/pro/class-destination-dropbox.
1873
+ #: php:132
1874
+ #, php-format
1875
+ msgid "%s available on your Dropbox"
1876
+ msgstr ""
1877
+
1878
+ #: ../inc/class-destination-dropbox.php:254 ../inc/pro/class-destination-dropbox.
1879
+ #: php:135
1880
+ msgid "Not Authenticated with Dropbox!"
1881
+ msgstr ""
1882
+
1883
+ #: ../inc/class-destination-dropbox.php:257
1884
+ msgid "Uploading to Dropbox&#160;&hellip;"
1885
+ msgstr ""
1886
+
1887
+ #: ../inc/class-destination-dropbox.php:273 ../inc/pro/class-destination-gdrive.
1888
+ #: php:615
1889
+ msgid "Uploaded file size and local file size don't match."
1890
+ msgstr ""
1891
+
1892
+ #: ../inc/class-destination-dropbox.php:277 ../inc/pro/class-destination-gdrive.
1893
+ #: php:617 ../inc/pro/class-destination-glacier.php:370
1894
+ #, php-format
1895
+ msgid "Error transfering backup to %s."
1896
+ msgstr ""
1897
+
1898
+ #: ../inc/class-destination-dropbox.php:323
1899
+ #, php-format
1900
+ msgid "Error while deleting file from Dropbox: %s"
1901
+ msgstr ""
1902
+
1903
+ #: ../inc/class-destination-dropbox.php:326
1904
+ #, php-format
1905
+ msgid "One file deleted from Dropbox"
1906
+ msgid_plural "%d files deleted on Dropbox"
1907
+ msgstr[0] ""
1908
+ msgstr[1] ""
1909
+
1910
+ #: ../inc/class-destination-ftp.php:23
1911
+ msgid "FTP server and login"
1912
+ msgstr ""
1913
+
1914
+ #: ../inc/class-destination-ftp.php:27
1915
+ msgid "FTP server"
1916
+ msgstr ""
1917
+
1918
+ #: ../inc/class-destination-ftp.php:31 ../inc/class-destination-email.php:104 ..
1919
+ #: /inc/pro/class-destination-ftp.php:21
1920
+ msgid "Port:"
1921
+ msgstr ""
1922
+
1923
+ #: ../inc/class-destination-ftp.php:37 ../inc/class-destination-rsc.php:45
1924
+ msgid "Username"
1925
+ msgstr ""
1926
+
1927
+ #: ../inc/class-destination-ftp.php:44
1928
+ msgid "Password"
1929
+ msgstr ""
1930
+
1931
+ #: ../inc/class-destination-ftp.php:56
1932
+ msgid "Folder to store files in"
1933
+ msgstr ""
1934
+
1935
+ #: ../inc/class-destination-ftp.php:68
1936
+ msgid "Maximum number of files to keep in folder."
1937
+ msgstr ""
1938
+
1939
+ #: ../inc/class-destination-ftp.php:78
1940
+ msgid "FTP specific settings"
1941
+ msgstr ""
1942
+
1943
+ #: ../inc/class-destination-ftp.php:82
1944
+ msgid "Timeout for FTP connection"
1945
+ msgstr ""
1946
+
1947
+ #: ../inc/class-destination-ftp.php:90
1948
+ msgid "SSL-FTP connection"
1949
+ msgstr ""
1950
+
1951
+ #: ../inc/class-destination-ftp.php:94
1952
+ msgid "Use explicit SSL-FTP connection."
1953
+ msgstr ""
1954
+
1955
+ #: ../inc/class-destination-ftp.php:99
1956
+ msgid "FTP Passive Mode"
1957
+ msgstr ""
1958
+
1959
+ #: ../inc/class-destination-ftp.php:103
1960
+ msgid "Use FTP Passive Mode."
1961
+ msgstr ""
1962
+
1963
+ #: ../inc/class-destination-ftp.php:179
1964
+ msgid "FTP: Login failure!"
1965
+ msgstr ""
1966
+
1967
+ #: ../inc/class-destination-ftp.php:203
1968
+ #, php-format
1969
+ msgid "%d. Try to send backup file to an FTP server&#160;&hellip;"
1970
+ msgstr ""
1971
+
1972
+ #: ../inc/class-destination-ftp.php:209
1973
+ #, php-format
1974
+ msgid "Connected via explicit SSL-FTP to server: %s"
1975
+ msgstr ""
1976
+
1977
+ #: ../inc/class-destination-ftp.php:211
1978
+ #, php-format
1979
+ msgid "Cannot connect via explicit SSL-FTP to server: %s"
1980
+ msgstr ""
1981
+
1982
+ #: ../inc/class-destination-ftp.php:217
1983
+ msgid "PHP function to connect with explicit SSL-FTP to server does not exist!"
1984
+ msgstr ""
1985
+
1986
+ #: ../inc/class-destination-ftp.php:225
1987
+ #, php-format
1988
+ msgid "Connected to FTP server: %s"
1989
+ msgstr ""
1990
+
1991
+ #: ../inc/class-destination-ftp.php:227
1992
+ #, php-format
1993
+ msgid "Cannot connect to FTP server: %s"
1994
+ msgstr ""
1995
+
1996
+ #: ../inc/class-destination-ftp.php:234 ../inc/class-destination-ftp.php:242 ..
1997
+ #: /inc/class-destination-ftp.php:258 ../inc/class-destination-ftp.php:305
1998
+ #, php-format
1999
+ msgid "FTP client command: %s"
2000
+ msgstr ""
2001
+
2002
+ #: ../inc/class-destination-ftp.php:236
2003
+ #, php-format
2004
+ msgid "FTP server response: %s"
2005
+ msgstr ""
2006
+
2007
+ #: ../inc/class-destination-ftp.php:240 ../inc/class-destination-ftp.php:245 ..
2008
+ #: /inc/class-destination-ftp.php:248 ../inc/class-destination-ftp.php:261 ..
2009
+ #: /inc/class-destination-ftp.php:263 ../inc/class-destination-ftp.php:308 ..
2010
+ #: /inc/class-destination-ftp.php:310 ../inc/class-destination-ftp.php:314 ..
2011
+ #: /inc/class-destination-ftp.php:316
2012
+ #, php-format
2013
+ msgid "FTP server reply: %s"
2014
+ msgstr ""
2015
+
2016
+ #: ../inc/class-destination-ftp.php:263
2017
+ msgid "Error getting SYSTYPE"
2018
+ msgstr ""
2019
+
2020
+ #: ../inc/class-destination-ftp.php:281
2021
+ #, php-format
2022
+ msgid "FTP Folder \"%s\" created!"
2023
+ msgstr ""
2024
+
2025
+ #: ../inc/class-destination-ftp.php:285
2026
+ #, php-format
2027
+ msgid "FTP Folder \"%s\" cannot be created!"
2028
+ msgstr ""
2029
+
2030
+ #: ../inc/class-destination-ftp.php:296
2031
+ #, php-format
2032
+ msgid "FTP current folder is: %s"
2033
+ msgstr ""
2034
+
2035
+ #: ../inc/class-destination-ftp.php:308
2036
+ msgid "Entering passive mode"
2037
+ msgstr ""
2038
+
2039
+ #: ../inc/class-destination-ftp.php:310
2040
+ msgid "Cannot enter passive mode"
2041
+ msgstr ""
2042
+
2043
+ #: ../inc/class-destination-ftp.php:314
2044
+ msgid "Entering normal mode"
2045
+ msgstr ""
2046
+
2047
+ #: ../inc/class-destination-ftp.php:316
2048
+ msgid "Cannot enter normal mode"
2049
+ msgstr ""
2050
+
2051
+ #: ../inc/class-destination-ftp.php:320
2052
+ msgid "Starting upload to FTP &#160;&hellip;"
2053
+ msgstr ""
2054
+
2055
+ #: ../inc/class-destination-ftp.php:332
2056
+ msgid "Cannot transfer backup to FTP server!"
2057
+ msgstr ""
2058
+
2059
+ #: ../inc/class-destination-ftp.php:337
2060
+ #, php-format
2061
+ msgid "Backup transferred to FTP server: %s"
2062
+ msgstr ""
2063
+
2064
+ #: ../inc/class-destination-ftp.php:388
2065
+ #, php-format
2066
+ msgid "Cannot delete \"%s\" on FTP server!"
2067
+ msgstr ""
2068
+
2069
+ #: ../inc/class-destination-ftp.php:391
2070
+ #, php-format
2071
+ msgid "One file deleted on FTP server"
2072
+ msgid_plural "%d files deleted on FTP server"
2073
+ msgstr[0] ""
2074
+ msgstr[1] ""
2075
+
2076
+ #: ../inc/class-destination-s3.php:94 ../inc/pro/class-destination-s3.php:30
2077
+ msgid "Google Storage: EU"
2078
+ msgstr ""
2079
+
2080
+ #: ../inc/class-destination-s3.php:95 ../inc/pro/class-destination-s3.php:31
2081
+ msgid "Google Storage: USA"
2082
+ msgstr ""
2083
+
2084
+ #: ../inc/class-destination-s3.php:96 ../inc/pro/class-destination-s3.php:32
2085
+ msgid "Google Storage: Asia"
2086
+ msgstr ""
2087
+
2088
+ #: ../inc/class-destination-s3.php:179
2089
+ msgid "Multipart Upload"
2090
+ msgstr ""
2091
+
2092
+ #: ../inc/class-destination-s3.php:181
2093
+ msgid ""
2094
+ "Multipart splits file into multiple chunks while uploading. This is "
2095
+ "necessary for displaying the upload process and to transfer bigger files. "
2096
+ "Works without a problem on Amazon. Other services might have issues."
2097
+ msgstr ""
2098
+
2099
+ #: ../inc/class-destination-s3.php:183
2100
+ msgid "Use multipart upload for uploading a file"
2101
+ msgstr ""
2102
+
2103
+ #: ../inc/class-destination-s3.php:269 ../inc/pro/class-destination-s3.php:138
2104
+ #, php-format
2105
+ msgid " %s is not a valid bucket name."
2106
+ msgstr ""
2107
+
2108
+ #: ../inc/class-destination-s3.php:397
2109
+ msgid "Checking for not aborted multipart Uploads&#160;&hellip;"
2110
+ msgstr ""
2111
+
2112
+ #: ../inc/class-destination-s3.php:403
2113
+ #, php-format
2114
+ msgid "Upload for %s aborted."
2115
+ msgstr ""
2116
+
2117
+ #: ../inc/class-destination-s3.php:551
2118
+ #, php-format
2119
+ msgid "Storage Class: %s"
2120
+ msgstr ""
2121
+
2122
+ #: ../inc/class-file.php:154
2123
+ #, php-format
2124
+ msgid "Folder %1$s not allowed, please use another folder."
2125
+ msgstr ""
2126
+
2127
+ #: ../inc/class-file.php:159
2128
+ #, php-format
2129
+ msgid "Folder %1$s is not in open basedir, please use another folder."
2130
+ msgstr ""
2131
+
2132
+ #: ../inc/class-file.php:165
2133
+ #, php-format
2134
+ msgid "Cannot create folder: %1$s"
2135
+ msgstr ""
2136
+
2137
+ #: ../inc/class-file.php:171
2138
+ #, php-format
2139
+ msgid "Folder \"%1$s\" is not writable"
2140
+ msgstr ""
2141
+
2142
+ #: ../inc/class-file.php:200
2143
+ msgid ""
2144
+ "BackWPup will not backup folders and its sub folders when this file is "
2145
+ "inside."
2146
+ msgstr ""
2147
+
2148
+ #: ../inc/class-page-jobs.php:100
2149
+ msgid "No Jobs."
2150
+ msgstr ""
2151
+
2152
+ #: ../inc/class-page-jobs.php:125 ../inc/class-page-editjob.php:438
2153
+ msgid "Job Name"
2154
+ msgstr ""
2155
+
2156
+ #: ../inc/class-page-jobs.php:127 ../inc/pro/class-wizard-job.php:57 ..
2157
+ #: /inc/pro/class-wizard-job.php:438
2158
+ msgid "Destinations"
2159
+ msgstr ""
2160
+
2161
+ #: ../inc/class-page-jobs.php:128
2162
+ msgid "Next Run"
2163
+ msgstr ""
2164
+
2165
+ #: ../inc/class-page-jobs.php:129
2166
+ msgid "Last Run"
2167
+ msgstr ""
2168
+
2169
+ #: ../inc/class-page-jobs.php:175
2170
+ msgid "Edit"
2171
+ msgstr ""
2172
+
2173
+ #: ../inc/class-page-jobs.php:176
2174
+ msgid "Copy"
2175
+ msgstr ""
2176
+
2177
+ #: ../inc/class-page-jobs.php:181 ../inc/class-page-editjob.php:195
2178
+ msgid "Run now"
2179
+ msgstr ""
2180
+
2181
+ #: ../inc/class-page-jobs.php:189
2182
+ msgid "Last log"
2183
+ msgstr ""
2184
+
2185
+ #: ../inc/class-page-jobs.php:251
2186
+ msgid "Not needed or set"
2187
+ msgstr ""
2188
+
2189
+ #: ../inc/class-page-jobs.php:273
2190
+ #, php-format
2191
+ msgid "Running for: %s seconds"
2192
+ msgstr ""
2193
+
2194
+ #: ../inc/class-page-jobs.php:280 ../inc/class-page-jobs.php:289
2195
+ #, php-format
2196
+ msgid "Cron: %s"
2197
+ msgstr ""
2198
+
2199
+ #: ../inc/class-page-jobs.php:280
2200
+ #, php-format
2201
+ msgid "%1$s at %2$s by WP-Cron"
2202
+ msgstr ""
2203
+
2204
+ #: ../inc/class-page-jobs.php:289
2205
+ #, php-format
2206
+ msgid "%1$s at %2$s by EasyCron"
2207
+ msgstr ""
2208
+
2209
+ #: ../inc/class-page-jobs.php:295
2210
+ msgid "External link"
2211
+ msgstr ""
2212
+
2213
+ #: ../inc/class-page-jobs.php:298
2214
+ msgid "Inactive"
2215
+ msgstr ""
2216
+
2217
+ #: ../inc/class-page-jobs.php:320
2218
+ #, php-format
2219
+ msgid "Runtime: %d seconds"
2220
+ msgstr ""
2221
+
2222
+ #: ../inc/class-page-jobs.php:324
2223
+ msgid "not yet"
2224
+ msgstr ""
2225
+
2226
+ #: ../inc/class-page-jobs.php:330
2227
+ msgid "Download last backup"
2228
+ msgstr ""
2229
+
2230
+ #: ../inc/class-page-jobs.php:339
2231
+ msgid "Log"
2232
+ msgstr ""
2233
+
2234
+ #: ../inc/class-page-jobs.php:382
2235
+ msgid "Copy of"
2236
+ msgstr ""
2237
+
2238
+ #: ../inc/class-page-jobs.php:397 ../inc/class-page-backups.php:375 ../inc/class-
2239
+ #: page-backups.php:414 ../inc/class-page-editjob.php:35
2240
+ msgid "Sorry, you don't have permissions to do that."
2241
+ msgstr ""
2242
+
2243
+ #: ../inc/class-page-jobs.php:429
2244
+ #, php-format
2245
+ msgid "The job \"%s\" destination \"%s\" is not configured properly"
2246
+ msgstr ""
2247
+
2248
+ #: ../inc/class-page-jobs.php:434
2249
+ #, php-format
2250
+ msgid "The job \"%s\" needs properly configured destinations to run!"
2251
+ msgstr ""
2252
+
2253
+ #: ../inc/class-page-jobs.php:442 ../inc/class-page-settings.php:439
2254
+ #, php-format
2255
+ msgid "The HTTP response test get an error \"%s\""
2256
+ msgstr ""
2257
+
2258
+ #: ../inc/class-page-jobs.php:446 ../inc/class-page-settings.php:441
2259
+ #, php-format
2260
+ msgid "The HTTP response test get a false http status (%s)"
2261
+ msgstr ""
2262
+
2263
+ #: ../inc/class-page-jobs.php:450
2264
+ #, php-format
2265
+ msgid "Not expected HTTP response body: %s"
2266
+ msgstr ""
2267
+
2268
+ #: ../inc/class-page-jobs.php:471
2269
+ #, php-format
2270
+ msgid "Job “%s” has started, but not responded for 10 seconds."
2271
+ msgstr ""
2272
+
2273
+ #: ../inc/class-page-jobs.php:476
2274
+ #, php-format
2275
+ msgid "Job \"%s\" started."
2276
+ msgstr ""
2277
+
2278
+ #: ../inc/class-page-jobs.php:601
2279
+ #, php-format
2280
+ msgid "%s Jobs"
2281
+ msgstr ""
2282
+
2283
+ #: ../inc/class-page-jobs.php:601 ../inc/class-adminbar.php:94
2284
+ msgid "Add new"
2285
+ msgstr ""
2286
+
2287
+ #: ../inc/class-page-jobs.php:621
2288
+ #, php-format
2289
+ msgid "Job currently running: %s"
2290
+ msgstr ""
2291
+
2292
+ #: ../inc/class-page-jobs.php:622
2293
+ msgid "Warnings:"
2294
+ msgstr ""
2295
+
2296
+ #: ../inc/class-page-jobs.php:623
2297
+ msgid "Errors:"
2298
+ msgstr ""
2299
+
2300
+ #: ../inc/class-page-jobs.php:624
2301
+ msgid "Log of running job"
2302
+ msgstr ""
2303
+
2304
+ #: ../inc/class-page-jobs.php:624
2305
+ msgid "Display working log"
2306
+ msgstr ""
2307
+
2308
+ #: ../inc/class-page-jobs.php:626
2309
+ msgid "Close working screen"
2310
+ msgstr ""
2311
+
2312
+ #: ../inc/class-page-jobs.php:626
2313
+ msgid "close"
2314
+ msgstr ""
2315
+
2316
+ #: ../inc/class-page-jobs.php:793
2317
+ msgid "Job completed"
2318
+ msgstr ""
2319
+
2320
+ #: ../inc/class-page-jobs.php:795 ../inc/class-job.php:1274
2321
+ msgid "ERROR:"
2322
+ msgstr ""
2323
+
2324
+ #: ../inc/class-page-jobs.php:795 ../inc/class-job.php:1487
2325
+ #, php-format
2326
+ msgid ""
2327
+ "Job has ended with errors in %s seconds. You must resolve the errors for "
2328
+ "correct execution."
2329
+ msgstr ""
2330
+
2331
+ #: ../inc/class-page-jobs.php:797 ../inc/class-job.php:1265
2332
+ msgid "WARNING:"
2333
+ msgstr ""
2334
+
2335
+ #: ../inc/class-page-jobs.php:797
2336
+ #, php-format
2337
+ msgid ""
2338
+ "Job has done with warnings in %s seconds. Please resolve them for correct "
2339
+ "execution."
2340
+ msgstr ""
2341
+
2342
+ #: ../inc/class-page-jobs.php:799 ../inc/class-job.php:1491
2343
+ #, php-format
2344
+ msgid "Job done in %s seconds."
2345
+ msgstr ""
2346
+
2347
+ #: ../inc/class-destination-email.php:38 ../inc/class-destination-email.php:41 ..
2348
+ #: /inc/pro/class-destination-email.php:16 ../inc/pro/class-destination-email.php:
2349
+ #: 18
2350
+ msgid "Email address"
2351
+ msgstr ""
2352
+
2353
+ #: ../inc/class-destination-email.php:43 ../inc/pro/class-destination-email.php:19
2354
+ msgid "Email address to which Backups are sent."
2355
+ msgstr ""
2356
+
2357
+ #: ../inc/class-destination-email.php:48 ../inc/class-destination-email.php:50 ..
2358
+ #: /inc/pro/class-destination-email.php:24 ../inc/pro/class-destination-email.php:
2359
+ #: 25
2360
+ msgid "Send test email"
2361
+ msgstr ""
2362
+
2363
+ #: ../inc/class-destination-email.php:55
2364
+ msgid "Send email settings"
2365
+ msgstr ""
2366
+
2367
+ #: ../inc/class-destination-email.php:58
2368
+ msgid "Maximum file size"
2369
+ msgstr ""
2370
+
2371
+ #: ../inc/class-destination-email.php:59
2372
+ msgid "Maximum file size to be included in an email. 0 = unlimited"
2373
+ msgstr ""
2374
+
2375
+ #: ../inc/class-destination-email.php:59
2376
+ msgid "MB"
2377
+ msgstr ""
2378
+
2379
+ #: ../inc/class-destination-email.php:63 ../inc/class-destination-email.php:64
2380
+ msgid "Sender email address"
2381
+ msgstr ""
2382
+
2383
+ #: ../inc/class-destination-email.php:70
2384
+ msgid "Sender name"
2385
+ msgstr ""
2386
+
2387
+ #: ../inc/class-destination-email.php:71
2388
+ msgid "Name of email sender"
2389
+ msgstr ""
2390
+
2391
+ #: ../inc/class-destination-email.php:77
2392
+ msgid "Sending method"
2393
+ msgstr ""
2394
+
2395
+ #: ../inc/class-destination-email.php:79
2396
+ msgid ""
2397
+ "- Use site settings: retrieve the email settings of your site.<br />-PHP "
2398
+ "mail(): needs more PHP memory"
2399
+ msgstr ""
2400
+
2401
+ #: ../inc/class-destination-email.php:81
2402
+ msgid "Use site settings"
2403
+ msgstr ""
2404
+
2405
+ #: ../inc/class-destination-email.php:82
2406
+ msgid "PHP: mail()"
2407
+ msgstr ""
2408
+
2409
+ #: ../inc/class-destination-email.php:83
2410
+ msgid "Sendmail"
2411
+ msgstr ""
2412
+
2413
+ #: ../inc/class-destination-email.php:84
2414
+ msgid "SMTP"
2415
+ msgstr ""
2416
+
2417
+ #: ../inc/class-destination-email.php:91
2418
+ msgid "Sendmail path"
2419
+ msgstr ""
2420
+
2421
+ #: ../inc/class-destination-email.php:99
2422
+ msgid "SMTP host name"
2423
+ msgstr ""
2424
+
2425
+ #: ../inc/class-destination-email.php:110
2426
+ msgid "SMTP secure connection"
2427
+ msgstr ""
2428
+
2429
+ #: ../inc/class-destination-email.php:115
2430
+ msgid "SSL"
2431
+ msgstr ""
2432
+
2433
+ #: ../inc/class-destination-email.php:116
2434
+ msgid "TLS"
2435
+ msgstr ""
2436
+
2437
+ #: ../inc/class-destination-email.php:121
2438
+ msgid "SMTP username"
2439
+ msgstr ""
2440
+
2441
+ #: ../inc/class-destination-email.php:128
2442
+ msgid "SMTP password"
2443
+ msgstr ""
2444
+
2445
+ #: ../inc/class-destination-email.php:204
2446
+ #, php-format
2447
+ msgid "%d. Try to send backup with email&#160;&hellip;"
2448
+ msgstr ""
2449
+
2450
+ #: ../inc/class-destination-email.php:209
2451
+ msgid "Backup archive too big to be sent by email!"
2452
+ msgstr ""
2453
+
2454
+ #: ../inc/class-destination-email.php:216
2455
+ #, php-format
2456
+ msgid "Sending email to %s&hellip;"
2457
+ msgstr ""
2458
+
2459
+ #: ../inc/class-destination-email.php:292
2460
+ #, php-format
2461
+ msgid "BackWPup archive from %1$s: %2$s"
2462
+ msgstr ""
2463
+
2464
+ #: ../inc/class-destination-email.php:295
2465
+ #, php-format
2466
+ msgid "Backup archive: %s"
2467
+ msgstr ""
2468
+
2469
+ #: ../inc/class-destination-email.php:309 ../inc/class-destination-email.php:431
2470
+ msgid "Error while sending email!"
2471
+ msgstr ""
2472
+
2473
+ #: ../inc/class-destination-email.php:315 ../inc/class-destination-email.php:433
2474
+ msgid "Email sent."
2475
+ msgstr ""
2476
+
2477
+ #: ../inc/class-destination-email.php:415
2478
+ msgid "BackWPup archive sending TEST Message"
2479
+ msgstr ""
2480
+
2481
+ #: ../inc/class-destination-email.php:418
2482
+ msgid ""
2483
+ "If this message reaches your inbox, sending backup archives via email should "
2484
+ "work for you."
2485
+ msgstr ""
2486
+
2487
+ #: ../inc/class-help.php:15
2488
+ msgid "Plugin Info"
2489
+ msgstr ""
2490
+
2491
+ #: ../inc/class-help.php:17
2492
+ #, php-format
2493
+ msgctxt "Plugin name and link; Plugin Version"
2494
+ msgid ""
2495
+ "%1$s version %2$s. A project by <a href=\"http://inpsyde.com\">Inpsyde "
2496
+ "GmbH</a>."
2497
+ msgstr ""
2498
+
2499
+ #: ../inc/class-help.php:18
2500
+ msgid ""
2501
+ "BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you "
2502
+ "are welcome to redistribute it under certain conditions."
2503
+ msgstr ""
2504
+
2505
+ #: ../inc/class-help.php:21
2506
+ msgid "For more information:"
2507
+ msgstr ""
2508
+
2509
+ #: ../inc/class-help.php:23
2510
+ msgid "Plugin on wordpress.org"
2511
+ msgstr ""
2512
+
2513
+ #: ../inc/class-help.php:24
2514
+ msgid "https://marketpress.com/news/"
2515
+ msgstr ""
2516
+
2517
+ #: ../inc/class-help.php:24
2518
+ msgid "News"
2519
+ msgstr ""
2520
+
2521
+ #: ../inc/class-help.php:29
2522
+ msgid "Manual"
2523
+ msgstr ""
2524
+
2525
+ #: ../inc/class-destination-rsc.php:41
2526
+ msgid "Rack Space Cloud Keys"
2527
+ msgstr ""
2528
+
2529
+ #: ../inc/class-destination-rsc.php:52
2530
+ msgid "API Key"
2531
+ msgstr ""
2532
+
2533
+ #: ../inc/class-destination-rsc.php:60
2534
+ msgid "Select region"
2535
+ msgstr ""
2536
+
2537
+ #: ../inc/class-destination-rsc.php:64 ../inc/class-destination-rsc.php:66 ..
2538
+ #: /inc/pro/class-destination-rsc.php:30
2539
+ msgid "Rackspace Cloud Files Region"
2540
+ msgstr ""
2541
+
2542
+ #: ../inc/class-destination-rsc.php:67 ../inc/pro/class-destination-rsc.php:31
2543
+ msgid "Dallas (DFW)"
2544
+ msgstr ""
2545
+
2546
+ #: ../inc/class-destination-rsc.php:68 ../inc/pro/class-destination-rsc.php:32
2547
+ msgid "Chicago (ORD)"
2548
+ msgstr ""
2549
+
2550
+ #: ../inc/class-destination-rsc.php:69 ../inc/pro/class-destination-rsc.php:33
2551
+ msgid "Sydney (SYD)"
2552
+ msgstr ""
2553
+
2554
+ #: ../inc/class-destination-rsc.php:70 ../inc/pro/class-destination-rsc.php:34
2555
+ msgid "London (LON)"
2556
+ msgstr ""
2557
+
2558
+ #: ../inc/class-destination-rsc.php:71 ../inc/pro/class-destination-rsc.php:35
2559
+ msgid "Northern Virginia (IAD)"
2560
+ msgstr ""
2561
+
2562
+ #: ../inc/class-destination-rsc.php:72 ../inc/pro/class-destination-rsc.php:36
2563
+ msgid "Hong Kong (HKG)"
2564
+ msgstr ""
2565
+
2566
+ #: ../inc/class-destination-rsc.php:155 ../inc/pro/class-destination-rsc.php:105
2567
+ #, php-format
2568
+ msgid "Rackspace Cloud container \"%s\" created."
2569
+ msgstr ""
2570
+
2571
+ #: ../inc/class-destination-rsc.php:159 ../inc/class-destination-rsc.php:267 ..
2572
+ #: /inc/class-destination-rsc.php:307 ../inc/class-destination-rsc.php:352 ..
2573
+ #: /inc/pro/class-destination-rsc.php:109 ../inc/pro/class-destination-rsc.php:
2574
+ #: 159 ../inc/pro/class-destination-rsc.php:279
2575
+ #, php-format
2576
+ msgid "Rackspace Cloud API: %s"
2577
+ msgstr ""
2578
+
2579
+ #: ../inc/class-destination-rsc.php:250
2580
+ #, php-format
2581
+ msgid "%d. Trying to send backup file to Rackspace cloud &hellip;"
2582
+ msgstr ""
2583
+
2584
+ #: ../inc/class-destination-rsc.php:264
2585
+ #, php-format
2586
+ msgid "Connected to Rackspace cloud files container %s"
2587
+ msgstr ""
2588
+
2589
+ #: ../inc/class-destination-rsc.php:276
2590
+ msgid "Upload to Rackspace cloud started &hellip;"
2591
+ msgstr ""
2592
+
2593
+ #: ../inc/class-destination-rsc.php:295
2594
+ msgid "Backup File transferred to RSC://"
2595
+ msgstr ""
2596
+
2597
+ #: ../inc/class-destination-rsc.php:301
2598
+ msgid "Cannot transfer backup to Rackspace cloud."
2599
+ msgstr ""
2600
+
2601
+ #: ../inc/class-destination-rsc.php:346
2602
+ #, php-format
2603
+ msgid "One file deleted on Rackspace cloud container."
2604
+ msgid_plural "%d files deleted on Rackspace cloud container."
2605
+ msgstr[0] ""
2606
+ msgstr[1] ""
2607
+
2608
+ #: ../inc/class-destination-rsc.php:449
2609
+ msgid "Missing username!"
2610
+ msgstr ""
2611
+
2612
+ #: ../inc/class-destination-rsc.php:451
2613
+ msgid "Missing API Key!"
2614
+ msgstr ""
2615
+
2616
+ #: ../inc/class-destination-rsc.php:455
2617
+ msgid "A container could not be found!"
2618
+ msgstr ""
2619
+
2620
+ #: ../inc/class-adminbar.php:55
2621
+ msgid "running"
2622
+ msgstr ""
2623
+
2624
+ #: ../inc/class-adminbar.php:71
2625
+ msgid "Now Running"
2626
+ msgstr ""
2627
+
2628
+ #: ../inc/class-adminbar.php:77
2629
+ msgid "Abort!"
2630
+ msgstr ""
2631
+
2632
+ #: ../inc/class-adminbar.php:132
2633
+ msgid "Run Now"
2634
+ msgstr ""
2635
+
2636
+ #: ../inc/class-page-settings.php:60
2637
+ msgid "Settings reset to default"
2638
+ msgstr ""
2639
+
2640
+ #: ../inc/class-page-settings.php:107
2641
+ msgid "Settings saved"
2642
+ msgstr ""
2643
+
2644
+ #: ../inc/class-page-settings.php:118
2645
+ #, php-format
2646
+ msgid "%s Settings"
2647
+ msgstr ""
2648
+
2649
+ #: ../inc/class-page-settings.php:120 ../inc/class-page-editjob.php:389
2650
+ msgid "General"
2651
+ msgstr ""
2652
+
2653
+ #: ../inc/class-page-settings.php:120
2654
+ msgid "Network"
2655
+ msgstr ""
2656
+
2657
+ #: ../inc/class-page-settings.php:120
2658
+ msgid "API Keys"
2659
+ msgstr ""
2660
+
2661
+ #: ../inc/class-page-settings.php:120
2662
+ msgid "Information"
2663
+ msgstr ""
2664
+
2665
+ #: ../inc/class-page-settings.php:137
2666
+ msgid "Display Settings"
2667
+ msgstr ""
2668
+
2669
+ #: ../inc/class-page-settings.php:138
2670
+ msgid "Do you want to see BackWPup in the WordPress admin bar?"
2671
+ msgstr ""
2672
+
2673
+ #: ../inc/class-page-settings.php:141
2674
+ msgid "Admin bar"
2675
+ msgstr ""
2676
+
2677
+ #: ../inc/class-page-settings.php:144
2678
+ msgid "Admin Bar"
2679
+ msgstr ""
2680
+
2681
+ #: ../inc/class-page-settings.php:149
2682
+ msgid "Show BackWPup links in admin bar."
2683
+ msgstr ""
2684
+
2685
+ #: ../inc/class-page-settings.php:154 ../inc/class-page-settings.php:157
2686
+ msgid "Folder sizes"
2687
+ msgstr ""
2688
+
2689
+ #: ../inc/class-page-settings.php:162
2690
+ msgid ""
2691
+ "Display folder sizes in the files tab when editing a job. (Might increase "
2692
+ "loading time of files tab.)"
2693
+ msgstr ""
2694
+
2695
+ #: ../inc/class-page-settings.php:167
2696
+ msgid "Security"
2697
+ msgstr ""
2698
+
2699
+ #: ../inc/class-page-settings.php:168
2700
+ msgid "Security option for BackWPup"
2701
+ msgstr ""
2702
+
2703
+ #: ../inc/class-page-settings.php:171 ../inc/class-page-settings.php:174
2704
+ msgid "Protect folders"
2705
+ msgstr ""
2706
+
2707
+ #: ../inc/class-page-settings.php:179
2708
+ msgid ""
2709
+ "Protect BackWPup folders ( Temp, Log and Backups ) with <code>."
2710
+ "htaccess</code> and <code>index.php</code>"
2711
+ msgstr ""
2712
+
2713
+ #: ../inc/class-page-settings.php:192
2714
+ msgid ""
2715
+ "Every time BackWPup runs a backup job, a log file is being generated. Choose "
2716
+ "where to store your log files and how many of them."
2717
+ msgstr ""
2718
+
2719
+ #: ../inc/class-page-settings.php:195
2720
+ msgid "Log file folder"
2721
+ msgstr ""
2722
+
2723
+ #: ../inc/class-page-settings.php:197
2724
+ msgid ""
2725
+ "You can use absolute or relative path! Relative path is relative to "
2726
+ "WP_CONTENT_DIR."
2727
+ msgstr ""
2728
+
2729
+ #: ../inc/class-page-settings.php:203
2730
+ msgid "Maximum number of log files in folder"
2731
+ msgstr ""
2732
+
2733
+ #: ../inc/class-page-settings.php:206
2734
+ msgid "Oldest files will be deleted first."
2735
+ msgstr ""
2736
+
2737
+ #: ../inc/class-page-settings.php:211 ../inc/class-page-settings.php:214
2738
+ msgid "Compression"
2739
+ msgstr ""
2740
+
2741
+ #: ../inc/class-page-settings.php:219
2742
+ msgid "Compress log files with GZip."
2743
+ msgstr ""
2744
+
2745
+ #: ../inc/class-page-settings.php:224 ../inc/class-page-settings.php:227
2746
+ msgid "Logging Level"
2747
+ msgstr ""
2748
+
2749
+ #: ../inc/class-page-settings.php:230
2750
+ msgid ""
2751
+ "Debug log has much more informations than normal logs. It is for support and "
2752
+ "should be handled carefully. For support is the best to use a not translated "
2753
+ "log file. Usage of not translated logs can reduce the PHP memory usage."
2754
+ msgstr ""
2755
+
2756
+ #: ../inc/class-page-settings.php:231
2757
+ msgid "Normal (translated)"
2758
+ msgstr ""
2759
+
2760
+ #: ../inc/class-page-settings.php:232
2761
+ msgid "Normal (not translated)"
2762
+ msgstr ""
2763
+
2764
+ #: ../inc/class-page-settings.php:233
2765
+ msgid "Debug (translated)"
2766
+ msgstr ""
2767
+
2768
+ #: ../inc/class-page-settings.php:234
2769
+ msgid "Debug (not translated)"
2770
+ msgstr ""
2771
+
2772
+ #: ../inc/class-page-settings.php:245
2773
+ msgid "There are a couple of general options for backup jobs. Set them here."
2774
+ msgstr ""
2775
+
2776
+ #: ../inc/class-page-settings.php:249
2777
+ msgid "Maximum number of retries for job steps"
2778
+ msgstr ""
2779
+
2780
+ #: ../inc/class-page-settings.php:257
2781
+ msgid "Maximum script execution time"
2782
+ msgstr ""
2783
+
2784
+ #: ../inc/class-page-settings.php:260
2785
+ msgid "Maximum PHP Script execution time"
2786
+ msgstr ""
2787
+
2788
+ #: ../inc/class-page-settings.php:263
2789
+ msgid ""
2790
+ "Job will restart before hitting maximum execution time. It will not work "
2791
+ "with CLI and not on every step during execution. If "
2792
+ "<code>ALTERNATE_WP_CRON</code> has been defined, WordPress Cron will be used."
2793
+ msgstr ""
2794
+
2795
+ #: ../inc/class-page-settings.php:265
2796
+ msgid "seconds. 0 = disabled."
2797
+ msgstr ""
2798
+
2799
+ #: ../inc/class-page-settings.php:271 ../inc/class-page-settings.php:274
2800
+ msgid "Method for creating ZIP-file archives"
2801
+ msgstr ""
2802
+
2803
+ #: ../inc/class-page-settings.php:277
2804
+ msgid ""
2805
+ "Auto = Uses PHP class ZipArchive if available; otherwise uses PclZip.<br "
2806
+ "/>ZipArchive = Uses less memory, but many open files at a time.<br />PclZip "
2807
+ "= Uses more memory, but only 2 open files at a time."
2808
+ msgstr ""
2809
+
2810
+ #: ../inc/class-page-settings.php:278
2811
+ msgid "Auto"
2812
+ msgstr ""
2813
+
2814
+ #: ../inc/class-page-settings.php:279
2815
+ msgid "ZipArchive"
2816
+ msgstr ""
2817
+
2818
+ #: ../inc/class-page-settings.php:280
2819
+ msgid "PclZip"
2820
+ msgstr ""
2821
+
2822
+ #: ../inc/class-page-settings.php:288
2823
+ msgid "Key to start jobs externally with an URL"
2824
+ msgstr ""
2825
+
2826
+ #: ../inc/class-page-settings.php:291
2827
+ msgid ""
2828
+ "empty = deactivated. Will be used to protect job starts from unauthorized "
2829
+ "person."
2830
+ msgstr ""
2831
+
2832
+ #: ../inc/class-page-settings.php:296 ../inc/class-page-settings.php:299
2833
+ msgid "Reduce server load"
2834
+ msgstr ""
2835
+
2836
+ #: ../inc/class-page-settings.php:302
2837
+ msgid ""
2838
+ "This adds short pauses to the process. Can be used to reduce the CPU load."
2839
+ "<br /> Disabled = off<br /> minimum = shortest sleep<br /> medium = middle "
2840
+ "between minimum and maximum<br /> maximum = longest sleep<br />"
2841
+ msgstr ""
2842
+
2843
+ #: ../inc/class-page-settings.php:303
2844
+ msgid "disabled"
2845
+ msgstr ""
2846
+
2847
+ #: ../inc/class-page-settings.php:304
2848
+ msgid "minimum"
2849
+ msgstr ""
2850
+
2851
+ #: ../inc/class-page-settings.php:305
2852
+ msgid "medium"
2853
+ msgstr ""
2854
+
2855
+ #: ../inc/class-page-settings.php:306
2856
+ msgid "maximum"
2857
+ msgstr ""
2858
+
2859
+ #: ../inc/class-page-settings.php:313
2860
+ msgid "Empty output on working"
2861
+ msgstr ""
2862
+
2863
+ #: ../inc/class-page-settings.php:316 ../inc/class-page-settings.php:321
2864
+ msgid "Enable an empty Output on backup working."
2865
+ msgstr ""
2866
+
2867
+ #: ../inc/class-page-settings.php:319
2868
+ msgid ""
2869
+ "This do an empty output on job working. This can help in some situations or "
2870
+ "can brake the working. You must test it."
2871
+ msgstr ""
2872
+
2873
+ #: ../inc/class-page-settings.php:332
2874
+ #, php-format
2875
+ msgid "Authentication for <code>%s</code>"
2876
+ msgstr ""
2877
+
2878
+ #: ../inc/class-page-settings.php:333
2879
+ msgid ""
2880
+ "If you protected your blog with HTTP basic authentication (.htaccess), or "
2881
+ "you use a Plugin to secure wp-cron.php, than use the authentication methods "
2882
+ "below."
2883
+ msgstr ""
2884
+
2885
+ #: ../inc/class-page-settings.php:339 ../inc/class-page-settings.php:342
2886
+ msgid "Authentication method"
2887
+ msgstr ""
2888
+
2889
+ #: ../inc/class-page-settings.php:346
2890
+ msgid "Basic auth"
2891
+ msgstr ""
2892
+
2893
+ #: ../inc/class-page-settings.php:347
2894
+ msgid "WordPress User"
2895
+ msgstr ""
2896
+
2897
+ #: ../inc/class-page-settings.php:348
2898
+ msgid "Query argument"
2899
+ msgstr ""
2900
+
2901
+ #: ../inc/class-page-settings.php:355
2902
+ msgid "Basic Auth Username:"
2903
+ msgstr ""
2904
+
2905
+ #: ../inc/class-page-settings.php:363
2906
+ msgid "Basic Auth Password:"
2907
+ msgstr ""
2908
+
2909
+ #: ../inc/class-page-settings.php:370 ../inc/class-page-settings.php:373
2910
+ msgid "Select WordPress User"
2911
+ msgstr ""
2912
+
2913
+ #: ../inc/class-page-settings.php:389
2914
+ msgid "Query arg key=value:"
2915
+ msgstr ""
2916
+
2917
+ #: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
2918
+ msgid "Setting"
2919
+ msgstr ""
2920
+
2921
+ #: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
2922
+ msgid "Value"
2923
+ msgstr ""
2924
+
2925
+ #: ../inc/class-page-settings.php:411
2926
+ msgid "WordPress version"
2927
+ msgstr ""
2928
+
2929
+ #: ../inc/class-page-settings.php:413
2930
+ msgid "BackWPup version"
2931
+ msgstr ""
2932
+
2933
+ #: ../inc/class-page-settings.php:413
2934
+ msgid "Get pro."
2935
+ msgstr ""
2936
+
2937
+ #: ../inc/class-page-settings.php:415
2938
+ msgid "BackWPup Pro version"
2939
+ msgstr ""
2940
+
2941
+ #: ../inc/class-page-settings.php:423
2942
+ msgid "PHP version"
2943
+ msgstr ""
2944
+
2945
+ #: ../inc/class-page-settings.php:424
2946
+ msgid "MySQL version"
2947
+ msgstr ""
2948
+
2949
+ #: ../inc/class-page-settings.php:427 ../inc/class-page-settings.php:431
2950
+ msgid "cURL version"
2951
+ msgstr ""
2952
+
2953
+ #: ../inc/class-page-settings.php:428
2954
+ msgid "cURL SSL version"
2955
+ msgstr ""
2956
+
2957
+ #: ../inc/class-page-settings.php:431
2958
+ msgid "unavailable"
2959
+ msgstr ""
2960
+
2961
+ #: ../inc/class-page-settings.php:433
2962
+ msgid "WP-Cron url:"
2963
+ msgstr ""
2964
+
2965
+ #: ../inc/class-page-settings.php:435
2966
+ msgid "Server self connect:"
2967
+ msgstr ""
2968
+
2969
+ #: ../inc/class-page-settings.php:444 ../inc/pro/class-wizard-systemtest.php:183
2970
+ #, php-format
2971
+ msgid "The BackWPup HTTP response header returns a false value: \"%s\""
2972
+ msgstr ""
2973
+
2974
+ #: ../inc/class-page-settings.php:447
2975
+ msgid "Response Test O.K."
2976
+ msgstr ""
2977
+
2978
+ #: ../inc/class-page-settings.php:452
2979
+ msgid "Temp folder:"
2980
+ msgstr ""
2981
+
2982
+ #: ../inc/class-page-settings.php:454
2983
+ #, php-format
2984
+ msgid "Temp folder %s doesn't exist."
2985
+ msgstr ""
2986
+
2987
+ #: ../inc/class-page-settings.php:456
2988
+ #, php-format
2989
+ msgid "Temporary folder %s is not writable."
2990
+ msgstr ""
2991
+
2992
+ #: ../inc/class-page-settings.php:462
2993
+ msgid "Log folder:"
2994
+ msgstr ""
2995
+
2996
+ #: ../inc/class-page-settings.php:464
2997
+ #, php-format
2998
+ msgid "Logs folder %s not exist."
2999
+ msgstr ""
3000
+
3001
+ #: ../inc/class-page-settings.php:466
3002
+ #, php-format
3003
+ msgid "Log folder %s is not writable."
3004
+ msgstr ""
3005
+
3006
+ #: ../inc/class-page-settings.php:471
3007
+ msgid "Server"
3008
+ msgstr ""
3009
+
3010
+ #: ../inc/class-page-settings.php:472
3011
+ msgid "Operating System"
3012
+ msgstr ""
3013
+
3014
+ #: ../inc/class-page-settings.php:473
3015
+ msgid "PHP SAPI"
3016
+ msgstr ""
3017
+
3018
+ #: ../inc/class-page-settings.php:474
3019
+ msgid "Current PHP user"
3020
+ msgstr ""
3021
+
3022
+ #: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:479 ..
3023
+ #: /inc/class-page-settings.php:483
3024
+ msgid "On"
3025
+ msgstr ""
3026
+
3027
+ #: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:481 ..
3028
+ #: /inc/class-page-settings.php:485
3029
+ msgid "Off"
3030
+ msgstr ""
3031
+
3032
+ #: ../inc/class-page-settings.php:476
3033
+ msgid "Safe Mode"
3034
+ msgstr ""
3035
+
3036
+ #: ../inc/class-page-settings.php:477
3037
+ msgid "Maximum execution time"
3038
+ msgstr ""
3039
+
3040
+ #: ../inc/class-page-settings.php:479 ../inc/class-page-settings.php:481
3041
+ msgid "Alternative WP Cron"
3042
+ msgstr ""
3043
+
3044
+ #: ../inc/class-page-settings.php:483 ../inc/class-page-settings.php:485
3045
+ msgid "Disabled WP Cron"
3046
+ msgstr ""
3047
+
3048
+ #: ../inc/class-page-settings.php:487 ../inc/class-page-settings.php:489
3049
+ msgid "CHMOD Dir"
3050
+ msgstr ""
3051
+
3052
+ #: ../inc/class-page-settings.php:491
3053
+ msgid "Server Time"
3054
+ msgstr ""
3055
+
3056
+ #: ../inc/class-page-settings.php:492
3057
+ msgid "Blog Time"
3058
+ msgstr ""
3059
+
3060
+ #: ../inc/class-page-settings.php:493
3061
+ msgid "Blog Timezone"
3062
+ msgstr ""
3063
+
3064
+ #: ../inc/class-page-settings.php:494
3065
+ msgid "Blog Time offset"
3066
+ msgstr ""
3067
+
3068
+ #: ../inc/class-page-settings.php:494
3069
+ #, php-format
3070
+ msgid "%s hours"
3071
+ msgstr ""
3072
+
3073
+ #: ../inc/class-page-settings.php:495
3074
+ msgid "Blog language"
3075
+ msgstr ""
3076
+
3077
+ #: ../inc/class-page-settings.php:496
3078
+ msgid "MySQL Client encoding"
3079
+ msgstr ""
3080
+
3081
+ #: ../inc/class-page-settings.php:499
3082
+ msgid "Blog charset"
3083
+ msgstr ""
3084
+
3085
+ #: ../inc/class-page-settings.php:500
3086
+ msgid "PHP Memory limit"
3087
+ msgstr ""
3088
+
3089
+ #: ../inc/class-page-settings.php:501
3090
+ msgid "WP memory limit"
3091
+ msgstr ""
3092
+
3093
+ #: ../inc/class-page-settings.php:502
3094
+ msgid "WP maximum memory limit"
3095
+ msgstr ""
3096
+
3097
+ #: ../inc/class-page-settings.php:503
3098
+ msgid "Memory in use"
3099
+ msgstr ""
3100
+
3101
+ #: ../inc/class-page-settings.php:508
3102
+ msgid "Disabled PHP Functions:"
3103
+ msgstr ""
3104
+
3105
+ #: ../inc/class-page-settings.php:513
3106
+ msgid "Loaded PHP Extensions:"
3107
+ msgstr ""
3108
+
3109
+ #: ../inc/class-page-settings.php:525
3110
+ msgid "Save Changes"
3111
+ msgstr ""
3112
+
3113
+ #: ../inc/class-page-settings.php:527
3114
+ msgid "Reset all settings to default"
3115
+ msgstr ""
3116
+
3117
+ #: ../inc/class-page-backups.php:182
3118
+ msgid "No files could be found. (List will be generated during next backup.)"
3119
+ msgstr ""
3120
+
3121
+ #: ../inc/class-page-backups.php:228
3122
+ msgid "Change destination"
3123
+ msgstr ""
3124
+
3125
+ #: ../inc/class-page-backups.php:268
3126
+ msgid "File"
3127
+ msgstr ""
3128
+
3129
+ #: ../inc/class-page-backups.php:313
3130
+ msgid ""
3131
+ "You are about to delete this backup archive. \n"
3132
+ " 'Cancel' to stop, 'OK' to delete."
3133
+ msgstr ""
3134
+
3135
+ #: ../inc/class-page-backups.php:346
3136
+ msgid "?"
3137
+ msgstr ""
3138
+
3139
+ #: ../inc/class-page-backups.php:438
3140
+ msgid "Backup Files"
3141
+ msgstr ""
3142
+
3143
+ #: ../inc/class-page-backups.php:486
3144
+ #, php-format
3145
+ msgid "%s Manage Backup Archives"
3146
+ msgstr ""
3147
+
3148
+ #: ../inc/class-jobtype-dbcheck.php:13
3149
+ msgid "DB Check"
3150
+ msgstr ""
3151
+
3152
+ #: ../inc/class-jobtype-dbcheck.php:14
3153
+ msgid "Check database tables"
3154
+ msgstr ""
3155
+
3156
+ #: ../inc/class-jobtype-dbcheck.php:35 ../inc/pro/class-jobtype-dbcheck.php:16
3157
+ msgid "Settings for database check"
3158
+ msgstr ""
3159
+
3160
+ #: ../inc/class-jobtype-dbcheck.php:39
3161
+ msgid "WordPress tables only"
3162
+ msgstr ""
3163
+
3164
+ #: ../inc/class-jobtype-dbcheck.php:44
3165
+ msgid "Check WordPress database tables only"
3166
+ msgstr ""
3167
+
3168
+ #: ../inc/class-jobtype-dbcheck.php:49
3169
+ msgid "Repair"
3170
+ msgstr ""
3171
+
3172
+ #: ../inc/class-jobtype-dbcheck.php:54 ../inc/pro/class-jobtype-dbcheck.php:25
3173
+ msgid "Try to repair defect table"
3174
+ msgstr ""
3175
+
3176
+ #: ../inc/class-jobtype-dbcheck.php:79
3177
+ #, php-format
3178
+ msgid "%d. Trying to check database&#160;&hellip;"
3179
+ msgstr ""
3180
+
3181
+ #: ../inc/class-jobtype-dbcheck.php:111
3182
+ #, php-format
3183
+ msgid "Table %1$s is a view. Not checked."
3184
+ msgstr ""
3185
+
3186
+ #: ../inc/class-jobtype-dbcheck.php:116
3187
+ #, php-format
3188
+ msgid "Table %1$s is not a MyISAM/InnoDB table. Not checked."
3189
+ msgstr ""
3190
+
3191
+ #: ../inc/class-jobtype-dbcheck.php:124 ../inc/class-jobtype-dbcheck.php:127 ..
3192
+ #: /inc/class-jobtype-dbcheck.php:129
3193
+ #, php-format
3194
+ msgid "Result of table check for %1$s is: %2$s"
3195
+ msgstr ""
3196
+
3197
+ #: ../inc/class-jobtype-dbcheck.php:135 ../inc/class-jobtype-dbcheck.php:137 ..
3198
+ #: /inc/class-jobtype-dbcheck.php:139
3199
+ #, php-format
3200
+ msgid "Result of table repair for %1$s is: %2$s"
3201
+ msgstr ""
3202
+
3203
+ #: ../inc/class-jobtype-dbcheck.php:145
3204
+ msgid "Database check done!"
3205
+ msgstr ""
3206
+
3207
+ #: ../inc/class-jobtype-dbcheck.php:148
3208
+ msgid "No tables to check."
3209
+ msgstr ""
3210
+
3211
+ #: ../inc/class-mysqldump.php:60
3212
+ msgid "No MySQLi extension found. Please install it."
3213
+ msgstr ""
3214
+
3215
+ #: ../inc/class-mysqldump.php:100 ../inc/pro/class-jobtype-dbdump.php:808
3216
+ msgid "Cannot init MySQLi database connection"
3217
+ msgstr ""
3218
+
3219
+ #: ../inc/class-mysqldump.php:105 ../inc/pro/class-jobtype-dbdump.php:814
3220
+ msgid "Setting of MySQLi connection timeout failed"
3221
+ msgstr ""
3222
+
3223
+ #: ../inc/class-mysqldump.php:110 ../inc/pro/class-jobtype-dbdump.php:820
3224
+ #, php-format
3225
+ msgid "Cannot connect to MySQL database %1$d: %2$s"
3226
+ msgstr ""
3227
+
3228
+ #: ../inc/class-mysqldump.php:117
3229
+ #, php-format
3230
+ msgctxt "Database Charset"
3231
+ msgid "Cannot set DB charset to %s error: %s"
3232
+ msgstr ""
3233
+
3234
+ #: ../inc/class-mysqldump.php:146
3235
+ msgid "Cannot open SQL backup file"
3236
+ msgstr ""
3237
+
3238
+ #: ../inc/class-mysqldump.php:153 ../inc/class-mysqldump.php:164 ../inc/class-
3239
+ #: mysqldump.php:257 ../inc/class-mysqldump.php:270 ../inc/class-mysqldump.php:
3240
+ #: 285 ../inc/class-mysqldump.php:298 ../inc/class-mysqldump.php:344 ../inc/class-
3241
+ #: mysqldump.php:368 ../inc/class-mysqldump.php:406 ../inc/class-mysqldump.php:
3242
+ #: 463 ../inc/pro/class-jobtype-dbdump.php:836 ../inc/pro/class-jobtype-dbdump.
3243
+ #: php:850 ../inc/pro/class-jobtype-dbdump.php:898 ../inc/pro/class-jobtype-
3244
+ #: dbdump.php:917 ../inc/pro/class-jobtype-dbdump.php:960
3245
+ #, php-format
3246
+ msgid "Database error %1$s for query %2$s"
3247
+ msgstr ""
3248
+
3249
+ #: ../inc/class-mysqldump.php:442
3250
+ #, php-format
3251
+ msgid "Start for table backup is not correctly set: %1$s"
3252
+ msgstr ""
3253
+
3254
+ #: ../inc/class-mysqldump.php:446
3255
+ #, php-format
3256
+ msgid "Length for table backup is not correctly set: %1$s"
3257
+ msgstr ""
3258
+
3259
+ #: ../inc/class-mysqldump.php:521
3260
+ msgid "Error while writing file!"
3261
+ msgstr ""
3262
+
3263
+ #: ../inc/class-job.php:176
3264
+ msgid "Starting job"
3265
+ msgstr ""
3266
+
3267
+ #: ../inc/class-job.php:193
3268
+ msgid "Job Start"
3269
+ msgstr ""
3270
+
3271
+ #: ../inc/class-job.php:213
3272
+ msgid "Creates manifest file"
3273
+ msgstr ""
3274
+
3275
+ #: ../inc/class-job.php:235
3276
+ msgid "Creates archive"
3277
+ msgstr ""
3278
+
3279
+ #: ../inc/class-job.php:274
3280
+ msgid "End of Job"
3281
+ msgstr ""
3282
+
3283
+ #: ../inc/class-job.php:291
3284
+ #, php-format
3285
+ msgid "BackWPup log for %1$s from %2$s at %3$s"
3286
+ msgstr ""
3287
+
3288
+ #: ../inc/class-job.php:310
3289
+ #, php-format
3290
+ msgctxt "Plugin name; Plugin Version; plugin url"
3291
+ msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
3292
+ msgstr ""
3293
+
3294
+ #: ../inc/class-job.php:312
3295
+ #, php-format
3296
+ msgctxt "WordPress Version; Blog url"
3297
+ msgid "[INFO] WordPress %1$s on %2$s"
3298
+ msgstr ""
3299
+
3300
+ #: ../inc/class-job.php:318
3301
+ #, php-format
3302
+ msgid "[INFO] BackWPup job: %1$s"
3303
+ msgstr ""
3304
+
3305
+ #: ../inc/class-job.php:321
3306
+ #, php-format
3307
+ msgid "[INFO] Runs with user: %1$s (%2$d) "
3308
+ msgstr ""
3309
+
3310
+ #: ../inc/class-job.php:339 ../inc/class-job.php:351
3311
+ #, php-format
3312
+ msgid "[INFO] Cron: %s; Next: %s "
3313
+ msgstr ""
3314
+
3315
+ #: ../inc/class-job.php:343
3316
+ msgid "[INFO] BackWPup job start with link is active"
3317
+ msgstr ""
3318
+
3319
+ #: ../inc/class-job.php:346
3320
+ msgid "[INFO] BackWPup job start with EasyCron.com"
3321
+ msgstr ""
3322
+
3323
+ #: ../inc/class-job.php:355
3324
+ msgid "[INFO] BackWPup no automatic job start configured"
3325
+ msgstr ""
3326
+
3327
+ #: ../inc/class-job.php:359
3328
+ msgid "[INFO] BackWPup job started from wp-cron"
3329
+ msgstr ""
3330
+
3331
+ #: ../inc/class-job.php:361
3332
+ msgid "[INFO] BackWPup job started manually"
3333
+ msgstr ""
3334
+
3335
+ #: ../inc/class-job.php:363
3336
+ msgid "[INFO] BackWPup job started from external url"
3337
+ msgstr ""
3338
+
3339
+ #: ../inc/class-job.php:365
3340
+ msgid "[INFO] BackWPup job started form commandline interface"
3341
+ msgstr ""
3342
+
3343
+ #: ../inc/class-job.php:374
3344
+ msgid "[INFO] PHP ver.:"
3345
+ msgstr ""
3346
+
3347
+ #: ../inc/class-job.php:375
3348
+ #, php-format
3349
+ msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
3350
+ msgstr ""
3351
+
3352
+ #: ../inc/class-job.php:379
3353
+ #, php-format
3354
+ msgid "[INFO] Script restart time is configured to %1$d seconds"
3355
+ msgstr ""
3356
+
3357
+ #: ../inc/class-job.php:382
3358
+ #, php-format
3359
+ msgid "[INFO] MySQL ver.: %s"
3360
+ msgstr ""
3361
+
3362
+ #: ../inc/class-job.php:384
3363
+ #, php-format
3364
+ msgid "[INFO] Web Server: %s"
3365
+ msgstr ""
3366
+
3367
+ #: ../inc/class-job.php:387
3368
+ #, php-format
3369
+ msgid "[INFO] curl ver.: %1$s; %2$s"
3370
+ msgstr ""
3371
+
3372
+ #: ../inc/class-job.php:389
3373
+ #, php-format
3374
+ msgid "[INFO] Temp folder is: %s"
3375
+ msgstr ""
3376
+
3377
+ #: ../inc/class-job.php:396
3378
+ #, php-format
3379
+ msgid "[INFO] Logfile is: %s"
3380
+ msgstr ""
3381
+
3382
+ #: ../inc/class-job.php:403
3383
+ #, php-format
3384
+ msgid "[INFO] Backup file is: %s"
3385
+ msgstr ""
3386
+
3387
+ #: ../inc/class-job.php:405
3388
+ #, php-format
3389
+ msgid "[INFO] Backup type is: %s"
3390
+ msgstr ""
3391
+
3392
+ #: ../inc/class-job.php:413
3393
+ msgid "Could not write log file"
3394
+ msgstr ""
3395
+
3396
+ #: ../inc/class-job.php:425
3397
+ msgid "No destination correctly defined for backup! Please correct job settings."
3398
+ msgstr ""
3399
+
3400
+ #: ../inc/class-job.php:647
3401
+ msgid "Wrong BackWPup JobID"
3402
+ msgstr ""
3403
+
3404
+ #: ../inc/class-job.php:660
3405
+ msgid "A BackWPup job is already running"
3406
+ msgstr ""
3407
+
3408
+ #: ../inc/class-job.php:752
3409
+ msgid "Job restarts due to inactivity for more than 5 minutes."
3410
+ msgstr ""
3411
+
3412
+ #: ../inc/class-job.php:879
3413
+ msgid "Step aborted: too many attempts!"
3414
+ msgstr ""
3415
+
3416
+ #: ../inc/class-job.php:970
3417
+ #, php-format
3418
+ msgid "Restart after %1$d seconds."
3419
+ msgstr ""
3420
+
3421
+ #: ../inc/class-job.php:1169
3422
+ #, php-format
3423
+ msgid "Signal \"%s\" is sent to script!"
3424
+ msgstr ""
3425
+
3426
+ #: ../inc/class-job.php:1184 ../inc/class-job.php:1197
3427
+ #, php-format
3428
+ msgid "System: %s"
3429
+ msgstr ""
3430
+
3431
+ #: ../inc/class-job.php:1212
3432
+ #, php-format
3433
+ msgid "Exception caught in %1$s: %2$s"
3434
+ msgstr ""
3435
+
3436
+ #: ../inc/class-job.php:1278
3437
+ msgid "DEPRECATED:"
3438
+ msgstr ""
3439
+
3440
+ #: ../inc/class-job.php:1281
3441
+ msgid "STRICT NOTICE:"
3442
+ msgstr ""
3443
+
3444
+ #: ../inc/class-job.php:1286
3445
+ msgid "RECOVERABLE ERROR:"
3446
+ msgstr ""
3447
+
3448
+ #: ../inc/class-job.php:1436
3449
+ msgid "Cannot write progress to working file. Job will be aborted."
3450
+ msgstr ""
3451
+
3452
+ #: ../inc/class-job.php:1454
3453
+ msgid "Aborted by user!"
3454
+ msgstr ""
3455
+
3456
+ #: ../inc/class-job.php:1481
3457
+ #, php-format
3458
+ msgid "One old log deleted"
3459
+ msgid_plural "%d old logs deleted"
3460
+ msgstr[0] ""
3461
+ msgstr[1] ""
3462
+
3463
+ #: ../inc/class-job.php:1489
3464
+ #, php-format
3465
+ msgid ""
3466
+ "Job finished with warnings in %s seconds. Please resolve them for correct "
3467
+ "execution."
3468
+ msgstr ""
3469
+
3470
+ #: ../inc/class-job.php:1536
3471
+ msgid "SUCCESSFUL"
3472
+ msgstr ""
3473
+
3474
+ #: ../inc/class-job.php:1539
3475
+ msgid "WARNING"
3476
+ msgstr ""
3477
+
3478
+ #: ../inc/class-job.php:1543
3479
+ msgid "ERROR"
3480
+ msgstr ""
3481
+
3482
+ #: ../inc/class-job.php:1547
3483
+ #, php-format
3484
+ msgid "[%3$s] BackWPup log %1$s: %2$s"
3485
+ msgstr ""
3486
+
3487
+ #: ../inc/class-job.php:1921
3488
+ #, php-format
3489
+ msgctxt "Folder name"
3490
+ msgid "Folder %s not exists"
3491
+ msgstr ""
3492
+
3493
+ #: ../inc/class-job.php:1926
3494
+ #, php-format
3495
+ msgctxt "Folder name"
3496
+ msgid "Folder %s not readable"
3497
+ msgstr ""
3498
+
3499
+ #: ../inc/class-job.php:1945
3500
+ #, php-format
3501
+ msgid "Link \"%s\" not following."
3502
+ msgstr ""
3503
+
3504
+ #: ../inc/class-job.php:1947
3505
+ #, php-format
3506
+ msgid "File \"%s\" is not readable!"
3507
+ msgstr ""
3508
+
3509
+ #: ../inc/class-job.php:1951
3510
+ #, php-format
3511
+ msgid ""
3512
+ "File size of “%s” cannot be retrieved. File might be too large and will not "
3513
+ "be added to queue."
3514
+ msgstr ""
3515
+
3516
+ #: ../inc/class-job.php:1971
3517
+ #, php-format
3518
+ msgid "%d. Trying to generate a manifest file&#160;&hellip;"
3519
+ msgstr ""
3520
+
3521
+ #: ../inc/class-job.php:2021
3522
+ msgid "You may have noticed the manifest.json file in this archive."
3523
+ msgstr ""
3524
+
3525
+ #: ../inc/class-job.php:2022
3526
+ msgid "manifest.json might be needed for later restoring a backup from this archive."
3527
+ msgstr ""
3528
+
3529
+ #: ../inc/class-job.php:2023
3530
+ msgid ""
3531
+ "Please leave manifest.json untouched and in place. Otherwise it is safe to "
3532
+ "be ignored."
3533
+ msgstr ""
3534
+
3535
+ #: ../inc/class-job.php:2033
3536
+ #, php-format
3537
+ msgid "Added manifest.json file with %1$s to backup file list."
3538
+ msgstr ""
3539
+
3540
+ #: ../inc/class-job.php:2063
3541
+ #, php-format
3542
+ msgid "%d. Trying to create backup archive &hellip;"
3543
+ msgstr ""
3544
+
3545
+ #: ../inc/class-job.php:2070
3546
+ #, php-format
3547
+ msgctxt "Archive compression method"
3548
+ msgid "Compressing files as %s. Please be patient, this may take a moment."
3549
+ msgstr ""
3550
+
3551
+ #: ../inc/class-job.php:2077
3552
+ msgid "Adding Extra files to Archive"
3553
+ msgstr ""
3554
+
3555
+ #: ../inc/class-job.php:2088 ../inc/class-job.php:2146
3556
+ msgid "Cannot create backup archive correctly. Aborting creation."
3557
+ msgstr ""
3558
+
3559
+ #: ../inc/class-job.php:2103
3560
+ #, php-format
3561
+ msgid "Archiving Folder: %s"
3562
+ msgstr ""
3563
+
3564
+ #: ../inc/class-job.php:2155
3565
+ msgid "Backup archive created."
3566
+ msgstr ""
3567
+
3568
+ #: ../inc/class-job.php:2168
3569
+ msgid ""
3570
+ "The Backup archive will be too large for file operations with this PHP "
3571
+ "Version. You might want to consider splitting the backup job in multiple "
3572
+ "jobs with less files each."
3573
+ msgstr ""
3574
+
3575
+ #: ../inc/class-job.php:2172
3576
+ #, php-format
3577
+ msgid "Archive size is %s."
3578
+ msgstr ""
3579
+
3580
+ #: ../inc/class-job.php:2175
3581
+ #, php-format
3582
+ msgid "%1$d Files with %2$s in Archive."
3583
+ msgstr ""
3584
+
3585
+ #: ../inc/class-install.php:83
3586
+ msgid "BackWPup Admin"
3587
+ msgstr ""
3588
+
3589
+ #: ../inc/class-install.php:97
3590
+ msgid "BackWPup jobs checker"
3591
+ msgstr ""
3592
+
3593
+ #: ../inc/class-install.php:111
3594
+ msgid "BackWPup jobs helper"
3595
+ msgstr ""
3596
+
3597
+ #: ../inc/class-jobtype-wpexp.php:13
3598
+ msgid "XML export"
3599
+ msgstr ""
3600
+
3601
+ #: ../inc/class-jobtype-wpexp.php:46
3602
+ msgid "Items to export"
3603
+ msgstr ""
3604
+
3605
+ #: ../inc/class-jobtype-wpexp.php:49 ../inc/pro/class-jobtype-wpexp.php:20
3606
+ msgid "All content"
3607
+ msgstr ""
3608
+
3609
+ #: ../inc/class-jobtype-wpexp.php:50 ../inc/pro/class-jobtype-wpexp.php:21
3610
+ msgid "Posts"
3611
+ msgstr ""
3612
+
3613
+ #: ../inc/class-jobtype-wpexp.php:51 ../inc/pro/class-jobtype-wpexp.php:22
3614
+ msgid "Pages"
3615
+ msgstr ""
3616
+
3617
+ #: ../inc/class-jobtype-wpexp.php:61
3618
+ msgid "XML Export file name"
3619
+ msgstr ""
3620
+
3621
+ #: ../inc/class-jobtype-wpexp.php:69 ../inc/class-jobtype-wpplugin.php:53
3622
+ msgid "File compression"
3623
+ msgstr ""
3624
+
3625
+ #: ../inc/class-jobtype-wpexp.php:79 ../inc/class-jobtype-wpexp.php:81 ..
3626
+ #: /inc/class-jobtype-wpplugin.php:63 ../inc/class-jobtype-wpplugin.php:65
3627
+ msgid "BZip2"
3628
+ msgstr ""
3629
+
3630
+ #: ../inc/class-jobtype-wpexp.php:111
3631
+ #, php-format
3632
+ msgid "%d. Trying to create a WordPress export to XML file&#160;&hellip;"
3633
+ msgstr ""
3634
+
3635
+ #: ../inc/class-jobtype-wpexp.php:126
3636
+ #, php-format
3637
+ msgid "WP Export: Post type “%s” does not allow export."
3638
+ msgstr ""
3639
+
3640
+ #: ../inc/class-jobtype-wpexp.php:171 ../inc/class-jobtype-wpexp.php:185 ..
3641
+ #: /inc/class-jobtype-wpexp.php:214 ../inc/class-jobtype-wpexp.php:235 ..
3642
+ #: /inc/class-jobtype-wpexp.php:268 ../inc/class-jobtype-wpexp.php:288 ..
3643
+ #: /inc/class-jobtype-wpexp.php:378 ../inc/class-jobtype-wpexp.php:387
3644
+ msgid "WP Export file could not written."
3645
+ msgstr ""
3646
+
3647
+ #: ../inc/class-jobtype-wpexp.php:402
3648
+ msgid "Check WP Export file&#160;&hellip;"
3649
+ msgstr ""
3650
+
3651
+ #: ../inc/class-jobtype-wpexp.php:422
3652
+ #, php-format
3653
+ msgid "XML WARNING (%s): %s"
3654
+ msgstr ""
3655
+
3656
+ #: ../inc/class-jobtype-wpexp.php:425
3657
+ #, php-format
3658
+ msgid "XML RECOVERABLE (%s): %s"
3659
+ msgstr ""
3660
+
3661
+ #: ../inc/class-jobtype-wpexp.php:428
3662
+ #, php-format
3663
+ msgid "XML ERROR (%s): %s"
3664
+ msgstr ""
3665
+
3666
+ #: ../inc/class-jobtype-wpexp.php:438
3667
+ msgid "There was an error when reading this WXR file"
3668
+ msgstr ""
3669
+
3670
+ #: ../inc/class-jobtype-wpexp.php:444 ../inc/class-jobtype-wpexp.php:451
3671
+ msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
3672
+ msgstr ""
3673
+
3674
+ #: ../inc/class-jobtype-wpexp.php:460
3675
+ msgid "WP Export file is a valid WXR file."
3676
+ msgstr ""
3677
+
3678
+ #: ../inc/class-jobtype-wpexp.php:462
3679
+ msgid ""
3680
+ "WP Export file can not be checked, because no XML extension is loaded, to "
3681
+ "ensure the file verification."
3682
+ msgstr ""
3683
+
3684
+ #: ../inc/class-jobtype-wpexp.php:474 ../inc/pro/class-jobtype-dbdump.php:718
3685
+ msgid "Compressing file&#160;&hellip;"
3686
+ msgstr ""
3687
+
3688
+ #: ../inc/class-jobtype-wpexp.php:481 ../inc/pro/class-jobtype-dbdump.php:725
3689
+ msgid "Compressing done."
3690
+ msgstr ""
3691
+
3692
+ #: ../inc/class-jobtype-wpexp.php:500
3693
+ #, php-format
3694
+ msgid "Added XML export \"%1$s\" with %2$s to backup file list."
3695
+ msgstr ""
3696
+
3697
+ #: ../inc/class-jobtype-wpplugin.php:13
3698
+ msgid "Plugins"
3699
+ msgstr ""
3700
+
3701
+ #: ../inc/class-jobtype-wpplugin.php:14
3702
+ msgid "Installed plugins list"
3703
+ msgstr ""
3704
+
3705
+ #: ../inc/class-jobtype-wpplugin.php:45
3706
+ msgid "Plugin list file name"
3707
+ msgstr ""
3708
+
3709
+ #: ../inc/class-jobtype-wpplugin.php:93
3710
+ #, php-format
3711
+ msgid "%d. Trying to generate a file with installed plugin names&#160;&hellip;"
3712
+ msgstr ""
3713
+
3714
+ #: ../inc/class-jobtype-wpplugin.php:121
3715
+ msgid "All plugin information:"
3716
+ msgstr ""
3717
+
3718
+ #: ../inc/class-jobtype-wpplugin.php:123
3719
+ #, php-format
3720
+ msgid "from %s"
3721
+ msgstr ""
3722
+
3723
+ #: ../inc/class-jobtype-wpplugin.php:125
3724
+ msgid "Active plugins:"
3725
+ msgstr ""
3726
+
3727
+ #: ../inc/class-jobtype-wpplugin.php:131
3728
+ msgid "Inactive plugins:"
3729
+ msgstr ""
3730
+
3731
+ #: ../inc/class-jobtype-wpplugin.php:138 ../inc/pro/class-jobtype-dbdump.php:775
3732
+ msgid "Can not open target file for writing."
3733
+ msgstr ""
3734
+
3735
+ #: ../inc/class-jobtype-wpplugin.php:145
3736
+ #, php-format
3737
+ msgid "Added plugin list file \"%1$s\" with %2$s to backup file list."
3738
+ msgstr ""
3739
+
3740
+ #: ../inc/class-page-editjob.php:87 ../inc/class-page-editjob.php:444 ..
3741
+ #: /inc/class-option.php:111
3742
+ msgid "New Job"
3743
+ msgstr ""
3744
+
3745
+ #: ../inc/class-page-editjob.php:88
3746
+ #, php-format
3747
+ msgid "Job with ID %d"
3748
+ msgstr ""
3749
+
3750
+ #: ../inc/class-page-editjob.php:194
3751
+ #, php-format
3752
+ msgid "Changes for job <i>%s</i> saved."
3753
+ msgstr ""
3754
+
3755
+ #: ../inc/class-page-editjob.php:195
3756
+ msgid "Jobs overview"
3757
+ msgstr ""
3758
+
3759
+ #: ../inc/class-page-editjob.php:332
3760
+ msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
3761
+ msgstr ""
3762
+
3763
+ #: ../inc/class-page-editjob.php:341
3764
+ #, php-format
3765
+ msgid "ATTENTION: Job runs every %d minutes!"
3766
+ msgstr ""
3767
+
3768
+ #: ../inc/class-page-editjob.php:347
3769
+ #, php-format
3770
+ msgid "ATTENTION: Job runs every %d hours!"
3771
+ msgstr ""
3772
+
3773
+ #: ../inc/class-page-editjob.php:351
3774
+ msgid "ATTENTION: Can't calculate cron!"
3775
+ msgstr ""
3776
+
3777
+ #: ../inc/class-page-editjob.php:354
3778
+ msgid "Next runtime:"
3779
+ msgstr ""
3780
+
3781
+ #: ../inc/class-page-editjob.php:386
3782
+ #, php-format
3783
+ msgid "%1$s Job: %2$s"
3784
+ msgstr ""
3785
+
3786
+ #: ../inc/class-page-editjob.php:389
3787
+ msgid "Schedule"
3788
+ msgstr ""
3789
+
3790
+ #: ../inc/class-page-editjob.php:404
3791
+ #, php-format
3792
+ msgid "To: %s"
3793
+ msgstr ""
3794
+
3795
+ #: ../inc/class-page-editjob.php:442
3796
+ msgid "Please name this job."
3797
+ msgstr ""
3798
+
3799
+ #: ../inc/class-page-editjob.php:450
3800
+ msgid "Job Tasks"
3801
+ msgstr ""
3802
+
3803
+ #: ../inc/class-page-editjob.php:454 ../inc/pro/class-wizard-job.php:235
3804
+ msgid "This job is a&#160;&hellip;"
3805
+ msgstr ""
3806
+
3807
+ #: ../inc/class-page-editjob.php:457 ../inc/pro/class-wizard-job.php:238
3808
+ msgid "Job tasks"
3809
+ msgstr ""
3810
+
3811
+ #: ../inc/class-page-editjob.php:475
3812
+ msgid "Backup File Creation"
3813
+ msgstr ""
3814
+
3815
+ #: ../inc/class-page-editjob.php:480 ../inc/class-page-editjob.php:483 ..
3816
+ #: /inc/pro/class-wizard-job.php:380 ../inc/pro/class-wizard-job.php:383
3817
+ msgid "Backup type"
3818
+ msgstr ""
3819
+
3820
+ #: ../inc/class-page-editjob.php:487
3821
+ msgid "Synchronize file by file to destination"
3822
+ msgstr ""
3823
+
3824
+ #: ../inc/class-page-editjob.php:491 ../inc/pro/class-wizard-job.php:391
3825
+ msgid "Create a backup archive"
3826
+ msgstr ""
3827
+
3828
+ #: ../inc/class-page-editjob.php:497
3829
+ msgid "Archive name"
3830
+ msgstr ""
3831
+
3832
+ #: ../inc/class-page-editjob.php:502
3833
+ msgid "Replacement patterns:"
3834
+ msgstr ""
3835
+
3836
+ #: ../inc/class-page-editjob.php:503
3837
+ #, php-format
3838
+ msgid "%d = Two digit day of the month, with leading zeros"
3839
+ msgstr ""
3840
+
3841
+ #: ../inc/class-page-editjob.php:504
3842
+ msgid "%j = Day of the month, without leading zeros"
3843
+ msgstr ""
3844
+
3845
+ #: ../inc/class-page-editjob.php:505
3846
+ msgid "%m = Day of the month, with leading zeros"
3847
+ msgstr ""
3848
+
3849
+ #: ../inc/class-page-editjob.php:506
3850
+ #, php-format
3851
+ msgid "%n = Representation of the month (without leading zeros)"
3852
+ msgstr ""
3853
+
3854
+ #: ../inc/class-page-editjob.php:507
3855
+ msgid "%Y = Four digit representation for the year"
3856
+ msgstr ""
3857
+
3858
+ #: ../inc/class-page-editjob.php:508
3859
+ msgid "%y = Two digit representation of the year"
3860
+ msgstr ""
3861
+
3862
+ #: ../inc/class-page-editjob.php:509
3863
+ #, php-format
3864
+ msgid "%a = Lowercase ante meridiem (am) and post meridiem (pm)"
3865
+ msgstr ""
3866
+
3867
+ #: ../inc/class-page-editjob.php:510
3868
+ #, php-format
3869
+ msgid "%A = Uppercase ante meridiem (AM) and post meridiem (PM)"
3870
+ msgstr ""
3871
+
3872
+ #: ../inc/class-page-editjob.php:511
3873
+ #, php-format
3874
+ msgid "%B = Swatch Internet Time"
3875
+ msgstr ""
3876
+
3877
+ #: ../inc/class-page-editjob.php:512
3878
+ #, php-format
3879
+ msgid "%g = Hour in 12-hour format, without leading zeros"
3880
+ msgstr ""
3881
+
3882
+ #: ../inc/class-page-editjob.php:513
3883
+ #, php-format
3884
+ msgid "%G = Hour in 24-hour format, without leading zeros"
3885
+ msgstr ""
3886
+
3887
+ #: ../inc/class-page-editjob.php:514
3888
+ msgid "%h = Hour in 12-hour format, with leading zeros"
3889
+ msgstr ""
3890
+
3891
+ #: ../inc/class-page-editjob.php:515
3892
+ msgid "%H = Hour in 24-hour format, with leading zeros"
3893
+ msgstr ""
3894
+
3895
+ #: ../inc/class-page-editjob.php:516
3896
+ #, php-format
3897
+ msgid "%i = Two digit representation of the minute"
3898
+ msgstr ""
3899
+
3900
+ #: ../inc/class-page-editjob.php:517
3901
+ #, php-format
3902
+ msgid "%s = Two digit representation of the second"
3903
+ msgstr ""
3904
+
3905
+ #: ../inc/class-page-editjob.php:529 ../inc/class-page-editjob.php:532
3906
+ msgid "Archive Format"
3907
+ msgstr ""
3908
+
3909
+ #: ../inc/class-page-editjob.php:535
3910
+ msgid ""
3911
+ "PHP Zip functions will be used if available (needs less memory). Otherwise "
3912
+ "the PCLZip class will be used."
3913
+ msgstr ""
3914
+
3915
+ #: ../inc/class-page-editjob.php:535 ../inc/class-page-editjob.php:537 ..
3916
+ #: /inc/pro/class-wizard-job.php:404 ../inc/pro/class-wizard-job.php:406
3917
+ msgid "Zip"
3918
+ msgstr ""
3919
+
3920
+ #: ../inc/class-page-editjob.php:537 ../inc/class-page-editjob.php:542 ..
3921
+ #: /inc/class-page-editjob.php:546
3922
+ msgid "Disabled due to missing PHP function."
3923
+ msgstr ""
3924
+
3925
+ #: ../inc/class-page-editjob.php:538
3926
+ msgid "A tarballed, not compressed archive (fast and less memory)"
3927
+ msgstr ""
3928
+
3929
+ #: ../inc/class-page-editjob.php:538 ../inc/pro/class-wizard-job.php:407
3930
+ msgid "Tar"
3931
+ msgstr ""
3932
+
3933
+ #: ../inc/class-page-editjob.php:540
3934
+ msgid "A tarballed, GZipped archive (fast and less memory)"
3935
+ msgstr ""
3936
+
3937
+ #: ../inc/class-page-editjob.php:540 ../inc/class-page-editjob.php:542 ..
3938
+ #: /inc/pro/class-wizard-job.php:409 ../inc/pro/class-wizard-job.php:411
3939
+ msgid "Tar GZip"
3940
+ msgstr ""
3941
+
3942
+ #: ../inc/class-page-editjob.php:544
3943
+ msgid "A tarballed, BZipped archive (fast and less memory)"
3944
+ msgstr ""
3945
+
3946
+ #: ../inc/class-page-editjob.php:544 ../inc/class-page-editjob.php:546 ..
3947
+ #: /inc/pro/class-wizard-job.php:413 ../inc/pro/class-wizard-job.php:415
3948
+ msgid "Tar BZip2"
3949
+ msgstr ""
3950
+
3951
+ #: ../inc/class-page-editjob.php:552
3952
+ msgid "Job Destination"
3953
+ msgstr ""
3954
+
3955
+ #: ../inc/class-page-editjob.php:556 ../inc/class-page-editjob.php:559
3956
+ msgid "Where should your backup file be stored?"
3957
+ msgstr ""
3958
+
3959
+ #: ../inc/class-page-editjob.php:580
3960
+ msgid "Log Files"
3961
+ msgstr ""
3962
+
3963
+ #: ../inc/class-page-editjob.php:584
3964
+ msgid "Send log to email address"
3965
+ msgstr ""
3966
+
3967
+ #: ../inc/class-page-editjob.php:588
3968
+ msgid ""
3969
+ "Leave empty to not have log sent. Or separate with , for more than one "
3970
+ "receiver."
3971
+ msgstr ""
3972
+
3973
+ #: ../inc/class-page-editjob.php:592
3974
+ msgid "Email FROM field"
3975
+ msgstr ""
3976
+
3977
+ #: ../inc/class-page-editjob.php:596
3978
+ msgid "Email \"From\" field (Name &lt;&#160;you@your-email-address.tld&#160;&gt;)"
3979
+ msgstr ""
3980
+
3981
+ #: ../inc/class-page-editjob.php:600
3982
+ msgid "Errors only"
3983
+ msgstr ""
3984
+
3985
+ #: ../inc/class-page-editjob.php:605
3986
+ msgid "Send email with log only when errors occur during job execution."
3987
+ msgstr ""
3988
+
3989
+ #: ../inc/class-page-editjob.php:616
3990
+ msgid "Job Schedule"
3991
+ msgstr ""
3992
+
3993
+ #: ../inc/class-page-editjob.php:620 ../inc/class-page-editjob.php:623
3994
+ msgid "Start job"
3995
+ msgstr ""
3996
+
3997
+ #: ../inc/class-page-editjob.php:627
3998
+ msgid "manually only"
3999
+ msgstr ""
4000
+
4001
+ #: ../inc/class-page-editjob.php:631
4002
+ msgid "with WordPress cron"
4003
+ msgstr ""
4004
+
4005
+ #: ../inc/class-page-editjob.php:642
4006
+ msgid "Use EasyCron.com Cron jobs."
4007
+ msgstr ""
4008
+
4009
+ #: ../inc/class-page-editjob.php:642
4010
+ msgid ""
4011
+ "with <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
4012
+ "title=\"Affiliate Link!\">EasyCron.com</a>"
4013
+ msgstr ""
4014
+
4015
+ #: ../inc/class-page-editjob.php:645
4016
+ #, php-format
4017
+ msgid ""
4018
+ "Setup <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
4019
+ "title=\"Affiliate Link!\">Account</a> / <a href=\"%s\">API Key</a> first."
4020
+ msgstr ""
4021
+
4022
+ #: ../inc/class-page-editjob.php:655
4023
+ msgid ""
4024
+ "Copy the link for an external start. This option has to be activated to make "
4025
+ "the link work."
4026
+ msgstr ""
4027
+
4028
+ #: ../inc/class-page-editjob.php:655
4029
+ msgid "with a link"
4030
+ msgstr ""
4031
+
4032
+ #: ../inc/class-page-editjob.php:661
4033
+ msgid "Start job with CLI"
4034
+ msgstr ""
4035
+
4036
+ #: ../inc/class-page-editjob.php:662
4037
+ msgid ""
4038
+ "Use WP-CLI commands to let the job start with the server’s cron on command "
4039
+ "line interface."
4040
+ msgstr ""
4041
+
4042
+ #: ../inc/class-page-editjob.php:664
4043
+ msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline."
4044
+ msgstr ""
4045
+
4046
+ #: ../inc/class-page-editjob.php:669
4047
+ msgid "Schedule execution time"
4048
+ msgstr ""
4049
+
4050
+ #: ../inc/class-page-editjob.php:673 ../inc/class-page-editjob.php:676
4051
+ msgid "Scheduler type"
4052
+ msgstr ""
4053
+
4054
+ #: ../inc/class-page-editjob.php:680
4055
+ msgid "basic"
4056
+ msgstr ""
4057
+
4058
+ #: ../inc/class-page-editjob.php:684
4059
+ msgid "advanced"
4060
+ msgstr ""
4061
+
4062
+ #: ../inc/class-page-editjob.php:713 ../inc/class-page-editjob.php:781 ..
4063
+ #: /inc/pro/class-wizard-job.php:298
4064
+ msgid "Scheduler"
4065
+ msgstr ""
4066
+
4067
+ #: ../inc/class-page-editjob.php:723 ../inc/pro/class-wizard-job.php:308
4068
+ msgid "Hour"
4069
+ msgstr ""
4070
+
4071
+ #: ../inc/class-page-editjob.php:726 ../inc/pro/class-wizard-job.php:311
4072
+ msgid "Minute"
4073
+ msgstr ""
4074
+
4075
+ #: ../inc/class-page-editjob.php:730 ../inc/pro/class-wizard-job.php:315
4076
+ msgid "monthly"
4077
+ msgstr ""
4078
+
4079
+ #: ../inc/class-page-editjob.php:732 ../inc/pro/class-wizard-job.php:317
4080
+ msgid "on"
4081
+ msgstr ""
4082
+
4083
+ #: ../inc/class-page-editjob.php:742 ../inc/pro/class-wizard-job.php:327
4084
+ msgid "weekly"
4085
+ msgstr ""
4086
+
4087
+ #: ../inc/class-page-editjob.php:744 ../inc/class-page-editjob.php:851 ..
4088
+ #: /inc/pro/class-wizard-job.php:329
4089
+ msgid "Sunday"
4090
+ msgstr ""
4091
+
4092
+ #: ../inc/class-page-editjob.php:745 ../inc/class-page-editjob.php:852 ..
4093
+ #: /inc/pro/class-wizard-job.php:330
4094
+ msgid "Monday"
4095
+ msgstr ""
4096
+
4097
+ #: ../inc/class-page-editjob.php:746 ../inc/class-page-editjob.php:853 ..
4098
+ #: /inc/pro/class-wizard-job.php:331
4099
+ msgid "Tuesday"
4100
+ msgstr ""
4101
+
4102
+ #: ../inc/class-page-editjob.php:747 ../inc/class-page-editjob.php:854 ..
4103
+ #: /inc/pro/class-wizard-job.php:332
4104
+ msgid "Wednesday"
4105
+ msgstr ""
4106
+
4107
+ #: ../inc/class-page-editjob.php:748 ../inc/class-page-editjob.php:855 ..
4108
+ #: /inc/pro/class-wizard-job.php:333
4109
+ msgid "Thursday"
4110
+ msgstr ""
4111
+
4112
+ #: ../inc/class-page-editjob.php:749 ../inc/class-page-editjob.php:856 ..
4113
+ #: /inc/pro/class-wizard-job.php:334
4114
+ msgid "Friday"
4115
+ msgstr ""
4116
+
4117
+ #: ../inc/class-page-editjob.php:750 ../inc/class-page-editjob.php:857 ..
4118
+ #: /inc/pro/class-wizard-job.php:335
4119
+ msgid "Saturday"
4120
+ msgstr ""
4121
+
4122
+ #: ../inc/class-page-editjob.php:760 ../inc/pro/class-wizard-job.php:345
4123
+ msgid "daily"
4124
+ msgstr ""
4125
+
4126
+ #: ../inc/class-page-editjob.php:770 ../inc/pro/class-wizard-job.php:355
4127
+ msgid "hourly"
4128
+ msgstr ""
4129
+
4130
+ #: ../inc/class-page-editjob.php:784
4131
+ msgid "Minutes:"
4132
+ msgstr ""
4133
+
4134
+ #: ../inc/class-page-editjob.php:786 ../inc/class-page-editjob.php:799 ..
4135
+ #: /inc/class-page-editjob.php:811 ../inc/class-page-editjob.php:825 ../inc/class-
4136
+ #: page-editjob.php:847
4137
+ msgid "Any (*)"
4138
+ msgstr ""
4139
+
4140
+ #: ../inc/class-page-editjob.php:796
4141
+ msgid "Hours:"
4142
+ msgstr ""
4143
+
4144
+ #: ../inc/class-page-editjob.php:809
4145
+ msgid "Day of Month:"
4146
+ msgstr ""
4147
+
4148
+ #: ../inc/class-page-editjob.php:823
4149
+ msgid "Month:"
4150
+ msgstr ""
4151
+
4152
+ #: ../inc/class-page-editjob.php:829
4153
+ msgid "January"
4154
+ msgstr ""
4155
+
4156
+ #: ../inc/class-page-editjob.php:830
4157
+ msgid "February"
4158
+ msgstr ""
4159
+
4160
+ #: ../inc/class-page-editjob.php:831
4161
+ msgid "March"
4162
+ msgstr ""
4163
+
4164
+ #: ../inc/class-page-editjob.php:832
4165
+ msgid "April"
4166
+ msgstr ""
4167
+
4168
+ #: ../inc/class-page-editjob.php:833
4169
+ msgid "May"
4170
+ msgstr ""
4171
+
4172
+ #: ../inc/class-page-editjob.php:834
4173
+ msgid "June"
4174
+ msgstr ""
4175
+
4176
+ #: ../inc/class-page-editjob.php:835
4177
+ msgid "July"
4178
+ msgstr ""
4179
+
4180
+ #: ../inc/class-page-editjob.php:836
4181
+ msgid "August"
4182
+ msgstr ""
4183
+
4184
+ #: ../inc/class-page-editjob.php:837
4185
+ msgid "September"
4186
+ msgstr ""
4187
+
4188
+ #: ../inc/class-page-editjob.php:838
4189
+ msgid "October"
4190
+ msgstr ""
4191
+
4192
+ #: ../inc/class-page-editjob.php:839
4193
+ msgid "November"
4194
+ msgstr ""
4195
+
4196
+ #: ../inc/class-page-editjob.php:840
4197
+ msgid "December"
4198
+ msgstr ""
4199
+
4200
+ #: ../inc/class-page-editjob.php:845
4201
+ msgid "Day of Week:"
4202
+ msgstr ""
4203
+
4204
+ #: ../inc/class-page-editjob.php:881
4205
+ msgid "Save changes"
4206
+ msgstr ""
4207
+
4208
+ #: ../inc/pro/class-destination-msazure.php:17
4209
+ msgid "Account Name:"
4210
+ msgstr ""
4211
+
4212
+ #: ../inc/pro/class-destination-msazure.php:19 ../inc/pro/class-destination-s3-v1.
4213
+ #: php:37 ../inc/pro/class-destination-s3.php:39 ../inc/pro/class-destination-
4214
+ #: glacier.php:168
4215
+ msgid "Access Key:"
4216
+ msgstr ""
4217
+
4218
+ #: ../inc/pro/class-destination-msazure.php:21 ../inc/pro/class-destination-rsc.
4219
+ #: php:38
4220
+ msgid "Container:"
4221
+ msgstr ""
4222
+
4223
+ #: ../inc/pro/class-destination-msazure.php:28 ../inc/pro/class-destination-rsc.
4224
+ #: php:47
4225
+ msgid "Create container:"
4226
+ msgstr ""
4227
+
4228
+ #: ../inc/pro/class-destination-msazure.php:30 ../inc/pro/class-destination-rsc.
4229
+ #: php:49
4230
+ msgid "Folder in container:"
4231
+ msgstr ""
4232
+
4233
+ #: ../inc/pro/class-destination-msazure.php:101
4234
+ #, php-format
4235
+ msgid "%d. Trying to sync files with Microsoft Azure (Blob) &hellip;"
4236
+ msgstr ""
4237
+
4238
+ #: ../inc/pro/class-destination-msazure.php:136
4239
+ msgid "Retrieving file list from MS Azure."
4240
+ msgstr ""
4241
+
4242
+ #: ../inc/pro/class-destination-msazure.php:152
4243
+ msgid "Upload changed files to MS Azure."
4244
+ msgstr ""
4245
+
4246
+ #: ../inc/pro/class-destination-msazure.php:164
4247
+ #, php-format
4248
+ msgid "File %s uploaded to MS Azure."
4249
+ msgstr ""
4250
+
4251
+ #: ../inc/pro/class-destination-msazure.php:190
4252
+ #, php-format
4253
+ msgid "Extra file %s uploaded to MS Azure."
4254
+ msgstr ""
4255
+
4256
+ #: ../inc/pro/class-destination-msazure.php:203
4257
+ msgid "Delete nonexistent files on MS Azure."
4258
+ msgstr ""
4259
+
4260
+ #: ../inc/pro/class-destination-msazure.php:206
4261
+ #, php-format
4262
+ msgid "File %s deleted from MS Azure."
4263
+ msgstr ""
4264
+
4265
+ #: ../inc/pro/class-wizard-systemtest.php:14
4266
+ msgid "System Test"
4267
+ msgstr ""
4268
+
4269
+ #: ../inc/pro/class-wizard-systemtest.php:15
4270
+ msgid "Wizard to test if BackWPup can work properly"
4271
+ msgstr ""
4272
+
4273
+ #: ../inc/pro/class-wizard-systemtest.php:32
4274
+ msgid "Run tests"
4275
+ msgstr ""
4276
+
4277
+ #: ../inc/pro/class-wizard-systemtest.php:45
4278
+ msgid "Environment"
4279
+ msgstr ""
4280
+
4281
+ #: ../inc/pro/class-wizard-systemtest.php:45
4282
+ msgid "System Environment"
4283
+ msgstr ""
4284
+
4285
+ #: ../inc/pro/class-wizard-systemtest.php:59
4286
+ msgid "Test if BackWPup can work without problems."
4287
+ msgstr ""
4288
+
4289
+ #: ../inc/pro/class-wizard-systemtest.php:99
4290
+ #, php-format
4291
+ msgid ""
4292
+ "You must run WordPress version 3.4 or higher to use this plugin. You are "
4293
+ "using version %s now."
4294
+ msgstr ""
4295
+
4296
+ #: ../inc/pro/class-wizard-systemtest.php:104
4297
+ #, php-format
4298
+ msgid ""
4299
+ "You must run PHP version 5.2.6 or higher to use this plugin. You are using "
4300
+ "version %s now."
4301
+ msgstr ""
4302
+
4303
+ #: ../inc/pro/class-wizard-systemtest.php:108
4304
+ #, php-format
4305
+ msgid ""
4306
+ "We recommend to run a PHP version above 5.3.2 to get the full plugin "
4307
+ "functionality. You are using version %s now."
4308
+ msgstr ""
4309
+
4310
+ #: ../inc/pro/class-wizard-systemtest.php:113
4311
+ #, php-format
4312
+ msgid ""
4313
+ "You must have the MySQLi extension installed and a MySQL server version of 5."
4314
+ "0.7 or higher to use this plugin. You are using version %s now."
4315
+ msgstr ""
4316
+
4317
+ #: ../inc/pro/class-wizard-systemtest.php:118
4318
+ msgid "PHP cURL extension must be installed to use the full plugin functionality."
4319
+ msgstr ""
4320
+
4321
+ #: ../inc/pro/class-wizard-systemtest.php:122
4322
+ #, php-format
4323
+ msgctxt "%1 = extension name, %2 = file suffix"
4324
+ msgid "We recommend to install the %1$s extension to generate %2$s archives."
4325
+ msgstr ""
4326
+
4327
+ #: ../inc/pro/class-wizard-systemtest.php:146
4328
+ #, php-format
4329
+ msgctxt "Link to PHP manual"
4330
+ msgid "Please disable the deprecated <a href=\"%s\">PHP safe mode</a>."
4331
+ msgstr ""
4332
+
4333
+ #: ../inc/pro/class-wizard-systemtest.php:154
4334
+ msgid ""
4335
+ "We recommend to install the PHP FTP extension to use the FTP backup "
4336
+ "destination."
4337
+ msgstr ""
4338
+
4339
+ #: ../inc/pro/class-wizard-systemtest.php:174
4340
+ #, php-format
4341
+ msgid "The HTTP response test result is an error: \"%s\"."
4342
+ msgstr ""
4343
+
4344
+ #: ../inc/pro/class-wizard-systemtest.php:178
4345
+ #, php-format
4346
+ msgid ""
4347
+ "The HTTP response test result is a wrong HTTP status: %s. It should be "
4348
+ "status 200."
4349
+ msgstr ""
4350
+
4351
+ #: ../inc/pro/class-wizard-systemtest.php:196
4352
+ msgid "WP-Cron seems to be broken. But it is needed to run scheduled jobs."
4353
+ msgstr ""
4354
+
4355
+ #: ../inc/pro/class-wizard-systemtest.php:201
4356
+ msgid "All tests passed without errors."
4357
+ msgstr ""
4358
+
4359
+ #: ../inc/pro/class-wizard-systemtest.php:204
4360
+ msgid ""
4361
+ "There is no error, but some warnings. BackWPup will work, but with "
4362
+ "limitations."
4363
+ msgstr ""
4364
+
4365
+ #: ../inc/pro/class-wizard-systemtest.php:207
4366
+ msgid "There are errors. Please correct them, or BackWPup cannot work."
4367
+ msgstr ""
4368
+
4369
+ #: ../inc/pro/class-jobtype-dbdump.php:89
4370
+ msgid "Backup only WordPress Database tables"
4371
+ msgstr ""
4372
+
4373
+ #: ../inc/pro/class-jobtype-dbdump.php:109
4374
+ msgid "Database connection"
4375
+ msgstr ""
4376
+
4377
+ #: ../inc/pro/class-jobtype-dbdump.php:113
4378
+ msgid "Use WordPress database connection."
4379
+ msgstr ""
4380
+
4381
+ #: ../inc/pro/class-jobtype-dbdump.php:117
4382
+ msgid "Host:"
4383
+ msgstr ""
4384
+
4385
+ #: ../inc/pro/class-jobtype-dbdump.php:120
4386
+ msgid "User:"
4387
+ msgstr ""
4388
+
4389
+ #: ../inc/pro/class-jobtype-dbdump.php:127
4390
+ msgid "Charset:"
4391
+ msgstr ""
4392
+
4393
+ #: ../inc/pro/class-jobtype-dbdump.php:138
4394
+ msgid "Database:"
4395
+ msgstr ""
4396
+
4397
+ #: ../inc/pro/class-jobtype-dbdump.php:166
4398
+ msgid "Database Backup type"
4399
+ msgstr ""
4400
+
4401
+ #: ../inc/pro/class-jobtype-dbdump.php:170
4402
+ msgid "SQL File (with mysqli)"
4403
+ msgstr ""
4404
+
4405
+ #: ../inc/pro/class-jobtype-dbdump.php:171
4406
+ msgid "SQL File (with mysqldump)"
4407
+ msgstr ""
4408
+
4409
+ #: ../inc/pro/class-jobtype-dbdump.php:172
4410
+ msgid "XML File (phpMyAdmin schema)"
4411
+ msgstr ""
4412
+
4413
+ #: ../inc/pro/class-jobtype-dbdump.php:178
4414
+ msgid "Path to <em>mysqldump</em> file"
4415
+ msgstr ""
4416
+
4417
+ #: ../inc/pro/class-jobtype-dbdump.php:180
4418
+ msgid ""
4419
+ "Path to mysqldump file, so a backup can be made with it. If it is correct "
4420
+ "and <em>shell_exec</em> is active, the backup will be generated with a "
4421
+ "system command. If <em>shell_exec</em> ist not active, this is disabled"
4422
+ msgstr ""
4423
+
4424
+ #: ../inc/pro/class-jobtype-dbdump.php:560
4425
+ #, php-format
4426
+ msgid "Added database backup \"%1$s\" with %2$s to backup file list"
4427
+ msgstr ""
4428
+
4429
+ #: ../inc/pro/class-jobtype-dbdump.php:581
4430
+ #, php-format
4431
+ msgid "%d. Try to backup MySQL system&#160;&hellip;"
4432
+ msgstr ""
4433
+
4434
+ #: ../inc/pro/class-jobtype-dbdump.php:588
4435
+ msgid "Executing of system commands not allowed. Please use backup with mysqli."
4436
+ msgstr ""
4437
+
4438
+ #: ../inc/pro/class-jobtype-dbdump.php:593
4439
+ #, php-format
4440
+ msgid "%s file not in open basedir of PHP."
4441
+ msgstr ""
4442
+
4443
+ #: ../inc/pro/class-jobtype-dbdump.php:598
4444
+ #, php-format
4445
+ msgid "%s file not found. Please correct the path for the mysqldump file."
4446
+ msgstr ""
4447
+
4448
+ #: ../inc/pro/class-jobtype-dbdump.php:678
4449
+ #, php-format
4450
+ msgctxt "Executed exec() command"
4451
+ msgid "CLI Exec: %s"
4452
+ msgstr ""
4453
+
4454
+ #: ../inc/pro/class-jobtype-dbdump.php:689
4455
+ msgid "Usage error."
4456
+ msgstr ""
4457
+
4458
+ #: ../inc/pro/class-jobtype-dbdump.php:690
4459
+ msgid ""
4460
+ "MySQL Server Error. This could be an issue with permissions. Try using "
4461
+ "database backup with mysqli."
4462
+ msgstr ""
4463
+
4464
+ #: ../inc/pro/class-jobtype-dbdump.php:691
4465
+ msgid "Error during consistency checks."
4466
+ msgstr ""
4467
+
4468
+ #: ../inc/pro/class-jobtype-dbdump.php:692
4469
+ msgid "Not enough memory."
4470
+ msgstr ""
4471
+
4472
+ #: ../inc/pro/class-jobtype-dbdump.php:693
4473
+ msgid "Error during writing of SQL backup file."
4474
+ msgstr ""
4475
+
4476
+ #: ../inc/pro/class-jobtype-dbdump.php:694
4477
+ msgid "Illegal table"
4478
+ msgstr ""
4479
+
4480
+ #: ../inc/pro/class-jobtype-dbdump.php:699
4481
+ #, php-format
4482
+ msgid "mysqldump returned: (%d) %s"
4483
+ msgstr ""
4484
+
4485
+ #: ../inc/pro/class-jobtype-dbdump.php:712
4486
+ msgid "Can not create mysql backup with mysqldump command"
4487
+ msgstr ""
4488
+
4489
+ #: ../inc/pro/class-jobtype-dbdump.php:758
4490
+ #, php-format
4491
+ msgid "%d. Try to backup database as XML&#160;&hellip;"
4492
+ msgstr ""
4493
+
4494
+ #: ../inc/pro/class-jobtype-dbdump.php:828
4495
+ #, php-format
4496
+ msgctxt "Database Charset"
4497
+ msgid "Cannot set DB charset to %s"
4498
+ msgstr ""
4499
+
4500
+ #: ../inc/pro/class-jobtype-dbdump.php:857
4501
+ msgid "No tables for XML backup"
4502
+ msgstr ""
4503
+
4504
+ #: ../inc/pro/class-jobtype-dbdump.php:893
4505
+ #, php-format
4506
+ msgid "Dump database create view \"%s\""
4507
+ msgstr ""
4508
+
4509
+ #: ../inc/pro/class-jobtype-dbdump.php:911
4510
+ #, php-format
4511
+ msgid "Backup database structure \"%s\" to XML"
4512
+ msgstr ""
4513
+
4514
+ #: ../inc/pro/class-jobtype-dbdump.php:953
4515
+ #, php-format
4516
+ msgid "Backup table \"%s\" data to XML"
4517
+ msgstr ""
4518
+
4519
+ #: ../inc/pro/class-jobtype-dbdump.php:1021
4520
+ #, php-format
4521
+ msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
4522
+ msgstr ""
4523
+
4524
+ #: ../inc/pro/class-jobtype-dbdump.php:1024
4525
+ msgid "Database XML backup done!"
4526
+ msgstr ""
4527
+
4528
+ #: ../inc/pro/class-export-jobs.php:12 ../inc/pro/class-export-jobs.php:23
4529
+ msgid "Export"
4530
+ msgstr ""
4531
+
4532
+ #: ../inc/pro/class-jobtype-file.php:19
4533
+ msgid "Backup WordPress main files"
4534
+ msgstr ""
4535
+
4536
+ #: ../inc/pro/class-jobtype-file.php:23
4537
+ msgid "Backup blog content folder"
4538
+ msgstr ""
4539
+
4540
+ #: ../inc/pro/class-jobtype-file.php:27
4541
+ msgid "Backup blog plugins"
4542
+ msgstr ""
4543
+
4544
+ #: ../inc/pro/class-jobtype-file.php:31
4545
+ msgid "Backup blog themes"
4546
+ msgstr ""
4547
+
4548
+ #: ../inc/pro/class-jobtype-file.php:35
4549
+ msgid "Backup blog uploads folder"
4550
+ msgstr ""
4551
+
4552
+ #: ../inc/pro/class-settings-apikeys.php:42
4553
+ msgid "Hash key"
4554
+ msgstr ""
4555
+
4556
+ #: ../inc/pro/class-settings-apikeys.php:43
4557
+ msgid ""
4558
+ "Hash Key for BackWPup. It will be used to have hashes in folder and file "
4559
+ "names. It must at least 6 chars long."
4560
+ msgstr ""
4561
+
4562
+ #: ../inc/pro/class-settings-apikeys.php:46
4563
+ msgid "Hash key:"
4564
+ msgstr ""
4565
+
4566
+ #: ../inc/pro/class-settings-apikeys.php:59
4567
+ msgid "Dropbox API Keys"
4568
+ msgstr ""
4569
+
4570
+ #: ../inc/pro/class-settings-apikeys.php:60
4571
+ msgid ""
4572
+ "If you want to set your own Dropbox API Keys, you can do it here. Leave "
4573
+ "empty for default."
4574
+ msgstr ""
4575
+
4576
+ #: ../inc/pro/class-settings-apikeys.php:63
4577
+ msgid "Full Dropbox App key:"
4578
+ msgstr ""
4579
+
4580
+ #: ../inc/pro/class-settings-apikeys.php:71
4581
+ msgid "Full Dropbox App secret:"
4582
+ msgstr ""
4583
+
4584
+ #: ../inc/pro/class-settings-apikeys.php:79
4585
+ msgid "Sandbox App key:"
4586
+ msgstr ""
4587
+
4588
+ #: ../inc/pro/class-settings-apikeys.php:87
4589
+ msgid "Sandbox App secret:"
4590
+ msgstr ""
4591
+
4592
+ #: ../inc/pro/class-settings-apikeys.php:100
4593
+ msgid "SugarSync API Keys"
4594
+ msgstr ""
4595
+
4596
+ #: ../inc/pro/class-settings-apikeys.php:101
4597
+ msgid ""
4598
+ "If you want to set your own SugarSync API keys you can do that here. Leave "
4599
+ "empty for default."
4600
+ msgstr ""
4601
+
4602
+ #: ../inc/pro/class-settings-apikeys.php:104
4603
+ msgid "Access Key ID:"
4604
+ msgstr ""
4605
+
4606
+ #: ../inc/pro/class-settings-apikeys.php:112
4607
+ msgid "Private Access Key:"
4608
+ msgstr ""
4609
+
4610
+ #: ../inc/pro/class-settings-apikeys.php:119
4611
+ msgid "App ID:"
4612
+ msgstr ""
4613
+
4614
+ #: ../inc/pro/class-settings-apikeys.php:132
4615
+ msgid "Google API Keys"
4616
+ msgstr ""
4617
+
4618
+ #: ../inc/pro/class-settings-apikeys.php:136
4619
+ msgid "Client ID:"
4620
+ msgstr ""
4621
+
4622
+ #: ../inc/pro/class-settings-apikeys.php:144
4623
+ msgid "Client secret:"
4624
+ msgstr ""
4625
+
4626
+ #: ../inc/pro/class-settings-apikeys.php:151
4627
+ msgid "Redirect URIs:"
4628
+ msgstr ""
4629
+
4630
+ #: ../inc/pro/class-settings-apikeys.php:155
4631
+ msgid "Add this URI in a new line to the field."
4632
+ msgstr ""
4633
+
4634
+ #: ../inc/pro/class-wizard-jobimport.php:14
4635
+ msgid "XML job import"
4636
+ msgstr ""
4637
+
4638
+ #: ../inc/pro/class-wizard-jobimport.php:15
4639
+ msgid "Wizard for importing BackWPup jobs from an XML file"
4640
+ msgstr ""
4641
+
4642
+ #: ../inc/pro/class-wizard-jobimport.php:32 ../inc/pro/class-wizard-jobimport.php:
4643
+ #: 98
4644
+ msgid "Import"
4645
+ msgstr ""
4646
+
4647
+ #: ../inc/pro/class-wizard-jobimport.php:45
4648
+ msgid "Import File"
4649
+ msgstr ""
4650
+
4651
+ #: ../inc/pro/class-wizard-jobimport.php:45
4652
+ msgid "Upload XML job file for import"
4653
+ msgstr ""
4654
+
4655
+ #: ../inc/pro/class-wizard-jobimport.php:46
4656
+ msgid "Select items to import"
4657
+ msgstr ""
4658
+
4659
+ #: ../inc/pro/class-wizard-jobimport.php:46
4660
+ msgid "Select which job should be imported or overwritten."
4661
+ msgstr ""
4662
+
4663
+ #: ../inc/pro/class-wizard-jobimport.php:67
4664
+ msgid ""
4665
+ "Please upload your BackWPup job XML export file and we&#8217;ll import the "
4666
+ "jobs into BackWPup."
4667
+ msgstr ""
4668
+
4669
+ #: ../inc/pro/class-wizard-jobimport.php:69
4670
+ msgid "Choose a file from your computer:"
4671
+ msgstr ""
4672
+
4673
+ #: ../inc/pro/class-wizard-jobimport.php:69
4674
+ #, php-format
4675
+ msgid "Maximum size: %s"
4676
+ msgstr ""
4677
+
4678
+ #: ../inc/pro/class-wizard-jobimport.php:91
4679
+ msgid "Import Jobs"
4680
+ msgstr ""
4681
+
4682
+ #: ../inc/pro/class-wizard-jobimport.php:94
4683
+ msgid "Import Type"
4684
+ msgstr ""
4685
+
4686
+ #: ../inc/pro/class-wizard-jobimport.php:94
4687
+ msgid "No Import"
4688
+ msgstr ""
4689
+
4690
+ #: ../inc/pro/class-wizard-jobimport.php:96
4691
+ msgid "Overwrite"
4692
+ msgstr ""
4693
+
4694
+ #: ../inc/pro/class-wizard-jobimport.php:96
4695
+ msgid "Append"
4696
+ msgstr ""
4697
+
4698
+ #: ../inc/pro/class-wizard-jobimport.php:110
4699
+ msgid "Import Config"
4700
+ msgstr ""
4701
+
4702
+ #: ../inc/pro/class-wizard-jobimport.php:113
4703
+ msgid "Import BackWPup configuration"
4704
+ msgstr ""
4705
+
4706
+ #: ../inc/pro/class-wizard-jobimport.php:138
4707
+ msgid ""
4708
+ "File is empty. Please upload something more substantial. This error could "
4709
+ "also caused by uploads being disabled in your php.ini or by post_max_size "
4710
+ "being defined as smaller than upload_max_filesize in php.ini."
4711
+ msgstr ""
4712
+
4713
+ #: ../inc/pro/class-wizard-jobimport.php:153
4714
+ #, php-format
4715
+ msgid ""
4716
+ "The export file could not be found at <code>%s</code>. This is likely due to "
4717
+ "an issue with permissions."
4718
+ msgstr ""
4719
+
4720
+ #: ../inc/pro/class-wizard-jobimport.php:160
4721
+ msgid "Sorry, there has been a phrase error."
4722
+ msgstr ""
4723
+
4724
+ #: ../inc/pro/class-wizard-jobimport.php:167
4725
+ #, php-format
4726
+ msgid ""
4727
+ "This Export file (version %s) may not be supported by this version of the "
4728
+ "importer."
4729
+ msgstr ""
4730
+
4731
+ #: ../inc/pro/class-wizard-jobimport.php:173
4732
+ msgid "This is not a BackWPup XML file"
4733
+ msgstr ""
4734
+
4735
+ #: ../inc/pro/class-wizard-jobimport.php:236
4736
+ #, php-format
4737
+ msgid "Job %1$s with id %2$d imported"
4738
+ msgstr ""
4739
+
4740
+ #: ../inc/pro/class-wizard-jobimport.php:244
4741
+ msgid "BackWPup config imported"
4742
+ msgstr ""
4743
+
4744
+ #: ../inc/pro/class-destination-s3-v1.php:17 ../inc/pro/class-destination-s3.php:17
4745
+ msgid "Select a S3 service:"
4746
+ msgstr ""
4747
+
4748
+ #: ../inc/pro/class-destination-s3-v1.php:30
4749
+ msgid "Hosteurope Cloud Storage"
4750
+ msgstr ""
4751
+
4752
+ #: ../inc/pro/class-destination-s3-v1.php:34 ../inc/pro/class-destination-s3.php:36
4753
+ msgid "or set an S3 Server URL:"
4754
+ msgstr ""
4755
+
4756
+ #: ../inc/pro/class-destination-s3-v1.php:40 ../inc/pro/class-destination-s3.php:
4757
+ #: 42 ../inc/pro/class-destination-glacier.php:170
4758
+ msgid "Secret Key:"
4759
+ msgstr ""
4760
+
4761
+ #: ../inc/pro/class-destination-s3-v1.php:43 ../inc/pro/class-destination-s3.php:45
4762
+ msgid "Bucket:"
4763
+ msgstr ""
4764
+
4765
+ #: ../inc/pro/class-destination-s3-v1.php:53 ../inc/pro/class-destination-s3.php:55
4766
+ msgid "New Bucket:"
4767
+ msgstr ""
4768
+
4769
+ #: ../inc/pro/class-destination-s3-v1.php:55 ../inc/pro/class-destination-s3.php:57
4770
+ msgid "Folder in bucket:"
4771
+ msgstr ""
4772
+
4773
+ #: ../inc/pro/class-destination-s3-v1.php:135 ../inc/pro/class-destination-s3.php:
4774
+ #: 136
4775
+ #, php-format
4776
+ msgid "Bucket %1$s created in %2$s."
4777
+ msgstr ""
4778
+
4779
+ #: ../inc/pro/class-destination-s3-v1.php:158 ../inc/pro/class-destination-s3.php:
4780
+ #: 160
4781
+ #, php-format
4782
+ msgid "%d. Trying to sync files to S3 Service&#160;&hellip;"
4783
+ msgstr ""
4784
+
4785
+ #: ../inc/pro/class-destination-s3-v1.php:197 ../inc/pro/class-destination-s3.php:
4786
+ #: 194
4787
+ msgid "Retrieving file list from S3."
4788
+ msgstr ""
4789
+
4790
+ #: ../inc/pro/class-destination-s3-v1.php:253 ../inc/pro/class-destination-s3.php:
4791
+ #: 256
4792
+ msgid "Upload changed files to S3."
4793
+ msgstr ""
4794
+
4795
+ #: ../inc/pro/class-destination-s3-v1.php:265 ../inc/pro/class-destination-s3.php:
4796
+ #: 271
4797
+ #, php-format
4798
+ msgid "File %s uploaded to S3."
4799
+ msgstr ""
4800
+
4801
+ #: ../inc/pro/class-destination-s3-v1.php:290 ../inc/pro/class-destination-s3.php:
4802
+ #: 299
4803
+ #, php-format
4804
+ msgid "Extra file %s uploaded to S3."
4805
+ msgstr ""
4806
+
4807
+ #: ../inc/pro/class-destination-s3-v1.php:303 ../inc/pro/class-destination-s3.php:
4808
+ #: 312
4809
+ msgid "Delete nonexistent files on S3"
4810
+ msgstr ""
4811
+
4812
+ #: ../inc/pro/class-destination-s3-v1.php:306 ../inc/pro/class-destination-s3.php:
4813
+ #: 319
4814
+ #, php-format
4815
+ msgid "File %s deleted from S3."
4816
+ msgstr ""
4817
+
4818
+ #: ../inc/pro/class-destination-sugarsync.php:25 ../inc/pro/class-destination-
4819
+ #: sugarsync.php:85
4820
+ msgid "Sugarsync authenticate!"
4821
+ msgstr ""
4822
+
4823
+ #: ../inc/pro/class-destination-sugarsync.php:31 ../inc/pro/class-destination-
4824
+ #: dropbox.php:34 ../inc/pro/class-destination-gdrive.php:270 ../inc/pro/class-
4825
+ #: destination-gdrive.php:276
4826
+ msgid "Login:"
4827
+ msgstr ""
4828
+
4829
+ #: ../inc/pro/class-destination-sugarsync.php:36
4830
+ msgid "Root:"
4831
+ msgstr ""
4832
+
4833
+ #: ../inc/pro/class-destination-sugarsync.php:58 ../inc/pro/class-destination-
4834
+ #: dropbox.php:38 ../inc/pro/class-destination-gdrive.php:281
4835
+ msgid "Folder:"
4836
+ msgstr ""
4837
+
4838
+ #: ../inc/pro/class-destination-sugarsync.php:61 ../inc/pro/class-destination-ftp.
4839
+ #: php:39
4840
+ msgid "Maximum number of backup files to keep in folder:"
4841
+ msgstr ""
4842
+
4843
+ #: ../inc/pro/class-destination-sugarsync.php:63 ../inc/pro/class-destination-ftp.
4844
+ #: php:42
4845
+ msgid "(Oldest files will be deleted first.)"
4846
+ msgstr ""
4847
+
4848
+ #: ../inc/pro/class-destination-folder.php:18
4849
+ msgid "Absolute path to folder for backup files:"
4850
+ msgstr ""
4851
+
4852
+ #: ../inc/pro/class-destination-folder.php:69
4853
+ #, php-format
4854
+ msgid "%d. Try to sync files to folder&#160;&hellip;"
4855
+ msgstr ""
4856
+
4857
+ #: ../inc/pro/class-destination-folder.php:73
4858
+ msgid "Retrieving file list from folder"
4859
+ msgstr ""
4860
+
4861
+ #: ../inc/pro/class-destination-folder.php:79
4862
+ msgid "Copy changed files to folder"
4863
+ msgstr ""
4864
+
4865
+ #: ../inc/pro/class-destination-folder.php:92
4866
+ #, php-format
4867
+ msgid "File %s copied"
4868
+ msgstr ""
4869
+
4870
+ #: ../inc/pro/class-destination-folder.php:105
4871
+ msgid "Delete not existing files from folder"
4872
+ msgstr ""
4873
+
4874
+ #: ../inc/pro/class-destination-folder.php:113
4875
+ #, php-format
4876
+ msgid "Extra file %s copied"
4877
+ msgstr ""
4878
+
4879
+ #: ../inc/pro/class-destination-folder.php:129
4880
+ #, php-format
4881
+ msgid "File %s deleted from folder"
4882
+ msgstr ""
4883
+
4884
+ #: ../inc/pro/class-destination-folder.php:186
4885
+ #, php-format
4886
+ msgid "Empty folder %s deleted"
4887
+ msgstr ""
4888
+
4889
+ #: ../inc/pro/class-destination-dropbox.php:24
4890
+ msgid "Auth Code:"
4891
+ msgstr ""
4892
+
4893
+ #: ../inc/pro/class-destination-dropbox.php:27
4894
+ msgid "Get auth code"
4895
+ msgstr ""
4896
+
4897
+ #: ../inc/pro/class-destination-dropbox.php:105
4898
+ #, php-format
4899
+ msgid "%d. Try to sync files to Dropbox&#160;&hellip;"
4900
+ msgstr ""
4901
+
4902
+ #: ../inc/pro/class-destination-dropbox.php:145
4903
+ msgid "Retrieving file list from Dropbox"
4904
+ msgstr ""
4905
+
4906
+ #: ../inc/pro/class-destination-dropbox.php:159
4907
+ msgid "Upload changed files to Dropbox"
4908
+ msgstr ""
4909
+
4910
+ #: ../inc/pro/class-destination-dropbox.php:181
4911
+ #, php-format
4912
+ msgid "File %s uploaded to Dropbox"
4913
+ msgstr ""
4914
+
4915
+ #: ../inc/pro/class-destination-dropbox.php:208
4916
+ #, php-format
4917
+ msgid "Extra file %s uploaded to Dropbox"
4918
+ msgstr ""
4919
+
4920
+ #: ../inc/pro/class-destination-dropbox.php:217
4921
+ msgid "Delete not existing files from Dropbox"
4922
+ msgstr ""
4923
+
4924
+ #: ../inc/pro/class-destination-dropbox.php:224
4925
+ #, php-format
4926
+ msgid "Folder %s deleted from Dropbox"
4927
+ msgstr ""
4928
+
4929
+ #: ../inc/pro/class-destination-dropbox.php:242
4930
+ #, php-format
4931
+ msgid "File %s deleted from Dropbox"
4932
+ msgstr ""
4933
+
4934
+ #: ../inc/pro/class-page-wizard.php:122
4935
+ msgid "No BackWPup Wizard Session found!"
4936
+ msgstr ""
4937
+
4938
+ #: ../inc/pro/class-page-wizard.php:134 ../inc/pro/class-page-wizard.php:442
4939
+ msgid "Cancel"
4940
+ msgstr ""
4941
+
4942
+ #: ../inc/pro/class-page-wizard.php:169 ../inc/pro/class-page-wizard.php:437 ..
4943
+ #: /inc/pro/class-page-wizard.php:470
4944
+ msgid "Next ›"
4945
+ msgstr ""
4946
+
4947
+ #: ../inc/pro/class-page-wizard.php:186 ../inc/pro/class-page-wizard.php:433
4948
+ msgid "‹ Previous"
4949
+ msgstr ""
4950
+
4951
+ #: ../inc/pro/class-page-wizard.php:335
4952
+ #, php-format
4953
+ msgctxt "Plugin Name"
4954
+ msgid "%s Wizards"
4955
+ msgstr ""
4956
+
4957
+ #: ../inc/pro/class-page-wizard.php:373
4958
+ #, php-format
4959
+ msgctxt "Plugin Name"
4960
+ msgid "%s Wizard:"
4961
+ msgstr ""
4962
+
4963
+ #: ../inc/pro/class-page-wizard.php:445
4964
+ msgid "Back to overview"
4965
+ msgstr ""
4966
+
4967
+ #: ../inc/pro/class-destination-ftp.php:17
4968
+ msgid "Hostname:"
4969
+ msgstr ""
4970
+
4971
+ #: ../inc/pro/class-destination-ftp.php:25 ../inc/pro/class-destination-rsc.php:23
4972
+ msgid "Username:"
4973
+ msgstr ""
4974
+
4975
+ #: ../inc/pro/class-destination-ftp.php:33
4976
+ msgid "Folder on server:"
4977
+ msgstr ""
4978
+
4979
+ #: ../inc/pro/class-destination-rsc.php:26
4980
+ msgid "API Key:"
4981
+ msgstr ""
4982
+
4983
+ #: ../inc/pro/class-destination-rsc.php:29
4984
+ msgid "Select region:"
4985
+ msgstr ""
4986
+
4987
+ #: ../inc/pro/class-destination-rsc.php:136
4988
+ #, php-format
4989
+ msgid "%d. Trying to sync files to Rackspace cloud&#160;&hellip;"
4990
+ msgstr ""
4991
+
4992
+ #: ../inc/pro/class-destination-rsc.php:156
4993
+ #, php-format
4994
+ msgid "Connected to Rackspace cloud files container %s."
4995
+ msgstr ""
4996
+
4997
+ #: ../inc/pro/class-destination-rsc.php:170
4998
+ msgid "Retrieving files list from Rackspace Cloud."
4999
+ msgstr ""
5000
+
5001
+ #: ../inc/pro/class-destination-rsc.php:201
5002
+ msgid "Upload changed files to Rackspace Cloud."
5003
+ msgstr ""
5004
+
5005
+ #: ../inc/pro/class-destination-rsc.php:219
5006
+ #, php-format
5007
+ msgid "File %s uploaded to Rackspace Cloud."
5008
+ msgstr ""
5009
+
5010
+ #: ../inc/pro/class-destination-rsc.php:252
5011
+ #, php-format
5012
+ msgid "Extra file %s uploaded to Rackspace Cloud."
5013
+ msgstr ""
5014
+
5015
+ #: ../inc/pro/class-destination-rsc.php:265
5016
+ msgid "Delete nonexistent files on Rackspace Cloud."
5017
+ msgstr ""
5018
+
5019
+ #: ../inc/pro/class-destination-rsc.php:269
5020
+ #, php-format
5021
+ msgid "File %s deleted from Rackspace Cloud."
5022
+ msgstr ""
5023
+
5024
+ #: ../inc/pro/class-marketpress-documentation.php:175
5025
+ msgid "Loading Menu ..."
5026
+ msgstr ""
5027
+
5028
+ #: ../inc/pro/class-marketpress-documentation.php:218 ../inc/pro/class-
5029
+ #: marketpress-documentation.php:334
5030
+ #, php-format
5031
+ msgctxt "%s = Remote Code"
5032
+ msgid "Could not connect to remote host, code %d. Please try again later."
5033
+ msgstr ""
5034
+
5035
+ #: ../inc/pro/class-marketpress-documentation.php:230 ../inc/pro/class-
5036
+ #: marketpress-documentation.php:346
5037
+ msgid "Could not find content for this page. Please try again later."
5038
+ msgstr ""
5039
+
5040
+ #: ../inc/pro/class-marketpress-documentation.php:236 ../inc/pro/class-
5041
+ #: marketpress-documentation.php:351
5042
+ msgid "Could not connect to remote host. Please try again later."
5043
+ msgstr ""
5044
+
5045
+ #: ../inc/pro/class-marketpress-documentation.php:282 ../inc/pro/class-
5046
+ #: marketpress-documentation.php:290
5047
+ msgid "Loading Content ..."
5048
+ msgstr ""
5049
+
5050
+ #: ../inc/pro/class-jobtype-dbcheck.php:21
5051
+ msgid "Check only WordPress Database tables"
5052
+ msgstr ""
5053
+
5054
+ #: ../inc/pro/class-jobtype-wpexp.php:17
5055
+ msgid "Items to export:"
5056
+ msgstr ""
5057
+
5058
+ #: ../inc/pro/class-destination-gdrive.php:35 ../inc/pro/class-destination-gdrive.
5059
+ #: php:257
5060
+ #, php-format
5061
+ msgid ""
5062
+ "Looks like you haven’t set up any API keys yet. Head over to <a "
5063
+ "href=\"%s\">Settings | API-Keys</a> and get Google Drive all set up, then come "
5064
+ "back here."
5065
+ msgstr ""
5066
+
5067
+ #: ../inc/pro/class-destination-gdrive.php:49 ../inc/pro/class-destination-gdrive.
5068
+ #: php:272
5069
+ msgid "Authenticate"
5070
+ msgstr ""
5071
+
5072
+ #: ../inc/pro/class-destination-gdrive.php:55 ../inc/pro/class-destination-gdrive.
5073
+ #: php:278
5074
+ msgid "Reauthenticate"
5075
+ msgstr ""
5076
+
5077
+ #: ../inc/pro/class-destination-gdrive.php:65
5078
+ msgid "Folder in Google Drive"
5079
+ msgstr ""
5080
+
5081
+ #: ../inc/pro/class-destination-gdrive.php:85
5082
+ msgid ""
5083
+ "Consider using trash to delete files. If trash is not enabled, files will be "
5084
+ "deleted permanently."
5085
+ msgstr ""
5086
+
5087
+ #: ../inc/pro/class-destination-gdrive.php:142 ../inc/pro/class-destination-
5088
+ #: gdrive.php:169
5089
+ msgid "GDrive: Authenticated."
5090
+ msgstr ""
5091
+
5092
+ #: ../inc/pro/class-destination-gdrive.php:146 ../inc/pro/class-destination-
5093
+ #: gdrive.php:173
5094
+ msgid "GDrive: No refresh token received. Try to Authenticate again!"
5095
+ msgstr ""
5096
+
5097
+ #: ../inc/pro/class-destination-gdrive.php:153 ../inc/pro/class-destination-
5098
+ #: gdrive.php:178 ../inc/pro/class-destination-gdrive.php:202 ../inc/pro/class-
5099
+ #: destination-gdrive.php:224
5100
+ #, php-format
5101
+ msgid "GDrive API: %s"
5102
+ msgstr ""
5103
+
5104
+ #: ../inc/pro/class-destination-gdrive.php:389
5105
+ #, php-format
5106
+ msgid "%d. Try to send backup file to Google Drive&#160;&hellip;"
5107
+ msgstr ""
5108
+
5109
+ #: ../inc/pro/class-destination-gdrive.php:415
5110
+ msgid "Uploading to Google Drive&#160;&hellip;"
5111
+ msgstr ""
5112
+
5113
+ #: ../inc/pro/class-destination-gdrive.php:475
5114
+ msgid "Google Drive API: could not create resumable file"
5115
+ msgstr ""
5116
+
5117
+ #: ../inc/pro/class-destination-gdrive.php:521
5118
+ msgid "Can not resume transfer backup to Google Drive!"
5119
+ msgstr ""
5120
+
5121
+ #: ../inc/pro/class-destination-gdrive.php:590
5122
+ #, php-format
5123
+ msgid "Error transfering file chunks to %s."
5124
+ msgstr ""
5125
+
5126
+ #: ../inc/pro/class-destination-gdrive.php:591 ../inc/pro/class-destination-
5127
+ #: gdrive.php:617
5128
+ msgid "Google Drive"
5129
+ msgstr ""
5130
+
5131
+ #: ../inc/pro/class-destination-gdrive.php:661
5132
+ #, php-format
5133
+ msgid "One file deleted from Google Drive"
5134
+ msgid_plural "%d files deleted on Google Drive"
5135
+ msgstr[0] ""
5136
+ msgstr[1] ""
5137
+
5138
+ #: ../inc/pro/class-destination-gdrive.php:667 ../inc/pro/class-destination-
5139
+ #: gdrive.php:889
5140
+ #, php-format
5141
+ msgid "Google Drive API: %s"
5142
+ msgstr ""
5143
+
5144
+ #: ../inc/pro/class-destination-gdrive.php:715
5145
+ #, php-format
5146
+ msgid "%d. Try to sync files to Google Drive&#160;&hellip;"
5147
+ msgstr ""
5148
+
5149
+ #: ../inc/pro/class-destination-gdrive.php:739
5150
+ msgid "Syncing changed files to Google Drive"
5151
+ msgstr ""
5152
+
5153
+ #: ../inc/pro/class-destination-gdrive.php:768
5154
+ #, php-format
5155
+ msgid "File %s updated on Google Drive"
5156
+ msgstr ""
5157
+
5158
+ #: ../inc/pro/class-destination-gdrive.php:788
5159
+ #, php-format
5160
+ msgid "File %s uploaded to Google Drive"
5161
+ msgstr ""
5162
+
5163
+ #: ../inc/pro/class-destination-gdrive.php:809
5164
+ #, php-format
5165
+ msgid "File %s moved to trash in Google Drive"
5166
+ msgstr ""
5167
+
5168
+ #: ../inc/pro/class-destination-gdrive.php:812
5169
+ #, php-format
5170
+ msgid "File %s deleted permanently in Google Drive"
5171
+ msgstr ""
5172
+
5173
+ #: ../inc/pro/class-destination-gdrive.php:857
5174
+ #, php-format
5175
+ msgid "Extra file %s updated on Google Drive"
5176
+ msgstr ""
5177
+
5178
+ #: ../inc/pro/class-destination-gdrive.php:878
5179
+ #, php-format
5180
+ msgid "Extra file %s uploaded to Google Drive"
5181
+ msgstr ""
5182
+
5183
+ #: ../inc/pro/class-destination-glacier.php:26
5184
+ msgid "Amazon Glacier"
5185
+ msgstr ""
5186
+
5187
+ #: ../inc/pro/class-destination-glacier.php:30
5188
+ msgid "Select a region:"
5189
+ msgstr ""
5190
+
5191
+ #: ../inc/pro/class-destination-glacier.php:32 ../inc/pro/class-destination-
5192
+ #: glacier.php:155
5193
+ msgid "Amazon Glacier Region"
5194
+ msgstr ""
5195
+
5196
+ #: ../inc/pro/class-destination-glacier.php:33 ../inc/pro/class-destination-
5197
+ #: glacier.php:156
5198
+ msgid "US Standard"
5199
+ msgstr ""
5200
+
5201
+ #: ../inc/pro/class-destination-glacier.php:34 ../inc/pro/class-destination-
5202
+ #: glacier.php:157
5203
+ msgid "US West (Northern California)"
5204
+ msgstr ""
5205
+
5206
+ #: ../inc/pro/class-destination-glacier.php:35 ../inc/pro/class-destination-
5207
+ #: glacier.php:158
5208
+ msgid "US West (Oregon)"
5209
+ msgstr ""
5210
+
5211
+ #: ../inc/pro/class-destination-glacier.php:36 ../inc/pro/class-destination-
5212
+ #: glacier.php:159
5213
+ msgid "EU (Ireland)"
5214
+ msgstr ""
5215
+
5216
+ #: ../inc/pro/class-destination-glacier.php:37 ../inc/pro/class-destination-
5217
+ #: glacier.php:160
5218
+ msgid "EU (Germany)"
5219
+ msgstr ""
5220
+
5221
+ #: ../inc/pro/class-destination-glacier.php:38 ../inc/pro/class-destination-
5222
+ #: glacier.php:161
5223
+ msgid "Asia Pacific (Tokyo)"
5224
+ msgstr ""
5225
+
5226
+ #: ../inc/pro/class-destination-glacier.php:39 ../inc/pro/class-destination-
5227
+ #: glacier.php:162
5228
+ msgid "Asia Pacific (Seoul)"
5229
+ msgstr ""
5230
+
5231
+ #: ../inc/pro/class-destination-glacier.php:40 ../inc/pro/class-destination-
5232
+ #: glacier.php:163
5233
+ msgid "Asia Pacific (Singapore)"
5234
+ msgstr ""
5235
+
5236
+ #: ../inc/pro/class-destination-glacier.php:41 ../inc/pro/class-destination-
5237
+ #: glacier.php:164
5238
+ msgid "Asia Pacific (Sydney)"
5239
+ msgstr ""
5240
+
5241
+ #: ../inc/pro/class-destination-glacier.php:42 ../inc/pro/class-destination-
5242
+ #: glacier.php:165
5243
+ msgid "South America (Sao Paulo)"
5244
+ msgstr ""
5245
+
5246
+ #: ../inc/pro/class-destination-glacier.php:43 ../inc/pro/class-destination-
5247
+ #: glacier.php:166
5248
+ msgid "China (Beijing)"
5249
+ msgstr ""
5250
+
5251
+ #: ../inc/pro/class-destination-glacier.php:49
5252
+ msgid "Amazon Access Keys"
5253
+ msgstr ""
5254
+
5255
+ #: ../inc/pro/class-destination-glacier.php:68
5256
+ msgid "Vault"
5257
+ msgstr ""
5258
+
5259
+ #: ../inc/pro/class-destination-glacier.php:72
5260
+ msgid "Vault selection"
5261
+ msgstr ""
5262
+
5263
+ #: ../inc/pro/class-destination-glacier.php:84
5264
+ msgid "Create a new vault"
5265
+ msgstr ""
5266
+
5267
+ #: ../inc/pro/class-destination-glacier.php:91
5268
+ msgid "Glacier Backup settings"
5269
+ msgstr ""
5270
+
5271
+ #: ../inc/pro/class-destination-glacier.php:98 ../inc/pro/class-destination-
5272
+ #: glacier.php:184
5273
+ msgid ""
5274
+ "Number of files to keep in folder. (Archives deleted before 3 months after "
5275
+ "they have been stored may cause extra costs when deleted.)"
5276
+ msgstr ""
5277
+
5278
+ #: ../inc/pro/class-destination-glacier.php:131 ../inc/pro/class-destination-
5279
+ #: glacier.php:219
5280
+ #, php-format
5281
+ msgid "Vault %1$s created."
5282
+ msgstr ""
5283
+
5284
+ #: ../inc/pro/class-destination-glacier.php:133 ../inc/pro/class-destination-
5285
+ #: glacier.php:221
5286
+ #, php-format
5287
+ msgid "Vault %s could not be created."
5288
+ msgstr ""
5289
+
5290
+ #: ../inc/pro/class-destination-glacier.php:154
5291
+ msgid "Select an Amazon Glacier region:"
5292
+ msgstr ""
5293
+
5294
+ #: ../inc/pro/class-destination-glacier.php:172
5295
+ msgid "Vault:"
5296
+ msgstr ""
5297
+
5298
+ #: ../inc/pro/class-destination-glacier.php:181
5299
+ msgid "New Vault:"
5300
+ msgstr ""
5301
+
5302
+ #: ../inc/pro/class-destination-glacier.php:262 ../inc/pro/class-destination-
5303
+ #: glacier.php:378 ../inc/pro/class-destination-glacier.php:397 ../inc/pro/class-
5304
+ #: destination-glacier.php:437
5305
+ #, php-format
5306
+ msgid "AWS API: %s"
5307
+ msgstr ""
5308
+
5309
+ #: ../inc/pro/class-destination-glacier.php:286
5310
+ #, php-format
5311
+ msgid "%d. Trying to send backup file to Amazon Glacier&#160;&hellip;"
5312
+ msgstr ""
5313
+
5314
+ #: ../inc/pro/class-destination-glacier.php:299
5315
+ #, php-format
5316
+ msgid "Connected to Glacier vault \"%1$s\" with %2$d archives and size of %3$d"
5317
+ msgstr ""
5318
+
5319
+ #: ../inc/pro/class-destination-glacier.php:301
5320
+ #, php-format
5321
+ msgid "Glacier vault \"%s\" does not exist!"
5322
+ msgstr ""
5323
+
5324
+ #: ../inc/pro/class-destination-glacier.php:307
5325
+ msgid "Starting upload to Amazon Glacier&#160;&hellip;"
5326
+ msgstr ""
5327
+
5328
+ #: ../inc/pro/class-destination-glacier.php:360
5329
+ #, php-format
5330
+ msgid "Archive ID: %s"
5331
+ msgstr ""
5332
+
5333
+ #: ../inc/pro/class-destination-glacier.php:371 ../inc/pro/class-pro.php:111
5334
+ msgid "Glacier"
5335
+ msgstr ""
5336
+
5337
+ #: ../inc/pro/class-destination-glacier.php:427
5338
+ #, php-format
5339
+ msgid "Cannot delete archive from %s."
5340
+ msgstr ""
5341
+
5342
+ #: ../inc/pro/class-destination-glacier.php:431
5343
+ #, php-format
5344
+ msgid "One file deleted on vault."
5345
+ msgid_plural "%d files deleted on vault"
5346
+ msgstr[0] ""
5347
+ msgstr[1] ""
5348
+
5349
+ #: ../inc/pro/class-destination-glacier.php:545
5350
+ msgid "No vault found!"
5351
+ msgstr ""
5352
+
5353
+ #: ../inc/pro/class-jobtype-wpplugin.php:13
5354
+ msgid "Nothing to configure"
5355
+ msgstr ""
5356
+
5357
+ #: ../inc/pro/class-marketpress-autoupdate.php:352 ../inc/pro/class-marketpress-
5358
+ #: autoupdate.php:587
5359
+ msgctxt "MarketPress URL part, should be .de for German languages"
5360
+ msgid "marketpress.com"
5361
+ msgstr ""
5362
+
5363
+ #: ../inc/pro/class-marketpress-autoupdate.php:362
5364
+ #, php-format
5365
+ msgid ""
5366
+ "<strong>Whoops!</strong> The license key you have entered appears not to be "
5367
+ "valid. You can always get your valid key from your Downloads page at %s. "
5368
+ "Automatic updates for this plugin have been disabled until you enter a valid "
5369
+ "key."
5370
+ msgstr ""
5371
+
5372
+ #: ../inc/pro/class-marketpress-autoupdate.php:369
5373
+ #, php-format
5374
+ msgid ""
5375
+ "<strong>All is fine.</strong> You are using a valid license key from %s for "
5376
+ "this plugin. If you need to enter a new key, just override the current one "
5377
+ "and save."
5378
+ msgstr ""
5379
+
5380
+ #: ../inc/pro/class-marketpress-autoupdate.php:382
5381
+ #, php-format
5382
+ msgid "Enter a valid license key from %s below."
5383
+ msgstr ""
5384
+
5385
+ #: ../inc/pro/class-marketpress-autoupdate.php:387
5386
+ msgid "Help! I need to retrieve my key."
5387
+ msgstr ""
5388
+
5389
+ #: ../inc/pro/class-marketpress-autoupdate.php:393
5390
+ msgid ""
5391
+ "<strong>Whoops!</strong> The license key you have entered appears not to be "
5392
+ "valid. Automatic updates for this plugin have been disabled until you enter "
5393
+ "a valid key."
5394
+ msgstr ""
5395
+
5396
+ #: ../inc/pro/class-marketpress-autoupdate.php:398
5397
+ #, php-format
5398
+ msgid ""
5399
+ "<strong>All is fine.</strong> You are using a valid license key from %s for "
5400
+ "this plugin. If you need to enter a new key, just override the current one "
5401
+ "and save. Or just <a href=\\\"%s\\\">delete it</a> to make it disappear."
5402
+ msgstr ""
5403
+
5404
+ #: ../inc/pro/class-marketpress-autoupdate.php:408
5405
+ msgid "Your license status"
5406
+ msgstr ""
5407
+
5408
+ #: ../inc/pro/class-marketpress-autoupdate.php:414
5409
+ msgid "License Key"
5410
+ msgstr ""
5411
+
5412
+ #: ../inc/pro/class-marketpress-autoupdate.php:416
5413
+ msgid "Activate"
5414
+ msgstr ""
5415
+
5416
+ #: ../inc/pro/class-marketpress-autoupdate.php:594
5417
+ msgid "License key has been deleted."
5418
+ msgstr ""
5419
+
5420
+ #: ../inc/pro/class-marketpress-autoupdate.php:600
5421
+ msgid "License activated successfully."
5422
+ msgstr ""
5423
+
5424
+ #: ../inc/pro/class-marketpress-autoupdate.php:606 ../inc/pro/class-marketpress-
5425
+ #: autoupdate.php:613 ../inc/pro/class-marketpress-autoupdate.php:622 ..
5426
+ #: /inc/pro/class-marketpress-autoupdate.php:631
5427
+ msgid "License cannot be activated."
5428
+ msgstr ""
5429
+
5430
+ #: ../inc/pro/class-marketpress-autoupdate.php:607
5431
+ msgid "The license key you have entered is not correct."
5432
+ msgstr ""
5433
+
5434
+ #: ../inc/pro/class-marketpress-autoupdate.php:614
5435
+ #, php-format
5436
+ msgid ""
5437
+ "You have reached the limit of URLs included in your license. Please update "
5438
+ "your license at %s."
5439
+ msgstr ""
5440
+
5441
+ #: ../inc/pro/class-marketpress-autoupdate.php:623
5442
+ #, php-format
5443
+ msgid ""
5444
+ "Something went wrong. Please try again later or contact the support staff at "
5445
+ "%s."
5446
+ msgstr ""
5447
+
5448
+ #: ../inc/pro/class-marketpress-autoupdate.php:632
5449
+ #, php-format
5450
+ msgid ""
5451
+ "Your license does not appear to be valid for this plugin. Please update your "
5452
+ "license at %s."
5453
+ msgstr ""
5454
+
5455
+ #: ../inc/pro/class-wizard-job.php:15
5456
+ msgid "Create a job"
5457
+ msgstr ""
5458
+
5459
+ #: ../inc/pro/class-wizard-job.php:16
5460
+ msgid "Choose a job"
5461
+ msgstr ""
5462
+
5463
+ #: ../inc/pro/class-wizard-job.php:41
5464
+ msgid "Job Types"
5465
+ msgstr ""
5466
+
5467
+ #: ../inc/pro/class-wizard-job.php:41
5468
+ msgid "Select a task for your job."
5469
+ msgstr ""
5470
+
5471
+ #: ../inc/pro/class-wizard-job.php:55
5472
+ msgid "Archive Settings"
5473
+ msgstr ""
5474
+
5475
+ #: ../inc/pro/class-wizard-job.php:55
5476
+ msgid "Settings for the Backup Archive"
5477
+ msgstr ""
5478
+
5479
+ #: ../inc/pro/class-wizard-job.php:57
5480
+ msgid "Where would you like to store the backup file?"
5481
+ msgstr ""
5482
+
5483
+ #: ../inc/pro/class-wizard-job.php:67 ../inc/pro/class-wizard-job.php:292
5484
+ msgid "Scheduling"
5485
+ msgstr ""
5486
+
5487
+ #: ../inc/pro/class-wizard-job.php:67
5488
+ msgid "When would you like to start the job?"
5489
+ msgstr ""
5490
+
5491
+ #: ../inc/pro/class-wizard-job.php:236
5492
+ msgid "Select one or more tasks for your backup job."
5493
+ msgstr ""
5494
+
5495
+ #: ../inc/pro/class-wizard-job.php:293
5496
+ msgid "Activate scheduling"
5497
+ msgstr ""
5498
+
5499
+ #: ../inc/pro/class-wizard-job.php:387
5500
+ msgid "Sync file by file to destination"
5501
+ msgstr ""
5502
+
5503
+ #: ../inc/pro/class-wizard-job.php:398
5504
+ msgid "Select a compression type for the backup archive"
5505
+ msgstr ""
5506
+
5507
+ #: ../inc/pro/class-wizard-job.php:401
5508
+ msgid "Archive compression type"
5509
+ msgstr ""
5510
+
5511
+ #: ../inc/pro/class-wizard-job.php:404
5512
+ msgid ""
5513
+ "PHP Zip functions will be used if available (memory lees). Else PCLZip Class "
5514
+ "will used."
5515
+ msgstr ""
5516
+
5517
+ #: ../inc/pro/class-wizard-job.php:406 ../inc/pro/class-wizard-job.php:411 ..
5518
+ #: /inc/pro/class-wizard-job.php:415
5519
+ msgid "Disabled because missing PHP function."
5520
+ msgstr ""
5521
+
5522
+ #: ../inc/pro/class-wizard-job.php:407
5523
+ msgid "Tar (fast and memory less) uncompressed"
5524
+ msgstr ""
5525
+
5526
+ #: ../inc/pro/class-wizard-job.php:409
5527
+ msgid "A tared and GZipped archive (fast and memory less)"
5528
+ msgstr ""
5529
+
5530
+ #: ../inc/pro/class-wizard-job.php:413
5531
+ msgid "A tared and BZipped archive (fast and memory less)"
5532
+ msgstr ""
5533
+
5534
+ #: ../inc/pro/class-wizard-job.php:435
5535
+ msgid "Where to store the files"
5536
+ msgstr ""
5537
+
5538
+ #: ../inc/pro/class-wizard-job.php:619
5539
+ #, php-format
5540
+ msgid "Wizard: %1$s"
5541
+ msgstr ""
5542
+
5543
+ #: ../inc/pro/class-wizard-job.php:638
5544
+ #, php-format
5545
+ msgid "New job %s generated."
5546
+ msgstr ""
5547
+
5548
+ #: ../inc/pro/class-wizard-job.php:650
5549
+ msgid "Create Job"
5550
+ msgstr ""
5551
+
5552
+ #: ../inc/pro/class-wizard-job.php:675 ../inc/pro/class-wizard-job.php:676
5553
+ msgid "Database Backup and XML Export (Daily)"
5554
+ msgstr ""
5555
+
5556
+ #: ../inc/pro/class-wizard-job.php:693 ../inc/pro/class-wizard-job.php:694
5557
+ msgid "Database Check (Weekly)"
5558
+ msgstr ""
5559
+
5560
+ #: ../inc/pro/class-wizard-job.php:718 ../inc/pro/class-wizard-job.php:719
5561
+ msgid "Backup all files"
5562
+ msgstr ""
5563
+
5564
+ #: ../inc/pro/class-wizard-job.php:733
5565
+ msgid "Essential files + list of plugins"
5566
+ msgstr ""
5567
+
5568
+ #: ../inc/pro/class-wizard-job.php:734
5569
+ msgid "Backup essential files and folders, plus a list of installed plugins."
5570
+ msgstr ""
5571
+
5572
+ #: ../inc/pro/class-wizard-job.php:749 ../inc/pro/class-wizard-job.php:750
5573
+ msgid "Custom configuration"
5574
+ msgstr ""
5575
+
5576
+ #: ../inc/pro/class-pro.php:130
5577
+ msgid "GDrive"
5578
+ msgstr ""
5579
+
5580
+ #: ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.
5581
+ #: php:219
5582
+ msgid "Wizards"
5583
+ msgstr ""
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  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.2
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -34,7 +34,7 @@ The **backup plugin** **[BackWPup Free](http://marketpress.com/product/backwpup-
34
  * Pro version and support available - [BackWPup Pro](http://marketpress.com/product/backwpup-pro/)
35
 
36
  = Requirements =
37
- * WordPress 3.4 and PHP 5.2.7 required!
38
  * To use the Plugin with full functionality PHP 5.3.3 with mysqli, FTP,gz, bz2, ZipArchive and curl is needed.
39
  * Plugin functions that don't work because of your server settings, will not be displayed in admin area.
40
 
@@ -170,6 +170,16 @@ Please check all settings after the update:
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
2
  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.1
6
+ Stable tag: 3.2.3
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
34
  * Pro version and support available - [BackWPup Pro](http://marketpress.com/product/backwpup-pro/)
35
 
36
  = Requirements =
37
+ * WordPress 3.8 and PHP 5.2.7 required!
38
  * To use the Plugin with full functionality PHP 5.3.3 with mysqli, FTP,gz, bz2, ZipArchive and curl is needed.
39
  * Plugin functions that don't work because of your server settings, will not be displayed in admin area.
40
 
170
 
171
 
172
  == Changelog ==
173
+ = Version 3.2.3 =
174
+ * Added: AWS Region Asien-Pazifik (Seoul)
175
+ * Improved: open basedir checking
176
+ * Changed: Minimum WordPress version is now 3.8
177
+ * Fixed: get_site_option() deprecated cache parameter in WordPress 4.4
178
+ * Fixed: displaying of inactive on scheduled jobs
179
+ * Fixed: saving of adding extra user role
180
+ * Removed: Handling of signal SIGPROF
181
+ * Removed: Extra role column on user list
182
+
183
  = Version 3.2.2 =
184
  * Fixed: Setting of S3 storage class STANDARD | STANDARD_IA | REDUCED_REDUNDANCY
185
  * Fixed: Potential security problems on log view and file download