Migration, Backup, Staging – WPvivid - Version 0.9.74

Version Description

  • Fixed some i18n issues in the plugin code.
  • Updated: Last backup time will be updated once the backup schedule is triggered.
  • Fixed some bugs in the plugin code.
  • Optimized the plugin code.
Download this release

Release Info

Developer wpvivid
Plugin Icon 128x128 Migration, Backup, Staging – WPvivid
Version 0.9.74
Comparing to
See all releases

Code changes from version 0.9.73 to 0.9.74

Files changed (30) hide show
  1. admin/class-wpvivid-admin.php +16 -16
  2. admin/partials/wpvivid-backup-restore-page-display.php +21 -21
  3. admin/partials/wpvivid-remote-storage-page-display.php +2 -2
  4. admin/partials/wpvivid-schedule-page-display.php +1 -1
  5. admin/partials/wpvivid-settings-page-display.php +5 -5
  6. includes/class-wpvivid-backup-uploader.php +3 -3
  7. includes/class-wpvivid-export-import.php +9 -9
  8. includes/class-wpvivid-exporter.php +14 -14
  9. includes/class-wpvivid-importer.php +12 -12
  10. includes/class-wpvivid-migrate.php +10 -10
  11. includes/class-wpvivid-public-interface.php +1 -1
  12. includes/class-wpvivid-restore-site.php +1 -1
  13. includes/class-wpvivid-schedule.php +5 -5
  14. includes/class-wpvivid.php +38 -17
  15. includes/customclass/class-wpvivid-dropbox.php +2 -2
  16. includes/customclass/class-wpvivid-ftpclass.php +1 -1
  17. includes/customclass/class-wpvivid-google-drive.php +1 -1
  18. includes/customclass/class-wpvivid-one-drive.php +2 -2
  19. includes/staging/class-wpvivid-fresh-install-create-ui-display.php +1 -1
  20. includes/staging/class-wpvivid-staging-create-ui-display.php +3 -3
  21. includes/staging/class-wpvivid-staging-list-ui-display.php +2 -2
  22. includes/staging/class-wpvivid-staging-log-page.php +25 -25
  23. includes/staging/class-wpvivid-staging-setting.php +7 -7
  24. includes/staging/class-wpvivid-staging-sites-list.php +28 -28
  25. includes/staging/class-wpvivid-staging-ui-display.php +3 -3
  26. includes/staging/class-wpvivid-staging.php +1 -1
  27. includes/upload-cleaner/class-wpvivid-upload-cleaner-setting.php +27 -27
  28. includes/upload-cleaner/class-wpvivid-uploads-cleaner.php +78 -78
  29. readme.txt +9 -2
  30. wpvivid-backuprestore.php +3 -3
admin/class-wpvivid-admin.php CHANGED
@@ -397,13 +397,13 @@ class WPvivid_Admin {
397
  if($is_active_pro)
398
  {
399
  $settings_link = array(
400
- '<a href="' . admin_url( 'admin.php?page=' . strtolower(sprintf('%s-dashboard', apply_filters('wpvivid_white_label_slug', 'wpvivid'))) ) . '">' . __('Settings', $this->plugin_name) . '</a>',
401
  );
402
  }
403
  else
404
  {
405
  $settings_link = array(
406
- '<a href="' . admin_url( 'admin.php?page=' . apply_filters('wpvivid_white_label_slug', $this->plugin_name) ) . '">' . __('Settings', $this->plugin_name) . '</a>',
407
  );
408
  }
409
 
@@ -439,7 +439,7 @@ class WPvivid_Admin {
439
  if(!empty($migrate_status) && $migrate_status == 'completed')
440
  {
441
  $migrate_notice=true;
442
- echo '<div class="notice notice-warning is-dismissible"><p>'.__('Migration is complete and htaccess file is replaced. In order to successfully complete the migration, you\'d better reinstall 301 redirect plugin, firewall and security plugin, and caching plugin if they exist.').'</p></div>';
443
  WPvivid_Setting::delete_option('wpvivid_migrate_status');
444
  }
445
  $restore = new WPvivid_restore_data();
@@ -460,7 +460,7 @@ class WPvivid_Admin {
460
  else{
461
  if(!$migrate_notice)
462
  {
463
- echo '<div class="notice notice-success is-dismissible"><p>'.__('Restore completed successfully.').'</p></div>';
464
  }
465
  }
466
  }
@@ -547,10 +547,10 @@ class WPvivid_Admin {
547
  echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
548
  <p>' . $review_msg . '</p>
549
  <div style="padding-bottom: 10px;">
550
- <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr('Rate Us', 'wpvivid-backuprestore').'" /></span>
551
- <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid-backuprestore').'" /></span>
552
- <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid-backuprestore').'" /></span>
553
- <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr('Already Done', 'wpvivid-backuprestore').'" /></span>
554
  </div>
555
  </div>';
556
  }
@@ -565,10 +565,10 @@ class WPvivid_Admin {
565
  echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
566
  <p>' . $review_msg . '</p>
567
  <div style="padding-bottom: 10px;">
568
- <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr('Rate Us', 'wpvivid-backuprestore').'" /></span>
569
- <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid-backuprestore').'" /></span>
570
- <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid-backuprestore').'" /></span>
571
- <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr('Already Done', 'wpvivid-backuprestore').'" /></span>
572
  </div>
573
  </div>';
574
  }
@@ -788,7 +788,7 @@ class WPvivid_Admin {
788
  {
789
  ?>
790
  <div class="notice notice-warning" style="padding: 11px 15px;">
791
- <?php echo sprintf(__('We detected that you are using a lower version of %s Pro, please update it to 2.0.23 or higher to ensure backing up to Google Drive works properly.', 'wpvivid'), apply_filters('wpvivid_white_label_display', 'WPvivid Backup Plugin')); ?>
792
  </div>
793
  <?php
794
  }
@@ -1131,8 +1131,8 @@ class WPvivid_Admin {
1131
  </div>
1132
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
1133
  <select id="wpvivid_debug_type">
1134
- <option selected="selected" value="sharehost">share hosting</option>
1135
- <option value="vps">VPS hosting</option>
1136
  </select>
1137
  </div>
1138
  <div style="clear: both;"></div>
@@ -1247,7 +1247,7 @@ class WPvivid_Admin {
1247
  try {
1248
  var jsonarray = jQuery.parseJSON(data);
1249
  if (jsonarray.result === "success") {
1250
- alert("Send succeeded.");
1251
  }
1252
  else {
1253
  alert(jsonarray.error);
397
  if($is_active_pro)
398
  {
399
  $settings_link = array(
400
+ '<a href="' . admin_url( 'admin.php?page=' . strtolower(sprintf('%s-dashboard', apply_filters('wpvivid_white_label_slug', 'wpvivid'))) ) . '">' . __('Settings', 'wpvivid-backuprestore') . '</a>',
401
  );
402
  }
403
  else
404
  {
405
  $settings_link = array(
406
+ '<a href="' . admin_url( 'admin.php?page=' . apply_filters('wpvivid_white_label_slug', $this->plugin_name) ) . '">' . __('Settings', 'wpvivid-backuprestore') . '</a>',
407
  );
408
  }
409
 
439
  if(!empty($migrate_status) && $migrate_status == 'completed')
440
  {
441
  $migrate_notice=true;
442
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Migration is complete and htaccess file is replaced. In order to successfully complete the migration, you\'d better reinstall 301 redirect plugin, firewall and security plugin, and caching plugin if they exist.', 'wpvivid-backuprestore').'</p></div>';
443
  WPvivid_Setting::delete_option('wpvivid_migrate_status');
444
  }
445
  $restore = new WPvivid_restore_data();
460
  else{
461
  if(!$migrate_notice)
462
  {
463
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('Restore completed successfully.', 'wpvivid-backuprestore').'</p></div>';
464
  }
465
  }
466
  }
547
  echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
548
  <p>' . $review_msg . '</p>
549
  <div style="padding-bottom: 10px;">
550
+ <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr__('Rate Us', 'wpvivid-backuprestore').'" /></span>
551
+ <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr__('Maybe Later', 'wpvivid-backuprestore').'" /></span>
552
+ <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr__('Never', 'wpvivid-backuprestore').'" /></span>
553
+ <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr__('Already Done', 'wpvivid-backuprestore').'" /></span>
554
  </div>
555
  </div>';
556
  }
565
  echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
566
  <p>' . $review_msg . '</p>
567
  <div style="padding-bottom: 10px;">
568
+ <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr__('Rate Us', 'wpvivid-backuprestore').'" /></span>
569
+ <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr__('Maybe Later', 'wpvivid-backuprestore').'" /></span>
570
+ <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr__('Never', 'wpvivid-backuprestore').'" /></span>
571
+ <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr__('Already Done', 'wpvivid-backuprestore').'" /></span>
572
  </div>
573
  </div>';
574
  }
788
  {
789
  ?>
790
  <div class="notice notice-warning" style="padding: 11px 15px;">
791
+ <?php echo sprintf(__('We detected that you are using a lower version of %s Pro, please update it to 2.0.23 or higher to ensure backing up to Google Drive works properly.', 'wpvivid-backuprestore'), apply_filters('wpvivid_white_label_display', 'WPvivid Backup Plugin')); ?>
792
  </div>
793
  <?php
794
  }
1131
  </div>
1132
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
1133
  <select id="wpvivid_debug_type">
1134
+ <option selected="selected" value="sharehost"><?php _e('share hosting', 'wpvivid-backuprestore'); ?></option>
1135
+ <option value="vps"><?php _e('VPS hosting', 'wpvivid-backuprestore'); ?></option>
1136
  </select>
1137
  </div>
1138
  <div style="clear: both;"></div>
1247
  try {
1248
  var jsonarray = jQuery.parseJSON(data);
1249
  if (jsonarray.result === "success") {
1250
+ alert("<?php esc_html_e('Send succeeded.', 'wpvivid-backuprestore'); ?>");
1251
  }
1252
  else {
1253
  alert(jsonarray.error);
admin/partials/wpvivid-backup-restore-page-display.php CHANGED
@@ -32,7 +32,7 @@ class WPvivid_Files_List extends WP_List_Table
32
 
33
  if (!empty($columns['cb'])) {
34
  static $cb_counter = 1;
35
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
36
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
37
  $cb_counter++;
38
  }
@@ -72,7 +72,7 @@ class WPvivid_Files_List extends WP_List_Table
72
  public function get_columns()
73
  {
74
  $columns = array();
75
- $columns['wpvivid_file'] = __( 'File', 'wpvivid' );
76
  return $columns;
77
  }
78
 
@@ -85,20 +85,20 @@ class WPvivid_Files_List extends WP_List_Table
85
  <div class="wpvivid-download-status" style="padding:0;">';
86
  if($file['status']=='completed')
87
  {
88
- $html.='<span>'.__('File Size: ', 'wpvivid').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class=" wpvivid-element-space-right wpvivid-ready-download"><a style="cursor: pointer;">Download</a></span>';
89
  }
90
  else if($file['status']=='file_not_found')
91
  {
92
- $html.='<span>' . __('File not found', 'wpvivid') . '</span>';
93
  }
94
  else if($file['status']=='need_download')
95
  {
96
- $html.='<span>'.__('File Size: ', 'wpvivid').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">Prepare to Download</a></span>';
97
  }
98
  else if($file['status']=='running')
99
  {
100
  $html.='<div class="wpvivid-element-space-bottom">
101
- <span class="wpvivid-element-space-right">Retriving (remote storage to web server)</span><span class="wpvivid-element-space-right">|</span><span>File Size: </span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span>Downloaded Size: </span><span>'.$file['downloaded_size'].'</span>
102
  </div>
103
  <div style="width:100%;height:10px; background-color:#dcdcdc;">
104
  <div style="background-color:#0085ba; float:left;width:'.$file['progress_text'].'%;height:10px;"></div>
@@ -110,7 +110,7 @@ class WPvivid_Files_List extends WP_List_Table
110
  <span>Download timeout, please retry.</span>
111
  </div>
112
  <div>
113
- <span>'.__('File Size: ', 'wpvivid').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">Prepare to Download</a></span>
114
  </div>';
115
  }
116
  else if($file['status']=='error')
@@ -119,7 +119,7 @@ class WPvivid_Files_List extends WP_List_Table
119
  <span>'.$file['error'].'</span>
120
  </div>
121
  <div>
122
- <span>'.__('File Size: ', 'wpvivid').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">Prepare to Download</a></span>
123
  </div>';
124
  }
125
 
@@ -229,7 +229,7 @@ class WPvivid_Files_List extends WP_List_Table
229
  $this->screen->render_screen_reader_content( 'heading_pagination' );
230
  }
231
 
232
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
233
 
234
  $current = $this->get_pagenum();
235
 
@@ -260,7 +260,7 @@ class WPvivid_Files_List extends WP_List_Table
260
  } else {
261
  $page_links[] = sprintf(
262
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
263
- __( 'First page' ),
264
  '&laquo;'
265
  );
266
  }
@@ -271,24 +271,24 @@ class WPvivid_Files_List extends WP_List_Table
271
  $page_links[] = sprintf(
272
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
273
  $current,
274
- __( 'Previous page' ),
275
  '&lsaquo;'
276
  );
277
  }
278
 
279
  if ( 'bottom' === $which ) {
280
  $html_current_page = $current;
281
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
282
  } else {
283
  $html_current_page = sprintf(
284
  "%s<input class='current-page' id='current-page-selector-filelist' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
285
- '<label for="current-page-selector-filelist" class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
286
  $current,
287
  strlen( $total_pages )
288
  );
289
  }
290
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
291
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
292
 
293
  if ( $disable_next ) {
294
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -296,7 +296,7 @@ class WPvivid_Files_List extends WP_List_Table
296
  $page_links[] = sprintf(
297
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
298
  $current,
299
- __( 'Next page' ),
300
  '&rsaquo;'
301
  );
302
  }
@@ -306,7 +306,7 @@ class WPvivid_Files_List extends WP_List_Table
306
  } else {
307
  $page_links[] = sprintf(
308
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
309
- __( 'Last page' ),
310
  '&raquo;'
311
  );
312
  }
