BackUpWordPress - Version 3.0.3

Version Description

= 3.0.2 =

  • Important: we have dropped support for PHP 5.2, you will not be able to activate BackUpWordPress on a server running PHP versions older than PHP 5.3.29

= 3.0.1 =

  • This is a critical update. Fixes a bug in the core backup library. Please update immediately.
Download this release

Release Info

Developer pauldewouters
Plugin Icon 128x128 BackUpWordPress
Version 3.0.3
Comparing to
See all releases

Code changes from version 3.0.2 to 3.0.3

Files changed (68) hide show
  1. History.md +0 -255
  2. admin/actions.php +38 -15
  3. admin/backups-table.php +4 -4
  4. admin/backups.php +3 -3
  5. admin/constants.php +15 -15
  6. admin/enable-support.php +5 -5
  7. admin/faq.php +29 -29
  8. admin/menu.php +8 -8
  9. admin/page.php +1 -1
  10. admin/schedule-form-excludes.php +22 -22
  11. admin/schedule-form.php +24 -24
  12. admin/schedule-sentence.php +16 -16
  13. admin/schedule-settings.php +5 -5
  14. backdrop/server.php +2 -2
  15. backdrop/task.php +2 -2
  16. backupwordpress.php +11 -11
  17. classes/class-email.php +11 -11
  18. classes/class-schedule.php +20 -15
  19. classes/class-services.php +3 -3
  20. classes/class-webhooks.php +2 -2
  21. classes/wp-cli.php +7 -7
  22. functions/core.php +10 -10
  23. functions/interface.php +51 -46
  24. hm-backup/hm-backup.php +8 -8
  25. languages/{hmbkp-ca_ES.mo → backupwordpress-ca_ES.mo} +0 -0
  26. languages/{hmbkp-ca_ES.po → backupwordpress-ca_ES.po} +0 -0
  27. languages/{hmbkp-cs_CZ.mo → backupwordpress-cs_CZ.mo} +0 -0
  28. languages/{hmbkp-cs_CZ.po → backupwordpress-cs_CZ.po} +0 -0
  29. languages/{hmbkp-da_DK.mo → backupwordpress-da_DK.mo} +0 -0
  30. languages/{hmbkp-da_DK.po → backupwordpress-da_DK.po} +0 -0
  31. languages/{hmbkp-de_DE.mo → backupwordpress-de_DE.mo} +0 -0
  32. languages/{hmbkp-de_DE.po → backupwordpress-de_DE.po} +0 -0
  33. languages/{hmbkp-el_GR.mo → backupwordpress-el_GR.mo} +0 -0
  34. languages/{hmbkp-el_GR.po → backupwordpress-el_GR.po} +0 -0
  35. languages/{hmbkp-es_ES.mo → backupwordpress-es_ES.mo} +0 -0
  36. languages/{hmbkp-es_ES.po → backupwordpress-es_ES.po} +0 -0
  37. languages/{hmbkp-eu.mo → backupwordpress-eu.mo} +0 -0
  38. languages/{hmbkp-eu.po → backupwordpress-eu.po} +0 -0
  39. languages/backupwordpress-fr_FR.mo +0 -0
  40. languages/backupwordpress-fr_FR.po +1296 -0
  41. languages/{hmbkp-he_IL.mo → backupwordpress-he_IL.mo} +0 -0
  42. languages/{hmbkp-he_IL.po → backupwordpress-he_IL.po} +0 -0
  43. languages/{hmbkp-it_IT.mo → backupwordpress-it_IT.mo} +0 -0
  44. languages/{hmbkp-it_IT.po → backupwordpress-it_IT.po} +0 -0
  45. languages/{hmbkp-lt_LT.mo → backupwordpress-lt_LT.mo} +0 -0
  46. languages/{hmbkp-lt_LT.po → backupwordpress-lt_LT.po} +0 -0
  47. languages/{hmbkp-lv_LV.mo → backupwordpress-lv_LV.mo} +0 -0
  48. languages/{hmbkp-lv_LV.po → backupwordpress-lv_LV.po} +0 -0
  49. languages/{hmbkp-nl_NL.mo → backupwordpress-nl_NL.mo} +0 -0
  50. languages/{hmbkp-nl_NL.po → backupwordpress-nl_NL.po} +0 -0
  51. languages/{hmbkp-pl_PL.mo → backupwordpress-pl_PL.mo} +0 -0
  52. languages/{hmbkp-pl_PL.po → backupwordpress-pl_PL.po} +0 -0
  53. languages/{hmbkp-pt_BR.mo → backupwordpress-pt_BR.mo} +0 -0
  54. languages/{hmbkp-pt_BR.po → backupwordpress-pt_BR.po} +0 -0
  55. languages/{hmbkp-ro_RO.mo → backupwordpress-ro_RO.mo} +0 -0
  56. languages/{hmbkp-ro_RO.po → backupwordpress-ro_RO.po} +0 -0
  57. languages/{hmbkp-ru_RU.mo → backupwordpress-ru_RU.mo} +0 -0
  58. languages/{hmbkp-ru_RU.po → backupwordpress-ru_RU.po} +0 -0
  59. languages/{hmbkp-sk_SK.mo → backupwordpress-sk_SK.mo} +0 -0
  60. languages/{hmbkp-sk_SK.po → backupwordpress-sk_SK.po} +0 -0
  61. languages/{hmbkp-sr_RS.mo → backupwordpress-sr_RS.mo} +0 -0
  62. languages/{hmbkp-sr_RS.po → backupwordpress-sr_RS.po} +0 -0
  63. languages/{hmbkp-zh-cn.mo → backupwordpress-zh-cn.mo} +0 -0
  64. languages/{hmbkp-zh-cn.po → backupwordpress-zh-cn.po} +0 -0
  65. languages/{hmbkp.pot → backupwordpress.pot} +134 -165
  66. languages/hmbkp-fr_FR.mo +0 -0
  67. languages/hmbkp-fr_FR.po +0 -709
  68. readme.txt +29 -1