@@ -852,7 +852,7 @@ function wpvivid_backuppage_add_page_backup(){
852
  if (j == 2) {
853
  var backup_id = jQuery(this).parent().children('th').find("input[type=checkbox]").attr("id");
854
  var download_btn = '<div id="wpvivid_file_part_' + backup_id + '" style="float:left;padding:10px 10px 10px 0px;">' +
855
- '<div style="cursor:pointer;" onclick="wpvivid_initialize_download(\'' + backup_id + '\', \''+list_name+'\');" title="Prepare to download the backup">' +
856
  '<img id="wpvivid_download_btn_' + backup_id + '" src="' + wpvivid_plugurl + '/admin/partials/images/download.png" style="vertical-align:middle;" />Download' +
857
  '<div class="spinner" id="wpvivid_download_loading_' + backup_id + '" style="float:right;width:auto;height:auto;padding:10px 180px 10px 0;background-position:0 0;"></div>' +
858
  '</div>' +
@@ -1382,7 +1382,7 @@ function wpvivid_backuppage_add_page_restore(){
1382
  */
1383
  function wpvivid_start_restore(restore_type = 'backup'){
1384
  if(!wpvivid_restore_sure){
1385
- var descript = 'Are you sure to continue?';
1386
  var ret = confirm(descript);
1387
  }
1388
  else{
@@ -1695,14 +1695,14 @@ function wpvivid_backuppage_add_page_restore(){
1695
  wpvivid_restoring = false;
1696
  wpvivid_restore(restore_type);
1697
  wpvivid_restore_unlock();
1698
- alert("Restore completed successfully.");
1699
  location.reload();
1700
  }
1701
  else if (jsonarray.status === 'error') {
1702
  wpvivid_restore_unlock();
1703
  wpvivid_restoring = false;
1704
  jQuery('#wpvivid_restore_' + restore_method + 'btn').css({'pointer-events': 'auto', 'opacity': '1'});
1705
- alert("Restore failed.");
1706
  }
1707
  else {
1708
  setTimeout(function () {
@@ -2335,7 +2335,7 @@ function wpvivid_backup_module_add_exec(){
2335
  var bcheck=true;
2336
  var bdownloading=false;
2337
  if(m_downloading_id !== '') {
2338
- var descript = 'This request might delete the backup being downloaded, are you sure you want to continue?';
2339
  var ret = confirm(descript);
2340
  if (ret === true) {
2341
  bcheck=true;
32
 
33
  if (!empty($columns['cb'])) {
34
  static $cb_counter = 1;
35
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
36
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
37
  $cb_counter++;
38
  }
72
  public function get_columns()
73
  {
74
  $columns = array();
75
+ $columns['wpvivid_file'] = __( 'File', 'wpvivid-backuprestore' );
76
  return $columns;
77
  }
78
 
85
  <div class="wpvivid-download-status" style="padding:0;">';
86
  if($file['status']=='completed')
87
  {
88
+ $html.='<span>'.__('File Size: ', 'wpvivid-backuprestore').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class=" wpvivid-element-space-right wpvivid-ready-download"><a style="cursor: pointer;">'. __('Download', 'wpvivid-backuprestore').'</a></span>';
89
  }
90
  else if($file['status']=='file_not_found')
91
  {
92
+ $html.='<span>' . __('File not found', 'wpvivid-backuprestore') . '</span>';
93
  }
94
  else if($file['status']=='need_download')
95
  {
96
+ $html.='<span>'.__('File Size: ', 'wpvivid-backuprestore').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">'. __('Prepare to Download', 'wpvivid-backuprestore').'</a></span>';
97
  }
98
  else if($file['status']=='running')
99
  {
100
  $html.='<div class="wpvivid-element-space-bottom">
101
+ <span class="wpvivid-element-space-right">' . __('Retriving (remote storage to web server)', 'wpvivid-backuprestore') . '</span><span class="wpvivid-element-space-right">|</span><span>' . __('File Size: ', 'wpvivid-backuprestore') . '</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span>'. __('Downloaded Size: ', 'wpvivid-backuprestore').'</span><span>'.$file['downloaded_size'].'</span>
102
  </div>
103
  <div style="width:100%;height:10px; background-color:#dcdcdc;">
104
  <div style="background-color:#0085ba; float:left;width:'.$file['progress_text'].'%;height:10px;"></div>
110
  <span>Download timeout, please retry.</span>
111
  </div>
112
  <div>
113
+ <span>'.__('File Size: ', 'wpvivid-backuprestore').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">'. __('Prepare to Download', 'wpvivid-backuprestore').'</a></span>
114
  </div>';
115
  }
116
  else if($file['status']=='error')
119
  <span>'.$file['error'].'</span>
120
  </div>
121
  <div>
122
+ <span>'.__('File Size: ', 'wpvivid-backuprestore').'</span><span class="wpvivid-element-space-right wpvivid-download-file-size">'.$file['size'].'</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">'. __('Prepare to Download', 'wpvivid-backuprestore').'</a></span>
123
  </div>';
124
  }
125
 
229
  $this->screen->render_screen_reader_content( 'heading_pagination' );
230
  }
231
 
232
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
233
 
234
  $current = $this->get_pagenum();
235
 
260
  } else {
261
  $page_links[] = sprintf(
262
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
263
+ __( 'First page', 'wpvivid-backuprestore' ),
264
  '&laquo;'
265
  );
266
  }
271
  $page_links[] = sprintf(
272
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
273
  $current,
274
+ __( 'Previous page', 'wpvivid-backuprestore' ),
275
  '&lsaquo;'
276
  );
277
  }
278
 
279
  if ( 'bottom' === $which ) {
280
  $html_current_page = $current;
281
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
282
  } else {
283
  $html_current_page = sprintf(
284
  "%s<input class='current-page' id='current-page-selector-filelist' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
285
+ '<label for="current-page-selector-filelist" class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
286
  $current,
287
  strlen( $total_pages )
288
  );
289
  }
290
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
291
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
292
 
293
  if ( $disable_next ) {
294
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
296
  $page_links[] = sprintf(
297
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
298
  $current,
299
+ __( 'Next page', 'wpvivid-backuprestore' ),
300
  '&rsaquo;'
301
  );
302
  }
306
  } else {
307
  $page_links[] = sprintf(
308
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
309
+ __( 'Last page', 'wpvivid-backuprestore' ),
310
  '&raquo;'
311
  );
312
  }
852
  if (j == 2) {
853
  var backup_id = jQuery(this).parent().children('th').find("input[type=checkbox]").attr("id");
854
  var download_btn = '<div id="wpvivid_file_part_' + backup_id + '" style="float:left;padding:10px 10px 10px 0px;">' +
855
+ '<div style="cursor:pointer;" onclick="wpvivid_initialize_download(\'' + backup_id + '\', \''+list_name+'\');" title="<?php esc_html_e('Prepare to download the backup', 'wpvivid-backuprestore'); ?>">' +
856
  '<img id="wpvivid_download_btn_' + backup_id + '" src="' + wpvivid_plugurl + '/admin/partials/images/download.png" style="vertical-align:middle;" />Download' +
857
  '<div class="spinner" id="wpvivid_download_loading_' + backup_id + '" style="float:right;width:auto;height:auto;padding:10px 180px 10px 0;background-position:0 0;"></div>' +
858
  '</div>' +
1382
  */
1383
  function wpvivid_start_restore(restore_type = 'backup'){
1384
  if(!wpvivid_restore_sure){
1385
+ var descript = '<?php esc_html_e('Are you sure to continue?', 'wpvivid-backuprestore'); ?>';
1386
  var ret = confirm(descript);
1387
  }
1388
  else{
1695
  wpvivid_restoring = false;
1696
  wpvivid_restore(restore_type);
1697
  wpvivid_restore_unlock();
1698
+ alert("<?php esc_html_e('Restore completed successfully.', 'wpvivid-backuprestore'); ?>");
1699
  location.reload();
1700
  }
1701
  else if (jsonarray.status === 'error') {
1702
  wpvivid_restore_unlock();
1703
  wpvivid_restoring = false;
1704
  jQuery('#wpvivid_restore_' + restore_method + 'btn').css({'pointer-events': 'auto', 'opacity': '1'});
1705
+ alert("<?php esc_html_e('Restore failed.', 'wpvivid-backuprestore'); ?>");
1706
  }
1707
  else {
1708
  setTimeout(function () {
2335
  var bcheck=true;
2336
  var bdownloading=false;
2337
  if(m_downloading_id !== '') {
2338
+ var descript = '<?php esc_html_e('This request might delete the backup being downloaded, are you sure you want to continue?', 'wpvivid-backuprestore'); ?>';
2339
  var ret = confirm(descript);
2340
  if (ret === true) {
2341
  bcheck=true;
admin/partials/wpvivid-remote-storage-page-display.php CHANGED
@@ -190,7 +190,7 @@ function wpvivid_add_page_storage_list()
190
  });
191
 
192
  function wpvivid_delete_remote_storage(storage_id){
193
- var descript = 'Deleting a remote storage will make it unavailable until it is added again. Are you sure to continue?';
194
  var ret = confirm(descript);
195
  if(ret === true){
196
  var ajax_data = {
@@ -232,7 +232,7 @@ function wpvivid_add_page_storage_list()
232
  function wpvivid_control_remote_storage(has_remote){
233
  if(!has_remote){
234
  if(jQuery("input:radio[name='save_local_remote'][value='remote']").prop('checked')) {
235
- alert("There is no default remote storage configured. Please set it up first.");
236
  jQuery("input:radio[name='save_local_remote'][value='local']").prop('checked', true);
237
  }
238
  }
190
  });
191
 
192
  function wpvivid_delete_remote_storage(storage_id){
193
+ var descript = '<?php esc_html_e('Deleting a remote storage will make it unavailable until it is added again. Are you sure to continue?', 'wpvivid-backuprestore'); ?>';
194
  var ret = confirm(descript);
195
  if(ret === true){
196
  var ajax_data = {
232
  function wpvivid_control_remote_storage(has_remote){
233
  if(!has_remote){
234
  if(jQuery("input:radio[name='save_local_remote'][value='remote']").prop('checked')) {
235
+ alert("<?php esc_html_e('There is no default remote storage configured. Please set it up first.', 'wpvivid-backuprestore'); ?>");
236
  jQuery("input:radio[name='save_local_remote'][value='local']").prop('checked', true);
237
  }
238
  }
admin/partials/wpvivid-schedule-page-display.php CHANGED
@@ -186,7 +186,7 @@ function wpvivid_schedule_do_js()
186
  if(empty($remote_id))
187
  {
188
  ?>
189
- alert("There is no default remote storage configured. Please set it up first.");
190
  jQuery("input:radio[name='save_local_remote'][value='local']").prop('checked', true);
191
  <?php
192
  }
186
  if(empty($remote_id))
187
  {
188
  ?>
189
+ alert("<?php esc_html_e('There is no default remote storage configured. Please set it up first.', 'wpvivid-backuprestore'); ?>");
190
  jQuery("input:radio[name='save_local_remote'][value='local']").prop('checked', true);
191
  <?php
192
  }
admin/partials/wpvivid-settings-page-display.php CHANGED
@@ -126,7 +126,7 @@ function wpvivid_general_settings()
126
  <div>
127
  <label>
128
  <input type="checkbox" option="setting" name="uninstall_clear_folder" <?php esc_attr_e($uninstall_clear_folder); ?> />
129
- <span><?php _e(sprintf('Delete the /%s folder and all backups in it when deleting WPvivid Backup plugin.', $general_setting['options']['wpvivid_local_setting']['path']), 'wpvivid-backuprestore'); ?></span>
130
  </label>
131
  </div>
132
  </div>
@@ -184,7 +184,7 @@ function wpvivid_general_settings()
184
  try {
185
  var jsonarray = jQuery.parseJSON(data);
186
  if (jsonarray.result === "success") {
187
- alert("Out of date backups have been removed.");
188
  wpvivid_handle_backup_data(data);
189
  }
190
  }
@@ -399,7 +399,7 @@ function wpvivid_clean_junk()
399
  * Clean junk files created during backups and restorations off your web server disk.
400
  */
401
  function wpvivid_clean_junk_files(){
402
- var descript = 'The selected item(s) will be permanently deleted. Are you sure you want to continue?';
403
  var ret = confirm(descript);
404
  if(ret === true){
405
  var option_data = wpvivid_ajax_data_transfer('junk-files');
@@ -636,12 +636,12 @@ function wpvivid_advanced_settings()
636
  </div>
637
  <div><strong><?php _e('PHP script execution timeout for backup', 'wpvivid-backuprestore'); ?></strong></div>
638
  <div class="setting-tab-block">
639
- <input type="text" placeholder="900" option="setting" name="max_execution_time" id="wpvivid_option_timeout" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_common_setting']['max_execution_time'], 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" />Seconds
640
  <div><p><?php _e( 'The time-out is not your server PHP time-out. With the execution time exhausted, our plugin will shut the process of backup down. If the progress of backup encounters a time-out, that means you have a medium or large sized website, please try to scale the value bigger.', 'wpvivid-backuprestore' ); ?></p></div>
641
  </div>
642
  <div><strong><?php _e('PHP script execution timeout for restore', 'wpvivid-backuprestore'); ?></strong></div>
643
  <div class="setting-tab-block">
644
- <input type="text" placeholder="1800" option="setting" name="restore_max_execution_time" class="all-options" value="<?php esc_attr_e($restore_max_execution_time); ?>" onkeyup="value=value.replace(/\D/g,'')" />Seconds
645
  <div><p><?php _e( 'The time-out is not your server PHP time-out. With the execution time exhausted, our plugin will shut the process of restore down. If the progress of restore encounters a time-out, that means you have a medium or large sized website, please try to scale the value bigger.', 'wpvivid-backuprestore' ); ?></p></div>
646
  </div>
647
  <div><strong><?php _e('PHP Memory Limit for backup', 'wpvivid-backuprestore'); ?></strong></div>
126
  <div>
127
  <label>
128
  <input type="checkbox" option="setting" name="uninstall_clear_folder" <?php esc_attr_e($uninstall_clear_folder); ?> />
129
+ <span><?php echo sprintf(__('Delete the /%s folder and all backups in it when deleting WPvivid Backup plugin.', 'wpvivid-backuprestore'), $general_setting['options']['wpvivid_local_setting']['path']); ?></span>
130
  </label>
131
  </div>
132
  </div>
184
  try {
185
  var jsonarray = jQuery.parseJSON(data);
186
  if (jsonarray.result === "success") {
187
+ alert("<?php esc_html_e('Out of date backups have been removed.', 'wpvivid-backuprestore'); ?>");
188
  wpvivid_handle_backup_data(data);
189
  }
190
  }
399
  * Clean junk files created during backups and restorations off your web server disk.
400
  */
401
  function wpvivid_clean_junk_files(){
402
+ var descript = '<?php esc_html_e('The selected item(s) will be permanently deleted. Are you sure you want to continue?', 'wpvivid-backuprestore'); ?>';
403
  var ret = confirm(descript);
404
  if(ret === true){
405
  var option_data = wpvivid_ajax_data_transfer('junk-files');
636
  </div>
637
  <div><strong><?php _e('PHP script execution timeout for backup', 'wpvivid-backuprestore'); ?></strong></div>
638
  <div class="setting-tab-block">
639
+ <input type="text" placeholder="900" option="setting" name="max_execution_time" id="wpvivid_option_timeout" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_common_setting']['max_execution_time'], 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" /><?php esc_html_e('Seconds', 'wpvivid-backuprestore'); ?>
640
  <div><p><?php _e( 'The time-out is not your server PHP time-out. With the execution time exhausted, our plugin will shut the process of backup down. If the progress of backup encounters a time-out, that means you have a medium or large sized website, please try to scale the value bigger.', 'wpvivid-backuprestore' ); ?></p></div>
641
  </div>
642
  <div><strong><?php _e('PHP script execution timeout for restore', 'wpvivid-backuprestore'); ?></strong></div>
643
  <div class="setting-tab-block">
644
+ <input type="text" placeholder="1800" option="setting" name="restore_max_execution_time" class="all-options" value="<?php esc_attr_e($restore_max_execution_time); ?>" onkeyup="value=value.replace(/\D/g,'')" /><?php esc_html_e('Seconds', 'wpvivid-backuprestore'); ?>
645
  <div><p><?php _e( 'The time-out is not your server PHP time-out. With the execution time exhausted, our plugin will shut the process of restore down. If the progress of restore encounters a time-out, that means you have a medium or large sized website, please try to scale the value bigger.', 'wpvivid-backuprestore' ); ?></p></div>
646
  </div>
647
  <div><strong><?php _e('PHP Memory Limit for backup', 'wpvivid-backuprestore'); ?></strong></div>
includes/class-wpvivid-backup-uploader.php CHANGED
@@ -645,9 +645,9 @@ class Wpvivid_BackupUploader
645
  <div id="wpvivid_plupload-upload-ui" class="hide-if-no-js" style="margin-bottom: 10px;">
646
  <div id="drag-drop-area">
647
  <div class="drag-drop-inside">
648
- <p class="drag-drop-info"><?php _e('Drop files here'); ?></p>
649
- <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files'); ?></p>
650
- <p class="drag-drop-buttons"><input id="wpvivid_select_file_button" type="button" value="<?php esc_attr_e('Select Files'); ?>" class="button" /></p>
651
  </div>
652
  </div>
653
  </div>
645
  <div id="wpvivid_plupload-upload-ui" class="hide-if-no-js" style="margin-bottom: 10px;">
646
  <div id="drag-drop-area">
647
  <div class="drag-drop-inside">
648
+ <p class="drag-drop-info"><?php _e('Drop files here', 'wpvivid-backuprestore'); ?></p>
649
+ <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files', 'wpvivid-backuprestore'); ?></p>
650
+ <p class="drag-drop-buttons"><input id="wpvivid_select_file_button" type="button" value="<?php esc_attr_e('Select Files', 'wpvivid-backuprestore'); ?>" class="button" /></p>
651
  </div>
652
  </div>
653
  </div>
includes/class-wpvivid-export-import.php CHANGED
@@ -318,7 +318,7 @@ class WPvivid_Export_Import
318
  if (post_comment.match(reg)) {
319
  jQuery('#wpvivid_set_post_comment').val('');
320
  jQuery('#wpvivid_post_comment').html('*');
321
- alert('You can not use word \'wpvivid\' to comment the post.');
322
  }
323
  else{
324
  jQuery('#wpvivid_post_comment').html(post_comment);
@@ -392,7 +392,7 @@ class WPvivid_Export_Import
392
  });
393
 
394
  if(select_type === 'list' && !has_item){
395
- alert('Please select at least one item.');
396
  }
397
  else{
398
  var post_ids_json = {
@@ -616,7 +616,7 @@ class WPvivid_Export_Import
616
  global $wpdb;
617
  $post_type = sanitize_text_field($_POST['post_type']);
618
  $descript_type = $post_type === 'post' ? 'posts' : 'pages';
619
- $btn_text = $post_type === 'post' ? 'Show Posts' : 'Show Pages';
620
 
621
  ob_start();
622
  ?>
@@ -1768,7 +1768,7 @@ class WPvivid_Export_Import
1768
 
1769
  function wpvivid_clean_import_folder()
1770
  {
1771
- var descript = 'Are you sure you want to delete all the exported files in the /ImportandExport folder? All the export files in the folder will be permanently deleted.';
1772
  var ret = confirm(descript);
1773
  if(ret === true){
1774
  var ajax_data = {
@@ -1780,7 +1780,7 @@ class WPvivid_Export_Import
1780
  var jsonarray = jQuery.parseJSON(data);
1781
  if(jsonarray.html !== false) {
1782
  jQuery('#wpvivid_import_list').html(jsonarray.html);
1783
- jQuery('#wpvivid_empty_import_folder').val('Delete Exported Files In Folder ('+jsonarray.size+')');
1784
  }
1785
  }
1786
  catch(err) {
@@ -1869,13 +1869,13 @@ class WPvivid_Export_Import
1869
  var div = jQuery('#wpvivid_import_log');
1870
  div[0].scrollTop = div[0].scrollHeight;
1871
  setTimeout(function () {
1872
- alert("Import completed successfully.");
1873
  }, 1000);
1874
  wpvivid_import_lock_unlock('unlock');
1875
  }
1876
  else if (jsonarray.status === 'error')
1877
  {
1878
- alert("Import failed.");
1879
  wpvivid_import_lock_unlock('unlock');
1880
  }
1881
  else
@@ -1920,7 +1920,7 @@ class WPvivid_Export_Import
1920
  wpvivid_start_import(import_file_name, user);
1921
  }
1922
  else{
1923
- alert('Please select an existing author to start importing.');
1924
  }
1925
  }
1926
  });
@@ -2078,7 +2078,7 @@ class WPvivid_Export_Import
2078
  var jsonarray = jQuery.parseJSON(data);
2079
  if (jsonarray.result === 'success')
2080
  {
2081
- jQuery('#wpvivid_empty_import_folder').val('Delete Exported Files In Folder ('+jsonarray.size+')');
2082
  }
2083
  }, function(XMLHttpRequest, textStatus, errorThrown)
2084
  {
318
  if (post_comment.match(reg)) {
319
  jQuery('#wpvivid_set_post_comment').val('');
320
  jQuery('#wpvivid_post_comment').html('*');
321
+ alert('<?php esc_html_e('You can not use word \'wpvivid\' to comment the post.', 'wpvivid-backuprestore'); ?>');
322
  }
323
  else{
324
  jQuery('#wpvivid_post_comment').html(post_comment);
392
  });
393
 
394
  if(select_type === 'list' && !has_item){
395
+ alert('<?php esc_html_e('Please select at least one item.', 'wpvivid-backuprestore'); ?>');
396
  }
397
  else{
398
  var post_ids_json = {
616
  global $wpdb;
617
  $post_type = sanitize_text_field($_POST['post_type']);
618
  $descript_type = $post_type === 'post' ? 'posts' : 'pages';
619
+ $btn_text = $post_type === 'post' ? __('Show Posts', 'wpvivid-backuprestore') : __('Show Pages', 'wpvivid-backuprestore');
620
 
621
  ob_start();
622
  ?>
1768
 
1769
  function wpvivid_clean_import_folder()
1770
  {
1771
+ var descript = '<?php esc_html_e('Are you sure you want to delete all the exported files in the /ImportandExport folder? All the export files in the folder will be permanently deleted.', 'wpvivid-backuprestore'); ?>';
1772
  var ret = confirm(descript);
1773
  if(ret === true){
1774
  var ajax_data = {
1780
  var jsonarray = jQuery.parseJSON(data);
1781
  if(jsonarray.html !== false) {
1782
  jQuery('#wpvivid_import_list').html(jsonarray.html);
1783
+ jQuery('#wpvivid_empty_import_folder').val('<?php esc_attr_e('Delete Exported Files In Folder', 'wpvivid-backuprestore'); ?> ('+jsonarray.size+')');
1784
  }
1785
  }
1786
  catch(err) {
1869
  var div = jQuery('#wpvivid_import_log');
1870
  div[0].scrollTop = div[0].scrollHeight;
1871
  setTimeout(function () {
1872
+ alert("<?php esc_html_e('Import completed successfully.', 'wpvivid-backuprestore'); ?>");
1873
  }, 1000);
1874
  wpvivid_import_lock_unlock('unlock');
1875
  }
1876
  else if (jsonarray.status === 'error')
1877
  {
1878
+ alert("<?php esc_html_e('Import failed.', 'wpvivid-backuprestore'); ?>");
1879
  wpvivid_import_lock_unlock('unlock');
1880
  }
1881
  else
1920
  wpvivid_start_import(import_file_name, user);
1921
  }
1922
  else{
1923
+ alert('<?php esc_html_e('Please select an existing author to start importing.', 'wpvivid-backuprestore'); ?>');
1924
  }
1925
  }
1926
  });
2078
  var jsonarray = jQuery.parseJSON(data);
2079
  if (jsonarray.result === 'success')
2080
  {
2081
+ jQuery('#wpvivid_empty_import_folder').val('<?php esc_attr_e('Delete Exported Files In Folder', 'wpvivid-backuprestore'); ?> ('+jsonarray.size+')');
2082
  }
2083
  }, function(XMLHttpRequest, textStatus, errorThrown)
2084
  {
includes/class-wpvivid-exporter.php CHANGED
@@ -68,7 +68,7 @@ class WPvivid_Post_List extends WP_List_Table
68
  $checked='';
69
 
70
  static $cb_counter = 1;
71
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __( 'Select All' ) . '</label>'
72
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox" '.$checked.'/>';
73
  $cb_counter++;
74
  }
@@ -112,10 +112,10 @@ class WPvivid_Post_List extends WP_List_Table
112
  /* translators: manage posts column name */
113
  $posts_columns['wpvivid_id'] = 'ID';
114
 
115
- $posts_columns['title'] = _x( 'Title', 'column name' );
116
 
117
  if ( post_type_supports( $post_type, 'author' ) ) {
118
- $posts_columns['author'] = __( 'Author' );
119
  }
120
 
121
  $taxonomies = get_object_taxonomies( $post_type, 'objects' );
@@ -147,9 +147,9 @@ class WPvivid_Post_List extends WP_List_Table
147
  $posts_columns[ $column_key ] = get_taxonomy( $taxonomy )->labels->name;
148
  }
149
 
150
- $posts_columns['comments'] =__( 'Comments' );
151
 
152
- $posts_columns['date'] = __( 'Date' );
153
 
154
  return $posts_columns;
155
  }
@@ -509,7 +509,7 @@ class WPvivid_Post_List extends WP_List_Table
509
  $this->screen->render_screen_reader_content( 'heading_pagination' );
510
  }
511
 
512
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
513
 
514
  $current = $this->get_pagenum();
515
  $removable_query_args = wp_removable_query_args();
@@ -545,7 +545,7 @@ class WPvivid_Post_List extends WP_List_Table
545
  } else {
546
  $page_links[] = sprintf(
547
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
548
- __( 'First page' ),
549
  '&laquo;'
550
  );
551
  }
@@ -556,24 +556,24 @@ class WPvivid_Post_List extends WP_List_Table
556
  $page_links[] = sprintf(
557
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
558
  $current,
559
- __( 'Previous page' ),
560
  '&lsaquo;'
561
  );
562
  }
563
 
564
  if ( 'bottom' === $which ) {
565
  $html_current_page = $current;
566
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
567
  } else {
568
  $html_current_page = sprintf(
569
  "%s<input class='current-page' id='current-page-selector-export' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
570
- '<label for="current-page-selector-export" class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
571
  $current,
572
  strlen( $total_pages )
573
  );
574
  }
575
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
576
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
577
 
578
  if ( $disable_next ) {
579
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -581,7 +581,7 @@ class WPvivid_Post_List extends WP_List_Table
581
  $page_links[] = sprintf(
582
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
583
  $current,
584
- __( 'Next page' ),
585
  '&rsaquo;'
586
  );
587
  }
@@ -591,7 +591,7 @@ class WPvivid_Post_List extends WP_List_Table
591
  } else {
592
  $page_links[] = sprintf(
593
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
594
- __( 'Last page' ),
595
  '&raquo;'
596
  );
597
  }
@@ -630,7 +630,7 @@ class WPvivid_Post_List extends WP_List_Table
630
  ?>
631
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
632
  <div class="alignleft actions bulkactions">
633
- <?php echo '<input class="button-primary" id="wpvivid-post-research-submit" type="submit" name="post" value="Reset Filters">'; ?>
634
  </div>
635
  <?php
636
  $this->extra_tablenav( $which );
68
  $checked='';
69
 
70
  static $cb_counter = 1;
71
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __( 'Select All', 'wpvivid-backuprestore' ) . '</label>'
72
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox" '.$checked.'/>';
73
  $cb_counter++;
74
  }
112
  /* translators: manage posts column name */
113
  $posts_columns['wpvivid_id'] = 'ID';
114
 
115
+ $posts_columns['title'] = _x( 'Title', 'column name', 'wpvivid-backuprestore' );
116
 
117
  if ( post_type_supports( $post_type, 'author' ) ) {
118
+ $posts_columns['author'] = __( 'Author', 'wpvivid-backuprestore' );
119
  }
120
 
121
  $taxonomies = get_object_taxonomies( $post_type, 'objects' );
147
  $posts_columns[ $column_key ] = get_taxonomy( $taxonomy )->labels->name;
148
  }
149
 
150
+ $posts_columns['comments'] =__( 'Comments', 'wpvivid-backuprestore' );
151
 
152
+ $posts_columns['date'] = __( 'Date', 'wpvivid-backuprestore' );
153
 
154
  return $posts_columns;
155
  }
509
  $this->screen->render_screen_reader_content( 'heading_pagination' );
510
  }
511
 
512
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
513
 
514
  $current = $this->get_pagenum();
515
  $removable_query_args = wp_removable_query_args();
545
  } else {
546
  $page_links[] = sprintf(
547
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
548
+ __( 'First page', 'wpvivid-backuprestore' ),
549
  '&laquo;'
550
  );
551
  }
556
  $page_links[] = sprintf(
557
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
558
  $current,
559
+ __( 'Previous page', 'wpvivid-backuprestore' ),
560
  '&lsaquo;'
561
  );
562
  }
563
 
564
  if ( 'bottom' === $which ) {
565
  $html_current_page = $current;
566
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
567
  } else {
568
  $html_current_page = sprintf(
569
  "%s<input class='current-page' id='current-page-selector-export' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
570
+ '<label for="current-page-selector-export" class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
571
  $current,
572
  strlen( $total_pages )
573
  );
574
  }
575
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
576
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
577
 
578
  if ( $disable_next ) {
579
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
581
  $page_links[] = sprintf(
582
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
583
  $current,
584
+ __( 'Next page', 'wpvivid-backuprestore' ),
585
  '&rsaquo;'
586
  );
587
  }
591
  } else {
592
  $page_links[] = sprintf(
593
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
594
+ __( 'Last page', 'wpvivid-backuprestore' ),
595
  '&raquo;'
596
  );
597
  }
630
  ?>
631
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
632
  <div class="alignleft actions bulkactions">
633
+ <?php echo '<input class="button-primary" id="wpvivid-post-research-submit" type="submit" name="post" value="' . esc_attr__('Reset Filters', 'wpvivid-backuprestore') .'">'; ?>
634
  </div>
635
  <?php
636
  $this->extra_tablenav( $which );
includes/class-wpvivid-importer.php CHANGED
@@ -47,7 +47,7 @@ class WPvivid_Export_List extends WP_List_Table
47
 
48
  if (!empty($columns['cb'])) {
49
  static $cb_counter = 1;
50
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
51
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
52
  $cb_counter++;
53
  }
@@ -164,7 +164,7 @@ class WPvivid_Export_List extends WP_List_Table
164
  $export = $item['export_type'] === 'page' ? 'Page' : 'Post';
165
  echo '<td style="color: #000;">
166
  <div>
167
- <div style="float:left;padding:10px 10px 10px 0;">'.__('Type: ').$export.'</div>
168
  </div>
169
  </td>';
170
  }
@@ -265,7 +265,7 @@ class WPvivid_Export_List extends WP_List_Table
265
  $this->screen->render_screen_reader_content( 'heading_pagination' );
266
  }
267
 
268
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
269
 
270
  $current = $this->get_pagenum();
271
  $removable_query_args = wp_removable_query_args();
@@ -301,7 +301,7 @@ class WPvivid_Export_List extends WP_List_Table
301
  } else {
302
  $page_links[] = sprintf(
303
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
304
- __( 'First page' ),
305
  '&laquo;'
306
  );
307
  }
@@ -312,24 +312,24 @@ class WPvivid_Export_List extends WP_List_Table
312
  $page_links[] = sprintf(
313
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
314
  $current,
315
- __( 'Previous page' ),
316
  '&lsaquo;'
317
  );
318
  }
319
 
320
  if ( 'bottom' === $which ) {
321
  $html_current_page = $current;
322
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
323
  } else {
324
  $html_current_page = sprintf(
325
  "%s<input class='current-page' id='current-page-selector-import' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
326
- '<label for="current-page-selector-import" class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
327
  $current,
328
  strlen( $total_pages )
329
  );
330
  }
331
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
332
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
333
 
334
  if ( $disable_next ) {
335
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -337,7 +337,7 @@ class WPvivid_Export_List extends WP_List_Table
337
  $page_links[] = sprintf(
338
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
339
  $current,
340
- __( 'Next page' ),
341
  '&rsaquo;'
342
  );
343
  }
@@ -347,7 +347,7 @@ class WPvivid_Export_List extends WP_List_Table
347
  } else {
348
  $page_links[] = sprintf(
349
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
350
- __( 'Last page' ),
351
  '&raquo;'
352
  );
353
  }
@@ -1673,7 +1673,7 @@ class WPvivid_media_importer
1673
 
1674
  if ( ! $wp_filetype['ext'] && ! current_user_can( 'unfiltered_upload' ) )
1675
  {
1676
- return new WP_Error( 'import_file_error', __( 'Sorry, this file type is not permitted for security reasons.' ) );
1677
  }
1678
 
1679
  return apply_filters(
@@ -1774,7 +1774,7 @@ class WPvivid_media_importer
1774
  $wp_filetype = wp_check_filetype( $file_name );
1775
 
1776
  if ( ! $wp_filetype['ext'] && ! current_user_can( 'unfiltered_upload' ) ) {
1777
- return array( 'error' => __( 'Sorry, this file type is not permitted for security reasons.' ) );
1778
  }
1779
 
1780
  if(!file_exists($new_file))
47
 
48
  if (!empty($columns['cb'])) {
49
  static $cb_counter = 1;
50
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
51
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
52
  $cb_counter++;
53
  }
164
  $export = $item['export_type'] === 'page' ? 'Page' : 'Post';
165
  echo '<td style="color: #000;">
166
  <div>
167
+ <div style="float:left;padding:10px 10px 10px 0;">'.__('Type: ', 'wpvivid-backuprestore').$export.'</div>
168
  </div>
169
  </td>';
170
  }
265
  $this->screen->render_screen_reader_content( 'heading_pagination' );
266
  }
267
 
268
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
269
 
270
  $current = $this->get_pagenum();
271
  $removable_query_args = wp_removable_query_args();
301
  } else {
302
  $page_links[] = sprintf(
303
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
304
+ __( 'First page', 'wpvivid-backuprestore' ),
305
  '&laquo;'
306
  );
307
  }
312
  $page_links[] = sprintf(
313
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
314
  $current,
315
+ __( 'Previous page', 'wpvivid-backuprestore' ),
316
  '&lsaquo;'
317
  );
318
  }
319
 
320
  if ( 'bottom' === $which ) {
321
  $html_current_page = $current;
322
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
323
  } else {
324
  $html_current_page = sprintf(
325
  "%s<input class='current-page' id='current-page-selector-import' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
326
+ '<label for="current-page-selector-import" class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
327
  $current,
328
  strlen( $total_pages )
329
  );
330
  }
331
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
332
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
333
 
334
  if ( $disable_next ) {
335
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
337
  $page_links[] = sprintf(
338
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
339
  $current,
340
+ __( 'Next page', 'wpvivid-backuprestore' ),
341
  '&rsaquo;'
342
  );
343
  }
347
  } else {
348
  $page_links[] = sprintf(
349
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
350
+ __( 'Last page', 'wpvivid-backuprestore' ),
351
  '&raquo;'
352
  );
353
  }
1673
 
1674
  if ( ! $wp_filetype['ext'] && ! current_user_can( 'unfiltered_upload' ) )
1675
  {
1676
+ return new WP_Error( 'import_file_error', __( 'Sorry, this file type is not permitted for security reasons.', 'wpvivid-backuprestore' ) );
1677
  }
1678
 
1679
  return apply_filters(
1774
  $wp_filetype = wp_check_filetype( $file_name );
1775
 
1776
  if ( ! $wp_filetype['ext'] && ! current_user_can( 'unfiltered_upload' ) ) {
1777
+ return array( 'error' => __( 'Sorry, this file type is not permitted for security reasons.', 'wpvivid-backuprestore' ) );
1778
  }
1779
 
1780
  if(!file_exists($new_file))
includes/class-wpvivid-migrate.php CHANGED
@@ -392,9 +392,9 @@ class WPvivid_Migrate
392
  </div>
393
  <strong><?php _e('The key will expire in ', 'wpvivid-backuprestore'); ?></strong>
394
  <select id="wpvivid_generate_url_expires" style="margin-bottom: 2px;">
395
- <option value="2 hour">2 hours</option>
396
- <option selected="selected" value="8 hour">8 hours</option>
397
- <option value="24 hour">24 hours</option>
398
  <!--<option value="Never">Never</option>-->
399
  </select>
400
  <p><?php _e('Tips: For security reason, please choose an appropriate expiration time for the key.', 'wpvivid-backuprestore'); ?></p>
@@ -594,7 +594,7 @@ class WPvivid_Migrate
594
 
595
  if (empty($options)) {
596
  $ret['result'] = 'failed';
597
- $ret['error'] = 'A key is required.';
598
  echo json_encode($ret);
599
  die();
600
  }
@@ -606,14 +606,14 @@ class WPvivid_Migrate
606
 
607
  if ($url === '') {
608
  $ret['result'] = 'failed';
609
- $ret['error'] = 'The key is invalid.';
610
  echo json_encode($ret);
611
  die();
612
  }
613
 
614
  if ($options[$url]['expires'] != 0 && $options[$url]['expires'] < time()) {
615
  $ret['result'] = 'failed';
616
- $ret['error'] = 'The key has expired.';
617
  echo json_encode($ret);
618
  die();
619
  }
@@ -851,7 +851,7 @@ class WPvivid_Migrate
851
  $html .= '<div style="padding: 0 0 10px 0;"><strong>'.__('Please paste the key below.', 'wpvivid-backuprestore').'</strong><a href="#" style="margin-left: 5px; text-decoration: none;" onclick="wpvivid_click_how_to_get_key();">'.__('How to get a site key?', 'wpvivid-backuprestore').'</a></div>
852
  <div id="wpvivid_how_to_get_key"></div>
853
  <div class="wpvivid-element-space-bottom"><textarea type="text" id="wpvivid_transfer_key_text" onKeyUp="wpvivid_check_key(this.value)" style="width: 100%; height: 140px;"/></textarea></div>
854
- <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr( 'Save', 'wpvivid-backuprestore' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
855
  }
856
  else{
857
  foreach ($options as $key => $value)
@@ -872,7 +872,7 @@ class WPvivid_Migrate
872
  $html .= '<div style="padding: 0 0 10px 0;">
873
  <span>Key:</span>
874
  <input type="text" id="wpvivid_send_remote_site_url_text" value="'.$token.'" readonly="readonly" />
875
- <input class="button-primary" id="wpvivid_delete_key_button" type="submit" value="'.esc_attr( 'Delete', 'wpvivid-backuprestore' ).'" onclick="wpvivid_click_delete_transfer_key();" />
876
  </div>
877
  <div class="wpvivid-element-space-bottom">'.$key_status.'</div>
878
  <div>The connection is ok. Now you can transfer the site <strong>'.$source_dir.'</strong> to the site <strong>'.$target_dir.'</strong></div>';
@@ -1008,7 +1008,7 @@ class WPvivid_Migrate
1008
  public function wpvivid_migrate_part_exec($html){
1009
  $html = '';
1010
  $html .= '<div id="wpvivid_transfer_btn" style="float: left;">
1011
- <input class="button-primary quicktransfer-btn" type="submit" value="'.esc_attr( 'Clone then Transfer', 'wpvivid-backuprestore').'" onclick="wpvivid_click_send_backup();" />
1012
  </div>
1013
  <script>
1014
  function wpvivid_click_send_backup()
@@ -1175,7 +1175,7 @@ class WPvivid_Migrate
1175
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_upload_current_doing">' . $list_tasks[$task['id']]['task_info']['descript'] . '</p></div>
1176
  <div style="clear: both;"></div>
1177
  <div>
1178
- <div id="wpvivid_transfer_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_transfer_cancel_btn" type="submit" value="'.esc_attr( 'Cancel', 'wpvivid-backuprestore' ).'" /></div>
1179
  </div>';
1180
  }
1181
  }
392
  </div>
393
  <strong><?php _e('The key will expire in ', 'wpvivid-backuprestore'); ?></strong>
394
  <select id="wpvivid_generate_url_expires" style="margin-bottom: 2px;">
395
+ <option value="2 hour"><?php esc_html_e('2 hours', 'wpvivid-backuprestore'); ?></option>
396
+ <option selected="selected" value="8 hour"><?php esc_html_e('8 hours', 'wpvivid-backuprestore'); ?></option>
397
+ <option value="24 hour"><?php esc_html_e('24 hours', 'wpvivid-backuprestore'); ?></option>
398
  <!--<option value="Never">Never</option>-->
399
  </select>
400
  <p><?php _e('Tips: For security reason, please choose an appropriate expiration time for the key.', 'wpvivid-backuprestore'); ?></p>
594
 
595
  if (empty($options)) {
596
  $ret['result'] = 'failed';
597
+ $ret['error'] = __('A key is required.', 'wpvivid-backuprestore');
598
  echo json_encode($ret);
599
  die();
600
  }
606
 
607
  if ($url === '') {
608
  $ret['result'] = 'failed';
609
+ $ret['error'] = __('The key is invalid.', 'wpvivid-backuprestore');
610
  echo json_encode($ret);
611
  die();
612
  }
613
 
614
  if ($options[$url]['expires'] != 0 && $options[$url]['expires'] < time()) {
615
  $ret['result'] = 'failed';
616
+ $ret['error'] = __('The key has expired.', 'wpvivid-backuprestore');
617
  echo json_encode($ret);
618
  die();
619
  }
851
  $html .= '<div style="padding: 0 0 10px 0;"><strong>'.__('Please paste the key below.', 'wpvivid-backuprestore').'</strong><a href="#" style="margin-left: 5px; text-decoration: none;" onclick="wpvivid_click_how_to_get_key();">'.__('How to get a site key?', 'wpvivid-backuprestore').'</a></div>
852
  <div id="wpvivid_how_to_get_key"></div>
853
  <div class="wpvivid-element-space-bottom"><textarea type="text" id="wpvivid_transfer_key_text" onKeyUp="wpvivid_check_key(this.value)" style="width: 100%; height: 140px;"/></textarea></div>
854
+ <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr__( 'Save', 'wpvivid-backuprestore' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
855
  }
856
  else{
857
  foreach ($options as $key => $value)
872
  $html .= '<div style="padding: 0 0 10px 0;">
873
  <span>Key:</span>
874
  <input type="text" id="wpvivid_send_remote_site_url_text" value="'.$token.'" readonly="readonly" />
875
+ <input class="button-primary" id="wpvivid_delete_key_button" type="submit" value="'.esc_attr__( 'Delete', 'wpvivid-backuprestore' ).'" onclick="wpvivid_click_delete_transfer_key();" />
876
  </div>
877
  <div class="wpvivid-element-space-bottom">'.$key_status.'</div>
878
  <div>The connection is ok. Now you can transfer the site <strong>'.$source_dir.'</strong> to the site <strong>'.$target_dir.'</strong></div>';
1008
  public function wpvivid_migrate_part_exec($html){
1009
  $html = '';
1010
  $html .= '<div id="wpvivid_transfer_btn" style="float: left;">
1011
+ <input class="button-primary quicktransfer-btn" type="submit" value="'.esc_attr__( 'Clone then Transfer', 'wpvivid-backuprestore').'" onclick="wpvivid_click_send_backup();" />
1012
  </div>
1013
  <script>
1014
  function wpvivid_click_send_backup()
1175
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_upload_current_doing">' . $list_tasks[$task['id']]['task_info']['descript'] . '</p></div>
1176
  <div style="clear: both;"></div>
1177
  <div>
1178
+ <div id="wpvivid_transfer_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_transfer_cancel_btn" type="submit" value="'.esc_attr__( 'Cancel', 'wpvivid-backuprestore' ).'" /></div>
1179
  </div>';
1180
  }
1181
  }
includes/class-wpvivid-public-interface.php CHANGED
@@ -29,7 +29,7 @@ class WPvivid_Public_Interface
29
 
30
  if(!isset($backup_options['type']))
31
  {
32
- $backup_options['type']='Manual';
33
  $backup_options['action']='backup';
34
  }
35
  $ret = $wpvivid_plugin->check_backup_option($backup_options, $backup_options['type']);
29
 
30
  if(!isset($backup_options['type']))
31
  {
32
+ $backup_options['type']=__('Manual', 'wpvivid-backuprestore');
33
  $backup_options['action']='backup';
34
  }
35
  $ret = $wpvivid_plugin->check_backup_option($backup_options, $backup_options['type']);
includes/class-wpvivid-restore-site.php CHANGED
@@ -269,7 +269,7 @@ class WPvivid_RestoreSite
269
 
270
  $uploads['error'] = sprintf(
271
  /* translators: %s: directory path */
272
- __( 'Unable to create directory %s. Is its parent directory writable by the server?' ),
273
  esc_html( $error_path )
274
  );
275
  }
269
 
270
  $uploads['error'] = sprintf(
271
  /* translators: %s: directory path */
272
+ __( 'Unable to create directory %s. Is its parent directory writable by the server?', 'wpvivid-backuprestore' ),
273
  esc_html( $error_path )
274
  );
275
  }
includes/class-wpvivid-schedule.php CHANGED
@@ -31,31 +31,31 @@ class WPvivid_Schedule
31
  if(!isset($schedules["wpvivid_12hours"])){
32
  $schedules["wpvivid_12hours"] = array(
33
  'interval' => 3600*12,
34
- 'display' => __('12 Hours'));
35
  }
36
 
37
  if(!isset($schedules["wpvivid_daily"])){
38
  $schedules["wpvivid_daily"] = array(
39
  'interval' => 86400 ,
40
- 'display' => __('Daily'));
41
  }
42
 
43
  if(!isset($schedules["wpvivid_weekly"])){
44
  $schedules["wpvivid_weekly"] = array(
45
  'interval' => 604800 ,
46
- 'display' => __('Weekly'));
47
  }
48
 
49
  if(!isset($schedules["wpvivid_fortnightly"])){
50
  $schedules["wpvivid_fortnightly"] = array(
51
  'interval' => 604800*2 ,
52
- 'display' => __('Fortnightly'));
53
  }
54
 
55
  if(!isset($schedules["wpvivid_monthly"])){
56
  $schedules["wpvivid_monthly"] = array(
57
  'interval' => 2592000 ,
58
- 'display' => __('Monthly'));
59
  }
60
 
61
  return $schedules;
31
  if(!isset($schedules["wpvivid_12hours"])){
32
  $schedules["wpvivid_12hours"] = array(
33
  'interval' => 3600*12,
34
+ 'display' => __('12 Hours', 'wpvivid-backuprestore'));
35
  }
36
 
37
  if(!isset($schedules["wpvivid_daily"])){
38
  $schedules["wpvivid_daily"] = array(
39
  'interval' => 86400 ,
40
+ 'display' => __('Daily', 'wpvivid-backuprestore'));
41
  }
42
 
43
  if(!isset($schedules["wpvivid_weekly"])){
44
  $schedules["wpvivid_weekly"] = array(
45
  'interval' => 604800 ,
46
+ 'display' => __('Weekly', 'wpvivid-backuprestore'));
47
  }
48
 