History.md DELETED
@@ -1,255 +0,0 @@
1
-
2
- n.n.n / 2014-12-02
3
- ==================
4
-
5
- * Bump version
6
- * Merge pull request #600 from humanmade/issue-600
7
- * Merge pull request #347 from humanmade/issue-347
8
- * Add parenthesis to require_once
9
- * Remove disk space info
10
- * Merge branch 'master' into issue-347
11
- * Merge pull request #614 from humanmade/remove-custom-webhook
12
- * Merge branch 'master' into remove-custom-webhook
13
- * Merge branch 'master' into issue-600
14
- * Merge pull request #611 from humanmade/fix_unit_tests
15
- * Attempt to fix build
16
- * Merge branch 'master' into fix_unit_tests
17
- * define WP_TESTS_DIR
18
- * Make sure current_action fnction is loaded
19
- * Remove extra slashes and semicolons
20
- * Remove the custom webhook service
21
- * Better default WP_TESTS_DIR
22
- * move trailingslash calls out of the loop for performance
23
- * Minor code cleanup
24
- * Merge pull request #599 from humanmade/issue-599
25
- * Correct path for hm-backup so it's tests are run
26
- * add composer.lock
27
- * Use scrutinizer code coverage
28
- * Merge pull request #609 from waffle-iron/master
29
- * add waffle.io badge
30
- * Use up to date commands for coverage
31
- * Add code rating
32
- * Don't test 5.2
33
- * Update readme.md
34
- * excluded_dirs is deprecated
35
- * Update scrutinizer config
36
- * Add composer config and dev dependencies
37
- * Make PHPUnit generate an XML for coveralls
38
- * Add scrutinizer config
39
- * Ignore vendor dir
40
- * Add a link to Help page
41
- * Move to activation hook
42
- * Bump up required WP version
43
- * Escape all the things
44
- * Save errors to a notices option
45
- * Reload page on errors
46
- * Remove script
47
- * Remove unneeded class
48
- * Merge branch 'nice-errors' into issue-600
49
- * Check PHP version on plugins loaded
50
- * Check PHP version on activate
51
- * Merge branch 'master' into issue-599
52
- * Merge pull request #522 from humanmade/issue-522
53
- * Merge branch 'master' into nice-errors
54
- * Update readme
55
- * Set required version to 5.3.2
56
- * Update tests
57
- * Merge branch 'master' into issue-522
58
- * Merge pull request #567 from humanmade/issue-567
59
- * Merge branch 'master' into issue-522
60
- * Merge pull request #559 from humanmade/issue-559
61
- * Merge branch 'master' into issue-522
62
- * Merge branch 'master' into nice-errors
63
- * Allow for a 30 second delta in asserting schedule time
64
- * Merge pull request #603 from joshk/patch-1
65
- * Use the new build env on Travis
66
- * Restrict plugin to be network only
67
- * Fix admin URL logic
68
- * Merge pull request #571 from humanmade/codesniffs
69
- * Formatting
70
- * Merge branch 'master' into codesniffs
71
- * Merge branch 'master' into nice-errors
72
- * Update readme changelog
73
- * Bump version
74
- * Ignoe history log
75
- * Merge branch 'master' into nice-errors
76
- * remove uneeded images
77
- * latest hm-backup
78
- * latest hm-backup
79
- * Latest hm backup
80
- * Added known errors and nice messages
81
- * Fix the support button splitting on 2 lines when too many tabs
82
- * Spaces
83
- * Merge branch 'master' into nice-errors
84
- * Typos in v 3.0 changelog
85
- * Specify POT filename in grunt task
86
- * Update POT file
87
- * Markdown readme
88
- * Regenerate readme
89
- * Add plugin headers
90
- * Fix semicolon
91
- * Merge branch 'master' of github.com:humanmade/backupwordpress
92
- * Refactor the recursive filesize scanner
93
- * correct text domain
94
- * Merge pull request #556 from humanmade/issue-556
95
- * Merge pull request #580 from humanmade/issue-580
96
- * Merge pull request #584 from humanmade/update-backdrop
97
- * See if this fixes tests
98
- * Remove unneede statements
99
- * Use correct action hook
100
- * Fix display notices
101
- * Set notices
102
- * Formatting
103
- * Merge branch 'master' into nice-errors
104
- * reload the excludes filelist in the correct place when someone excludes a file
105
- * Latest backdrop
106
- * Regenerate minified CSS
107
- * Regenerate minified JS
108
- * Fix cancel backup action
109
- * WordPress Coding Standards
110
- * Exit early if incompatible version of WordPress
111
- * Update translations
112
- * Update changelog
113
- * Merge pull request #573 from humanmade/design
114
- * Load minified CSS
115
- * Formatting
116
- * Biweekly wording
117
- * More Yoda conditions
118
- * Spaces
119
- * Comma after last array element
120
- * Yoda conditions
121
- * Add missing period
122
- * use nonce_url instead of manually adding the nonce query param
123
- * close the settings form when done
124
- * Design changes as per ticket
125
- * Start tracking langauge in server info
126
- * Right align the primary button in the enable support modal
127
- * Re-factor the directory filesize code to use a single array instead of thoussands of transients
128
- * Remove the warning that would show if you were using anything other than the latest stable, it's no longer needed now that the FAQ is local
129
- * switch to using a single transient to store directory filesize data
130
- * Merge pull request #552 from humanmade/issue-552
131
- * Merge pull request #562 from humanmade/enhancement/issue-562
132
- * Add an anchor link
133
- * Add error message
134
- * Rename function
135
- * Prefix GET params
136
- * Update exclude rule action
137
- * Adds function for building admin action urls
138
- * fix vertical scroll
139
- * Adds some functions to manage settings form submission errors
140
- * Rename nonce and action
141
- * fetch errors to display
142
- * Form submission handling for BWP and add-ons settings
143
- * Use a new function that persists form submission errors to a transient
144
- * None check
145
- * Pass the nonce around in the ajax request
146
- * Enable support action links
147
- * Check nonces
148
- * Modify action URLs to use the admin_post hook
149
- * Remove unneeded code
150
- * New line at end
151
- * Use admin_post hook
152
- * Merge pull request #502 from humanmade/stream-integration
153
- * Merge pull request #554 from humanmade/fix-display-schedule-time
154
- * Display schedule start time in local timezone
155
- * Update tests shell script
156
- * Update tests config
157
- * Make it clear we want one week
158
- * Display our notices - still WIP
159
- * Add a class to track common errors and their nice message
160
- * Add a notices class.
161
- * Reload the page to display notices
162
- * Set our notices option in the database with the backup errors.
163
- * Handle the dismiss action for backup errors
164
- * Include the notices and errors classes
165
- * Add a singleton to handle known errors thrown by backups
166
- * Add remaining disk space
167
- * Merge branch 'fix-transients' into nice-errors
168
- * Merge branch 're-design' into nice-errors
169
- * Merge branch 'master' into nice-errors
170
- * Set BWP WPR web hook url to live url
171
- * BWP webhooks - 2nd iteration
172
- * Add an action hook that gives access to consumers to the backup progress
173
- * add fake endpoint
174
- * Configure WP Remote webhook on instantiation
175
- * Inject the schedule to the constructor
176
- * JSON encode body
177
- * Sanitize URL
178
- * Encrypt the header with WPR key
179
- * Fix property name
180
- * Fix property name
181
- * Return errors
182
- * Add the remote post action
183
- * Start on the remote post
184
- * Display and validate settings
185
- * Include webhook class
186
- * Begin a webhook class
187
- * Beginnings of a HMBKP_Error class
188
-
189
- n.n.n / 2014-11-20
190
- ==================
191
-
192
- * remove uneeded images
193
- * latest hm-backup
194
- * latest hm-backup
195
- * Typos in v 3.0 changelog
196
- * Specify POT filename in grunt task
197
- * Update POT file
198
- * Markdown readme
199
- * Regenerate readme
200
- * Add plugin headers
201
- * Merge branch 'master' of github.com:humanmade/backupwordpress
202
- * Refactor the recursive filesize scanner
203
- * correct text domain
204
- * Merge pull request #556 from humanmade/issue-556
205
- * Merge pull request #580 from humanmade/issue-580
206
- * Merge pull request #584 from humanmade/update-backdrop
207
- * Remove unneede statements
208
- * reload the excludes filelist in the correct place when someone excludes a file
209
- * Latest backdrop
210
- * Regenerate minified CSS
211
- * Regenerate minified JS
212
- * Fix cancel backup action
213
- * WordPress Coding Standards
214
- * Exit early if incompatible version of WordPress
215
- * Update translations
216
- * Update changelog
217
- * Merge pull request #573 from humanmade/design
218
- * Load minified CSS
219
- * Formatting
220
- * Biweekly wording
221
- * Add missing period
222
- * use nonce_url instead of manually adding the nonce query param
223
- * close the settings form when done
224
- * Design changes as per ticket
225
- * Start tracking langauge in server info
226
- * Right align the primary button in the enable support modal
227
- * Re-factor the directory filesize code to use a single array instead of thoussands of transients
228
- * Remove the warning that would show if you were using anything other than the latest stable, it's no longer needed now that the FAQ is local
229
- * switch to using a single transient to store directory filesize data
230
- * Merge pull request #552 from humanmade/issue-552
231
- * Merge pull request #562 from humanmade/enhancement/issue-562
232
- * Add an anchor link
233
- * Add error message
234
- * Rename function
235
- * Prefix GET params
236
- * Update exclude rule action
237
- * Adds function for building admin action urls
238
- * fix vertical scroll
239
- * Adds some functions to manage settings form submission errors
240
- * Rename nonce and action
241
- * fetch errors to display
242
- * Form submission handling for BWP and add-ons settings
243
- * Use a new function that persists form submission errors to a transient
244
- * None check
245
- * Pass the nonce around in the ajax request
246
- * Enable support action links
247
- * Check nonces
248
- * Modify action URLs to use the admin_post hook
249
- * Remove unneeded code
250
- * New line at end
251
- * Use admin_post hook
252
- * Merge pull request #502 from humanmade/stream-integration
253
- * Merge pull request #554 from humanmade/fix-display-schedule-time
254
- * Display schedule start time in local timezone
255
- * Add an action hook that gives access to consumers to the backup progress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/actions.php CHANGED
@@ -214,7 +214,7 @@ function hmbkp_edit_schedule_services_submit() {
214
  check_admin_referer( 'hmbkp-edit-schedule-services', 'hmbkp-edit-schedule-services-nonce' );
215
 
216
  if ( empty( $_POST['hmbkp_schedule_id'] ) ) {
217
- wp_die( __( 'The schedule ID was not provided. Aborting.', 'hmbkp' ) );
218
  }
219
 
220
  $schedule = new HMBKP_Scheduled_Backup( sanitize_text_field( $_POST['hmbkp_schedule_id'] ) );
@@ -270,11 +270,11 @@ function hmbkp_edit_schedule_submit() {
270
  $schedule_type = sanitize_text_field( $_POST['hmbkp_schedule_type'] );
271
 
272
  if ( ! trim( $schedule_type ) ) {
273
- $errors['hmbkp_schedule_type'] = __( 'Backup type cannot be empty', 'hmbkp' );
274
  }
275
 
276
  elseif ( ! in_array( $schedule_type, array( 'complete', 'file', 'database' ) ) ) {
277
- $errors['hmbkp_schedule_type'] = __( 'Invalid backup type', 'hmbkp' );
278
  }
279
 
280
  else {
@@ -288,11 +288,11 @@ function hmbkp_edit_schedule_submit() {
288
  $schedule_recurrence_type = sanitize_text_field( $_POST['hmbkp_schedule_recurrence']['hmbkp_type'] );
289
 
290
  if ( empty( $schedule_recurrence_type ) ) {
291
- $errors['hmbkp_schedule_recurrence']['hmbkp_type'] = __( 'Schedule cannot be empty', 'hmbkp' );
292
  }
293
 
294
  elseif ( ! in_array( $schedule_recurrence_type, array_keys( hmbkp_get_cron_schedules() ) ) && 'manually' !== $schedule_recurrence_type ) {
295
- $errors['hmbkp_schedule_recurrence']['hmbkp_type'] = __( 'Invalid schedule', 'hmbkp' );
296
  }
297
 
298
  else {
@@ -306,7 +306,7 @@ function hmbkp_edit_schedule_submit() {
306
  $day_of_week = sanitize_text_field( $_POST['hmbkp_schedule_recurrence']['hmbkp_schedule_start_day_of_week'] );
307
 
308
  if ( ! in_array( $day_of_week, array( 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday' ) ) ) {
309
- $errors['hmbkp_schedule_start_day_of_week'] = __( 'Day of the week must be a valid lowercase day name', 'hmbkp' );
310
  }
311
 
312
  else {
@@ -325,7 +325,7 @@ function hmbkp_edit_schedule_submit() {
325
  );
326
 
327
  if ( false === filter_var( $day_of_month, FILTER_VALIDATE_INT, array( 'options' => $options ) ) ) {
328
- $errors['hmbkp_schedule_start_day_of_month'] = __( 'Day of month must be between 1 and 31', 'hmbkp' );
329
  }
330
 
331
  else {
@@ -344,7 +344,7 @@ function hmbkp_edit_schedule_submit() {
344
  );
345
 
346
  if ( false === filter_var( $hours, FILTER_VALIDATE_INT, array( 'options' => $options ) ) ) {
347
- $errors['hmbkp_schedule_start_hours'] = __( 'Hours must be between 0 and 23', 'hmbkp' );
348
  }
349
 
350
  else {
@@ -363,7 +363,7 @@ function hmbkp_edit_schedule_submit() {
363
  );
364
 
365
  if ( false === filter_var( $minutes, FILTER_VALIDATE_INT, array( 'options' => $options ) ) ) {
366
- $errors['hmbkp_schedule_start_minutes'] = __( 'Minutes must be between 0 and 59', 'hmbkp' );
367
  }
368
 
369
  else {
@@ -377,15 +377,15 @@ function hmbkp_edit_schedule_submit() {
377
  $max_backups = sanitize_text_field( $_POST['hmbkp_schedule_max_backups'] );
378
 
379
  if ( empty( $max_backups ) ) {
380
- $errors['hmbkp_schedule_max_backups'] = __( 'Max backups can\'t be empty', 'hmbkp' );
381
  }
382
 
383
  elseif ( ! is_numeric( $max_backups ) ) {
384
- $errors['hmbkp_schedule_max_backups'] = __( 'Max backups must be a number', 'hmbkp' );
385
  }
386
 
387
  elseif ( ! ( $max_backups >= 1 ) ) {
388
- $errors['hmbkp_schedule_max_backups'] = __( 'Max backups must be greater than 0', 'hmbkp' );
389
  }
390
 
391
  else {
@@ -535,6 +535,29 @@ function hmbkp_recalculate_directory_filesize() {
535
  }
536
  add_action( 'load-' . HMBKP_ADMIN_PAGE, 'hmbkp_recalculate_directory_filesize' );
537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  /**
539
  * Receive the heartbeat and return backup status
540
  */
@@ -554,7 +577,7 @@ function hmbkp_heartbeat_received( $response, $data ) {
554
 
555
  }
556
 
557
- return $response;
558
 
559
  }
560
  add_filter( 'heartbeat_received', 'hmbkp_heartbeat_received', 10, 2 );
@@ -678,13 +701,13 @@ function hmbkp_ajax_cron_test() {
678
 
679
  if ( is_wp_error( $response ) ) {
680
 
681
- echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'hmbkp' ), '<code>wp-cron.php</code>', '<code>' . $response->get_error_message() . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
682
 
683
  update_option( 'hmbkp_wp_cron_test_failed', true );
684
 
685
  } elseif ( wp_remote_retrieve_response_code( $response ) !== 200 ) {
686
 
687
- echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'hmbkp' ), '<code>wp-cron.php</code>', '<code>' . esc_html( wp_remote_retrieve_response_code( $response ) ) . ' ' . esc_html( get_status_header_desc( wp_remote_retrieve_response_code( $response ) ) ) . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
688
 
689
  update_option( 'hmbkp_wp_cron_test_failed', true );
690
 
214
  check_admin_referer( 'hmbkp-edit-schedule-services', 'hmbkp-edit-schedule-services-nonce' );
215
 
216
  if ( empty( $_POST['hmbkp_schedule_id'] ) ) {
217
+ wp_die( __( 'The schedule ID was not provided. Aborting.', 'backupwordpress' ) );
218
  }
219
 
220
  $schedule = new HMBKP_Scheduled_Backup( sanitize_text_field( $_POST['hmbkp_schedule_id'] ) );
270
  $schedule_type = sanitize_text_field( $_POST['hmbkp_schedule_type'] );
271
 
272
  if ( ! trim( $schedule_type ) ) {
273
+ $errors['hmbkp_schedule_type'] = __( 'Backup type cannot be empty', 'backupwordpress' );
274
  }
275
 
276
  elseif ( ! in_array( $schedule_type, array( 'complete', 'file', 'database' ) ) ) {
277
+ $errors['hmbkp_schedule_type'] = __( 'Invalid backup type', 'backupwordpress' );
278
  }
279
 
280
  else {
288
  $schedule_recurrence_type = sanitize_text_field( $_POST['hmbkp_schedule_recurrence']['hmbkp_type'] );
289
 
290
  if ( empty( $schedule_recurrence_type ) ) {
291
+ $errors['hmbkp_schedule_recurrence']['hmbkp_type'] = __( 'Schedule cannot be empty', 'backupwordpress' );
292
  }
293
 
294
  elseif ( ! in_array( $schedule_recurrence_type, array_keys( hmbkp_get_cron_schedules() ) ) && 'manually' !== $schedule_recurrence_type ) {
295
+ $errors['hmbkp_schedule_recurrence']['hmbkp_type'] = __( 'Invalid schedule', 'backupwordpress' );
296
  }
297
 
298
  else {
306
  $day_of_week = sanitize_text_field( $_POST['hmbkp_schedule_recurrence']['hmbkp_schedule_start_day_of_week'] );
307
 
308
  if ( ! in_array( $day_of_week, array( 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday' ) ) ) {
309
+ $errors['hmbkp_schedule_start_day_of_week'] = __( 'Day of the week must be a valid lowercase day name', 'backupwordpress' );
310
  }
311
 
312
  else {
325
  );
326
 
327
  if ( false === filter_var( $day_of_month, FILTER_VALIDATE_INT, array( 'options' => $options ) ) ) {
328
+ $errors['hmbkp_schedule_start_day_of_month'] = __( 'Day of month must be between 1 and 31', 'backupwordpress' );
329
  }
330
 
331
  else {
344
  );
345
 
346
  if ( false === filter_var( $hours, FILTER_VALIDATE_INT, array( 'options' => $options ) ) ) {
347
+ $errors['hmbkp_schedule_start_hours'] = __( 'Hours must be between 0 and 23', 'backupwordpress' );
348
  }
349
 
350
  else {
363
  );
364
 
365
  if ( false === filter_var( $minutes, FILTER_VALIDATE_INT, array( 'options' => $options ) ) ) {
366
+ $errors['hmbkp_schedule_start_minutes'] = __( 'Minutes must be between 0 and 59', 'backupwordpress' );
367
  }
368
 
369
  else {
377
  $max_backups = sanitize_text_field( $_POST['hmbkp_schedule_max_backups'] );
378
 
379
  if ( empty( $max_backups ) ) {
380
+ $errors['hmbkp_schedule_max_backups'] = __( 'Max backups can\'t be empty', 'backupwordpress' );
381
  }
382
 
383
  elseif ( ! is_numeric( $max_backups ) ) {
384
+ $errors['hmbkp_schedule_max_backups'] = __( 'Max backups must be a number', 'backupwordpress' );
385
  }
386
 
387
  elseif ( ! ( $max_backups >= 1 ) ) {
388
+ $errors['hmbkp_schedule_max_backups'] = __( 'Max backups must be greater than 0', 'backupwordpress' );
389
  }
390
 
391
  else {
535
  }
536
  add_action( 'load-' . HMBKP_ADMIN_PAGE, 'hmbkp_recalculate_directory_filesize' );
537
 
538
+ function hmbkp_calculate_site_size() {
539
+
540
+ if ( isset( $_GET['hmbkp_schedule_id'] ) ) {
541
+ $current_schedule = new HMBKP_Scheduled_Backup( sanitize_text_field( $_GET['hmbkp_schedule_id'] ) );
542
+ } else {
543
+ // Refresh the schedules from the database to make sure we have the latest changes
544
+ HMBKP_Schedules::get_instance()->refresh_schedules();
545
+
546
+ $schedules = HMBKP_Schedules::get_instance()->get_schedules();
547
+
548
+ if ( ! empty( $_GET['hmbkp_schedule_id'] ) ) {
549
+ $current_schedule = new HMBKP_Scheduled_Backup( sanitize_text_field( $_GET['hmbkp_schedule_id'] ) );
550
+ } else {
551
+ $current_schedule = reset( $schedules );
552
+ }
553
+ }
554
+
555
+ // Start calculating
556
+ $root = new SplFileInfo( $current_schedule->get_root() );
557
+ $size = $current_schedule->filesize( $root );
558
+ }
559
+ add_action( 'load-' . HMBKP_ADMIN_PAGE, 'hmbkp_calculate_site_size' );
560
+
561
  /**
562
  * Receive the heartbeat and return backup status
563
  */
577
 
578
  }
579
 
580
+ return $response;
581
 
582
  }
583
  add_filter( 'heartbeat_received', 'hmbkp_heartbeat_received', 10, 2 );
701
 
702
  if ( is_wp_error( $response ) ) {
703
 
704
+ echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'backupwordpress' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'backupwordpress' ), '<code>wp-cron.php</code>', '<code>' . $response->get_error_message() . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
705
 
706
  update_option( 'hmbkp_wp_cron_test_failed', true );
707
 
708
  } elseif ( wp_remote_retrieve_response_code( $response ) !== 200 ) {
709
 
710
+ echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'backupwordpress' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'backupwordpress' ), '<code>wp-cron.php</code>', '<code>' . esc_html( wp_remote_retrieve_response_code( $response ) ) . ' ' . esc_html( get_status_header_desc( wp_remote_retrieve_response_code( $response ) ) ) . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
711
 
712
  update_option( 'hmbkp_wp_cron_test_failed', true );
713
 
admin/backups-table.php CHANGED
@@ -5,9 +5,9 @@
5
  <tr>
6
 
7
  <th scope="col"><?php hmbkp_backups_number( $schedule ); ?></th>
8
- <th scope="col"><?php _e( 'Size', 'hmbkp' ); ?></th>
9
- <th scope="col"><?php _e( 'Type', 'hmbkp' ); ?></th>
10
- <th scope="col"><?php _e( 'Actions', 'hmbkp' ); ?></th>
11
 
12
  </tr>
13
 
@@ -32,7 +32,7 @@
32
  } else { ?>
33
 
34
  <tr>
35
- <td class="hmbkp-no-backups" colspan="4"><?php _e( 'This is where your backups will appear once you have some.', 'hmbkp' ); ?></td>
36
  </tr>
37
 
38
  <?php } ?>
5
  <tr>
6
 
7
  <th scope="col"><?php hmbkp_backups_number( $schedule ); ?></th>
8
+ <th scope="col"><?php _e( 'Size', 'backupwordpress' ); ?></th>
9
+ <th scope="col"><?php _e( 'Type', 'backupwordpress' ); ?></th>
10
+ <th scope="col"><?php _e( 'Actions', 'backupwordpress' ); ?></th>
11
 
12
  </tr>
13
 
32
  } else { ?>
33
 
34
  <tr>
35
+ <td class="hmbkp-no-backups" colspan="4"><?php _e( 'This is where your backups will appear once you have some.', 'backupwordpress' ); ?></td>
36
  </tr>
37
 
38
  <?php } ?>
admin/backups.php CHANGED
@@ -19,17 +19,17 @@ if ( ! empty( $_GET['hmbkp_schedule_id'] ) ) {
19
 
20
  <?php endforeach; ?>
21
 
22
- <a class="nav-tab<?php if ( ! HMBKP_Schedules::get_instance()->get_schedule( $current_schedule->get_id() ) ) { ?> nav-tab-active<?php } ?>" href="<?php echo esc_url( add_query_arg( array( 'hmbkp_add_schedule' => '1', 'action' => 'hmbkp_edit_schedule', 'hmbkp_schedule_id' => time(), 'hmbkp_panel' => 'hmbkp_edit_schedule_settings' ), HMBKP_ADMIN_URL ) ); ?>"> + <?php _e( 'add schedule', 'hmbkp' ); ?></a>
23
 
24
  <?php if ( get_option( 'hmbkp_enable_support' ) ) { ?>
25
 
26
- <a id="intercom" class="add-new-h2" href="mailto:support@hmn.md"><?php _e( 'Support', 'hmbkp' ); ?></a>
27
 
28
  <?php } else {
29
 
30
  add_thickbox(); ?>
31
 
32
- <a id="intercom-info" class="thickbox add-new-h2" href="<?php echo wp_nonce_url( add_query_arg( array( 'action' => 'load_enable_support', 'width' => '600', 'height' => '420' ), is_multisite() ? admin_url( 'admin-ajax.php' ) : network_admin_url( 'admin-ajax.php' ) ), 'hmbkp_nonce' ); ?>"><span class="dashicons dashicons-admin-users"></span>&nbsp;<?php _e( 'Enable Support', 'hmbkp' ); ?></a>
33
 
34
  <?php } ?>
35
 
19
 
20
  <?php endforeach; ?>
21
 
22
+ <a class="nav-tab<?php if ( ! HMBKP_Schedules::get_instance()->get_schedule( $current_schedule->get_id() ) ) { ?> nav-tab-active<?php } ?>" href="<?php echo esc_url( add_query_arg( array( 'hmbkp_add_schedule' => '1', 'action' => 'hmbkp_edit_schedule', 'hmbkp_schedule_id' => time(), 'hmbkp_panel' => 'hmbkp_edit_schedule_settings' ), HMBKP_ADMIN_URL ) ); ?>"> + <?php _e( 'add schedule', 'backupwordpress' ); ?></a>
23
 
24
  <?php if ( get_option( 'hmbkp_enable_support' ) ) { ?>
25
 
26
+ <a id="intercom" class="add-new-h2" href="mailto:support@hmn.md"><?php _e( 'Support', 'backupwordpress' ); ?></a>
27
 
28
  <?php } else {
29
 
30
  add_thickbox(); ?>
31
 
32
+ <a id="intercom-info" class="thickbox add-new-h2" href="<?php echo wp_nonce_url( add_query_arg( array( 'action' => 'load_enable_support', 'width' => '600', 'height' => '420' ), is_multisite() ? admin_url( 'admin-ajax.php' ) : network_admin_url( 'admin-ajax.php' ) ), 'hmbkp_nonce' ); ?>"><span class="dashicons dashicons-admin-users"></span>&nbsp;<?php _e( 'Enable Support', 'backupwordpress' ); ?></a>
33
 
34
  <?php } ?>
35
 
admin/constants.php CHANGED
@@ -1,6 +1,6 @@
1
  <div id="hmbkp-constants">
2
 
3
- <p><?php printf( __( 'You can %1$s any of the following %2$s in your %3$s to control advanced settings. %4$s. Defined %5$s will be highlighted.', 'hmbkp' ), '<code>define</code>', '<code>' . __( 'Constants', 'hmbkp' ) . '</code>', '<code>wp-config.php</code>', '<a href="http://codex.wordpress.org/Editing_wp-config.php">' . __( 'The Codex can help', 'hmbkp' ) . '</a>', '<code>' . __( 'Constants', 'hmbkp' ) . '</code>' ); ?></p>
4
 
5
  <table class="widefat">
6
 
@@ -11,10 +11,10 @@
11
  <td>
12
 
13
  <?php if ( defined( 'HMBKP_PATH' ) ) { ?>
14
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_PATH . '</code>' ); ?></p>
15
  <?php } ?>
16
 
17
- <p><?php printf( __( 'The path to folder you would like to store your backup files in, defaults to %s.', 'hmbkp' ), '<code>' . esc_html( hmbkp_path_default() ) . '</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_PATH', '/home/willmot/backups' );</code></p>
18
 
19
  </td>
20
 
@@ -27,10 +27,10 @@
27
  <td>
28
 
29
  <?php if ( defined( 'HMBKP_MYSQLDUMP_PATH' ) ) { ?>
30
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_MYSQLDUMP_PATH . '</code>' ); ?></p>
31
  <?php } ?>
32
 
33
- <p><?php printf( __( 'The path to your %1$s executable. Will be used for the %2$s part of the back up if available.', 'hmbkp' ), '<code>mysqldump</code>', '<code>' . __( 'database', 'hmbkp' ) . '</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_MYSQLDUMP_PATH', '/opt/local/bin/mysqldump' );</code></p>
34
 
35
  </td>
36
 
@@ -43,10 +43,10 @@
43
  <td>
44
 
45
  <?php if ( defined( 'HMBKP_ZIP_PATH' ) ) { ?>
46
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_ZIP_PATH . '</code>' ); ?></p>
47
  <?php } ?>
48
 
49
- <p><?php printf( __( 'The path to your %1$s executable. Will be used to zip up your %2$s and %3$s if available.', 'hmbkp' ), '<code>zip</code>', '<code>' . __( 'files', 'hmbkp' ) . '</code>', '<code>' . __( 'database', 'hmbkp' ) . '</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_ZIP_PATH', '/opt/local/bin/zip' );</code></p>
50
 
51
  </td>
52
 
@@ -59,10 +59,10 @@
59
  <td>
60
 
61
  <?php if ( defined( 'HMBKP_EXCLUDE' ) ) { ?>
62
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_EXCLUDE . '</code>' ); ?></p>
63
  <?php } ?>
64
 
65
- <p><?php _e( 'Comma separated list of files or directories to exclude, the backups directory is automatically excluded.', 'hmbkp' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_EXCLUDE', '/wp-content/uploads/, /stats/, .svn/, *.txt' );</code></p>
66
 
67
  </td>
68
 
@@ -75,10 +75,10 @@
75
  <td>
76
 
77
  <?php if ( defined( 'HMBKP_CAPABILITY' ) ) { ?>
78
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_CAPABILITY . '</code>' ); ?></p>
79
  <?php } ?>
80
 
81
- <p><?php printf( __( 'The capability to use when calling %1$s. Defaults to %2$s.', 'hmbkp' ), '<code>add_menu_page</code>', '<code>manage_options</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_CAPABILITY', 'edit_posts' );</code></p>
82
 
83
  </td>
84
 
@@ -91,10 +91,10 @@
91
  <td>
92
 
93
  <?php if ( defined( 'HMBKP_ROOT' ) ) { ?>
94
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_ROOT . '</code>' ); ?></p>
95
  <?php } ?>
96
 
97
- <p><?php printf( __( 'The root directory that is backed up. Defaults to %s.', 'hmbkp' ), '<code>' . HM_Backup::get_home_path() . '</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_ROOT', ABSPATH . 'wp/' );</code></p>
98
 
99
  </td>
100
 
@@ -107,10 +107,10 @@
107
  <td>
108
 
109
  <?php if ( defined( 'HMBKP_SCHEDULE_TIME' ) && HMBKP_SCHEDULE_TIME !== '11pm' ) { ?>
110
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_SCHEDULE_TIME . '</code>' ); ?></p>
111
  <?php } ?>
112
 
113
- <p><?php printf( __( 'The time that your schedules should run. Defaults to %s.', 'hmbkp' ), '<code>23:00</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_SCHEDULE_TIME', '07:30' );</code></p>
114
 
115
  </td>
116
 
1
  <div id="hmbkp-constants">
2
 
3
+ <p><?php printf( __( 'You can %1$s any of the following %2$s in your %3$s to control advanced settings. %4$s. Defined %5$s will be highlighted.', 'backupwordpress' ), '<code>define</code>', '<code>' . __( 'Constants', 'backupwordpress' ) . '</code>', '<code>wp-config.php</code>', '<a href="http://codex.wordpress.org/Editing_wp-config.php">' . __( 'The Codex can help', 'backupwordpress' ) . '</a>', '<code>' . __( 'Constants', 'backupwordpress' ) . '</code>' ); ?></p>
4
 
5
  <table class="widefat">
6
 
11
  <td>
12
 
13
  <?php if ( defined( 'HMBKP_PATH' ) ) { ?>
14
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_PATH . '</code>' ); ?></p>
15
  <?php } ?>
16
 
17
+ <p><?php printf( __( 'The path to folder you would like to store your backup files in, defaults to %s.', 'backupwordpress' ), '<code>' . esc_html( hmbkp_path_default() ) . '</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_PATH', '/home/willmot/backups' );</code></p>
18
 
19
  </td>
20
 
27
  <td>
28
 
29
  <?php if ( defined( 'HMBKP_MYSQLDUMP_PATH' ) ) { ?>
30
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_MYSQLDUMP_PATH . '</code>' ); ?></p>
31
  <?php } ?>
32
 
33
+ <p><?php printf( __( 'The path to your %1$s executable. Will be used for the %2$s part of the back up if available.', 'backupwordpress' ), '<code>mysqldump</code>', '<code>' . __( 'database', 'backupwordpress' ) . '</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_MYSQLDUMP_PATH', '/opt/local/bin/mysqldump' );</code></p>
34
 
35
  </td>
36
 
43
  <td>
44
 
45
  <?php if ( defined( 'HMBKP_ZIP_PATH' ) ) { ?>
46
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_ZIP_PATH . '</code>' ); ?></p>
47
  <?php } ?>
48
 
49
+ <p><?php printf( __( 'The path to your %1$s executable. Will be used to zip up your %2$s and %3$s if available.', 'backupwordpress' ), '<code>zip</code>', '<code>' . __( 'files', 'backupwordpress' ) . '</code>', '<code>' . __( 'database', 'backupwordpress' ) . '</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_ZIP_PATH', '/opt/local/bin/zip' );</code></p>
50
 
51
  </td>
52
 
59
  <td>
60
 
61
  <?php if ( defined( 'HMBKP_EXCLUDE' ) ) { ?>
62
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_EXCLUDE . '</code>' ); ?></p>
63
  <?php } ?>
64
 
65
+ <p><?php _e( 'Comma separated list of files or directories to exclude, the backups directory is automatically excluded.', 'backupwordpress' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_EXCLUDE', '/wp-content/uploads/, /stats/, .svn/, *.txt' );</code></p>
66
 
67
  </td>
68
 
75
  <td>
76
 
77
  <?php if ( defined( 'HMBKP_CAPABILITY' ) ) { ?>
78
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_CAPABILITY . '</code>' ); ?></p>
79
  <?php } ?>
80
 
81
+ <p><?php printf( __( 'The capability to use when calling %1$s. Defaults to %2$s.', 'backupwordpress' ), '<code>add_menu_page</code>', '<code>manage_options</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_CAPABILITY', 'edit_posts' );</code></p>
82
 
83
  </td>
84
 
91
  <td>
92
 
93
  <?php if ( defined( 'HMBKP_ROOT' ) ) { ?>
94
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_ROOT . '</code>' ); ?></p>
95
  <?php } ?>
96
 
97
+ <p><?php printf( __( 'The root directory that is backed up. Defaults to %s.', 'backupwordpress' ), '<code>' . HM_Backup::get_home_path() . '</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_ROOT', ABSPATH . 'wp/' );</code></p>
98
 
99
  </td>
100
 
107
  <td>
108
 
109
  <?php if ( defined( 'HMBKP_SCHEDULE_TIME' ) && HMBKP_SCHEDULE_TIME !== '11pm' ) { ?>
110
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_SCHEDULE_TIME . '</code>' ); ?></p>
111
  <?php } ?>
112
 
113
+ <p><?php printf( __( 'The time that your schedules should run. Defaults to %s.', 'backupwordpress' ), '<code>23:00</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_SCHEDULE_TIME', '07:30' );</code></p>
114
 
115
  </td>
116
 
admin/enable-support.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php require_once HMBKP_PLUGIN_PATH . 'classes/class-requirements.php'; ?>
2
 
3
- <h2><?php _e( 'Enable BackUpWordPress Support', 'hmbkp' ); ?></h2>
4
 
5
- <p class="howto"><?php printf( __( 'BackUpWordPress uses %s to provide support. In addition to allowing you to send and receive messages we also send the following server information along with your requests:', 'hmbkp' ), '<a target="blank" href="https://www.intercom.io">Intercom</a>' ); ?></p>
6
 
7
  <div class="server-info">
8
 
@@ -55,7 +55,7 @@
55
 
56
  </div>
57
 
58
- <p class="howto"><?php _e( 'You can disable support in the future by deactivating BackUpWordPress.', 'hmbkp' ); ?></p>
59
 
60
- <a href="#" class="button-secondary hmbkp-colorbox-close"><?php _e( 'No thanks', 'hmbkp' ); ?></a>
61
- <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_request_enable_support' ), admin_url( 'admin-post.php' ) ), 'hmbkp_enable_support', 'hmbkp_enable_support_nonce' ) ); ?>" class="button-primary right"><?php _e( 'Yes I want to enable support', 'hmbkp' ); ?></a>
1
  <?php require_once HMBKP_PLUGIN_PATH . 'classes/class-requirements.php'; ?>
2
 
3
+ <h2><?php _e( 'Enable BackUpWordPress Support', 'backupwordpress' ); ?></h2>
4
 
5
+ <p class="howto"><?php printf( __( 'BackUpWordPress uses %s to provide support. In addition to allowing you to send and receive messages we also send the following server information along with your requests:', 'backupwordpress' ), '<a target="blank" href="https://www.intercom.io">Intercom</a>' ); ?></p>
6
 
7
  <div class="server-info">
8
 
55
 
56
  </div>
57
 
58
+ <p class="howto"><?php _e( 'You can disable support in the future by deactivating BackUpWordPress.', 'backupwordpress' ); ?></p>
59
 
60
+ <a href="#" class="button-secondary hmbkp-colorbox-close"><?php _e( 'No thanks', 'backupwordpress' ); ?></a>
61
+ <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_request_enable_support' ), admin_url( 'admin-post.php' ) ), 'hmbkp_enable_support', 'hmbkp_enable_support_nonce' ) ); ?>" class="button-primary right"><?php _e( 'Yes I want to enable support', 'backupwordpress' ); ?></a>
admin/faq.php CHANGED
@@ -1,58 +1,58 @@
1
  <?php
2
- echo '<p><strong>' . __( 'Where does BackUpWordPress store the backup files?', 'hmbkp' ) . '</strong></p>' .
3
 
4
- '<p>' . __( 'Backups are stored on your server in <code>/wp-content/backups</code>, you can change the directory.', 'hmbkp' ). '</p>' .
5
 
6
- '<p>' . __( 'Important: By default BackUpWordPress backs up everything in your site root as well as your database, this includes any non WordPress folders that happen to be in your site root. This does mean that your backup directory can get quite large.', 'hmbkp' ) . '</p>' .
7
 
8
- '<p><strong>' . __( 'What if I want to back up my site to another destination?', 'hmbkp' ) . '</strong></p>' .
9
 
10
- '<p>' . __( 'BackUpWordPress Pro supports Dropbox, Google Drive, Amazon S3, Rackspace, Azure, DreamObjects and FTP/SFTP. Check it out here: <a href="http://bwp.hmn.md/?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=freeplugin" title="BackUpWordPress Homepage" target="_blank">https://bwp.hmn.md</a>', 'hmbkp' ) . '</p>' .
11
 
12
- '<p><strong>' . __( 'How do I restore my site from a backup?', 'hmbkp' ) . '</strong></p>' .
13
 
14
- '<p>' . __( 'You need to download the latest backup file either by clicking download on the backups page or via <code>FTP</code>. <code>Unzip</code> the files and upload all the files to your server overwriting your site. You can then import the database using your hosts database management tool (likely <code>phpMyAdmin</code>).', 'hmbkp' ) . '</p>' .
15
 
16
- '<p>' . __( 'See this guide for more details - <a href="https://bwp.hmn.md/support-center/restore-backup/" title="Go to support center" target="_blank">How to restore from backup</a>.', 'hmbkp' ) . '</p>' .
17
 
18
- '<p><strong>' . __( 'Does BackUpWordPress back up the backups directory?', 'hmbkp' ) . '</strong></p>' .
19
 
20
- '<p>' . __( 'No.', 'hmbkp' ) . '</p>' .
21
 
22
- '<p><strong>' . __( 'I\'m not receiving my backups by email?', 'hmbkp' ) . '</strong></p>' .
23
 
24
- '<p>' . __( 'Most servers have a filesize limit on email attachments, it\'s generally about 10mb. If your backup file is over that limit it won\'t be sent attached to the email, instead you should receive an email with a link to download the backup, if you aren\'t even receiving that then you likely have a mail issue on your server that you\'ll need to contact your host about.', 'hmbkp' ) . '</p>' .
25
 
26
- '<p><strong>' . __( 'How many backups are stored by default?', 'hmbkp' ) . '</strong></p>' .
27
 
28
- '<p>' . __( 'BackUpWordPress stores the last 10 backups by default.', 'hmbkp' ) . '</p>' .
29
 
30
- '<p><strong>' . __( 'How long should a backup take?', 'hmbkp' ) . '</strong></p>' .
31
 
32
- '<p>' . __( 'Unless your site is very large (many gigabytes) it should only take a few minutes to perform a back up, if your back up has been running for longer than an hour it\'s safe to assume that something has gone wrong, try de-activating and re-activating the plugin, if it keeps happening, contact support.', 'hmbkp' ) . '</p>' .
33
 
34
- '<p><strong>' . __( 'What do I do if I get the wp-cron error message?', 'hmbkp' ) . '</strong></p>' .
35
 
36
- '<p>' . __( 'The issue is that your <code>wp-cron.php</code> is not returning a <code>200</code> response when hit with a HTTP request originating from your own server, it could be several things, in most cases, it\'s an issue with the server / site.', 'hmbkp' ) . '</p>' .
37
 
38
- '<p>' . __( 'There are some things you can test to confirm this is the issue.', 'hmbkp' ) . '</p>' .
39
 
40
- '<ul><li>' . __( 'Are scheduled posts working? (They use wp-cron as well ). ', 'hmbkp' ) . '</li>' .
41
 
42
- '<li>' . __( 'Are you hosted on Heart Internet? (wp-cron may not be supported by Heart Internet, see below for work-around).', 'hmbkp' ) . '</li>' .
43
 
44
- '<li>' . __( 'If you click manual backup does it work?', 'hmbkp' ) . '</li>' .
45
 
46
- '<li>' . __( 'Try adding <code>define( \'ALTERNATE_WP_CRON\', true );</code> to your <code>wp-config.php</code>, do automatic backups work?', 'hmbkp' ) . '</li>' .
47
 
48
- '<li>' . __( 'Is your site private (I.E. is it behind some kind of authentication, maintenance plugin, .htaccess) if so wp-cron won\'t work until you remove it, if you are and you temporarily remove the authentication, do backups start working?', 'hmbkp' ) . '</li></ul>' .
49
 
50
- '<p>' . __( 'Report the results to our support team for further help. To do this, either enable suport from your Admin Dashboard (recommended), or email support@hmn.md', 'hmbkp' ) . '</p>' .
51
 
52
- '<p><strong>' . __( 'How to get BackUpWordPress working in Heart Internet', 'hmbkp' ) . '</strong></p>' .
53
 
54
- '<p>' . __( 'The script to be entered into the Heart Internet cPanel is: <code>/usr/bin/php5 /home/sites/yourdomain.com/public_html/wp-cron.php</code> (note the space between php5 and the location of the file). The file <code>wp-cron.php</code> <code>chmod</code> must be set to <code>711</code>.', 'hmbkp' ) . '</p>' .
55
 
56
- '<p><strong>' . __( 'My backups seem to be failing?', 'hmbkp' ) . '</strong></p>' .
57
 
58
- '<p>' . __( 'If your backups are failing - it\'s commonly caused by lack of available resources on your server. The easiest way to establish this to exclude some [of] or your entire uploades folder, running a backup an if that succeeds. If so, we know it\'s probably a server issue. If not, report the results to our support team for further help. To do this, either enable suport from your Admin Dashboard (recommended), or email support@hmn.md', 'hmbkp' ) . '</p>';
1
  <?php
2
+ echo '<p><strong>' . __( 'Where does BackUpWordPress store the backup files?', 'backupwordpress' ) . '</strong></p>' .
3
 
4
+ '<p>' . __( 'Backups are stored on your server in <code>/wp-content/backups</code>, you can change the directory.', 'backupwordpress' ). '</p>' .
5
 
6
+ '<p>' . __( 'Important: By default BackUpWordPress backs up everything in your site root as well as your database, this includes any non WordPress folders that happen to be in your site root. This does mean that your backup directory can get quite large.', 'backupwordpress' ) . '</p>' .
7
 
8
+ '<p><strong>' . __( 'What if I want to back up my site to another destination?', 'backupwordpress' ) . '</strong></p>' .
9
 
10
+ '<p>' . __( 'BackUpWordPress Pro supports Dropbox, Google Drive, Amazon S3, Rackspace, Azure, DreamObjects and FTP/SFTP. Check it out here: <a href="http://bwp.hmn.md/?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=freeplugin" title="BackUpWordPress Homepage" target="_blank">https://bwp.hmn.md</a>', 'backupwordpress' ) . '</p>' .
11
 
12
+ '<p><strong>' . __( 'How do I restore my site from a backup?', 'backupwordpress' ) . '</strong></p>' .
13
 
14
+ '<p>' . __( 'You need to download the latest backup file either by clicking download on the backups page or via <code>FTP</code>. <code>Unzip</code> the files and upload all the files to your server overwriting your site. You can then import the database using your hosts database management tool (likely <code>phpMyAdmin</code>).', 'backupwordpress' ) . '</p>' .
15
 
16
+ '<p>' . __( 'See this guide for more details - <a href="https://bwp.hmn.md/support-center/restore-backup/" title="Go to support center" target="_blank">How to restore from backup</a>.', 'backupwordpress' ) . '</p>' .
17
 
18
+ '<p><strong>' . __( 'Does BackUpWordPress back up the backups directory?', 'backupwordpress' ) . '</strong></p>' .
19
 
20
+ '<p>' . __( 'No.', 'backupwordpress' ) . '</p>' .
21
 
22
+ '<p><strong>' . __( 'I\'m not receiving my backups by email?', 'backupwordpress' ) . '</strong></p>' .
23
 
24
+ '<p>' . __( 'Most servers have a filesize limit on email attachments, it\'s generally about 10mb. If your backup file is over that limit it won\'t be sent attached to the email, instead you should receive an email with a link to download the backup, if you aren\'t even receiving that then you likely have a mail issue on your server that you\'ll need to contact your host about.', 'backupwordpress' ) . '</p>' .
25
 
26
+ '<p><strong>' . __( 'How many backups are stored by default?', 'backupwordpress' ) . '</strong></p>' .
27
 
28
+ '<p>' . __( 'BackUpWordPress stores the last 10 backups by default.', 'backupwordpress' ) . '</p>' .
29
 
30
+ '<p><strong>' . __( 'How long should a backup take?', 'backupwordpress' ) . '</strong></p>' .
31
 
32
+ '<p>' . __( 'Unless your site is very large (many gigabytes) it should only take a few minutes to perform a back up, if your back up has been running for longer than an hour it\'s safe to assume that something has gone wrong, try de-activating and re-activating the plugin, if it keeps happening, contact support.', 'backupwordpress' ) . '</p>' .
33
 
34
+ '<p><strong>' . __( 'What do I do if I get the wp-cron error message?', 'backupwordpress' ) . '</strong></p>' .
35
 
36
+ '<p>' . __( 'The issue is that your <code>wp-cron.php</code> is not returning a <code>200</code> response when hit with a HTTP request originating from your own server, it could be several things, in most cases, it\'s an issue with the server / site.', 'backupwordpress' ) . '</p>' .
37
 
38
+ '<p>' . __( 'There are some things you can test to confirm this is the issue.', 'backupwordpress' ) . '</p>' .
39
 
40
+ '<ul><li>' . __( 'Are scheduled posts working? (They use wp-cron as well ). ', 'backupwordpress' ) . '</li>' .
41
 
42
+ '<li>' . __( 'Are you hosted on Heart Internet? (wp-cron may not be supported by Heart Internet, see below for work-around).', 'backupwordpress' ) . '</li>' .
43
 
44
+ '<li>' . __( 'If you click manual backup does it work?', 'backupwordpress' ) . '</li>' .
45
 
46
+ '<li>' . __( 'Try adding <code>define( \'ALTERNATE_WP_CRON\', true );</code> to your <code>wp-config.php</code>, do automatic backups work?', 'backupwordpress' ) . '</li>' .
47
 
48
+ '<li>' . __( 'Is your site private (I.E. is it behind some kind of authentication, maintenance plugin, .htaccess) if so wp-cron won\'t work until you remove it, if you are and you temporarily remove the authentication, do backups start working?', 'backupwordpress' ) . '</li></ul>' .
49
 
50
+ '<p>' . __( 'Report the results to our support team for further help. To do this, either enable suport from your Admin Dashboard (recommended), or email support@hmn.md', 'backupwordpress' ) . '</p>' .
51
 
52
+ '<p><strong>' . __( 'How to get BackUpWordPress working in Heart Internet', 'backupwordpress' ) . '</strong></p>' .
53
 
54
+ '<p>' . __( 'The script to be entered into the Heart Internet cPanel is: <code>/usr/bin/php5 /home/sites/yourdomain.com/public_html/wp-cron.php</code> (note the space between php5 and the location of the file). The file <code>wp-cron.php</code> <code>chmod</code> must be set to <code>711</code>.', 'backupwordpress' ) . '</p>' .
55
 
56
+ '<p><strong>' . __( 'My backups seem to be failing?', 'backupwordpress' ) . '</strong></p>' .
57
 
58
+ '<p>' . __( 'If your backups are failing - it\'s commonly caused by lack of available resources on your server. The easiest way to establish this to exclude some [of] or your entire uploades folder, running a backup an if that succeeds. If so, we know it\'s probably a server issue. If not, report the results to our support team for further help. To do this, either enable suport from your Admin Dashboard (recommended), or email support@hmn.md', 'backupwordpress' ) . '</p>';
admin/menu.php CHANGED
@@ -9,9 +9,9 @@
9
  function hmbkp_admin_menu() {
10
 
11
  if ( is_multisite() )
12
- add_submenu_page( 'settings.php', __( 'Manage Backups','hmbkp' ), __( 'Backups','hmbkp' ), ( defined( 'HMBKP_CAPABILITY' ) && HMBKP_CAPABILITY ) ? HMBKP_CAPABILITY : 'manage_options', HMBKP_PLUGIN_SLUG, 'hmbkp_manage_backups' );
13
  else
14
- add_management_page( __( 'Manage Backups','hmbkp' ), __( 'Backups','hmbkp' ), ( defined( 'HMBKP_CAPABILITY' ) && HMBKP_CAPABILITY ) ? HMBKP_CAPABILITY : 'manage_options', HMBKP_PLUGIN_SLUG, 'hmbkp_manage_backups' );
15
  }
16
  add_action( 'network_admin_menu', 'hmbkp_admin_menu' );
17
  add_action( 'admin_menu', 'hmbkp_admin_menu' );
@@ -36,7 +36,7 @@ function hmbkp_manage_backups() {
36
  function hmbkp_plugin_action_link( $links, $file ) {
37
 
38
  if ( strpos( $file, HMBKP_PLUGIN_SLUG ) !== false )
39
- array_push( $links, '<a href="' . esc_url( HMBKP_ADMIN_URL ) . '">' . __( 'Backups', 'hmbkp' ) . '</a>' );
40
 
41
  return $links;
42
 
@@ -64,15 +64,15 @@ function hmbkp_contextual_help() {
64
  include_once( HMBKP_PLUGIN_PATH . 'admin/faq.php' );
65
  $faq = ob_get_clean();
66
 
67
- get_current_screen()->add_help_tab( array( 'title' => __( 'FAQ', 'hmbkp' ), 'id' => 'hmbkp_faq', 'content' => wp_kses_post( $faq ) ) );
68
 
69
- get_current_screen()->add_help_tab( array( 'title' => __( 'Constants', 'hmbkp' ), 'id' => 'hmbkp_constants', 'content' => wp_kses_post( $constants ) ) );
70
 
71
  get_current_screen()->set_help_sidebar(
72
- '<p><strong>' . __( 'For more information:', 'hmbkp' ) . '</strong></p>' .
73
  '<p><a href="https://github.com/humanmade/backupwordpress" target="_blank">GitHub</a></p>' .
74
- '<p><a href="http://wordpress.org/tags/backupwordpress?forum_id=10" target="_blank">' . __( 'Support Forums', 'hmbkp' ) .'</a></p>' .
75
- '<p><a href="http://translate.hmn.md/" target="_blank">' . __( 'Help with translation', 'hmbkp' ) .'</a></p>'
76
  );
77
 
78
  }
9
  function hmbkp_admin_menu() {
10
 
11
  if ( is_multisite() )
12
+ add_submenu_page( 'settings.php', __( 'Manage Backups','backupwordpress' ), __( 'Backups','backupwordpress' ), ( defined( 'HMBKP_CAPABILITY' ) && HMBKP_CAPABILITY ) ? HMBKP_CAPABILITY : 'manage_options', HMBKP_PLUGIN_SLUG, 'hmbkp_manage_backups' );
13
  else
14
+ add_management_page( __( 'Manage Backups','backupwordpress' ), __( 'Backups','backupwordpress' ), ( defined( 'HMBKP_CAPABILITY' ) && HMBKP_CAPABILITY ) ? HMBKP_CAPABILITY : 'manage_options', HMBKP_PLUGIN_SLUG, 'hmbkp_manage_backups' );
15
  }
16
  add_action( 'network_admin_menu', 'hmbkp_admin_menu' );
17
  add_action( 'admin_menu', 'hmbkp_admin_menu' );
36
  function hmbkp_plugin_action_link( $links, $file ) {
37
 
38
  if ( strpos( $file, HMBKP_PLUGIN_SLUG ) !== false )
39
+ array_push( $links, '<a href="' . esc_url( HMBKP_ADMIN_URL ) . '">' . __( 'Backups', 'backupwordpress' ) . '</a>' );
40
 
41
  return $links;
42
 
64
  include_once( HMBKP_PLUGIN_PATH . 'admin/faq.php' );
65
  $faq = ob_get_clean();
66
 
67
+ get_current_screen()->add_help_tab( array( 'title' => __( 'FAQ', 'backupwordpress' ), 'id' => 'hmbkp_faq', 'content' => wp_kses_post( $faq ) ) );
68
 
69
+ get_current_screen()->add_help_tab( array( 'title' => __( 'Constants', 'backupwordpress' ), 'id' => 'hmbkp_constants', 'content' => wp_kses_post( $constants ) ) );
70
 
71
  get_current_screen()->set_help_sidebar(
72
+ '<p><strong>' . __( 'For more information:', 'backupwordpress' ) . '</strong></p>' .
73
  '<p><a href="https://github.com/humanmade/backupwordpress" target="_blank">GitHub</a></p>' .
74
+ '<p><a href="http://wordpress.org/tags/backupwordpress?forum_id=10" target="_blank">' . __( 'Support Forums', 'backupwordpress' ) .'</a></p>' .
75
+ '<p><a href="http://translate.hmn.md/" target="_blank">' . __( 'Help with translation', 'backupwordpress' ) .'</a></p>'
76
  );
77
 
78
  }
admin/page.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  <?php include_once( HMBKP_PLUGIN_PATH . 'admin/backups.php' ); ?>
6
 
7
- <p class="howto"><?php printf( __( 'If you\'re finding BackUpWordPress useful, please %1$s rate it on the plugin directory%2$s.', 'hmbkp' ), '<a target="_blank" href="http://wordpress.org/support/view/plugin-reviews/backupwordpress">', '</a>' ); ?></p>
8
 
9
  <?php include_once( HMBKP_PLUGIN_PATH . 'admin/upsell.php' ); ?>
10
 
4
 
5
  <?php include_once( HMBKP_PLUGIN_PATH . 'admin/backups.php' ); ?>
6
 
7
+ <p class="howto"><?php printf( __( 'If you\'re finding BackUpWordPress useful, please %1$s rate it on the plugin directory%2$s.', 'backupwordpress' ), '<a target="_blank" href="http://wordpress.org/support/view/plugin-reviews/backupwordpress">', '</a>' ); ?></p>
8
 
9
  <?php include_once( HMBKP_PLUGIN_PATH . 'admin/upsell.php' ); ?>
10
 
admin/schedule-form-excludes.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  <?php if ( $schedule->get_excludes() ) : ?>
4
 
5
- <h3><?php _e( 'Currently Excluded', 'hmbkp' ); ?></h3>
6
 
7
  <table class="widefat">
8
 
@@ -37,15 +37,15 @@
37
 
38
  <?php if ( ( $schedule->get_path() === untrailingslashit( $exclude ) ) || ( in_array( $exclude, $schedule->default_excludes() ) ) ) : ?>
39
 
40
- <?php _e( 'Default rule', 'hmbkp' ); ?>
41
 
42
  <?php elseif ( defined( 'HMBKP_EXCLUDE' ) && strpos( HMBKP_EXCLUDE, $exclude ) !== false ) : ?>
43
 
44
- <?php _e( 'Defined in wp-config.php', 'hmbkp' ); ?>
45
 
46
  <?php else : ?>
47
 
48
- <a href="<?php echo hmbkp_admin_action_url( 'remove_exclude_rule', array( 'hmbkp_remove_exclude' => $exclude, 'hmbkp_schedule_id' => $schedule->get_id() ) ); ?>" class="delete-action"><?php _e( 'Stop excluding', 'hmbkp' ); ?></a>
49
 
50
  <?php endif; ?>
51
 
@@ -61,9 +61,9 @@
61
 
62
  <?php endif; ?>
63
 
64
- <h3 id="directory-listing"><?php _e( 'Directory Listing', 'hmbkp' ); ?></h3>
65
 
66
- <p><?php _e( 'Here\'s a directory listing of all files on your site, you can browse through and exclude files or folders that you don\'t want included in your backup.', 'hmbkp' ); ?></p>
67
 
68
  <?php
69
 
@@ -94,11 +94,11 @@
94
 
95
  <tr>
96
  <th></th>
97
- <th scope="col"><?php _e( 'Name', 'hmbkp' ); ?></th>
98
- <th scope="col" class="column-format"><?php _e( 'Size', 'hmbkp' ); ?></th>
99
- <th scope="col" class="column-format"><?php _e( 'Permissions', 'hmbkp' ); ?></th>
100
- <th scope="col" class="column-format"><?php _e( 'Type', 'hmbkp' ); ?></th>
101
- <th scope="col" class="column-format"><?php _e( 'Status', 'hmbkp' ); ?></th>
102
  </tr>
103
 
104
  <tr>
@@ -155,7 +155,7 @@
155
 
156
  <?php echo esc_html( $size ); ?>
157
 
158
- <a class="dashicons dashicons-update" href="<?php echo wp_nonce_url( add_query_arg( 'hmbkp_recalculate_directory_filesize', urlencode( $schedule->get_root() ) ), 'hmbkp-recalculate_directory_filesize' ); ?>"><span><?php _e( 'Refresh', 'hmbkp' ); ?></span></a>
159
 
160
  </code>
161
 
@@ -172,11 +172,11 @@
172
 
173
  <?php if ( is_link( $schedule->get_root() ) ) {
174
 
175
- _e( 'Symlink', 'hmbkp' );
176
 
177
  } elseif ( is_dir( $schedule->get_root() ) ) {
178
 
179
- _e( 'Folder', 'hmbkp' );
180
 
181
  } ?>
182
 
@@ -266,7 +266,7 @@
266
 
267
  <?php if ( $file->isDir() ) { ?>
268
 
269
- <a title="<?php _e( 'Recalculate the size of this directory', 'hmbkp' ); ?>" class="dashicons dashicons-update" href="<?php echo wp_nonce_url( add_query_arg( 'hmbkp_recalculate_directory_filesize', urlencode( $file->getPathname() ) ), 'hmbkp-recalculate_directory_filesize' ); ?>"><span><?php _e( 'Refresh', 'hmbkp' ); ?></span></a>
270
 
271
  <?php } ?>
272
 
@@ -290,15 +290,15 @@
290
 
291
  <?php if ( $file->isLink() ) { ?>
292
 
293
- <span title="<?php echo esc_attr( $file->GetRealPath() ); ?>"><?php _e( 'Symlink', 'hmbkp' ); ?></span>
294
 
295
  <?php } elseif ( $file->isDir() ) {
296
 
297
- _e( 'Folder', 'hmbkp' );
298
 
299
  } else {
300
 
301
- _e( 'File', 'hmbkp' );
302
 
303
  } ?>
304
 
@@ -308,11 +308,11 @@
308
 
309
  <?php if ( $is_unreadable ) { ?>
310
 
311
- <strong title="<?php _e( 'Unreadable files won\'t be backed up.', 'hmbkp' ); ?>"><?php _e( 'Unreadable', 'hmbkp' ); ?></strong>
312
 
313
  <?php } elseif ( $is_excluded ) { ?>
314
 
315
- <strong><?php _e( 'Excluded', 'hmbkp' ); ?></strong>
316
 
317
  <?php } else {
318
 
@@ -323,7 +323,7 @@
323
  $exclude_path = trailingslashit( $file->getPathname() );
324
  } ?>
325
 
326
- <a href="<?php echo wp_nonce_url( add_query_arg( array( 'hmbkp_schedule_id' => $schedule->get_id(), 'action' => 'hmbkp_add_exclude_rule', 'hmbkp_exclude_pathname' => urlencode( $exclude_path ) ), admin_url( 'admin-post.php' ) ), 'hmbkp-add-exclude-rule', 'hmbkp-add-exclude-rule-nonce' ); ?>" class="button-secondary"><?php _e( 'Exclude &rarr;', 'hmbkp' ); ?></a>
327
 
328
  <?php } ?>
329
 
@@ -342,5 +342,5 @@
342
  </div>
343
 
344
  <p class="submit">
345
- <a href="<?php echo esc_url( hmbkp_get_settings_url() ) ?>" class="button-primary"><?php _e( 'Done', 'hmbkp' ); ?></a>
346
  </p>
2
 
3
  <?php if ( $schedule->get_excludes() ) : ?>
4
 
5
+ <h3><?php _e( 'Currently Excluded', 'backupwordpress' ); ?></h3>
6
 
7
  <table class="widefat">
8
 
37
 
38
  <?php if ( ( $schedule->get_path() === untrailingslashit( $exclude ) ) || ( in_array( $exclude, $schedule->default_excludes() ) ) ) : ?>
39
 
40
+ <?php _e( 'Default rule', 'backupwordpress' ); ?>
41
 
42
  <?php elseif ( defined( 'HMBKP_EXCLUDE' ) && strpos( HMBKP_EXCLUDE, $exclude ) !== false ) : ?>
43
 
44
+ <?php _e( 'Defined in wp-config.php', 'backupwordpress' ); ?>
45
 
46
  <?php else : ?>
47
 
48
+ <a href="<?php echo hmbkp_admin_action_url( 'remove_exclude_rule', array( 'hmbkp_remove_exclude' => $exclude, 'hmbkp_schedule_id' => $schedule->get_id() ) ); ?>" class="delete-action"><?php _e( 'Stop excluding', 'backupwordpress' ); ?></a>
49
 
50
  <?php endif; ?>
51
 
61
 
62
  <?php endif; ?>
63
 
64
+ <h3 id="directory-listing"><?php _e( 'Directory Listing', 'backupwordpress' ); ?></h3>
65
 
66
+ <p><?php _e( 'Here\'s a directory listing of all files on your site, you can browse through and exclude files or folders that you don\'t want included in your backup.', 'backupwordpress' ); ?></p>
67
 
68
  <?php
69
 
94
 
95
  <tr>
96
  <th></th>
97
+ <th scope="col"><?php _e( 'Name', 'backupwordpress' ); ?></th>
98
+ <th scope="col" class="column-format"><?php _e( 'Size', 'backupwordpress' ); ?></th>
99
+ <th scope="col" class="column-format"><?php _e( 'Permissions', 'backupwordpress' ); ?></th>
100
+ <th scope="col" class="column-format"><?php _e( 'Type', 'backupwordpress' ); ?></th>
101
+ <th scope="col" class="column-format"><?php _e( 'Status', 'backupwordpress' ); ?></th>
102
  </tr>
103
 
104
  <tr>
155
 
156
  <?php echo esc_html( $size ); ?>
157
 
158
+ <a class="dashicons dashicons-update" href="<?php echo wp_nonce_url( add_query_arg( 'hmbkp_recalculate_directory_filesize', urlencode( $schedule->get_root() ) ), 'hmbkp-recalculate_directory_filesize' ); ?>"><span><?php _e( 'Refresh', 'backupwordpress' ); ?></span></a>
159
 
160
  </code>
161
 
172
 
173
  <?php if ( is_link( $schedule->get_root() ) ) {
174
 
175
+ _e( 'Symlink', 'backupwordpress' );
176
 
177
  } elseif ( is_dir( $schedule->get_root() ) ) {
178
 
179
+ _e( 'Folder', 'backupwordpress' );
180
 
181
  } ?>
182
 
266
 
267
  <?php if ( $file->isDir() ) { ?>
268
 
269
+ <a title="<?php _e( 'Recalculate the size of this directory', 'backupwordpress' ); ?>" class="dashicons dashicons-update" href="<?php echo wp_nonce_url( add_query_arg( 'hmbkp_recalculate_directory_filesize', urlencode( $file->getPathname() ) ), 'hmbkp-recalculate_directory_filesize' ); ?>"><span><?php _e( 'Refresh', 'backupwordpress' ); ?></span></a>
270
 
271
  <?php } ?>
272
 
290
 
291
  <?php if ( $file->isLink() ) { ?>
292
 
293
+ <span title="<?php echo esc_attr( $file->GetRealPath() ); ?>"><?php _e( 'Symlink', 'backupwordpress' ); ?></span>
294
 
295
  <?php } elseif ( $file->isDir() ) {
296
 
297
+ _e( 'Folder', 'backupwordpress' );
298
 
299
  } else {
300
 
301
+ _e( 'File', 'backupwordpress' );
302
 
303
  } ?>
304
 
308
 
309
  <?php if ( $is_unreadable ) { ?>
310
 
311
+ <strong title="<?php _e( 'Unreadable files won\'t be backed up.', 'backupwordpress' ); ?>"><?php _e( 'Unreadable', 'backupwordpress' ); ?></strong>
312
 
313
  <?php } elseif ( $is_excluded ) { ?>
314
 
315
+ <strong><?php _e( 'Excluded', 'backupwordpress' ); ?></strong>
316
 
317
  <?php } else {
318
 
323
  $exclude_path = trailingslashit( $file->getPathname() );
324
  } ?>
325
 
326
+ <a href="<?php echo wp_nonce_url( add_query_arg( array( 'hmbkp_schedule_id' => $schedule->get_id(), 'action' => 'hmbkp_add_exclude_rule', 'hmbkp_exclude_pathname' => urlencode( $exclude_path ) ), admin_url( 'admin-post.php' ) ), 'hmbkp-add-exclude-rule', 'hmbkp-add-exclude-rule-nonce' ); ?>" class="button-secondary"><?php _e( 'Exclude &rarr;', 'backupwordpress' ); ?></a>
327
 
328
  <?php } ?>
329
 
342
  </div>
343
 
344
  <p class="submit">
345
+ <a href="<?php echo esc_url( hmbkp_get_settings_url() ) ?>" class="button-primary"><?php _e( 'Done', 'backupwordpress' ); ?></a>
346
  </p>
admin/schedule-form.php CHANGED
@@ -28,18 +28,18 @@
28
  <tr valign="top">
29
 
30
  <th scope="row">
31
- <label for="hmbkp_schedule_type"><?php _e( 'Backup', 'hmbkp' ); ?></label>
32
  </th>
33
 
34
  <td>
35
 
36
  <select name="hmbkp_schedule_type" id="hmbkp_schedule_type">
37
 
38
- <option<?php selected( $schedule->get_type(), 'complete' ); ?> value="complete"><?php _e( 'Both Database &amp; files', 'hmbkp' ); ?></option>
39
 
40
- <option<?php selected( $schedule->get_type(), 'file' ); ?> value="file"><?php _e( 'Files only', 'hmbkp' ); ?></option>
41
 
42
- <option<?php selected( $schedule->get_type(), 'database' ); ?> value="database"><?php _e( 'Database only', 'hmbkp' ); ?></option>
43
 
44
  </select>
45
 
@@ -50,20 +50,20 @@
50
  <tr>
51
 
52
  <th scope="row">
53
- <label for="hmbkp_schedule_recurrence_type"><?php _e( 'Schedule', 'hmbkp' ); ?></label>
54
  </th>
55
 
56
  <td>
57
 
58
  <select name="hmbkp_schedule_recurrence[hmbkp_type]" id="hmbkp_schedule_recurrence_type">
59
 
60
- <option value="manually"><?php _e( 'Manual Only', 'hmbkp' ); ?></option>
61
 
62
  <?php foreach ( $schedule->get_cron_schedules() as $cron_schedule => $cron_details ) : ?>
63
 
64
  <option <?php selected( $schedule->get_reoccurrence(), $cron_schedule ); ?> value="<?php echo esc_attr( $cron_schedule ); ?>">
65
 
66
- <?php esc_html_e( $cron_details['display'], 'hmbkp' ); ?>
67
 
68
  </option>
69
 
@@ -82,7 +82,7 @@
82
  <tr id="start-day" class="recurring-setting">
83
 
84
  <th scope="row">
85
- <label for="hmbkp_schedule_start_day_of_week"><?php _e( 'Start Day', 'hmbkp' ); ?></label>
86
  </th>
87
 
88
  <td>
@@ -90,13 +90,13 @@
90
  <select id="hmbkp_schedule_start_day_of_week" name="hmbkp_schedule_recurrence[hmbkp_schedule_start_day_of_week]">
91
 
92
  <?php $weekdays = array(
93
- 'monday' => __( 'Monday', 'hmbkp' ),
94
- 'tuesday' => __( 'Tuesday', 'hmbkp' ),
95
- 'wednesday' => __( 'Wednesday', 'hmbkp' ),
96
- 'thursday' => __( 'Thursday', 'hmbkp' ),
97
- 'friday' => __( 'Friday', 'hmbkp' ),
98
- 'saturday' => __( 'Saturday', 'hmbkp' ),
99
- 'sunday' => __( 'Sunday', 'hmbkp' )
100
  );
101
 
102
  foreach ( $weekdays as $key => $day ) : ?>
@@ -114,7 +114,7 @@
114
  <tr id="start-date" class="recurring-setting">
115
 
116
  <th scope="row">
117
- <label for="hmbkp_schedule_start_day_of_month"><?php _e( 'Start Day of Month', 'hmbkp' ); ?></label>
118
  </th>
119
 
120
  <td>
@@ -126,7 +126,7 @@
126
  <tr id="schedule-start" class="recurring-setting">
127
 
128
  <th scope="row">
129
- <label for="hmbkp_schedule_start_hours"><?php _e( 'Start Time', 'hmbkp' ); ?></label>
130
  </th>
131
 
132
  <td>
@@ -135,15 +135,15 @@
135
 
136
  <label for="hmbkp_schedule_start_hours"><input type="number" min="0" max="23" step="1" name="hmbkp_schedule_recurrence[hmbkp_schedule_start_hours]" id="hmbkp_schedule_start_hours" value="<?php echo esc_attr( date_i18n( 'G', $start_time ) ); ?>">
137
 
138
- <?php _e( 'Hours', 'hmbkp' ); ?></label>
139
 
140
  <label for="hmbkp_schedule_start_minutes"><input type="number" min="0" max="59" step="1" name="hmbkp_schedule_recurrence[hmbkp_schedule_start_minutes]" id="hmbkp_schedule_start_minutes" value="<?php echo esc_attr( (float) date_i18n( 'i', $start_time ) ); ?>">
141
 
142
- <?php _e( 'Minutes', 'hmbkp' ); ?></label>
143
 
144
  </span>
145
 
146
- <p class="twice-js description<?php if ( $schedule->get_reoccurrence() !== 'hmbkp_fortnightly' ) { ?> hidden<?php } ?>"><?php _e( 'The second backup will run 12 hours after the first', 'hmbkp' ); ?></p>
147
 
148
  </td>
149
 
@@ -152,7 +152,7 @@
152
  <tr>
153
 
154
  <th scope="row">
155
- <label for="hmbkp_schedule_max_backups"><?php _e( 'Number of backups to store on this server', 'hmbkp' ); ?></label>
156
  </th>
157
 
158
  <td>
@@ -161,10 +161,10 @@
161
 
162
  <p class="description">
163
 
164
- <?php printf( __( 'Past this limit older backups will be deleted automatically.', 'hmbkp' ) ); ?>
165
 
166
  <?php if ( $schedule->is_site_size_cached() ) {
167
- printf( __( 'This schedule will store a maximum of %s of backups.', 'hmbkp' ), '<code>' . size_format( $schedule->get_site_size() * $schedule->get_max_backups() ) . '</code>' );
168
  } ?>
169
 
170
  </p>
@@ -182,7 +182,7 @@
182
  </table>
183
 
184
  <p class="submit">
185
- <button type="submit" class="button-primary"><?php _e( 'Done', 'hmbkp' ); ?></button>
186
  </p>
187
 
188
 
28
  <tr valign="top">
29
 
30
  <th scope="row">
31
+ <label for="hmbkp_schedule_type"><?php _e( 'Backup', 'backupwordpress' ); ?></label>
32
  </th>
33
 
34
  <td>
35
 
36
  <select name="hmbkp_schedule_type" id="hmbkp_schedule_type">
37
 
38
+ <option<?php selected( $schedule->get_type(), 'complete' ); ?> value="complete"><?php _e( 'Both Database &amp; files', 'backupwordpress' ); ?></option>
39
 
40
+ <option<?php selected( $schedule->get_type(), 'file' ); ?> value="file"><?php _e( 'Files only', 'backupwordpress' ); ?></option>
41
 
42
+ <option<?php selected( $schedule->get_type(), 'database' ); ?> value="database"><?php _e( 'Database only', 'backupwordpress' ); ?></option>
43
 
44
  </select>
45
 
50
  <tr>
51
 
52
  <th scope="row">
53
+ <label for="hmbkp_schedule_recurrence_type"><?php _e( 'Schedule', 'backupwordpress' ); ?></label>
54
  </th>
55
 
56
  <td>
57
 
58
  <select name="hmbkp_schedule_recurrence[hmbkp_type]" id="hmbkp_schedule_recurrence_type">
59
 
60
+ <option value="manually"><?php _e( 'Manual Only', 'backupwordpress' ); ?></option>
61
 
62
  <?php foreach ( $schedule->get_cron_schedules() as $cron_schedule => $cron_details ) : ?>
63
 
64
  <option <?php selected( $schedule->get_reoccurrence(), $cron_schedule ); ?> value="<?php echo esc_attr( $cron_schedule ); ?>">
65
 
66
+ <?php esc_html_e( $cron_details['display'], 'backupwordpress' ); ?>
67
 
68
  </option>
69
 
82
  <tr id="start-day" class="recurring-setting">
83
 
84
  <th scope="row">
85
+ <label for="hmbkp_schedule_start_day_of_week"><?php _e( 'Start Day', 'backupwordpress' ); ?></label>
86
  </th>
87
 
88
  <td>
90
  <select id="hmbkp_schedule_start_day_of_week" name="hmbkp_schedule_recurrence[hmbkp_schedule_start_day_of_week]">
91
 
92
  <?php $weekdays = array(
93
+ 'monday' => __( 'Monday', 'backupwordpress' ),
94
+ 'tuesday' => __( 'Tuesday', 'backupwordpress' ),
95
+ 'wednesday' => __( 'Wednesday', 'backupwordpress' ),
96
+ 'thursday' => __( 'Thursday', 'backupwordpress' ),
97
+ 'friday' => __( 'Friday', 'backupwordpress' ),
98
+ 'saturday' => __( 'Saturday', 'backupwordpress' ),
99
+ 'sunday' => __( 'Sunday', 'backupwordpress' )
100
  );
101
 
102
  foreach ( $weekdays as $key => $day ) : ?>
114
  <tr id="start-date" class="recurring-setting">
115
 
116
  <th scope="row">
117
+ <label for="hmbkp_schedule_start_day_of_month"><?php _e( 'Start Day of Month', 'backupwordpress' ); ?></label>
118
  </th>
119
 
120
  <td>
126
  <tr id="schedule-start" class="recurring-setting">
127
 
128
  <th scope="row">
129
+ <label for="hmbkp_schedule_start_hours"><?php _e( 'Start Time', 'backupwordpress' ); ?></label>
130
  </th>
131
 
132
  <td>
135
 
136
  <label for="hmbkp_schedule_start_hours"><input type="number" min="0" max="23" step="1" name="hmbkp_schedule_recurrence[hmbkp_schedule_start_hours]" id="hmbkp_schedule_start_hours" value="<?php echo esc_attr( date_i18n( 'G', $start_time ) ); ?>">
137
 
138
+ <?php _e( 'Hours', 'backupwordpress' ); ?></label>
139
 
140
  <label for="hmbkp_schedule_start_minutes"><input type="number" min="0" max="59" step="1" name="hmbkp_schedule_recurrence[hmbkp_schedule_start_minutes]" id="hmbkp_schedule_start_minutes" value="<?php echo esc_attr( (float) date_i18n( 'i', $start_time ) ); ?>">
141
 
142
+ <?php _e( 'Minutes', 'backupwordpress' ); ?></label>
143
 
144
  </span>
145
 
146
+ <p class="twice-js description<?php if ( $schedule->get_reoccurrence() !== 'hmbkp_fortnightly' ) { ?> hidden<?php } ?>"><?php _e( 'The second backup will run 12 hours after the first', 'backupwordpress' ); ?></p>
147
 
148
  </td>
149
 
152
  <tr>
153
 
154
  <th scope="row">
155
+ <label for="hmbkp_schedule_max_backups"><?php _e( 'Number of backups to store on this server', 'backupwordpress' ); ?></label>
156
  </th>
157
 
158
  <td>
161
 
162
  <p class="description">
163
 
164
+ <?php printf( __( 'Past this limit older backups will be deleted automatically.', 'backupwordpress' ) ); ?>
165
 
166
  <?php if ( $schedule->is_site_size_cached() ) {
167
+ printf( __( 'This schedule will store a maximum of %s of backups.', 'backupwordpress' ), '<code>' . size_format( $schedule->get_site_size() * $schedule->get_max_backups() ) . '</code>' );
168
  } ?>
169
 
170
  </p>
182
  </table>
183
 
184
  <p class="submit">
185
+ <button type="submit" class="button-primary"><?php _e( 'Done', 'backupwordpress' ); ?></button>
186
  </p>
187
 
188
 
admin/schedule-sentence.php CHANGED
@@ -7,7 +7,7 @@ if ( 'database' === $schedule->get_type() ) {
7
  $cached = true;
8
  }
9
 
10
- $filesize = $cached ? '(<code title="' . __( 'Backups will be compressed and should be smaller than this.', 'hmbkp' ) . '">' . esc_attr( $schedule->get_formatted_site_size() ) . '</code>)' : '(<code class="calculating" title="' . __( 'this shouldn\'t take long&hellip;', 'hmbkp' ) . '">' . __( 'calculating the size of your backup&hellip;', 'hmbkp' ) . '</code>)';
11
 
12
  if ( isset( $_GET['hmbkp_add_schedule'] ) ) {
13
  $filesize = '';
@@ -19,20 +19,20 @@ $type = strtolower( hmbkp_human_get_type( $schedule->get_type() ) );
19
  // Backup Time
20
  $day = date_i18n( 'l', $schedule->get_next_occurrence( false ) );
21
 
22
- $next_backup = 'title="' . esc_attr( sprintf( __( 'The next backup will be on %1$s at %2$s %3$s', 'hmbkp' ), date_i18n( get_option( 'date_format' ), $schedule->get_next_occurrence( false ) ), date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ), date_i18n( 'T', $schedule->get_next_occurrence( false ) ) ) ) . '"';
23
 
24
  // Backup Re-occurrence
25
  switch ( $schedule->get_reoccurrence() ) :
26
 
27
  case 'hmbkp_hourly' :
28
 
29
- $reoccurrence = date_i18n( 'i', $schedule->get_next_occurrence( false ) ) === '00' ? '<span ' . $next_backup . '>' . __( 'hourly on the hour', 'hmbkp' ) . '</span>' : sprintf( __( 'hourly at %s minutes past the hour', 'hmbkp' ), '<span ' . $next_backup . '>' . intval( date_i18n( 'i', $schedule->get_next_occurrence( false ) ) ) ) . '</span>';
30
 
31
  break;
32
 
33
  case 'hmbkp_daily' :
34
 
35
- $reoccurrence = sprintf( __( 'daily at %s', 'hmbkp' ), '<span ' . $next_backup . '>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
36
 
37
  break;
38
 
@@ -43,31 +43,31 @@ switch ( $schedule->get_reoccurrence() ) :
43
 
44
  sort( $times );
45
 
46
- $reoccurrence = sprintf( __( 'every 12 hours at %1$s &amp; %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . esc_html( reset( $times ) ) . '</span>', '<span>' . esc_html( end( $times ) ) ) . '</span>';
47
 
48
  break;
49
 
50
  case 'hmbkp_weekly' :
51
 
52
- $reoccurrence = sprintf( __( 'weekly on %1$s at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' .esc_html( $day ) . '</span>', '<span>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
53
 
54
  break;
55
 
56
  case 'hmbkp_fortnightly' :
57
 
58
- $reoccurrence = sprintf( __( 'biweekly on %1$s at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . $day . '</span>', '<span>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
59
 
60
  break;
61
 
62
  case 'hmbkp_monthly' :
63
 
64
- $reoccurrence = sprintf( __( 'on the %1$s of each month at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . esc_html( date_i18n( 'jS', $schedule->get_next_occurrence( false ) ) ) . '</span>', '<span>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
65
 
66
  break;
67
 
68
  case 'manually' :
69
 
70
- $reoccurrence = __( 'manually', 'hmbkp' );
71
 
72
  break;
73
 
@@ -77,7 +77,7 @@ switch ( $schedule->get_reoccurrence() ) :
77
 
78
  endswitch;
79
 
80
- $server = '<span title="' . esc_attr( hmbkp_path() ) . '">' . __( 'this server', 'hmbkp' ) . '</span>';
81
  $server = '<code>' . esc_attr( str_replace( $schedule->get_home_path(), '', hmbkp_path() ) ) . '</code>';
82
 
83
  // Backup to keep
@@ -85,19 +85,19 @@ switch ( $schedule->get_max_backups() ) :
85
 
86
  case 1 :
87
 
88
- $backup_to_keep = sprintf( __( 'store the most recent backup in %s', 'hmbkp' ), $server );
89
 
90
  break;
91
 
92
  case 0 :
93
 
94
- $backup_to_keep = sprintf( __( 'don\'t store any backups in on this server', 'hmbkp' ), hmbkp_path() );
95
 
96
  break;
97
 
98
  default :
99
 
100
- $backup_to_keep = sprintf( __( 'store the last %1$s backups in %2$s', 'hmbkp' ), esc_html( $schedule->get_max_backups() ), $server );
101
 
102
  endswitch;
103
 
@@ -125,14 +125,14 @@ if ( ! empty( $services ) && count( $services ) > 1 ) {
125
 
126
  <div class="hmbkp-schedule-sentence<?php if ( $schedule->get_status() ) { ?> hmbkp-running<?php } ?>">
127
 
128
- <?php $sentence = sprintf( _x( 'Backup my %1$s %2$s %3$s, %4$s.', '1: Backup Type 2: Total size of backup 3: Schedule 4: Number of backups to store', 'hmbkp' ), '<span>' . $type . '</span>', $filesize, $reoccurrence, $backup_to_keep );
129
 
130
  if ( $email_msg ) {
131
- $sentence .= sprintf( __( '%s. ', 'hmbkp' ), $email_msg );
132
  }
133
 
134
  if ( $services ) {
135
- $sentence .= sprintf( __( 'Send a copy of each backup to %s.', 'hmbkp' ), implode( ', ', array_filter( $services ) ) );
136
  }
137
 
138
  echo $sentence; ?>
7
  $cached = true;
8
  }
9
 
10
+ $filesize = $cached ? '(<code title="' . __( 'Backups will be compressed and should be smaller than this.', 'backupwordpress' ) . '">' . esc_attr( $schedule->get_formatted_site_size() ) . '</code>)' : '(<code class="calculating" title="' . __( 'this shouldn\'t take long&hellip;', 'backupwordpress' ) . '">' . __( 'calculating the size of your backup&hellip;', 'backupwordpress' ) . '</code>)';
11
 
12
  if ( isset( $_GET['hmbkp_add_schedule'] ) ) {
13
  $filesize = '';
19
  // Backup Time
20
  $day = date_i18n( 'l', $schedule->get_next_occurrence( false ) );
21
 
22
+ $next_backup = 'title="' . esc_attr( sprintf( __( 'The next backup will be on %1$s at %2$s %3$s', 'backupwordpress' ), date_i18n( get_option( 'date_format' ), $schedule->get_next_occurrence( false ) ), date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ), date_i18n( 'T', $schedule->get_next_occurrence( false ) ) ) ) . '"';
23
 
24
  // Backup Re-occurrence
25
  switch ( $schedule->get_reoccurrence() ) :
26
 
27
  case 'hmbkp_hourly' :
28
 
29
+ $reoccurrence = date_i18n( 'i', $schedule->get_next_occurrence( false ) ) === '00' ? '<span ' . $next_backup . '>' . __( 'hourly on the hour', 'backupwordpress' ) . '</span>' : sprintf( __( 'hourly at %s minutes past the hour', 'backupwordpress' ), '<span ' . $next_backup . '>' . intval( date_i18n( 'i', $schedule->get_next_occurrence( false ) ) ) ) . '</span>';
30
 
31
  break;
32
 
33
  case 'hmbkp_daily' :
34
 
35
+ $reoccurrence = sprintf( __( 'daily at %s', 'backupwordpress' ), '<span ' . $next_backup . '>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
36
 
37
  break;
38
 
43
 
44
  sort( $times );
45
 
46
+ $reoccurrence = sprintf( __( 'every 12 hours at %1$s &amp; %2$s', 'backupwordpress' ), '<span ' . $next_backup . '>' . esc_html( reset( $times ) ) . '</span>', '<span>' . esc_html( end( $times ) ) ) . '</span>';
47
 
48
  break;
49
 
50
  case 'hmbkp_weekly' :
51
 
52
+ $reoccurrence = sprintf( __( 'weekly on %1$s at %2$s', 'backupwordpress' ), '<span ' . $next_backup . '>' .esc_html( $day ) . '</span>', '<span>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
53
 
54
  break;
55
 
56
  case 'hmbkp_fortnightly' :
57
 
58
+ $reoccurrence = sprintf( __( 'biweekly on %1$s at %2$s', 'backupwordpress' ), '<span ' . $next_backup . '>' . $day . '</span>', '<span>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
59
 
60
  break;
61
 
62
  case 'hmbkp_monthly' :
63
 
64
+ $reoccurrence = sprintf( __( 'on the %1$s of each month at %2$s', 'backupwordpress' ), '<span ' . $next_backup . '>' . esc_html( date_i18n( 'jS', $schedule->get_next_occurrence( false ) ) ) . '</span>', '<span>' . esc_html( date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '</span>' );
65
 
66
  break;
67
 
68
  case 'manually' :
69
 
70
+ $reoccurrence = __( 'manually', 'backupwordpress' );
71
 
72
  break;
73
 
77
 
78
  endswitch;
79
 
80
+ $server = '<span title="' . esc_attr( hmbkp_path() ) . '">' . __( 'this server', 'backupwordpress' ) . '</span>';
81
  $server = '<code>' . esc_attr( str_replace( $schedule->get_home_path(), '', hmbkp_path() ) ) . '</code>';
82
 
83
  // Backup to keep
85
 
86
  case 1 :
87
 
88
+ $backup_to_keep = sprintf( __( 'store the most recent backup in %s', 'backupwordpress' ), $server );
89
 
90
  break;
91
 
92
  case 0 :
93
 
94
+ $backup_to_keep = sprintf( __( 'don\'t store any backups in on this server', 'backupwordpress' ), hmbkp_path() );
95
 
96
  break;
97
 
98
  default :
99
 
100
+ $backup_to_keep = sprintf( __( 'store the last %1$s backups in %2$s', 'backupwordpress' ), esc_html( $schedule->get_max_backups() ), $server );
101
 
102
  endswitch;
103
 
125
 
126
  <div class="hmbkp-schedule-sentence<?php if ( $schedule->get_status() ) { ?> hmbkp-running<?php } ?>">
127
 
128
+ <?php $sentence = sprintf( _x( 'Backup my %1$s %2$s %3$s, %4$s.', '1: Backup Type 2: Total size of backup 3: Schedule 4: Number of backups to store', 'backupwordpress' ), '<span>' . $type . '</span>', $filesize, $reoccurrence, $backup_to_keep );
129
 
130
  if ( $email_msg ) {
131
+ $sentence .= sprintf( __( '%s. ', 'backupwordpress' ), $email_msg );
132
  }
133
 
134
  if ( $services ) {
135
+ $sentence .= sprintf( __( 'Send a copy of each backup to %s.', 'backupwordpress' ), implode( ', ', array_filter( $services ) ) );
136
  }
137
 
138
  echo $sentence; ?>
admin/schedule-settings.php CHANGED
@@ -2,15 +2,15 @@
2
 
3
  <div class="hmbkp-schedule-actions row-actions">
4
 
5
- <a class="hmbkp-run" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_run_schedule', 'hmbkp_schedule_id' => $schedule->get_id() ), hmbkp_get_settings_url() ) ), 'hmbkp-run-schedule' ); ?>"><?php _e( 'Run now', 'hmbkp' ); ?></a> |
6
 
7
- <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'hmbkp_edit_schedule', 'hmbkp_panel' => 'hmbkp_edit_schedule_settings', 'hmbkp_schedule_id' => $schedule->get_id() ), hmbkp_get_settings_url() ), 'hmbkp-edit-schedule' ); ?>"><?php _e( 'Settings', 'hmbkp' ); ?></a> |
8
 
9
  <?php
10
 
11
  // Only show excludes if we are backing up files
12
  if ( 'database' !== $schedule->get_type() ) : ?>
13
- <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'hmbkp_edit_schedule', 'hmbkp_panel' => 'hmbkp_edit_schedule_excludes', 'hmbkp_schedule_id' => $schedule->get_id() ), hmbkp_get_settings_url() ) ); ?>"><?php _e( 'Excludes', 'hmbkp' ); ?></a> |
14
  <?php endif; ?>
15
 
16
  <?php foreach ( HMBKP_Services::get_services( $schedule ) as $service ) :
@@ -22,7 +22,7 @@
22
 
23
  <?php endforeach; ?>
24
 
25
- <a class="delete-action" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_request_delete_schedule', 'hmbkp_schedule_id' => $schedule->get_id() ), admin_url( 'admin-post.php' ) ), 'hmbkp_delete_schedule', 'hmbkp_delete_schedule_nonce' ) ); ?>"><?php _e( 'Delete', 'hmbkp' ); ?></a>
26
 
27
  </div>
28
 
@@ -76,7 +76,7 @@
76
 
77
  <?php $service->form(); ?>
78
 
79
- <?php submit_button( __( 'Done', 'hmbkp' ) ); ?>
80
 
81
  </form>
82
 
2
 
3
  <div class="hmbkp-schedule-actions row-actions">
4
 
5
+ <a class="hmbkp-run" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_run_schedule', 'hmbkp_schedule_id' => $schedule->get_id() ), hmbkp_get_settings_url() ) ), 'hmbkp-run-schedule' ); ?>"><?php _e( 'Run now', 'backupwordpress' ); ?></a> |
6
 
7
+ <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'hmbkp_edit_schedule', 'hmbkp_panel' => 'hmbkp_edit_schedule_settings', 'hmbkp_schedule_id' => $schedule->get_id() ), hmbkp_get_settings_url() ), 'hmbkp-edit-schedule' ); ?>"><?php _e( 'Settings', 'backupwordpress' ); ?></a> |
8
 
9
  <?php
10
 
11
  // Only show excludes if we are backing up files
12
  if ( 'database' !== $schedule->get_type() ) : ?>
13
+ <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'hmbkp_edit_schedule', 'hmbkp_panel' => 'hmbkp_edit_schedule_excludes', 'hmbkp_schedule_id' => $schedule->get_id() ), hmbkp_get_settings_url() ) ); ?>"><?php _e( 'Excludes', 'backupwordpress' ); ?></a> |
14
  <?php endif; ?>
15
 
16
  <?php foreach ( HMBKP_Services::get_services( $schedule ) as $service ) :
22
 
23
  <?php endforeach; ?>
24
 
25
+ <a class="delete-action" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_request_delete_schedule', 'hmbkp_schedule_id' => $schedule->get_id() ), admin_url( 'admin-post.php' ) ), 'hmbkp_delete_schedule', 'hmbkp_delete_schedule_nonce' ) ); ?>"><?php _e( 'Delete', 'backupwordpress' ); ?></a>
26
 
27
  </div>
28
 
76
 
77
  <?php $service->form(); ?>
78
 
79
+ <?php submit_button( __( 'Done', 'backupwordpress' ) ); ?>
80
 
81
  </form>
82
 
backdrop/server.php CHANGED
@@ -3,12 +3,12 @@
3
  class HM_Backdrop_Server {
4
  public function run() {
5
  if ( empty( $_POST['key'] ) ) {
6
- return new WP_Error( 'hm_backdrop_no_key', __( 'No key supplied', 'hm_backdrop' ) );
7
  }
8
 
9
  $data = get_transient( 'hm_backdrop-' . $_POST['key'] );
10
  if ( empty( $data ) ) {
11
- return new WP_Error( 'hm_backdrop_invalid_key', __( 'Supplied key was not valid', 'hm_backdrop' ) );
12
  }
13
 
14
  $result = call_user_func_array( $data['callback'], $data['params'] );
3
  class HM_Backdrop_Server {
4
  public function run() {
5
  if ( empty( $_POST['key'] ) ) {
6
+ return new WP_Error( 'hm_backdrop_no_key', __( 'No key supplied', 'backupwordpress' ) );
7
  }
8
 
9
  $data = get_transient( 'hm_backdrop-' . $_POST['key'] );
10
  if ( empty( $data ) ) {
11
+ return new WP_Error( 'hm_backdrop_invalid_key', __( 'Supplied key was not valid', 'backupwordpress' ) );
12
  }
13
 
14
  $result = call_user_func_array( $data['callback'], $data['params'] );
backdrop/task.php CHANGED
@@ -19,7 +19,7 @@ class HM_Backdrop_Task {
19
  public function schedule() {
20
 
21
  if ( $this->is_scheduled() ) {
22
- return new WP_Error( 'hm_backdrop_scheduled', __( 'Task is already scheduled to run', 'hm_backdrop' ) );
23
  }
24
 
25
  $data = array(
@@ -38,7 +38,7 @@ class HM_Backdrop_Task {
38
 
39
  public function cancel() {
40
  if ( ! $this->is_scheduled() ) {
41
- return new WP_Error( 'hm_backdrop_not_scheduled', __( 'Task is not scheduled to run', 'hm_backdrop' ) );
42
  }
43
 
44
  delete_transient( 'hm_backdrop-' . $this->key );
19
  public function schedule() {
20
 
21
  if ( $this->is_scheduled() ) {
22
+ return new WP_Error( 'hm_backdrop_scheduled', __( 'Task is already scheduled to run', 'backupwordpress' ) );
23
  }
24
 
25
  $data = array(
38
 
39
  public function cancel() {
40
  if ( ! $this->is_scheduled() ) {
41
+ return new WP_Error( 'hm_backdrop_not_scheduled', __( 'Task is not scheduled to run', 'backupwordpress' ) );
42
  }
43
 
44
  delete_transient( 'hm_backdrop-' . $this->key );
backupwordpress.php CHANGED
@@ -5,7 +5,7 @@ Plugin Name: BackUpWordPress
5
  Plugin URI: http://bwp.hmn.md/
6
  Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools &rarr; Backups</strong>.
7
  Author: Human Made Limited
8
- * Version: 3.0.2
9
  Author URI: http://hmn.md/
10
  License: GPL-2.0+
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.txt
@@ -180,12 +180,12 @@ function hmbkp_load_scripts() {
180
  'page_slug' => HMBKP_PLUGIN_SLUG,
181
  'nonce' => wp_create_nonce( 'hmbkp_nonce' ),
182
  'hmbkp_run_schedule_nonce' => wp_create_nonce( 'hmbkp_run_schedule' ),
183
- 'update' => __( 'Update', 'hmbkp' ),
184
- 'cancel' => __( 'Cancel', 'hmbkp' ),
185
- 'delete_schedule' => __( 'Are you sure you want to delete this schedule? All of it\'s backups will also be deleted.', 'hmbkp' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'hmbkp' ) . "\n",
186
- 'delete_backup' => __( 'Are you sure you want to delete this backup?', 'hmbkp' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'hmbkp' ) . "\n",
187
- 'remove_exclude_rule' => __( 'Are you sure you want to remove this exclude rule?', 'hmbkp' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'hmbkp' ) . "\n",
188
- 'remove_old_backups' => __( 'Reducing the number of backups that are stored on this server will cause some of your existing backups to be deleted, are you sure that\'s what you want?', 'hmbkp' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'hmbkp' ) . "\n"
189
  )
190
  );
191
 
@@ -280,7 +280,7 @@ add_action( 'hmbkp_schedule_hook', 'hmbkp_schedule_hook_run' );
280
  function hmbkp_plugin_textdomain() {
281
 
282
  // Set unique textdomain string
283
- $textdomain = 'hmbkp';
284
 
285
  // The 'plugin_locale' filter is also used by default in load_plugin_textdomain()
286
  $locale = apply_filters( 'plugin_locale', get_locale(), $textdomain );
@@ -310,7 +310,7 @@ function hmbkp_display_server_info_tab() {
310
 
311
  get_current_screen()->add_help_tab(
312
  array(
313
- 'title' => __( 'Server Info', 'hmbkp' ),
314
  'id' => 'hmbkp_server',
315
  'content' => $info,
316
  )
@@ -359,7 +359,7 @@ function hmbkp_maybe_self_deactivate() {
359
  if ( 'plugins_loaded' === current_action() ) {
360
  add_action( 'admin_notices', 'hmbkp_display_admin_notices' );
361
  } else {
362
- wp_die( hmbkp_get_notice_message(), __( 'BackUpWordPress', 'hmbkp' ), array( 'back_link' => true ) );
363
  }
364
  }
365
 
@@ -383,7 +383,7 @@ function hmbkp_display_admin_notices() {
383
  function hmbkp_get_notice_message() {
384
 
385
  return sprintf(
386
- __( 'BackUpWordPress requires PHP version %1$s or later. It is not active. %2$s%3$s%4$sLearn more%5$s', 'hmbkp' ),
387
  HMBKP_REQUIRED_PHP_VERSION,
388
  '<a href="',
389
  'https://bwp.hmn.md/unsupported-php-version-error/',
5
  Plugin URI: http://bwp.hmn.md/
6
  Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools &rarr; Backups</strong>.
7
  Author: Human Made Limited
8
+ Version: 3.0.3
9
  Author URI: http://hmn.md/
10
  License: GPL-2.0+
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.txt
180
  'page_slug' => HMBKP_PLUGIN_SLUG,
181
  'nonce' => wp_create_nonce( 'hmbkp_nonce' ),
182
  'hmbkp_run_schedule_nonce' => wp_create_nonce( 'hmbkp_run_schedule' ),
183
+ 'update' => __( 'Update', 'backupwordpress' ),
184
+ 'cancel' => __( 'Cancel', 'backupwordpress' ),
185
+ 'delete_schedule' => __( 'Are you sure you want to delete this schedule? All of it\'s backups will also be deleted.', 'backupwordpress' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'backupwordpress' ) . "\n",
186
+ 'delete_backup' => __( 'Are you sure you want to delete this backup?', 'backupwordpress' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'backupwordpress' ) . "\n",
187
+ 'remove_exclude_rule' => __( 'Are you sure you want to remove this exclude rule?', 'backupwordpress' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'backupwordpress' ) . "\n",
188
+ 'remove_old_backups' => __( 'Reducing the number of backups that are stored on this server will cause some of your existing backups to be deleted, are you sure that\'s what you want?', 'backupwordpress' ) . "\n\n" . __( '\'Cancel\' to go back, \'OK\' to delete.', 'backupwordpress' ) . "\n"
189
  )
190
  );
191
 
280
  function hmbkp_plugin_textdomain() {
281
 
282
  // Set unique textdomain string
283
+ $textdomain = 'backupwordpress';
284
 
285
  // The 'plugin_locale' filter is also used by default in load_plugin_textdomain()
286
  $locale = apply_filters( 'plugin_locale', get_locale(), $textdomain );
310
 
311
  get_current_screen()->add_help_tab(
312
  array(
313
+ 'title' => __( 'Server Info', 'backupwordpress' ),
314
  'id' => 'hmbkp_server',
315
  'content' => $info,
316
  )
359
  if ( 'plugins_loaded' === current_action() ) {
360
  add_action( 'admin_notices', 'hmbkp_display_admin_notices' );
361
  } else {
362
+ wp_die( hmbkp_get_notice_message(), __( 'BackUpWordPress', 'backupwordpress' ), array( 'back_link' => true ) );
363
  }
364
  }
365
 
383
  function hmbkp_get_notice_message() {
384
 
385
  return sprintf(
386
+ __( 'BackUpWordPress requires PHP version %1$s or later. It is not active. %2$s%3$s%4$sLearn more%5$s', 'backupwordpress' ),
387
  HMBKP_REQUIRED_PHP_VERSION,
388
  '<a href="',
389
  'https://bwp.hmn.md/unsupported-php-version-error/',
classes/class-email.php CHANGED
@@ -23,13 +23,13 @@ class HMBKP_Email_Service extends HMBKP_Service {
23
  <tr>
24
 
25
  <th scope="row">
26
- <label for="<?php echo esc_attr( $this->get_field_name( 'email' ) ); ?>"><?php _e( 'Email notification', 'hmbkp' ); ?></label>
27
  </th>
28
 
29
  <td>
30
  <input type="email" id="<?php echo esc_attr( $this->get_field_name( 'email' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'email' ) ); ?>" value="<?php echo esc_attr( $this->get_field_value( 'email' ) ); ?>" placeholder="name@youremail.com" />
31
 
32
- <p class="description"><?php printf( __( 'Receive a notification email when a backup completes, if the backup is small enough (&lt; %s) then it will be attached to the email. Separate multiple email addresses with a comma.', 'hmbkp' ), '<code>' . size_format( hmbkp_get_max_attachment_size() ) . '</code>' ); ?></p>
33
  </td>
34
 
35
  </tr>
@@ -55,10 +55,10 @@ class HMBKP_Email_Service extends HMBKP_Service {
55
  <td>
56
 
57
  <?php if ( defined( 'HMBKP_ATTACHMENT_MAX_FILESIZE' ) ) { ?>
58
- <p><?php printf( __( 'You\'ve set it to: %s', 'hmbkp' ), '<code>' . HMBKP_ATTACHMENT_MAX_FILESIZE . '</code>' ); ?></p>
59
  <?php } ?>
60
 
61
- <p><?php printf( __( 'The maximum filesize of your backup that will be attached to your notification emails . Defaults to %s.', 'hmbkp' ), '<code>10MB</code>' ); ?> <?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_ATTACHMENT_MAX_FILESIZE', '25MB' );</code></p>
62
 
63
  </td>
64
 
@@ -77,7 +77,7 @@ class HMBKP_Email_Service extends HMBKP_Service {
77
 
78
  $email = '<code>' . implode( '</code>, <code>', array_map( 'esc_html', $emails ) ) . '</code>';
79
 
80
- return sprintf( __( 'Send an email notification to %s', 'hmbkp' ), $email );
81
 
82
  }
83
 
@@ -112,7 +112,7 @@ class HMBKP_Email_Service extends HMBKP_Service {
112
  $email = trim( $email );
113
 
114
  if ( ! is_email( $email ) ) {
115
- $errors['email'] = sprintf( __( '%s isn\'t a valid email', 'hmbkp' ), $email );
116
  }
117
 
118
  }
@@ -172,9 +172,9 @@ class HMBKP_Email_Service extends HMBKP_Service {
172
  if ( $error_message )
173
  $error_message = ' - ' . $error_message;
174
 
175
- $subject = sprintf( __( 'Backup of %s Failed', 'hmbkp' ), $domain );
176
 
177
- $message = sprintf( __( 'BackUpWordPress was unable to backup your site %1$s.', 'hmbkp' ) . "\n\n" . __( 'Here are the errors that we\'re encountered:', 'hmbkp' ) . "\n\n" . '%2$s' . "\n\n" . __( 'If the errors above look like Martian, forward this email to %3$s and we\'ll take a look', 'hmbkp' ) . "\n\n" . __( "Kind Regards,\nThe Apologetic BackUpWordPress Backup Emailing Robot", 'hmbkp' ), home_url(), $error_message, 'support@hmn.md' );
178
 
179
  wp_mail( $this->get_email_address_array(), $subject, $message, $headers );
180
 
@@ -182,12 +182,12 @@ class HMBKP_Email_Service extends HMBKP_Service {
182
 
183
  }
184
 
185
- $subject = sprintf( __( 'Backup of %s', 'hmbkp' ), $domain );
186
 
187
  // If it's larger than the max attachment size limit assume it's not going to be able to send the backup
188
  if ( @filesize( $file ) < hmbkp_get_max_attachment_size() ) {
189
 
190
- $message = sprintf( __( 'BackUpWordPress has completed a backup of your site %1$s.', 'hmbkp' ) . "\n\n" . __( 'The backup file should be attached to this email.', 'hmbkp' ) . "\n\n" . __( 'You can download the backup file by clicking the link below:', 'hmbkp' ) . "\n\n" . '%2$s' . "\n\n" . __( "Kind Regards,\nThe Happy BackUpWordPress Backup Emailing Robot", 'hmbkp' ), home_url(), $download );
191
 
192
  $sent = wp_mail( $this->get_email_address_array(), $subject, $message, $headers, $file );
193
 
@@ -196,7 +196,7 @@ class HMBKP_Email_Service extends HMBKP_Service {
196
  // If we didn't send the email above then send just the notification
197
  if ( ! $sent ) {
198
 
199
- $message = sprintf( __( 'BackUpWordPress has completed a backup of your site %1$s.', 'hmbkp' ) . "\n\n" . __( 'Unfortunately the backup file was too large to attach to this email.', 'hmbkp' ) . "\n\n" . __( 'You can download the backup file by clicking the link below:', 'hmbkp' ) . "\n\n" . '%2$s' . "\n\n" . __( "Kind Regards,\nThe Happy BackUpWordPress Backup Emailing Robot", 'hmbkp' ), home_url(), $download );
200
 
201
  wp_mail( $this->get_email_address_array(), $subject, $message, $headers );
202
 
23
  <tr>
24
 
25
  <th scope="row">
26
+ <label for="<?php echo esc_attr( $this->get_field_name( 'email' ) ); ?>"><?php _e( 'Email notification', 'backupwordpress' ); ?></label>
27
  </th>
28
 
29
  <td>
30
  <input type="email" id="<?php echo esc_attr( $this->get_field_name( 'email' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'email' ) ); ?>" value="<?php echo esc_attr( $this->get_field_value( 'email' ) ); ?>" placeholder="name@youremail.com" />
31
 
32
+ <p class="description"><?php printf( __( 'Receive a notification email when a backup completes, if the backup is small enough (&lt; %s) then it will be attached to the email. Separate multiple email addresses with a comma.', 'backupwordpress' ), '<code>' . size_format( hmbkp_get_max_attachment_size() ) . '</code>' ); ?></p>
33
  </td>
34
 
35
  </tr>
55
  <td>
56
 
57
  <?php if ( defined( 'HMBKP_ATTACHMENT_MAX_FILESIZE' ) ) { ?>
58
+ <p><?php printf( __( 'You\'ve set it to: %s', 'backupwordpress' ), '<code>' . HMBKP_ATTACHMENT_MAX_FILESIZE . '</code>' ); ?></p>
59
  <?php } ?>
60
 
61
+ <p><?php printf( __( 'The maximum filesize of your backup that will be attached to your notification emails . Defaults to %s.', 'backupwordpress' ), '<code>10MB</code>' ); ?> <?php _e( 'e.g.', 'backupwordpress' ); ?> <code>define( 'HMBKP_ATTACHMENT_MAX_FILESIZE', '25MB' );</code></p>
62
 
63
  </td>
64
 
77
 
78
  $email = '<code>' . implode( '</code>, <code>', array_map( 'esc_html', $emails ) ) . '</code>';
79
 
80
+ return sprintf( __( 'Send an email notification to %s', 'backupwordpress' ), $email );
81
 
82
  }
83
 
112
  $email = trim( $email );
113
 
114
  if ( ! is_email( $email ) ) {
115
+ $errors['email'] = sprintf( __( '%s isn\'t a valid email', 'backupwordpress' ), $email );
116
  }
117
 
118
  }
172
  if ( $error_message )
173
  $error_message = ' - ' . $error_message;
174
 
175
+ $subject = sprintf( __( 'Backup of %s Failed', 'backupwordpress' ), $domain );
176
 
177
+ $message = sprintf( __( 'BackUpWordPress was unable to backup your site %1$s.', 'backupwordpress' ) . "\n\n" . __( 'Here are the errors that we\'re encountered:', 'backupwordpress' ) . "\n\n" . '%2$s' . "\n\n" . __( 'If the errors above look like Martian, forward this email to %3$s and we\'ll take a look', 'backupwordpress' ) . "\n\n" . __( "Kind Regards,\nThe Apologetic BackUpWordPress Backup Emailing Robot", 'backupwordpress' ), home_url(), $error_message, 'support@hmn.md' );
178
 
179
  wp_mail( $this->get_email_address_array(), $subject, $message, $headers );
180
 
182
 
183
  }
184
 
185
+ $subject = sprintf( __( 'Backup of %s', 'backupwordpress' ), $domain );
186
 
187
  // If it's larger than the max attachment size limit assume it's not going to be able to send the backup
188
  if ( @filesize( $file ) < hmbkp_get_max_attachment_size() ) {
189
 
190
+ $message = sprintf( __( 'BackUpWordPress has completed a backup of your site %1$s.', 'backupwordpress' ) . "\n\n" . __( 'The backup file should be attached to this email.', 'backupwordpress' ) . "\n\n" . __( 'You can download the backup file by clicking the link below:', 'backupwordpress' ) . "\n\n" . '%2$s' . "\n\n" . __( "Kind Regards,\nThe Happy BackUpWordPress Backup Emailing Robot", 'backupwordpress' ), home_url(), $download );
191
 
192
  $sent = wp_mail( $this->get_email_address_array(), $subject, $message, $headers, $file );
193
 
196
  // If we didn't send the email above then send just the notification
197
  if ( ! $sent ) {
198
 
199
+ $message = sprintf( __( 'BackUpWordPress has completed a backup of your site %1$s.', 'backupwordpress' ) . "\n\n" . __( 'Unfortunately the backup file was too large to attach to this email.', 'backupwordpress' ) . "\n\n" . __( 'You can download the backup file by clicking the link below:', 'backupwordpress' ) . "\n\n" . '%2$s' . "\n\n" . __( "Kind Regards,\nThe Happy BackUpWordPress Backup Emailing Robot", 'backupwordpress' ), home_url(), $download );
200
 
201
  wp_mail( $this->get_email_address_array(), $subject, $message, $headers );
202
 
classes/class-schedule.php CHANGED
@@ -242,7 +242,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
242
  public function set_max_backups( $max ) {
243
 
244
  if ( empty( $max ) || ! is_int( $max ) ) {
245
- return new WP_Error( 'hmbkp_invalid_type_error', sprintf( __( 'Argument 1 for %s must be a valid integer', 'hmbkp' ), __METHOD__ ) );
246
  }
247
 
248
  $this->options['max_backups'] = $max;
@@ -465,7 +465,13 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
465
  $files = $this->get_files();
466
 
467
  foreach ( $files as $file ) {
468
- $directory_sizes[ $file->getPathname() ] = $file->getSize();
 
 
 
 
 
 
469
  }
470
 
471
  set_transient( 'hmbkp_directory_filesizes', $directory_sizes, DAY_IN_SECONDS );
@@ -494,7 +500,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
494
  }
495
 
496
  // If it's a file then just pass back the filesize
497
- if ( $file->isFile() ) {
498
  return $file->getSize();
499
  }
500
 
@@ -519,7 +525,6 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
519
 
520
  }
521
 
522
- $directory_size = 0;
523
  $current_pathname = trailingslashit( $file->getPathname() );
524
  $root = trailingslashit( $this->get_root() );
525
 
@@ -590,7 +595,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
590
 
591
  // Don't allow setting the start time in the past
592
  if ( (int) $time <= time() ) {
593
- return new WP_Error( 'hmbkp_invalid_argument_error', sprintf( __( 'Argument 1 for %s must be a valid future timestamp', 'hmbkp' ), __METHOD__ ) );
594
  }
595
 
596
  $this->options['schedule_start_time'] = $time;
@@ -628,7 +633,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
628
 
629
  // Check it's valid
630
  if ( ! is_string( $reoccurrence ) || ! trim( $reoccurrence ) || ( ! in_array( $reoccurrence, array_keys( $hmbkp_schedules ) ) ) && 'manually' !== $reoccurrence ) {
631
- return new WP_Error( 'hmbkp_invalid_argument_error', sprintf( __( 'Argument 1 for %s must be a valid cron reoccurrence or "manually"', 'hmbkp' ), __METHOD__ ) );
632
  }
633
 
634
  // If the recurrence is already set to the same thing then there's no need to continue
@@ -763,7 +768,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
763
  }
764
 
765
  // Mark the backup as started
766
- $this->set_status( __( 'Starting Backup', 'hmbkp' ) );
767
 
768
  // Delete old backups now in-case we fatal error during the backup process
769
  $this->delete_old_backups();
@@ -893,27 +898,27 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
893
 
894
  case 'hmbkp_mysqldump_started' :
895
 
896
- $this->set_status( sprintf( __( 'Dumping Database %s', 'hmbkp' ), '(<code>' . $this->get_mysqldump_method() . '</code>)' ) );
897
  break;
898
 
899
  case 'hmbkp_mysqldump_verify_started' :
900
 
901
- $this->set_status( sprintf( __( 'Verifying Database Dump %s', 'hmbkp' ), '(<code>' . $this->get_mysqldump_method() . '</code>)' ) );
902
  break;
903
 
904
  case 'hmbkp_archive_started' :
905
 
906
- $this->set_status( sprintf( __( 'Creating zip archive %s', 'hmbkp' ), '(<code>' . $this->get_archive_method() . '</code>)' ) );
907
  break;
908
 
909
  case 'hmbkp_archive_verify_started' :
910
 
911
- $this->set_status( sprintf( __( 'Verifying Zip Archive %s', 'hmbkp' ), '(<code>' . $this->get_archive_method() . '</code>)' ) );
912
  break;
913
 
914
  case 'hmbkp_backup_complete' :
915
 
916
- $this->set_status( __( 'Finishing Backup', 'hmbkp' ) );
917
  break;
918
 
919
  case 'hmbkp_error' :
@@ -1022,17 +1027,17 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
1022
 
1023
  // Check that it's a valid filepath
1024
  if ( empty( $filepath ) || ! is_string( $filepath ) ) {
1025
- return new WP_Error( 'hmbkp_empty_string_error', sprintf( __( 'Argument 1 for %s must be a non empty string', 'hmbkp' ), __METHOD__ ) );
1026
  }
1027
 
1028
  // Make sure it exists
1029
  if ( ! file_exists( $filepath ) ) {
1030
- return new WP_Error( 'hmbkp_file_error', sprintf( __( '%s doesn\'t exist', 'hmbkp' ), $filepath ) );
1031
  }
1032
 
1033
  // Make sure it was created by this schedule
1034
  if ( strpos( $filepath, $this->get_id() ) === false ) {
1035
- return new WP_Error( 'hmbkp_backup_error', __( 'That backup wasn\'t created by this schedule', 'hmbkp' ) );
1036
  }
1037
 
1038
  unlink( $filepath );
242
  public function set_max_backups( $max ) {
243
 
244
  if ( empty( $max ) || ! is_int( $max ) ) {
245
+ return new WP_Error( 'hmbkp_invalid_type_error', sprintf( __( 'Argument 1 for %s must be a valid integer', 'backupwordpress' ), __METHOD__ ) );
246
  }
247
 
248
  $this->options['max_backups'] = $max;
465
  $files = $this->get_files();
466
 
467
  foreach ( $files as $file ) {
468
+
469
+ if ( $file->isReadable() ) {
470
+ $directory_sizes[ $file->getPathname() ] = $file->getSize();
471
+ } else {
472
+ $directory_sizes[ $file->getPathname() ] = 0;
473
+ }
474
+
475
  }
476
 
477
  set_transient( 'hmbkp_directory_filesizes', $directory_sizes, DAY_IN_SECONDS );
500
  }
501
 
502
  // If it's a file then just pass back the filesize
503
+ if ( $file->isFile() && $file->isReadable() ) {
504
  return $file->getSize();
505
  }
506
 
525
 
526
  }
527
 
 
528
  $current_pathname = trailingslashit( $file->getPathname() );
529
  $root = trailingslashit( $this->get_root() );
530
 
595
 
596
  // Don't allow setting the start time in the past
597
  if ( (int) $time <= time() ) {
598
+ return new WP_Error( 'hmbkp_invalid_argument_error', sprintf( __( 'Argument 1 for %s must be a valid future timestamp', 'backupwordpress' ), __METHOD__ ) );
599
  }
600
 
601
  $this->options['schedule_start_time'] = $time;
633
 
634
  // Check it's valid
635
  if ( ! is_string( $reoccurrence ) || ! trim( $reoccurrence ) || ( ! in_array( $reoccurrence, array_keys( $hmbkp_schedules ) ) ) && 'manually' !== $reoccurrence ) {
636
+ return new WP_Error( 'hmbkp_invalid_argument_error', sprintf( __( 'Argument 1 for %s must be a valid cron reoccurrence or "manually"', 'backupwordpress' ), __METHOD__ ) );
637
  }
638
 
639
  // If the recurrence is already set to the same thing then there's no need to continue
768
  }
769
 
770
  // Mark the backup as started
771
+ $this->set_status( __( 'Starting Backup', 'backupwordpress' ) );
772
 
773
  // Delete old backups now in-case we fatal error during the backup process
774
  $this->delete_old_backups();
898
 
899
  case 'hmbkp_mysqldump_started' :
900
 
901
+ $this->set_status( sprintf( __( 'Dumping Database %s', 'backupwordpress' ), '(<code>' . $this->get_mysqldump_method() . '</code>)' ) );
902
  break;
903
 
904
  case 'hmbkp_mysqldump_verify_started' :
905
 
906
+ $this->set_status( sprintf( __( 'Verifying Database Dump %s', 'backupwordpress' ), '(<code>' . $this->get_mysqldump_method() . '</code>)' ) );
907
  break;
908
 
909
  case 'hmbkp_archive_started' :
910
 
911
+ $this->set_status( sprintf( __( 'Creating zip archive %s', 'backupwordpress' ), '(<code>' . $this->get_archive_method() . '</code>)' ) );
912
  break;
913
 
914
  case 'hmbkp_archive_verify_started' :
915
 
916
+ $this->set_status( sprintf( __( 'Verifying Zip Archive %s', 'backupwordpress' ), '(<code>' . $this->get_archive_method() . '</code>)' ) );
917
  break;
918
 
919
  case 'hmbkp_backup_complete' :
920
 
921
+ $this->set_status( __( 'Finishing Backup', 'backupwordpress' ) );
922
  break;
923
 
924
  case 'hmbkp_error' :
1027
 
1028
  // Check that it's a valid filepath
1029
  if ( empty( $filepath ) || ! is_string( $filepath ) ) {
1030
+ return new WP_Error( 'hmbkp_empty_string_error', sprintf( __( 'Argument 1 for %s must be a non empty string', 'backupwordpress' ), __METHOD__ ) );
1031
  }
1032
 
1033
  // Make sure it exists
1034
  if ( ! file_exists( $filepath ) ) {
1035
+ return new WP_Error( 'hmbkp_file_error', sprintf( __( '%s doesn\'t exist', 'backupwordpress' ), $filepath ) );
1036
  }
1037
 
1038
  // Make sure it was created by this schedule
1039
  if ( strpos( $filepath, $this->get_id() ) === false ) {
1040
+ return new WP_Error( 'hmbkp_backup_error', __( 'That backup wasn\'t created by this schedule', 'backupwordpress' ) );
1041
  }
1042
 
1043
  unlink( $filepath );
classes/class-services.php CHANGED
@@ -275,7 +275,7 @@ class HMBKP_Services {
275
  public static function register( $filepath, $classname ) {
276
 
277
  if ( ! file_exists( $filepath ) )
278
- return new WP_Error( 'hmbkp_invalid_path_error', sprintf( __( 'Argument 1 for %s must be a valid filepath', ' hmbkp' ), __METHOD__ ) );
279
 
280
  self::instance()->services[ $filepath ] = $classname;
281
 
@@ -290,7 +290,7 @@ class HMBKP_Services {
290
  public static function unregister( $filepath ) {
291
 
292
  if ( ! isset( self::instance()->services[ $filepath ] ) )
293
- return new WP_Error( 'hmbkp_unrecognized_service_error', sprintf( __( 'Argument 1 for %s must be a registered service', ' hmbkp' ), __METHOD__ ) );
294
 
295
  unset( self::instance()->services[ $filepath ] );
296
 
@@ -307,7 +307,7 @@ class HMBKP_Services {
307
  private static function instantiate( $classname ) {
308
 
309
  if ( ! class_exists( $classname ) )
310
- return new WP_Error( 'hmbkp_invalid_type_error', sprintf( __( 'Argument 1 for %s must be a valid class', 'hmbkp' ) ), __METHOD__ );
311
 
312
  /**
313
  * @var HMBKP_Service
275
  public static function register( $filepath, $classname ) {
276
 
277
  if ( ! file_exists( $filepath ) )
278
+ return new WP_Error( 'hmbkp_invalid_path_error', sprintf( __( 'Argument 1 for %s must be a valid filepath', 'backupwordpress' ), __METHOD__ ) );
279
 
280
  self::instance()->services[ $filepath ] = $classname;
281
 
290
  public static function unregister( $filepath ) {
291
 
292
  if ( ! isset( self::instance()->services[ $filepath ] ) )
293
+ return new WP_Error( 'hmbkp_unrecognized_service_error', sprintf( __( 'Argument 1 for %s must be a registered service', 'backupwordpress' ), __METHOD__ ) );
294
 
295
  unset( self::instance()->services[ $filepath ] );
296
 
307
  private static function instantiate( $classname ) {
308
 
309
  if ( ! class_exists( $classname ) )
310
+ return new WP_Error( 'hmbkp_invalid_type_error', sprintf( __( 'Argument 1 for %s must be a valid class', 'backupwordpress' ) ), __METHOD__ );
311
 
312
  /**
313
  * @var HMBKP_Service
classes/class-webhooks.php CHANGED
@@ -61,7 +61,7 @@ abstract class HMBKP_Webhooks_Service extends HMBKP_Service {
61
  if ( $error_message )
62
  $error_message = ' - ' . $error_message;
63
 
64
- $subject = sprintf( __( 'Backup of %s Failed', 'hmbkp' ), $domain );
65
 
66
  $body = array (
67
  'type' => 'backup.error',
@@ -105,7 +105,7 @@ abstract class HMBKP_Webhooks_Service extends HMBKP_Service {
105
  $ret = wp_remote_post( $webhook_url, $webhook_args );
106
 
107
  if ( is_wp_error( $ret ) )
108
- $this->schedule->error( 'Webhook', sprintf( __( 'Error: %s', 'hmbkp' ), $ret->get_error_message() ) );
109
 
110
  }
111
  }
61
  if ( $error_message )
62
  $error_message = ' - ' . $error_message;
63
 
64
+ $subject = sprintf( __( 'Backup of %s Failed', 'backupwordpress' ), $domain );
65
 
66
  $body = array (
67
  'type' => 'backup.error',
105
  $ret = wp_remote_post( $webhook_url, $webhook_args );
106
 
107
  if ( is_wp_error( $ret ) )
108
+ $this->schedule->error( 'Webhook', sprintf( __( 'Error: %s', 'backupwordpress' ), $ret->get_error_message() ) );
109
 
110
  }
111
  }
classes/wp-cli.php CHANGED
@@ -40,14 +40,14 @@ class BackUpCommand extends WP_CLI_Command {
40
 
41
  // Make sure it's possible to do a backup
42
  if ( HM_Backup::is_safe_mode_active() )
43
- WP_CLI::error( sprintf( __( 'BackUpWordPress may not work when php is running with %s on', 'hmbkp' ), 'safe_mode' ) );
44
 
45
  add_action( 'hmbkp_mysqldump_started', function() {
46
- WP_CLI::line( __( 'Backup: Dumping database...', 'hmbkp' ) );
47
  } );
48
 
49
  add_action( 'hmbkp_archive_started', function() {
50
- WP_CLI::line( __( 'Backup: Zipping everything up...', 'hmbkp' ) );
51
  } );
52
 
53
  // Clean up any mess left by a previous backup
@@ -62,12 +62,12 @@ class BackUpCommand extends WP_CLI_Command {
62
  $hm_backup->set_root( $assoc_args['root'] );
63
 
64
  if ( ( ! is_dir( $hm_backup->get_path() ) && ( ! is_writable( dirname( $hm_backup->get_path() ) ) || ! wp_mkdir_p( $hm_backup->get_path() ) ) ) || ! is_writable( $hm_backup->get_path() ) ) {
65
- WP_CLI::error( __( 'Invalid backup path', 'hmbkp' ) );
66
  return false;
67
  }
68
 
69
  if ( ! is_dir( $hm_backup->get_root() ) || ! is_readable( $hm_backup->get_root() ) ) {
70
- WP_CLI::error( __( 'Invalid root path', 'hmbkp' ) );
71
  return false;
72
  }
73
 
@@ -92,10 +92,10 @@ class BackUpCommand extends WP_CLI_Command {
92
  //hmbkp_delete_old_backups();
93
 
94
  if ( file_exists( $hm_backup->get_archive_filepath() ) )
95
- WP_CLI::success( __( 'Backup Complete: ', 'hmbkp' ) . $hm_backup->get_archive_filepath() );
96
 
97
  else
98
- WP_CLI::error( __( 'Backup Failed', 'hmbkp' ) );
99
 
100
  }
101
 
40
 
41
  // Make sure it's possible to do a backup
42
  if ( HM_Backup::is_safe_mode_active() )
43
+ WP_CLI::error( sprintf( __( 'BackUpWordPress may not work when php is running with %s on', 'backupwordpress' ), 'safe_mode' ) );
44
 
45
  add_action( 'hmbkp_mysqldump_started', function() {
46
+ WP_CLI::line( __( 'Backup: Dumping database...', 'backupwordpress' ) );
47
  } );
48
 
49
  add_action( 'hmbkp_archive_started', function() {
50
+ WP_CLI::line( __( 'Backup: Zipping everything up...', 'backupwordpress' ) );
51
  } );
52
 
53
  // Clean up any mess left by a previous backup
62
  $hm_backup->set_root( $assoc_args['root'] );
63
 
64
  if ( ( ! is_dir( $hm_backup->get_path() ) && ( ! is_writable( dirname( $hm_backup->get_path() ) ) || ! wp_mkdir_p( $hm_backup->get_path() ) ) ) || ! is_writable( $hm_backup->get_path() ) ) {
65
+ WP_CLI::error( __( 'Invalid backup path', 'backupwordpress' ) );
66
  return false;
67
  }
68
 
69
  if ( ! is_dir( $hm_backup->get_root() ) || ! is_readable( $hm_backup->get_root() ) ) {
70
+ WP_CLI::error( __( 'Invalid root path', 'backupwordpress' ) );
71
  return false;
72
  }
73
 
92
  //hmbkp_delete_old_backups();
93
 
94
  if ( file_exists( $hm_backup->get_archive_filepath() ) )
95
+ WP_CLI::success( __( 'Backup Complete: ', 'backupwordpress' ) . $hm_backup->get_archive_filepath() );
96
 
97
  else
98
+ WP_CLI::error( __( 'Backup Failed', 'backupwordpress' ) );
99
 
100
  }
101
 
functions/core.php CHANGED
@@ -17,7 +17,7 @@ function hmbkp_activate() {
17
  deactivate_plugins( __FILE__ );
18
 
19
  if ( isset( $_GET['action'] ) && ( 'activate' === $_GET['action'] || 'error_scrape' === $_GET['action'] ) ) {
20
- wp_die( sprintf( __( 'BackUpWordPress requires WordPress version %s or greater.', 'hmbkp' ), HMBKP_REQUIRED_WP_VERSION ), __( 'BackUpWordPress', 'hmbkp' ), array( 'back_link' => true ) );
21
  }
22
  }
23
 
@@ -270,7 +270,7 @@ function hmbkp_setup_default_schedules() {
270
  $schedules->refresh_schedules();
271
 
272
  function hmbkp_default_schedules_setup_warning() {
273
- echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has setup your default schedules.', 'hmbkp' ) . '</strong> ' . __( 'By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database &amp; files. You can modify these schedules.', 'hmbkp' ) . '</p></div>';
274
  }
275
 
276
  add_action( 'admin_notices', 'hmbkp_default_schedules_setup_warning' );
@@ -287,12 +287,12 @@ add_action( 'admin_init', 'hmbkp_setup_default_schedules' );
287
  */
288
  function hmbkp_cron_schedules( $schedules ) {
289
 
290
- $schedules['hmbkp_hourly'] = array( 'interval' => HOUR_IN_SECONDS, 'display' => __( 'Once Hourly', 'hmbkp' ) );
291
- $schedules['hmbkp_twicedaily'] = array( 'interval' => 12 * HOUR_IN_SECONDS, 'display' => __( 'Twice Daily', 'hmbkp' ) );
292
- $schedules['hmbkp_daily'] = array( 'interval' => DAY_IN_SECONDS, 'display' => __( 'Once Daily', 'hmbkp' ) );
293
- $schedules['hmbkp_weekly'] = array( 'interval' => WEEK_IN_SECONDS, 'display' => __( 'Once Weekly', 'hmbkp' ) );
294
- $schedules['hmbkp_fortnightly'] = array( 'interval' => 2 * WEEK_IN_SECONDS, 'display' => __( 'Once Biweekly', 'hmbkp' ) );
295
- $schedules['hmbkp_monthly'] = array( 'interval' => 30 * DAY_IN_SECONDS, 'display' => __( 'Once Monthly', 'hmbkp' ) );
296
 
297
  return $schedules;
298
  }
@@ -310,7 +310,7 @@ add_filter( 'cron_schedules', 'hmbkp_cron_schedules' );
310
  function hmbkp_rmdirtree( $dir ) {
311
 
312
  if ( false !== strpos( HM_Backup::get_home_path(), $dir ) )
313
- return new WP_Error( 'hmbkp_invalid_action_error', sprintf( __( 'You can only delete directories inside your WordPress installation', 'hmbkp' ) ) );
314
 
315
  if ( is_file( $dir ) )
316
  @unlink( $dir );
@@ -375,7 +375,7 @@ function hmbkp_path() {
375
  // Protect the directory with a .htaccess file on Apache servers
376
  if ( $is_apache && function_exists( 'insert_with_markers' ) && ! file_exists( $htaccess ) && wp_is_writable( $path ) ) {
377
 
378
- $contents[] = '# ' . sprintf( __( 'This %s file ensures that other people cannot download your backup files.', 'hmbkp' ), '.htaccess' );
379
  $contents[] = '';
380
  $contents[] = '<IfModule mod_rewrite.c>';
381
  $contents[] = 'RewriteEngine On';
17
  deactivate_plugins( __FILE__ );
18
 
19
  if ( isset( $_GET['action'] ) && ( 'activate' === $_GET['action'] || 'error_scrape' === $_GET['action'] ) ) {
20
+ wp_die( sprintf( __( 'BackUpWordPress requires WordPress version %s or greater.', 'backupwordpress' ), HMBKP_REQUIRED_WP_VERSION ), __( 'BackUpWordPress', 'backupwordpress' ), array( 'back_link' => true ) );
21
  }
22
  }
23
 
270
  $schedules->refresh_schedules();
271
 
272
  function hmbkp_default_schedules_setup_warning() {
273
+ echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has setup your default schedules.', 'backupwordpress' ) . '</strong> ' . __( 'By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database &amp; files. You can modify these schedules.', 'backupwordpress' ) . '</p></div>';
274
  }
275
 
276
  add_action( 'admin_notices', 'hmbkp_default_schedules_setup_warning' );
287
  */
288
  function hmbkp_cron_schedules( $schedules ) {
289
 
290
+ $schedules['hmbkp_hourly'] = array( 'interval' => HOUR_IN_SECONDS, 'display' => __( 'Once Hourly', 'backupwordpress' ) );
291
+ $schedules['hmbkp_twicedaily'] = array( 'interval' => 12 * HOUR_IN_SECONDS, 'display' => __( 'Twice Daily', 'backupwordpress' ) );
292
+ $schedules['hmbkp_daily'] = array( 'interval' => DAY_IN_SECONDS, 'display' => __( 'Once Daily', 'backupwordpress' ) );
293
+ $schedules['hmbkp_weekly'] = array( 'interval' => WEEK_IN_SECONDS, 'display' => __( 'Once Weekly', 'backupwordpress' ) );
294
+ $schedules['hmbkp_fortnightly'] = array( 'interval' => 2 * WEEK_IN_SECONDS, 'display' => __( 'Once Biweekly', 'backupwordpress' ) );
295
+ $schedules['hmbkp_monthly'] = array( 'interval' => 30 * DAY_IN_SECONDS, 'display' => __( 'Once Monthly', 'backupwordpress' ) );
296
 
297
  return $schedules;
298
  }
310
  function hmbkp_rmdirtree( $dir ) {
311
 
312
  if ( false !== strpos( HM_Backup::get_home_path(), $dir ) )
313
+ return new WP_Error( 'hmbkp_invalid_action_error', sprintf( __( 'You can only delete directories inside your WordPress installation', 'backupwordpress' ) ) );
314
 
315
  if ( is_file( $dir ) )
316
  @unlink( $dir );
375
  // Protect the directory with a .htaccess file on Apache servers
376
  if ( $is_apache && function_exists( 'insert_with_markers' ) && ! file_exists( $htaccess ) && wp_is_writable( $path ) ) {
377
 
378
+ $contents[] = '# ' . sprintf( __( 'This %s file ensures that other people cannot download your backup files.', 'backupwordpress' ), '.htaccess' );
379
  $contents[] = '';
380
  $contents[] = '<IfModule mod_rewrite.c>';
381
  $contents[] = 'RewriteEngine On';
functions/interface.php CHANGED
@@ -28,10 +28,10 @@ function hmbkp_get_backup_row( $file, HMBKP_Scheduled_Backup $schedule ) {
28
  <td>
29
 
30
  <?php if ( hmbkp_is_path_accessible( hmbkp_path() ) ) : ?>
31
- <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'hmbkp_backup_archive' => $encoded_file, 'hmbkp_schedule_id' => $schedule->get_id(), 'action' => 'hmbkp_request_download_backup' ), admin_url( 'admin-post.php' ) ), 'hmbkp_download_backup', 'hmbkp_download_backup_nonce' ) ); ?>" class="download-action"><?php _e( 'Download', 'hmbkp' ); ?></a> |
32
  <?php endif; ?>
33
 
34
- <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'hmbkp_backup_archive' => $encoded_file, 'hmbkp_schedule_id' => $schedule->get_id(), 'action' => 'hmbkp_request_delete_backup' ), admin_url( 'admin-post.php' ) ), 'hmbkp_delete_backup', 'hmbkp_delete_backup_nonce' ) ); ?>" class="delete-action"><?php _e( 'Delete', 'hmbkp' ); ?></a>
35
 
36
  </td>
37
 
@@ -59,9 +59,9 @@ function hmbkp_admin_notices() {
59
 
60
  <div id="hmbkp-warning" class="error fade">
61
  <p>
62
- <strong><?php _e( 'BackUpWordPress detected issues with your last backup.', 'hmbkp' ); ?></strong>
63
  <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_dismiss_error' ), admin_url( 'admin-post.php' ) ), 'hmbkp_dismiss_error', 'hmbkp_dismiss_error_nonce' ) ); ?>" style="float: right;" class="button">
64
- <?php _e( 'Dismiss', 'hmbkp' ); ?>
65
  </a>
66
  </p>
67
 
@@ -78,9 +78,9 @@ function hmbkp_admin_notices() {
78
 
79
  <div id="hmbkp-warning" class="error fade">
80
  <p>
81
- <strong><?php _e( 'BackUpWordPress has detected a problem.', 'hmbkp' ); ?></strong>
82
  <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_dismiss_error' ), admin_url( 'admin-post.php' ) ), 'hmbkp_dismiss_error', 'hmbkp_dismiss_error_nonce' ) ); ?>" style="float: right;" class="button">
83
- <?php _e( 'Dismiss', 'hmbkp' ); ?>
84
  </a>
85
  </p>
86
  <ul>
@@ -103,38 +103,43 @@ function hmbkp_set_server_config_notices() {
103
 
104
  $messages = array();
105
 
106
- $php_user = exec( 'whoami' );
107
- $groups = explode( ' ', exec( 'groups' ) );
108
- $php_group = reset( $groups );
 
 
 
 
 
109
 
110
  if ( ! is_dir( hmbkp_path() ) ) {
111
 
112
- $messages[] = sprintf( __( 'The backups directory can\'t be created because your %1$s directory isn\'t writable, run %2$s or %3$s or create the folder yourself.', 'hmbkp' ), '<code>wp-content</code>', '<code>chown ' . esc_html( $php_user ) . ':' . esc_html( $php_group ) . ' ' . esc_html( dirname( hmbkp_path() ) ) . '</code>', '<code>chmod 777 ' . esc_html( dirname( hmbkp_path() ) ) . '</code>' );
113
 
114
  }
115
 
116
  if ( is_dir( hmbkp_path() ) && ! wp_is_writable( hmbkp_path() ) ) {
117
 
118
- $messages[] = sprintf( __( 'Your backups directory isn\'t writable, run %1$s or %2$s or set the permissions yourself.', 'hmbkp' ), '<code>chown -R ' . esc_html( $php_user ) . ':' . esc_html( $php_group ) . ' ' . esc_html( hmbkp_path() ) . '</code>', '<code>chmod -R 777 ' . esc_html( hmbkp_path() ) . '</code>' );
119
 
120
  }
121
 
122
  if ( HM_Backup::is_safe_mode_active() ) {
123
- $messages[] = sprintf( __( '%1$s is running in %2$s, please contact your host and ask them to disable it. BackUpWordPress may not work correctly whilst %3$s is on.', 'hmbkp' ), '<code>PHP</code>', sprintf( '<a href="%1$s">%2$s</a>', __( 'http://php.net/manual/en/features.safe-mode.php', 'hmbkp' ), __( 'Safe Mode', 'hmbkp' ) ), '<code>' . __( 'Safe Mode', 'hmbkp' ) . '</code>' );
124
  }
125
 
126
  if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && ! is_dir( HMBKP_PATH ) ) {
127
- $messages[] = sprintf( __( 'Your custom backups directory %1$s doesn\'t exist and can\'t be created, your backups will be saved to %2$s instead.', 'hmbkp' ), '<code>' . esc_html( HMBKP_PATH ) . '</code>', '<code>' . esc_html( hmbkp_path() ) . '</code>' );
128
  }
129
 
130
  if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && is_dir( HMBKP_PATH ) && ! wp_is_writable( HMBKP_PATH ) ) {
131
- $messages[] = sprintf( __( 'Your custom backups directory %1$s isn\'t writable, new backups will be saved to %2$s instead.', 'hmbkp' ), '<code>' . esc_html( HMBKP_PATH ) . '</code>', '<code>' . esc_html( hmbkp_path() ) . '</code>' );
132
  }
133
 
134
  $test_backup = new HMBKP_Scheduled_Backup( 'test_backup' );
135
 
136
  if ( ! is_readable( $test_backup->get_root() ) ) {
137
- $messages[] = sprintf( __( 'Your backup root path %s isn\'t readable.', 'hmbkp' ), '<code>' . $test_backup->get_root() . '</code>' );
138
  }
139
 
140
  if ( count( $messages ) > 0 ) {
@@ -193,18 +198,18 @@ function hmbkp_backup_errors_message() {
193
  function hmbkp_human_get_type( $type, HMBKP_Scheduled_Backup $schedule = null ) {
194
 
195
  if ( strpos( $type, 'complete' ) !== false )
196
- return __( 'Database and Files', 'hmbkp' );
197
 
198
  if ( strpos( $type, 'file' ) !== false )
199
- return __( 'Files', 'hmbkp' );
200
 
201
  if ( strpos( $type, 'database' ) !== false )
202
- return __( 'Database', 'hmbkp' );
203
 
204
  if ( ! is_null( $schedule ) )
205
  return hmbkp_human_get_type( $schedule->get_type() );
206
 
207
- return __( 'Legacy', 'hmbkp' );
208
 
209
  }
210
 
@@ -219,9 +224,9 @@ function hmbkp_schedule_status( HMBKP_Scheduled_Backup $schedule, $echo = true )
219
 
220
  ob_start(); ?>
221
 
222
- <span class="hmbkp-status"<?php if ( $schedule->get_status() ) { ?> title="<?php printf( __( 'Started %s ago', 'hmbkp' ), human_time_diff( $schedule->get_schedule_running_start_time() ) ); ?>"<?php } ?>>
223
- <?php echo $schedule->get_status() ? wp_kses_data( $schedule->get_status() ) : __( 'Starting Backup', 'hmbkp' ); ?>
224
- <a href="<?php echo hmbkp_admin_action_url( 'request_cancel_backup', array( 'hmbkp_schedule_id' => $schedule->get_id() ) ); ?>"><?php _e( 'cancel', 'hmbkp' ); ?></a>
225
  </span>
226
 
227
  <?php $output = ob_get_clean();
@@ -267,11 +272,11 @@ function hmbkp_backups_number( $schedule, $zero = false, $one = false, $more = f
267
  $number = count( $schedule->get_backups() );
268
 
269
  if ( $number > 1 )
270
- $output = str_replace( '%', number_format_i18n( $number ), ( false === $more ) ? __( '% Backups Completed', 'hmbkp' ) : $more );
271
  elseif ( 0 === $number )
272
- $output = ( false === $zero ) ? __( 'No Backups Completed', 'hmbkp' ) : $zero;
273
  else // must be one
274
- $output = ( false === $one ) ? __( '1 Backup Completed', 'hmbkp' ) : $one;
275
 
276
  echo apply_filters( 'hmbkp_backups_number', $output, $number );
277
  }
@@ -279,27 +284,27 @@ function hmbkp_backups_number( $schedule, $zero = false, $one = false, $more = f
279
  function hmbkp_translated_schedule_title( $slug, $title ) {
280
 
281
  $titles = array(
282
- 'complete-hourly' => esc_html__( 'Complete Hourly', 'hmbkp' ),
283
- 'file-hourly' => esc_html__( 'File Hourly', 'hmbkp' ),
284
- 'database-hourly' => esc_html__( 'Database Hourly', 'hmbkp' ),
285
- 'complete-twicedaily' => esc_html__( 'Complete Twicedaily', 'hmbkp' ),
286
- 'file-twicedaily' => esc_html__( 'File Twicedaily', 'hmbkp' ),
287
- 'database-twicedaily' => esc_html__( 'Database Twicedaily', 'hmbkp' ),
288
- 'complete-daily' => esc_html__( 'Complete Daily', 'hmbkp' ),
289
- 'file-daily' => esc_html__( 'File Daily', 'hmbkp' ),
290
- 'database-daily' => esc_html__( 'Database Daily', 'hmbkp' ),
291
- 'complete-weekly' => esc_html__( 'Complete Weekly', 'hmbkp' ),
292
- 'file-weekly' => esc_html__( 'File Weekly', 'hmbkp' ),
293
- 'database-weekly' => esc_html__( 'Database Weekly', 'hmbkp' ),
294
- 'complete-fortnightly' => esc_html__( 'Complete Biweekly', 'hmbkp' ),
295
- 'file-fortnightly' => esc_html__( 'File Biweekly', 'hmbkp' ),
296
- 'database-fortnightly' => esc_html__( 'Database Biweekly', 'hmbkp' ),
297
- 'complete-monthly' => esc_html__( 'Complete Monthly', 'hmbkp' ),
298
- 'file-monthly' => esc_html__( 'File Monthly', 'hmbkp' ),
299
- 'database-monthly' => esc_html__( 'Database Monthly', 'hmbkp' ),
300
- 'complete-manually' => esc_html__( 'Complete Manually', 'hmbkp' ),
301
- 'file-manually' => esc_html__( 'File Manually', 'hmbkp' ),
302
- 'database-manually' => esc_html__( 'Database Manually', 'hmbkp' )
303
  );
304
 
305
  if ( isset( $titles[ $slug ] ) ) {
28
  <td>
29
 
30
  <?php if ( hmbkp_is_path_accessible( hmbkp_path() ) ) : ?>
31
+ <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'hmbkp_backup_archive' => $encoded_file, 'hmbkp_schedule_id' => $schedule->get_id(), 'action' => 'hmbkp_request_download_backup' ), admin_url( 'admin-post.php' ) ), 'hmbkp_download_backup', 'hmbkp_download_backup_nonce' ) ); ?>" class="download-action"><?php _e( 'Download', 'backupwordpress' ); ?></a> |
32
  <?php endif; ?>
33
 
34
+ <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'hmbkp_backup_archive' => $encoded_file, 'hmbkp_schedule_id' => $schedule->get_id(), 'action' => 'hmbkp_request_delete_backup' ), admin_url( 'admin-post.php' ) ), 'hmbkp_delete_backup', 'hmbkp_delete_backup_nonce' ) ); ?>" class="delete-action"><?php _e( 'Delete', 'backupwordpress' ); ?></a>
35
 
36
  </td>
37
 
59
 
60
  <div id="hmbkp-warning" class="error fade">
61
  <p>
62
+ <strong><?php _e( 'BackUpWordPress detected issues with your last backup.', 'backupwordpress' ); ?></strong>
63
  <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_dismiss_error' ), admin_url( 'admin-post.php' ) ), 'hmbkp_dismiss_error', 'hmbkp_dismiss_error_nonce' ) ); ?>" style="float: right;" class="button">
64
+ <?php _e( 'Dismiss', 'backupwordpress' ); ?>
65
  </a>
66
  </p>
67
 
78
 
79
  <div id="hmbkp-warning" class="error fade">
80
  <p>
81
+ <strong><?php _e( 'BackUpWordPress has detected a problem.', 'backupwordpress' ); ?></strong>
82
  <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'hmbkp_dismiss_error' ), admin_url( 'admin-post.php' ) ), 'hmbkp_dismiss_error', 'hmbkp_dismiss_error_nonce' ) ); ?>" style="float: right;" class="button">
83
+ <?php _e( 'Dismiss', 'backupwordpress' ); ?>
84
  </a>
85
  </p>
86
  <ul>
103
 
104
  $messages = array();
105
 
106
+ if ( ! HM_Backup::is_shell_exec_available() ) {
107
+ $php_user = '<PHP USER>';
108
+ $php_group = '<PHP GROUP>';
109
+ } else {
110
+ $php_user = shell_exec( 'whoami' );
111
+ $groups = explode( ' ', shell_exec( 'groups' ) );
112
+ $php_group = reset( $groups );
113
+ }
114
 
115
  if ( ! is_dir( hmbkp_path() ) ) {
116
 
117
+ $messages[] = sprintf( __( 'The backups directory can\'t be created because your %1$s directory isn\'t writable, run %2$s or %3$s or create the folder yourself.', 'backupwordpress' ), '<code>wp-content</code>', '<code>chown ' . esc_html( $php_user ) . ':' . esc_html( $php_group ) . ' ' . esc_html( dirname( hmbkp_path() ) ) . '</code>', '<code>chmod 777 ' . esc_html( dirname( hmbkp_path() ) ) . '</code>' );
118
 
119
  }
120
 
121
  if ( is_dir( hmbkp_path() ) && ! wp_is_writable( hmbkp_path() ) ) {
122
 
123
+ $messages[] = sprintf( __( 'Your backups directory isn\'t writable, run %1$s or %2$s or set the permissions yourself.', 'backupwordpress' ), '<code>chown -R ' . esc_html( $php_user ) . ':' . esc_html( $php_group ) . ' ' . esc_html( hmbkp_path() ) . '</code>', '<code>chmod -R 777 ' . esc_html( hmbkp_path() ) . '</code>' );
124
 
125
  }
126
 
127
  if ( HM_Backup::is_safe_mode_active() ) {
128
+ $messages[] = sprintf( __( '%1$s is running in %2$s, please contact your host and ask them to disable it. BackUpWordPress may not work correctly whilst %3$s is on.', 'backupwordpress' ), '<code>PHP</code>', sprintf( '<a href="%1$s">%2$s</a>', __( 'http://php.net/manual/en/features.safe-mode.php', 'backupwordpress' ), __( 'Safe Mode', 'backupwordpress' ) ), '<code>' . __( 'Safe Mode', 'backupwordpress' ) . '</code>' );
129
  }
130
 
131
  if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && ! is_dir( HMBKP_PATH ) ) {
132
+ $messages[] = sprintf( __( 'Your custom backups directory %1$s doesn\'t exist and can\'t be created, your backups will be saved to %2$s instead.', 'backupwordpress' ), '<code>' . esc_html( HMBKP_PATH ) . '</code>', '<code>' . esc_html( hmbkp_path() ) . '</code>' );
133
  }
134
 
135
  if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && is_dir( HMBKP_PATH ) && ! wp_is_writable( HMBKP_PATH ) ) {
136
+ $messages[] = sprintf( __( 'Your custom backups directory %1$s isn\'t writable, new backups will be saved to %2$s instead.', 'backupwordpress' ), '<code>' . esc_html( HMBKP_PATH ) . '</code>', '<code>' . esc_html( hmbkp_path() ) . '</code>' );
137
  }
138
 
139
  $test_backup = new HMBKP_Scheduled_Backup( 'test_backup' );
140
 
141
  if ( ! is_readable( $test_backup->get_root() ) ) {
142
+ $messages[] = sprintf( __( 'Your backup root path %s isn\'t readable.', 'backupwordpress' ), '<code>' . $test_backup->get_root() . '</code>' );
143
  }
144
 
145
  if ( count( $messages ) > 0 ) {
198
  function hmbkp_human_get_type( $type, HMBKP_Scheduled_Backup $schedule = null ) {
199
 
200
  if ( strpos( $type, 'complete' ) !== false )
201
+ return __( 'Database and Files', 'backupwordpress' );
202
 
203
  if ( strpos( $type, 'file' ) !== false )
204
+ return __( 'Files', 'backupwordpress' );
205
 
206
  if ( strpos( $type, 'database' ) !== false )
207
+ return __( 'Database', 'backupwordpress' );
208
 
209
  if ( ! is_null( $schedule ) )
210
  return hmbkp_human_get_type( $schedule->get_type() );
211
 
212
+ return __( 'Legacy', 'backupwordpress' );
213
 
214
  }
215
 
224
 
225
  ob_start(); ?>
226
 
227
+ <span class="hmbkp-status"<?php if ( $schedule->get_status() ) { ?> title="<?php printf( __( 'Started %s ago', 'backupwordpress' ), human_time_diff( $schedule->get_schedule_running_start_time() ) ); ?>"<?php } ?>>
228
+ <?php echo $schedule->get_status() ? wp_kses_data( $schedule->get_status() ) : __( 'Starting Backup', 'backupwordpress' ); ?>
229
+ <a href="<?php echo hmbkp_admin_action_url( 'request_cancel_backup', array( 'hmbkp_schedule_id' => $schedule->get_id() ) ); ?>"><?php _e( 'cancel', 'backupwordpress' ); ?></a>
230
  </span>
231
 
232
  <?php $output = ob_get_clean();
272
  $number = count( $schedule->get_backups() );
273
 
274
  if ( $number > 1 )
275
+ $output = str_replace( '%', number_format_i18n( $number ), ( false === $more ) ? __( '% Backups Completed', 'backupwordpress' ) : $more );
276
  elseif ( 0 === $number )
277
+ $output = ( false === $zero ) ? __( 'No Backups Completed', 'backupwordpress' ) : $zero;
278
  else // must be one
279
+ $output = ( false === $one ) ? __( '1 Backup Completed', 'backupwordpress' ) : $one;
280
 
281
  echo apply_filters( 'hmbkp_backups_number', $output, $number );
282
  }
284
  function hmbkp_translated_schedule_title( $slug, $title ) {
285
 
286
  $titles = array(
287
+ 'complete-hourly' => esc_html__( 'Complete Hourly', 'backupwordpress' ),
288
+ 'file-hourly' => esc_html__( 'File Hourly', 'backupwordpress' ),
289
+ 'database-hourly' => esc_html__( 'Database Hourly', 'backupwordpress' ),
290
+ 'complete-twicedaily' => esc_html__( 'Complete Twicedaily', 'backupwordpress' ),
291
+ 'file-twicedaily' => esc_html__( 'File Twicedaily', 'backupwordpress' ),
292
+ 'database-twicedaily' => esc_html__( 'Database Twicedaily', 'backupwordpress' ),
293
+ 'complete-daily' => esc_html__( 'Complete Daily', 'backupwordpress' ),
294
+ 'file-daily' => esc_html__( 'File Daily', 'backupwordpress' ),
295
+ 'database-daily' => esc_html__( 'Database Daily', 'backupwordpress' ),
296
+ 'complete-weekly' => esc_html__( 'Complete Weekly', 'backupwordpress' ),
297
+ 'file-weekly' => esc_html__( 'File Weekly', 'backupwordpress' ),
298
+ 'database-weekly' => esc_html__( 'Database Weekly', 'backupwordpress' ),
299
+ 'complete-fortnightly' => esc_html__( 'Complete Biweekly', 'backupwordpress' ),
300
+ 'file-fortnightly' => esc_html__( 'File Biweekly', 'backupwordpress' ),
301
+ 'database-fortnightly' => esc_html__( 'Database Biweekly', 'backupwordpress' ),
302
+ 'complete-monthly' => esc_html__( 'Complete Monthly', 'backupwordpress' ),
303
+ 'file-monthly' => esc_html__( 'File Monthly', 'backupwordpress' ),
304
+ 'database-monthly' => esc_html__( 'Database Monthly', 'backupwordpress' ),
305
+ 'complete-manually' => esc_html__( 'Complete Manually', 'backupwordpress' ),
306
+ 'file-manually' => esc_html__( 'File Manually', 'backupwordpress' ),
307
+ 'database-manually' => esc_html__( 'Database Manually', 'backupwordpress' )
308
  );
309
 
310
  if ( isset( $titles[ $slug ] ) ) {
hm-backup/hm-backup.php CHANGED
@@ -283,10 +283,10 @@ class HM_Backup {
283
  public function set_archive_filename( $filename ) {
284
 
285
  if ( empty( $filename ) || ! is_string( $filename ) )
286
- return new WP_Error( 'invalid_file_name', __( 'archive filename must be a non empty string', 'hmbkp' ) );
287
 
288
  if ( pathinfo( $filename, PATHINFO_EXTENSION ) !== 'zip' )
289
- return new WP_Error( 'invalid_file_extension', sprintf( __( 'invalid file extension for archive filename <code>%s</code>', 'hmbkp' ), $filename ) );
290
 
291
  $this->archive_filename = strtolower( sanitize_file_name( remove_accents( $filename ) ) );
292
 
@@ -326,10 +326,10 @@ class HM_Backup {
326
  public function set_database_dump_filename( $filename ) {
327
 
328
  if ( empty( $filename ) || ! is_string( $filename ) )
329
- return new WP_Error( 'invalid_file_name', __( 'database dump filename must be a non empty string', 'hmbkp' ) );
330
 
331
  if ( pathinfo( $filename, PATHINFO_EXTENSION ) !== 'sql' )
332
- return new WP_Error( 'invalid_file_extension', sprintf( __( 'invalid file extension for database dump filename <code>%s</code>', 'hmbkp' ), $filename ) );
333
 
334
  $this->database_dump_filename = strtolower( sanitize_file_name( remove_accents( $filename ) ) );
335
 
@@ -360,7 +360,7 @@ class HM_Backup {
360
  public function set_root( $path ) {
361
 
362
  if ( empty( $path ) || ! is_string( $path ) || ! is_dir( $path ) )
363
- return new WP_Error( 'invalid_directory_path', sprintf( __( 'Invalid root path <code>%s</code> must be a valid directory path', 'hmbkp' ), $path ) );
364
 
365
  $this->root = self::conform_dir( $path );
366
 
@@ -374,7 +374,7 @@ class HM_Backup {
374
  public function get_path() {
375
 
376
  if ( empty( $this->path ) )
377
- $this->set_path( self::conform_dir( hmbkp_path_default() ) );
378
 
379
  return $this->path;
380
 
@@ -389,7 +389,7 @@ class HM_Backup {
389
  public function set_path( $path ) {
390
 
391
  if ( empty( $path ) || ! is_string( $path ) )
392
- return new WP_Error( 'invalid_backup_path', sprintf( __( 'Invalid backup path <code>%s</code> must be a non empty (string)', 'hmbkp' ), $path ) );
393
 
394
  $this->path = self::conform_dir( $path );
395
 
@@ -441,7 +441,7 @@ class HM_Backup {
441
  public function set_type( $type ) {
442
 
443
  if ( ! is_string( $type ) || ! in_array( $type, array( 'file', 'database', 'complete' ) ) )
444
- return new WP_Error( 'invalid_backup_type', sprintf( __( 'Invalid backup type <code>%s</code> must be one of (string) file, database or complete', 'hmbkp' ), $type ) );
445
 
446
  $this->type = $type;
447
 
283
  public function set_archive_filename( $filename ) {
284
 
285
  if ( empty( $filename ) || ! is_string( $filename ) )
286
+ return new WP_Error( 'invalid_file_name', __( 'archive filename must be a non empty string', 'backupwordpress' ) );
287
 
288
  if ( pathinfo( $filename, PATHINFO_EXTENSION ) !== 'zip' )
289
+ return new WP_Error( 'invalid_file_extension', sprintf( __( 'invalid file extension for archive filename <code>%s</code>', 'backupwordpress' ), $filename ) );
290
 
291
  $this->archive_filename = strtolower( sanitize_file_name( remove_accents( $filename ) ) );
292
 
326
  public function set_database_dump_filename( $filename ) {
327
 
328
  if ( empty( $filename ) || ! is_string( $filename ) )
329
+ return new WP_Error( 'invalid_file_name', __( 'database dump filename must be a non empty string', 'backupwordpress' ) );
330
 
331
  if ( pathinfo( $filename, PATHINFO_EXTENSION ) !== 'sql' )
332
+ return new WP_Error( 'invalid_file_extension', sprintf( __( 'invalid file extension for database dump filename <code>%s</code>', 'backupwordpress' ), $filename ) );
333
 
334
  $this->database_dump_filename = strtolower( sanitize_file_name( remove_accents( $filename ) ) );
335
 
360
  public function set_root( $path ) {
361
 
362
  if ( empty( $path ) || ! is_string( $path ) || ! is_dir( $path ) )
363
+ return new WP_Error( 'invalid_directory_path', sprintf( __( 'Invalid root path <code>%s</code> must be a valid directory path', 'backupwordpress' ), $path ) );
364
 
365
  $this->root = self::conform_dir( $path );
366
 
374
  public function get_path() {
375
 
376
  if ( empty( $this->path ) )
377
+ $this->set_path( self::conform_dir( hmbkp_path() ) );
378
 
379
  return $this->path;
380
 
389
  public function set_path( $path ) {
390
 
391
  if ( empty( $path ) || ! is_string( $path ) )
392
+ return new WP_Error( 'invalid_backup_path', sprintf( __( 'Invalid backup path <code>%s</code> must be a non empty (string)', 'backupwordpress' ), $path ) );
393
 
394
  $this->path = self::conform_dir( $path );
395
 
441
  public function set_type( $type ) {
442
 
443
  if ( ! is_string( $type ) || ! in_array( $type, array( 'file', 'database', 'complete' ) ) )
444
+ return new WP_Error( 'invalid_backup_type', sprintf( __( 'Invalid backup type <code>%s</code> must be one of (string) file, database or complete', 'backupwordpress' ), $type ) );
445
 
446
  $this->type = $type;
447
 
languages/{hmbkp-ca_ES.mo → backupwordpress-ca_ES.mo} RENAMED
File without changes
languages/{hmbkp-ca_ES.po → backupwordpress-ca_ES.po} RENAMED
File without changes
languages/{hmbkp-cs_CZ.mo → backupwordpress-cs_CZ.mo} RENAMED
File without changes
languages/{hmbkp-cs_CZ.po → backupwordpress-cs_CZ.po} RENAMED
File without changes
languages/{hmbkp-da_DK.mo → backupwordpress-da_DK.mo} RENAMED
File without changes
languages/{hmbkp-da_DK.po → backupwordpress-da_DK.po} RENAMED
File without changes
languages/{hmbkp-de_DE.mo → backupwordpress-de_DE.mo} RENAMED
File without changes
languages/{hmbkp-de_DE.po → backupwordpress-de_DE.po} RENAMED
File without changes
languages/{hmbkp-el_GR.mo → backupwordpress-el_GR.mo} RENAMED
File without changes
languages/{hmbkp-el_GR.po → backupwordpress-el_GR.po} RENAMED
File without changes
languages/{hmbkp-es_ES.mo → backupwordpress-es_ES.mo} RENAMED
File without changes
languages/{hmbkp-es_ES.po → backupwordpress-es_ES.po} RENAMED
File without changes
languages/{hmbkp-eu.mo → backupwordpress-eu.mo} RENAMED
File without changes
languages/{hmbkp-eu.po → backupwordpress-eu.po} RENAMED
File without changes
languages/backupwordpress-fr_FR.mo ADDED
Binary file
languages/backupwordpress-fr_FR.po ADDED
@@ -0,0 +1,1296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Translation of 3.x in French (France)
2
+ # This file is distributed under the same license as the 3.x package.
3
+ msgid ""
4
+ msgstr ""
5
+ "PO-Revision-Date: 2014-12-05 15:22-0300\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "Plural-Forms: nplurals=2; plural=n > 1;\n"
10
+ "X-Generator: Poedit 1.5.7\n"
11
+ "Project-Id-Version: 3.x\n"
12
+ "POT-Creation-Date: \n"
13
+ "Last-Translator: Human Made Limited <hello@hmn.md>\n"
14
+ "Language-Team: \n"
15
+
16
+ #: admin/faq.php:46
17
+ msgid ""
18
+ "Try adding <code>define( 'ALTERNATE_WP_CRON', true );</code> to your "
19
+ "<code>wp-config.php</code>, do automatic backups work?"
20
+ msgstr ""
21
+ "Essayez d'ajouter <code>define( 'ALTERNATE_WP_CRON', true );</code> à votre "
22
+ "fichier <code>wp-config.php</code>, est-ce que les sauvegardes automatiques "
23
+ "fonctionnent ?"
24
+
25
+ #: admin/faq.php:48
26
+ msgid ""
27
+ "Is your site private (I.E. is it behind some kind of authentication, "
28
+ "maintenance plugin, .htaccess) if so wp-cron won't work until you remove it, "
29
+ "if you are and you temporarily remove the authentication, do backups start "
30
+ "working?"
31
+ msgstr ""
32
+ "Est-ce que votre site est privé ? ( protégé par une forme d'identification, "
33
+ "un plugin de maintenance, ou .htaccess). Si oui, wp-cron ne fonctionnera pas "
34
+ "tant que vous n'aurez pas désactivé la restriction. Vérifiez si la "
35
+ "désactivation de la restriction solutionne le problème."
36
+
37
+ #: admin/faq.php:50
38
+ msgid ""
39
+ "Report the results to our support team for further help. To do this, either "
40
+ "enable suport from your Admin Dashboard (recommended), or email support@hmn."
41
+ "md"
42
+ msgstr ""
43
+ "Envoyer un rapport des résultats à notre équipe de support technique pour "
44
+ "obtenir de l'aide. Pour ce faire, activez le support via l'admin "
45
+ "(recommandé) ou envoyez un courriel à support@hmn.md"
46
+
47
+ #: admin/faq.php:52
48
+ msgid "How to get BackUpWordPress working in Heart Internet"
49
+ msgstr "Instructions spécifiques pour l'hébergeur Heart Internet."
50
+
51
+ #: admin/faq.php:54
52
+ msgid ""
53
+ "The script to be entered into the Heart Internet cPanel is: <code>/usr/bin/"
54
+ "php5 /home/sites/yourdomain.com/public_html/wp-cron.php</code> (note the "
55
+ "space between php5 and the location of the file). The file <code>wp-cron."
56
+ "php</code> <code>chmod</code> must be set to <code>711</code>."
57
+ msgstr ""
58
+ "Le script à ajouter au cPanel de Heart Internet est le suivant: <code>/usr/"
59
+ "bin/php5 /home/sites/yourdomain.com/public_html/wp-cron.php</code> ( espace "
60
+ "entre php5 et le chemin ). Les permissions <code>chmod</code> du fichier "
61
+ "<code>wp-cron.php</code> doit être <code>711</code>."
62
+
63
+ #: admin/faq.php:56
64
+ msgid "My backups seem to be failing?"
65
+ msgstr "Mes sauvegardes échouent !"
66
+
67
+ #: admin/faq.php:58
68
+ msgid ""
69
+ "If your backups are failing - it's commonly caused by lack of available "
70
+ "resources on your server. The easiest way to establish this to exclude some "
71
+ "[of] or your entire uploades folder, running a backup an if that succeeds. "
72
+ "If so, we know it's probably a server issue. If not, report the results to "
73
+ "our support team for further help. To do this, either enable suport from "
74
+ "your Admin Dashboard (recommended), or email support@hmn.md"
75
+ msgstr ""
76
+ "Si vos sauvegardes échouent, la cause la plus commune est un manque de "
77
+ "ressources du serveur. Afin de vérifier si cela en est réellement la cause, "
78
+ "excluez votre répertoire wp-uploads et démarrez une sauvegarde. Si la "
79
+ "sauvegarde réussit, alors c'est très probablement une question de ressources "
80
+ "insuffisantes. Sinon, envoyez les résultats à notre support technique qui "
81
+ "pourra vous aider. Pour ce faire, activez le support sur la page de "
82
+ "configuration du plugin, ou envoyez un courriel à support@hmn.md"
83
+
84
+ #: admin/menu.php:12 admin/menu.php:14
85
+ msgid "Manage Backups"
86
+ msgstr "Gérer les sauvegardes"
87
+
88
+ #: admin/menu.php:12 admin/menu.php:14 admin/menu.php:39
89
+ msgid "Backups"
90
+ msgstr "Sauvegardes"
91
+
92
+ #: admin/menu.php:67
93
+ msgid "FAQ"
94
+ msgstr "FAQ"
95
+
96
+ #: admin/menu.php:72
97
+ msgid "For more information:"
98
+ msgstr "Pour de plus amples informations:"
99
+
100
+ #: admin/menu.php:74
101
+ msgid "Support Forums"
102
+ msgstr "Forums de support"
103
+
104
+ #: admin/menu.php:75
105
+ msgid "Help with translation"
106
+ msgstr "Aider à la traduction"
107
+
108
+ #: admin/page.php:7
109
+ msgid ""
110
+ "If you're finding BackUpWordPress useful, please %1$s rate it on the plugin "
111
+ "directory%2$s."
112
+ msgstr ""
113
+ "Si vous aimez BackUpWordPress, n'hésitez pas à %1$slaisser une évaluation "
114
+ "positive sur WordPress.org%2$s."
115
+
116
+ #: admin/schedule-form-excludes.php:5
117
+ msgid "Currently Excluded"
118
+ msgstr "Exclusions actives"
119
+
120
+ #: admin/schedule-form-excludes.php:40
121
+ msgid "Default rule"
122
+ msgstr "Règle par défaut"
123
+
124
+ #: admin/schedule-form-excludes.php:44
125
+ msgid "Defined in wp-config.php"
126
+ msgstr "Défini dans le fichier wp-config.php"
127
+
128
+ #: admin/schedule-form-excludes.php:48
129
+ msgid "Remove"
130
+ msgstr "Retirer"
131
+
132
+ #: admin/schedule-form-excludes.php:64
133
+ msgid "Directory Listing"
134
+ msgstr "Contenu du répertoire"
135
+
136
+ #: admin/schedule-form-excludes.php:66
137
+ msgid ""
138
+ "Here's a directory listing of all files on your site, you can browse through "
139
+ "and exclude files or folders that you don't want included in your backup."
140
+ msgstr ""
141
+ "Voici l'arborescence de tous les fichiers de votre site, vous pouvez "
142
+ "naviguer et exclure les fichiers et répertoire que vous ne voulez pas "
143
+ "sauvegardez."
144
+
145
+ #: admin/schedule-form-excludes.php:97
146
+ msgid "Name"
147
+ msgstr "Nom"
148
+
149
+ #: admin/schedule-form-excludes.php:99
150
+ msgid "Permissions"
151
+ msgstr "Permissions"
152
+
153
+ #: admin/schedule-form-excludes.php:101
154
+ msgid "Status"
155
+ msgstr "Statut"
156
+
157
+ #: admin/schedule-form-excludes.php:158 admin/schedule-form-excludes.php:269
158
+ msgid "Refresh"
159
+ msgstr "Rafraîchir"
160
+
161
+ #: admin/schedule-form-excludes.php:175 admin/schedule-form-excludes.php:293
162
+ msgid "Symlink"
163
+ msgstr "Alias"
164
+
165
+ #: admin/schedule-form-excludes.php:179 admin/schedule-form-excludes.php:297
166
+ msgid "Folder"
167
+ msgstr "Répertoire"
168
+
169
+ #: admin/schedule-form-excludes.php:269
170
+ msgid "Recalculate the size of this directory"
171
+ msgstr "Recalculer la taille de ce répertoire"
172
+
173
+ #: admin/schedule-form-excludes.php:301
174
+ msgid "File"
175
+ msgstr "Fichier"
176
+
177
+ #: admin/schedule-form-excludes.php:311
178
+ msgid "Unreadable files won't be backed up."
179
+ msgstr "Les fichiers illisibles ne seront pas sauvegardés."
180
+
181
+ #: admin/schedule-form-excludes.php:311
182
+ msgid "Unreadable"
183
+ msgstr "Illisible"
184
+
185
+ #: admin/schedule-form-excludes.php:315
186
+ msgid "Excluded"
187
+ msgstr "Exclus"
188
+
189
+ #: admin/schedule-form-excludes.php:326
190
+ msgid "Exclude &rarr;"
191
+ msgstr "Exclure &rarr;"
192
+
193
+ #: admin/schedule-form-excludes.php:345 admin/schedule-form.php:185
194
+ #: admin/schedule-settings.php:77
195
+ msgid "Done"
196
+ msgstr "Terminé"
197
+
198
+ #: admin/schedule-form.php:31
199
+ msgid "Backup"
200
+ msgstr "Sauvegarde"
201
+
202
+ #: admin/schedule-form.php:38
203
+ msgid "Both Database &amp; files"
204
+ msgstr "BDD et fichiers"
205
+
206
+ #: admin/schedule-form.php:40
207
+ msgid "Files only"
208
+ msgstr "Fichiers seulement"
209
+
210
+ #: admin/schedule-form.php:42
211
+ msgid "Database only"
212
+ msgstr "BDD seulement"
213
+
214
+ #: admin/schedule-form.php:53
215
+ msgid "Schedule"
216
+ msgstr "Horaire"
217
+
218
+ #: admin/schedule-form.php:60
219
+ msgid "Manual Only"
220
+ msgstr "Manuel seulement"
221
+
222
+ #: admin/schedule-form.php:85
223
+ msgid "Start Day"
224
+ msgstr "Premier jour"
225
+
226
+ #: admin/schedule-form.php:93
227
+ msgid "Monday"
228
+ msgstr "Lundi"
229
+
230
+ #: admin/schedule-form.php:94
231
+ msgid "Tuesday"
232
+ msgstr "Mardi"
233
+
234
+ #: admin/schedule-form.php:95
235
+ msgid "Wednesday"
236
+ msgstr "Mercredi"
237
+
238
+ #: admin/schedule-form.php:96
239
+ msgid "Thursday"
240
+ msgstr "Jeudi"
241
+
242
+ #: admin/schedule-form.php:97
243
+ msgid "Friday"
244
+ msgstr "Vendredi"
245
+
246
+ #: admin/schedule-form.php:98
247
+ msgid "Saturday"
248
+ msgstr "Samedi"
249
+
250
+ #: admin/schedule-form.php:99
251
+ msgid "Sunday"
252
+ msgstr "Dimanche"
253
+
254
+ #: admin/schedule-form.php:117
255
+ msgid "Start Day of Month"
256
+ msgstr "Premier jour du mois"
257
+
258
+ #: admin/schedule-form.php:129
259
+ msgid "Start Time"
260
+ msgstr "Heure de début"
261
+
262
+ #: admin/schedule-form.php:138
263
+ msgid "Hours"
264
+ msgstr "Heures"
265
+
266
+ #: admin/schedule-form.php:142
267
+ msgid "Minutes"
268
+ msgstr "Minutes"
269
+
270
+ #: admin/schedule-form.php:146
271
+ msgid "The second backup will run 12 hours after the first"
272
+ msgstr "La seconde sauvegarde commencera 12 heures plus tard"
273
+
274
+ #: admin/schedule-form.php:155
275
+ msgid "Number of backups to store on this server"
276
+ msgstr "Nombre de sauvegarde à conserver sur ce serveur "
277
+
278
+ #: admin/schedule-form.php:164
279
+ msgid "Past this limit older backups will be deleted automatically."
280
+ msgstr ""
281
+ "Passé cette limite, les sauvegardes plus anciennes seront automatiquement "
282
+ "supprimées."
283
+
284
+ #: admin/schedule-form.php:167
285
+ msgid "This schedule will store a maximum of %s of backups."
286
+ msgstr "Un maximum de %s sauvegardes seront stockées pour cet horaire."
287
+
288
+ #: admin/schedule-sentence.php:10
289
+ msgid "Backups will be compressed and should be smaller than this."
290
+ msgstr "Les sauvegardes sont compresss et seront de taille plus petite"
291
+
292
+ #: admin/schedule-sentence.php:10
293
+ msgid "this shouldn't take long&hellip;"
294
+ msgstr "Cela prendra quelques instants&hellip;"
295
+
296
+ #: admin/schedule-sentence.php:10
297
+ msgid "calculating the size of your backup&hellip;"
298
+ msgstr "calcul de la taille de votre sauvegarde en cours&hellip;"
299
+
300
+ #: admin/schedule-sentence.php:22
301
+ msgid "The next backup will be on %1$s at %2$s %3$s"
302
+ msgstr "La prochaine sauvegarde est programmée pour: %1$s à %2$s %3$s"
303
+
304
+ #: admin/schedule-sentence.php:29
305
+ msgid "hourly on the hour"
306
+ msgstr "toutes les heures"
307
+
308
+ #: admin/schedule-sentence.php:29
309
+ msgid "hourly at %s minutes past the hour"
310
+ msgstr "toutes les heures, %s minutes après l'heure pile"
311
+
312
+ #: admin/schedule-sentence.php:35
313
+ msgid "daily at %s"
314
+ msgstr "chaque jour à %s"
315
+
316
+ #: admin/schedule-sentence.php:46
317
+ msgid "every 12 hours at %1$s &amp; %2$s"
318
+ msgstr "toutes les 12 heures à %1$s &amp; %2$s"
319
+
320
+ #: admin/schedule-sentence.php:52
321
+ msgid "weekly on %1$s at %2$s"
322
+ msgstr "toutes les semaines le %1$s à %2$s"
323
+
324
+ #: admin/schedule-sentence.php:58
325
+ msgid "biweekly on %1$s at %2$s"
326
+ msgstr "toutes les 2 semaines le %1$s à %2$s"
327
+
328
+ #: admin/schedule-sentence.php:64
329
+ msgid "on the %1$s of each month at %2$s"
330
+ msgstr "le %1$s de chaque mois à %2$s"
331
+
332
+ #: admin/schedule-sentence.php:70
333
+ msgid "manually"
334
+ msgstr "manuellement"
335
+
336
+ #: admin/schedule-sentence.php:80
337
+ msgid "this server"
338
+ msgstr "ce serveur"
339
+
340
+ #: admin/schedule-sentence.php:88
341
+ msgid "store the most recent backup in %s"
342
+ msgstr "stocker la sauvegarde la plus récente dans %s"
343
+
344
+ #: admin/schedule-sentence.php:94
345
+ msgid "don't store any backups in on this server"
346
+ msgstr "ne stocker aucune sauvegarde sur ce serveur"
347
+
348
+ #: admin/schedule-sentence.php:100
349
+ msgid "store the last %1$s backups in %2$s"
350
+ msgstr "stocker les %1$s sauvegardes ici:%2$s"
351
+
352
+ #: admin/schedule-sentence.php:128
353
+ msgid "Backup my %1$s %2$s %3$s, %4$s. "
354
+ msgstr "Sauvegarder %1$s %2$s %3$s, %4$s."
355
+
356
+ #: admin/schedule-sentence.php:131
357
+ msgid "%s. "
358
+ msgstr "%s. "
359
+
360
+ #: admin/schedule-sentence.php:135
361
+ msgid "Send a copy of each backup to %s."
362
+ msgstr "Envoyer une copie de chaque sauvegarde à %s."
363
+
364
+ #: admin/schedule-settings.php:5
365
+ msgid "Run now"
366
+ msgstr "Exécuter maintenant"
367
+
368
+ #: admin/schedule-settings.php:7
369
+ msgid "Settings"
370
+ msgstr "Paramètres"
371
+
372
+ #: admin/schedule-settings.php:11
373
+ msgid "Excludes"
374
+ msgstr "Exclusions"
375
+
376
+ #: admin/schedule-settings.php:23 functions/interface.php:35
377
+ msgid "Delete"
378
+ msgstr "Supprimer"
379
+
380
+ #: backdrop/server.php:6
381
+ msgid "No key supplied"
382
+ msgstr "Aucune clé fournie"
383
+
384
+ #: backdrop/server.php:11
385
+ msgid "Supplied key was not valid"
386
+ msgstr "La clé fournie est invalide"
387
+
388
+ #: backdrop/task.php:22
389
+ msgid "Task is already scheduled to run"
390
+ msgstr "La tâche a déjà été programmée"
391
+
392
+ #: backdrop/task.php:41
393
+ msgid "Task is not scheduled to run"
394
+ msgstr "La tâche n'a pas été programmée"
395
+
396
+ #: backupwordpress.php:136
397
+ msgid "BackUpWordPress requires WordPress version %s or greater."
398
+ msgstr "BackUpWordPress nécessite WordPress version %s ou plus récent."
399
+
400
+ #: backupwordpress.php:184
401
+ msgid "Update"
402
+ msgstr "Enregistrer"
403
+
404
+ #: backupwordpress.php:185
405
+ msgid "Cancel"
406
+ msgstr "Annuler"
407
+
408
+ #: backupwordpress.php:186
409
+ msgid ""
410
+ "Are you sure you want to delete this schedule? All of it's backups will also "
411
+ "be deleted."
412
+ msgstr ""
413
+ "Etes-vous sûr(e) de vouloir supprimer cette planification de sauvegarde ? "
414
+ "Toutes les sauvegardes associées seront aussi supprimées."
415
+
416
+ #: backupwordpress.php:186 backupwordpress.php:187 backupwordpress.php:188
417
+ #: backupwordpress.php:189
418
+ msgid "'Cancel' to go back, 'OK' to delete."
419
+ msgstr "Annuler pour retourner, OK pour supprimer"
420
+
421
+ #: backupwordpress.php:187
422
+ msgid "Are you sure you want to delete this backup?"
423
+ msgstr "Etes-vous sûr(e) de vouloir supprimer cette sauvegarde ?"
424
+
425
+ #: backupwordpress.php:188
426
+ msgid "Are you sure you want to remove this exclude rule?"
427
+ msgstr "Etes-vous sûr(e) de vouloir supprimer cette règle d'exclusion ?"
428
+
429
+ #: backupwordpress.php:189
430
+ msgid ""
431
+ "Reducing the number of backups that are stored on this server will cause "
432
+ "some of your existing backups to be deleted, are you sure that's what you "
433
+ "want?"
434
+ msgstr ""
435
+ "Réduire le nombre de sauvegardes stockées sur le serveur supprimera "
436
+ "certaines de vos sauvegardes. Etes-vous sûr(e) de vouloir effectuer cette "
437
+ "action ?"
438
+
439
+ #: backupwordpress.php:314
440
+ msgid "Server Info"
441
+ msgstr "Info serveur"
442
+
443
+ #: classes/class-email.php:26
444
+ msgid "Email notification"
445
+ msgstr "Notification par e-mail"
446
+
447
+ #: classes/class-email.php:32
448
+ msgid ""
449
+ "Receive a notification email when a backup completes, if the backup is small "
450
+ "enough (&lt; %s) then it will be attached to the email. Separate multiple "
451
+ "email addresses with a comma."
452
+ msgstr ""
453
+ "Recevoir une alert quand une sauvegarde s'achève. Si l'archive est "
454
+ "suffisamment petite (&lt; %s), elle sera jointe au courriel. Séparez les "
455
+ "addresses email par des virgules."
456
+
457
+ #: classes/class-email.php:61
458
+ msgid ""
459
+ "The maximum filesize of your backup that will be attached to your "
460
+ "notification emails . Defaults to %s."
461
+ msgstr ""
462
+ "La taille maximum du fichier de sauvegarde qui sera joint à l'email de "
463
+ "notification de sauvegarde. Par défaut %s."
464
+
465
+ #: classes/class-email.php:80
466
+ msgid "Send an email notification to %s"
467
+ msgstr "Envoyer une confirmation par courrier électronique à %s"
468
+
469
+ #: classes/class-email.php:115
470
+ msgid "%s isn't a valid email"
471
+ msgstr "%s n'est pas une addresse email valable"
472
+
473
+ #: classes/class-email.php:175
474
+ msgid "Backup of %s Failed"
475
+ msgstr "La sauvegarde de %s a échoué"
476
+
477
+ #: classes/class-email.php:177
478
+ msgid "BackUpWordPress was unable to backup your site %1$s."
479
+ msgstr "BackUpWordPress n'a pas pu sauvegarder votre site %1$s."
480
+
481
+ #: classes/class-email.php:177
482
+ msgid "Here are the errors that we're encountered:"
483
+ msgstr "Voici les erreurs survenues"
484
+
485
+ #: classes/class-email.php:177
486
+ msgid ""
487
+ "If the errors above look like Martian, forward this email to %3$s and we'll "
488
+ "take a look"
489
+ msgstr ""
490
+ "Si les erreurs décrites ci-dessus sont pour vous du chinois, transférez nous "
491
+ "ce courrier électronique à %3$s et nous y jetterons un coup d'oeil"
492
+
493
+ #: classes/class-email.php:177
494
+ msgid ""
495
+ "Kind Regards,\n"
496
+ "The Apologetic BackUpWordPress Backup Emailing Robot"
497
+ msgstr "Veuillez accepter les excuses du robot messager de BackUpWordPress"
498
+
499
+ #: classes/class-email.php:185
500
+ msgid "Backup of %s"
501
+ msgstr "Sauvegarde de %s"
502
+
503
+ #: classes/class-email.php:190 classes/class-email.php:199
504
+ msgid "BackUpWordPress has completed a backup of your site %1$s."
505
+ msgstr "BackUpWordPress vient de terminer une sauvegarde de votre site %1$s."
506
+
507
+ #: classes/class-email.php:190
508
+ msgid "The backup file should be attached to this email."
509
+ msgstr ""
510
+ "Le fichier de sauvegarde devrait être joint à ce courrier électronique."
511
+
512
+ #: classes/class-email.php:190 classes/class-email.php:199
513
+ msgid "You can download the backup file by clicking the link below:"
514
+ msgstr ""
515
+ "Vous pouvez télécharger le fichier de sauvegarde en cliquant sur le lien "
516
+ "suivant :"
517
+
518
+ #: classes/class-email.php:190 classes/class-email.php:199
519
+ msgid ""
520
+ "Kind Regards,\n"
521
+ "The Happy BackUpWordPress Backup Emailing Robot"
522
+ msgstr "Salutations, le robot de sauvegarde et messager BackUpWordPress"
523
+
524
+ #: classes/class-email.php:199
525
+ msgid "Unfortunately the backup file was too large to attach to this email."
526
+ msgstr ""
527
+ "Malheureusement le fichier de sauvegarde est trop gros pour être joint à ce "
528
+ "courrier électronique."
529
+
530
+ #: classes/class-schedule.php:235
531
+ msgid "Argument 1 for %s must be a valid integer"
532
+ msgstr "Paramètre 1 de %s doit être un nombre entier valide."
533
+
534
+ #: classes/class-schedule.php:573
535
+ msgid "Argument 1 for %s must be a valid future timestamp"
536
+ msgstr "Paramètre 1 de %s doit être un horodatage futur valide"
537
+
538
+ #: classes/class-schedule.php:610
539
+ msgid "Argument 1 for %s must be a valid cron reoccurrence or \"manually\""
540
+ msgstr ""
541
+ "Paramètre 1 pour %s doit être un intervalle de cron valide ou \"manuel\""
542
+
543
+ #: classes/class-schedule.php:738 functions/interface.php:214
544
+ msgid "Starting Backup"
545
+ msgstr "Début de la sauvegarde"
546
+
547
+ #: classes/class-schedule.php:856
548
+ msgid "Dumping Database %s"
549
+ msgstr "Export de la BDD %s en cours"
550
+
551
+ #: classes/class-schedule.php:861
552
+ msgid "Verifying Database Dump %s"
553
+ msgstr "Vérification de l'export de la base de données %s"
554
+
555
+ #: classes/class-schedule.php:866
556
+ msgid "Creating zip archive %s"
557
+ msgstr "Création de l'archive zip %s"
558
+
559
+ #: classes/class-schedule.php:871
560
+ msgid "Verifying Zip Archive %s"
561
+ msgstr "Vérification de l'archive zip %s"
562
+
563
+ #: classes/class-schedule.php:876
564
+ msgid "Finishing Backup"
565
+ msgstr "Fin de la sauvegarde"
566
+
567
+ #: classes/class-schedule.php:978
568
+ msgid "Argument 1 for %s must be a non empty string"
569
+ msgstr "Paramètre 1 pour %s doit être une chaîne de caractères non vide"
570
+
571
+ #: classes/class-schedule.php:982
572
+ msgid "%s doesn't exist"
573
+ msgstr "%s n'existe pas"
574
+
575
+ #: classes/class-schedule.php:986
576
+ msgid "That backup wasn't created by this schedule"
577
+ msgstr "Cette sauvegarde n'a pas été créée par cet horaire"
578
+
579
+ #: classes/class-services.php:273
580
+ msgid "Argument 1 for %s must be a valid filepath"
581
+ msgstr "Paramètre 1 de %s doit être un chemin valide"
582
+
583
+ #: classes/class-services.php:288
584
+ msgid "Argument 1 for %s must be a registered service"
585
+ msgstr "Paramètre 1 pour %s doit être un Service enregistré"
586
+
587
+ #: classes/class-services.php:305
588
+ msgid "Argument 1 for %s must be a valid class"
589
+ msgstr "Paramètre 1 de %s doit être une classe existante"
590
+
591
+ #: classes/wp-cli.php:43
592
+ msgid "BackUpWordPress may not work when php is running with %s on"
593
+ msgstr ""
594
+ "BackUpWordPress peut ne pas fonctionner correctement lorsque PHP s'exécute "
595
+ "avec %s activé"
596
+
597
+ #: classes/wp-cli.php:46
598
+ msgid "Backup: Dumping database..."
599
+ msgstr "Sauvegarde: export de la BDD"
600
+
601
+ #: classes/wp-cli.php:50
602
+ msgid "Backup: Zipping everything up..."
603
+ msgstr "Sauvegarde: compression"
604
+
605
+ #: classes/wp-cli.php:65
606
+ msgid "Invalid backup path"
607
+ msgstr "Chemin de sauvegarde incorrect"
608
+
609
+ #: classes/wp-cli.php:70
610
+ msgid "Invalid root path"
611
+ msgstr "Le chemin racine est invalide"
612
+
613
+ #: classes/wp-cli.php:95
614
+ msgid "Backup Complete: "
615
+ msgstr "Sauvegarde terminée :"
616
+
617
+ #: classes/wp-cli.php:98
618
+ msgid "Backup Failed"
619
+ msgstr "La sauvegarde a échoué"
620
+
621
+ #: functions/core.php:247
622
+ msgid "BackUpWordPress has setup your default schedules."
623
+ msgstr "BackUpWordPress a réglé les planifications de sauvegarde par défaut."
624
+
625
+ #: functions/core.php:247
626
+ msgid ""
627
+ "By default BackUpWordPress performs a daily backup of your database and a "
628
+ "weekly backup of your database &amp; files. You can modify these schedules."
629
+ msgstr ""
630
+ "Par défaut, BackUpWordPress effectue une sauvegarde suotidienne de votre "
631
+ "base de données et une sauvegarde hebdomadaire de votre base de données "
632
+ "&amp; des fichiers. Vous pouvez modifier cette fréquence."
633
+
634
+ #: functions/core.php:264
635
+ msgid "Once Hourly"
636
+ msgstr "Toutes les heures"
637
+
638
+ #: functions/core.php:265
639
+ msgid "Twice Daily"
640
+ msgstr "Deux fois par jour"
641
+
642
+ #: functions/core.php:266
643
+ msgid "Once Daily"
644
+ msgstr "Quotidiennement"
645
+
646
+ #: functions/core.php:267
647
+ msgid "Once Weekly"
648
+ msgstr "Hebdomadaire"
649
+
650
+ #: functions/core.php:268
651
+ msgid "Once Biweekly"
652
+ msgstr "Toutes les deux semaines"
653
+
654
+ #: functions/core.php:269
655
+ msgid "Once Monthly"
656
+ msgstr "Mensuel"
657
+
658
+ #: functions/core.php:287
659
+ msgid "You can only delete directories inside your WordPress installation"
660
+ msgstr ""
661
+ "Vous ne pouvez supprimer que les sauvegardes sous votre installation de "
662
+ "WordPress"
663
+
664
+ #: functions/core.php:352
665
+ msgid ""
666
+ "This %s file ensures that other people cannot download your backup files."
667
+ msgstr ""
668
+ "Ce fichier %s permet de s'assurer que personne d'autre ne puisse télécharger "
669
+ "vos fichiers de sauvegarde."
670
+
671
+ #: functions/interface.php:32
672
+ msgid "Download"
673
+ msgstr "Télécharger"
674
+
675
+ #: functions/interface.php:57 functions/interface.php:70
676
+ msgid "BackUpWordPress is almost ready."
677
+ msgstr "BackUpWordPress a presque terminé."
678
+
679
+ #: functions/interface.php:57
680
+ msgid ""
681
+ "The backups directory can't be created because your %1$s directory isn't "
682
+ "writable, run %2$s or %3$s or create the folder yourself."
683
+ msgstr ""
684
+ "Le dossier de sauvegarde ne peut être créé car le dossier %1$s n'a pas "
685
+ "l'autorisation d'écriture. Exécutez %2$s ou %3$s, ou réglez les permissions "
686
+ "adéquates."
687
+
688
+ #: functions/interface.php:70
689
+ msgid ""
690
+ "Your backups directory isn't writable, run %1$s or %2$s or set the "
691
+ "permissions yourself."
692
+ msgstr ""
693
+ "Votre dossier de sauvegarde n'a pas l'autorisation d'écriture. Exécutez %1$s "
694
+ "ou %2$s, ou réglez les permissions adéquates."
695
+
696
+ #: functions/interface.php:81
697
+ msgid ""
698
+ "%1$s is running in %2$s, please contact your host and ask them to disable "
699
+ "it. BackUpWordPress may not work correctly whilst %3$s is on."
700
+ msgstr ""
701
+ "%1$s s'exécute dans %2$s, merci de contacter votre hébergeur et de lui "
702
+ "demande de désactiver cela. BackUpWordPress peut ne pas fonctionner "
703
+ "correctement tant que %3$s est activé."
704
+
705
+ #: functions/interface.php:81
706
+ msgid "http://php.net/manual/en/features.safe-mode.php"
707
+ msgstr "http://br2.php.net/manual/fr/features.safe-mode.php"
708
+
709
+ #: functions/interface.php:81
710
+ msgid "Safe Mode"
711
+ msgstr "Safe mode"
712
+
713
+ #: functions/interface.php:92
714
+ msgid ""
715
+ "Your custom backups directory %1$s doesn't exist and can't be created, your "
716
+ "backups will be saved to %2$s instead."
717
+ msgstr ""
718
+ "Le dossier de sauvegarde %1$s n'existe pas et ne peut être créé. Vos "
719
+ "sauvegardes seront stockées dans %2$s."
720
+
721
+ #: functions/interface.php:103
722
+ msgid ""
723
+ "Your custom backups directory %1$s isn't writable, new backups will be saved "
724
+ "to %2$s instead."
725
+ msgstr ""
726
+ "Le dossier de sauvegarde %1$s n'a pas l'autorisation d'écriture. Les "
727
+ "nouvelles sauvegardes seront stockées dans %2$s."
728
+
729
+ #: functions/interface.php:114
730
+ msgid "BackUpWordPress detected issues with your last backup."
731
+ msgstr ""
732
+ "BackUpWordPress a détecté des problèmes lors de la dernière sauvegarde."
733
+
734
+ #: functions/interface.php:127
735
+ msgid "Your backup root path %s isn't readable."
736
+ msgstr ""
737
+ "Permission insuffisante en lecture de la racine du chemin de sauvegarde %s."
738
+
739
+ #: functions/interface.php:187
740
+ msgid "Database and Files"
741
+ msgstr "Base de données et fichiers"
742
+
743
+ #: functions/interface.php:190
744
+ msgid "Files"
745
+ msgstr "Fichiers"
746
+
747
+ #: functions/interface.php:193
748
+ msgid "Database"
749
+ msgstr "Base de données"
750
+
751
+ #: functions/interface.php:198
752
+ msgid "Legacy"
753
+ msgstr "Contribution"
754
+
755
+ #: functions/interface.php:213
756
+ msgid "Started %s ago"
757
+ msgstr "Démarré il y a %s"
758
+
759
+ #: functions/interface.php:215
760
+ msgid "cancel"
761
+ msgstr "annuler"
762
+
763
+ #: functions/interface.php:261
764
+ msgid "% Backups Completed"
765
+ msgstr "% Sauvegardes terminées"
766
+
767
+ #: functions/interface.php:263
768
+ msgid "No Backups Completed"
769
+ msgstr "Aucune Sauvegarde Terminée"
770
+
771
+ #: functions/interface.php:265
772
+ msgid "1 Backup Completed"
773
+ msgstr "1 Sauvegarde Disponible"
774
+
775
+ #: functions/interface.php:273
776
+ msgid "Complete Hourly"
777
+ msgstr "Complet toutes les heures"
778
+
779
+ #: functions/interface.php:274
780
+ msgid "File Hourly"
781
+ msgstr "Fichier une fois l'heure"
782
+
783
+ #: functions/interface.php:275
784
+ msgid "Database Hourly"
785
+ msgstr "BDD une fois l'heure"
786
+
787
+ #: functions/interface.php:276
788
+ msgid "Complete Twicedaily"
789
+ msgstr "Complet deux fois par jour"
790
+
791
+ #: functions/interface.php:277
792
+ msgid "File Twicedaily"
793
+ msgstr "Fichier deux fois par jour"
794
+
795
+ #: functions/interface.php:278
796
+ msgid "Database Twicedaily"
797
+ msgstr "BDD deux fois par jour"
798
+
799
+ #: functions/interface.php:279
800
+ msgid "Complete Daily"
801
+ msgstr "Complet quotidiennement"
802
+
803
+ #: functions/interface.php:280
804
+ msgid "File Daily"
805
+ msgstr "Fichier quotidiennement"
806
+
807
+ #: functions/interface.php:281
808
+ msgid "Database Daily"
809
+ msgstr "BDD quotidien"
810
+
811
+ #: functions/interface.php:282
812
+ msgid "Complete Weekly"
813
+ msgstr "Complet hebdomadaire"
814
+
815
+ #: functions/interface.php:283
816
+ msgid "File Weekly"
817
+ msgstr "Fichier hebdomadaire"
818
+
819
+ #: functions/interface.php:284
820
+ msgid "Database Weekly"
821
+ msgstr "BDD hebdomadaire"
822
+
823
+ #: functions/interface.php:285
824
+ msgid "Complete Biweekly"
825
+ msgstr "Complet bi hebdomadaire"
826
+
827
+ #: functions/interface.php:286
828
+ msgid "File Biweekly"
829
+ msgstr "Fichiers bihebdomadaire"
830
+
831
+ #: functions/interface.php:287
832
+ msgid "Database Biweekly"
833
+ msgstr "BDD bihebdomadaire"
834
+
835
+ #: functions/interface.php:288
836
+ msgid "Complete Monthly"
837
+ msgstr "Complet mensuel"
838
+
839
+ #: functions/interface.php:289
840
+ msgid "File Monthly"
841
+ msgstr "Fichier mensuel"
842
+
843
+ #: functions/interface.php:290
844
+ msgid "Database Monthly"
845
+ msgstr "BDD mensuel"
846
+
847
+ #: functions/interface.php:291
848
+ msgid "Complete Manually"
849
+ msgstr "Complet mensuel"
850
+
851
+ #: functions/interface.php:292
852
+ msgid "File Manually"
853
+ msgstr "Fichier manuel"
854
+
855
+ #: functions/interface.php:293
856
+ msgid "Database Manually"
857
+ msgstr "BDD manuel"
858
+
859
+ #: hm-backup/hm-backup.php:302
860
+ msgid "archive filename must be a non empty string"
861
+ msgstr "le nom de fichier doit être une chaîne de cqrqctères non vide"
862
+
863
+ #: hm-backup/hm-backup.php:305
864
+ msgid "invalid file extension for archive filename <code>%s</code>"
865
+ msgstr "extension de fichier incorrect pour le fichier de nom <code>%s</code>"
866
+
867
+ #: hm-backup/hm-backup.php:345
868
+ msgid "database dump filename must be a non empty string"
869
+ msgstr "le nom de fichier pour l'export de la BDD ne peut être vide"
870
+
871
+ #: hm-backup/hm-backup.php:348
872
+ msgid "invalid file extension for database dump filename <code>%s</code>"
873
+ msgstr ""
874
+ "l'extension de fichier de l'export de la BDD est invalide <code>%s</code>"
875
+
876
+ #: hm-backup/hm-backup.php:379
877
+ msgid "Invalid root path <code>%s</code> must be a valid directory path"
878
+ msgstr "Répertoire racine <code>%s</code> doit être un chemin valide"
879
+
880
+ #: hm-backup/hm-backup.php:408
881
+ msgid "Invalid backup path <code>%s</code> must be a non empty (string)"
882
+ msgstr "Chemin de sauvegarde invalide <code>%s</code>, ne peut pas être vide"
883
+
884
+ #: hm-backup/hm-backup.php:460
885
+ msgid ""
886
+ "Invalid backup type <code>%s</code> must be one of (string) file, database "
887
+ "or complete"
888
+ msgstr ""
889
+ "Type de sauvegarde invalide <code>%s</code> doit être parmi les suivants: "
890
+ "file, database ou complete"
891
+
892
+ msgid "BackUpWordPress"
893
+ msgstr "BackUpWordPress"
894
+
895
+ msgid "http://bwp.hmn.md/"
896
+ msgstr "http://bwp.hmn.md/"
897
+
898
+ msgid ""
899
+ "Simple automated backups of your WordPress powered website. Once activated "
900
+ "you'll find me under <strong>Tools &rarr; Backups</strong>."
901
+ msgstr ""
902
+ "Sauvegardes automatiques et faciles de votre site WordPress. Une fois "
903
+ "activé, les règlages se trouvent ici: <strong>Outils > Sauvegardes</strong>"
904
+
905
+ msgid "Human Made Limited"
906
+ msgstr "Human Made Limited"
907
+
908
+ msgid "http://hmn.md/"
909
+ msgstr "http://hmn.md/"
910
+
911
+ #: admin/actions.php:221
912
+ msgid "The schedule ID was not provided. Aborting."
913
+ msgstr "L'identifiant d'horaire non fourni. Execution interrompue."
914
+
915
+ #: admin/actions.php:278
916
+ msgid "Backup type cannot be empty"
917
+ msgstr "Le type de sauvegarde doit être indiqué"
918
+
919
+ #: admin/actions.php:282
920
+ msgid "Invalid backup type"
921
+ msgstr "Type de sauvegarde inexistant"
922
+
923
+ #: admin/actions.php:296
924
+ msgid "Schedule cannot be empty"
925
+ msgstr "La planification doit être indiquée"
926
+
927
+ #: admin/actions.php:300
928
+ msgid "Invalid schedule"
929
+ msgstr "Horaire incorrect"
930
+
931
+ #: admin/actions.php:314
932
+ msgid "Day of the week must be a valid lowercase day name"
933
+ msgstr "Le jour de la semain doit être un nom de jour existant en minuscules"
934
+
935
+ #: admin/actions.php:333
936
+ msgid "Day of month must be between 1 and 31"
937
+ msgstr "La valeur pour jour du mois doit être un nombre entre 1 et 31"
938
+
939
+ #: admin/actions.php:352
940
+ msgid "Hours must be between 0 and 23"
941
+ msgstr "La valeur pour les heures doit être entre 0 et 23"
942
+
943
+ #: admin/actions.php:371
944
+ msgid "Minutes must be between 0 and 59"
945
+ msgstr "Doit être un nombre entre 0 et 59"
946
+
947
+ #: admin/actions.php:385
948
+ msgid "Max backups can't be empty"
949
+ msgstr "Le nombre maximum de sauvegarde doit être indiqué"
950
+
951
+ #: admin/actions.php:389
952
+ msgid "Max backups must be a number"
953
+ msgstr "Le nombre maximum de sauvegardes doit être un nombre"
954
+
955
+ #: admin/actions.php:393
956
+ msgid "Max backups must be greater than 0"
957
+ msgstr "Le nombre maximum de sauvegardes doit être supérieur à 0"
958
+
959
+ #: admin/actions.php:582
960
+ msgid ""
961
+ "Your backup completed but with the following errors / warnings, it's "
962
+ "probably ok to ignore these."
963
+ msgstr ""
964
+ "La sauvegarde s'est achevée, mais a généré les erreurs suivantes, vous "
965
+ "pouvez probablement les ignorer."
966
+
967
+ #: admin/actions.php:586
968
+ msgid "Your backup failed"
969
+ msgstr "La sauvegarde a échoué"
970
+
971
+ #: admin/actions.php:590
972
+ msgid "Here's the response from the server:"
973
+ msgstr "Voici la réponse du serveur :"
974
+
975
+ #: admin/actions.php:594
976
+ msgid ""
977
+ "You can email details of this error to %s so they can look into the issue."
978
+ msgstr ""
979
+ "Vous pouvez envoyez les détails de cette erreur par e-mail ) %s afin qu'il "
980
+ "l'analyse."
981
+
982
+ #: admin/actions.php:596
983
+ msgid "Close"
984
+ msgstr "Fermer"
985
+
986
+ #: admin/actions.php:597
987
+ msgid "Email to Support"
988
+ msgstr "Contacter le support technique par e-mail"
989
+
990
+ #: admin/actions.php:705 admin/actions.php:711 functions/interface.php:81
991
+ #: functions/interface.php:92 functions/interface.php:103
992
+ #: functions/interface.php:127
993
+ msgid "BackUpWordPress has detected a problem."
994
+ msgstr "BackUpWordPress a détecté un problème."
995
+
996
+ #: admin/actions.php:705 admin/actions.php:711
997
+ msgid ""
998
+ "%1$s is returning a %2$s response which could mean cron jobs aren't getting "
999
+ "fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. "
1000
+ "See the %3$s for more details."
1001
+ msgstr ""
1002
+ "%1$s retourne une réponse %2$s ce qui signifie que les tâches cron ne sont "
1003
+ "pas lancées correctement. BackUpWordPress dépend du bon fonctionnement de wp-"
1004
+ "cron pour lancer les sauvegardes programmées. Voir %3$s pour plus de détails."
1005
+
1006
+ #: admin/backups-table.php:8 admin/schedule-form-excludes.php:98
1007
+ msgid "Size"
1008
+ msgstr "Taille"
1009
+
1010
+ #: admin/backups-table.php:9 admin/schedule-form-excludes.php:100
1011
+ msgid "Type"
1012
+ msgstr "Type"
1013
+
1014
+ #: admin/backups-table.php:10
1015
+ msgid "Actions"
1016
+ msgstr "Actions"
1017
+
1018
+ #: admin/backups-table.php:35
1019
+ msgid "This is where your backups will appear once you have some."
1020
+ msgstr "Vos sauvegardes seront disponibles ici"
1021
+
1022
+ #: admin/backups.php:22
1023
+ msgid "add schedule"
1024
+ msgstr "ajouter un horaire"
1025
+
1026
+ #: admin/backups.php:26
1027
+ msgid "Support"
1028
+ msgstr "Support"
1029
+
1030
+ #: admin/backups.php:32
1031
+ msgid "Enable Support"
1032
+ msgstr "Activer le support"
1033
+
1034
+ #: admin/constants.php:3
1035
+ msgid ""
1036
+ "You can %1$s any of the following %2$s in your %3$s to control advanced "
1037
+ "settings. %4$s. Defined %5$s will be highlighted."
1038
+ msgstr ""
1039
+ "Vous pouvez %1$s chacun des prochains %2$s dans votre %3$s pour régler les "
1040
+ "paramètres avancés. %4$s. %5$s défini sera souligné."
1041
+
1042
+ #: admin/constants.php:3 admin/menu.php:69
1043
+ msgid "Constants"
1044
+ msgstr "Constantes"
1045
+
1046
+ #: admin/constants.php:3
1047
+ msgid "The Codex can help"
1048
+ msgstr "Le Codex peut aider"
1049
+
1050
+ #: admin/constants.php:14 admin/constants.php:30 admin/constants.php:46
1051
+ #: admin/constants.php:62 admin/constants.php:78 admin/constants.php:94
1052
+ #: admin/constants.php:110 classes/class-email.php:58
1053
+ msgid "You've set it to: %s"
1054
+ msgstr "Vous l'avez défini comme suit: %s"
1055
+
1056
+ #: admin/constants.php:17
1057
+ msgid ""
1058
+ "The path to folder you would like to store your backup files in, defaults to "
1059
+ "%s."
1060
+ msgstr "Le chemin du dossier de sauvegarde. Par défaut : %s."
1061
+
1062
+ #: admin/constants.php:17 admin/constants.php:33 admin/constants.php:49
1063
+ #: admin/constants.php:65 admin/constants.php:81 admin/constants.php:97
1064
+ #: admin/constants.php:113 classes/class-email.php:61
1065
+ msgid "e.g."
1066
+ msgstr "par exemple"
1067
+
1068
+ #: admin/constants.php:33
1069
+ msgid ""
1070
+ "The path to your %1$s executable. Will be used for the %2$s part of the back "
1071
+ "up if available."
1072
+ msgstr ""
1073
+ "Le chemin de l'exécutable %1$s. Il sera utilisé pour la partie %2$s de la "
1074
+ "sauvegarde, s'il est présent."
1075
+
1076
+ #: admin/constants.php:33 admin/constants.php:49
1077
+ msgid "database"
1078
+ msgstr "base de données"
1079
+
1080
+ #: admin/constants.php:49
1081
+ msgid ""
1082
+ "The path to your %1$s executable. Will be used to zip up your %2$s and %3$s "
1083
+ "if available."
1084
+ msgstr ""
1085
+ "Le chemin vers l'exécutable %1$s. Il sera utilisé pour compresser %2$s et "
1086
+ "%3$s s'il est présent."
1087
+
1088
+ #: admin/constants.php:49
1089
+ msgid "files"
1090
+ msgstr "fichiers"
1091
+
1092
+ #: admin/constants.php:65
1093
+ msgid ""
1094
+ "Comma separated list of files or directories to exclude, the backups "
1095
+ "directory is automatically excluded."
1096
+ msgstr ""
1097
+ "Liste, séparée par des virgules, des dossiers à exclure. Le dossier de "
1098
+ "sauvegarde est automatiquement exclu."
1099
+
1100
+ #: admin/constants.php:81
1101
+ msgid "The capability to use when calling %1$s. Defaults to %2$s."
1102
+ msgstr "La capacité à utiliser quand %1$s est appelé. Par défaut : %2$s."
1103
+
1104
+ #: admin/constants.php:97
1105
+ msgid "The root directory that is backed up. Defaults to %s."
1106
+ msgstr "Le répertoire racine à sauvegarder. Par défaut : %s."
1107
+
1108
+ #: admin/constants.php:113
1109
+ msgid "The time that your schedules should run. Defaults to %s."
1110
+ msgstr "L'heure à laquelle vos sauvegardes seront effectuées. Par défaut : %s."
1111
+
1112
+ #: admin/enable-support.php:3
1113
+ msgid "Enable BackUpWordPress Support"
1114
+ msgstr "Activer le support "
1115
+
1116
+ #: admin/enable-support.php:5
1117
+ msgid ""
1118
+ "BackUpWordPress uses %s to provide support. In addition to allowing you to "
1119
+ "send and receive messages we also send the following server information "
1120
+ "along with your requests:"
1121
+ msgstr ""
1122
+ "BqckUpWordPress utilise %s pour fournir du support technique. En plus de "
1123
+ "vous permettre d'envoyer et recevoir des messages, de l'information "
1124
+ "concernant la configuration du serveur est également jointe."
1125
+
1126
+ #: admin/enable-support.php:58
1127
+ msgid "You can disable support in the future by deactivating BackUpWordPress."
1128
+ msgstr ""
1129
+ "Vous pouvez désactiver le support tecnique en désactivant BackUpWordPress."
1130
+
1131
+ #: admin/enable-support.php:60
1132
+ msgid "No thanks"
1133
+ msgstr "Non merci"
1134
+
1135
+ #: admin/enable-support.php:61
1136
+ msgid "Yes I want to enable support"
1137
+ msgstr "Oui, je veux activer le support technique"
1138
+
1139
+ #: admin/faq.php:2
1140
+ msgid "Where does BackUpWordPress store the backup files?"
1141
+ msgstr "Où sont stockées les sauvegardes ?"
1142
+
1143
+ #: admin/faq.php:4
1144
+ msgid ""
1145
+ "Backups are stored on your server in <code>/wp-content/backups</code>, you "
1146
+ "can change the directory."
1147
+ msgstr ""
1148
+ "Les sauvegardes sont stockées sur votre serveur sous <code>/wp-content/"
1149
+ "backups</code>, vous pouvez changer ce répertoire."
1150
+
1151
+ #: admin/faq.php:6
1152
+ msgid ""
1153
+ "Important: By default BackUpWordPress backs up everything in your site root "
1154
+ "as well as your database, this includes any non WordPress folders that "
1155
+ "happen to be in your site root. This does mean that your backup directory "
1156
+ "can get quite large."
1157
+ msgstr ""
1158
+ "Important: Par défault, BackUpWordPress sauvegarde tout ce que contient la "
1159
+ "racine de votre site ainsi que votre base de données, y compris d'éventuels "
1160
+ "répertoires externes à WordPress. Ceci peut causer des archives de taille "
1161
+ "conséquente."
1162
+
1163
+ #: admin/faq.php:8
1164
+ msgid "What if I want to back up my site to another destination?"
1165
+ msgstr ""
1166
+ "Et si je désire stocker mes sauvegardes ailleurs que sur l'hébergement ?"
1167
+
1168
+ #: admin/faq.php:10
1169
+ msgid ""
1170
+ "BackUpWordPress Pro supports Dropbox, Google Drive, Amazon S3, Rackspace, "
1171
+ "Azure, DreamObjects and FTP/SFTP. Check it out here: <a href=\"http://bwp."
1172
+ "hmn.md/?utm_source=wordpress-org&utm_medium=plugin-"
1173
+ "page&utm_campaign=freeplugin\" title=\"BackUpWordPress Homepage\" target="
1174
+ "\"_blank\">https://bwp.hmn.md</a>"
1175
+ msgstr ""
1176
+ "BackUpWordPress Pro est compatible avec Dropbox, Google Drive, Amazon S3, "
1177
+ "Rackspace, Azure, DreamObjects and FTP/SFTP. Plus d'infos: <a href=\"http://"
1178
+ "bwp.hmn.md/?utm_source=wordpress-org&utm_medium=plugin-"
1179
+ "page&utm_campaign=freeplugin\" title=\"BackUpWordPress Homepage\" target="
1180
+ "\"_blank\">https://bwp.hmn.md</a>"
1181
+
1182
+ #: admin/faq.php:12
1183
+ msgid "How do I restore my site from a backup?"
1184
+ msgstr "Comment restaurer mon site à partir d'une sauvegarde ?"
1185
+
1186
+ #: admin/faq.php:14
1187
+ msgid ""
1188
+ "You need to download the latest backup file either by clicking download on "
1189
+ "the backups page or via <code>FTP</code>. <code>Unzip</code> the files and "
1190
+ "upload all the files to your server overwriting your site. You can then "
1191
+ "import the database using your hosts database management tool (likely "
1192
+ "<code>phpMyAdmin</code>)."
1193
+ msgstr ""
1194
+ "Vous devez télécharger l'archive la plus récente soit en cliquant "
1195
+ "télécharger à partir de la page des sauvegardes ou via <code>FTP</code>. "
1196
+ "<code>Extraire</code> les fichiers et les transférer sur votre serveur en "
1197
+ "remplaçant les fichiers existants. Vous pouvez alors importer la base de "
1198
+ "données en utilisant votre outil de gestion de base de données. Probablement "
1199
+ "<code>phpMyAdmin</code>"
1200
+
1201
+ #: admin/faq.php:16
1202
+ msgid ""
1203
+ "See this guide for more details - <a href=\"https://bwp.hmn.md/support-"
1204
+ "center/restore-backup/\" title=\"Go to support center\" target=\"_blank"
1205
+ "\">How to restore from backup</a>."
1206
+ msgstr ""
1207
+ "Voir ce guide pour plus de détails - <a href=\"https://bwp.hmn.md/support-"
1208
+ "center/restore-backup/\" title=\"Go to support center\" target=\"_blank"
1209
+ "\">Comment restaurer à partir d'une sauvegarde</a>."
1210
+
1211
+ #: admin/faq.php:18
1212
+ msgid "Does BackUpWordPress back up the backups directory?"
1213
+ msgstr "Est-ce que BackUpWordPress sauvegarde le répertoire de sauvegardes ?"
1214
+
1215
+ #: admin/faq.php:20
1216
+ msgid "No."
1217
+ msgstr "Non"
1218
+
1219
+ #: admin/faq.php:22
1220
+ msgid "I'm not receiving my backups by email?"
1221
+ msgstr "Je ne reçois pas mes sauvegardes par email ?"
1222
+
1223
+ #: admin/faq.php:24
1224
+ msgid ""
1225
+ "Most servers have a filesize limit on email attachments, it's generally "
1226
+ "about 10mb. If your backup file is over that limit it won't be sent attached "
1227
+ "to the email, instead you should receive an email with a link to download "
1228
+ "the backup, if you aren't even receiving that then you likely have a mail "
1229
+ "issue on your server that you'll need to contact your host about."
1230
+ msgstr ""
1231
+ "La plupart des serveurs limitent la taille des pièces jointes aux emails, "
1232
+ "environ 10Mb en moyenne. Si votre archive est au delà de cette limite, elle "
1233
+ "ne sera pas jointe à l'email. Vous recevrez un email avec un lien pour "
1234
+ "télécharger le fichier. Si vous ne recevez aucun email, vous devrez "
1235
+ "probablement contacter votre hébergeur "
1236
+
1237
+ #: admin/faq.php:26
1238
+ msgid "How many backups are stored by default?"
1239
+ msgstr "Combien de sauvegardes sont stockées par défaut ?"
1240
+
1241
+ #: admin/faq.php:28
1242
+ msgid "BackUpWordPress stores the last 10 backups by default."
1243
+ msgstr ""
1244
+ "BackUpWordPress stocke les 10 sauvegardes les plus récentes par défaut."
1245
+
1246
+ #: admin/faq.php:30
1247
+ msgid "How long should a backup take?"
1248
+ msgstr "Combien de temps en moyenne prend une sauvegarde ?"
1249
+
1250
+ #: admin/faq.php:32
1251
+ msgid ""
1252
+ "Unless your site is very large (many gigabytes) it should only take a few "
1253
+ "minutes to perform a back up, if your back up has been running for longer "
1254
+ "than an hour it's safe to assume that something has gone wrong, try de-"
1255
+ "activating and re-activating the plugin, if it keeps happening, contact "
1256
+ "support."
1257
+ msgstr ""
1258
+ "A mois que la taille totale de votre site soit très grande, celq ne devrait "
1259
+ "prendre que quelques minutes pour effectuer une sauvegarde, si celle-ci "
1260
+ "n'est toujours pas terminée après une heure, vous pouvez être certain qu'un "
1261
+ "problème s'est produit. Essayez de désactiver puis de réactiver le plugin."
1262
+
1263
+ #: admin/faq.php:34
1264
+ msgid "What do I do if I get the wp-cron error message?"
1265
+ msgstr "Que dois-je faire si je reçois un message d'erreur pour wp-cron ?"
1266
+
1267
+ #: admin/faq.php:36
1268
+ msgid ""
1269
+ "The issue is that your <code>wp-cron.php</code> is not returning a "
1270
+ "<code>200</code> response when hit with a HTTP request originating from your "
1271
+ "own server, it could be several things, in most cases, it's an issue with "
1272
+ "the server / site."
1273
+ msgstr ""
1274
+ "Le problème est que le fichier <code>wp-cron.php</code> ne renvoie pas un "
1275
+ "code <code>200</code> lorsqu'il reçoit une requête HTTP à pqrtir de votre "
1276
+ "propre serveur. Plusieurs raisons peuvent causer ce problème. La plupart du "
1277
+ "temps, c'est la faute du serveur / site."
1278
+
1279
+ #: admin/faq.php:38
1280
+ msgid "There are some things you can test to confirm this is the issue."
1281
+ msgstr ""
1282
+ "Il y a certaines choses que vous pouvez faire pour confirmer le problème."
1283
+
1284
+ #: admin/faq.php:40
1285
+ msgid "Are scheduled posts working? (They use wp-cron as well ). "
1286
+ msgstr "Est-ce que la publication programmée fonctionne ?"
1287
+
1288
+ #: admin/faq.php:42
1289
+ msgid ""
1290
+ "Are you hosted on Heart Internet? (wp-cron may not be supported by Heart "
1291
+ "Internet, see below for work-around)."
1292
+ msgstr "Est-ce que votre site est hébergé par Heart Internet ?"
1293
+
1294
+ #: admin/faq.php:44
1295
+ msgid "If you click manual backup does it work?"
1296
+ msgstr "Est-ce que la sauvegarde manuelle fonctionne ?"
languages/{hmbkp-he_IL.mo → backupwordpress-he_IL.mo} RENAMED
File without changes
languages/{hmbkp-he_IL.po → backupwordpress-he_IL.po} RENAMED
File without changes
languages/{hmbkp-it_IT.mo → backupwordpress-it_IT.mo} RENAMED
File without changes
languages/{hmbkp-it_IT.po → backupwordpress-it_IT.po} RENAMED
File without changes
languages/{hmbkp-lt_LT.mo → backupwordpress-lt_LT.mo} RENAMED
File without changes
languages/{hmbkp-lt_LT.po → backupwordpress-lt_LT.po} RENAMED
File without changes
languages/{hmbkp-lv_LV.mo → backupwordpress-lv_LV.mo} RENAMED
File without changes
languages/{hmbkp-lv_LV.po → backupwordpress-lv_LV.po} RENAMED
File without changes
languages/{hmbkp-nl_NL.mo → backupwordpress-nl_NL.mo} RENAMED
File without changes
languages/{hmbkp-nl_NL.po → backupwordpress-nl_NL.po} RENAMED
File without changes
languages/{hmbkp-pl_PL.mo → backupwordpress-pl_PL.mo} RENAMED
File without changes
languages/{hmbkp-pl_PL.po → backupwordpress-pl_PL.po} RENAMED
File without changes
languages/{hmbkp-pt_BR.mo → backupwordpress-pt_BR.mo} RENAMED
File without changes
languages/{hmbkp-pt_BR.po → backupwordpress-pt_BR.po} RENAMED
File without changes
languages/{hmbkp-ro_RO.mo → backupwordpress-ro_RO.mo} RENAMED
File without changes
languages/{hmbkp-ro_RO.po → backupwordpress-ro_RO.po} RENAMED
File without changes
languages/{hmbkp-ru_RU.mo → backupwordpress-ru_RU.mo} RENAMED
File without changes
languages/{hmbkp-ru_RU.po → backupwordpress-ru_RU.po} RENAMED
File without changes
languages/{hmbkp-sk_SK.mo → backupwordpress-sk_SK.mo} RENAMED
File without changes
languages/{hmbkp-sk_SK.po → backupwordpress-sk_SK.po} RENAMED
File without changes
languages/{hmbkp-sr_RS.mo → backupwordpress-sr_RS.mo} RENAMED
File without changes
languages/{hmbkp-sr_RS.po → backupwordpress-sr_RS.po} RENAMED
File without changes
languages/{hmbkp-zh-cn.mo → backupwordpress-zh-cn.mo} RENAMED
File without changes
languages/{hmbkp-zh-cn.po → backupwordpress-zh-cn.po} RENAMED
File without changes
languages/{hmbkp.pot → backupwordpress.pot} RENAMED
@@ -1,99 +1,71 @@
1
  # Copyright (C) 2014 Human Made Limited
2
- # This file is distributed under the same license as the BackUpWordPress package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: BackUpWordPress 3.0-beta\n"
6
  "Report-Msgid-Bugs-To: support@humanmade.co.uk\n"
7
- "POT-Creation-Date: 2014-10-15 19:32:59+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
  "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: Human Made Limited\n"
13
  "Language-Team: Human Made Limited\n"
14
- "X-Generator: grunt-wp-i18n 0.4.8\n"
15
 
16
- #: admin/actions.php:221
17
  msgid "The schedule ID was not provided. Aborting."
18
  msgstr ""
19
 
20
- #: admin/actions.php:278
21
  msgid "Backup type cannot be empty"
22
  msgstr ""
23
 
24
- #: admin/actions.php:282
25
  msgid "Invalid backup type"
26
  msgstr ""
27
 
28
- #: admin/actions.php:296
29
  msgid "Schedule cannot be empty"
30
  msgstr ""
31
 
32
- #: admin/actions.php:300
33
  msgid "Invalid schedule"
34
  msgstr ""
35
 
36
- #: admin/actions.php:314
37
  msgid "Day of the week must be a valid lowercase day name"
38
  msgstr ""
39
 
40
- #: admin/actions.php:333
41
  msgid "Day of month must be between 1 and 31"
42
  msgstr ""
43
 
44
- #: admin/actions.php:352
45
  msgid "Hours must be between 0 and 23"
46
  msgstr ""
47
 
48
- #: admin/actions.php:371
49
  msgid "Minutes must be between 0 and 59"
50
  msgstr ""
51
 
52
- #: admin/actions.php:385
53
  msgid "Max backups can't be empty"
54
  msgstr ""
55
 
56
- #: admin/actions.php:389
57
  msgid "Max backups must be a number"
58
  msgstr ""
59
 
60
- #: admin/actions.php:393
61
  msgid "Max backups must be greater than 0"
62
  msgstr ""
63
 
64
- #: admin/actions.php:594
65
- msgid ""
66
- "Your backup completed but with the following errors / warnings, it's "
67
- "probably ok to ignore these."
68
- msgstr ""
69
-
70
- #: admin/actions.php:598
71
- msgid "Your backup failed"
72
- msgstr ""
73
-
74
- #: admin/actions.php:602
75
- msgid "Here's the response from the server:"
76
- msgstr ""
77
-
78
- #: admin/actions.php:606
79
- msgid "You can email details of this error to %s so they can look into the issue."
80
- msgstr ""
81
-
82
- #: admin/actions.php:608
83
- msgid "Close"
84
- msgstr ""
85
-
86
- #: admin/actions.php:609
87
- msgid "Email to Support"
88
- msgstr ""
89
-
90
- #: admin/actions.php:717 admin/actions.php:723 functions/interface.php:81
91
- #: functions/interface.php:92 functions/interface.php:103
92
- #: functions/interface.php:127
93
  msgid "BackUpWordPress has detected a problem."
94
  msgstr ""
95
 
96
- #: admin/actions.php:717 admin/actions.php:723
97
  msgid ""
98
  "%1$s is returning a %2$s response which could mean cron jobs aren't getting "
99
  "fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. "
@@ -435,7 +407,7 @@ msgid "Defined in wp-config.php"
435
  msgstr ""
436
 
437
  #: admin/schedule-form-excludes.php:48
438
- msgid "Remove"
439
  msgstr ""
440
 
441
  #: admin/schedule-form-excludes.php:64
@@ -498,7 +470,7 @@ msgid "Exclude &rarr;"
498
  msgstr ""
499
 
500
  #: admin/schedule-form-excludes.php:345 admin/schedule-form.php:185
501
- #: admin/schedule-settings.php:77
502
  msgid "Done"
503
  msgstr ""
504
 
@@ -654,10 +626,6 @@ msgstr ""
654
  msgid "store the last %1$s backups in %2$s"
655
  msgstr ""
656
 
657
- #: admin/schedule-sentence.php:128
658
- msgid "Backup my %1$s %2$s %3$s, %4$s. "
659
- msgstr ""
660
-
661
  #: admin/schedule-sentence.php:131
662
  msgid "%s. "
663
  msgstr ""
@@ -674,72 +642,62 @@ msgstr ""
674
  msgid "Settings"
675
  msgstr ""
676
 
677
- #: admin/schedule-settings.php:11
678
  msgid "Excludes"
679
  msgstr ""
680
 
681
- #: admin/schedule-settings.php:23 functions/interface.php:35
682
  msgid "Delete"
683
  msgstr ""
684
 
685
- #: backdrop/server.php:6
686
- msgid "No key supplied"
687
- msgstr ""
688
-
689
- #: backdrop/server.php:11
690
- msgid "Supplied key was not valid"
691
- msgstr ""
692
-
693
- #: backdrop/task.php:22
694
- msgid "Task is already scheduled to run"
695
- msgstr ""
696
-
697
- #: backdrop/task.php:41
698
- msgid "Task is not scheduled to run"
699
- msgstr ""
700
-
701
- #: backupwordpress.php:132
702
- msgid "BackUpWordPress requires WordPress version %s or greater."
703
- msgstr ""
704
-
705
- #: backupwordpress.php:180
706
  msgid "Update"
707
  msgstr ""
708
 
709
- #: backupwordpress.php:181
710
  msgid "Cancel"
711
  msgstr ""
712
 
713
- #: backupwordpress.php:182
714
  msgid ""
715
  "Are you sure you want to delete this schedule? All of it's backups will "
716
  "also be deleted."
717
  msgstr ""
718
 
719
- #: backupwordpress.php:182 backupwordpress.php:183 backupwordpress.php:184
720
- #: backupwordpress.php:185
721
  msgid "'Cancel' to go back, 'OK' to delete."
722
  msgstr ""
723
 
724
- #: backupwordpress.php:183
725
  msgid "Are you sure you want to delete this backup?"
726
  msgstr ""
727
 
728
- #: backupwordpress.php:184
729
  msgid "Are you sure you want to remove this exclude rule?"
730
  msgstr ""
731
 
732
- #: backupwordpress.php:185
733
  msgid ""
734
  "Reducing the number of backups that are stored on this server will cause "
735
  "some of your existing backups to be deleted, are you sure that's what you "
736
  "want?"
737
  msgstr ""
738
 
739
- #: backupwordpress.php:310
740
  msgid "Server Info"
741
  msgstr ""
742
 
 
 
 
 
 
 
 
 
 
 
743
  #: classes/class-email.php:26
744
  msgid "Email notification"
745
  msgstr ""
@@ -765,7 +723,7 @@ msgstr ""
765
  msgid "%s isn't a valid email"
766
  msgstr ""
767
 
768
- #: classes/class-email.php:175
769
  msgid "Backup of %s Failed"
770
  msgstr ""
771
 
@@ -815,66 +773,70 @@ msgstr ""
815
  msgid "Unfortunately the backup file was too large to attach to this email."
816
  msgstr ""
817
 
818
- #: classes/class-schedule.php:235
819
  msgid "Argument 1 for %s must be a valid integer"
820
  msgstr ""
821
 
822
- #: classes/class-schedule.php:589
823
  msgid "Argument 1 for %s must be a valid future timestamp"
824
  msgstr ""
825
 
826
- #: classes/class-schedule.php:626
827
  msgid "Argument 1 for %s must be a valid cron reoccurrence or \"manually\""
828
  msgstr ""
829
 
830
- #: classes/class-schedule.php:754 functions/interface.php:214
831
  msgid "Starting Backup"
832
  msgstr ""
833
 
834
- #: classes/class-schedule.php:872
835
  msgid "Dumping Database %s"
836
  msgstr ""
837
 
838
- #: classes/class-schedule.php:877
839
  msgid "Verifying Database Dump %s"
840
  msgstr ""
841
 
842
- #: classes/class-schedule.php:882
843
  msgid "Creating zip archive %s"
844
  msgstr ""
845
 
846
- #: classes/class-schedule.php:887
847
  msgid "Verifying Zip Archive %s"
848
  msgstr ""
849
 
850
- #: classes/class-schedule.php:892
851
  msgid "Finishing Backup"
852
  msgstr ""
853
 
854
- #: classes/class-schedule.php:994
855
  msgid "Argument 1 for %s must be a non empty string"
856
  msgstr ""
857
 
858
- #: classes/class-schedule.php:998
859
  msgid "%s doesn't exist"
860
  msgstr ""
861
 
862
- #: classes/class-schedule.php:1002
863
  msgid "That backup wasn't created by this schedule"
864
  msgstr ""
865
 
866
- #: classes/class-services.php:273
867
  msgid "Argument 1 for %s must be a valid filepath"
868
  msgstr ""
869
 
870
- #: classes/class-services.php:288
871
  msgid "Argument 1 for %s must be a registered service"
872
  msgstr ""
873
 
874
- #: classes/class-services.php:305
875
  msgid "Argument 1 for %s must be a valid class"
876
  msgstr ""
877
 
 
 
 
 
878
  #: classes/wp-cli.php:43
879
  msgid "BackUpWordPress may not work when php is running with %s on"
880
  msgstr ""
@@ -903,256 +865,256 @@ msgstr ""
903
  msgid "Backup Failed"
904
  msgstr ""
905
 
906
- #: functions/core.php:247
 
 
 
 
907
  msgid "BackUpWordPress has setup your default schedules."
908
  msgstr ""
909
 
910
- #: functions/core.php:247
911
  msgid ""
912
  "By default BackUpWordPress performs a daily backup of your database and a "
913
  "weekly backup of your database &amp; files. You can modify these schedules."
914
  msgstr ""
915
 
916
- #: functions/core.php:264
917
  msgid "Once Hourly"
918
  msgstr ""
919
 
920
- #: functions/core.php:265
921
  msgid "Twice Daily"
922
  msgstr ""
923
 
924
- #: functions/core.php:266
925
  msgid "Once Daily"
926
  msgstr ""
927
 
928
- #: functions/core.php:267
929
  msgid "Once Weekly"
930
  msgstr ""
931
 
932
- #: functions/core.php:268
933
  msgid "Once Biweekly"
934
  msgstr ""
935
 
936
- #: functions/core.php:269
937
  msgid "Once Monthly"
938
  msgstr ""
939
 
940
- #: functions/core.php:287
941
  msgid "You can only delete directories inside your WordPress installation"
942
  msgstr ""
943
 
944
- #: functions/core.php:352
945
  msgid "This %s file ensures that other people cannot download your backup files."
946
  msgstr ""
947
 
948
- #: functions/interface.php:32
949
  msgid "Download"
950
  msgstr ""
951
 
952
- #: functions/interface.php:57 functions/interface.php:70
953
- msgid "BackUpWordPress is almost ready."
954
  msgstr ""
955
 
956
- #: functions/interface.php:57
 
 
 
 
957
  msgid ""
958
  "The backups directory can't be created because your %1$s directory isn't "
959
  "writable, run %2$s or %3$s or create the folder yourself."
960
  msgstr ""
961
 
962
- #: functions/interface.php:70
963
  msgid ""
964
  "Your backups directory isn't writable, run %1$s or %2$s or set the "
965
  "permissions yourself."
966
  msgstr ""
967
 
968
- #: functions/interface.php:81
969
  msgid ""
970
  "%1$s is running in %2$s, please contact your host and ask them to disable "
971
  "it. BackUpWordPress may not work correctly whilst %3$s is on."
972
  msgstr ""
973
 
974
- #: functions/interface.php:81
975
  msgid "http://php.net/manual/en/features.safe-mode.php"
976
  msgstr ""
977
 
978
- #: functions/interface.php:81
979
  msgid "Safe Mode"
980
  msgstr ""
981
 
982
- #: functions/interface.php:92
983
  msgid ""
984
  "Your custom backups directory %1$s doesn't exist and can't be created, your "
985
  "backups will be saved to %2$s instead."
986
  msgstr ""
987
 
988
- #: functions/interface.php:103
989
  msgid ""
990
  "Your custom backups directory %1$s isn't writable, new backups will be "
991
  "saved to %2$s instead."
992
  msgstr ""
993
 
994
- #: functions/interface.php:114
995
- msgid "BackUpWordPress detected issues with your last backup."
996
- msgstr ""
997
-
998
- #: functions/interface.php:127
999
  msgid "Your backup root path %s isn't readable."
1000
  msgstr ""
1001
 
1002
- #: functions/interface.php:187
1003
  msgid "Database and Files"
1004
  msgstr ""
1005
 
1006
- #: functions/interface.php:190
1007
  msgid "Files"
1008
  msgstr ""
1009
 
1010
- #: functions/interface.php:193
1011
  msgid "Database"
1012
  msgstr ""
1013
 
1014
- #: functions/interface.php:198
1015
  msgid "Legacy"
1016
  msgstr ""
1017
 
1018
- #: functions/interface.php:213
1019
  msgid "Started %s ago"
1020
  msgstr ""
1021
 
1022
- #: functions/interface.php:215
1023
  msgid "cancel"
1024
  msgstr ""
1025
 
1026
- #: functions/interface.php:261
1027
  msgid "% Backups Completed"
1028
  msgstr ""
1029
 
1030
- #: functions/interface.php:263
1031
  msgid "No Backups Completed"
1032
  msgstr ""
1033
 
1034
- #: functions/interface.php:265
1035
  msgid "1 Backup Completed"
1036
  msgstr ""
1037
 
1038
- #: functions/interface.php:273
1039
  msgid "Complete Hourly"
1040
  msgstr ""
1041
 
1042
- #: functions/interface.php:274
1043
  msgid "File Hourly"
1044
  msgstr ""
1045
 
1046
- #: functions/interface.php:275
1047
  msgid "Database Hourly"
1048
  msgstr ""
1049
 
1050
- #: functions/interface.php:276
1051
  msgid "Complete Twicedaily"
1052
  msgstr ""
1053
 
1054
- #: functions/interface.php:277
1055
  msgid "File Twicedaily"
1056
  msgstr ""
1057
 
1058
- #: functions/interface.php:278
1059
  msgid "Database Twicedaily"
1060
  msgstr ""
1061
 
1062
- #: functions/interface.php:279
1063
  msgid "Complete Daily"
1064
  msgstr ""
1065
 
1066
- #: functions/interface.php:280
1067
  msgid "File Daily"
1068
  msgstr ""
1069
 
1070
- #: functions/interface.php:281
1071
  msgid "Database Daily"
1072
  msgstr ""
1073
 
1074
- #: functions/interface.php:282
1075
  msgid "Complete Weekly"
1076
  msgstr ""
1077
 
1078
- #: functions/interface.php:283
1079
  msgid "File Weekly"
1080
  msgstr ""
1081
 
1082
- #: functions/interface.php:284
1083
  msgid "Database Weekly"
1084
  msgstr ""
1085
 
1086
- #: functions/interface.php:285
1087
  msgid "Complete Biweekly"
1088
  msgstr ""
1089
 
1090
- #: functions/interface.php:286
1091
  msgid "File Biweekly"
1092
  msgstr ""
1093
 
1094
- #: functions/interface.php:287
1095
  msgid "Database Biweekly"
1096
  msgstr ""
1097
 
1098
- #: functions/interface.php:288
1099
  msgid "Complete Monthly"
1100
  msgstr ""
1101
 
1102
- #: functions/interface.php:289
1103
  msgid "File Monthly"
1104
  msgstr ""
1105
 
1106
- #: functions/interface.php:290
1107
  msgid "Database Monthly"
1108
  msgstr ""
1109
 
1110
- #: functions/interface.php:291
1111
  msgid "Complete Manually"
1112
  msgstr ""
1113
 
1114
- #: functions/interface.php:292
1115
  msgid "File Manually"
1116
  msgstr ""
1117
 
1118
- #: functions/interface.php:293
1119
  msgid "Database Manually"
1120
  msgstr ""
1121
 
1122
- #: hm-backup/hm-backup.php:302
1123
  msgid "archive filename must be a non empty string"
1124
  msgstr ""
1125
 
1126
- #: hm-backup/hm-backup.php:305
1127
  msgid "invalid file extension for archive filename <code>%s</code>"
1128
  msgstr ""
1129
 
1130
- #: hm-backup/hm-backup.php:345
1131
  msgid "database dump filename must be a non empty string"
1132
  msgstr ""
1133
 
1134
- #: hm-backup/hm-backup.php:348
1135
  msgid "invalid file extension for database dump filename <code>%s</code>"
1136
  msgstr ""
1137
 
1138
- #: hm-backup/hm-backup.php:379
1139
  msgid "Invalid root path <code>%s</code> must be a valid directory path"
1140
  msgstr ""
1141
 
1142
- #: hm-backup/hm-backup.php:408
1143
  msgid "Invalid backup path <code>%s</code> must be a non empty (string)"
1144
  msgstr ""
1145
 
1146
- #: hm-backup/hm-backup.php:460
1147
  msgid ""
1148
  "Invalid backup type <code>%s</code> must be one of (string) file, database "
1149
  "or complete"
1150
  msgstr ""
1151
 
1152
- #. Plugin Name of the plugin/theme
1153
- msgid "BackUpWordPress"
1154
- msgstr ""
1155
-
1156
  #. Plugin URI of the plugin/theme
1157
  msgid "http://bwp.hmn.md/"
1158
  msgstr ""
@@ -1169,4 +1131,11 @@ msgstr ""
1169
 
1170
  #. Author URI of the plugin/theme
1171
  msgid "http://hmn.md/"
 
 
 
 
 
 
 
1172
  msgstr ""
1
  # Copyright (C) 2014 Human Made Limited
2
+ # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: BackUpWordPress 3.0.2\n"
6
  "Report-Msgid-Bugs-To: support@humanmade.co.uk\n"
7
+ "POT-Creation-Date: 2014-12-06 14:19:58+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
  "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: Human Made Limited\n"
13
  "Language-Team: Human Made Limited\n"
14
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
15
 
16
+ #: admin/actions.php:217
17
  msgid "The schedule ID was not provided. Aborting."
18
  msgstr ""
19
 
20
+ #: admin/actions.php:273
21
  msgid "Backup type cannot be empty"
22
  msgstr ""
23
 
24
+ #: admin/actions.php:277
25
  msgid "Invalid backup type"
26
  msgstr ""
27
 
28
+ #: admin/actions.php:291
29
  msgid "Schedule cannot be empty"
30
  msgstr ""
31
 
32
+ #: admin/actions.php:295
33
  msgid "Invalid schedule"
34
  msgstr ""
35
 
36
+ #: admin/actions.php:309
37
  msgid "Day of the week must be a valid lowercase day name"
38
  msgstr ""
39
 
40
+ #: admin/actions.php:328
41
  msgid "Day of month must be between 1 and 31"
42
  msgstr ""
43
 
44
+ #: admin/actions.php:347
45
  msgid "Hours must be between 0 and 23"
46
  msgstr ""
47
 
48
+ #: admin/actions.php:366
49
  msgid "Minutes must be between 0 and 59"
50
  msgstr ""
51
 
52
+ #: admin/actions.php:380
53
  msgid "Max backups can't be empty"
54
  msgstr ""
55
 
56
+ #: admin/actions.php:384
57
  msgid "Max backups must be a number"
58
  msgstr ""
59
 
60
+ #: admin/actions.php:388
61
  msgid "Max backups must be greater than 0"
62
  msgstr ""
63
 
64
+ #: admin/actions.php:704 admin/actions.php:710 functions/interface.php:81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  msgid "BackUpWordPress has detected a problem."
66
  msgstr ""
67
 
68
+ #: admin/actions.php:704 admin/actions.php:710
69
  msgid ""
70
  "%1$s is returning a %2$s response which could mean cron jobs aren't getting "
71
  "fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. "
407
  msgstr ""
408
 
409
  #: admin/schedule-form-excludes.php:48
410
+ msgid "Stop excluding"
411
  msgstr ""
412
 
413
  #: admin/schedule-form-excludes.php:64
470
  msgstr ""
471
 
472
  #: admin/schedule-form-excludes.php:345 admin/schedule-form.php:185
473
+ #: admin/schedule-settings.php:79
474
  msgid "Done"
475
  msgstr ""
476
 
626
  msgid "store the last %1$s backups in %2$s"
627
  msgstr ""
628
 
 
 
 
 
629
  #: admin/schedule-sentence.php:131
630
  msgid "%s. "
631
  msgstr ""
642
  msgid "Settings"
643
  msgstr ""
644
 
645
+ #: admin/schedule-settings.php:13
646
  msgid "Excludes"
647
  msgstr ""
648
 
649
+ #: admin/schedule-settings.php:25 functions/interface.php:34
650
  msgid "Delete"
651
  msgstr ""
652
 
653
+ #: backupwordpress.php:183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
654
  msgid "Update"
655
  msgstr ""
656
 
657
+ #: backupwordpress.php:184
658
  msgid "Cancel"
659
  msgstr ""
660
 
661
+ #: backupwordpress.php:185
662
  msgid ""
663
  "Are you sure you want to delete this schedule? All of it's backups will "
664
  "also be deleted."
665
  msgstr ""
666
 
667
+ #: backupwordpress.php:185 backupwordpress.php:186 backupwordpress.php:187
668
+ #: backupwordpress.php:188
669
  msgid "'Cancel' to go back, 'OK' to delete."
670
  msgstr ""
671
 
672
+ #: backupwordpress.php:186
673
  msgid "Are you sure you want to delete this backup?"
674
  msgstr ""
675
 
676
+ #: backupwordpress.php:187
677
  msgid "Are you sure you want to remove this exclude rule?"
678
  msgstr ""
679
 
680
+ #: backupwordpress.php:188
681
  msgid ""
682
  "Reducing the number of backups that are stored on this server will cause "
683
  "some of your existing backups to be deleted, are you sure that's what you "
684
  "want?"
685
  msgstr ""
686
 
687
+ #: backupwordpress.php:313
688
  msgid "Server Info"
689
  msgstr ""
690
 
691
+ #. Plugin Name of the plugin/theme
692
+ msgid "BackUpWordPress"
693
+ msgstr ""
694
+
695
+ #: backupwordpress.php:386
696
+ msgid ""
697
+ "BackUpWordPress requires PHP version %1$s or later. It is not active. "
698
+ "%2$s%3$s%4$sLearn more%5$s"
699
+ msgstr ""
700
+
701
  #: classes/class-email.php:26
702
  msgid "Email notification"
703
  msgstr ""
723
  msgid "%s isn't a valid email"
724
  msgstr ""
725
 
726
+ #: classes/class-email.php:175 classes/class-webhooks.php:64
727
  msgid "Backup of %s Failed"
728
  msgstr ""
729
 
773
  msgid "Unfortunately the backup file was too large to attach to this email."
774
  msgstr ""
775
 
776
+ #: classes/class-schedule.php:245
777
  msgid "Argument 1 for %s must be a valid integer"
778
  msgstr ""
779
 
780
+ #: classes/class-schedule.php:598
781
  msgid "Argument 1 for %s must be a valid future timestamp"
782
  msgstr ""
783
 
784
+ #: classes/class-schedule.php:636
785
  msgid "Argument 1 for %s must be a valid cron reoccurrence or \"manually\""
786
  msgstr ""
787
 
788
+ #: classes/class-schedule.php:771 functions/interface.php:228
789
  msgid "Starting Backup"
790
  msgstr ""
791
 
792
+ #: classes/class-schedule.php:901
793
  msgid "Dumping Database %s"
794
  msgstr ""
795
 
796
+ #: classes/class-schedule.php:906
797
  msgid "Verifying Database Dump %s"
798
  msgstr ""
799
 
800
+ #: classes/class-schedule.php:911
801
  msgid "Creating zip archive %s"
802
  msgstr ""
803
 
804
+ #: classes/class-schedule.php:916
805
  msgid "Verifying Zip Archive %s"
806
  msgstr ""
807
 
808
+ #: classes/class-schedule.php:921
809
  msgid "Finishing Backup"
810
  msgstr ""
811
 
812
+ #: classes/class-schedule.php:1030
813
  msgid "Argument 1 for %s must be a non empty string"
814
  msgstr ""
815
 
816
+ #: classes/class-schedule.php:1035
817
  msgid "%s doesn't exist"
818
  msgstr ""
819
 
820
+ #: classes/class-schedule.php:1040
821
  msgid "That backup wasn't created by this schedule"
822
  msgstr ""
823
 
824
+ #: classes/class-services.php:278
825
  msgid "Argument 1 for %s must be a valid filepath"
826
  msgstr ""
827
 
828
+ #: classes/class-services.php:293
829
  msgid "Argument 1 for %s must be a registered service"
830
  msgstr ""
831
 
832
+ #: classes/class-services.php:310
833
  msgid "Argument 1 for %s must be a valid class"
834
  msgstr ""
835
 
836
+ #: classes/class-webhooks.php:108
837
+ msgid "Error: %s"
838
+ msgstr ""
839
+
840
  #: classes/wp-cli.php:43
841
  msgid "BackUpWordPress may not work when php is running with %s on"
842
  msgstr ""
865
  msgid "Backup Failed"
866
  msgstr ""
867
 
868
+ #: functions/core.php:20
869
+ msgid "BackUpWordPress requires WordPress version %s or greater."
870
+ msgstr ""
871
+
872
+ #: functions/core.php:273
873
  msgid "BackUpWordPress has setup your default schedules."
874
  msgstr ""
875
 
876
+ #: functions/core.php:273
877
  msgid ""
878
  "By default BackUpWordPress performs a daily backup of your database and a "
879
  "weekly backup of your database &amp; files. You can modify these schedules."
880
  msgstr ""
881
 
882
+ #: functions/core.php:290
883
  msgid "Once Hourly"
884
  msgstr ""
885
 
886
+ #: functions/core.php:291
887
  msgid "Twice Daily"
888
  msgstr ""
889
 
890
+ #: functions/core.php:292
891
  msgid "Once Daily"
892
  msgstr ""
893
 
894
+ #: functions/core.php:293
895
  msgid "Once Weekly"
896
  msgstr ""
897
 
898
+ #: functions/core.php:294
899
  msgid "Once Biweekly"
900
  msgstr ""
901
 
902
+ #: functions/core.php:295
903
  msgid "Once Monthly"
904
  msgstr ""
905
 
906
+ #: functions/core.php:313
907
  msgid "You can only delete directories inside your WordPress installation"
908
  msgstr ""
909
 
910
+ #: functions/core.php:378
911
  msgid "This %s file ensures that other people cannot download your backup files."
912
  msgstr ""
913
 
914
+ #: functions/interface.php:31
915
  msgid "Download"
916
  msgstr ""
917
 
918
+ #: functions/interface.php:62
919
+ msgid "BackUpWordPress detected issues with your last backup."
920
  msgstr ""
921
 
922
+ #: functions/interface.php:64 functions/interface.php:83
923
+ msgid "Dismiss"
924
+ msgstr ""
925
+
926
+ #: functions/interface.php:117
927
  msgid ""
928
  "The backups directory can't be created because your %1$s directory isn't "
929
  "writable, run %2$s or %3$s or create the folder yourself."
930
  msgstr ""
931
 
932
+ #: functions/interface.php:123
933
  msgid ""
934
  "Your backups directory isn't writable, run %1$s or %2$s or set the "
935
  "permissions yourself."
936
  msgstr ""
937
 
938
+ #: functions/interface.php:128
939
  msgid ""
940
  "%1$s is running in %2$s, please contact your host and ask them to disable "
941
  "it. BackUpWordPress may not work correctly whilst %3$s is on."
942
  msgstr ""
943
 
944
+ #: functions/interface.php:128
945
  msgid "http://php.net/manual/en/features.safe-mode.php"
946
  msgstr ""
947
 
948
+ #: functions/interface.php:128
949
  msgid "Safe Mode"
950
  msgstr ""
951
 
952
+ #: functions/interface.php:132
953
  msgid ""
954
  "Your custom backups directory %1$s doesn't exist and can't be created, your "
955
  "backups will be saved to %2$s instead."
956
  msgstr ""
957
 
958
+ #: functions/interface.php:136
959
  msgid ""
960
  "Your custom backups directory %1$s isn't writable, new backups will be "
961
  "saved to %2$s instead."
962
  msgstr ""
963
 
964
+ #: functions/interface.php:142
 
 
 
 
965
  msgid "Your backup root path %s isn't readable."
966
  msgstr ""
967
 
968
+ #: functions/interface.php:201
969
  msgid "Database and Files"
970
  msgstr ""
971
 
972
+ #: functions/interface.php:204
973
  msgid "Files"
974
  msgstr ""
975
 
976
+ #: functions/interface.php:207
977
  msgid "Database"
978
  msgstr ""
979
 
980
+ #: functions/interface.php:212
981
  msgid "Legacy"
982
  msgstr ""
983
 
984
+ #: functions/interface.php:227
985
  msgid "Started %s ago"
986
  msgstr ""
987
 
988
+ #: functions/interface.php:229
989
  msgid "cancel"
990
  msgstr ""
991
 
992
+ #: functions/interface.php:275
993
  msgid "% Backups Completed"
994
  msgstr ""
995
 
996
+ #: functions/interface.php:277
997
  msgid "No Backups Completed"
998
  msgstr ""
999
 
1000
+ #: functions/interface.php:279
1001
  msgid "1 Backup Completed"
1002
  msgstr ""
1003
 
1004
+ #: functions/interface.php:287
1005
  msgid "Complete Hourly"
1006
  msgstr ""
1007
 
1008
+ #: functions/interface.php:288
1009
  msgid "File Hourly"
1010
  msgstr ""
1011
 
1012
+ #: functions/interface.php:289
1013
  msgid "Database Hourly"
1014
  msgstr ""
1015
 
1016
+ #: functions/interface.php:290
1017
  msgid "Complete Twicedaily"
1018
  msgstr ""
1019
 
1020
+ #: functions/interface.php:291
1021
  msgid "File Twicedaily"
1022
  msgstr ""
1023
 
1024
+ #: functions/interface.php:292
1025
  msgid "Database Twicedaily"
1026
  msgstr ""
1027
 
1028
+ #: functions/interface.php:293
1029
  msgid "Complete Daily"
1030
  msgstr ""
1031
 
1032
+ #: functions/interface.php:294
1033
  msgid "File Daily"
1034
  msgstr ""
1035
 
1036
+ #: functions/interface.php:295
1037
  msgid "Database Daily"
1038
  msgstr ""
1039
 
1040
+ #: functions/interface.php:296
1041
  msgid "Complete Weekly"
1042
  msgstr ""
1043
 
1044
+ #: functions/interface.php:297
1045
  msgid "File Weekly"
1046
  msgstr ""
1047
 
1048
+ #: functions/interface.php:298
1049
  msgid "Database Weekly"
1050
  msgstr ""
1051
 
1052
+ #: functions/interface.php:299
1053
  msgid "Complete Biweekly"
1054
  msgstr ""
1055
 
1056
+ #: functions/interface.php:300
1057
  msgid "File Biweekly"
1058
  msgstr ""
1059
 
1060
+ #: functions/interface.php:301
1061
  msgid "Database Biweekly"
1062
  msgstr ""
1063
 
1064
+ #: functions/interface.php:302
1065
  msgid "Complete Monthly"
1066
  msgstr ""
1067
 
1068
+ #: functions/interface.php:303
1069
  msgid "File Monthly"
1070
  msgstr ""
1071
 
1072
+ #: functions/interface.php:304
1073
  msgid "Database Monthly"
1074
  msgstr ""
1075
 
1076
+ #: functions/interface.php:305
1077
  msgid "Complete Manually"
1078
  msgstr ""
1079
 
1080
+ #: functions/interface.php:306
1081
  msgid "File Manually"
1082
  msgstr ""
1083
 
1084
+ #: functions/interface.php:307
1085
  msgid "Database Manually"
1086
  msgstr ""
1087
 
1088
+ #: hm-backup/hm-backup.php:286
1089
  msgid "archive filename must be a non empty string"
1090
  msgstr ""
1091
 
1092
+ #: hm-backup/hm-backup.php:289
1093
  msgid "invalid file extension for archive filename <code>%s</code>"
1094
  msgstr ""
1095
 
1096
+ #: hm-backup/hm-backup.php:329
1097
  msgid "database dump filename must be a non empty string"
1098
  msgstr ""
1099
 
1100
+ #: hm-backup/hm-backup.php:332
1101
  msgid "invalid file extension for database dump filename <code>%s</code>"
1102
  msgstr ""
1103
 
1104
+ #: hm-backup/hm-backup.php:363
1105
  msgid "Invalid root path <code>%s</code> must be a valid directory path"
1106
  msgstr ""
1107
 
1108
+ #: hm-backup/hm-backup.php:392
1109
  msgid "Invalid backup path <code>%s</code> must be a non empty (string)"
1110
  msgstr ""
1111
 
1112
+ #: hm-backup/hm-backup.php:444
1113
  msgid ""
1114
  "Invalid backup type <code>%s</code> must be one of (string) file, database "
1115
  "or complete"
1116
  msgstr ""
1117
 
 
 
 
 
1118
  #. Plugin URI of the plugin/theme
1119
  msgid "http://bwp.hmn.md/"
1120
  msgstr ""
1131
 
1132
  #. Author URI of the plugin/theme
1133
  msgid "http://hmn.md/"
1134
+ msgstr ""
1135
+
1136
+ #: admin/schedule-sentence.php:128
1137
+ msgctxt ""
1138
+ "1: Backup Type 2: Total size of backup 3: Schedule 4: Number of backups to "
1139
+ "store"
1140
+ msgid "Backup my %1$s %2$s %3$s, %4$s."
1141
  msgstr ""
languages/hmbkp-fr_FR.mo DELETED
Binary file
languages/hmbkp-fr_FR.po DELETED
@@ -1,709 +0,0 @@
1
- # Translation of 2.x in French (France)
2
- # This file is distributed under the same license as the 2.x package.
3
- msgid ""
4
- msgstr ""
5
- "PO-Revision-Date: 2013-10-11 13:44:01+0000\n"
6
- "MIME-Version: 1.0\n"
7
- "Content-Type: text/plain; charset=UTF-8\n"
8
- "Content-Transfer-Encoding: 8bit\n"
9
- "Plural-Forms: nplurals=2; plural=n > 1;\n"
10
- "X-Generator: GlotPress/0.1\n"
11
- "Project-Id-Version: 2.x\n"
12
-
13
- #: ../backupwordpress.php:119
14
- msgid "BackUpWordPress requires PHP version %s or greater."
15
- msgstr ""
16
-
17
- #: ../admin/backups.php:100
18
- msgid "This is where your backups will appear once you have some."
19
- msgstr ""
20
-
21
- #: ../admin/backups.php:120
22
- msgid "% Backups Completed"
23
- msgstr ""
24
-
25
- #: ../admin/backups.php:122
26
- msgid "No Backups Completed"
27
- msgstr ""
28
-
29
- #: ../admin/backups.php:124
30
- msgid "1 Backup Completed"
31
- msgstr ""
32
-
33
- #: ../admin/enable-support.php:3
34
- msgid "Enable BackUpWordPress Support"
35
- msgstr ""
36
-
37
- #: ../admin/enable-support.php:5
38
- msgid "BackUpWordPress uses %s to provide support. In addition to allowing you to send and receive messages we also send the following server information along with your requests:"
39
- msgstr ""
40
-
41
- #: ../admin/enable-support.php:58
42
- msgid "You can disable support in the future by deactivating BackUpWordPress."
43
- msgstr ""
44
-
45
- #: ../admin/enable-support.php:68
46
- msgid "No thanks"
47
- msgstr ""
48
-
49
- #: ../admin/enable-support.php:70
50
- msgid "Yes I want to enable support"
51
- msgstr ""
52
-
53
- #: ../admin/page.php:10
54
- msgid "Support"
55
- msgstr ""
56
-
57
- #: ../admin/page.php:31
58
- msgid "If you're finding BackUpWordPress useful, please %1$s rate it on the plugin directory. %2$s"
59
- msgstr ""
60
-
61
- #: ../admin/page.php:35
62
- msgid "Wish you could store your backups in a safer place? Our %1$spremium extensions%2$s enable automatic backups to Dropbox, FTP, Google Drive and more."
63
- msgstr ""
64
-
65
- #: ../admin/schedule-form-excludes.php:19
66
- msgid "Enter new exclude rules as a comma separated list, e.g. %s"
67
- msgstr ""
68
-
69
- #: ../admin/schedule-form.php:45
70
- msgid "Past this limit older backups will be deleted automatically. This schedule will store a maximum of %s of backups"
71
- msgstr ""
72
-
73
- #: ../admin/schedule.php:78
74
- msgid "store only the last backup on %s"
75
- msgstr ""
76
-
77
- #: ../admin/schedule.php:118
78
- msgid "Backup my %1$s %2$s %3$s, %4$s. %5$s Send a copy of each backup to %6$s."
79
- msgstr ""
80
-
81
- #: ../classes/class-schedule.php:239
82
- msgid "Argument 1 for %s must be a valid integer"
83
- msgstr ""
84
-
85
- #: ../classes/class-schedule.php:491
86
- msgid "Argument 1 for %s must be a valid cron reoccurrence or \"manually\""
87
- msgstr ""
88
-
89
- #: ../classes/class-schedule.php:811
90
- msgid "Argument 1 for %s must be a non empty string"
91
- msgstr ""
92
-
93
- #: ../classes/class-schedule.php:815
94
- msgid "%s dpesn't exist"
95
- msgstr ""
96
-
97
- #: ../classes/class-schedule.php:819
98
- msgid "That backup wasn't created by this schedule"
99
- msgstr ""
100
-
101
- #: ../classes/class-services.php:252
102
- msgid "Argument 1 for %s must be a valid filepath"
103
- msgstr ""
104
-
105
- #: ../classes/class-services.php:267
106
- msgid "Argument 1 for %s must be a registered service"
107
- msgstr ""
108
-
109
- #: ../classes/class-services.php:284
110
- msgid "Argument 1 for %s must be a valid class"
111
- msgstr ""
112
-
113
- #: ../functions/core.php:269
114
- msgid "You can only delete directories inside your WordPress installation"
115
- msgstr ""
116
-
117
- #: ../admin/actions.php:508
118
- msgid "Your backup completed but with the following errors / warnings, it's probably ok to ignore these."
119
- msgstr "La sauvegarde s'est achevée, mais a généré les erreurs suivantes, vous pouvez probablement les ignorer."
120
-
121
- #: ../admin/actions.php:512
122
- msgid "Your backup failed"
123
- msgstr "La sauvegarde a échoué"
124
-
125
- #: ../classes/class-email.php:35
126
- msgid "Receive a notification email when a backup completes, if the backup is small enough (&lt; %s) then it will be attached to the email. Separate multiple email address's with a comma."
127
- msgstr "Recevoir un email de notification lorsqu'une sauvegarde s'achève, si l'archive est assez petite (&lt; %s) alors il sera joint à l'email. Utiliser une virgule pour séparer les adresses email."
128
-
129
- #: ../classes/class-email.php:54
130
- msgid "The maximum filesize of your backup that will be attached to your notification emails . Defaults to %s."
131
- msgstr "La taille maximum du fichier de sauvegarde qui sera joint à l'email de notification de sauvegarde. Par défaut %s."
132
-
133
- #: ../admin/actions.php:520
134
- msgid "You can email details of this error to %s so they can look into the issue."
135
- msgstr "Vous pouvez envoyez les détails de cette erreur par e-mail ) %s afin qu'il l'analyse."
136
-
137
- #: ../functions/core.php:246
138
- msgid "Once Hourly"
139
- msgstr "Chaque heure"
140
-
141
- #: ../functions/core.php:247
142
- msgid "Twice Daily"
143
- msgstr "2 fois par jour"
144
-
145
- #: ../functions/core.php:248
146
- msgid "Once Daily"
147
- msgstr "Quotidienne"
148
-
149
- #: ../functions/core.php:249
150
- msgid "Once Weekly"
151
- msgstr "Une fois par semaine"
152
-
153
- #: ../functions/core.php:250
154
- msgid "Once Fortnightly"
155
- msgstr "Une fois tous les quinze jours"
156
-
157
- #: ../functions/core.php:251
158
- msgid "Once Monthly"
159
- msgstr "Une fois par mois"
160
-
161
- #: ../admin/actions.php:524
162
- msgid "Email to Support"
163
- msgstr "Envoyer un email au support technique"
164
-
165
- #: ../admin/schedule-form-excludes.php:13
166
- msgid "New Exclude Rule[s]"
167
- msgstr "Nouvelle(s) règle(s) d'exclusion"
168
-
169
- #: ../admin/actions.php:516
170
- msgid "Here's the response from the server:"
171
- msgstr "Voici la réponse du serveur :"
172
-
173
- #: ../admin/page.php:33
174
- msgid "If you need help getting things working then check the FAQ by clicking on help in the top right hand corner of this page."
175
- msgstr "Si vous avez besoin d'aide n'hésitez pas à consulter la FAQ en cliquant sur 'Aide' dans la partie supérieure droite de cette page."
176
-
177
- #: ../classes/class-schedule.php:609 ../functions/interface.php:261
178
- msgid "Starting Backup"
179
- msgstr "Début de la sauvegarde"
180
-
181
- #: ../classes/class-schedule.php:686
182
- msgid "Dumping Database %s"
183
- msgstr "Export de la base de données %s"
184
-
185
- #: ../classes/class-schedule.php:691
186
- msgid "Verifying Database Dump %s"
187
- msgstr "Vérification de l'export de la base de données %s"
188
-
189
- #: ../classes/class-schedule.php:696
190
- msgid "Creating zip archive %s"
191
- msgstr "Création de l'archive zip %s"
192
-
193
- #: ../classes/class-schedule.php:701
194
- msgid "Verifying Zip Archive %s"
195
- msgstr "Vérification de l'archive zip %s"
196
-
197
- #: ../classes/class-schedule.php:706
198
- msgid "Finishing Backup"
199
- msgstr "Fin de la sauvegarde"
200
-
201
- #: ../classes/wp-cli.php:16
202
- msgid "BackUpWordPress may not work when php is running with %s on"
203
- msgstr "BackUpWordPress peut ne pas fonctionner correctement lorsque PHP s'exécute avec %s activé"
204
-
205
- #: ../functions/interface.php:78
206
- msgid "%1$s is running in %2$s, please contact your host and ask them to disable it. BackUpWordPress may not work correctly whilst %3$s is on."
207
- msgstr "%1$s s'exécute dans %2$s, merci de contacter votre hébergeur et de lui demande de désactiver cela. BackUpWordPress peut ne pas fonctionner correctement tant que %3$s est activé."
208
-
209
- #: ../admin/constants.php:26
210
- msgid "The time that your schedules should run. Defaults to %s."
211
- msgstr "L'heure à laquelle vos sauvegardes seront effectuées. Par défaut : %s."
212
-
213
- #: ../backupwordpress.php:171
214
- msgid "Are you sure you want to delete this schedule? All of it's backups will also be deleted."
215
- msgstr "Etes-vous sûr(e) de vouloir supprimer cette planification de sauvegarde ? Toutes les sauvegardes associées seront aussi supprimées."
216
-
217
- #: ../backupwordpress.php:171 ../backupwordpress.php:172
218
- #: ../backupwordpress.php:173 ../backupwordpress.php:174
219
- msgid "'Cancel' to go back, 'OK' to delete."
220
- msgstr "'Annuler' pour revenir en arrière, 'OK' pour supprimer."
221
-
222
- #: ../backupwordpress.php:172
223
- msgid "Are you sure you want to delete this backup?"
224
- msgstr "Etes-vous sûr(e) de vouloir supprimer cette sauvegarde ?"
225
-
226
- #: ../backupwordpress.php:173
227
- msgid "Are you sure you want to remove this exclude rule?"
228
- msgstr "Etes-vous sûr(e) de vouloir supprimer cette règle d'exclusion ?"
229
-
230
- #: ../backupwordpress.php:174
231
- msgid "Reducing the number of backups that are stored on this server will cause some of your existing backups to be deleted, are you sure that's what you want?"
232
- msgstr "Réduire le nombre de sauvegardes stockées sur le serveur supprimera certaines de vos sauvegardes. Etes-vous sûr(e) de vouloir effectuer cette action ?"
233
-
234
- #: ../admin/actions.php:372
235
- msgid "Max backups can't be empty"
236
- msgstr "Le nombre maximum de sauvegarde doit être indiqué"
237
-
238
- #: ../admin/actions.php:378
239
- msgid "Max backups must be greater than 0"
240
- msgstr "Le nombre maximum de sauvegardes doit être supérieur à 0"
241
-
242
- #: ../admin/actions.php:486
243
- msgid "Exclude"
244
- msgstr "Exclure"
245
-
246
- #: ../admin/schedule-form-excludes.php:44
247
- msgid "default"
248
- msgstr "par défaut"
249
-
250
- #: ../admin/schedule-form-excludes.php:48
251
- msgid "defined"
252
- msgstr "défini"
253
-
254
- #: ../admin/schedule-form.php:27
255
- msgid "Manual Only"
256
- msgstr "Manuellement"
257
-
258
- #: ../admin/schedule.php:4
259
- msgid "this shouldn't take long&hellip;"
260
- msgstr "cela ne devrait pas être long&hellip;"
261
-
262
- #: ../admin/schedule.php:4
263
- msgid "calculating the size of your site&hellip;"
264
- msgstr "calcul de la taille de votre site&hellip;"
265
-
266
- #: ../admin/schedule.php:12
267
- msgid "The next backup will be on %1$s at %2$s"
268
- msgstr "La prochaine sauvegarde aura lieu le %1$s à %2$s"
269
-
270
- #: ../admin/schedule.php:37
271
- msgid "every 12 hours at %1$s &amp; %2$s"
272
- msgstr "toutes les 12 heures à %1$s &amp; %2$s"
273
-
274
- #: ../admin/schedule.php:43
275
- msgid "weekly on %1$s at %2$s"
276
- msgstr "toutes les semaines le %1$s à %2$s"
277
-
278
- #: ../admin/schedule.php:49
279
- msgid "fortnightly on %1$s at %2$s"
280
- msgstr "toutes les 2 semaines à %1$s at %2$s"
281
-
282
- #: ../admin/schedule.php:56
283
- msgid "on the %1$s of each month at %2$s"
284
- msgstr "le %1$s de chaque mois à %2$s"
285
-
286
- #: ../admin/schedule.php:62
287
- msgid "manually"
288
- msgstr "manuellement"
289
-
290
- #: ../admin/schedule.php:71
291
- msgid "this server"
292
- msgstr "ce serveur"
293
-
294
- #: ../admin/schedule.php:84
295
- msgid "don't store any backups on %s"
296
- msgstr "ne stocker aucune sauvegarde sur %s"
297
-
298
- #: ../admin/schedule.php:90
299
- msgid "store only the last %1$s backups on %2$s"
300
- msgstr "Stocker uniquement les %1$s dernières sauvegardes sur %2$s"
301
-
302
- #: ../admin/schedule.php:120
303
- msgid "Backup my %1$s %2$s %3$s, %4$s. %5$s"
304
- msgstr "Sauvegarder ma %2$s de %1$s %3$s. %4$s. %5$s"
305
-
306
- #: ../classes/class-email.php:156
307
- msgid "BackUpWordPress was unable to backup your site %1$s."
308
- msgstr "BackUpWordPress n'a pu sauvegarder votre site %1$s."
309
-
310
- #: ../classes/class-email.php:156
311
- msgid "Here are the errors that we're encountered:"
312
- msgstr "Voici les erreurs rencontrées :"
313
-
314
- #: ../classes/class-email.php:156
315
- msgid "If the errors above look like Martian, forward this email to %3$s and we'll take a look"
316
- msgstr "Si les erreurs décrites ci-dessus sont pour vous du chinois, transférez nous ce courrier électronique à %3$s et nous y jetterons un coup d'oeil"
317
-
318
- #: ../classes/class-email.php:156
319
- msgid ""
320
- "Kind Regards,\n"
321
- "The Apologetic BackUpWordPress Backup Emailing Robot"
322
- msgstr ""
323
- "Cordialement,\n"
324
- "Le robot de sauvegarde de BackUpWordPress"
325
-
326
- #: ../classes/class-email.php:169 ../classes/class-email.php:178
327
- msgid "BackUpWordPress has completed a backup of your site %1$s."
328
- msgstr "BackUpWordPress a effectué une sauvegarde de votre site %1$s."
329
-
330
- #: ../classes/class-email.php:169
331
- msgid "The backup file should be attached to this email."
332
- msgstr "Le fichier de sauvegarde devrait être joint à ce courrier électronique."
333
-
334
- #: ../classes/class-email.php:169 ../classes/class-email.php:178
335
- msgid "You can download the backup file by clicking the link below:"
336
- msgstr "Vous pouvez télécharger le fichier de sauvegarde en cliquant sur le lien suivant :"
337
-
338
- #: ../classes/class-email.php:169 ../classes/class-email.php:178
339
- msgid ""
340
- "Kind Regards,\n"
341
- "The Happy BackUpWordPress Backup Emailing Robot"
342
- msgstr ""
343
- "Cordialement,\n"
344
- "Le robot de sauvegarde de BackUpWordPress"
345
-
346
- #: ../classes/class-email.php:178
347
- msgid "Unfortunately the backup file was too large to attach to this email."
348
- msgstr "Malheureusement le fichier de sauvegarde est trop gros pour être joint à ce courrier électronique."
349
-
350
- #: ../classes/wp-cli.php:19
351
- msgid "Backup: Dumping database..."
352
- msgstr "Sauvegarde : Export de la base de données..."
353
-
354
- #: ../classes/wp-cli.php:23
355
- msgid "Backup: Zipping everything up..."
356
- msgstr "Sauvegarde : compression des données"
357
-
358
- #: ../classes/wp-cli.php:38
359
- msgid "Invalid backup path"
360
- msgstr "Le chemin de sauvegarde est invalide"
361
-
362
- #: ../classes/wp-cli.php:43
363
- msgid "Invalid root path"
364
- msgstr "Le chemin racine est invalide"
365
-
366
- #: ../classes/wp-cli.php:68
367
- msgid "Backup Complete: "
368
- msgstr "Sauvegarde terminée :"
369
-
370
- #: ../classes/wp-cli.php:71
371
- msgid "Backup Failed"
372
- msgstr "La sauvegarde a échoué"
373
-
374
- #: ../functions/core.php:229
375
- msgid "By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database &amp; files. You can modify these schedules."
376
- msgstr "Par défaut, BackUpWordPress effectue une sauvegarde suotidienne de votre base de données et une sauvegarde hebdomadaire de votre base de données &amp; des fichiers. Vous pouvez modifier cette fréquence."
377
-
378
- #: ../functions/interface.php:245
379
- msgid "Legacy"
380
- msgstr "Contribution"
381
-
382
- #: ../functions/interface.php:67
383
- msgid "Your backups directory isn't writable, run %1$s or %2$s or set the permissions yourself."
384
- msgstr "Votre dossier de sauvegarde n'a pas l'autorisation d'écriture. Exécutez %1$s ou %2$s, ou réglez les permissions adéquates."
385
-
386
- #: ../functions/interface.php:54
387
- msgid "The backups directory can't be created because your %1$s directory isn't writable, run %2$s or %3$s or create the folder yourself."
388
- msgstr "Le dossier de sauvegarde ne peut être créé car le dossier %1$s n'a pas l'autorisation d'écriture. Exécutez %2$s ou %3$s, ou réglez les permissions adéquates."
389
-
390
- #: ../functions/core.php:229
391
- msgid "BackUpWordPress has setup your default schedules."
392
- msgstr "BackUpWordPress a réglé les planifications de sauvegarde par défaut."
393
-
394
- #: ../classes/class-email.php:154
395
- msgid "Backup of %s Failed"
396
- msgstr "La sauvegarde de %s a échoué"
397
-
398
- #: ../classes/class-email.php:69
399
- msgid "Send an email notification to %s"
400
- msgstr "Envoyer une confirmation par courrier électronique à %s"
401
-
402
- #: ../classes/class-email.php:100
403
- msgid "%s isn't a valid email"
404
- msgstr "%s n'est pas une adresse électronique valide"
405
-
406
- #: ../admin/schedule.php:4
407
- msgid "Backups will be compressed and should be smaller than this."
408
- msgstr "Les sauvegardes seront compressées et seront plus petites que la taille indiquée ici."
409
-
410
- #: ../classes/class-email.php:31
411
- msgid "Email notification"
412
- msgstr "Confirmation par courrier électronique"
413
-
414
- #: ../admin/schedule.php:19
415
- msgid "hourly on the hour"
416
- msgstr "chaque heure"
417
-
418
- #: ../admin/schedule.php:25
419
- msgid "daily at %s"
420
- msgstr "chaque jour à %s"
421
-
422
- #: ../admin/schedule-form.php:41
423
- msgid "Number of backups to store on this server"
424
- msgstr "Nombre de sauvegarde à conserver sur ce serveur "
425
-
426
- #: ../admin/schedule-form.php:7
427
- msgid "Schedule Settings"
428
- msgstr "Paramètres de planification"
429
-
430
- #: ../admin/actions.php:523 ../admin/schedule-form-excludes.php:119
431
- msgid "Close"
432
- msgstr "Fermer"
433
-
434
- #: ../admin/menu.php:69
435
- msgid "The information below is for version %1$s. View the %2$s file for help specific to version %3$s."
436
- msgstr "Les informations ci-dessous concernent la version %1$s. Consultez le fichier %2$s pour une aide spécifique à la version %3$s."
437
-
438
- #: ../admin/constants.php:23
439
- msgid "The root directory that is backed up. Defaults to %s."
440
- msgstr "Le répertoire racine à sauvegarder. Par défaut : %s."
441
-
442
- #: ../admin/constants.php:20
443
- msgid "The capability to use when calling %1$s. Defaults to %2$s."
444
- msgstr "La capacité à utiliser quand %1$s est appelé. Par défaut : %2$s."
445
-
446
- #: ../admin/constants.php:14
447
- msgid "The path to your %1$s executable. Will be used to zip up your %2$s and %3$s if available."
448
- msgstr "Le chemin vers l'exécutable %1$s. Il sera utilisé pour compresser %2$s et %3$s s'il est présent."
449
-
450
- #: ../backupwordpress.php:132
451
- msgid "BackUpWordPress requires WordPress version %s or greater."
452
- msgstr "BackUpWordPress nécessite WordPress version %s ou plus récent."
453
-
454
- #: ../backupwordpress.php:170 ../admin/actions.php:487
455
- msgid "Cancel"
456
- msgstr "Annuler"
457
-
458
- #: ../admin/constants.php:11
459
- msgid "The path to your %1$s executable. Will be used for the %2$s part of the back up if available."
460
- msgstr "Le chemin de l'exécutable %1$s. Il sera utilisé pour la partie %2$s de la sauvegarde, s'il est présent."
461
-
462
- #: ../admin/constants.php:8 ../admin/constants.php:11 ../admin/constants.php:14
463
- #: ../admin/constants.php:17 ../admin/constants.php:20
464
- #: ../admin/constants.php:23 ../admin/constants.php:26
465
- #: ../classes/class-email.php:54
466
- msgid "e.g."
467
- msgstr "ex."
468
-
469
- #: ../admin/constants.php:3
470
- msgid "You can %1$s any of the following %2$s in your %3$s to control advanced settings. %4$s. Defined %5$s will be highlighted."
471
- msgstr "Vous pouvez %1$s chacun des prochains %2$s dans votre %3$s pour régler les paramètres avancés. %4$s. %5$s défini sera souligné."
472
-
473
- #: ../admin/actions.php:250 ../admin/actions.php:256
474
- msgid "%1$s is returning a %2$s response which could mean cron jobs aren't getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details."
475
- msgstr "%1$s retourne une réponse %2$s. Cela peut signifier que les tâches Cron ne se déclenchent pas correctement. BackUpWordPress se repose sur wp-cron pour exécuter les sauvegardes. Consultez %3$s pour plus de détails."
476
-
477
- #: ../functions/interface.php:78
478
- msgid "http://php.net/manual/en/features.safe-mode.php"
479
- msgstr "http://php.net/manual/en/features.safe-mode.php"
480
-
481
- #: ../functions/interface.php:78
482
- msgid "Safe Mode"
483
- msgstr "Mode sans échec"
484
-
485
- #: ../functions/interface.php:89
486
- msgid "Your custom backups directory %1$s doesn't exist and can't be created, your backups will be saved to %2$s instead."
487
- msgstr "Le dossier de sauvegarde %1$s n'existe pas et ne peut être créé. Vos sauvegardes seront stockées dans %2$s."
488
-
489
- #: ../functions/interface.php:100
490
- msgid "Your custom backups directory %1$s isn't writable, new backups will be saved to %2$s instead."
491
- msgstr "Le dossier de sauvegarde %1$s n'a pas l'autorisation d'écriture. Les nouvelles sauvegardes seront stockées dans %2$s."
492
-
493
- #: ../functions/interface.php:261
494
- msgid "cancel"
495
- msgstr "annuler"
496
-
497
- #: ../functions/interface.php:265
498
- msgid "Settings"
499
- msgstr "Paramètres"
500
-
501
- #: ../functions/interface.php:268
502
- msgid "Excludes"
503
- msgstr "Exclusions"
504
-
505
- #: ../functions/interface.php:29
506
- msgid "Download"
507
- msgstr "Télécharger"
508
-
509
- #: ../functions/interface.php:54 ../functions/interface.php:67
510
- msgid "BackUpWordPress is almost ready."
511
- msgstr "BackUpWordPress a presque terminé."
512
-
513
- #: ../functions/interface.php:111
514
- msgid "BackUpWordPress detected issues with your last backup."
515
- msgstr "BackUpWordPress a détecté des problèmes lors de la dernière sauvegarde."
516
-
517
- #: ../functions/interface.php:234
518
- msgid "Database and Files"
519
- msgstr "Base de données et fichiers"
520
-
521
- #: ../functions/interface.php:240
522
- msgid "Database"
523
- msgstr "Base de données"
524
-
525
- #: ../admin/actions.php:250 ../admin/actions.php:256
526
- #: ../functions/interface.php:78 ../functions/interface.php:89
527
- #: ../functions/interface.php:100
528
- msgid "BackUpWordPress has detected a problem."
529
- msgstr "BackUpWordPress a détecté un problème."
530
-
531
- #: ../admin/actions.php:342
532
- msgid "Backup type cannot be empty"
533
- msgstr "Le type de sauvegarde doit être indiqué"
534
-
535
- #: ../admin/actions.php:345
536
- msgid "Invalid backup type"
537
- msgstr "Le type de sauvegarde est invalide"
538
-
539
- #: ../admin/actions.php:357
540
- msgid "Schedule cannot be empty"
541
- msgstr "La planification doit être indiquée"
542
-
543
- #: ../admin/actions.php:360
544
- msgid "Invalid schedule"
545
- msgstr "Planification invalide"
546
-
547
- #: ../admin/actions.php:375
548
- msgid "Max backups must be a number"
549
- msgstr "Le nombre maximum de sauvegardes doit être un nombre"
550
-
551
- #: ../admin/actions.php:481
552
- msgid "%s didn't match any files."
553
- msgstr "%s ne correspond à aucun fichier."
554
-
555
- #: ../admin/backups.php:40
556
- msgid "add schedule"
557
- msgstr "ajouter une planification"
558
-
559
- #: ../admin/backups.php:71
560
- msgid "Size"
561
- msgstr "Taille"
562
-
563
- #: ../admin/backups.php:72
564
- msgid "Type"
565
- msgstr "Type"
566
-
567
- #: ../admin/backups.php:73
568
- msgid "Actions"
569
- msgstr "Actions"
570
-
571
- #: ../admin/constants.php:3
572
- msgid "The Codex can help"
573
- msgstr "Le Codex peut vous aider"
574
-
575
- #: ../admin/constants.php:8
576
- msgid "The path to folder you would like to store your backup files in, defaults to %s."
577
- msgstr "Le chemin du dossier de sauvegarde. Par défaut : %s."
578
-
579
- #: ../admin/constants.php:11 ../admin/constants.php:14
580
- msgid "database"
581
- msgstr "base de données"
582
-
583
- #: ../admin/constants.php:14
584
- msgid "files"
585
- msgstr "fichiers"
586
-
587
- #: ../admin/constants.php:17
588
- msgid "Comma separated list of files or directories to exclude, the backups directory is automatically excluded."
589
- msgstr "Liste, séparée par des virgules, des dossiers à exclure. Le dossier de sauvegarde est automatiquement exclu."
590
-
591
- #: ../admin/menu.php:10 ../admin/page.php:6
592
- msgid "Manage Backups"
593
- msgstr "Gérer les sauvegardes"
594
-
595
- #: ../admin/menu.php:10 ../admin/menu.php:34
596
- msgid "Backups"
597
- msgstr "Sauvegardes"
598
-
599
- #: ../admin/menu.php:69
600
- msgid "You are not using the latest stable version of BackUpWordPress"
601
- msgstr "Vous n'utilisez pas la dernière version stable de BackUpWordPress"
602
-
603
- #: ../admin/menu.php:77
604
- msgid "FAQ"
605
- msgstr "FAQ"
606
-
607
- #: ../admin/constants.php:3 ../admin/menu.php:79
608
- msgid "Constants"
609
- msgstr "Constantes"
610
-
611
- #: ../admin/menu.php:82
612
- msgid "For more information:"
613
- msgstr "Pour plus d'informations :"
614
-
615
- #: ../admin/menu.php:84
616
- msgid "Support Forums"
617
- msgstr "Forums d'entraide"
618
-
619
- #: ../admin/menu.php:85
620
- msgid "Help with translation"
621
- msgstr "Aider à la traduction"
622
-
623
- #: ../admin/page.php:27
624
- msgid "You need to fix the issues detailed above before BackUpWordPress can start."
625
- msgstr "Vous devez corriger les problèmes détaillés ci-dessus avant que BackUpWordPress puisse fonctionner."
626
-
627
- #: ../admin/schedule-form-excludes.php:17
628
- msgid "Preview"
629
- msgstr "Aperçu"
630
-
631
- #: ../admin/schedule-form-excludes.php:29
632
- msgid "Exclude Rules"
633
- msgstr "Règles d'exclusion"
634
-
635
- #: ../admin/schedule-form-excludes.php:52
636
- msgid "Remove"
637
- msgstr "Supprimer"
638
-
639
- #: ../admin/schedule-form-excludes.php:71
640
- msgid "Excluded"
641
- msgstr "Exclus"
642
-
643
- #: ../admin/schedule-form-excludes.php:75
644
- msgid "Included"
645
- msgstr "Inclus"
646
-
647
- #: ../admin/schedule-form-excludes.php:79
648
- msgid "Unreadable"
649
- msgstr "Illisible"
650
-
651
- #: ../admin/schedule-form-excludes.php:107
652
- msgid "Unreadable files can't be backed up"
653
- msgstr "Les fichiers illisibles ne peuvent être sauvegardé"
654
-
655
- #: ../admin/schedule-form-excludes.php:113
656
- msgid "Your site is %s. Backups will be compressed and so will be smaller."
657
- msgstr "Votre site est %s. Les sauvegardes seront compressées afin de prendre moins d'espace."
658
-
659
- #: ../admin/schedule-form.php:11
660
- msgid "Backup"
661
- msgstr "Sauvegarde"
662
-
663
- #: ../admin/schedule-form.php:14
664
- msgid "Both Database &amp; files"
665
- msgstr "Base de données &amp; fichiers"
666
-
667
- #: ../admin/schedule-form.php:15
668
- msgid "Files only"
669
- msgstr "Seulement les fichiers"
670
-
671
- #: ../admin/schedule-form.php:16
672
- msgid "Database only"
673
- msgstr "Seulement la base de données"
674
-
675
- #: ../functions/interface.php:237
676
- msgid "Files"
677
- msgstr "Fichiers"
678
-
679
- #: ../admin/schedule-form-excludes.php:7
680
- msgid "Manage Excludes"
681
- msgstr "Gérer les exclusions"
682
-
683
- #: ../admin/schedule-form.php:23
684
- msgid "Schedule"
685
- msgstr "Fréquence"
686
-
687
- #: ../backupwordpress.php:169 ../admin/schedule-form.php:58
688
- msgid "Update"
689
- msgstr "Enregistrer"
690
-
691
- #: ../admin/schedule.php:19
692
- msgid "hourly at %s minutes past the hour"
693
- msgstr "toutes les heures, %s minutes après l'heure pile"
694
-
695
- #: ../functions/interface.php:275
696
- msgid "Run now"
697
- msgstr "Exécuter maintenant"
698
-
699
- #: ../functions/interface.php:32 ../functions/interface.php:277
700
- msgid "Delete"
701
- msgstr "Supprimer"
702
-
703
- #: ../classes/class-email.php:164
704
- msgid "Backup of %s"
705
- msgstr "Sauvegarde de %s"
706
-
707
- #: ../functions/core.php:334
708
- msgid "This %s file ensures that other people cannot download your backup files."
709
- msgstr "Ce fichier %s permet de s'assurer que personne d'autre ne puisse télécharger vos fichiers de sauvegarde."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: humanmade, willmot, pauldewouters, joehoyle, mattheu, tcrsavage, c
3
  Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
4
  Requires at least: 3.8.4
5
  Tested up to: 4.1
6
- Stable tag: 3.0.2
7
 
8
  Simple automated backups of your WordPress powered website.
9
 
@@ -128,6 +128,34 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
128
 
129
  == Changelog ==
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  #### 3.0.2 / 2014-12-02
132
 
133
  * Bump version
3
  Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
4
  Requires at least: 3.8.4
5
  Tested up to: 4.1
6
+ Stable tag: 3.0.3
7
 
8
  Simple automated backups of your WordPress powered website.
9
 
128
 
129
  == Changelog ==
130
 
131
+ #### 3.0.3 / 2014-12-06
132
+
133
+ * Add French translations
134
+ * Update textdomain
135
+ * Fix deleted function
136
+ * Use HM_Backup function to determine if shell_exec is enabled
137
+ * Check if file is readable first
138
+ * Fix how we kick off Task
139
+ * Remove unused var
140
+ * Call recursive filescanner on admin page load
141
+ * Update package.json
142
+ * Update the POT file task params
143
+ * Replace hmbkp with backupwordpress as textdomain
144
+ * Exclude folders
145
+ * Add Grunt task options
146
+ * Remove hard line returns
147
+ * Display placeholder if exec fails
148
+ * Add 30 second time diff allowance
149
+ * Use $TRAVIS_BUILD_DIR
150
+ * we do this in travis.yml
151
+ * Regenerate github account info
152
+ * Update command to reflect function rename
153
+ * Update tests to reflect function name change
154
+ * Rename function
155
+ * Filter tests to run
156
+ * Fix group flags
157
+ * Calculate site size on page load
158
+
159
  #### 3.0.2 / 2014-12-02
160
 
161
  * Bump version