49
  if(!isset($schedules["wpvivid_fortnightly"])){
50
  $schedules["wpvivid_fortnightly"] = array(
51
  'interval' => 604800*2 ,
52
+ 'display' => __('Fortnightly', 'wpvivid-backuprestore'));
53
  }
54
 
55
  if(!isset($schedules["wpvivid_monthly"])){
56
  $schedules["wpvivid_monthly"] = array(
57
  'interval' => 2592000 ,
58
+ 'display' => __('Monthly', 'wpvivid-backuprestore'));
59
  }
60
 
61
  return $schedules;
includes/class-wpvivid.php CHANGED
@@ -616,6 +616,10 @@ class WPvivid {
616
  }
617
  //flush buffer
618
  $this->flush($task_id);
 
 
 
 
619
  $this->backup($task_id);
620
  }
621
  catch (Exception $error) {
@@ -874,6 +878,10 @@ class WPvivid {
874
  //flush buffer
875
  $this->flush($ret['task_id']);
876
  //start backup task.
 
 
 
 
877
  $this->backup($ret['task_id']);
878
  }
879
  $this->end_shutdown_function=true;
@@ -2608,12 +2616,12 @@ class WPvivid {
2608
  <span>Download timeout, please retry.</span>
2609
  </div>
2610
  <div>
2611
- <span>' . __('File Size: ', 'wpvivid') . '</span><span class="wpvivid-element-space-right">' . $file['size'] . '</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">Prepare to Download</a></span>
2612
  </div>';
2613
  WPvivid_taskmanager::delete_download_task_v2($file['file_name']);
2614
  } elseif ($task['status'] === 'completed') {
2615
  $ret['files'][$file['file_name']]['status'] = 'completed';
2616
- $ret['files'][$file['file_name']]['html'] = '<span>' . __('File Size: ', 'wpvivid') . '</span><span class="wpvivid-element-space-right">' . $file['size'] . '</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right wpvivid-ready-download"><a style="cursor: pointer;">Download</a></span>';
2617
  WPvivid_taskmanager::delete_download_task_v2($file['file_name']);
2618
  } elseif ($task['status'] === 'error') {
2619
  $ret['files'][$file['file_name']]['status'] = 'error';
@@ -2622,7 +2630,7 @@ class WPvivid {
2622
  <span>' . $task['error'] . '</span>
2623
  </div>
2624
  <div>
2625
- <span>' . __('File Size: ', 'wpvivid') . '</span><span class="wpvivid-element-space-right">' . $file['size'] . '</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">Prepare to Download</a></span>
2626
  </div>';
2627
  WPvivid_taskmanager::delete_download_task_v2($file['file_name']);
2628
  }
@@ -3962,9 +3970,13 @@ class WPvivid {
3962
  echo $message;
3963
  }
3964
 
3965
- public function update_last_backup_task($task)
3966
  {
3967
  WPvivid_Setting::update_option('wpvivid_last_msg',$task);
 
 
 
 
3968
  apply_filters('wpvivid_set_backup_report_addon_mainwp', $task);
3969
  }
3970
  /**
@@ -3998,7 +4010,7 @@ class WPvivid {
3998
  $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
3999
  }
4000
  else{
4001
- $message['status']['start_time'] = date("l, F-d-Y H:i", strtotime($message['status']['start_time']));
4002
  if($message['status']['str'] == 'completed'){
4003
  $backup_status='Succeeded';
4004
  $last_message=$backup_status.', '.$message['status']['start_time'].' <a onclick="wpvivid_read_log(\''.'wpvivid_read_last_backup_log'.'\', \''.$message['log_file_name'].'\');" style="cursor:pointer;"> Log</a>';
@@ -4013,6 +4025,15 @@ class WPvivid {
4013
  }
4014
  else{
4015
  $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
 
 
 
 
 
 
 
 
 
4016
  }
4017
  }
4018
  $html .= '<strong>'.__('Last Backup: ', 'wpvivid-backuprestore').'</strong>'.$last_message;
@@ -4673,7 +4694,7 @@ class WPvivid {
4673
  $default = array();
4674
  $remote_array = apply_filters('wpvivid_archieve_remote_array', $default);
4675
  $ret['remote_array'] = $remote_array;
4676
- $success_msg = 'You have successfully changed your default remote storage.';
4677
  $ret['notice'] = apply_filters('wpvivid_add_remote_notice', true, $success_msg);
4678
  echo json_encode($ret);
4679
  }
@@ -4924,14 +4945,14 @@ class WPvivid {
4924
 
4925
  if(!isset($data['exclude_file_size']))
4926
  {
4927
- $ret['error']=__('The value of \'Exclude files which are lager than\' can\'t be empty.', 'wpvivid-backuprestore');
4928
  }
4929
 
4930
  $data['exclude_file_size']=sanitize_text_field($data['exclude_file_size']);
4931
 
4932
  if(empty($data['exclude_file_size']) && $data['exclude_file_size'] != '0')
4933
  {
4934
- $ret['error']=__('The value of \'Exclude files which are lager than\' can\'t be empty.', 'wpvivid-backuprestore');
4935
  return $ret;
4936
  }
4937
 
@@ -5050,12 +5071,12 @@ class WPvivid {
5050
 
5051
  if(!isset($data['staging_exclude_file_size']))
5052
  {
5053
- $ret['error']=__('The value of \'Max Files Size\' can\'t be empty.', 'wpvivid-backuprestore');
5054
  }
5055
  $data['staging_exclude_file_size']=sanitize_text_field($data['staging_exclude_file_size']);
5056
  if(empty($data['staging_exclude_file_size']) && $data['staging_exclude_file_size'] != '0')
5057
  {
5058
- $ret['error']=__('The value of \'Max Files Size\' can\'t be empty.', 'wpvivid-backuprestore');
5059
  return $ret;
5060
  }
5061
 
@@ -5814,7 +5835,7 @@ class WPvivid {
5814
  if ($value['type'] == 'Migration') {
5815
  $upload_title = 'Received Backup: ';
5816
  } else if ($value['type'] == 'Upload') {
5817
- $upload_title = 'Uploaded Backup: ';
5818
  }
5819
  $row_style = 'border: 2px solid #006799; box-sizing:border-box; -moz-box-sizing:border-box; -webkit-box-sizing:border-box;';
5820
  } else if ($value['type'] == 'Manual' || $value['type'] == 'Cron') {
@@ -5887,7 +5908,7 @@ class WPvivid {
5887
  }
5888
  if ($tour) {
5889
  $tour = false;
5890
- $tour_message = '<div class="wpvivid-popuptext" id="wpvivid_popup_tour">Click the button to complete website restore or migration</div>';
5891
  $tour_class = 'wpvivid-popup';
5892
  } else {
5893
  $tour_message = '';
@@ -5914,7 +5935,7 @@ class WPvivid {
5914
  </td>
5915
  <td class="tablelistcolumn" style="min-width:100px;">
5916
  <div id="wpvivid_file_part_' . __($key, 'wpvivid-backuprestore') . '" style="float:left;padding:10px 10px 10px 0;">
5917
- <div style="cursor:pointer;" onclick="wpvivid_initialize_download(\'' . $key . '\', \'' . $list_name . '\');" title="Prepare to download the backup">
5918
  <img id="wpvivid_download_btn_' . __($key, 'wpvivid-backuprestore') . '" src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/download.png') . '" style="vertical-align:middle;" /><span>' . __('Download', 'wpvivid-backuprestore') . '</span>
5919
  <div class="spinner" id="wpvivid_download_loading_' . __($key, 'wpvivid-backuprestore') . '" style="float:right;width:auto;height:auto;padding:10px 180px 10px 0;background-position:0 0;"></div>
5920
  </div>
@@ -5929,7 +5950,7 @@ class WPvivid {
5929
  </td>
5930
  <td class="tablelistcolumn">
5931
  <div class="backuplist-delete-backup" style="padding:10px 0 10px 0;">
5932
- <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Delete.png') . '" style="vertical-align:middle; cursor:pointer;" title="Delete the backup" onclick="wpvivid_delete_selected_backup(\'' . $key . '\', \'' . $list_name . '\');"/>
5933
  </div>
5934
  </td>
5935
  </tr>';
@@ -5970,9 +5991,9 @@ class WPvivid {
5970
  <td class="row-title"><label for="tablecell">'.__($value['name'], 'wpvivid-backuprestore').'</label></td>
5971
  <td>
5972
  <div style="float: left;"><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Edit.png').'" onclick="click_retrieve_remote_storage(\''.esc_attr($key, 'wpvivid-backuprestore').'\',\''.esc_attr($value['type'], 'wpvivid-backuprestore').'\',\''.esc_attr($value['name'], 'wpvivid-backuprestore').'\'
5973
- );" style="vertical-align:middle; cursor:pointer;" title="Edit the remote storage"/></div>
5974
  <div><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Delete.png').'" onclick="wpvivid_delete_remote_storage(\''.esc_attr($key, 'wpvivid-backuprestore').'\'
5975
- );" style="vertical-align:middle; cursor:pointer;" title="Remove the remote storage"/></div>
5976
  </td>
5977
  </tr>';
5978
  }
@@ -6033,7 +6054,7 @@ class WPvivid {
6033
  $url = apply_filters('wpvivid_get_wpvivid_pro_url', WPVIVID_PLUGIN_URL, $key);
6034
  $html .= '<img src="' . esc_url($url . $pic) . '" style="vertical-align:middle; " title="' . $title . '"/>';
6035
  }
6036
- $html.='<img onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_remote_storage\', true);" src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/add-storages.png').'" style="vertical-align:middle;" title="Add a storage"/>';
6037
  }
6038
  return $html;
6039
  }
616
  }
617
  //flush buffer
618
  $this->flush($task_id);
619
+
620
+ $task_msg = WPvivid_taskmanager::get_task($task_id);
621
+ $this->update_last_backup_time($task_msg);
622
+
623
  $this->backup($task_id);
624
  }
625
  catch (Exception $error) {
878
  //flush buffer
879
  $this->flush($ret['task_id']);
880
  //start backup task.
881
+
882
+ $task_msg = WPvivid_taskmanager::get_task($ret['task_id']);
883
+ $this->update_last_backup_time($task_msg);
884
+
885
  $this->backup($ret['task_id']);
886
  }
887
  $this->end_shutdown_function=true;
2616
  <span>Download timeout, please retry.</span>
2617
  </div>
2618
  <div>
2619
+ <span>' . __('File Size: ', 'wpvivid-backuprestore') . '</span><span class="wpvivid-element-space-right">' . $file['size'] . '</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">'. __('Prepare to Download', 'wpvivid-backuprestore').'</a></span>
2620
  </div>';
2621
  WPvivid_taskmanager::delete_download_task_v2($file['file_name']);
2622
  } elseif ($task['status'] === 'completed') {
2623
  $ret['files'][$file['file_name']]['status'] = 'completed';
2624
+ $ret['files'][$file['file_name']]['html'] = '<span>' . __('File Size: ', 'wpvivid-backuprestore') . '</span><span class="wpvivid-element-space-right">' . $file['size'] . '</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right wpvivid-ready-download"><a style="cursor: pointer;">'. __('Download', 'wpvivid-backuprestore').'</a></span>';
2625
  WPvivid_taskmanager::delete_download_task_v2($file['file_name']);
2626
  } elseif ($task['status'] === 'error') {
2627
  $ret['files'][$file['file_name']]['status'] = 'error';
2630
  <span>' . $task['error'] . '</span>
2631
  </div>
2632
  <div>
2633
+ <span>' . __('File Size: ', 'wpvivid-backuprestore') . '</span><span class="wpvivid-element-space-right">' . $file['size'] . '</span><span class="wpvivid-element-space-right">|</span><span class="wpvivid-element-space-right"><a class="wpvivid-download" style="cursor: pointer;">'. __('Prepare to Download', 'wpvivid-backuprestore').'</a></span>
2634
  </div>';
2635
  WPvivid_taskmanager::delete_download_task_v2($file['file_name']);
2636
  }
3970
  echo $message;
3971
  }
3972
 
3973
+ public function update_last_backup_time($task)
3974
  {
3975
  WPvivid_Setting::update_option('wpvivid_last_msg',$task);
3976
+ }
3977
+
3978
+ public function update_last_backup_task($task)
3979
+ {
3980
  apply_filters('wpvivid_set_backup_report_addon_mainwp', $task);
3981
  }
3982
  /**
4010
  $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
4011
  }
4012
  else{
4013
+ /*$message['status']['start_time'] = date("l, F-d-Y H:i", strtotime($message['status']['start_time']));
4014
  if($message['status']['str'] == 'completed'){
4015
  $backup_status='Succeeded';
4016
  $last_message=$backup_status.', '.$message['status']['start_time'].' <a onclick="wpvivid_read_log(\''.'wpvivid_read_last_backup_log'.'\', \''.$message['log_file_name'].'\');" style="cursor:pointer;"> Log</a>';
4025
  }
4026
  else{
4027
  $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
4028
+ }*/
4029
+ if(isset($message['status']['start_time']))
4030
+ {
4031
+ $message['status']['start_time'] = date("l, F-d-Y H:i", strtotime($message['status']['start_time']));
4032
+ $last_message=$message['status']['start_time'];
4033
+ }
4034
+ else
4035
+ {
4036
+ $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
4037
  }
4038
  }
4039
  $html .= '<strong>'.__('Last Backup: ', 'wpvivid-backuprestore').'</strong>'.$last_message;
4694
  $default = array();
4695
  $remote_array = apply_filters('wpvivid_archieve_remote_array', $default);
4696
  $ret['remote_array'] = $remote_array;
4697
+ $success_msg = __('You have successfully changed your default remote storage.', 'wpvivid-backuprestore');
4698
  $ret['notice'] = apply_filters('wpvivid_add_remote_notice', true, $success_msg);
4699
  echo json_encode($ret);
4700
  }
4945
 
4946
  if(!isset($data['exclude_file_size']))
4947
  {
4948
+ $ret['error']=__('The value of \'Exclude files which are larger than\' can\'t be empty.', 'wpvivid-backuprestore');
4949
  }
4950
 
4951
  $data['exclude_file_size']=sanitize_text_field($data['exclude_file_size']);
4952
 
4953
  if(empty($data['exclude_file_size']) && $data['exclude_file_size'] != '0')
4954
  {
4955
+ $ret['error']=__('The value of \'Exclude files which are larger than\' can\'t be empty.', 'wpvivid-backuprestore');
4956
  return $ret;
4957
  }
4958
 
5071
 
5072
  if(!isset($data['staging_exclude_file_size']))
5073
  {
5074
+ $ret['error']=__('The value of \'Max File Size\' can\'t be empty.', 'wpvivid-backuprestore');
5075
  }
5076
  $data['staging_exclude_file_size']=sanitize_text_field($data['staging_exclude_file_size']);
5077
  if(empty($data['staging_exclude_file_size']) && $data['staging_exclude_file_size'] != '0')
5078
  {
5079
+ $ret['error']=__('The value of \'Max File Size\' can\'t be empty.', 'wpvivid-backuprestore');
5080
  return $ret;
5081
  }
5082
 
5835
  if ($value['type'] == 'Migration') {
5836
  $upload_title = 'Received Backup: ';
5837
  } else if ($value['type'] == 'Upload') {
5838
+ $upload_title = __('Uploaded Backup: ', 'wpvivid-backuprestore');
5839
  }
5840
  $row_style = 'border: 2px solid #006799; box-sizing:border-box; -moz-box-sizing:border-box; -webkit-box-sizing:border-box;';
5841
  } else if ($value['type'] == 'Manual' || $value['type'] == 'Cron') {
5908
  }
5909
  if ($tour) {
5910
  $tour = false;
5911
+ $tour_message = '<div class="wpvivid-popuptext" id="wpvivid_popup_tour">' . esc_html__('Click the button to complete website restore or migration', 'wpvivid-backuprestore') . '</div>';
5912
  $tour_class = 'wpvivid-popup';
5913
  } else {
5914
  $tour_message = '';
5935
  </td>
5936
  <td class="tablelistcolumn" style="min-width:100px;">
5937
  <div id="wpvivid_file_part_' . __($key, 'wpvivid-backuprestore') . '" style="float:left;padding:10px 10px 10px 0;">
5938
+ <div style="cursor:pointer;" onclick="wpvivid_initialize_download(\'' . $key . '\', \'' . $list_name . '\');" title="'. esc_html__('Prepare to download the backup', 'wpvivid-backuprestore') .'">
5939
  <img id="wpvivid_download_btn_' . __($key, 'wpvivid-backuprestore') . '" src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/download.png') . '" style="vertical-align:middle;" /><span>' . __('Download', 'wpvivid-backuprestore') . '</span>
5940
  <div class="spinner" id="wpvivid_download_loading_' . __($key, 'wpvivid-backuprestore') . '" style="float:right;width:auto;height:auto;padding:10px 180px 10px 0;background-position:0 0;"></div>
5941
  </div>
5950
  </td>
5951
  <td class="tablelistcolumn">
5952
  <div class="backuplist-delete-backup" style="padding:10px 0 10px 0;">
5953
+ <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Delete.png') . '" style="vertical-align:middle; cursor:pointer;" title="'. __('Delete the backup', 'wpvivid-backuprestore') .'" onclick="wpvivid_delete_selected_backup(\'' . $key . '\', \'' . $list_name . '\');"/>
5954
  </div>
5955
  </td>
5956
  </tr>';
5991
  <td class="row-title"><label for="tablecell">'.__($value['name'], 'wpvivid-backuprestore').'</label></td>
5992
  <td>
5993
  <div style="float: left;"><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Edit.png').'" onclick="click_retrieve_remote_storage(\''.esc_attr($key, 'wpvivid-backuprestore').'\',\''.esc_attr($value['type'], 'wpvivid-backuprestore').'\',\''.esc_attr($value['name'], 'wpvivid-backuprestore').'\'
5994
+ );" style="vertical-align:middle; cursor:pointer;" title="'. esc_html__('Edit the remote storage', 'wpvivid-backuprestore') .'"/></div>
5995
  <div><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Delete.png').'" onclick="wpvivid_delete_remote_storage(\''.esc_attr($key, 'wpvivid-backuprestore').'\'
5996
+ );" style="vertical-align:middle; cursor:pointer;" title="'. esc_html__('Remove the remote storage', 'wpvivid-backuprestore') .'"/></div>
5997
  </td>
5998
  </tr>';
5999
  }
6054
  $url = apply_filters('wpvivid_get_wpvivid_pro_url', WPVIVID_PLUGIN_URL, $key);
6055
  $html .= '<img src="' . esc_url($url . $pic) . '" style="vertical-align:middle; " title="' . $title . '"/>';
6056
  }
6057
+ $html.='<img onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_remote_storage\', true);" src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/add-storages.png').'" style="vertical-align:middle;" title="'.esc_attr__('Add a storage', 'wpvivid-backuprestore').'"/>';
6058
  }
6059
  return $html;
6060
  }
includes/customclass/class-wpvivid-dropbox.php CHANGED
@@ -358,7 +358,7 @@ class WPvivid_Dropbox extends WPvivid_Remote
358
  {
359
  if (isset($value['auth_id']) && isset($_GET['auth_id']) && $value['auth_id'] == sanitize_text_field($_GET['auth_id']))
360
  {
361
- _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Dropbox account as your remote storage.</p></div>');
362
  return;
363
  }
364
  }
@@ -447,7 +447,7 @@ class WPvivid_Dropbox extends WPvivid_Remote
447
  <?php _e('Please read <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Dropbox authorization app (none of your backup data is sent to us).', 'wpvivid-backuprestore'); ?>
448
  </div>
449
  <div style="color:#8bc34a; padding: 10px 10px 10px 0;">
450
- <strong>Authentication is done, please continue to enter the storge information, then click 'Add Now' button to save it.</strong>
451
  </div>
452
  <div style="padding: 10px 10px 10px 0;">
453
  <strong><?php _e('Enter Your Dropbox Information', 'wpvivid-backuprestore'); ?></strong>
358
  {
359
  if (isset($value['auth_id']) && isset($_GET['auth_id']) && $value['auth_id'] == sanitize_text_field($_GET['auth_id']))
360
  {
361
+ _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Dropbox account as your remote storage.</p></div>', 'wpvivid-backuprestore');
362
  return;
363
  }
364
  }
447
  <?php _e('Please read <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Dropbox authorization app (none of your backup data is sent to us).', 'wpvivid-backuprestore'); ?>
448
  </div>
449
  <div style="color:#8bc34a; padding: 10px 10px 10px 0;">
450
+ <strong><?php esc_html_e('Authentication is done, please continue to enter the storge information, then click \'Add Now\' button to save it.', 'wpvivid-backuprestore'); ?></strong>
451
  </div>
452
  <div style="padding: 10px 10px 10px 0;">
453
  <strong><?php _e('Enter Your Dropbox Information', 'wpvivid-backuprestore'); ?></strong>
includes/customclass/class-wpvivid-ftpclass.php CHANGED
@@ -387,7 +387,7 @@ class WPvivid_FTPClass extends WPvivid_Remote{
387
 
388
  if($this->options['path']=='/')
389
  {
390
- $ret['error']="Warning: Root directory is forbidden to set to '/'.";
391
  return $ret;
392
  }
393
 
387
 
388
  if($this->options['path']=='/')
389
  {
390
+ $ret['error']= __('Warning: Root directory is forbidden to set to \'/\'.', 'wpvivid-backuprestore');
391
  return $ret;
392
  }
393
 
includes/customclass/class-wpvivid-google-drive.php CHANGED
@@ -128,7 +128,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
128
  {
129
  if (isset($value['auth_id']) && isset($_GET['auth_id']) && $value['auth_id'] == sanitize_text_field($_GET['auth_id']))
130
  {
131
- _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Google Drive account as your remote storage.</p></div>');
132
  return;
133
  }
134
  }
128
  {
129
  if (isset($value['auth_id']) && isset($_GET['auth_id']) && $value['auth_id'] == sanitize_text_field($_GET['auth_id']))
130
  {
131
+ _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Google Drive account as your remote storage.</p></div>', 'wpvivid-backuprestore');
132
  return;
133
  }
134
  }
includes/customclass/class-wpvivid-one-drive.php CHANGED
@@ -116,7 +116,7 @@ class WPvivid_one_drive extends WPvivid_Remote
116
  {
117
  if (isset($value['auth_id']) && isset($_GET['auth_id']) && $value['auth_id'] == sanitize_text_field($_GET['auth_id']))
118
  {
119
- _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Microsoft OneDrive account as your remote storage.</p></div>');
120
  return;
121
  }
122
  }
@@ -208,7 +208,7 @@ class WPvivid_one_drive extends WPvivid_Remote
208
  <?php _e('Please read <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Microsoft OneDrive authorization app (none of your backup data is sent to us).', 'wpvivid-backuprestore'); ?>
209
  </div>
210
  <div style="color:#8bc34a; padding: 10px 10px 10px 0;">
211
- <strong>Authentication is done, please continue to enter the storge information, then click 'Add Now' button to save it.</strong>
212
  </div>
213
  <div style="padding: 10px 10px 10px 0;">
214
  <strong><?php _e('Enter Your Microsoft OneDrive Information', 'wpvivid-backuprestore'); ?></strong>
116
  {
117
  if (isset($value['auth_id']) && isset($_GET['auth_id']) && $value['auth_id'] == sanitize_text_field($_GET['auth_id']))
118
  {
119
+ _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Microsoft OneDrive account as your remote storage.</p></div>', 'wpvivid-backuprestore');
120
  return;
121
  }
122
  }
208
  <?php _e('Please read <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Microsoft OneDrive authorization app (none of your backup data is sent to us).', 'wpvivid-backuprestore'); ?>
209
  </div>
210
  <div style="color:#8bc34a; padding: 10px 10px 10px 0;">
211
+ <strong><?php esc_html_e('Authentication is done, please continue to enter the storge information, then click \'Add Now\' button to save it.', 'wpvivid-backuprestore'); ?></strong>
212
  </div>
213
  <div style="padding: 10px 10px 10px 0;">
214
  <strong><?php _e('Enter Your Microsoft OneDrive Information', 'wpvivid-backuprestore'); ?></strong>
includes/staging/class-wpvivid-fresh-install-create-ui-display.php CHANGED
@@ -578,7 +578,7 @@ class WPvivid_Fresh_Install_Create_UI_Display_Free
578
  });
579
 
580
  jQuery('#wpvivid_create_new_wp').click(function() {
581
- var descript = 'Click OK to start creating fresh WordPress install.';
582
  var ret = confirm(descript);
583
  if(ret === true)
584
  {
578
  });
579
 
580
  jQuery('#wpvivid_create_new_wp').click(function() {
581
+ var descript = '<?php esc_html_e('Click OK to start creating fresh WordPress install.', 'wpvivid-backuprestore'); ?>';
582
  var ret = confirm(descript);
583
  if(ret === true)
584
  {
includes/staging/class-wpvivid-staging-create-ui-display.php CHANGED
@@ -379,7 +379,7 @@ class WPvivid_Staging_Create_UI_Display_Free
379
  }
380
 
381
  jQuery('#wpvivid_create_staging').click(function() {
382
- var descript = 'Click OK to start creating the staging site.';
383
  var ret = confirm(descript);
384
  if(ret === true){
385
  jQuery('#wpvivid_staging_notice').hide();
@@ -388,7 +388,7 @@ class WPvivid_Staging_Create_UI_Display_Free
388
  });
389
 
390
  jQuery('#wpvivid_mu_create_staging').click(function() {
391
- var descript = 'Click OK to start creating the staging site.';
392
  var ret = confirm(descript);
393
  if(ret === true){
394
  jQuery('#wpvivid_staging_notice').hide();
@@ -397,7 +397,7 @@ class WPvivid_Staging_Create_UI_Display_Free
397
  });
398
 
399
  jQuery('#wpvivid_mu_single_create_staging').click(function() {
400
- var descript = 'Click OK to start creating the staging site.';
401
  var ret = confirm(descript);
402
  if(ret === true){
403
  jQuery('#wpvivid_staging_notice').hide();
379
  }
380
 
381
  jQuery('#wpvivid_create_staging').click(function() {
382
+ var descript = '<?php esc_html_e('Click OK to start creating the staging site.', 'wpvivid-backuprestore'); ?>';
383
  var ret = confirm(descript);
384
  if(ret === true){
385
  jQuery('#wpvivid_staging_notice').hide();
388
  });
389
 
390
  jQuery('#wpvivid_mu_create_staging').click(function() {
391
+ var descript = '<?php esc_html_e('Click OK to start creating the staging site.', 'wpvivid-backuprestore'); ?>';
392
  var ret = confirm(descript);
393
  if(ret === true){
394
  jQuery('#wpvivid_staging_notice').hide();
397
  });
398
 
399
  jQuery('#wpvivid_mu_single_create_staging').click(function() {
400
+ var descript = '<?php esc_html_e('Click OK to start creating the staging site.', 'wpvivid-backuprestore'); ?>';
401
  var ret = confirm(descript);
402
  if(ret === true){
403
  jQuery('#wpvivid_staging_notice').hide();
includes/staging/class-wpvivid-staging-list-ui-display.php CHANGED
@@ -1117,7 +1117,7 @@ class WPvivid_Staging_List_UI_Display_Free
1117
  });
1118
 
1119
  jQuery('#wpvivid_staging_list').on("click", '.wpvivid-delete-staging-site', function(){
1120
- var descript = 'Are you sure to delete this staging site?';
1121
  var ret = confirm(descript);
1122
  if (ret === true) {
1123
  var id = jQuery(this).parent().attr('name');
@@ -1144,7 +1144,7 @@ class WPvivid_Staging_List_UI_Display_Free
1144
  });
1145
 
1146
  jQuery('#wpvivid_staging_list').on("click", '.wpvivid-restart-staging-site', function(){
1147
- var descript = 'Are you sure to restart this staging site?';
1148
  var ret = confirm(descript);
1149
  if (ret === true) {
1150
  var id = jQuery(this).parent().attr('name');
1117
  });
1118
 
1119
  jQuery('#wpvivid_staging_list').on("click", '.wpvivid-delete-staging-site', function(){
1120
+ var descript = '<?php esc_html_e('Are you sure to delete this staging site?', 'wpvivid-backuprestore'); ?>';
1121
  var ret = confirm(descript);
1122
  if (ret === true) {
1123
  var id = jQuery(this).parent().attr('name');
1144
  });
1145
 
1146
  jQuery('#wpvivid_staging_list').on("click", '.wpvivid-restart-staging-site', function(){
1147
+ var descript = '<?php esc_html_e('Are you sure to restart this staging site?', 'wpvivid-backuprestore'); ?>';
1148
  var ret = confirm(descript);
1149
  if (ret === true) {
1150
  var id = jQuery(this).parent().attr('name');
includes/staging/class-wpvivid-staging-log-page.php CHANGED
@@ -50,11 +50,11 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
50
  public function get_columns()
51
  {
52
  $columns = array();
53
- $columns['wpvivid_date'] = 'Date';
54
- $columns['wpvivid_log_type'] = __( 'Log Type', 'wpvivid' );
55
- $columns['wpvivid_log_file_name'] =__( 'Log File Name ', 'wpvivid' );
56
- $columns['wpvivid_log_action'] = __( 'Action ', 'wpvivid' );
57
- $columns['wpvivid_download'] = __( 'Download', 'wpvivid' );
58
 
59
  return $columns;
60
  }
@@ -198,7 +198,7 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
198
  $this->screen->render_screen_reader_content( 'heading_pagination' );
199
  }
200
 
201
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
202
 
203
  $current = $this->get_pagenum();
204
 
@@ -229,7 +229,7 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
229
  } else {
230
  $page_links[] = sprintf(
231
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
232
- __( 'First page' ),
233
  '&laquo;'
234
  );
235
  }
@@ -240,24 +240,24 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
240
  $page_links[] = sprintf(
241
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
242
  $current,
243
- __( 'Previous page' ),
244
  '&lsaquo;'
245
  );
246
  }
247
 
248
  if ( 'bottom' === $which ) {
249
  $html_current_page = $current;
250
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
251
  } else {
252
  $html_current_page = sprintf(
253
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
254
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
255
  $current,
256
  strlen( $total_pages )
257
  );
258
  }
259
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
260
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
261
 
262
  if ( $disable_next ) {
263
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -265,7 +265,7 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
265
  $page_links[] = sprintf(
266
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
267
  $current,
268
- __( 'Next page' ),
269
  '&rsaquo;'
270
  );
271
  }
@@ -275,7 +275,7 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
275
  } else {
276
  $page_links[] = sprintf(
277
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
278
- __( 'Last page' ),
279
  '&raquo;'
280
  );
281
  }
@@ -878,7 +878,7 @@ class WPvivid_Staging_Log_Page_Free
878
  else
879
  {
880
  $json['result'] = 'failed';
881
- $json['error'] = __('The log not found.', 'wpvivid');
882
  echo json_encode($json);
883
  die();
884
  }
@@ -888,7 +888,7 @@ class WPvivid_Staging_Log_Page_Free
888
  if (!file_exists($path))
889
  {
890
  $json['result'] = 'failed';
891
- $json['error'] = __('The log not found.', 'wpvivid');
892
  echo json_encode($json);
893
  die();
894
  }
@@ -897,7 +897,7 @@ class WPvivid_Staging_Log_Page_Free
897
 
898
  if (!$file) {
899
  $json['result'] = 'failed';
900
- $json['error'] = __('Unable to open the log file.', 'wpvivid');
901
  echo json_encode($json);
902
  die();
903
  }
@@ -913,7 +913,7 @@ class WPvivid_Staging_Log_Page_Free
913
  echo json_encode($json);
914
  } else {
915
  $json['result'] = 'failed';
916
- $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid');
917
  echo json_encode($json);
918
  }
919
  }
@@ -1083,9 +1083,9 @@ class WPvivid_Staging_Log_Page_Free
1083
  }
1084
  else
1085
  {
1086
- $message= __('The log not found.', 'wpvivid');
1087
  echo sprintf(
1088
- __( $message. '%1$stry again%2$s.', 'wpvivid' ),
1089
  '<a href="' . $admin_url . '">',
1090
  '</a>'
1091
  );
@@ -1097,9 +1097,9 @@ class WPvivid_Staging_Log_Page_Free
1097
 
1098
  if (!file_exists($path))
1099
  {
1100
- $message= __('The log not found.', 'wpvivid');
1101
  echo sprintf(
1102
- __( $message. '%1$stry again%2$s.', 'wpvivid' ),
1103
  '<a href="' . $admin_url . '">',
1104
  '</a>'
1105
  );
@@ -1151,7 +1151,7 @@ class WPvivid_Staging_Log_Page_Free
1151
  else
1152
  {
1153
  echo sprintf(
1154
- __( 'File not found. Please %1$stry again%2$s.', 'wpvivid' ),
1155
  '<a href="' . $admin_url . '">',
1156
  '</a>'
1157
  );
@@ -1160,9 +1160,9 @@ class WPvivid_Staging_Log_Page_Free
1160
  }
1161
 
1162
  } else {
1163
- $message = __('Reading the log failed. Please try again.', 'wpvivid');
1164
  echo sprintf(
1165
- __( $message. '%1$stry again%2$s.', 'wpvivid' ),
1166
  '<a href="' . $admin_url . '">',
1167
  '</a>'
1168
  );
@@ -1175,7 +1175,7 @@ class WPvivid_Staging_Log_Page_Free
1175
  $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
1176
  error_log($message);
1177
  echo sprintf(
1178
- __( 'An exception has occurred. class: %1$s; msg: %2$s; code: %3$s; line: %4$s; in_file: %5$s. Please %6$stry again%7$s.', 'wpvivid' ),
1179
  get_class($error),
1180
  $error->getMessage(),
1181
  $error->getCode(),
50
  public function get_columns()
51
  {
52
  $columns = array();
53
+ $columns['wpvivid_date'] = __( 'Date', 'wpvivid-backuprestore' );
54
+ $columns['wpvivid_log_type'] = __( 'Log Type', 'wpvivid-backuprestore' );
55
+ $columns['wpvivid_log_file_name'] =__( 'Log File Name ', 'wpvivid-backuprestore' );
56
+ $columns['wpvivid_log_action'] = __( 'Action ', 'wpvivid-backuprestore' );
57
+ $columns['wpvivid_download'] = __( 'Download', 'wpvivid-backuprestore' );
58
 
59
  return $columns;
60
  }
198
  $this->screen->render_screen_reader_content( 'heading_pagination' );
199
  }
200
 
201
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
202
 
203
  $current = $this->get_pagenum();
204
 
229
  } else {
230
  $page_links[] = sprintf(
231
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
232
+ __( 'First page', 'wpvivid-backuprestore' ),
233
  '&laquo;'
234
  );
235
  }
240
  $page_links[] = sprintf(
241
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
242
  $current,
243
+ __( 'Previous page', 'wpvivid-backuprestore' ),
244
  '&lsaquo;'
245
  );
246
  }
247
 
248
  if ( 'bottom' === $which ) {
249
  $html_current_page = $current;
250
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
251
  } else {
252
  $html_current_page = sprintf(
253
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
254
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
255
  $current,
256
  strlen( $total_pages )
257
  );
258
  }
259
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
260
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
261
 
262
  if ( $disable_next ) {
263
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
265
  $page_links[] = sprintf(
266
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
267
  $current,
268
+ __( 'Next page', 'wpvivid-backuprestore' ),
269
  '&rsaquo;'
270
  );
271
  }
275
  } else {
276
  $page_links[] = sprintf(
277
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
278
+ __( 'Last page', 'wpvivid-backuprestore' ),
279
  '&raquo;'
280
  );
281
  }
878
  else
879
  {
880
  $json['result'] = 'failed';
881
+ $json['error'] = __('The log not found.', 'wpvivid-backuprestore');
882
  echo json_encode($json);
883
  die();
884
  }
888
  if (!file_exists($path))
889
  {
890
  $json['result'] = 'failed';
891
+ $json['error'] = __('The log not found.', 'wpvivid-backuprestore');
892
  echo json_encode($json);
893
  die();
894
  }
897
 
898
  if (!$file) {
899
  $json['result'] = 'failed';
900
+ $json['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
901
  echo json_encode($json);
902
  die();
903
  }
913
  echo json_encode($json);
914
  } else {
915
  $json['result'] = 'failed';
916
+ $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
917
  echo json_encode($json);
918
  }
919
  }
1083
  }
1084
  else
1085
  {
1086
+ $message= __('The log not found.', 'wpvivid-backuprestore');
1087
  echo sprintf(
1088
+ __( $message. '%1$stry again%2$s.', 'wpvivid-backuprestore' ),
1089
  '<a href="' . $admin_url . '">',
1090
  '</a>'
1091
  );
1097
 
1098
  if (!file_exists($path))
1099
  {
1100
+ $message= __('The log not found.', 'wpvivid-backuprestore');
1101
  echo sprintf(
1102
+ __( $message. '%1$stry again%2$s.', 'wpvivid-backuprestore' ),
1103
  '<a href="' . $admin_url . '">',
1104
  '</a>'
1105
  );
1151
  else
1152
  {
1153
  echo sprintf(
1154
+ __( 'File not found. Please %1$stry again%2$s.', 'wpvivid-backuprestore' ),
1155
  '<a href="' . $admin_url . '">',
1156
  '</a>'
1157
  );
1160
  }
1161
 
1162
  } else {
1163
+ $message = __('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
1164
  echo sprintf(
1165
+ __( $message. '%1$stry again%2$s.', 'wpvivid-backuprestore' ),
1166
  '<a href="' . $admin_url . '">',
1167
  '</a>'
1168
  );
1175
  $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
1176
  error_log($message);
1177
  echo sprintf(
1178
+ __( 'An exception has occurred. class: %1$s; msg: %2$s; code: %3$s; line: %4$s; in_file: %5$s. Please %6$stry again%7$s.', 'wpvivid-backuprestore' ),
1179
  get_class($error),
1180
  $error->getMessage(),
1181
  $error->getCode(),
includes/staging/class-wpvivid-staging-setting.php CHANGED
@@ -156,7 +156,7 @@ class WPvivid_Staging_Setting_Free
156
  </div>
157
 
158
  <div class="wpvivid-element-space-bottom">
159
- <strong>Retrying </strong>
160
  <select option="setting" name="staging_resume_count">
161
  <?php
162
  for($resume_count=3; $resume_count<10; $resume_count++){
@@ -179,7 +179,7 @@ class WPvivid_Staging_Setting_Free
179
  </div>
180
 
181
  <div class="wpvivid-element-space-bottom">
182
- <span>When the option is checked, anyone will be able to visit the staging site without the need to login. Uncheck it to request a login to visit the staging site.</span>
183
  </div>
184
 
185
  <div class="wpvivid-element-space-bottom">
@@ -190,7 +190,7 @@ class WPvivid_Staging_Setting_Free
190
  </div>
191
 
192
  <div class="wpvivid-element-space-bottom">
193
- <span>When checked, this option allows you to keep the current permalink structure when you create a staging site or push a staging site to live.</span>
194
  </div>
195
 
196
  <div class="wpvivid-element-space-bottom">
@@ -201,7 +201,7 @@ class WPvivid_Staging_Setting_Free
201
  </div>
202
 
203
  <div class="wpvivid-element-space-bottom">
204
- <span>With this option checked, all staging sites you have created will be retained when the plugin is deleted, just in case you still need them later. The sites will show up again after the plugin is reinstalled.</span>
205
  </div>
206
  </div>
207
  </div>
@@ -358,7 +358,7 @@ class WPvivid_Staging_Setting_Free
358
  </div>
359
 
360
  <div class="wpvivid-element-space-bottom">
361
- <span>When the option is checked, anyone will be able to visit the staging site without the need to login. Uncheck it to request a login to visit the staging site.</span>
362
  </div>
363
 
364
  <div class="wpvivid-element-space-bottom">
@@ -369,7 +369,7 @@ class WPvivid_Staging_Setting_Free
369
  </div>
370
 
371
  <div class="wpvivid-element-space-bottom">
372
- <span>When checked, this option allows you to keep the current permalink structure when you create a staging site or push a staging site to live.</span>
373
  </div>
374
 
375
  <div class="wpvivid-element-space-bottom">
@@ -380,7 +380,7 @@ class WPvivid_Staging_Setting_Free
380
  </div>
381
 
382
  <div class="wpvivid-element-space-bottom">
383
- <span>With this option checked, all staging sites you have created will be retained when the plugin is deleted, just in case you still need them later. The sites will show up again after the plugin is reinstalled.</span>
384
  </div>
385
  </div>
386
  <div><input class="button-primary wpvividstg_save_setting" type="submit" value="<?php esc_attr_e( 'Save Changes', 'wpvivid-backuprestore' ); ?>" /></div>
156
  </div>
157
 
158
  <div class="wpvivid-element-space-bottom">
159
+ <strong><?php _e('Retrying', 'wpvivid-backuprestore'); ?> </strong>
160
  <select option="setting" name="staging_resume_count">
161
  <?php
162
  for($resume_count=3; $resume_count<10; $resume_count++){
179
  </div>
180
 
181
  <div class="wpvivid-element-space-bottom">
182
+ <span><?php _e('When the option is checked, anyone will be able to visit the staging site without the need to login. Uncheck it to request a login to visit the staging site.', 'wpvivid-backuprestore'); ?></span>
183
  </div>
184
 
185
  <div class="wpvivid-element-space-bottom">
190
  </div>
191
 
192
  <div class="wpvivid-element-space-bottom">
193
+ <span><?php _e('When checked, this option allows you to keep the current permalink structure when you create a staging site or push a staging site to live.', 'wpvivid-backuprestore'); ?></span>
194
  </div>
195
 
196
  <div class="wpvivid-element-space-bottom">
201
  </div>
202
 
203
  <div class="wpvivid-element-space-bottom">
204
+ <span><?php _e('With this option checked, all staging sites you have created will be retained when the plugin is deleted, just in case you still need them later. The sites will show up again after the plugin is reinstalled.', 'wpvivid-backuprestore'); ?></span>
205
  </div>
206
  </div>
207
  </div>
358
  </div>
359
 
360
  <div class="wpvivid-element-space-bottom">
361
+ <span><?php _e('When the option is checked, anyone will be able to visit the staging site without the need to login. Uncheck it to request a login to visit the staging site.', 'wpvivid-backuprestore'); ?></span>
362
  </div>
363
 
364
  <div class="wpvivid-element-space-bottom">
369
  </div>
370
 
371
  <div class="wpvivid-element-space-bottom">
372
+ <span><?php _e('When checked, this option allows you to keep the current permalink structure when you create a staging site or push a staging site to live.', 'wpvivid-backuprestore'); ?></span>
373
  </div>
374
 
375
  <div class="wpvivid-element-space-bottom">
380
  </div>
381
 
382
  <div class="wpvivid-element-space-bottom">
383
+ <span><?php _e('With this option checked, all staging sites you have created will be retained when the plugin is deleted, just in case you still need them later. The sites will show up again after the plugin is reinstalled.', 'wpvivid-backuprestore'); ?></span>
384
  </div>
385
  </div>
386
  <div><input class="button-primary wpvividstg_save_setting" type="submit" value="<?php esc_attr_e( 'Save Changes', 'wpvivid-backuprestore' ); ?>" /></div>
includes/staging/class-wpvivid-staging-sites-list.php CHANGED
@@ -357,7 +357,7 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
357
  if (!empty($columns['cb']))
358
  {
359
  static $cb_counter = 1;
360
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
361
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
362
  $cb_counter++;
363
  }
@@ -398,10 +398,10 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
398
  {
399
  $sites_columns = array(
400
  'cb' => '<input type="checkbox" />',
401
- 'blogname' => __( 'Subsite URL' ),
402
- 'tables_folders'=>__( 'Subsite Tables/Folders' ),
403
- 'title' => __( 'Subsite Title' ),
404
- 'description' => __( 'Subsite Description')
405
  );
406
 
407
  return $sites_columns;
@@ -434,7 +434,7 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
434
  ?>
435
  <label class="screen-reader-text" for="blog_<?php echo $subsite_id; ?>">
436
  <?php
437
- printf( __( 'Select %s' ), $blogname );
438
  ?>
439
  </label>
440
  <input type="checkbox" name="<?php echo esc_attr( $this->type ); ?>" value="<?php echo esc_attr( $subsite_id ); ?>" checked />
@@ -571,7 +571,7 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
571
  $this->screen->render_screen_reader_content( 'heading_pagination' );
572
  }
573
 
574
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
575
 
576
  $current = $this->get_pagenum();
577
 
@@ -602,7 +602,7 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
602
  } else {
603
  $page_links[] = sprintf(
604
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
605
- __( 'First page' ),
606
  '&laquo;'
607
  );
608
  }
@@ -613,24 +613,24 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
613
  $page_links[] = sprintf(
614
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
615
  $current,
616
- __( 'Previous page' ),
617
  '&lsaquo;'
618
  );
619
  }
620
 
621
  if ( 'bottom' === $which ) {
622
  $html_current_page = $current;
623
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
624
  } else {
625
  $html_current_page = sprintf(
626
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
627
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
628
  $current,
629
  strlen( $total_pages )
630
  );
631
  }
632
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
633
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
634
 
635
  if ( $disable_next ) {
636
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -638,7 +638,7 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
638
  $page_links[] = sprintf(
639
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
640
  $current,
641
- __( 'Next page' ),
642
  '&rsaquo;'
643
  );
644
  }
@@ -648,7 +648,7 @@ class WPvivid_Staging_MU_Site_List_Free extends WP_List_Table
648
  } else {
649
  $page_links[] = sprintf(
650
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
651
- __( 'Last page' ),
652
  '&raquo;'
653
  );
654
  }
@@ -816,11 +816,11 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
816
  public function get_columns()
817
  {
818
  $sites_columns = array(
819
- 'cb' => __( ' ' ),
820
- 'blogname' => __( 'Subsite URL' ),
821
- //'tables_folders'=>__( 'Subsite Tables/Folders' ),
822
- 'title' => __( 'Subsite Title' ),
823
- 'description' => __( 'Subsite Description')
824
  );
825
 
826
  return $sites_columns;
@@ -853,7 +853,7 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
853
  ?>
854
  <label class="screen-reader-text" for="blog_<?php echo $subsite_id; ?>">
855
  <?php
856
- printf( __( 'Select %s' ), $blogname );
857
  ?>
858
  </label>
859
  <input type="checkbox" name="<?php echo esc_attr( $this->type ); ?>" value="<?php echo esc_attr( $subsite_id ); ?>" />
@@ -990,7 +990,7 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
990
  $this->screen->render_screen_reader_content( 'heading_pagination' );
991
  }
992
 
993
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
994
 
995
  $current = $this->get_pagenum();
996
 
@@ -1021,7 +1021,7 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
1021
  } else {
1022
  $page_links[] = sprintf(
1023
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1024
- __( 'First page' ),
1025
  '&laquo;'
1026
  );
1027
  }
@@ -1032,24 +1032,24 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
1032
  $page_links[] = sprintf(
1033
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1034
  $current,
1035
- __( 'Previous page' ),
1036
  '&lsaquo;'
1037
  );
1038
  }
1039
 
1040
  if ( 'bottom' === $which ) {
1041
  $html_current_page = $current;
1042
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
1043
  } else {
1044
  $html_current_page = sprintf(
1045
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
1046
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
1047
  $current,
1048
  strlen( $total_pages )
1049
  );
1050
  }
1051
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
1052
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
1053
 
1054
  if ( $disable_next ) {
1055
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -1057,7 +1057,7 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
1057
  $page_links[] = sprintf(
1058
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1059
  $current,
1060
- __( 'Next page' ),
1061
  '&rsaquo;'
1062
  );
1063
  }
@@ -1067,7 +1067,7 @@ class WPvivid_Staging_MU_Single_Site_List_Free extends WP_List_Table
1067
  } else {
1068
  $page_links[] = sprintf(
1069
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1070
- __( 'Last page' ),
1071
  '&raquo;'
1072
  );
1073
  }
357
  if (!empty($columns['cb']))
358
  {
359
  static $cb_counter = 1;
360
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
361
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
362
  $cb_counter++;
363
  }
398
  {
399
  $sites_columns = array(
400
  'cb' => '<input type="checkbox" />',
401
+ 'blogname' => __( 'Subsite URL', 'wpvivid-backuprestore' ),
402
+ 'tables_folders'=>__( 'Subsite Tables/Folders', 'wpvivid-backuprestore' ),
403
+ 'title' => __( 'Subsite Title', 'wpvivid-backuprestore' ),
404
+ 'description' => __( 'Subsite Description', 'wpvivid-backuprestore')
405
  );
406
 
407
  return $sites_columns;
434
  ?>
435
  <label class="screen-reader-text" for="blog_<?php echo $subsite_id; ?>">
436
  <?php
437
+ printf( __( 'Select %s', 'wpvivid-backuprestore' ), $blogname );
438
  ?>
439
  </label>
440
  <input type="checkbox" name="<?php echo esc_attr( $this->type ); ?>" value="<?php echo esc_attr( $subsite_id ); ?>" checked />
571
  $this->screen->render_screen_reader_content( 'heading_pagination' );
572
  }
573
 
574
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
575
 
576
  $current = $this->get_pagenum();
577
 
602
  } else {
603
  $page_links[] = sprintf(
604
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
605
+ __( 'First page', 'wpvivid-backuprestore' ),
606
  '&laquo;'
607
  );
608
  }
613
  $page_links[] = sprintf(
614
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
615
  $current,
616
+ __( 'Previous page', 'wpvivid-backuprestore' ),
617
  '&lsaquo;'
618
  );
619
  }
620
 
621
  if ( 'bottom' === $which ) {
622
  $html_current_page = $current;
623
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
624
  } else {
625
  $html_current_page = sprintf(
626
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
627
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
628
  $current,
629
  strlen( $total_pages )
630
  );
631
  }
632
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
633
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
634
 
635
  if ( $disable_next ) {
636
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
638
  $page_links[] = sprintf(
639
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
640
  $current,
641
+ __( 'Next page', 'wpvivid-backuprestore' ),
642
  '&rsaquo;'
643
  );
644
  }
648
  } else {
649
  $page_links[] = sprintf(
650
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
651
+ __( 'Last page', 'wpvivid-backuprestore' ),
652
  '&raquo;'
653
  );
654
  }
816
  public function get_columns()
817
  {
818
  $sites_columns = array(
819
+ 'cb' => __( ' ', 'wpvivid-backuprestore' ),
820
+ 'blogname' => __( 'Subsite URL', 'wpvivid-backuprestore' ),
821
+ //'tables_folders'=>__( 'Subsite Tables/Folders', 'wpvivid-backuprestore' ),
822
+ 'title' => __( 'Subsite Title', 'wpvivid-backuprestore' ),
823
+ 'description' => __( 'Subsite Description', 'wpvivid-backuprestore' )
824
  );
825
 
826
  return $sites_columns;
853
  ?>
854
  <label class="screen-reader-text" for="blog_<?php echo $subsite_id; ?>">
855
  <?php
856
+ printf( __( 'Select %s', 'wpvivid-backuprestore' ), $blogname );
857
  ?>
858
  </label>
859
  <input type="checkbox" name="<?php echo esc_attr( $this->type ); ?>" value="<?php echo esc_attr( $subsite_id ); ?>" />
990
  $this->screen->render_screen_reader_content( 'heading_pagination' );
991
  }
992
 
993
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
994
 
995
  $current = $this->get_pagenum();
996
 
1021
  } else {
1022
  $page_links[] = sprintf(
1023
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1024
+ __( 'First page', 'wpvivid-backuprestore' ),
1025
  '&laquo;'
1026
  );
1027
  }
1032
  $page_links[] = sprintf(
1033
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1034
  $current,
1035
+ __( 'Previous page', 'wpvivid-backuprestore' ),
1036
  '&lsaquo;'
1037
  );
1038
  }
1039
 
1040
  if ( 'bottom' === $which ) {
1041
  $html_current_page = $current;
1042
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
1043
  } else {
1044
  $html_current_page = sprintf(
1045
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
1046
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
1047
  $current,
1048
  strlen( $total_pages )
1049
  );
1050
  }
1051
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
1052
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
1053
 
1054
  if ( $disable_next ) {
1055
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
1057
  $page_links[] = sprintf(
1058
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1059
  $current,
1060
+ __( 'Next page', 'wpvivid-backuprestore' ),
1061
  '&rsaquo;'
1062
  );
1063
  }
1067
  } else {
1068
  $page_links[] = sprintf(
1069
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
1070
+ __( 'Last page', 'wpvivid-backuprestore' ),
1071
  '&raquo;'
1072
  );
1073
  }
includes/staging/class-wpvivid-staging-ui-display.php CHANGED
@@ -1256,7 +1256,7 @@ class WPvivid_Staging_UI_Display_Free
1256
  This can cause inappropriate staging site url issues. Please change the site url and home url in the Options table of the database to the actual
1257
  url of your website. For example, if the site url and home url of the database is http://test.com, but the actual url of your website is https://test.com.
1258
  You’ll need to change the http to https.
1259
- </p></div>');
1260
  }
1261
  }
1262
 
@@ -1277,7 +1277,7 @@ class WPvivid_Staging_UI_Display_Free
1277
  ?>
1278
  <div class="notice notice-warning inline is-dismissible">
1279
  <p>
1280
- <strong>Warning:</strong> We detected that the login url of your live site is not the default '/wp-admin'. <a href="https://docs.wpvivid.com/wpvivid-staging-site-login-issue.html" target="_blank">Learn more</a>
1281
  </p>
1282
  </div>
1283
  <?php
@@ -1298,7 +1298,7 @@ class WPvivid_Staging_UI_Display_Free
1298
  ?>
1299
  <div class="wrap" style="max-width:1720px;">
1300
  <h1>
1301
- <?php esc_attr_e('WPvivid Plugins - Staging', 'WpvividPlugins' ); ?>
1302
  </h1>
1303
  <?php self::wpvivid_check_site_url(); ?>
1304
  <?php self::wpvivid_check_login_url(); ?>
1256
  This can cause inappropriate staging site url issues. Please change the site url and home url in the Options table of the database to the actual
1257
  url of your website. For example, if the site url and home url of the database is http://test.com, but the actual url of your website is https://test.com.
1258
  You’ll need to change the http to https.
1259
+ </p></div>', 'wpvivid-backuprestore');
1260
  }
1261
  }
1262
 
1277
  ?>
1278
  <div class="notice notice-warning inline is-dismissible">
1279
  <p>
1280
+ <strong>Warning:</strong> We detected that the login url of your live site is not the default '/wp-login.php'. <a href="https://docs.wpvivid.com/wpvivid-staging-site-login-issue.html" target="_blank">Learn more</a>
1281
  </p>
1282
  </div>
1283
  <?php
1298
  ?>
1299
  <div class="wrap" style="max-width:1720px;">
1300
  <h1>
1301
+ <?php esc_attr_e('WPvivid Plugins - Staging', 'wpvivid-backuprestore' ); ?>
1302
  </h1>
1303
  <?php self::wpvivid_check_site_url(); ?>
1304
  <?php self::wpvivid_check_login_url(); ?>
includes/staging/class-wpvivid-staging.php CHANGED
@@ -2762,7 +2762,7 @@ class WPvivid_Staging_Free
2762
 
2763
  $uploads['error'] = sprintf(
2764
  /* translators: %s: directory path */
2765
- __( 'Unable to create directory %s. Is its parent directory writable by the server?' ),
2766
  esc_html( $error_path )
2767
  );
2768
  }
2762
 
2763
  $uploads['error'] = sprintf(
2764
  /* translators: %s: directory path */
2765
+ __( 'Unable to create directory %s. Is its parent directory writable by the server?', 'wpvivid-backuprestore' ),
2766
  esc_html( $error_path )
2767
  );
2768
  }
includes/upload-cleaner/class-wpvivid-upload-cleaner-setting.php CHANGED
@@ -50,7 +50,7 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
50
  if (!empty($columns['cb']))
51
  {
52
  static $cb_counter = 1;
53
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
54
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
55
  $cb_counter++;
56
  }
@@ -92,8 +92,8 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
92
  public function get_columns()
93
  {
94
  $sites_columns = array(
95
- 'cb' => __( ' ' ),
96
- 'file_regex' => __( 'File Regex' )
97
  );
98
 
99
  return $sites_columns;
@@ -206,7 +206,7 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
206
  $this->screen->render_screen_reader_content( 'heading_pagination' );
207
  }
208
 
209
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
210
 
211
  $current = $this->get_pagenum();
212
 
@@ -237,7 +237,7 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
237
  } else {
238
  $page_links[] = sprintf(
239
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
240
- __( 'First page' ),
241
  '&laquo;'
242
  );
243
  }
@@ -248,24 +248,24 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
248
  $page_links[] = sprintf(
249
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
250
  $current,
251
- __( 'Previous page' ),
252
  '&lsaquo;'
253
  );
254
  }
255
 
256
  if ( 'bottom' === $which ) {
257
  $html_current_page = $current;
258
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
259
  } else {
260
  $html_current_page = sprintf(
261
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
262
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
263
  $current,
264
  strlen( $total_pages )
265
  );
266
  }
267
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
268
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
269
 
270
  if ( $disable_next ) {
271
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -273,7 +273,7 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
273
  $page_links[] = sprintf(
274
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
275
  $current,
276
- __( 'Next page' ),
277
  '&rsaquo;'
278
  );
279
  }
@@ -283,7 +283,7 @@ class WPvivid_Exclude_Files_List extends WP_List_Table
283
  } else {
284
  $page_links[] = sprintf(
285
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
286
- __( 'Last page' ),
287
  '&raquo;'
288
  );
289
  }
@@ -428,7 +428,7 @@ class WPvivid_Post_Type_List extends WP_List_Table
428
  if (!empty($columns['cb']))
429
  {
430
  static $cb_counter = 1;
431
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
432
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
433
  $cb_counter++;
434
  }
@@ -470,8 +470,8 @@ class WPvivid_Post_Type_List extends WP_List_Table
470
  public function get_columns()
471
  {
472
  $sites_columns = array(
473
- 'cb' => __( ' ' ),
474
- 'post_type' => __( 'Post Type' )
475
  );
476
 
477
  return $sites_columns;
@@ -584,7 +584,7 @@ class WPvivid_Post_Type_List extends WP_List_Table
584
  $this->screen->render_screen_reader_content( 'heading_pagination' );
585
  }
586
 
587
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
588
 
589
  $current = $this->get_pagenum();
590
 
@@ -615,7 +615,7 @@ class WPvivid_Post_Type_List extends WP_List_Table
615
  } else {
616
  $page_links[] = sprintf(
617
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
618
- __( 'First page' ),
619
  '&laquo;'
620
  );
621
  }
@@ -626,24 +626,24 @@ class WPvivid_Post_Type_List extends WP_List_Table
626
  $page_links[] = sprintf(
627
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
628
  $current,
629
- __( 'Previous page' ),
630
  '&lsaquo;'
631
  );
632
  }
633
 
634
  if ( 'bottom' === $which ) {
635
  $html_current_page = $current;
636
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
637
  } else {
638
  $html_current_page = sprintf(
639
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
640
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
641
  $current,
642
  strlen( $total_pages )
643
  );
644
  }
645
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
646
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
647
 
648
  if ( $disable_next ) {
649
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -651,7 +651,7 @@ class WPvivid_Post_Type_List extends WP_List_Table
651
  $page_links[] = sprintf(
652
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
653
  $current,
654
- __( 'Next page' ),
655
  '&rsaquo;'
656
  );
657
  }
@@ -661,7 +661,7 @@ class WPvivid_Post_Type_List extends WP_List_Table
661
  } else {
662
  $page_links[] = sprintf(
663
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
664
- __( 'Last page' ),
665
  '&raquo;'
666
  );
667
  }
@@ -852,7 +852,7 @@ class WPvivid_Uploads_Cleaner_Setting
852
  <?php
853
  $this->add_uc_cell();
854
  ?>
855
- <div><input class="button-primary wpvivid_setting_general_save" type="submit" value="<?php esc_attr_e( 'Save Changes', 'wpvivid' ); ?>" /></div>
856
  </div>
857
  <?php
858
  }
@@ -942,13 +942,13 @@ class WPvivid_Uploads_Cleaner_Setting
942
  <?php
943
  /*
944
  <div class="postbox schedule-tab-block wpvivid-setting-addon" style="margin-bottom: 10px; padding-bottom: 0;">
945
- <div style="margin-bottom: 20px;"><strong><?php _e('Files Filter ', 'wpvivid'); ?></strong></div>
946
  <div>
947
  <div class="wpvivid-element-space-bottom" style="float: left;">
948
  <input type="text" option="setting" id="wpvivid_uc_exclude_files_regex" class="regular-text" />
949
  </div>
950
  <div class="wpvivid-element-space-bottom" style="float: left;">
951
- <input class="button-secondary" id="wpvivid_uc_add_exclude_files_regex" type="submit" value="<?php esc_attr_e( 'Add File Regex', 'wpvivid' ); ?>"/>
952
  </div>
953
  <div style="clear: both;"></div>
954
  </div>
@@ -1097,13 +1097,13 @@ class WPvivid_Uploads_Cleaner_Setting
1097
  </script>
1098
  </div>
1099
  <div class="postbox schedule-tab-block wpvivid-setting-addon" style="margin-bottom: 10px; padding-bottom: 0;">
1100
- <div style="margin-bottom: 20px;"><strong><?php _e('Post type', 'wpvivid'); ?></strong></div>
1101
  <div>
1102
  <div class="wpvivid-element-space-bottom" style="float: left;">
1103
  <input type="text" option="setting" id="wpvivid_uc_post_type" class="regular-text" />
1104
  </div>
1105
  <div class="wpvivid-element-space-bottom" style="float: left;">
1106
- <input class="button-secondary" id="wpvivid_uc_add_post_type" type="submit" value="<?php esc_attr_e( 'Add Post type', 'wpvivid' ); ?>"/>
1107
  </div>
1108
  <div style="clear: both;"></div>
1109
  </div>
50
  if (!empty($columns['cb']))
51
  {
52
  static $cb_counter = 1;
53
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
54
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
55
  $cb_counter++;
56
  }
92
  public function get_columns()
93
  {
94
  $sites_columns = array(
95
+ 'cb' => __( ' ', 'wpvivid-backuprestore' ),
96
+ 'file_regex' => __( 'File Regex', 'wpvivid-backuprestore' )
97
  );
98
 
99
  return $sites_columns;
206
  $this->screen->render_screen_reader_content( 'heading_pagination' );
207
  }
208
 
209
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
210
 
211
  $current = $this->get_pagenum();
212
 
237
  } else {
238
  $page_links[] = sprintf(
239
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
240
+ __( 'First page', 'wpvivid-backuprestore' ),
241
  '&laquo;'
242
  );
243
  }
248
  $page_links[] = sprintf(
249
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
250
  $current,
251
+ __( 'Previous page', 'wpvivid-backuprestore' ),
252
  '&lsaquo;'
253
  );
254
  }
255
 
256
  if ( 'bottom' === $which ) {
257
  $html_current_page = $current;
258
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
259
  } else {
260
  $html_current_page = sprintf(
261
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
262
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
263
  $current,
264
  strlen( $total_pages )
265
  );
266
  }
267
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
268
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
269
 
270
  if ( $disable_next ) {
271
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
273
  $page_links[] = sprintf(
274
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
275
  $current,
276
+ __( 'Next page', 'wpvivid-backuprestore' ),
277
  '&rsaquo;'
278
  );
279
  }
283
  } else {
284
  $page_links[] = sprintf(
285
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
286
+ __( 'Last page', 'wpvivid-backuprestore' ),
287
  '&raquo;'
288
  );
289
  }
428
  if (!empty($columns['cb']))
429
  {
430
  static $cb_counter = 1;
431
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
432
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
433
  $cb_counter++;
434
  }
470
  public function get_columns()
471
  {
472
  $sites_columns = array(
473
+ 'cb' => __( ' ', 'wpvivid-backuprestore' ),
474
+ 'post_type' => __( 'Post Type', 'wpvivid-backuprestore' )
475
  );
476
 
477
  return $sites_columns;
584
  $this->screen->render_screen_reader_content( 'heading_pagination' );
585
  }
586
 
587
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
588
 
589
  $current = $this->get_pagenum();
590
 
615
  } else {
616
  $page_links[] = sprintf(
617
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
618
+ __( 'First page', 'wpvivid-backuprestore' ),
619
  '&laquo;'
620
  );
621
  }
626
  $page_links[] = sprintf(
627
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
628
  $current,
629
+ __( 'Previous page', 'wpvivid-backuprestore' ),
630
  '&lsaquo;'
631
  );
632
  }
633
 
634
  if ( 'bottom' === $which ) {
635
  $html_current_page = $current;
636
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
637
  } else {
638
  $html_current_page = sprintf(
639
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
640
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
641
  $current,
642
  strlen( $total_pages )
643
  );
644
  }
645
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
646
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
647
 
648
  if ( $disable_next ) {
649
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
651
  $page_links[] = sprintf(
652
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
653
  $current,
654
+ __( 'Next page', 'wpvivid-backuprestore' ),
655
  '&rsaquo;'
656
  );
657
  }
661
  } else {
662
  $page_links[] = sprintf(
663
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
664
+ __( 'Last page', 'wpvivid-backuprestore' ),
665
  '&raquo;'
666
  );
667
  }
852
  <?php
853
  $this->add_uc_cell();
854
  ?>
855
+ <div><input class="button-primary wpvivid_setting_general_save" type="submit" value="<?php esc_attr_e( 'Save Changes', 'wpvivid-backuprestore' ); ?>" /></div>
856
  </div>
857
  <?php
858
  }
942
  <?php
943
  /*
944
  <div class="postbox schedule-tab-block wpvivid-setting-addon" style="margin-bottom: 10px; padding-bottom: 0;">
945
+ <div style="margin-bottom: 20px;"><strong><?php _e('Files Filter ', 'wpvivid-backuprestore'); ?></strong></div>
946
  <div>
947
  <div class="wpvivid-element-space-bottom" style="float: left;">
948
  <input type="text" option="setting" id="wpvivid_uc_exclude_files_regex" class="regular-text" />
949
  </div>
950
  <div class="wpvivid-element-space-bottom" style="float: left;">
951
+ <input class="button-secondary" id="wpvivid_uc_add_exclude_files_regex" type="submit" value="<?php esc_attr_e( 'Add File Regex', 'wpvivid-backuprestore' ); ?>"/>
952
  </div>
953
  <div style="clear: both;"></div>
954
  </div>
1097
  </script>
1098
  </div>
1099
  <div class="postbox schedule-tab-block wpvivid-setting-addon" style="margin-bottom: 10px; padding-bottom: 0;">
1100
+ <div style="margin-bottom: 20px;"><strong><?php _e('Post type', 'wpvivid-backuprestore'); ?></strong></div>
1101
  <div>
1102
  <div class="wpvivid-element-space-bottom" style="float: left;">
1103
  <input type="text" option="setting" id="wpvivid_uc_post_type" class="regular-text" />
1104
  </div>
1105
  <div class="wpvivid-element-space-bottom" style="float: left;">
1106
+ <input class="button-secondary" id="wpvivid_uc_add_post_type" type="submit" value="<?php esc_attr_e( 'Add Post type', 'wpvivid-backuprestore' ); ?>"/>
1107
  </div>
1108
  <div style="clear: both;"></div>
1109
  </div>
includes/upload-cleaner/class-wpvivid-uploads-cleaner.php CHANGED
@@ -52,7 +52,7 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
52
  if (!empty($columns['cb']))
53
  {
54
  static $cb_counter = 1;
55
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
56
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
57
  $cb_counter++;
58
  }
@@ -94,11 +94,11 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
94
  public function get_columns()
95
  {
96
  $sites_columns = array(
97
- 'cb' => __( ' ' ),
98
- 'thumb' =>__( 'Thumbnail' ),
99
- 'path' => __( 'Path' ),
100
- //'folder' => __( 'Folder' ),
101
- 'size'=>__( 'Size' )
102
  );
103
 
104
  return $sites_columns;
@@ -271,7 +271,7 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
271
  $this->screen->render_screen_reader_content( 'heading_pagination' );
272
  }
273
 
274
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
275
 
276
  $current = $this->get_pagenum();
277
 
@@ -302,7 +302,7 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
302
  } else {
303
  $page_links[] = sprintf(
304
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
305
- __( 'First page' ),
306
  '&laquo;'
307
  );
308
  }
@@ -313,24 +313,24 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
313
  $page_links[] = sprintf(
314
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
315
  $current,
316
- __( 'Previous page' ),
317
  '&lsaquo;'
318
  );
319
  }
320
 
321
  if ( 'bottom' === $which ) {
322
  $html_current_page = $current;
323
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
324
  } else {
325
  $html_current_page = sprintf(
326
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
327
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
328
  $current,
329
  strlen( $total_pages )
330
  );
331
  }
332
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
333
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
334
 
335
  if ( $disable_next ) {
336
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -338,7 +338,7 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
338
  $page_links[] = sprintf(
339
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
340
  $current,
341
- __( 'Next page' ),
342
  '&rsaquo;'
343
  );
344
  }
@@ -348,7 +348,7 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
348
  } else {
349
  $page_links[] = sprintf(
350
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
351
- __( 'Last page' ),
352
  '&raquo;'
353
  );
354
  }
@@ -385,17 +385,17 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
385
  ?>
386
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
387
  <div class="alignleft actions bulkactions">
388
- <label for="wpvivid_uc_bulk_action" class="screen-reader-text">Select bulk action</label>
389
  <select name="action" id="wpvivid_uc_bulk_action">
390
- <option value="-1">Bulk Actions</option>
391
- <option value="wpvivid_isolate_selected_image">Isolate selected images</option>
392
- <option value="wpvivid_isolate_list_image">Isolate all images</option>
393
  </select>
394
- <input type="submit" class="button action" value="Apply">
395
  </div>
396
  <div id="wpvivid_isolate_progress" style="margin-top: 4px; display: none;">
397
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
398
- <div style="float: left; margin-top: 2px;">Isolating images...</div>
399
  <div style="clear: both;"></div>
400
  </div>
401
  <?php
@@ -412,17 +412,17 @@ class WPvivid_Unused_Upload_Files_List extends WP_List_Table
412
  ?>
413
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
414
  <div class="alignleft actions bulkactions">
415
- <label for="wpvivid_uc_bulk_action" class="screen-reader-text">Select bulk action</label>
416
  <select name="action" id="wpvivid_uc_bulk_action">
417
- <option value="-1">Bulk Actions</option>
418
- <option value="wpvivid_isolate_selected_image">Isolate selected images</option>
419
- <option value="wpvivid_isolate_list_image">Isolate all images</option>
420
  </select>
421
- <input type="submit" class="button action" value="Apply">
422
  </div>
423
  <div id="wpvivid_isolate_progress" style="margin-top: 4px; display: none;">
424
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
425
- <div style="float: left; margin-top: 2px;">Isolating images...</div>
426
  <div style="clear: both;"></div>
427
  </div>
428
  <br class="clear" />
@@ -507,7 +507,7 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
507
  if (!empty($columns['cb']))
508
  {
509
  static $cb_counter = 1;
510
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All') . '</label>'
511
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
512
  $cb_counter++;
513
  }
@@ -549,11 +549,11 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
549
  public function get_columns()
550
  {
551
  $sites_columns = array(
552
- 'cb' => __( ' ' ),
553
- 'thumb' =>__( 'Thumbnail' ),
554
- 'path' => __( 'Path' ),
555
- //'folder' => __( 'Folder' ),
556
- 'size'=>__( 'Size' )
557
  );
558
 
559
  return $sites_columns;
@@ -726,7 +726,7 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
726
  $this->screen->render_screen_reader_content( 'heading_pagination' );
727
  }
728
 
729
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
730
 
731
  $current = $this->get_pagenum();
732
 
@@ -757,7 +757,7 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
757
  } else {
758
  $page_links[] = sprintf(
759
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
760
- __( 'First page' ),
761
  '&laquo;'
762
  );
763
  }
@@ -768,24 +768,24 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
768
  $page_links[] = sprintf(
769
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
770
  $current,
771
- __( 'Previous page' ),
772
  '&lsaquo;'
773
  );
774
  }
775
 
776
  if ( 'bottom' === $which ) {
777
  $html_current_page = $current;
778
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
779
  } else {
780
  $html_current_page = sprintf(
781
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
782
- '<label class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
783
  $current,
784
  strlen( $total_pages )
785
  );
786
  }
787
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
788
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
789
 
790
  if ( $disable_next ) {
791
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
@@ -793,7 +793,7 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
793
  $page_links[] = sprintf(
794
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
795
  $current,
796
- __( 'Next page' ),
797
  '&rsaquo;'
798
  );
799
  }
@@ -803,7 +803,7 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
803
  } else {
804
  $page_links[] = sprintf(
805
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
806
- __( 'Last page' ),
807
  '&raquo;'
808
  );
809
  }
@@ -843,26 +843,26 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
843
  ?>
844
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
845
  <div class="alignleft actions bulkactions">
846
- <label for="wpvivid_uc_iso_bulk_action" class="screen-reader-text">Select bulk action</label>
847
  <select name="action" id="wpvivid_uc_iso_bulk_action">
848
- <option value="-1">Bulk Actions</option>
849
- <option value="wpvivid_restore_selected_image">Restore selected images</option>
850
- <option value="wpvivid_restore_list_image">Restore all images</option>
851
- <option value="wpvivid_delete_selected_image">Delete selected images</option>
852
- <option value="wpvivid_delete_list_image">Delete all images</option>
853
  </select>
854
- <input type="submit" class="button action" value="Apply">
855
  </div>
856
  <div id="wpvivid_restore_delete_progress" style="margin-top: 4px; display: none;">
857
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
858
- <div id="wpvivid_restore_delete_text" style="float: left; margin-top: 2px;">Restoring images...</div>
859
  <div style="clear: both;"></div>
860
  </div>
861
  <div class="wpvivid-backup-tips" style="background: #fff; border: 1px solid #f1f1f1; border-radius: 6px; margin-top: 10px;margin-bottom: 10px">
862
  <div style="float: left;">
863
  <div style="padding: 10px;">
864
- <strong><?php _e('Note: ', 'wpvivid'); ?></strong>
865
- <?php _e('Once deleted, images will be lost permanently. The action cannot be undone, unless you have <a href="'. $admin_url . 'admin.php?page=WPvivid'.'">a backup</a> in place.', 'wpvivid'); ?>
866
  </div>
867
  </div>
868
  <div style="clear: both;"></div>
@@ -881,26 +881,26 @@ class WPvivid_Isolate_Files_List extends WP_List_Table
881
  ?>
882
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
883
  <div class="alignleft actions bulkactions">
884
- <label for="wpvivid_uc_iso_bulk_action" class="screen-reader-text">Select bulk action</label>
885
  <select name="action" id="wpvivid_uc_iso_bulk_action">
886
- <option value="-1">Bulk Actions</option>
887
- <option value="wpvivid_restore_selected_image">Restore selected images</option>
888
- <option value="wpvivid_restore_list_image">Restore all images</option>
889
- <option value="wpvivid_delete_selected_image">Delete selected images</option>
890
- <option value="wpvivid_delete_list_image">Delete all images</option>
891
  </select>
892
- <input type="submit" class="button action" value="Apply">
893
  </div>
894
  <div id="wpvivid_restore_delete_progress" style="margin-top: 4px; display: none;">
895
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
896
- <div id="wpvivid_restore_delete_text" style="float: left; margin-top: 2px;">Restoring images...</div>
897
  <div style="clear: both;"></div>
898
  </div>
899
  <div class="wpvivid-backup-tips" style="background: #fff; border: 1px solid #f1f1f1; border-radius: 6px; margin-top: 10px;margin-bottom: 10px">
900
  <div style="float: left;">
901
  <div style="padding: 10px;">
902
- <strong><?php _e('Note: ', 'wpvivid'); ?></strong>
903
- <?php _e('Once deleted, images will be lost permanently. The action cannot be undone, unless you have <a href="'. $admin_url . 'admin.php?page=WPvivid'.'">a backup</a> in place.', 'wpvivid'); ?>
904
  </div>
905
  </div>
906
  <div style="clear: both;"></div>
@@ -1074,7 +1074,7 @@ class WPvivid_Uploads_Cleaner
1074
  _e('<div class="notice notice-warning inline" style="margin: 10px 0 0 0;"><p><strong>Warning:</strong> We detected that you use Jet Engine plugin on this site,
1075
  it may have compatibility issues with our plugin, which can result in an inaccuracy of the scan result,
1076
  so we recommend not using this feature yet.
1077
- </p></div>');
1078
  }
1079
  }
1080
  }
@@ -1102,7 +1102,7 @@ class WPvivid_Uploads_Cleaner
1102
  <div class="wrap" style="max-width:1720px;">
1103
  <h1>
1104
  <?php
1105
- echo __('WPvivid Image Cleaner', 'wpvivid');
1106
  ?>
1107
  </h1>
1108
 
@@ -1115,8 +1115,8 @@ class WPvivid_Uploads_Cleaner
1115
 
1116
  $args['is_parent_tab']=1;
1117
  $this->main_tab=new WPvivid_Tab_Page_Container();
1118
- $this->main_tab->add_tab('Scan Media','scan',array($this, 'output_scan'), $args);
1119
- $this->main_tab->add_tab('Isolated Media','isolate',array($this, 'output_isolate'), $args);
1120
  //$this->main_tab->add_tab('Database','database',array($this, 'output_database'), $args);
1121
  $this->main_tab->display();
1122
  if (isset($_GET['tab']))
@@ -1171,25 +1171,25 @@ class WPvivid_Uploads_Cleaner
1171
  ?>
1172
  <div class="postbox quickbackup-addon">
1173
  <div style="margin-top: 10px;margin-bottom: 10px;">
1174
- In the tab, you can scan your media folder (uploads) to find unused images and isolate specific or all unused images.
1175
  </div>
1176
  <div id="wpvivid_uc_scan">
1177
  <div style="margin-top: 10px;margin-bottom: 10px;">
1178
- Media path: <a><?php echo $path?></a>
1179
  </div>
1180
- <input class="button-primary" style="width: 200px; height: 50px; font-size: 20px;" id="wpvivid_start_scan" type="submit" value="<?php esc_attr_e('Scan', 'wpvivid'); ?>">
1181
  <div style="clear: both;"></div>
1182
  <div style="margin-top: 10px">
1183
  <span>
1184
- Clicking the 'Scan' button to find unused images in your media folder. Currently it only scans JPG and PNG images.
1185
  </span>
1186
  </div>
1187
  <?php echo $text?>
1188
  <div class="wpvivid-backup-tips" style="background: #fff; border: 1px solid #f1f1f1; border-radius: 6px; margin-top: 10px;">
1189
  <div style="float: left;">
1190
  <div style="padding: 10px;">
1191
- <strong><?php _e('Note: ', 'wpvivid'); ?></strong>
1192
- <?php _e('Please don\'t refresh the page while running a scan.', 'wpvivid'); ?>
1193
  </div>
1194
  </div>
1195
  <div style="clear: both;"></div>
@@ -1202,9 +1202,9 @@ class WPvivid_Uploads_Cleaner
1202
  </div>
1203
  <div class="postbox quickbackup-addon">
1204
  <p>
1205
- <input id="wpvivid_result_list_search" type="search" name="s" value="" placeholder="Search">
1206
  <select id="wpvivid_result_list_folder" style="margin-top: -5px;">
1207
- <option selected="selected" value="0">All Folders</option>
1208
  <?php
1209
  if(!empty($folders))
1210
  {
@@ -1216,7 +1216,7 @@ class WPvivid_Uploads_Cleaner
1216
  }
1217
  ?>
1218
  </select>
1219
- <input id="wpvivid_result_list_search_btn" type="submit" class="button" value="Search">
1220
  </p>
1221
  </div>
1222
  <div class="postbox">
@@ -1837,17 +1837,17 @@ class WPvivid_Uploads_Cleaner
1837
  ?>
1838
  <div class="postbox quickbackup-addon">
1839
  <div style="margin-top: 10px;margin-bottom: 10px;">
1840
- This tab displays the isolated images and their locations. You can choose to restore or delete specific isolated images.
1841
  </div>
1842
  <div style="margin-top: 10px;margin-bottom: 10px;">
1843
- lsolated Folder Path: <a><?php echo $path?></a>
1844
  </div>
1845
  </div>
1846
  <div class="postbox quickbackup-addon">
1847
  <p>
1848
- <input id="wpvivid_iso_list_search" type="search" name="s" value="" placeholder="Search">
1849
  <select id="wpvivid_iso_list_folder" style="margin-top: -5px;">
1850
- <option selected="selected" value="0">All Folders</option>
1851
  <?php
1852
  asort($result['folders']);
1853
  foreach ($result['folders'] as $folder)
@@ -1856,7 +1856,7 @@ class WPvivid_Uploads_Cleaner
1856
  }
1857
  ?>
1858
  </select>
1859
- <input id="wpvivid_iso_list_search_btn" type="submit" class="button" value="Search">
1860
  </p>
1861
  </div>
1862
  <div class="postbox">
52
  if (!empty($columns['cb']))
53
  {
54
  static $cb_counter = 1;
55
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
56
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
57
  $cb_counter++;
58
  }
94
  public function get_columns()
95
  {
96
  $sites_columns = array(
97
+ 'cb' => __( ' ', 'wpvivid-backuprestore' ),
98
+ 'thumb' =>__( 'Thumbnail', 'wpvivid-backuprestore' ),
99
+ 'path' => __( 'Path', 'wpvivid-backuprestore' ),
100
+ //'folder' => __( 'Folder', 'wpvivid-backuprestore' ),
101
+ 'size'=>__( 'Size', 'wpvivid-backuprestore' )
102
  );
103
 
104
  return $sites_columns;
271
  $this->screen->render_screen_reader_content( 'heading_pagination' );
272
  }
273
 
274
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
275
 
276
  $current = $this->get_pagenum();
277
 
302
  } else {
303
  $page_links[] = sprintf(
304
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
305
+ __( 'First page', 'wpvivid-backuprestore' ),
306
  '&laquo;'
307
  );
308
  }
313
  $page_links[] = sprintf(
314
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
315
  $current,
316
+ __( 'Previous page', 'wpvivid-backuprestore' ),
317
  '&lsaquo;'
318
  );
319
  }
320
 
321
  if ( 'bottom' === $which ) {
322
  $html_current_page = $current;
323
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
324
  } else {
325
  $html_current_page = sprintf(
326
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
327
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
328
  $current,
329
  strlen( $total_pages )
330
  );
331
  }
332
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
333
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
334
 
335
  if ( $disable_next ) {
336
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
338
  $page_links[] = sprintf(
339
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
340
  $current,
341
+ __( 'Next page', 'wpvivid-backuprestore' ),
342
  '&rsaquo;'
343
  );
344
  }
348
  } else {
349
  $page_links[] = sprintf(
350
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
351
+ __( 'Last page', 'wpvivid-backuprestore' ),
352
  '&raquo;'
353
  );
354
  }
385
  ?>
386
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
387
  <div class="alignleft actions bulkactions">
388
+ <label for="wpvivid_uc_bulk_action" class="screen-reader-text"><?php esc_html_e( 'Select bulk action', 'wpvivid-backuprestore' ); ?></label>
389
  <select name="action" id="wpvivid_uc_bulk_action">
390
+ <option value="-1"><?php esc_html_e( 'Bulk Actions', 'wpvivid-backuprestore' ); ?></option>
391
+ <option value="wpvivid_isolate_selected_image"><?php esc_html_e( 'Isolate selected images', 'wpvivid-backuprestore' ); ?></option>
392
+ <option value="wpvivid_isolate_list_image"><?php esc_html_e( 'Isolate all images', 'wpvivid-backuprestore' ); ?></option>
393
  </select>
394
+ <input type="submit" class="button action" value="<?php esc_attr_e( 'Apply', 'wpvivid-backuprestore' ); ?>">
395
  </div>
396
  <div id="wpvivid_isolate_progress" style="margin-top: 4px; display: none;">
397
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
398
+ <div style="float: left; margin-top: 2px;"><?php esc_html_e( 'Isolating images...', 'wpvivid-backuprestore' ); ?></div>
399
  <div style="clear: both;"></div>
400
  </div>
401
  <?php
412
  ?>
413
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
414
  <div class="alignleft actions bulkactions">
415
+ <label for="wpvivid_uc_bulk_action" class="screen-reader-text"><?php esc_html_e( 'Select bulk action', 'wpvivid-backuprestore' ); ?></label>
416
  <select name="action" id="wpvivid_uc_bulk_action">
417
+ <option value="-1"><?php esc_html_e( 'Bulk Actions', 'wpvivid-backuprestore' ); ?></option>
418
+ <option value="wpvivid_isolate_selected_image"><?php esc_html_e( 'Isolate selected images', 'wpvivid-backuprestore' ); ?></option>
419
+ <option value="wpvivid_isolate_list_image"><?php esc_html_e( 'Isolate all images', 'wpvivid-backuprestore' ); ?></option>
420
  </select>
421
+ <input type="submit" class="button action" value="<?php esc_attr_e( 'Apply', 'wpvivid-backuprestore' ); ?>">
422
  </div>
423
  <div id="wpvivid_isolate_progress" style="margin-top: 4px; display: none;">
424
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
425
+ <div style="float: left; margin-top: 2px;"><?php esc_html_e( 'Isolating images...', 'wpvivid-backuprestore' ); ?></div>
426
  <div style="clear: both;"></div>
427
  </div>
428
  <br class="clear" />
507
  if (!empty($columns['cb']))
508
  {
509
  static $cb_counter = 1;
510
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __('Select All', 'wpvivid-backuprestore') . '</label>'
511
  . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox"/>';
512
  $cb_counter++;
513
  }
549
  public function get_columns()
550
  {
551
  $sites_columns = array(
552
+ 'cb' => __( ' ', 'wpvivid-backuprestore' ),
553
+ 'thumb' =>__( 'Thumbnail', 'wpvivid-backuprestore' ),
554
+ 'path' => __( 'Path', 'wpvivid-backuprestore' ),
555
+ //'folder' => __( 'Folder', 'wpvivid-backuprestore' ),
556
+ 'size'=>__( 'Size', 'wpvivid-backuprestore' )
557
  );
558
 
559
  return $sites_columns;
726
  $this->screen->render_screen_reader_content( 'heading_pagination' );
727
  }
728
 
729
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items, 'wpvivid-backuprestore' ), number_format_i18n( $total_items ) ) . '</span>';
730
 
731
  $current = $this->get_pagenum();
732
 
757
  } else {
758
  $page_links[] = sprintf(
759
  "<div class='first-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
760
+ __( 'First page', 'wpvivid-backuprestore' ),
761
  '&laquo;'
762
  );
763
  }
768
  $page_links[] = sprintf(
769
  "<div class='prev-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
770
  $current,
771
+ __( 'Previous page', 'wpvivid-backuprestore' ),
772
  '&lsaquo;'
773
  );
774
  }
775
 
776
  if ( 'bottom' === $which ) {
777
  $html_current_page = $current;
778
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">';
779
  } else {
780
  $html_current_page = sprintf(
781
  "%s<input class='current-page' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' /><span class='tablenav-paging-text'>",
782
+ '<label class="screen-reader-text">' . __( 'Current Page', 'wpvivid-backuprestore' ) . '</label>',
783
  $current,
784
  strlen( $total_pages )
785
  );
786
  }
787
  $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
788
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging', 'wpvivid-backuprestore' ), $html_current_page, $html_total_pages ) . $total_pages_after;
789
 
790
  if ( $disable_next ) {
791
  $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">&rsaquo;</span>';
793
  $page_links[] = sprintf(
794
  "<div class='next-page button' value='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
795
  $current,
796
+ __( 'Next page', 'wpvivid-backuprestore' ),
797
  '&rsaquo;'
798
  );
799
  }
803
  } else {
804
  $page_links[] = sprintf(
805
  "<div class='last-page button'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></div>",
806
+ __( 'Last page', 'wpvivid-backuprestore' ),
807
  '&raquo;'
808
  );
809
  }
843
  ?>
844
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
845
  <div class="alignleft actions bulkactions">
846
+ <label for="wpvivid_uc_iso_bulk_action" class="screen-reader-text"><?php esc_html_e( 'Select bulk action', 'wpvivid-backuprestore' ); ?></label>
847
  <select name="action" id="wpvivid_uc_iso_bulk_action">
848
+ <option value="-1"><?php esc_html_e( 'Bulk Actions', 'wpvivid-backuprestore' ); ?></option>
849
+ <option value="wpvivid_restore_selected_image"><?php esc_html_e( 'Restore selected images', 'wpvivid-backuprestore' ); ?></option>
850
+ <option value="wpvivid_restore_list_image"><?php esc_html_e( 'Restore all images', 'wpvivid-backuprestore' ); ?></option>
851
+ <option value="wpvivid_delete_selected_image"><?php esc_html_e( 'Delete selected images', 'wpvivid-backuprestore' ); ?></option>
852
+ <option value="wpvivid_delete_list_image"><?php esc_html_e( 'Delete all images', 'wpvivid-backuprestore' ); ?></option>
853
  </select>
854
+ <input type="submit" class="button action" value="<?php esc_attr_e( 'Apply', 'wpvivid-backuprestore' ); ?>">
855
  </div>
856
  <div id="wpvivid_restore_delete_progress" style="margin-top: 4px; display: none;">
857
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
858
+ <div id="wpvivid_restore_delete_text" style="float: left; margin-top: 2px;"><?php esc_html_e( 'Restoring images...', 'wpvivid-backuprestore' ); ?></div>
859
  <div style="clear: both;"></div>
860
  </div>
861
  <div class="wpvivid-backup-tips" style="background: #fff; border: 1px solid #f1f1f1; border-radius: 6px; margin-top: 10px;margin-bottom: 10px">
862
  <div style="float: left;">
863
  <div style="padding: 10px;">
864
+ <strong><?php _e('Note: ', 'wpvivid-backuprestore'); ?></strong>
865
+ <?php echo sprintf(__('Once deleted, images will be lost permanently. The action cannot be undone, unless you have %1$sa backup%2$s in place.', 'wpvivid-backuprestore'), '<a href="'. $admin_url . 'admin.php?page=WPvivid'.'">', '</a>'); ?>
866
  </div>
867
  </div>
868
  <div style="clear: both;"></div>
881
  ?>
882
  <div class="tablenav <?php echo esc_attr( $which ); ?>" style="<?php esc_attr_e($css_type); ?>">
883
  <div class="alignleft actions bulkactions">
884
+ <label for="wpvivid_uc_iso_bulk_action" class="screen-reader-text"><?php esc_html_e( 'Select bulk action', 'wpvivid-backuprestore' ); ?></label>
885
  <select name="action" id="wpvivid_uc_iso_bulk_action">
886
+ <option value="-1"><?php esc_html_e( 'Bulk Actions', 'wpvivid-backuprestore' ); ?></option>
887
+ <option value="wpvivid_restore_selected_image"><?php esc_html_e( 'Restore selected images', 'wpvivid-backuprestore' ); ?></option>
888
+ <option value="wpvivid_restore_list_image"><?php esc_html_e( 'Restore all images', 'wpvivid-backuprestore' ); ?></option>
889
+ <option value="wpvivid_delete_selected_image"><?php esc_html_e( 'Delete selected images', 'wpvivid-backuprestore' ); ?></option>
890
+ <option value="wpvivid_delete_list_image"><?php esc_html_e( 'Delete all images', 'wpvivid-backuprestore' ); ?></option>
891
  </select>
892
+ <input type="submit" class="button action" value="<?php esc_attr_e( 'Apply', 'wpvivid-backuprestore' ); ?>">
893
  </div>
894
  <div id="wpvivid_restore_delete_progress" style="margin-top: 4px; display: none;">
895
  <div class="spinner is-active" style="margin: 0 5px 10px 0; float: left;"></div>
896
+ <div id="wpvivid_restore_delete_text" style="float: left; margin-top: 2px;"><?php esc_html_e( 'Restoring images...', 'wpvivid-backuprestore' ); ?></div>
897
  <div style="clear: both;"></div>
898
  </div>
899
  <div class="wpvivid-backup-tips" style="background: #fff; border: 1px solid #f1f1f1; border-radius: 6px; margin-top: 10px;margin-bottom: 10px">
900
  <div style="float: left;">
901
  <div style="padding: 10px;">
902
+ <strong><?php _e('Note: ', 'wpvivid-backuprestore'); ?></strong>
903
+ <?php echo sprintf(__('Once deleted, images will be lost permanently. The action cannot be undone, unless you have %1$sa backup%2$s in place.', 'wpvivid-backuprestore'), '<a href="'. $admin_url . 'admin.php?page=WPvivid'.'">', '</a>'); ?>
904
  </div>
905
  </div>
906
  <div style="clear: both;"></div>
1074
  _e('<div class="notice notice-warning inline" style="margin: 10px 0 0 0;"><p><strong>Warning:</strong> We detected that you use Jet Engine plugin on this site,
1075
  it may have compatibility issues with our plugin, which can result in an inaccuracy of the scan result,
1076
  so we recommend not using this feature yet.
1077
+ </p></div>', 'wpvivid-backuprestore');
1078
  }
1079
  }
1080
  }
1102
  <div class="wrap" style="max-width:1720px;">
1103
  <h1>
1104
  <?php
1105
+ echo __('WPvivid Image Cleaner', 'wpvivid-backuprestore');
1106
  ?>
1107
  </h1>
1108
 
1115
 
1116
  $args['is_parent_tab']=1;
1117
  $this->main_tab=new WPvivid_Tab_Page_Container();
1118
+ $this->main_tab->add_tab(__('Scan Media', 'wpvivid-backuprestore'),'scan',array($this, 'output_scan'), $args);
1119
+ $this->main_tab->add_tab(__('Isolated Media', 'wpvivid-backuprestore'),'isolate',array($this, 'output_isolate'), $args);
1120
  //$this->main_tab->add_tab('Database','database',array($this, 'output_database'), $args);
1121
  $this->main_tab->display();
1122
  if (isset($_GET['tab']))
1171
  ?>
1172
  <div class="postbox quickbackup-addon">
1173
  <div style="margin-top: 10px;margin-bottom: 10px;">
1174
+ <?php esc_html_e('In the tab, you can scan your media folder (uploads) to find unused images and isolate specific or all unused images.', 'wpvivid-backuprestore'); ?>
1175
  </div>
1176
  <div id="wpvivid_uc_scan">
1177
  <div style="margin-top: 10px;margin-bottom: 10px;">
1178
+ <?php esc_html_e('Media path: ', 'wpvivid-backuprestore'); ?><a><?php echo $path?></a>
1179
  </div>
1180
+ <input class="button-primary" style="width: 200px; height: 50px; font-size: 20px;" id="wpvivid_start_scan" type="submit" value="<?php esc_attr_e('Scan', 'wpvivid-backuprestore'); ?>">
1181
  <div style="clear: both;"></div>
1182
  <div style="margin-top: 10px">
1183
  <span>
1184
+ <?php esc_html_e('Clicking the \'Scan\' button to find unused images in your media folder. Currently it only scans JPG and PNG images.', 'wpvivid-backuprestore'); ?>
1185
  </span>
1186
  </div>
1187
  <?php echo $text?>
1188
  <div class="wpvivid-backup-tips" style="background: #fff; border: 1px solid #f1f1f1; border-radius: 6px; margin-top: 10px;">
1189
  <div style="float: left;">
1190
  <div style="padding: 10px;">
1191
+ <strong><?php _e('Note: ', 'wpvivid-backuprestore'); ?></strong>
1192
+ <?php _e('Please don\'t refresh the page while running a scan.', 'wpvivid-backuprestore'); ?>
1193
  </div>
1194
  </div>
1195
  <div style="clear: both;"></div>
1202
  </div>
1203
  <div class="postbox quickbackup-addon">
1204
  <p>
1205
+ <input id="wpvivid_result_list_search" type="search" name="s" value="" placeholder="<?php esc_attr_e('Search', 'wpvivid-backuprestore'); ?>">
1206
  <select id="wpvivid_result_list_folder" style="margin-top: -5px;">
1207
+ <option selected="selected" value="0"><?php esc_html_e('All Folders', 'wpvivid-backuprestore'); ?></option>
1208
  <?php
1209
  if(!empty($folders))
1210
  {
1216
  }
1217
  ?>
1218
  </select>
1219
+ <input id="wpvivid_result_list_search_btn" type="submit" class="button" value="<?php esc_attr_e('Search', 'wpvivid-backuprestore'); ?>">
1220
  </p>
1221
  </div>
1222
  <div class="postbox">
1837
  ?>
1838
  <div class="postbox quickbackup-addon">
1839
  <div style="margin-top: 10px;margin-bottom: 10px;">
1840
+ <?php esc_html_e('This tab displays the isolated images and their locations. You can choose to restore or delete specific isolated images.', 'wpvivid-backuprestore'); ?>
1841
  </div>
1842
  <div style="margin-top: 10px;margin-bottom: 10px;">
1843
+ <?php esc_html_e('lsolated Folder Path: ', 'wpvivid-backuprestore'); ?><a><?php echo $path?></a>
1844
  </div>
1845
  </div>
1846
  <div class="postbox quickbackup-addon">
1847
  <p>
1848
+ <input id="wpvivid_iso_list_search" type="search" name="s" value="" placeholder="<?php esc_attr_e('Search', 'wpvivid-backuprestore'); ?>">
1849
  <select id="wpvivid_iso_list_folder" style="margin-top: -5px;">
1850
+ <option selected="selected" value="0"><?php esc_html_e('All Folders', 'wpvivid-backuprestore'); ?></option>
1851
  <?php
1852
  asort($result['folders']);
1853
  foreach ($result['folders'] as $folder)
1856
  }
1857
  ?>
1858
  </select>
1859
+ <input id="wpvivid_iso_list_search_btn" type="submit" class="button" value="<?php esc_attr_e('Search', 'wpvivid-backuprestore'); ?>">
1860
  </p>
1861
  </div>
1862
  <div class="postbox">
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: move, clone, migrate, staging, backup, restore, auto backup, cloud backup
4
  Requires at least: 4.5
5
  Tested up to: 6.0
6
  Requires PHP: 5.3
7
- Stable tag: 0.9.73
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
@@ -194,8 +194,15 @@ Thank you so much for translating WPvivid Backup Plugin to your languages!
194
  * [Robi Erwin Setiawan](https://www.linkedin.com/in/robi-erwin-setiawan/) (Indonesian)
195
  * [Lois](https://profiles.wordpress.org/naoko01/) (Hungarian)
196
  * [Khoi](https://profiles.wordpress.org/khoipro/) (Vietnamese)
197
- * [Jairo Ochoa](https://profiles.wordpress.org/jairoochoa/) and [Carlos Macías](https://profiles.wordpress.org/cmacias/) (Galician)
 
 
198
  == Changelog ==
 
 
 
 
 
199
  = 0.9.73 =
200
  - Fixed some bugs in the plugin code and UI.
201
  - Optimized the plugin code.
4
  Requires at least: 4.5
5
  Tested up to: 6.0
6
  Requires PHP: 5.3
7
+ Stable tag: 0.9.74
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
194
  * [Robi Erwin Setiawan](https://www.linkedin.com/in/robi-erwin-setiawan/) (Indonesian)
195
  * [Lois](https://profiles.wordpress.org/naoko01/) (Hungarian)
196
  * [Khoi](https://profiles.wordpress.org/khoipro/) (Vietnamese)
197
+ * [Jairo Ochoa](https://profiles.wordpress.org/jairoochoa/) and [Carlos Macías](https://profiles.wordpress.org/cmacias/) (Galician & Spanish (Spain))
198
+ * [Yordan Soares](https://profiles.wordpress.org/yordansoares/) (Spanish(all locales))
199
+ * [Chun-Chih Cheng](https://www.facebook.com/groups/wordpresstwhant) (Chinese (Taiwan))
200
  == Changelog ==
201
+ = 0.9.74 =
202
+ - Fixed some i18n issues in the plugin code.
203
+ - Updated: Last backup time will be updated once the backup schedule is triggered.
204
+ - Fixed some bugs in the plugin code.
205
+ - Optimized the plugin code.
206
  = 0.9.73 =
207
  - Fixed some bugs in the plugin code and UI.
208
  - Optimized the plugin code.
wpvivid-backuprestore.php CHANGED
@@ -7,7 +7,7 @@
7
  * @wordpress-plugin
8
  * Plugin Name: WPvivid Backup Plugin
9
  * Description: Clone or copy WP sites then move or migrate them to new host (new domain), schedule backups, transfer backups to leading remote storage. All in one.
10
- * Version: 0.9.73
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
@@ -21,7 +21,7 @@ if ( ! defined( 'WPINC' ) ) {
21
  die;
22
  }
23
 
24
- define( 'WPVIVID_PLUGIN_VERSION', '0.9.73' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');
@@ -127,7 +127,7 @@ function wpvivid_init_plugin_redirect()
127
 
128
  if($b_redirect_pro)
129
  {
130
- $url=apply_filters('wpvivid_backup_activate_redirect_url','admin.php?page=wpvivid-pro');
131
  if (is_multisite())
132
  {
133
  wp_redirect(network_admin_url().$url);
7
  * @wordpress-plugin
8
  * Plugin Name: WPvivid Backup Plugin
9
  * Description: Clone or copy WP sites then move or migrate them to new host (new domain), schedule backups, transfer backups to leading remote storage. All in one.
10
+ * Version: 0.9.74
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
21
  die;
22
  }
23
 
24
+ define( 'WPVIVID_PLUGIN_VERSION', '0.9.74' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');
127
 
128
  if($b_redirect_pro)
129
  {
130
+ $url=apply_filters('wpvivid_backup_activate_redirect_url','admin.php?page=wpvivid-dashboard');
131
  if (is_multisite())
132
  {
133
  wp_redirect(network_admin_url().$url);