UpdraftPlus WordPress Backup Plugin - Version 1.13.7

Version Description

  • 06/Sep/2017 =

  • FIX: UpdraftCentral connectivity for various operations restored (regression in 1.13.6)

  • FIX: No error message was being shown when a backup to local storage was missing upon restore

  • COMPATIBILITY: Replace uses of the deprecated (PHP 7.2+) each() function

  • TRANSLATION: Portuguese (Portugal) and Romanian translations are now complete and supplied from wordpress.org, so can be removed from the free plugin zip

  • TWEAK: Fix some wrongly-called translation functions, and pull more known strings into the Premium version

  • TWEAK: Remove the legacy parameter for setting storage upload job status data (only useful for version downgrades of more than 1 release during in-progress backups)

  • TWEAK: Exclude some unnecessary build and unused files from the release zip (reduce disk space and download size)

Download this release

Release Info

Developer DavidAnderson
Plugin Icon 128x128 UpdraftPlus WordPress Backup Plugin
Version 1.13.7
Comparing to
See all releases

Code changes from version 1.13.6 to 1.13.7

Files changed (66) hide show
  1. admin.php +0 -2
  2. central/bootstrap.php +2 -2
  3. class-updraftplus.php +2 -3
  4. includes/updraft-admin.js +1 -1
  5. includes/updraft-admin.min.js +1 -1
  6. languages/updraftplus-da_DK.mo +0 -0
  7. languages/updraftplus-da_DK.po +10 -10
  8. languages/updraftplus-fi.mo +0 -0
  9. languages/updraftplus-fi.po +26 -26
  10. languages/updraftplus-hu_HU.mo +0 -0
  11. languages/updraftplus-hu_HU.po +26 -26
  12. languages/updraftplus-it_IT.mo +0 -0
  13. languages/updraftplus-it_IT.po +47 -47
  14. languages/updraftplus-ja.mo +0 -0
  15. languages/updraftplus-ja.po +83 -83
  16. languages/updraftplus-lt_LT.mo +0 -0
  17. languages/updraftplus-lt_LT.po +16 -16
  18. languages/updraftplus-nl_NL.mo +0 -0
  19. languages/updraftplus-nl_NL.po +3 -3
  20. languages/updraftplus-pl_PL.mo +0 -0
  21. languages/updraftplus-pl_PL.po +10 -10
  22. languages/updraftplus-tr_TR.mo +0 -0
  23. languages/updraftplus-tr_TR.po +79 -79
  24. languages/updraftplus.pot +124 -144
  25. methods/backup-module.php +3 -6
  26. methods/dropbox.php +2 -2
  27. methods/googledrive.php +1 -1
  28. methods/openstack-base.php +3 -3
  29. methods/s3.php +2 -2
  30. methods/updraftvault.php +4 -4
  31. readme.txt +14 -3
  32. updraftplus.php +1 -1
  33. vendor/autoload.php +1 -1
  34. vendor/composer/autoload_real.php +7 -7
  35. vendor/composer/autoload_static.php +5 -5
  36. vendor/robloach/component-installer/LICENSE.md +0 -24
  37. vendor/robloach/component-installer/README.md +0 -324
  38. vendor/robloach/component-installer/composer.json +0 -44
  39. vendor/robloach/component-installer/phpunit.xml.dist +0 -25
  40. vendor/robloach/component-installer/src/ComponentInstaller/ComponentInstallerPlugin.php +0 -35
  41. vendor/robloach/component-installer/src/ComponentInstaller/Installer.php +0 -195
  42. vendor/robloach/component-installer/src/ComponentInstaller/Process/BuildJsProcess.php +0 -87
  43. vendor/robloach/component-installer/src/ComponentInstaller/Process/CopyProcess.php +0 -74
  44. vendor/robloach/component-installer/src/ComponentInstaller/Process/Process.php +0 -224
  45. vendor/robloach/component-installer/src/ComponentInstaller/Process/ProcessInterface.php +0 -44
  46. vendor/robloach/component-installer/src/ComponentInstaller/Process/RequireCssProcess.php +0 -127
  47. vendor/robloach/component-installer/src/ComponentInstaller/Process/RequireJsProcess.php +0 -264
  48. vendor/robloach/component-installer/src/ComponentInstaller/Resources/require.js +0 -2019
  49. vendor/robloach/component-installer/src/ComponentInstaller/Util/Filesystem.php +0 -68
  50. vendor/robloach/component-installer/src/bootstrap.php +0 -28
  51. vendor/robloach/component-installer/tests/ComponentInstaller/Test/InstallerTest.php +0 -159
  52. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/CopyProcessTest.php +0 -209
  53. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/ProcessTest.php +0 -136
  54. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/RequireCssProcessTest.php +0 -150
  55. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/RequireJsProcessTest.php +0 -343
  56. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/img.jpg +0 -0
  57. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/img2.jpg +0 -0
  58. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/img.jpg +0 -0
  59. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/img3.jpg +0 -0
  60. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/subdir2/img4.jpg +0 -0
  61. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test.css +0 -3
  62. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test.js +0 -4
  63. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test2.css +0 -3
  64. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test2.js +0 -4
  65. vendor/robloach/component-installer/tests/ComponentInstaller/Test/Util/FilesystemTest.php +0 -169
  66. vendor/robloach/component-installer/tests/bootstrap.php +0 -20
admin.php CHANGED
@@ -3539,8 +3539,6 @@ class UpdraftPlus_Admin {
3539
  </div>
3540
  ENDHERE;
3541
  return $ret;
3542
- } else {
3543
- // return str_replace(' ', '&nbsp;', '('.__('No backup log)', 'updraftplus').')');
3544
  }
3545
  }
3546
 
3539
  </div>
3540
  ENDHERE;
3541
  return $ret;
 
 
3542
  }
3543
  }
3544
 
central/bootstrap.php CHANGED
@@ -28,8 +28,8 @@ class UpdraftPlus_UpdraftCentral_Main {
28
  'analytics' => 'UpdraftCentral_Analytics_Commands'
29
  ));
30
 
31
- // If nothing was POSTed, then there is no incoming message, so no need to set up a listener. This avoids a DB SELECT query on the option below in the case where it didn't get autoloaded, which is the case when there are no keys.
32
- if (empty($_POST)) return;
33
 
34
  // Remote control keys
35
  // These are different from the remote send keys, which are set up in the Migrator add-on
28
  'analytics' => 'UpdraftCentral_Analytics_Commands'
29
  ));
30
 
31
+ // If nothing was sent, then there is no incoming message, so no need to set up a listener (or CORS request, etc.). This avoids a DB SELECT query on the option below in the case where it didn't get autoloaded, which is the case when there are no keys.
32
+ if (('GET' == $_SERVER['REQUEST_METHOD'] || 'POST' == $_SERVER['REQUEST_METHOD']) && (empty($_REQUEST['action']) || 'updraft_central' !== $_REQUEST['action']) && empty($_REQUEST['udcentral_action']) && empty($_REQUEST['udrpc_message'])) return;
33
 
34
  // Remote control keys
35
  // These are different from the remote send keys, which are set up in the Migrator add-on
class-updraftplus.php CHANGED
@@ -943,7 +943,7 @@ class UpdraftPlus {
943
  // Now run (v)sprintf on it, using any remaining arguments. vsprintf = sprintf but takes an array instead of individual arguments
944
  $this->log(vsprintf($pre_line, $args));
945
  // This is slightly hackish, in that we have no way to use a different level or destination. In that case, the caller should instead call log() twice with different parameters, instead of using this convenience function.
946
- $this->log(vsprintf(__($pre_line, 'updraftplus'), $args), 'notice-restore');
947
  }
948
  }
949
 
@@ -3503,8 +3503,7 @@ class UpdraftPlus {
3503
  if (!empty($a_name) && '*' != $a_name) {
3504
  if (is_array($a_name)) {
3505
  $result = array();
3506
- reset($a_name);
3507
- while (list($key, $val) = each($a_name)) {
3508
  $result[$key] = '`'.$val.'`';
3509
  }
3510
  return $result;
943
  // Now run (v)sprintf on it, using any remaining arguments. vsprintf = sprintf but takes an array instead of individual arguments
944
  $this->log(vsprintf($pre_line, $args));
945
  // This is slightly hackish, in that we have no way to use a different level or destination. In that case, the caller should instead call log() twice with different parameters, instead of using this convenience function.
946
+ $this->log(vsprintf($pre_line, $args), 'notice-restore');
947
  }
948
  }
949
 
3503
  if (!empty($a_name) && '*' != $a_name) {
3504
  if (is_array($a_name)) {
3505
  $result = array();
3506
+ foreach ($a_name as $key => $val) {
 
3507
  $result[$key] = '`'.$val.'`';
3508
  }
3509
  return $result;
includes/updraft-admin.js CHANGED
@@ -1072,7 +1072,7 @@ function updraft_downloader(base, backup_timestamp, what, whicharea, set_content
1072
  if (!jQuery(stid_selector).length) {
1073
  var prdate = (prettydate) ? prettydate : backup_timestamp;
1074
  jQuery(whicharea).append('<div style="clear:left; border: 1px solid; padding: 8px; margin-top: 4px; max-width:840px;" class="'+stid+' updraftplus_downloader"><button onclick="jQuery(this).parent().fadeOut().remove();" type="button" style="float:right; margin-bottom: 8px;">X</button><strong>'+updraftlion.download+' '+what+itext+' ('+prdate+')</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+stid+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>');
1075
- jQuery(stid_selector).data('downloaderfor', { base: base, nonce: backup_timestamp, what: what, index: i });
1076
  setTimeout(function() {
1077
  updraft_activejobs_update(true);}, 1500);
1078
  }
1072
  if (!jQuery(stid_selector).length) {
1073
  var prdate = (prettydate) ? prettydate : backup_timestamp;
1074
  jQuery(whicharea).append('<div style="clear:left; border: 1px solid; padding: 8px; margin-top: 4px; max-width:840px;" class="'+stid+' updraftplus_downloader"><button onclick="jQuery(this).parent().fadeOut().remove();" type="button" style="float:right; margin-bottom: 8px;">X</button><strong>'+updraftlion.download+' '+what+itext+' ('+prdate+')</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+stid+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>');
1075
+ jQuery(stid_selector).data('downloaderfor', { base: base, nonce: backup_timestamp, what: what, index: set_contents[i] });
1076
  setTimeout(function() {
1077
  updraft_activejobs_update(true);}, 1500);
1078
  }
includes/updraft-admin.min.js CHANGED
@@ -1,3 +1,3 @@
1
- function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var u in e)o[u]=e[u];else o.action_data=e;var d={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t))}"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(d.timeout=r.timeout),jQuery.ajax(d)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&jQuery("#updraft-insert-admin-warning").html(t.m)},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0&&jQuery(".updraftplusmethod.none").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?jQuery(".updraftplusmethod.none").fadeIn():jQuery(".updraftplusmethod.none").hide()}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");"function"==typeof a.labelauty&&a.labelauty()}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var u={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),u[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");u[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",u,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,u)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r="";jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var u=jQuery(this).data("key");e&&(e+=","),e+=u;var d=jQuery(this).find(".updraftplus-remove").data("hasremote");r&&(r+=","),r+=d}),updraft_delete(e,a,r)}function updraft_openrestorepanel(t){updraft_console_focussed_tab=2,updraft_historytimertoggle(t),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-backups-content").show(),jQuery("#updraft-navtab-backups").addClass("nav-tab-active"),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery("#updraft-migrate-modal").dialog("close"),jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",u=new RegExp(o),d=t.match(u);d?(jQuery(r).removeAttr("disabled").data("howmany",d[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?jQuery(".updraft_restore_crypteddb").show():jQuery(".updraft_restore_crypteddb").hide();var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0");var n=336+20*e;jQuery("#updraft-restore-modal").dialog("option","height",n)}function updraft_backup_dialog_open(){jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed?window.confirm(updraftlion.unsavedsettingsbackup)&&(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open")):(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open"))}function updraft_migrate_dialog_open(){jQuery("#updraft_migrate_modal_alt").hide(),updraft_migrate_modal_default_buttons={},updraft_migrate_modal_default_buttons[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-migrate-modal").dialog("option","buttons",updraft_migrate_modal_default_buttons),jQuery("#updraft-migrate-modal").dialog("open"),jQuery("#updraft_migrate_modal_main").show()}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&updraft_activejobs_update(!0))}function updraft_backupnow_inpage_go(t,e,a,r,n,o,u){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,u="undefined"==typeof u?updraftlion.automaticbackupbeforeupdate:u,updraft_console_focussed_tab=1,updraft_inpage_success_callback=t;var d={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",d),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,u,"")}function updraft_activejobs_update(t){var e=(new Date).getTime();if(!(0==t&&e<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=e+5500;var a="";jQuery(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader").each(function(t,e){var r=jQuery(e).data("downloaderfor");"object"==typeof r&&(""!=a&&(a+=":"),a=a+r.base+","+r.nonce+","+r.what+","+r.index)});var r={downloaders:a};try{jQuery("#updraft-poplog").dialog("isOpen")&&(r.log_fetch=1,r.log_nonce=updraft_poplog_log_nonce,r.log_pointer=updraft_poplog_log_pointer)}catch(n){console.log(n)}updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(r.thisjobonly=updraft_backupnow_nonce),updraft_send_command("activejobs_list",r,function(t){try{resp=ud_parse_json(t),resp.hasOwnProperty("l")&&(resp.l?(jQuery("#updraft_lastlogmessagerow").show(),jQuery("#updraft_lastlogcontainer").html(resp.l)):(jQuery("#updraft_lastlogmessagerow").hide(),jQuery("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var n=-1;if(jQuery("#updraft_activejobs").html(resp.j),jQuery("#updraft_activejobs .updraft_jobtimings").each(function(t,a){var r=jQuery(a);if(r.data("lastactivity")&&r.data("jobid")){var o=r.data("jobid"),u=r.data("lastactivity");(n==-1||u<n)&&(n=u);var d=r.data("nextresumptionafter"),s=r.data("nextresumption");e=(new Date).getTime(),u>50&&s>0&&d<-30&&e>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=o||s!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=s,updraft_last_forced_jobid=o,updraft_last_forced_when=e,console.log("UpdraftPlus: force resumption: job_id="+o+", resumption="+s),updraft_send_command("forcescheduledresumption",{resumption:s,job_id:o},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),e=(new Date).getTime(),updraft_activejobs_nextupdate=e+18e4,1==updraft_page_is_visible&&(1==updraft_console_focussed_tab||2==updraft_console_focussed_tab&&""!=a)&&(updraft_activejobs_nextupdate=n>-1?n<5?e+1750:e+5e3:lastlog_lastdata==t?e+7500:e+1750),lastlog_lastdata=t,null!=resp.j&&""!=resp.j?(jQuery("#updraft_activejobsrow").show(),r.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+r.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&jQuery(".updraft_jobtimings.isautobackup").length?(autobackup_nonce=jQuery(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,r.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))):1==updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+r.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):jQuery("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){jQuery("#updraft_backup_started").slideUp()},3500)):jQuery("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),jQuery("#updraft_activejobsrow").hide()),lastlog_jobs=resp.j,null!=resp.ds&&""!=resp.ds&&jQuery(resp.ds).each(function(e,a){""!=a.base&&updraft_downloader_status_update(a.base,a.timestamp,a.what,a.findex,a,t)}),null!=resp.u&&""!=resp.u&&jQuery("#updraft-poplog").dialog("isOpen")){var o=resp.u;if(o.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=o.pointer,null!=o.log&&""!=o.log)){var u=jQuery("#updraft-poplog").scrollTop();jQuery("#updraft-poplog-content").append(o.log),updraft_poplog_lastscroll!=u&&updraft_poplog_lastscroll!=-1||(jQuery("#updraft-poplog").scrollTop(jQuery("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=jQuery("#updraft-poplog").scrollTop())}}}catch(d){console.log(updraftlion.unexpectedresponse+" "+t),console.log(d)}},{json_parse:!1,type:"GET"})}}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a){var r=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(r),console.log(t)}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e){var a=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=a+30;else if(a<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+a.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var r=e?"remotescan":!!t&&"rescan";updraft_send_command("rescan",r,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_modal")&&t.migrate_modal&&jQuery("#updraft_migrate_modal_main").replaceWith(t.migrate_modal),null!=t.n&&jQuery("#updraft-navtab-backups").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),t.data&&console.log(t.data)}})}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var u=updraft_interval_month_val===!1?1:updraft_interval_month_val;u-=1,jQuery(a+" option:eq("+u+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var d=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+d+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_send_command("activejobs_delete",t,function(e){"Y"==e.ok?jQuery("#updraft-jobid-"+t).html(e.m).fadeOut("slow").remove():"N"==e.ok?alert(e.m):(alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)})})}function updraft_downloader(t,e,a,r,n,o,u){"string"!=typeof n&&(n=n.toString());for(var n=n.split(","),d=0;d<n.length;d++){var s=t+e+"_"+a+"_"+n[d],p="."+s,i=parseInt(n[d]);i++;var l=0==n[d]?"":" ("+i+")";if(!jQuery(p).length){var c=o?o:e;jQuery(r).append('<div style="clear:left; border: 1px solid; padding: 8px; margin-top: 4px; max-width:840px;" class="'+s+' updraftplus_downloader"><button onclick="jQuery(this).parent().fadeOut().remove();" type="button" style="float:right; margin-bottom: 8px;">X</button><strong>'+updraftlion.download+" "+a+l+" ("+c+')</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+s+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:d}),setTimeout(function(){updraft_activejobs_update(!0)},1500)}jQuery(p).data("lasttimebegan",(new Date).getTime()),u=!!u;var f=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[d]).data("wp_nonce").toString(),_={type:a,timestamp:e,findex:n[d]},g={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:f,timeout:1e4,async:u};updraft_send_command("updraft_download_backup",_,function(t){},g)}return!1}function ud_parse_json(t){t.charAt(0),t.charAt(t.length-1);try{var e=JSON.parse(t);return e}catch(a){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse"),console.log(t)}var r=t.indexOf("{"),n=t.lastIndexOf("}");if(r>-1&&n>-1){var o=t.slice(r,n+1);try{var u=JSON.parse(o);return console.log("UpdraftPlus: JSON re-parse successful"),u}catch(a){throw console.log("UpdraftPlus: Exception when trying to parse JSON (2)"),a}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery("#updraft-restore-modal-stage2a").html(updraftlion.processing),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t){var e=null;jQuery("#updraft_restorer_restore_options").val("");try{var a=ud_parse_json(t);if(null==a)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);var r=a.m;if(""!=a.w&&(r=r+"<p><strong>"+updraftlion.warnings+"</strong><br>"+a.w+"</p>"),""!=a.e?r=r+"<p><strong>"+updraftlion.errors+"</strong><br>"+a.e+"</p>":updraft_restore_stage=3,a.hasOwnProperty("i")){try{if(e=ud_parse_json(a.i),e.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var n=e.addui;r+='<div id="updraft_restoreoptions_ui" style="clear:left; padding-top:10px;">'+n+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete e.addui,a.i=JSON.stringify(e))}}catch(o){console.log(o),console.log(a)}jQuery("#updraft_restorer_backup_info").val(a.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(r),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(o){console.log(t),console.log(o),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+t).html()}},{json_parse:!1}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e,a,r,n,o){var u=t+e+"_"+a+"_"+r,d="."+u,s=0;if(null!=n.e)jQuery(d+" .raw").html("<strong>"+updraftlion.error+"</strong> "+n.e),console.log(n);else if(null!=n.p){if(jQuery(d+"_st .dlfileprogress").width(n.p+"%"),null!=n.a&&n.a>0){var p=(new Date).getTime(),i=jQuery(d).data("lasttimebegan"),l=p-i;if(n.a>90&&l>6e4){console.log(e+" "+a+" "+r+": restarting download: file_age="+n.a+", sincelastrestart_ms="+l),jQuery(d).data("lasttimebegan",(new Date).getTime());var c=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+r),f={type:a,timestamp:e,findex:r},_={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:c.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",f,function(t){},_),jQuery(d).data("lasttimebegan",(new Date).getTime())}}if(null!=n.m)if(n.p>=100&&"udrestoredlstatus_"==t)jQuery(d+" .raw").html(n.m),jQuery(d).fadeOut("slow",function(){jQuery(this).remove(),updraft_restorer_checkstage2(0)});else if(n.p<100||"uddlstatus_"!=t)jQuery(d+" .raw").html(n.m);else{var g=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button type="button" onclick="updraftplus_downloadstage2(\''+e+"', '"+a+"', '"+r+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button id="uddownloaddelete_'+e+"_"+a+'" type="button" onclick="updraftplus_deletefromserver(\''+e+"', '"+a+"', '"+r+"')\">"+updraftlion.deletefromserver+"</button>";n.hasOwnProperty("can_show_contents")&&n.can_show_contents&&(g+=' <button type="button" onclick="updraftplus_show_contents(\''+e+"', '"+a+"', '"+r+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(d+" .raw").html(g)}}else null!=n.m?jQuery(d+" .raw").html(n.m):(jQuery(d+" .raw").html(updraftlion.jsonnotunderstood+" ("+o+")"),s=1);return s}function updraft_backupnow_go(t,e,a,r,n,o,u){jQuery("#updraft_backup_started").html("<em>"+updraftlion.requeststart+"</em>").slideDown(""),setTimeout(function(){jQuery("#updraft_backup_started").fadeOut("slow")},75e3);var d={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};""!=r&&(d.onlythisfileentity=r),""!=u&&(d.onlythesetableentities=u),updraft_send_command("backupnow",d,function(t){jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),setTimeout(function(){updraft_activejobs_update(!0)},500)})}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=1,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),u=a.url.match(/findex=\d+/),d=a.url.match(/base=[a-z_]+/);if(u=u instanceof Array?parseInt(u[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",d=d instanceof Array?d[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=d&&""!=o&&n>0){var s=d+n+"_"+o+"_"+u;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0)}function r(e,a,n,o){jQuery("#updraft-delete-waitwarning").slideDown();var u=e,d=a,s=n,p=o,i=jQuery("#updraft_delete_timestamp").val().split(","),l=jQuery("#updraft_delete_form").serializeArray(),c={};
2
  t.each(l,function(){void 0!==c[this.name]?(c[this.name].push||(c[this.name]=[c[this.name]]),c[this.name].push(this.value||"")):c[this.name]=this.value||""}),c.remote_delete_limit=updraftlion.remote_delete_limit,delete c.action,delete c.subaction,delete c.nonce,updraft_send_command("deleteset",c,function(t){if(t.hasOwnProperty("result")&&null!=t.result)if("error"==t.result)alert(updraftlion.error+" "+t.message);else if("continue"==t.result)u=u+t.backup_local+t.backup_remote,d+=t.backup_local,s+=t.backup_remote,p+=t.backup_sets,jQuery("#updraft-deleted-files-total").text(u+" "+updraftlion.remote_files_deleted),r(u,d,s,p);else if("success"==t.result){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp(),t.hasOwnProperty("count_backups")&&jQuery("#updraft-navtab-backups").html(updraftlion.existing_backups+" ("+t.count_backups+")");for(var e=0;e<i.length;e++){var a=i[e];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+a).slideUp().remove()}jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length<1&&jQuery("#ud_massactions").hide(),updraft_history_lastchecksum=!1,jQuery("#updraft-delete-modal").dialog("close"),d+=t.backup_local,s+=t.backup_remote,p+=t.backup_sets,alert(t.set_message+" "+p+"\n"+t.local_message+" "+d+"\n"+t.remote_message+" "+s)}})}function n(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").slideUp()}function o(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function u(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function d(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,jQuery("#updraft-migrate-modal").dialog("close"),jQuery("#updraft-restore-modal").dialog("open"),jQuery("#updraft-restore-modal-stage1").show(),jQuery("#updraft-restore-modal-stage2").hide(),jQuery("#updraft-restore-modal-stage2a").html(""),updraft_activejobs_update(!0)}function s(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}if(t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var p=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||p.apply(this,arguments)}}t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t(".updraft_webdav_settings").on("change keyup paste",function(){var e=[],a="";t(".updraft_webdav_settings").each(function(r,n){var o=t(n).attr("id");if(o&&"updraft_webdav_"==o.substring(0,15)){var u=o.substring(15);id_split=u.split("_"),u=id_split[0],a=id_split[1],e[u]=this.value}});var r="",n="@",o="/",u=":",d=":";(e.host.indexOf("@")>=0||""===e.host)&&(n=""),e.host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e.path.indexOf("/")&&""!==e.path||(o=""),""!==e.user&&""!==e.pass||(u=""),""!==e.host&&""!==e.port||(d=""),r=e.webdav+e.user+u+e.pass+n+encodeURIComponent(e.host)+d+e.port+o+e.path,t("#updraft_webdav_url_"+a).val(r)}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(e){(e.ctrlKey||e.metaKey)&&(t(this).toggleClass("backuprowselected"),t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length>0?t("#ud_massactions").show():t("#ud_massactions").hide())}),jQuery("#updraft-navtab-settings-content .updraftplusmethod").on("click","button.updraft-test-button",function(){var t=jQuery(this).data("method"),e=jQuery(this).data("instance_id");updraft_remote_storage_test(t,function(e,a,r){return"sftp"==t&&(r.hasOwnProperty("scp")&&r.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+e.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+e.output),e.hasOwnProperty("data")&&console.log(e.data),!0)},e)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),updraftplus_diskspace()}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),jQuery("#updraftcentral_keys").on("change",'input[type="radio"]',function(){a(!1)}),a(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(resp=ud_parse_json(t),resp.hasOwnProperty("error"))return alert(resp.error),void console.log(resp);alert(resp.r),resp.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(resp.keys_table),resp.hasOwnProperty("bundle")?jQuery("#updraftcentral_keys_content").append(resp.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+resp.bundle+"</textarea>"):console.log(resp)}catch(e){alert(updraftlion.unexpectedresponse+" "+t),console.log(e)}},{json_parse:!1})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var i=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>i&&(i=a)}),i>180&&jQuery(".updraft-bigbutton").width(i),setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery(".updraftplusmethod").hide(),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var l={};l[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:l});var c={};c[updraftlion.deletebutton]=function(){r(0,0,0,0)},c[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:262,width:430,modal:!0,buttons:c});var f={};f[updraftlion.restore]=function(){var t=0,e=[],a=0,r=jQuery("#updraft_restore_meta_foreign").val();if(jQuery('input[name="updraft_restore[]"]').each(function(n,o){if(jQuery(o).is(":checked")&&!jQuery(o).is(":disabled")){t=1;var u=jQuery(o).data("howmany"),d=jQuery(o).val();if((1==r||2==r&&"db"!=d)&&("wpcore"!=d&&(u=jQuery("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),d="wpcore"),"wpcore"!=d||0==a){var s=[d,u];e.push(s),"wpcore"==d&&(a=1)}}}),1==t){if(1==updraft_restore_stage){jQuery("#updraft-restore-modal-stage1").slideUp("slow"),jQuery("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var n=jQuery(".updraft_restore_date").first().text(),o=e,u=jQuery("#updraft_restore_timestamp").val();try{updraft_send_command("whichdownloadsneeded",{downloads:e,timestamp:u},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),o=t.downloads,console.log(o)),0==o.length)updraft_restorer_checkstage2(0);else for(var e=0;e<o.length;e++)updraft_downloader("udrestoredlstatus_",u,o[e][0],"#ud_downloadstatus2",o[e][1],n,!1)},{alert_on_error:!1})}catch(d){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(d),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var s=1;if(jQuery("#updraft_restoreoptions_ui input.required").each(function(t){if(0!=s){var e=jQuery(this).val();if(""==e)alert(updraftlion.pleasefillinrequired),s=0;else if(""!=jQuery(this).attr("pattern")){var a=jQuery(this).attr("pattern"),r=new RegExp(a,"g");r.test(e)||(alert(jQuery(this).data("invalidpattern")),s=0)}}}),!s)return;var p=jQuery("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+p),jQuery("#updraft_restorer_restore_options").val(p),jQuery("#updraft-restore-modal-stage2a").html(updraftlion.restoreproceeding),jQuery("#updraft_restore_form").submit()}}else alert(updraftlion.youdidnotselectany)},f[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-restore-modal").dialog({autoOpen:!1,height:505,width:590,modal:!0,buttons:f}),jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:345,width:580,modal:!0});var _={};_[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked("");if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var n=backupnow_whichfiles_checked("");return""==n&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,n,"",jQuery("#backupnow_label").val(),r))},_[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:_}),jQuery("#updraft-migrate-modal").dialog({autoOpen:!1,height:updraftlion.migratemodalheight,width:updraftlion.migratemodalwidth,modal:!0}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&n(t,!1)}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),jQuery(this).addClass("nav-tab-active"),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-status-content").show(),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=1,updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),jQuery(this).addClass("nav-tab-active"),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-expert-content").show(),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=4}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-settings-content").show(),jQuery("#updraft-navtab-settings").addClass("nav-tab-active"),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=3}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-addons-content").show(),jQuery("#updraft-navtab-addons").addClass("nav-tab-active"),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=5}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_openrestorepanel(1)}),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&o()}catch(g){console.log(g)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),u(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),u(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table").on("click",".updraft_jobinfo_delete",function(t){t.preventDefault();var e=jQuery(this).data("jobid");e?updraft_activejobs_delete(e):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("jobid");e?updraft_popuplog(e):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");d(e,a,r)}),"initiate_restore"==s("udaction")){var y=s("entities"),m=s("backup_timestamp"),h=s("showdata");d(y,m,h)}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote").toString(),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),u=jQuery(this).data("prettydate"),d=!0;updraft_downloader(e,a,r,n,o,u,d)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#updraftvault_settings_cell").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e+"#updraftvault_settings_connect input").keypress(function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#updraftvault_settings_cell").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",null,function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#updraftvault_settings_cell").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#updraftvault_connect").click(function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#updraftvault_showoptions").click(function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t(e+"#updraftvault_connect_go").click(function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val()},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))}),!1})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}jQuery("#updraft-hidethis").remove(),updraft_remote_storage_tabs_setup()}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download","updraftplus-settings.json"),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var u=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:u,updraftplus_version:updraftlion.updraftplus_version},function(e){var a=n(e);!a.hasOwnProperty("saved")||a.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),a.hasOwnProperty("error_message")&&a.error_message&&alert(a.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,json_parse:!1})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e){try{var a=ud_parse_json(e),r=(a.messages,a.backup_dir.writable),n=a.backup_dir.message,o=a.backup_dir.button_title}catch(u){return console.log(u),console.log(e),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(a.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(a.changed);for(prop in a.changed)if("object"==typeof a.changed[prop])for(innerprop in a.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(a.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(a.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),a.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(a.updraft_include_more_path),a.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(a.backup_now_message),
3
  t(".updraftmessage").remove(),t("#updraft_backup_started").before(a.messages),t("#next-backup-table-inner").html(a.scheduled),a}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var u=new Image;u.src=updraftlion.ud_url+"/images/udlogo-rotating.gif",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e){n(e),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",nonce:updraftplus_settings_nonce,json_parse:!1})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)})});
1
+ function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var u in e)o[u]=e[u];else o.action_data=e;var d={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t))}"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(d.timeout=r.timeout),jQuery.ajax(d)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&jQuery("#updraft-insert-admin-warning").html(t.m)},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0&&jQuery(".updraftplusmethod.none").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?jQuery(".updraftplusmethod.none").fadeIn():jQuery(".updraftplusmethod.none").hide()}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");"function"==typeof a.labelauty&&a.labelauty()}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var u={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),u[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");u[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",u,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,u)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r="";jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var u=jQuery(this).data("key");e&&(e+=","),e+=u;var d=jQuery(this).find(".updraftplus-remove").data("hasremote");r&&(r+=","),r+=d}),updraft_delete(e,a,r)}function updraft_openrestorepanel(t){updraft_console_focussed_tab=2,updraft_historytimertoggle(t),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-backups-content").show(),jQuery("#updraft-navtab-backups").addClass("nav-tab-active"),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery("#updraft-migrate-modal").dialog("close"),jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",u=new RegExp(o),d=t.match(u);d?(jQuery(r).removeAttr("disabled").data("howmany",d[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?jQuery(".updraft_restore_crypteddb").show():jQuery(".updraft_restore_crypteddb").hide();var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0");var n=336+20*e;jQuery("#updraft-restore-modal").dialog("option","height",n)}function updraft_backup_dialog_open(){jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed?window.confirm(updraftlion.unsavedsettingsbackup)&&(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open")):(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open"))}function updraft_migrate_dialog_open(){jQuery("#updraft_migrate_modal_alt").hide(),updraft_migrate_modal_default_buttons={},updraft_migrate_modal_default_buttons[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-migrate-modal").dialog("option","buttons",updraft_migrate_modal_default_buttons),jQuery("#updraft-migrate-modal").dialog("open"),jQuery("#updraft_migrate_modal_main").show()}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&updraft_activejobs_update(!0))}function updraft_backupnow_inpage_go(t,e,a,r,n,o,u){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,u="undefined"==typeof u?updraftlion.automaticbackupbeforeupdate:u,updraft_console_focussed_tab=1,updraft_inpage_success_callback=t;var d={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",d),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,u,"")}function updraft_activejobs_update(t){var e=(new Date).getTime();if(!(0==t&&e<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=e+5500;var a="";jQuery(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader").each(function(t,e){var r=jQuery(e).data("downloaderfor");"object"==typeof r&&(""!=a&&(a+=":"),a=a+r.base+","+r.nonce+","+r.what+","+r.index)});var r={downloaders:a};try{jQuery("#updraft-poplog").dialog("isOpen")&&(r.log_fetch=1,r.log_nonce=updraft_poplog_log_nonce,r.log_pointer=updraft_poplog_log_pointer)}catch(n){console.log(n)}updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(r.thisjobonly=updraft_backupnow_nonce),updraft_send_command("activejobs_list",r,function(t){try{resp=ud_parse_json(t),resp.hasOwnProperty("l")&&(resp.l?(jQuery("#updraft_lastlogmessagerow").show(),jQuery("#updraft_lastlogcontainer").html(resp.l)):(jQuery("#updraft_lastlogmessagerow").hide(),jQuery("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var n=-1;if(jQuery("#updraft_activejobs").html(resp.j),jQuery("#updraft_activejobs .updraft_jobtimings").each(function(t,a){var r=jQuery(a);if(r.data("lastactivity")&&r.data("jobid")){var o=r.data("jobid"),u=r.data("lastactivity");(n==-1||u<n)&&(n=u);var d=r.data("nextresumptionafter"),s=r.data("nextresumption");e=(new Date).getTime(),u>50&&s>0&&d<-30&&e>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=o||s!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=s,updraft_last_forced_jobid=o,updraft_last_forced_when=e,console.log("UpdraftPlus: force resumption: job_id="+o+", resumption="+s),updraft_send_command("forcescheduledresumption",{resumption:s,job_id:o},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),e=(new Date).getTime(),updraft_activejobs_nextupdate=e+18e4,1==updraft_page_is_visible&&(1==updraft_console_focussed_tab||2==updraft_console_focussed_tab&&""!=a)&&(updraft_activejobs_nextupdate=n>-1?n<5?e+1750:e+5e3:lastlog_lastdata==t?e+7500:e+1750),lastlog_lastdata=t,null!=resp.j&&""!=resp.j?(jQuery("#updraft_activejobsrow").show(),r.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+r.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&jQuery(".updraft_jobtimings.isautobackup").length?(autobackup_nonce=jQuery(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,r.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))):1==updraft_inpage_hasbegun&&jQuery("#updraft-jobid-"+r.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):jQuery("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){jQuery("#updraft_backup_started").slideUp()},3500)):jQuery("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),jQuery("#updraft_activejobsrow").hide()),lastlog_jobs=resp.j,null!=resp.ds&&""!=resp.ds&&jQuery(resp.ds).each(function(e,a){""!=a.base&&updraft_downloader_status_update(a.base,a.timestamp,a.what,a.findex,a,t)}),null!=resp.u&&""!=resp.u&&jQuery("#updraft-poplog").dialog("isOpen")){var o=resp.u;if(o.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=o.pointer,null!=o.log&&""!=o.log)){var u=jQuery("#updraft-poplog").scrollTop();jQuery("#updraft-poplog-content").append(o.log),updraft_poplog_lastscroll!=u&&updraft_poplog_lastscroll!=-1||(jQuery("#updraft-poplog").scrollTop(jQuery("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=jQuery("#updraft-poplog").scrollTop())}}}catch(d){console.log(updraftlion.unexpectedresponse+" "+t),console.log(d)}},{json_parse:!1,type:"GET"})}}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a){var r=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(r),console.log(t)}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e){var a=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=a+30;else if(a<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+a.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var r=e?"remotescan":!!t&&"rescan";updraft_send_command("rescan",r,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_modal")&&t.migrate_modal&&jQuery("#updraft_migrate_modal_main").replaceWith(t.migrate_modal),null!=t.n&&jQuery("#updraft-navtab-backups").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),t.data&&console.log(t.data)}})}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var u=updraft_interval_month_val===!1?1:updraft_interval_month_val;u-=1,jQuery(a+" option:eq("+u+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var d=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+d+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_send_command("activejobs_delete",t,function(e){"Y"==e.ok?jQuery("#updraft-jobid-"+t).html(e.m).fadeOut("slow").remove():"N"==e.ok?alert(e.m):(alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"&timestamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)})})}function updraft_downloader(t,e,a,r,n,o,u){"string"!=typeof n&&(n=n.toString());for(var n=n.split(","),d=0;d<n.length;d++){var s=t+e+"_"+a+"_"+n[d],p="."+s,i=parseInt(n[d]);i++;var l=0==n[d]?"":" ("+i+")";if(!jQuery(p).length){var c=o?o:e;jQuery(r).append('<div style="clear:left; border: 1px solid; padding: 8px; margin-top: 4px; max-width:840px;" class="'+s+' updraftplus_downloader"><button onclick="jQuery(this).parent().fadeOut().remove();" type="button" style="float:right; margin-bottom: 8px;">X</button><strong>'+updraftlion.download+" "+a+l+" ("+c+')</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+s+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:n[d]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)}jQuery(p).data("lasttimebegan",(new Date).getTime()),u=!!u;var f=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[d]).data("wp_nonce").toString(),_={type:a,timestamp:e,findex:n[d]},g={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:f,timeout:1e4,async:u};updraft_send_command("updraft_download_backup",_,function(t){},g)}return!1}function ud_parse_json(t){t.charAt(0),t.charAt(t.length-1);try{var e=JSON.parse(t);return e}catch(a){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse"),console.log(t)}var r=t.indexOf("{"),n=t.lastIndexOf("}");if(r>-1&&n>-1){var o=t.slice(r,n+1);try{var u=JSON.parse(o);return console.log("UpdraftPlus: JSON re-parse successful"),u}catch(a){throw console.log("UpdraftPlus: Exception when trying to parse JSON (2)"),a}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery("#updraft-restore-modal-stage2a").html(updraftlion.processing),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t){var e=null;jQuery("#updraft_restorer_restore_options").val("");try{var a=ud_parse_json(t);if(null==a)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);var r=a.m;if(""!=a.w&&(r=r+"<p><strong>"+updraftlion.warnings+"</strong><br>"+a.w+"</p>"),""!=a.e?r=r+"<p><strong>"+updraftlion.errors+"</strong><br>"+a.e+"</p>":updraft_restore_stage=3,a.hasOwnProperty("i")){try{if(e=ud_parse_json(a.i),e.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var n=e.addui;r+='<div id="updraft_restoreoptions_ui" style="clear:left; padding-top:10px;">'+n+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete e.addui,a.i=JSON.stringify(e))}}catch(o){console.log(o),console.log(a)}jQuery("#updraft_restorer_backup_info").val(a.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(r),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(o){console.log(t),console.log(o),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+t).html()}},{json_parse:!1}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e,a,r,n,o){var u=t+e+"_"+a+"_"+r,d="."+u,s=0;if(null!=n.e)jQuery(d+" .raw").html("<strong>"+updraftlion.error+"</strong> "+n.e),console.log(n);else if(null!=n.p){if(jQuery(d+"_st .dlfileprogress").width(n.p+"%"),null!=n.a&&n.a>0){var p=(new Date).getTime(),i=jQuery(d).data("lasttimebegan"),l=p-i;if(n.a>90&&l>6e4){console.log(e+" "+a+" "+r+": restarting download: file_age="+n.a+", sincelastrestart_ms="+l),jQuery(d).data("lasttimebegan",(new Date).getTime());var c=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+r),f={type:a,timestamp:e,findex:r},_={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:c.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",f,function(t){},_),jQuery(d).data("lasttimebegan",(new Date).getTime())}}if(null!=n.m)if(n.p>=100&&"udrestoredlstatus_"==t)jQuery(d+" .raw").html(n.m),jQuery(d).fadeOut("slow",function(){jQuery(this).remove(),updraft_restorer_checkstage2(0)});else if(n.p<100||"uddlstatus_"!=t)jQuery(d+" .raw").html(n.m);else{var g=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button type="button" onclick="updraftplus_downloadstage2(\''+e+"', '"+a+"', '"+r+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button id="uddownloaddelete_'+e+"_"+a+'" type="button" onclick="updraftplus_deletefromserver(\''+e+"', '"+a+"', '"+r+"')\">"+updraftlion.deletefromserver+"</button>";n.hasOwnProperty("can_show_contents")&&n.can_show_contents&&(g+=' <button type="button" onclick="updraftplus_show_contents(\''+e+"', '"+a+"', '"+r+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(d+" .raw").html(g)}}else null!=n.m?jQuery(d+" .raw").html(n.m):(jQuery(d+" .raw").html(updraftlion.jsonnotunderstood+" ("+o+")"),s=1);return s}function updraft_backupnow_go(t,e,a,r,n,o,u){jQuery("#updraft_backup_started").html("<em>"+updraftlion.requeststart+"</em>").slideDown(""),setTimeout(function(){jQuery("#updraft_backup_started").fadeOut("slow")},75e3);var d={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};""!=r&&(d.onlythisfileentity=r),""!=u&&(d.onlythesetableentities=u),updraft_send_command("backupnow",d,function(t){jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),setTimeout(function(){updraft_activejobs_update(!0)},500)})}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=1,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),u=a.url.match(/findex=\d+/),d=a.url.match(/base=[a-z_]+/);if(u=u instanceof Array?parseInt(u[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",d=d instanceof Array?d[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=d&&""!=o&&n>0){var s=d+n+"_"+o+"_"+u;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0)}function r(e,a,n,o){jQuery("#updraft-delete-waitwarning").slideDown();var u=e,d=a,s=n,p=o,i=jQuery("#updraft_delete_timestamp").val().split(","),l=jQuery("#updraft_delete_form").serializeArray(),c={};
2
  t.each(l,function(){void 0!==c[this.name]?(c[this.name].push||(c[this.name]=[c[this.name]]),c[this.name].push(this.value||"")):c[this.name]=this.value||""}),c.remote_delete_limit=updraftlion.remote_delete_limit,delete c.action,delete c.subaction,delete c.nonce,updraft_send_command("deleteset",c,function(t){if(t.hasOwnProperty("result")&&null!=t.result)if("error"==t.result)alert(updraftlion.error+" "+t.message);else if("continue"==t.result)u=u+t.backup_local+t.backup_remote,d+=t.backup_local,s+=t.backup_remote,p+=t.backup_sets,jQuery("#updraft-deleted-files-total").text(u+" "+updraftlion.remote_files_deleted),r(u,d,s,p);else if("success"==t.result){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp(),t.hasOwnProperty("count_backups")&&jQuery("#updraft-navtab-backups").html(updraftlion.existing_backups+" ("+t.count_backups+")");for(var e=0;e<i.length;e++){var a=i[e];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+a).slideUp().remove()}jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length<1&&jQuery("#ud_massactions").hide(),updraft_history_lastchecksum=!1,jQuery("#updraft-delete-modal").dialog("close"),d+=t.backup_local,s+=t.backup_remote,p+=t.backup_sets,alert(t.set_message+" "+p+"\n"+t.local_message+" "+d+"\n"+t.remote_message+" "+s)}})}function n(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").slideUp()}function o(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function u(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function d(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,jQuery("#updraft-migrate-modal").dialog("close"),jQuery("#updraft-restore-modal").dialog("open"),jQuery("#updraft-restore-modal-stage1").show(),jQuery("#updraft-restore-modal-stage2").hide(),jQuery("#updraft-restore-modal-stage2a").html(""),updraft_activejobs_update(!0)}function s(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}if(t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var p=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||p.apply(this,arguments)}}t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t(".updraft_webdav_settings").on("change keyup paste",function(){var e=[],a="";t(".updraft_webdav_settings").each(function(r,n){var o=t(n).attr("id");if(o&&"updraft_webdav_"==o.substring(0,15)){var u=o.substring(15);id_split=u.split("_"),u=id_split[0],a=id_split[1],e[u]=this.value}});var r="",n="@",o="/",u=":",d=":";(e.host.indexOf("@")>=0||""===e.host)&&(n=""),e.host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e.path.indexOf("/")&&""!==e.path||(o=""),""!==e.user&&""!==e.pass||(u=""),""!==e.host&&""!==e.port||(d=""),r=e.webdav+e.user+u+e.pass+n+encodeURIComponent(e.host)+d+e.port+o+e.path,t("#updraft_webdav_url_"+a).val(r)}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(e){(e.ctrlKey||e.metaKey)&&(t(this).toggleClass("backuprowselected"),t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length>0?t("#ud_massactions").show():t("#ud_massactions").hide())}),jQuery("#updraft-navtab-settings-content .updraftplusmethod").on("click","button.updraft-test-button",function(){var t=jQuery(this).data("method"),e=jQuery(this).data("instance_id");updraft_remote_storage_test(t,function(e,a,r){return"sftp"==t&&(r.hasOwnProperty("scp")&&r.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+e.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+e.output),e.hasOwnProperty("data")&&console.log(e.data),!0)},e)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),updraftplus_diskspace()}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),jQuery("#updraftcentral_keys").on("change",'input[type="radio"]',function(){a(!1)}),a(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(resp=ud_parse_json(t),resp.hasOwnProperty("error"))return alert(resp.error),void console.log(resp);alert(resp.r),resp.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(resp.keys_table),resp.hasOwnProperty("bundle")?jQuery("#updraftcentral_keys_content").append(resp.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+resp.bundle+"</textarea>"):console.log(resp)}catch(e){alert(updraftlion.unexpectedresponse+" "+t),console.log(e)}},{json_parse:!1})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var i=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>i&&(i=a)}),i>180&&jQuery(".updraft-bigbutton").width(i),setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery(".updraftplusmethod").hide(),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var l={};l[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:l});var c={};c[updraftlion.deletebutton]=function(){r(0,0,0,0)},c[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:262,width:430,modal:!0,buttons:c});var f={};f[updraftlion.restore]=function(){var t=0,e=[],a=0,r=jQuery("#updraft_restore_meta_foreign").val();if(jQuery('input[name="updraft_restore[]"]').each(function(n,o){if(jQuery(o).is(":checked")&&!jQuery(o).is(":disabled")){t=1;var u=jQuery(o).data("howmany"),d=jQuery(o).val();if((1==r||2==r&&"db"!=d)&&("wpcore"!=d&&(u=jQuery("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),d="wpcore"),"wpcore"!=d||0==a){var s=[d,u];e.push(s),"wpcore"==d&&(a=1)}}}),1==t){if(1==updraft_restore_stage){jQuery("#updraft-restore-modal-stage1").slideUp("slow"),jQuery("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var n=jQuery(".updraft_restore_date").first().text(),o=e,u=jQuery("#updraft_restore_timestamp").val();try{updraft_send_command("whichdownloadsneeded",{downloads:e,timestamp:u},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),o=t.downloads,console.log(o)),0==o.length)updraft_restorer_checkstage2(0);else for(var e=0;e<o.length;e++)updraft_downloader("udrestoredlstatus_",u,o[e][0],"#ud_downloadstatus2",o[e][1],n,!1)},{alert_on_error:!1})}catch(d){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(d),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var s=1;if(jQuery("#updraft_restoreoptions_ui input.required").each(function(t){if(0!=s){var e=jQuery(this).val();if(""==e)alert(updraftlion.pleasefillinrequired),s=0;else if(""!=jQuery(this).attr("pattern")){var a=jQuery(this).attr("pattern"),r=new RegExp(a,"g");r.test(e)||(alert(jQuery(this).data("invalidpattern")),s=0)}}}),!s)return;var p=jQuery("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+p),jQuery("#updraft_restorer_restore_options").val(p),jQuery("#updraft-restore-modal-stage2a").html(updraftlion.restoreproceeding),jQuery("#updraft_restore_form").submit()}}else alert(updraftlion.youdidnotselectany)},f[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-restore-modal").dialog({autoOpen:!1,height:505,width:590,modal:!0,buttons:f}),jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:345,width:580,modal:!0});var _={};_[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked("");if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var n=backupnow_whichfiles_checked("");return""==n&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,n,"",jQuery("#backupnow_label").val(),r))},_[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:_}),jQuery("#updraft-migrate-modal").dialog({autoOpen:!1,height:updraftlion.migratemodalheight,width:updraftlion.migratemodalwidth,modal:!0}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&n(t,!1)}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),jQuery(this).addClass("nav-tab-active"),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-status-content").show(),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=1,updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),jQuery(this).addClass("nav-tab-active"),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-expert-content").show(),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=4}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-addons-content").hide(),jQuery("#updraft-navtab-settings-content").show(),jQuery("#updraft-navtab-settings").addClass("nav-tab-active"),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-addons").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=3}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),jQuery("#updraft-navtab-status-content").hide(),jQuery("#updraft-navtab-backups-content").hide(),jQuery("#updraft-navtab-expert-content").hide(),jQuery("#updraft-navtab-settings-content").hide(),jQuery("#updraft-navtab-addons-content").show(),jQuery("#updraft-navtab-addons").addClass("nav-tab-active"),jQuery("#updraft-navtab-expert").removeClass("nav-tab-active"),jQuery("#updraft-navtab-backups").removeClass("nav-tab-active"),jQuery("#updraft-navtab-status").removeClass("nav-tab-active"),jQuery("#updraft-navtab-settings").removeClass("nav-tab-active"),updraft_page_is_visible=1,updraft_console_focussed_tab=5}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_openrestorepanel(1)}),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&o()}catch(g){console.log(g)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),u(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),u(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table").on("click",".updraft_jobinfo_delete",function(t){t.preventDefault();var e=jQuery(this).data("jobid");e?updraft_activejobs_delete(e):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("jobid");e?updraft_popuplog(e):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");d(e,a,r)}),"initiate_restore"==s("udaction")){var y=s("entities"),m=s("backup_timestamp"),h=s("showdata");d(y,m,h)}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote").toString(),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),u=jQuery(this).data("prettydate"),d=!0;updraft_downloader(e,a,r,n,o,u,d)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#updraftvault_settings_cell").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e+"#updraftvault_settings_connect input").keypress(function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#updraftvault_settings_cell").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",null,function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#updraftvault_settings_cell").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#updraftvault_connect").click(function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#updraftvault_showoptions").click(function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t(e+"#updraftvault_connect_go").click(function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val()},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))}),!1})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}jQuery("#updraft-hidethis").remove(),updraft_remote_storage_tabs_setup()}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download","updraftplus-settings.json"),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var u=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:u,updraftplus_version:updraftlion.updraftplus_version},function(e){var a=n(e);!a.hasOwnProperty("saved")||a.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),a.hasOwnProperty("error_message")&&a.error_message&&alert(a.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,json_parse:!1})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e){try{var a=ud_parse_json(e),r=(a.messages,a.backup_dir.writable),n=a.backup_dir.message,o=a.backup_dir.button_title}catch(u){return console.log(u),console.log(e),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(a.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(a.changed);for(prop in a.changed)if("object"==typeof a.changed[prop])for(innerprop in a.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(a.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(a.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),a.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(a.updraft_include_more_path),a.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(a.backup_now_message),
3
  t(".updraftmessage").remove(),t("#updraft_backup_started").before(a.messages),t("#next-backup-table-inner").html(a.scheduled),a}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var u=new Image;u.src=updraftlion.ud_url+"/images/udlogo-rotating.gif",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e){n(e),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",nonce:updraftplus_settings_nonce,json_parse:!1})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)})});
languages/updraftplus-da_DK.mo CHANGED
Binary file
languages/updraftplus-da_DK.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2017-07-25 22:08:50+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -963,7 +963,7 @@ msgstr "Dette er undertiden forårsaget af en firewall - prøv at fravælge SSL
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
- msgstr "login"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
@@ -1041,7 +1041,7 @@ msgstr "Angiv enhver beskrivelse"
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
- msgstr "Beskrivelse"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
@@ -1121,7 +1121,7 @@ msgstr "Backup'en blev afbrudt af brugeren"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
- msgstr "Dine indstillinger er blevet gemt."
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
@@ -1129,7 +1129,7 @@ msgstr "Total backup-størrelse:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
- msgstr "stop"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
@@ -1143,7 +1143,7 @@ msgstr "Wipe-indstillinger"
1143
 
1144
  #: src/templates/wp-admin/advanced/site-info.php:95
1145
  msgid "reset"
1146
- msgstr "reset"
1147
 
1148
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:21
1149
  msgid "these backup sets"
@@ -1155,7 +1155,7 @@ msgstr "dette backup sæt"
1155
 
1156
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:33
1157
  msgid "calculate"
1158
- msgstr "beregn"
1159
 
1160
  #: src/admin.php:722
1161
  msgid "You should save your changes to ensure that they are used for making your backup."
@@ -1212,7 +1212,7 @@ msgstr "Vil blive importeret som et nyt site."
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
- msgstr "Afvis"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
@@ -1325,7 +1325,7 @@ msgstr "Har du ikke et fjernlager?"
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
- msgstr "indstillinger"
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
@@ -1378,7 +1378,7 @@ msgstr "Du har valgt at tage backup, men har ikke valgt nogle filer"
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
- msgstr "Udvidelser"
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:35:49+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
+ msgstr "Log ind"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
+ msgstr "Forklaring"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
+ msgstr "Dine indstillinger er gemt"
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
+ msgstr "stoppe"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
1143
 
1144
  #: src/templates/wp-admin/advanced/site-info.php:95
1145
  msgid "reset"
1146
+ msgstr "nulstil"
1147
 
1148
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:21
1149
  msgid "these backup sets"
1155
 
1156
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:33
1157
  msgid "calculate"
1158
+ msgstr "Beregn"
1159
 
1160
  #: src/admin.php:722
1161
  msgid "You should save your changes to ensure that they are used for making your backup."
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
+ msgstr "Luk"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
+ msgstr "Indstillinger"
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
+ msgstr "Udviddelser"
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
languages/updraftplus-fi.mo CHANGED
Binary file
languages/updraftplus-fi.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2015-09-28 10:58:33+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -921,7 +921,7 @@ msgstr ""
921
 
922
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
923
  msgid "recommended"
924
- msgstr ""
925
 
926
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
927
  msgid "%s bytes"
@@ -963,7 +963,7 @@ msgstr ""
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
- msgstr ""
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
@@ -991,7 +991,7 @@ msgstr ""
991
 
992
  #: src/templates/wp-admin/settings/tab-status.php:47
993
  msgid "Now"
994
- msgstr ""
995
 
996
  #: src/class-updraftplus.php:4628, src/restorer.php:1010
997
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
@@ -1041,7 +1041,7 @@ msgstr ""
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
- msgstr ""
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
@@ -1065,7 +1065,7 @@ msgstr ""
1065
 
1066
  #: src/central/bootstrap.php:442
1067
  msgid "Details"
1068
- msgstr ""
1069
 
1070
  #: src/central/bootstrap.php:441
1071
  msgid "Key description"
@@ -1121,7 +1121,7 @@ msgstr ""
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
- msgstr ""
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
@@ -1129,7 +1129,7 @@ msgstr ""
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
- msgstr ""
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
@@ -1171,7 +1171,7 @@ msgstr ""
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
- msgstr ""
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
@@ -1212,7 +1212,7 @@ msgstr ""
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
- msgstr ""
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
@@ -1325,7 +1325,7 @@ msgstr ""
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
- msgstr ""
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
@@ -1378,7 +1378,7 @@ msgstr ""
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
- msgstr ""
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
@@ -1536,7 +1536,7 @@ msgstr ""
1536
 
1537
  #: src/templates/wp-admin/advanced/site-info.php:49
1538
  msgid "Not installed"
1539
- msgstr ""
1540
 
1541
  #: src/addons/googlecloud.php:951, src/addons/s3-enhanced.php:54
1542
  msgid "Storage class"
@@ -1645,7 +1645,7 @@ msgstr ""
1645
 
1646
  #: src/admin.php:733
1647
  msgid "Processing..."
1648
- msgstr ""
1649
 
1650
  #: src/admin.php:731
1651
  msgid "For backups older than"
@@ -1657,11 +1657,11 @@ msgstr ""
1657
 
1658
  #: src/admin.php:729
1659
  msgid "hour(s)"
1660
- msgstr ""
1661
 
1662
  #: src/admin.php:728
1663
  msgid "day(s)"
1664
- msgstr ""
1665
 
1666
  #: src/admin.php:727
1667
  msgid "in the month"
@@ -3162,7 +3162,7 @@ msgstr "(Näyttää siltä, että olet jo tunnistautunut.)"
3162
  #: src/methods/dropbox.php:523, src/methods/dropbox.php:532,
3163
  #: src/methods/dropbox.php:538
3164
  msgid "Dropbox"
3165
- msgstr ""
3166
 
3167
  #: src/addons/onedrive.php:988, src/methods/dropbox.php:523
3168
  msgid "Authenticate with %s"
@@ -3738,7 +3738,7 @@ msgstr ""
3738
 
3739
  #: src/admin.php:689, src/central/bootstrap.php:520
3740
  msgid "Create"
3741
- msgstr ""
3742
 
3743
  #: src/admin.php:651
3744
  msgid "Trying..."
@@ -4898,7 +4898,7 @@ msgstr ""
4898
  #: src/addons/migrator.php:333, src/admin.php:2229,
4899
  #: src/class-updraftplus.php:4683, src/restorer.php:2033
4900
  msgid "Warning:"
4901
- msgstr ""
4902
 
4903
  #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675,
4904
  #: src/restorer.php:154
@@ -4915,7 +4915,7 @@ msgstr ""
4915
 
4916
  #: src/admin.php:692
4917
  msgid "Close"
4918
- msgstr ""
4919
 
4920
  #: src/addons/autobackup.php:330, src/addons/autobackup.php:422,
4921
  #: src/admin.php:648, src/methods/remotesend.php:66,
@@ -5154,7 +5154,7 @@ msgstr ""
5154
  #: src/methods/openstack2.php:158, src/methods/updraftvault.php:346,
5155
  #: src/udaddons/options.php:132
5156
  msgid "Password"
5157
- msgstr ""
5158
 
5159
  #: src/addons/sftp.php:417, src/addons/webdav.php:123
5160
  msgid "Port"
@@ -5222,7 +5222,7 @@ msgstr ""
5222
  #: src/admin.php:2840, src/admin.php:2849, src/methods/addon-base-v2.php:289,
5223
  #: src/methods/stream-base.php:301
5224
  msgid "Failed"
5225
- msgstr ""
5226
 
5227
  #: src/addons/webdav.php:71
5228
  msgid "WebDAV URL"
@@ -5407,7 +5407,7 @@ msgstr ""
5407
 
5408
  #: src/methods/email.php:71
5409
  msgid "Note:"
5410
- msgstr ""
5411
 
5412
  #: src/methods/email.php:45
5413
  msgid "WordPress Backup"
@@ -5429,7 +5429,7 @@ msgstr ""
5429
  #: src/addons/webdav.php:103, src/methods/cloudfiles-new.php:178,
5430
  #: src/methods/cloudfiles.php:531, src/methods/openstack2.php:152
5431
  msgid "Username"
5432
- msgstr ""
5433
 
5434
  #: src/methods/cloudfiles-new.php:173, src/methods/cloudfiles.php:526,
5435
  #: src/methods/s3.php:999
@@ -5470,7 +5470,7 @@ msgstr ""
5470
  #: src/addons/cloudfiles-enhanced.php:38, src/methods/cloudfiles-new.php:120,
5471
  #: src/methods/cloudfiles.php:486
5472
  msgid "UK"
5473
- msgstr ""
5474
 
5475
  #: src/addons/cloudfiles-enhanced.php:37, src/methods/cloudfiles-new.php:119,
5476
  #: src/methods/cloudfiles.php:485
@@ -5544,7 +5544,7 @@ msgstr ""
5544
  #: src/addons/googlecloud.php:925, src/addons/onedrive.php:970,
5545
  #: src/methods/googledrive.php:1106
5546
  msgid "Client ID"
5547
- msgstr ""
5548
 
5549
  #: src/addons/googlecloud.php:914, src/methods/googledrive.php:1090
5550
  msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:42:12+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
921
 
922
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
923
  msgid "recommended"
924
+ msgstr "suositus"
925
 
926
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
927
  msgid "%s bytes"
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
+ msgstr "Kirjaudu sisään"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
991
 
992
  #: src/templates/wp-admin/settings/tab-status.php:47
993
  msgid "Now"
994
+ msgstr "Nyt"
995
 
996
  #: src/class-updraftplus.php:4628, src/restorer.php:1010
997
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
+ msgstr "Kuvaus/ tiivistelmä"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
1065
 
1066
  #: src/central/bootstrap.php:442
1067
  msgid "Details"
1068
+ msgstr "Yksityiskohdat"
1069
 
1070
  #: src/central/bootstrap.php:441
1071
  msgid "Key description"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
+ msgstr "Asetukset on tallennettu."
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
+ msgstr "pysäkki"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
+ msgstr "Tallentaa..."
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
+ msgstr "Piilota tämä huomautus."
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
+ msgstr "Asetukset"
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
+ msgstr "Laajennukset"
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
1536
 
1537
  #: src/templates/wp-admin/advanced/site-info.php:49
1538
  msgid "Not installed"
1539
+ msgstr "Ei asennettu"
1540
 
1541
  #: src/addons/googlecloud.php:951, src/addons/s3-enhanced.php:54
1542
  msgid "Storage class"
1645
 
1646
  #: src/admin.php:733
1647
  msgid "Processing..."
1648
+ msgstr "Käsitellään..."
1649
 
1650
  #: src/admin.php:731
1651
  msgid "For backups older than"
1657
 
1658
  #: src/admin.php:729
1659
  msgid "hour(s)"
1660
+ msgstr "tunti(a)"
1661
 
1662
  #: src/admin.php:728
1663
  msgid "day(s)"
1664
+ msgstr "päivä(ä)"
1665
 
1666
  #: src/admin.php:727
1667
  msgid "in the month"
3162
  #: src/methods/dropbox.php:523, src/methods/dropbox.php:532,
3163
  #: src/methods/dropbox.php:538
3164
  msgid "Dropbox"
3165
+ msgstr "Dropbox"
3166
 
3167
  #: src/addons/onedrive.php:988, src/methods/dropbox.php:523
3168
  msgid "Authenticate with %s"
3738
 
3739
  #: src/admin.php:689, src/central/bootstrap.php:520
3740
  msgid "Create"
3741
+ msgstr "Luo"
3742
 
3743
  #: src/admin.php:651
3744
  msgid "Trying..."
4898
  #: src/addons/migrator.php:333, src/admin.php:2229,
4899
  #: src/class-updraftplus.php:4683, src/restorer.php:2033
4900
  msgid "Warning:"
4901
+ msgstr "Varoitus:"
4902
 
4903
  #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675,
4904
  #: src/restorer.php:154
4915
 
4916
  #: src/admin.php:692
4917
  msgid "Close"
4918
+ msgstr "Sulje"
4919
 
4920
  #: src/addons/autobackup.php:330, src/addons/autobackup.php:422,
4921
  #: src/admin.php:648, src/methods/remotesend.php:66,
5154
  #: src/methods/openstack2.php:158, src/methods/updraftvault.php:346,
5155
  #: src/udaddons/options.php:132
5156
  msgid "Password"
5157
+ msgstr "Salasana"
5158
 
5159
  #: src/addons/sftp.php:417, src/addons/webdav.php:123
5160
  msgid "Port"
5222
  #: src/admin.php:2840, src/admin.php:2849, src/methods/addon-base-v2.php:289,
5223
  #: src/methods/stream-base.php:301
5224
  msgid "Failed"
5225
+ msgstr "Epäonnistui"
5226
 
5227
  #: src/addons/webdav.php:71
5228
  msgid "WebDAV URL"
5407
 
5408
  #: src/methods/email.php:71
5409
  msgid "Note:"
5410
+ msgstr "Huomaa:"
5411
 
5412
  #: src/methods/email.php:45
5413
  msgid "WordPress Backup"
5429
  #: src/addons/webdav.php:103, src/methods/cloudfiles-new.php:178,
5430
  #: src/methods/cloudfiles.php:531, src/methods/openstack2.php:152
5431
  msgid "Username"
5432
+ msgstr "Käyttäjätunnus"
5433
 
5434
  #: src/methods/cloudfiles-new.php:173, src/methods/cloudfiles.php:526,
5435
  #: src/methods/s3.php:999
5470
  #: src/addons/cloudfiles-enhanced.php:38, src/methods/cloudfiles-new.php:120,
5471
  #: src/methods/cloudfiles.php:486
5472
  msgid "UK"
5473
+ msgstr "UK"
5474
 
5475
  #: src/addons/cloudfiles-enhanced.php:37, src/methods/cloudfiles-new.php:119,
5476
  #: src/methods/cloudfiles.php:485
5544
  #: src/addons/googlecloud.php:925, src/addons/onedrive.php:970,
5545
  #: src/methods/googledrive.php:1106
5546
  msgid "Client ID"
5547
+ msgstr "Asiakas tunnus"
5548
 
5549
  #: src/addons/googlecloud.php:914, src/methods/googledrive.php:1090
5550
  msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
languages/updraftplus-hu_HU.mo CHANGED
Binary file
languages/updraftplus-hu_HU.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2017-06-27 20:45:19+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -963,7 +963,7 @@ msgstr ""
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
- msgstr "belépés"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
@@ -1041,7 +1041,7 @@ msgstr "Adj meg leírást"
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
- msgstr "Leírás"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
@@ -1121,7 +1121,7 @@ msgstr ""
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
- msgstr "A beállítások el lettek mentve."
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
@@ -1129,7 +1129,7 @@ msgstr "Teljes mentés mérete:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
- msgstr "megállítás"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
@@ -1171,7 +1171,7 @@ msgstr ""
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
- msgstr "Mentés..."
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
@@ -1212,7 +1212,7 @@ msgstr ""
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
- msgstr "Elrejtés"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
@@ -1325,7 +1325,7 @@ msgstr ""
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
- msgstr ""
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
@@ -1378,7 +1378,7 @@ msgstr ""
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
- msgstr ""
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
@@ -1657,11 +1657,11 @@ msgstr ""
1657
 
1658
  #: src/admin.php:729
1659
  msgid "hour(s)"
1660
- msgstr ""
1661
 
1662
  #: src/admin.php:728
1663
  msgid "day(s)"
1664
- msgstr ""
1665
 
1666
  #: src/admin.php:727
1667
  msgid "in the month"
@@ -2937,7 +2937,7 @@ msgstr "Aktuális Állapot"
2937
 
2938
  #: src/admin.php:937
2939
  msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
2940
- msgstr "A mentett adatok típusára vonatkozó, az ütemezési időpontok beállítására vonatkozó, a távoli tárhely beállítására vonatkozó és egyéb beállítások testreszabására a Beállítások fül alatt van lehetőség."
2941
 
2942
  #: src/admin.php:937
2943
  msgid "To make a backup, just press the Backup Now button."
@@ -3062,7 +3062,7 @@ msgstr "Nem akarod, hogy sikeresen kémkedjenek utánad? Az UpdraftPlus Premium
3062
 
3063
  #: src/templates/wp-admin/settings/form-contents.php:94
3064
  msgid "use UpdraftPlus Premium"
3065
- msgstr "használd az UpdraftPlus Premium-ot"
3066
 
3067
  #: src/class-updraftplus.php:4546
3068
  msgid "Decryption failed. The database file is encrypted."
@@ -3202,7 +3202,7 @@ msgstr "Fiók tulajdonos neve: %s."
3202
 
3203
  #: src/methods/googledrive.php:1135
3204
  msgid "To be able to set a custom folder name, use UpdraftPlus Premium."
3205
- msgstr "Ahhoz, hogy egy tetszőleges mappa nevet állíthass be, az UpdraftPlus Premium-ot kell használnod."
3206
 
3207
  #: src/methods/googledrive.php:1126
3208
  msgid "It is an ID number internal to Google Drive"
@@ -4473,7 +4473,7 @@ msgstr "További bővítmények"
4473
  #: src/templates/wp-admin/settings/tab-addons.php:19,
4474
  #: src/templates/wp-admin/settings/tab-addons.php:103
4475
  msgid "Support"
4476
- msgstr "Technikai támogatás"
4477
 
4478
  #: src/class-updraftplus.php:4769
4479
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
@@ -4898,7 +4898,7 @@ msgstr ""
4898
  #: src/addons/migrator.php:333, src/admin.php:2229,
4899
  #: src/class-updraftplus.php:4683, src/restorer.php:2033
4900
  msgid "Warning:"
4901
- msgstr ""
4902
 
4903
  #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675,
4904
  #: src/restorer.php:154
@@ -4915,7 +4915,7 @@ msgstr ""
4915
 
4916
  #: src/admin.php:692
4917
  msgid "Close"
4918
- msgstr ""
4919
 
4920
  #: src/addons/autobackup.php:330, src/addons/autobackup.php:422,
4921
  #: src/admin.php:648, src/methods/remotesend.php:66,
@@ -5289,15 +5289,15 @@ msgstr "sikeresen hitelesítette %s fiókját"
5289
 
5290
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5291
  msgid "there's an add-on for that."
5292
- msgstr "van rá kiegészítő."
5293
 
5294
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5295
  msgid "If you back up several sites into the same Dropbox and want to organise with sub-folders, then "
5296
- msgstr "Ha több WordPress honlapot mentene ugyanabba a Dropbox-ba, és almappákba kívánja szervezni azokat, "
5297
 
5298
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5299
  msgid "Backups are saved in"
5300
- msgstr "A mentések ide kerülnek:"
5301
 
5302
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5303
  msgid "Need to use sub-folders?"
@@ -5881,7 +5881,7 @@ msgstr "Egyik sem"
5881
 
5882
  #: src/templates/wp-admin/settings/form-contents.php:110
5883
  msgid "Choose your remote storage"
5884
- msgstr "Válaszd ki a távoli tárhelyet"
5885
 
5886
  #: src/templates/wp-admin/settings/form-contents.php:207
5887
  msgid "Manually decrypt a database backup file"
@@ -5999,7 +5999,7 @@ msgstr "Teljes (nem tömörített) adatméret:"
5999
  #: src/templates/wp-admin/settings/tab-addons.php:305,
6000
  #: src/templates/wp-admin/settings/tab-addons.php:308
6001
  msgid "No"
6002
- msgstr ""
6003
 
6004
  #: src/templates/wp-admin/advanced/site-info.php:56,
6005
  #: src/templates/wp-admin/advanced/site-info.php:59,
@@ -6034,7 +6034,7 @@ msgstr ""
6034
  #: src/templates/wp-admin/settings/tab-addons.php:292,
6035
  #: src/templates/wp-admin/settings/tab-addons.php:311
6036
  msgid "Yes"
6037
- msgstr ""
6038
 
6039
  #: src/templates/wp-admin/advanced/site-info.php:43,
6040
  #: src/templates/wp-admin/advanced/site-info.php:44,
@@ -6183,7 +6183,7 @@ msgstr "Opera böngésző"
6183
 
6184
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:36
6185
  msgid "More tasks:"
6186
- msgstr "További feladatok:"
6187
 
6188
  #: src/admin.php:2505
6189
  msgid "Download most recently modified log file"
@@ -6196,7 +6196,7 @@ msgstr "(Még semmit sem került naplózásra)"
6196
  #: src/addons/autobackup.php:325, src/addons/autobackup.php:420,
6197
  #: src/admin.php:2463, src/admin.php:2468
6198
  msgid "Last log message"
6199
- msgstr "Utolsó naplóbejegyzés"
6200
 
6201
  #: src/addons/migrator.php:224, src/admin.php:693, src/admin.php:3504,
6202
  #: src/templates/wp-admin/settings/tab-status.php:30
@@ -6300,7 +6300,7 @@ msgstr "Vissza az UpdraftPlus beállításához"
6300
  #: src/admin.php:2171, src/admin.php:2213, src/admin.php:2776,
6301
  #: src/templates/wp-admin/settings/existing-backups-table.php:16
6302
  msgid "Actions"
6303
- msgstr "Műveletek"
6304
 
6305
  #: src/admin.php:2072
6306
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:42:19+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
+ msgstr "Belépés"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
+ msgstr "leírása"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
+ msgstr "A beállításaid mentve"
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
+ msgstr "megáll"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
+ msgstr "Mentés...."
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
+ msgstr "Figyelmen kívül hagy"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
+ msgstr "Beállítások"
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
+ msgstr "Kiegészítők"
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
1657
 
1658
  #: src/admin.php:729
1659
  msgid "hour(s)"
1660
+ msgstr "óra"
1661
 
1662
  #: src/admin.php:728
1663
  msgid "day(s)"
1664
+ msgstr "nap"
1665
 
1666
  #: src/admin.php:727
1667
  msgid "in the month"
2937
 
2938
  #: src/admin.php:937
2939
  msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
2940
+ msgstr "Hogy megváltoztasd az alapértelmezett beállításokat, hogy beállítsd az ütemezett mentéseket, hogy a biztonsági mentéseket egy külső tárhelyre küldd át (ajánlott), és egyebek, menj a Beállítások fülre."
2941
 
2942
  #: src/admin.php:937
2943
  msgid "To make a backup, just press the Backup Now button."
3062
 
3063
  #: src/templates/wp-admin/settings/form-contents.php:94
3064
  msgid "use UpdraftPlus Premium"
3065
+ msgstr "használd az UpdraftPlus Premium-t"
3066
 
3067
  #: src/class-updraftplus.php:4546
3068
  msgid "Decryption failed. The database file is encrypted."
3202
 
3203
  #: src/methods/googledrive.php:1135
3204
  msgid "To be able to set a custom folder name, use UpdraftPlus Premium."
3205
+ msgstr "Ahhoz, hogy egy tetszőleges mappa nevet állíthass be, az UpdraftPlus Premium-t kell használnod."
3206
 
3207
  #: src/methods/googledrive.php:1126
3208
  msgid "It is an ID number internal to Google Drive"
4473
  #: src/templates/wp-admin/settings/tab-addons.php:19,
4474
  #: src/templates/wp-admin/settings/tab-addons.php:103
4475
  msgid "Support"
4476
+ msgstr "Segítség"
4477
 
4478
  #: src/class-updraftplus.php:4769
4479
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
4898
  #: src/addons/migrator.php:333, src/admin.php:2229,
4899
  #: src/class-updraftplus.php:4683, src/restorer.php:2033
4900
  msgid "Warning:"
4901
+ msgstr "Figyelem:"
4902
 
4903
  #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675,
4904
  #: src/restorer.php:154
4915
 
4916
  #: src/admin.php:692
4917
  msgid "Close"
4918
+ msgstr "Bezárás"
4919
 
4920
  #: src/addons/autobackup.php:330, src/addons/autobackup.php:422,
4921
  #: src/admin.php:648, src/methods/remotesend.php:66,
5289
 
5290
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5291
  msgid "there's an add-on for that."
5292
+ msgstr "van rá kiterjesztés."
5293
 
5294
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5295
  msgid "If you back up several sites into the same Dropbox and want to organise with sub-folders, then "
5296
+ msgstr "Ha több WordPress honlapot mentene ugyanabba a Dropbox-ba, és almappákba kívánja szervezni azokat,"
5297
 
5298
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5299
  msgid "Backups are saved in"
5300
+ msgstr "A mentések ide kerültek:"
5301
 
5302
  #: src/methods/dropbox.php:513, src/methods/dropbox.php:515
5303
  msgid "Need to use sub-folders?"
5881
 
5882
  #: src/templates/wp-admin/settings/form-contents.php:110
5883
  msgid "Choose your remote storage"
5884
+ msgstr "Válasszon távoli tárhelyet"
5885
 
5886
  #: src/templates/wp-admin/settings/form-contents.php:207
5887
  msgid "Manually decrypt a database backup file"
5999
  #: src/templates/wp-admin/settings/tab-addons.php:305,
6000
  #: src/templates/wp-admin/settings/tab-addons.php:308
6001
  msgid "No"
6002
+ msgstr "Nem"
6003
 
6004
  #: src/templates/wp-admin/advanced/site-info.php:56,
6005
  #: src/templates/wp-admin/advanced/site-info.php:59,
6034
  #: src/templates/wp-admin/settings/tab-addons.php:292,
6035
  #: src/templates/wp-admin/settings/tab-addons.php:311
6036
  msgid "Yes"
6037
+ msgstr "Igen"
6038
 
6039
  #: src/templates/wp-admin/advanced/site-info.php:43,
6040
  #: src/templates/wp-admin/advanced/site-info.php:44,
6183
 
6184
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:36
6185
  msgid "More tasks:"
6186
+ msgstr "Több feladat:"
6187
 
6188
  #: src/admin.php:2505
6189
  msgid "Download most recently modified log file"
6196
  #: src/addons/autobackup.php:325, src/addons/autobackup.php:420,
6197
  #: src/admin.php:2463, src/admin.php:2468
6198
  msgid "Last log message"
6199
+ msgstr "Utolsó log sor"
6200
 
6201
  #: src/addons/migrator.php:224, src/admin.php:693, src/admin.php:3504,
6202
  #: src/templates/wp-admin/settings/tab-status.php:30
6300
  #: src/admin.php:2171, src/admin.php:2213, src/admin.php:2776,
6301
  #: src/templates/wp-admin/settings/existing-backups-table.php:16
6302
  msgid "Actions"
6303
+ msgstr "Akciók"
6304
 
6305
  #: src/admin.php:2072
6306
  msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
languages/updraftplus-it_IT.mo CHANGED
Binary file
languages/updraftplus-it_IT.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2017-01-31 17:20:57+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -144,15 +144,15 @@ msgstr ""
144
  #: src/methods/updraftvault.php:71,
145
  #: src/templates/wp-admin/settings/tab-addons.php:277
146
  msgid "UpdraftVault"
147
- msgstr ""
148
 
149
  #: src/includes/class-wpadmin-commands.php:488
150
  msgid "archive"
151
- msgstr ""
152
 
153
  #: src/includes/class-wpadmin-commands.php:479
154
  msgid "Extra database"
155
- msgstr ""
156
 
157
  #: src/admin.php:3436
158
  msgid "Press here to download or browse"
@@ -160,7 +160,7 @@ msgstr ""
160
 
161
  #: src/admin.php:1070, src/admin.php:1080
162
  msgid "Error: invalid path"
163
- msgstr ""
164
 
165
  #: src/admin.php:928
166
  msgid "An error occurred when fetching storage module options: "
@@ -176,7 +176,7 @@ msgstr ""
176
 
177
  #: src/admin.php:754
178
  msgid "Search"
179
- msgstr ""
180
 
181
  #: src/admin.php:753
182
  msgid "Select a file to view information about it"
@@ -192,7 +192,7 @@ msgstr ""
192
 
193
  #: src/admin.php:669
194
  msgid "Browse contents"
195
- msgstr ""
196
 
197
  #: src/restorer.php:1692
198
  msgid "Skipped tables:"
@@ -220,7 +220,7 @@ msgstr ""
220
 
221
  #: src/admin.php:751
222
  msgid "The available memory on the server."
223
- msgstr ""
224
 
225
  #: src/admin.php:751
226
  msgid "Any settings in your .htaccess or web.config file that affects the maximum upload or post size."
@@ -232,7 +232,7 @@ msgstr ""
232
 
233
  #: src/admin.php:750
234
  msgid "HTTP code:"
235
- msgstr ""
236
 
237
  #: src/admin.php:646
238
  msgid "You have chosen to backup a database, but no tables have been selected"
@@ -270,11 +270,11 @@ msgstr ""
270
  #: src/templates/wp-admin/settings/tab-addons.php:37,
271
  #: src/templates/wp-admin/settings/tab-addons.php:272
272
  msgid "UpdraftPlus Gold"
273
- msgstr ""
274
 
275
  #: src/templates/wp-admin/settings/tab-addons.php:266
276
  msgid "UpdraftPlus Free"
277
- msgstr ""
278
 
279
  #: src/templates/wp-admin/settings/tab-addons.php:263
280
  msgid "Other products bundled with UpdraftPlus Premium or Gold"
@@ -313,7 +313,7 @@ msgstr ""
313
  #: src/templates/wp-admin/settings/tab-addons.php:183,
314
  #: src/templates/wp-admin/settings/tab-addons.php:184
315
  msgid "More database options"
316
- msgstr ""
317
 
318
  #: src/templates/wp-admin/settings/tab-addons.php:169
319
  msgid "Set exact times to create or delete backups."
@@ -382,7 +382,7 @@ msgstr ""
382
  #: src/templates/wp-admin/settings/tab-addons.php:320,
383
  #: src/templates/wp-admin/settings/tab-addons.php:323
384
  msgid "Upgrade now"
385
- msgstr ""
386
 
387
  #: src/templates/wp-admin/settings/tab-addons.php:44,
388
  #: src/templates/wp-admin/settings/tab-addons.php:317
@@ -395,13 +395,13 @@ msgstr ""
395
 
396
  #: src/templates/wp-admin/settings/tab-addons.php:30
397
  msgid "Free"
398
- msgstr ""
399
 
400
  #: src/templates/wp-admin/settings/tab-addons.php:30,
401
  #: src/templates/wp-admin/settings/tab-addons.php:34,
402
  #: src/templates/wp-admin/settings/tab-addons.php:38
403
  msgid "UpdraftPlus"
404
- msgstr ""
405
 
406
  #: src/templates/wp-admin/settings/form-contents.php:245
407
  msgid "Recommended: optimize your database with WP-Optimize."
@@ -510,29 +510,29 @@ msgstr ""
510
  #: src/templates/wp-admin/notices/report-plain.php:27,
511
  #: src/templates/wp-admin/notices/report.php:24
512
  msgid "Get Premium"
513
- msgstr ""
514
 
515
  #: src/templates/wp-admin/notices/bottom-notice.php:23,
516
  #: src/templates/wp-admin/notices/horizontal-notice.php:34,
517
  #: src/templates/wp-admin/notices/report-plain.php:25,
518
  #: src/templates/wp-admin/notices/report.php:22
519
  msgid "Review UpdraftPlus"
520
- msgstr ""
521
 
522
  #: src/templates/wp-admin/notices/bottom-notice.php:21,
523
  #: src/templates/wp-admin/notices/horizontal-notice.php:32,
524
  #: src/templates/wp-admin/notices/report-plain.php:23,
525
  #: src/templates/wp-admin/notices/report.php:20
526
  msgid "Get UpdraftCentral"
527
- msgstr ""
528
 
529
  #: src/templates/wp-admin/advanced/site-info.php:84
530
  msgid "Apache modules"
531
- msgstr ""
532
 
533
  #: src/includes/updraftplus-notices.php:255
534
  msgid "Summer sale - 20% off UpdraftPlus Premium until July 31st"
535
- msgstr ""
536
 
537
  #: src/includes/updraftplus-notices.php:242
538
  msgid "Spring sale - 20% off UpdraftPlus Premium until April 31st"
@@ -569,7 +569,7 @@ msgstr ""
569
 
570
  #: src/includes/updraftplus-notices.php:141
571
  msgid "UpdraftPlus Newsletter"
572
- msgstr ""
573
 
574
  #: src/includes/updraftplus-notices.php:112
575
  msgid "Control all your WordPress installations from one place using UpdraftCentral remote site management!"
@@ -577,7 +577,7 @@ msgstr ""
577
 
578
  #: src/includes/updraftplus-notices.php:111
579
  msgid "Do you use UpdraftPlus on multiple sites?"
580
- msgstr ""
581
 
582
  #: src/includes/updraftplus-notices.php:92,
583
  #: src/templates/wp-admin/settings/tab-addons.php:300
@@ -610,7 +610,7 @@ msgstr ""
610
 
611
  #: src/includes/updraftplus-notices.php:61
612
  msgid "advanced options"
613
- msgstr ""
614
 
615
  #: src/includes/updraftplus-notices.php:52
616
  msgid "Enhanced storage options for Dropbox, Google Drive and S3. Plus many more options."
@@ -635,7 +635,7 @@ msgstr ""
635
 
636
  #: src/includes/updraftplus-notices.php:31
637
  msgid "support"
638
- msgstr ""
639
 
640
  #: src/includes/updraftplus-notices.php:30,
641
  #: src/includes/updraftplus-notices.php:40,
@@ -644,7 +644,7 @@ msgstr ""
644
  #: src/includes/updraftplus-notices.php:70,
645
  #: src/includes/updraftplus-notices.php:80
646
  msgid "UpdraftPlus Premium:"
647
- msgstr ""
648
 
649
  #: src/templates/wp-admin/settings/tab-status.php:70
650
  msgid "Then, try out our \"Migrator\" add-on which can perform a direct site-to-site migration. After using it once, you'll have saved the purchase price compared to the time needed to copy a site by hand."
@@ -704,7 +704,7 @@ msgstr ""
704
 
705
  #: src/restorer.php:1658
706
  msgid "Backup of: %s"
707
- msgstr ""
708
 
709
  #: src/methods/googledrive.php:243
710
  msgid "The client has been deleted from the Google Drive API console. Please create a new Google Drive project and reconnect with UpdraftPlus."
@@ -748,7 +748,7 @@ msgstr ""
748
 
749
  #: src/admin.php:749
750
  msgid "remote files deleted"
751
- msgstr ""
752
 
753
  #: src/admin.php:747
754
  msgid "Complete"
@@ -1167,7 +1167,7 @@ msgstr ""
1167
 
1168
  #: src/admin.php:714
1169
  msgid "Please enter a valid URL"
1170
- msgstr ""
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
@@ -1749,11 +1749,11 @@ msgstr ""
1749
 
1750
  #: src/admin.php:701
1751
  msgid "Disconnecting..."
1752
- msgstr ""
1753
 
1754
  #: src/admin.php:699
1755
  msgid "Connecting..."
1756
- msgstr ""
1757
 
1758
  #: src/methods/updraftvault.php:406, src/methods/updraftvault.php:480
1759
  msgid "Refresh current status"
@@ -1779,7 +1779,7 @@ msgstr ""
1779
 
1780
  #: src/admin.php:700, src/methods/updraftvault.php:388
1781
  msgid "Disconnect"
1782
- msgstr ""
1783
 
1784
  #: src/methods/updraftvault.php:380
1785
  msgid "Quota:"
@@ -1870,7 +1870,7 @@ msgstr ""
1870
  #: src/addons/azure.php:374, src/addons/googlecloud.php:760,
1871
  #: src/methods/s3.php:1080
1872
  msgid "Delete failed:"
1873
- msgstr ""
1874
 
1875
  #: src/backup.php:3043
1876
  msgid "The zip engine returned the message: %s."
@@ -2103,7 +2103,7 @@ msgstr ""
2103
 
2104
  #: src/addons/migrator.php:2182, src/admin.php:705
2105
  msgid "Add site"
2106
- msgstr ""
2107
 
2108
  #: src/admin.php:704
2109
  msgid "Adding..."
@@ -2185,7 +2185,7 @@ msgstr ""
2185
 
2186
  #: src/methods/email.php:75
2187
  msgid "configure it here"
2188
- msgstr ""
2189
 
2190
  #: src/addons/onedrive.php:618, src/methods/updraftvault.php:618
2191
  msgid "To remove the block, please go here."
@@ -2362,7 +2362,7 @@ msgstr ""
2362
 
2363
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
2364
  msgid "Premium WooCommerce plugins"
2365
- msgstr ""
2366
 
2367
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
2368
  msgid "Free two-factor security plugin"
@@ -2378,7 +2378,7 @@ msgstr "Vai allo shop."
2378
 
2379
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11
2380
  msgid "Compare with the free version"
2381
- msgstr "Compara con la versione gratuita"
2382
 
2383
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11,
2384
  #: src/templates/wp-admin/settings/tab-addons.php:33,
@@ -2409,7 +2409,7 @@ msgstr ""
2409
 
2410
  #: src/admin.php:3012
2411
  msgid "No backup has been completed"
2412
- msgstr ""
2413
 
2414
  #: src/templates/wp-admin/settings/tab-addons.php:14
2415
  msgid "The first step is to de-install the free version."
@@ -2421,7 +2421,7 @@ msgstr ""
2421
 
2422
  #: src/templates/wp-admin/settings/header.php:21
2423
  msgid "Newsletter sign-up"
2424
- msgstr ""
2425
 
2426
  #: src/includes/updraftplus-notices.php:142
2427
  msgid "Follow this link to sign up for the UpdraftPlus newsletter."
@@ -2446,7 +2446,7 @@ msgstr ""
2446
 
2447
  #: src/templates/wp-admin/settings/tab-addons.php:16
2448
  msgid "Get UpdraftPlus Premium"
2449
- msgstr ""
2450
 
2451
  #: src/templates/wp-admin/settings/tab-addons.php:14
2452
  msgid "You are currently using the free version of UpdraftPlus from wordpress.org."
@@ -2795,7 +2795,7 @@ msgstr "È necessario consultare il fornitore di web hosting per sapere come imp
2795
 
2796
  #: src/templates/wp-admin/advanced/advanced-tools.php:6
2797
  msgid "Unless you have a problem, you can completely ignore everything here."
2798
- msgstr "A meno che non si verifichi un problem, è possibile ignorare completamente questo."
2799
 
2800
  #: src/admin.php:1935
2801
  msgid "This file could not be uploaded"
@@ -3345,7 +3345,7 @@ msgstr "WordPress ha un numero di operazioni pianificate (%d) che sono in ritard
3345
 
3346
  #: src/admin.php:676, src/class-updraftplus.php:2900
3347
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
3348
- msgstr "Se questo è un backup creato da un diverso plugin di backup, allora UpdraftPlus Premium potrebbe essere in grado di aiutarvi."
3349
 
3350
  #: src/admin.php:675
3351
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
@@ -4204,7 +4204,7 @@ msgstr "Il web server ha restituito un codice di errore (riprova, o controlla i
4204
 
4205
  #: src/admin.php:647
4206
  msgid "The restore operation has begun. Do not press stop or close your browser until it reports itself as having finished."
4207
- msgstr "L'operazione di ripristino è iniziata. Non premere stop e non chiudere il browser fino a quando non viene segnalato la fine."
4208
 
4209
  #: src/admin.php:644
4210
  msgid "If you exclude both the database and the files, then you have excluded everything!"
@@ -4506,7 +4506,7 @@ msgstr "Se è ancora possibile leggere queste parole dopo che il caricamento de
4506
 
4507
  #: src/admin.php:685
4508
  msgid "The file was uploaded."
4509
- msgstr "Il fil stato caricato."
4510
 
4511
  #: src/admin.php:684
4512
  msgid "Unknown server response status:"
@@ -4926,7 +4926,7 @@ msgstr "Risposta sconosciuta:"
4926
 
4927
  #: src/addons/reporting.php:451, src/admin.php:643
4928
  msgid "To send to more than one address, separate each address with a comma."
4929
- msgstr "Per inviare a più di un indirizzo, separate ognuno da una virgola."
4930
 
4931
  #: src/admin.php:672
4932
  msgid "PHP information"
@@ -5025,7 +5025,7 @@ msgstr "Errori riscontrati:"
5025
 
5026
  #: src/admin.php:641
5027
  msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
5028
- msgstr "Rescan in corsco (ricerca di backup uploadati manualmente nello spazio interno di archiviazione).."
5029
 
5030
  #: src/admin.php:654
5031
  msgid "Begun looking for this entity"
@@ -5211,7 +5211,7 @@ msgstr "Sovrascrittura wp-config.php"
5211
 
5212
  #: src/addons/morefiles.php:127, src/includes/class-wpadmin-commands.php:482
5213
  msgid "WordPress Core"
5214
- msgstr "Core WordPerss"
5215
 
5216
  #: src/methods/addon-base-v2.php:301, src/methods/stream-base.php:315
5217
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
@@ -6367,7 +6367,7 @@ msgstr "UpdraftPlus non supporta ufficialmente le versioni di WordPress prima di
6367
 
6368
  #: src/admin.php:949
6369
  msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
6370
- msgstr "Hai meno di %s di spazio libero su disco che UpdraftPlus può utilizzare per creare copie di backup. UpdraftPlus potrebbero ben esaurire lo spazio disponibile. Contattare il gestore del server (ad esempio, la vostra società di web hosting) per risolvere questo problema."
6371
 
6372
  #: src/admin.php:941, src/admin.php:945, src/admin.php:949, src/admin.php:953,
6373
  #: src/admin.php:957, src/admin.php:966, src/admin.php:3169,
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:31:53+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
144
  #: src/methods/updraftvault.php:71,
145
  #: src/templates/wp-admin/settings/tab-addons.php:277
146
  msgid "UpdraftVault"
147
+ msgstr "UpdraftVault"
148
 
149
  #: src/includes/class-wpadmin-commands.php:488
150
  msgid "archive"
151
+ msgstr "archivio"
152
 
153
  #: src/includes/class-wpadmin-commands.php:479
154
  msgid "Extra database"
155
+ msgstr "Extra database"
156
 
157
  #: src/admin.php:3436
158
  msgid "Press here to download or browse"
160
 
161
  #: src/admin.php:1070, src/admin.php:1080
162
  msgid "Error: invalid path"
163
+ msgstr "Errore: percorso non valido"
164
 
165
  #: src/admin.php:928
166
  msgid "An error occurred when fetching storage module options: "
176
 
177
  #: src/admin.php:754
178
  msgid "Search"
179
+ msgstr "Cerca"
180
 
181
  #: src/admin.php:753
182
  msgid "Select a file to view information about it"
192
 
193
  #: src/admin.php:669
194
  msgid "Browse contents"
195
+ msgstr "Sfoglia il contenuto"
196
 
197
  #: src/restorer.php:1692
198
  msgid "Skipped tables:"
220
 
221
  #: src/admin.php:751
222
  msgid "The available memory on the server."
223
+ msgstr "Memoria disponibile sul server."
224
 
225
  #: src/admin.php:751
226
  msgid "Any settings in your .htaccess or web.config file that affects the maximum upload or post size."
232
 
233
  #: src/admin.php:750
234
  msgid "HTTP code:"
235
+ msgstr "codice HTTP:"
236
 
237
  #: src/admin.php:646
238
  msgid "You have chosen to backup a database, but no tables have been selected"
270
  #: src/templates/wp-admin/settings/tab-addons.php:37,
271
  #: src/templates/wp-admin/settings/tab-addons.php:272
272
  msgid "UpdraftPlus Gold"
273
+ msgstr "UpdraftPlus Gold"
274
 
275
  #: src/templates/wp-admin/settings/tab-addons.php:266
276
  msgid "UpdraftPlus Free"
277
+ msgstr "UpdraftPlus Free"
278
 
279
  #: src/templates/wp-admin/settings/tab-addons.php:263
280
  msgid "Other products bundled with UpdraftPlus Premium or Gold"
313
  #: src/templates/wp-admin/settings/tab-addons.php:183,
314
  #: src/templates/wp-admin/settings/tab-addons.php:184
315
  msgid "More database options"
316
+ msgstr "Ulteriori opzioni per il database"
317
 
318
  #: src/templates/wp-admin/settings/tab-addons.php:169
319
  msgid "Set exact times to create or delete backups."
382
  #: src/templates/wp-admin/settings/tab-addons.php:320,
383
  #: src/templates/wp-admin/settings/tab-addons.php:323
384
  msgid "Upgrade now"
385
+ msgstr "Fai l'upgrade"
386
 
387
  #: src/templates/wp-admin/settings/tab-addons.php:44,
388
  #: src/templates/wp-admin/settings/tab-addons.php:317
395
 
396
  #: src/templates/wp-admin/settings/tab-addons.php:30
397
  msgid "Free"
398
+ msgstr "Gratuito"
399
 
400
  #: src/templates/wp-admin/settings/tab-addons.php:30,
401
  #: src/templates/wp-admin/settings/tab-addons.php:34,
402
  #: src/templates/wp-admin/settings/tab-addons.php:38
403
  msgid "UpdraftPlus"
404
+ msgstr "UpdraftPlus"
405
 
406
  #: src/templates/wp-admin/settings/form-contents.php:245
407
  msgid "Recommended: optimize your database with WP-Optimize."
510
  #: src/templates/wp-admin/notices/report-plain.php:27,
511
  #: src/templates/wp-admin/notices/report.php:24
512
  msgid "Get Premium"
513
+ msgstr "Ottieni Premium"
514
 
515
  #: src/templates/wp-admin/notices/bottom-notice.php:23,
516
  #: src/templates/wp-admin/notices/horizontal-notice.php:34,
517
  #: src/templates/wp-admin/notices/report-plain.php:25,
518
  #: src/templates/wp-admin/notices/report.php:22
519
  msgid "Review UpdraftPlus"
520
+ msgstr "Recensisci UpdraftPlus"
521
 
522
  #: src/templates/wp-admin/notices/bottom-notice.php:21,
523
  #: src/templates/wp-admin/notices/horizontal-notice.php:32,
524
  #: src/templates/wp-admin/notices/report-plain.php:23,
525
  #: src/templates/wp-admin/notices/report.php:20
526
  msgid "Get UpdraftCentral"
527
+ msgstr "Ottieni UpdraftCentral"
528
 
529
  #: src/templates/wp-admin/advanced/site-info.php:84
530
  msgid "Apache modules"
531
+ msgstr "moduli Apache"
532
 
533
  #: src/includes/updraftplus-notices.php:255
534
  msgid "Summer sale - 20% off UpdraftPlus Premium until July 31st"
535
+ msgstr "Offerta estiva: -20% di sconto su UpdraftPlus Premium fino al 31 luglio"
536
 
537
  #: src/includes/updraftplus-notices.php:242
538
  msgid "Spring sale - 20% off UpdraftPlus Premium until April 31st"
569
 
570
  #: src/includes/updraftplus-notices.php:141
571
  msgid "UpdraftPlus Newsletter"
572
+ msgstr "UpdraftPlus Newsletter"
573
 
574
  #: src/includes/updraftplus-notices.php:112
575
  msgid "Control all your WordPress installations from one place using UpdraftCentral remote site management!"
577
 
578
  #: src/includes/updraftplus-notices.php:111
579
  msgid "Do you use UpdraftPlus on multiple sites?"
580
+ msgstr "Usi UpdraftPlus con più siti?"
581
 
582
  #: src/includes/updraftplus-notices.php:92,
583
  #: src/templates/wp-admin/settings/tab-addons.php:300
610
 
611
  #: src/includes/updraftplus-notices.php:61
612
  msgid "advanced options"
613
+ msgstr "opzioni avanzate"
614
 
615
  #: src/includes/updraftplus-notices.php:52
616
  msgid "Enhanced storage options for Dropbox, Google Drive and S3. Plus many more options."
635
 
636
  #: src/includes/updraftplus-notices.php:31
637
  msgid "support"
638
+ msgstr "supporto"
639
 
640
  #: src/includes/updraftplus-notices.php:30,
641
  #: src/includes/updraftplus-notices.php:40,
644
  #: src/includes/updraftplus-notices.php:70,
645
  #: src/includes/updraftplus-notices.php:80
646
  msgid "UpdraftPlus Premium:"
647
+ msgstr "UpdraftPlus Premium:"
648
 
649
  #: src/templates/wp-admin/settings/tab-status.php:70
650
  msgid "Then, try out our \"Migrator\" add-on which can perform a direct site-to-site migration. After using it once, you'll have saved the purchase price compared to the time needed to copy a site by hand."
704
 
705
  #: src/restorer.php:1658
706
  msgid "Backup of: %s"
707
+ msgstr "Backup al: %s"
708
 
709
  #: src/methods/googledrive.php:243
710
  msgid "The client has been deleted from the Google Drive API console. Please create a new Google Drive project and reconnect with UpdraftPlus."
748
 
749
  #: src/admin.php:749
750
  msgid "remote files deleted"
751
+ msgstr "file remoti cancellati"
752
 
753
  #: src/admin.php:747
754
  msgid "Complete"
1167
 
1168
  #: src/admin.php:714
1169
  msgid "Please enter a valid URL"
1170
+ msgstr "Inserisci una URL valida"
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1749
 
1750
  #: src/admin.php:701
1751
  msgid "Disconnecting..."
1752
+ msgstr "Disconnessione..."
1753
 
1754
  #: src/admin.php:699
1755
  msgid "Connecting..."
1756
+ msgstr "Connessione..."
1757
 
1758
  #: src/methods/updraftvault.php:406, src/methods/updraftvault.php:480
1759
  msgid "Refresh current status"
1779
 
1780
  #: src/admin.php:700, src/methods/updraftvault.php:388
1781
  msgid "Disconnect"
1782
+ msgstr "Disconnesso"
1783
 
1784
  #: src/methods/updraftvault.php:380
1785
  msgid "Quota:"
1870
  #: src/addons/azure.php:374, src/addons/googlecloud.php:760,
1871
  #: src/methods/s3.php:1080
1872
  msgid "Delete failed:"
1873
+ msgstr "Cancellazione fallita:"
1874
 
1875
  #: src/backup.php:3043
1876
  msgid "The zip engine returned the message: %s."
2103
 
2104
  #: src/addons/migrator.php:2182, src/admin.php:705
2105
  msgid "Add site"
2106
+ msgstr "Aggiungi sito"
2107
 
2108
  #: src/admin.php:704
2109
  msgid "Adding..."
2185
 
2186
  #: src/methods/email.php:75
2187
  msgid "configure it here"
2188
+ msgstr "configuralo qui"
2189
 
2190
  #: src/addons/onedrive.php:618, src/methods/updraftvault.php:618
2191
  msgid "To remove the block, please go here."
2362
 
2363
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
2364
  msgid "Premium WooCommerce plugins"
2365
+ msgstr "Premium WooCommerce plugin"
2366
 
2367
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
2368
  msgid "Free two-factor security plugin"
2378
 
2379
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11
2380
  msgid "Compare with the free version"
2381
+ msgstr "Confronta con la versione gratuita"
2382
 
2383
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11,
2384
  #: src/templates/wp-admin/settings/tab-addons.php:33,
2409
 
2410
  #: src/admin.php:3012
2411
  msgid "No backup has been completed"
2412
+ msgstr "Nessun backup è stato completato"
2413
 
2414
  #: src/templates/wp-admin/settings/tab-addons.php:14
2415
  msgid "The first step is to de-install the free version."
2421
 
2422
  #: src/templates/wp-admin/settings/header.php:21
2423
  msgid "Newsletter sign-up"
2424
+ msgstr "Iscrizione alla newsletter"
2425
 
2426
  #: src/includes/updraftplus-notices.php:142
2427
  msgid "Follow this link to sign up for the UpdraftPlus newsletter."
2446
 
2447
  #: src/templates/wp-admin/settings/tab-addons.php:16
2448
  msgid "Get UpdraftPlus Premium"
2449
+ msgstr "Ottieni UpdraftPlus Premium"
2450
 
2451
  #: src/templates/wp-admin/settings/tab-addons.php:14
2452
  msgid "You are currently using the free version of UpdraftPlus from wordpress.org."
2795
 
2796
  #: src/templates/wp-admin/advanced/advanced-tools.php:6
2797
  msgid "Unless you have a problem, you can completely ignore everything here."
2798
+ msgstr "A meno che non si verifichi un problema, è possibile ignorare completamente questi dati."
2799
 
2800
  #: src/admin.php:1935
2801
  msgid "This file could not be uploaded"
3345
 
3346
  #: src/admin.php:676, src/class-updraftplus.php:2900
3347
  msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
3348
+ msgstr "Se questo è un backup creato da un diverso plugin di backup, UpdraftPlus Premium potrebbe essere in grado di aiutarvi."
3349
 
3350
  #: src/admin.php:675
3351
  msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
4204
 
4205
  #: src/admin.php:647
4206
  msgid "The restore operation has begun. Do not press stop or close your browser until it reports itself as having finished."
4207
+ msgstr "L'operazione di ripristino è iniziata. Non premere stop e non chiudere il browser fino a quando non viene segnalata la fine."
4208
 
4209
  #: src/admin.php:644
4210
  msgid "If you exclude both the database and the files, then you have excluded everything!"
4506
 
4507
  #: src/admin.php:685
4508
  msgid "The file was uploaded."
4509
+ msgstr "Il file è stato caricato."
4510
 
4511
  #: src/admin.php:684
4512
  msgid "Unknown server response status:"
4926
 
4927
  #: src/addons/reporting.php:451, src/admin.php:643
4928
  msgid "To send to more than one address, separate each address with a comma."
4929
+ msgstr "Per inviare a più di un indirizzo, separateli con una virgola."
4930
 
4931
  #: src/admin.php:672
4932
  msgid "PHP information"
5025
 
5026
  #: src/admin.php:641
5027
  msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
5028
+ msgstr "Rescan in corso (ricerca di backup caricati manualmente nello spazio interno di archiviazione)..."
5029
 
5030
  #: src/admin.php:654
5031
  msgid "Begun looking for this entity"
5211
 
5212
  #: src/addons/morefiles.php:127, src/includes/class-wpadmin-commands.php:482
5213
  msgid "WordPress Core"
5214
+ msgstr "WordPress Core"
5215
 
5216
  #: src/methods/addon-base-v2.php:301, src/methods/stream-base.php:315
5217
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
6367
 
6368
  #: src/admin.php:949
6369
  msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
6370
+ msgstr "Hai meno di %s di spazio libero su disco che UpdraftPlus può utilizzare per creare copie di backup. UpdraftPlus potrebbe esaurire lo spazio disponibile. Contatta il gestore del server (ad esempio, la tua società di web hosting) per risolvere questo problema."
6371
 
6372
  #: src/admin.php:941, src/admin.php:945, src/admin.php:949, src/admin.php:953,
6373
  #: src/admin.php:957, src/admin.php:966, src/admin.php:3169,
languages/updraftplus-ja.mo CHANGED
Binary file
languages/updraftplus-ja.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2017-04-04 10:51:15+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -51,23 +51,23 @@ msgstr ""
51
 
52
  #: src/templates/wp-admin/settings/tab-addons.php:151
53
  msgid "Network and multisite"
54
- msgstr ""
55
 
56
  #: src/templates/wp-admin/settings/tab-addons.php:87
57
  msgid "Migrator"
58
- msgstr ""
59
 
60
  #: src/templates/wp-admin/settings/tab-addons.php:71
61
  msgid "Additional storage"
62
- msgstr ""
63
 
64
  #: src/templates/wp-admin/settings/tab-addons.php:55
65
  msgid "Remote storage"
66
- msgstr ""
67
 
68
  #: src/templates/wp-admin/settings/form-contents.php:221
69
  msgid "Select Files"
70
- msgstr ""
71
 
72
  #: src/methods/updraftvault.php:346
73
  msgid "__Password"
@@ -87,7 +87,7 @@ msgstr ""
87
 
88
  #: src/includes/updraftplus-notices.php:193
89
  msgid "Find out more about our revolutionary new WordPress plugin."
90
- msgstr ""
91
 
92
  #: src/includes/updraftplus-notices.php:193
93
  msgid "Instant and secure logon with a wave of your phone."
@@ -131,11 +131,11 @@ msgstr ""
131
 
132
  #: src/methods/cloudfiles.php:520
133
  msgid "Cloud Files"
134
- msgstr ""
135
 
136
  #: src/admin.php:4207
137
  msgid "Your settings failed to save. Please refresh the settings page and try again"
138
- msgstr ""
139
 
140
  #: src/admin.php:4166
141
  msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
@@ -148,27 +148,27 @@ msgstr "UpdraftVault"
148
 
149
  #: src/includes/class-wpadmin-commands.php:488
150
  msgid "archive"
151
- msgstr ""
152
 
153
  #: src/includes/class-wpadmin-commands.php:479
154
  msgid "Extra database"
155
- msgstr ""
156
 
157
  #: src/admin.php:3436
158
  msgid "Press here to download or browse"
159
- msgstr ""
160
 
161
  #: src/admin.php:1070, src/admin.php:1080
162
  msgid "Error: invalid path"
163
- msgstr ""
164
 
165
  #: src/admin.php:928
166
  msgid "An error occurred when fetching storage module options: "
167
- msgstr ""
168
 
169
  #: src/admin.php:756
170
  msgid "Loading log file"
171
- msgstr ""
172
 
173
  #: src/admin.php:755
174
  msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
@@ -176,15 +176,15 @@ msgstr ""
176
 
177
  #: src/admin.php:754
178
  msgid "Search"
179
- msgstr ""
180
 
181
  #: src/admin.php:753
182
  msgid "Select a file to view information about it"
183
- msgstr ""
184
 
185
  #: src/admin.php:752
186
  msgid "Browsing zip file"
187
- msgstr ""
188
 
189
  #: src/admin.php:721
190
  msgid "With UpdraftPlus Premium, you can directly download individual files from here."
@@ -192,7 +192,7 @@ msgstr ""
192
 
193
  #: src/admin.php:669
194
  msgid "Browse contents"
195
- msgstr ""
196
 
197
  #: src/restorer.php:1692
198
  msgid "Skipped tables:"
@@ -208,11 +208,11 @@ msgstr ""
208
 
209
  #: src/admin.php:2422
210
  msgid "All WordPress tables will be backed up."
211
- msgstr ""
212
 
213
  #: src/admin.php:751
214
  msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
215
- msgstr ""
216
 
217
  #: src/admin.php:751
218
  msgid "That you are attempting to upload a zip file previously created by UpdraftPlus."
@@ -220,7 +220,7 @@ msgstr ""
220
 
221
  #: src/admin.php:751
222
  msgid "The available memory on the server."
223
- msgstr ""
224
 
225
  #: src/admin.php:751
226
  msgid "Any settings in your .htaccess or web.config file that affects the maximum upload or post size."
@@ -228,7 +228,7 @@ msgstr ""
228
 
229
  #: src/admin.php:751
230
  msgid "The file failed to upload. Please check the following:"
231
- msgstr ""
232
 
233
  #: src/admin.php:750
234
  msgid "HTTP code:"
@@ -236,7 +236,7 @@ msgstr "HTTP コード:"
236
 
237
  #: src/admin.php:646
238
  msgid "You have chosen to backup a database, but no tables have been selected"
239
- msgstr ""
240
 
241
  #: src/addons/moredatabase.php:585
242
  msgid "tables"
@@ -286,7 +286,7 @@ msgstr ""
286
 
287
  #: src/templates/wp-admin/settings/tab-addons.php:233
288
  msgid "Some backup plugins can’t restore a backup, so Premium allows you to restore backups from other plugins."
289
- msgstr ""
290
 
291
  #: src/templates/wp-admin/settings/tab-addons.php:231,
292
  #: src/templates/wp-admin/settings/tab-addons.php:232
@@ -317,7 +317,7 @@ msgstr "その他のデータベース設定"
317
 
318
  #: src/templates/wp-admin/settings/tab-addons.php:169
319
  msgid "Set exact times to create or delete backups."
320
- msgstr ""
321
 
322
  #: src/templates/wp-admin/settings/tab-addons.php:167,
323
  #: src/templates/wp-admin/settings/tab-addons.php:168
@@ -334,7 +334,7 @@ msgstr "ネットワーク / マルチサイト"
334
 
335
  #: src/templates/wp-admin/settings/tab-addons.php:137
336
  msgid "Backup WordPress core and non-WP files and databases."
337
- msgstr ""
338
 
339
  #: src/templates/wp-admin/settings/tab-addons.php:121
340
  msgid "Automatically backs up your website before any updates to plugins, themes and WordPress core."
@@ -351,7 +351,7 @@ msgstr ""
351
 
352
  #: src/templates/wp-admin/settings/tab-addons.php:104
353
  msgid "Fast, personal support"
354
- msgstr ""
355
 
356
  #: src/templates/wp-admin/settings/tab-addons.php:89
357
  msgid "UpdraftPlus Migrator clones your WordPress site and moves it to a new domain directly and simply."
@@ -395,7 +395,7 @@ msgstr "ゴールド"
395
 
396
  #: src/templates/wp-admin/settings/tab-addons.php:30
397
  msgid "Free"
398
- msgstr ""
399
 
400
  #: src/templates/wp-admin/settings/tab-addons.php:30,
401
  #: src/templates/wp-admin/settings/tab-addons.php:34,
@@ -405,11 +405,11 @@ msgstr "UpdraftPlus"
405
 
406
  #: src/templates/wp-admin/settings/form-contents.php:245
407
  msgid "Recommended: optimize your database with WP-Optimize."
408
- msgstr ""
409
 
410
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:15
411
  msgid "When you've backed up your database, we recommend you install our WP-Optimize plugin to streamline it for better website performance."
412
- msgstr ""
413
 
414
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:15
415
  msgid "WP-Optimize"
@@ -424,7 +424,7 @@ msgstr "もっと読み込む"
424
 
425
  #: src/includes/updraftplus-notices.php:182
426
  msgid "After you've backed up your database, we recommend you install our WP-Optimize plugin to streamline it for better website performance."
427
- msgstr ""
428
 
429
  #: src/addons/morefiles.php:309
430
  msgid "Please choose a file or directory"
@@ -524,7 +524,7 @@ msgstr "UpdraftPlus のレビュー"
524
  #: src/templates/wp-admin/notices/report-plain.php:23,
525
  #: src/templates/wp-admin/notices/report.php:20
526
  msgid "Get UpdraftCentral"
527
- msgstr ""
528
 
529
  #: src/templates/wp-admin/advanced/site-info.php:84
530
  msgid "Apache modules"
@@ -577,7 +577,7 @@ msgstr ""
577
 
578
  #: src/includes/updraftplus-notices.php:111
579
  msgid "Do you use UpdraftPlus on multiple sites?"
580
- msgstr ""
581
 
582
  #: src/includes/updraftplus-notices.php:92,
583
  #: src/templates/wp-admin/settings/tab-addons.php:300
@@ -594,7 +594,7 @@ msgstr ""
594
 
595
  #: src/includes/updraftplus-notices.php:81
596
  msgid "easily migrate or clone your site in minutes"
597
- msgstr ""
598
 
599
  #: src/includes/updraftplus-notices.php:72
600
  msgid "Add SFTP to send your data securely, lock settings and encrypt your database backups for extra security."
@@ -748,7 +748,7 @@ msgstr ""
748
 
749
  #: src/admin.php:749
750
  msgid "remote files deleted"
751
- msgstr ""
752
 
753
  #: src/admin.php:747
754
  msgid "Complete"
@@ -756,7 +756,7 @@ msgstr "完了"
756
 
757
  #: src/admin.php:746
758
  msgid "Do you want to carry out the import?"
759
- msgstr ""
760
 
761
  #: src/admin.php:745
762
  msgid "Which was exported on:"
@@ -813,7 +813,7 @@ msgstr "%s アドオンが見つかりません"
813
 
814
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:62
815
  msgid "or to restore manually"
816
- msgstr ""
817
 
818
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:62
819
  msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time"
@@ -1117,7 +1117,7 @@ msgstr "UpdraftCentral 接続"
1117
 
1118
  #: src/backup.php:867, src/class-updraftplus.php:3094
1119
  msgid "The backup was aborted by the user"
1120
- msgstr ""
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
@@ -1681,7 +1681,7 @@ msgstr "付加的な保持ルールを追加しました"
1681
 
1682
  #: src/restorer.php:2191
1683
  msgid "This database needs to be deployed on MySQL version %s or later."
1684
- msgstr "このデータベースは、それ以降のMySQLのバージョン%sまたは以上のバージョンにする必要があります。"
1685
 
1686
  #: src/restorer.php:2191
1687
  msgid "This problem is caused by trying to restore a database on a very old MySQL version that is incompatible with the source database."
@@ -1783,7 +1783,7 @@ msgstr "接続解除"
1783
 
1784
  #: src/methods/updraftvault.php:380
1785
  msgid "Quota:"
1786
- msgstr "ディスク容量:"
1787
 
1788
  #: src/methods/updraftvault.php:378
1789
  msgid "Vault owner"
@@ -2149,7 +2149,7 @@ msgstr ""
2149
 
2150
  #: src/admin.php:696, src/admin.php:722, src/admin.php:723
2151
  msgid "You have made changes to your settings, and not saved."
2152
- msgstr "設定を変更しましたが、保存されませんでした。"
2153
 
2154
  #: src/addons/onedrive.php:983
2155
  msgid "N.B. %s is not case-sensitive."
@@ -2380,11 +2380,11 @@ msgstr "他の高品質なプラグイン"
2380
 
2381
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11
2382
  msgid "Go to the shop."
2383
- msgstr "オンラインショップへ"
2384
 
2385
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11
2386
  msgid "Compare with the free version"
2387
- msgstr "無料版との比較"
2388
 
2389
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11,
2390
  #: src/templates/wp-admin/settings/tab-addons.php:33,
@@ -2402,7 +2402,7 @@ msgstr "無料メールマガジン"
2402
 
2403
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:4
2404
  msgid "Thank you for backing up with UpdraftPlus!"
2405
- msgstr "バックアップに UpdraftPlus をご利用いただき、ありがとうございます!"
2406
 
2407
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
2408
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:21
@@ -2465,7 +2465,7 @@ msgstr "バックアップ(関連)のプラグイン、テーマ、更新前
2465
  #: src/methods/s3.php:166, src/methods/s3.php:167, src/methods/s3.php:168,
2466
  #: src/methods/s3.php:176, src/methods/s3.php:177, src/methods/s3.php:178
2467
  msgid "%s Error: Failed to initialise"
2468
- msgstr "%s エラー:初期化に失敗しました"
2469
 
2470
  #: src/templates/wp-admin/settings/form-contents.php:220
2471
  msgctxt "Uploader: Drop db.gz.crypt files here to upload them for decryption - or - Select Files"
@@ -2474,7 +2474,7 @@ msgstr "または"
2474
 
2475
  #: src/admin.php:690
2476
  msgid "You did not select any components to restore. Please select at least one, and then try again."
2477
- msgstr "修復するコンポーネントが選択されていません。少なくとも1つ選択して、もう一度実行してください。"
2478
 
2479
  #: src/addons/sftp.php:442
2480
  msgctxt "Do not translate BEGIN RSA PRIVATE KEY. PCKS1, XML, PEM and PuTTY are also technical acronyms which should not be translated."
@@ -2593,7 +2593,7 @@ msgstr "パスワードのメモをしたことを確認してください!"
2593
  #: src/addons/lockadmin.php:141,
2594
  #: src/templates/wp-admin/advanced/lock-admin.php:7
2595
  msgid "Lock access to the UpdraftPlus settings page"
2596
- msgstr "UpdraftPlus の設定ページへのアクセスをロックする"
2597
 
2598
  #: src/addons/lockadmin.php:117
2599
  msgid "The admin password has been changed."
@@ -2777,7 +2777,7 @@ msgstr "UpdraftPlus ソーシャルメディアをぜひチェックしてみて
2777
 
2778
  #: src/admin.php:3592
2779
  msgid "Why am I seeing this?"
2780
- msgstr "なぜ私はこれを見ていますか?"
2781
 
2782
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:44
2783
  msgid "The location of this directory is set in the expert settings, in the Settings tab."
@@ -3038,7 +3038,7 @@ msgstr "親フォルダへのアクセスに失敗しました"
3038
  #: src/addons/googlecloud.php:615, src/addons/onedrive.php:762,
3039
  #: src/addons/onedrive.php:773, src/methods/googledrive.php:403
3040
  msgid "However, subsequent access attempts failed:"
3041
- msgstr "しかし、その後のアクセスの試みは失敗しました:"
3042
 
3043
  #: src/admin.php:3375
3044
  msgid "External database"
@@ -3050,7 +3050,7 @@ msgstr "これはまた、すべてのプラグインからのデバッグ出力
3050
 
3051
  #: src/templates/wp-admin/settings/form-contents.php:263
3052
  msgid "Back up more databases"
3053
- msgstr "複数のデータベースをバックアップします"
3054
 
3055
  #: src/templates/wp-admin/settings/form-contents.php:222
3056
  msgid "First, enter the decryption key"
@@ -3165,7 +3165,7 @@ msgstr "あなたは(下の[変更を保存]をクリックして)、設定
3165
 
3166
  #: src/addons/onedrive.php:989, src/methods/dropbox.php:528
3167
  msgid "(You appear to be already authenticated)."
3168
- msgstr "(すでに認証されて表示されます)。"
3169
 
3170
  #: src/methods/dropbox.php:523, src/methods/dropbox.php:532,
3171
  #: src/methods/dropbox.php:538
@@ -3325,11 +3325,11 @@ msgstr "%s:によりバックアップが作成されました。"
3325
 
3326
  #: src/admin.php:3373
3327
  msgid "Database (created by %s)"
3328
- msgstr "データベース(%sで作成されました)"
3329
 
3330
  #: src/admin.php:3367, src/admin.php:3406
3331
  msgid "unknown source"
3332
- msgstr "未知のソース"
3333
 
3334
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:45
3335
  msgid "Rescan remote storage"
@@ -3378,7 +3378,7 @@ msgstr "UpdraftPlusのこのバージョンは、このタイプの不明なバ
3378
 
3379
  #: src/methods/dropbox.php:313
3380
  msgid "%s returned an unexpected HTTP response: %s"
3381
- msgstr "%sが予期しないHTTP応答が返されました:%s"
3382
 
3383
  #: src/addons/sftp.php:963
3384
  msgid "The UpdraftPlus module for this file access method (%s) does not support listing files"
@@ -3446,7 +3446,7 @@ msgstr "暗号化された FTP (暗黙的な暗号化)"
3446
 
3447
  #: src/methods/ftp.php:304
3448
  msgid "regular non-encrypted FTP"
3449
- msgstr "通常の非暗号化FTP"
3450
 
3451
  #: src/restorer.php:1665
3452
  msgid "Backup created by:"
@@ -3524,7 +3524,7 @@ msgstr "読み込みのためにデータベースファイルを開くことが
3524
 
3525
  #: src/backup.php:1438
3526
  msgid "No database tables found"
3527
- msgstr "データベースのテーブルが見つかりません。"
3528
 
3529
  #: src/backup.php:1436
3530
  msgid "please wait for the rescheduled attempt"
@@ -3727,7 +3727,7 @@ msgstr "rackspacecloud.comで作成したアカウントは、米国アカウン
3727
 
3728
  #: src/methods/cloudfiles-new.php:116
3729
  msgid "US or UK-based Rackspace Account"
3730
- msgstr "米国や英国のRackspaceのアカウント"
3731
 
3732
  #: src/addons/cloudfiles-enhanced.php:258, src/methods/cloudfiles-new.php:116
3733
  msgid "Accounts created at rackspacecloud.com are US accounts; accounts created at rackspace.co.uk are UK accounts."
@@ -3770,7 +3770,7 @@ msgstr "移行後/復元後の前にあなたのWordPressのインストール
3770
 
3771
  #: src/restorer.php:1732
3772
  msgid "Split line to avoid exceeding maximum packet size"
3773
- msgstr "分割ラインは、最大パケットサイズを超えないようにします"
3774
 
3775
  #: src/restorer.php:1612
3776
  msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure (%s)"
@@ -3786,7 +3786,7 @@ msgstr "所定の場所に新しいファイルを移動できませんでした
3786
 
3787
  #: src/restorer.php:149
3788
  msgid "Could not move old files out of the way."
3789
- msgstr "邪魔にならないように古いファイルを移動できませんでした。"
3790
 
3791
  #: src/restorer.php:145
3792
  msgid "Moving old data out of the way..."
@@ -4282,7 +4282,7 @@ msgstr "電子メールを介してバックアップを送信しようとした
4282
 
4283
  #: src/methods/email.php:47
4284
  msgid "Backup is of: %s."
4285
- msgstr "バックアップがあります。:%s"
4286
 
4287
  #: src/admin.php:737
4288
  msgid "%s settings test result:"
@@ -4648,11 +4648,11 @@ msgstr "S3 (互換)"
4648
 
4649
  #: src/admin.php:3758
4650
  msgid "File is not locally present - needs retrieving from remote storage"
4651
- msgstr "ファイルがローカルに存在しない - リモートストレージから取得する必要"
4652
 
4653
  #: src/admin.php:3745
4654
  msgid "Looking for %s archive: file name: %s"
4655
- msgstr "%sのアーカイブを探して:ファイル名:%s"
4656
 
4657
  #: src/admin.php:3706
4658
  msgid "Final checks"
@@ -4672,7 +4672,7 @@ msgstr "あなたの wp-content ディレクトリサーバーパス: %s"
4672
 
4673
  #: src/admin.php:674
4674
  msgid "Raw backup history"
4675
- msgstr "RAWバックアップ履歴"
4676
 
4677
  #: src/templates/wp-admin/advanced/site-info.php:97
4678
  msgid "Show raw backup and file list"
@@ -4755,7 +4755,7 @@ msgstr "削除中に %s のアクセスエラーとなりました(詳細はロ
4755
 
4756
  #: src/methods/dropbox.php:397
4757
  msgid "You do not appear to be authenticated with %s (whilst deleting)"
4758
- msgstr "(削除しながら)あなたは%sを認証されるように表示されません。"
4759
 
4760
  #: src/methods/dropbox.php:127
4761
  msgid "Dropbox error: %s (see log file for more)"
@@ -4895,7 +4895,7 @@ msgstr "%s で発生したエラー:"
4895
 
4896
  #: src/restorer.php:1403
4897
  msgid "Please supply the requested information, and then continue."
4898
- msgstr "要求された情報を提供し、その後継続してください。"
4899
 
4900
  #: src/class-updraftplus.php:4690, src/restorer.php:1706
4901
  msgid "Site information:"
@@ -5221,7 +5221,7 @@ msgstr "wp-config.php を上書き"
5221
 
5222
  #: src/addons/morefiles.php:127, src/includes/class-wpadmin-commands.php:482
5223
  msgid "WordPress Core"
5224
- msgstr "WordPress Core"
5225
 
5226
  #: src/methods/addon-base-v2.php:301, src/methods/stream-base.php:315
5227
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
@@ -5287,7 +5287,7 @@ msgstr "あなたは暗号化したい場合(例えば重要なビジネスデ
5287
 
5288
  #: src/addons/onedrive.php:756, src/methods/dropbox.php:656
5289
  msgid "Your %s account name: %s"
5290
- msgstr "あなたの%sのアカウント名:%s"
5291
 
5292
  #: src/methods/dropbox.php:646, src/methods/dropbox.php:673
5293
  msgid "though part of the returned information was not as expected - your mileage may vary"
@@ -5320,7 +5320,7 @@ msgstr "エラー: %s のファイルアップロードに失敗しました (
5320
 
5321
  #: src/methods/dropbox.php:105, src/methods/dropbox.php:122
5322
  msgid "You do not appear to be authenticated with Dropbox"
5323
- msgstr "あなたはDropboxで認証されません。"
5324
 
5325
  #: src/methods/s3.php:1068
5326
  msgid "The communication with %s was not encrypted."
@@ -5427,7 +5427,7 @@ msgstr "WordPress バックアップ"
5427
 
5428
  #: src/methods/cloudfiles.php:582, src/methods/openstack-base.php:495
5429
  msgid "We accessed the container, and were able to create files within it."
5430
- msgstr "私たちは、コンテナにアクセスし、その中にファイルを作成することができました。"
5431
 
5432
  #: src/methods/cloudfiles.php:578
5433
  msgid "Cloud Files error - we accessed the container, but failed to create a file within it"
@@ -5435,7 +5435,7 @@ msgstr "Cloud Files エラー - コンテナにアクセスしましたが、そ
5435
 
5436
  #: src/methods/cloudfiles.php:551, src/methods/openstack-base.php:437
5437
  msgid "Failure: No container details were given."
5438
- msgstr "失敗:コンテナの詳細は与えられませんでした。"
5439
 
5440
  #: src/addons/moredatabase.php:245, src/addons/sftp.php:424,
5441
  #: src/addons/webdav.php:103, src/methods/cloudfiles-new.php:178,
@@ -5601,7 +5601,7 @@ msgstr "まだGoogleからのアクセストークンを取得していない-
5601
  #: src/addons/googlecloud.php:635, src/addons/onedrive.php:794,
5602
  #: src/methods/googledrive.php:423
5603
  msgid "you have authenticated your %s account."
5604
- msgstr "あなたは%sのアカウントを認証しました。"
5605
 
5606
  #: src/addons/googlecloud.php:635, src/addons/googlecloud.php:756,
5607
  #: src/addons/onedrive.php:794, src/addons/sftp.php:550,
@@ -5669,7 +5669,7 @@ msgstr "復元されます:"
5669
  #: src/class-updraftplus.php:4661, src/restorer.php:1688,
5670
  #: src/restorer.php:1777, src/restorer.php:1803
5671
  msgid "Old table prefix:"
5672
- msgstr "古いテーブル prefix:"
5673
 
5674
  #: src/addons/reporting.php:70, src/addons/reporting.php:169,
5675
  #: src/backup.php:960, src/class-updraftplus.php:4616
@@ -5698,7 +5698,7 @@ msgstr "バックアップからWP-config.phpを戻す:WP-CONFIG-backup.phpと
5698
 
5699
  #: src/restorer.php:384
5700
  msgid "Failed to write out the decrypted database to the filesystem"
5701
- msgstr "ファイルシステムへの復号化されたデータベースを書き込みに失敗しました"
5702
 
5703
  #: src/restorer.php:368
5704
  msgid "Failed to create a temporary directory"
@@ -5734,7 +5734,7 @@ msgstr "バックアップ解凍中..."
5734
 
5735
  #: src/restorer.php:141
5736
  msgid "Copying this entity failed."
5737
- msgstr "このエンティティのコピーは、失敗した"
5738
 
5739
  #: src/restorer.php:140
5740
  msgid "Backup file not available."
@@ -5758,7 +5758,7 @@ msgstr "バックアップレコードには、このファイルの適切なサ
5758
 
5759
  #: src/admin.php:3773
5760
  msgid "Archive is expected to be size:"
5761
- msgstr "アーカイブのサイズであることが期待されます。"
5762
 
5763
  #: src/admin.php:3657
5764
  msgid "If making a request for support, please include this information:"
@@ -5766,11 +5766,11 @@ msgstr "サポートが必要な場合、この情報をお知らせください
5766
 
5767
  #: src/admin.php:3656
5768
  msgid "ABORT: Could not find the information on which entities to restore."
5769
- msgstr "失敗:復元するためにどのエンティティに関する情報を見つけることができませんでした。"
5770
 
5771
  #: src/admin.php:3610
5772
  msgid "UpdraftPlus Restoration: Progress"
5773
- msgstr "UpdraftPlus復元:進捗状況"
5774
 
5775
  #: src/admin.php:3562
5776
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
@@ -5794,7 +5794,7 @@ msgstr "WebサーバーのPHP/Curlのインストールは、HTTPSアクセス
5794
 
5795
  #: src/admin.php:3176
5796
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
5797
- msgstr ""
5798
 
5799
  #: src/methods/cloudfiles-new.php:107, src/methods/cloudfiles.php:468,
5800
  #: src/methods/openstack-base.php:541, src/methods/s3.php:825
@@ -5811,7 +5811,7 @@ msgstr "このオプションを選択すると、すべてで、可能な場合
5811
 
5812
  #: src/templates/wp-admin/settings/form-contents.php:377
5813
  msgid "Disable SSL entirely where possible"
5814
- msgstr "SSLを無効に完全に可能な場合"
5815
 
5816
  #: src/templates/wp-admin/settings/form-contents.php:373
5817
  msgid "Note that not all cloud backup methods are necessarily using SSL authentication."
@@ -6175,7 +6175,7 @@ msgstr "UpdraftPlus が使用しているウェブサーバの容量"
6175
 
6176
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:33
6177
  msgid "This is a count of the contents of your Updraft directory"
6178
- msgstr "これは、あなたのUpdraftディレクトリの内容のカウントです"
6179
 
6180
  #: src/addons/google-enhanced.php:84, src/methods/googledrive.php:167,
6181
  #: src/methods/googledrive.php:169, src/methods/googledrive.php:423,
@@ -6244,7 +6244,7 @@ msgstr "次のバックアップスケジュール"
6244
 
6245
  #: src/templates/wp-admin/settings/tab-status.php:46
6246
  msgid "All the times shown in this section are using WordPress's configured time zone, which you can set in Settings -> General"
6247
- msgstr "表示されている時間はWordPressで設定されたタイムゾーンを使用しています。あなたは「設定」よりタイムゾーンを変更することができます。"
6248
 
6249
  #: src/admin.php:275
6250
  msgid "At the same time as the files backup"
@@ -6417,7 +6417,7 @@ msgstr "UpdraftPlus に wordpress.orgで肯定的なレビューをして助け
6417
 
6418
  #: src/includes/updraftplus-notices.php:101
6419
  msgid "Like UpdraftPlus and can spare one minute?"
6420
- msgstr "1分お時間をいただけますか?"
6421
 
6422
  #: src/addons/azure.php:217, src/class-updraftplus.php:4340,
6423
  #: src/methods/googledrive.php:1001, src/methods/s3.php:316
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:36:35+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
51
 
52
  #: src/templates/wp-admin/settings/tab-addons.php:151
53
  msgid "Network and multisite"
54
+ msgstr "ネットワークとマルチサイト"
55
 
56
  #: src/templates/wp-admin/settings/tab-addons.php:87
57
  msgid "Migrator"
58
+ msgstr "移行ツール"
59
 
60
  #: src/templates/wp-admin/settings/tab-addons.php:71
61
  msgid "Additional storage"
62
+ msgstr "追加容量"
63
 
64
  #: src/templates/wp-admin/settings/tab-addons.php:55
65
  msgid "Remote storage"
66
+ msgstr "リモートストレージ"
67
 
68
  #: src/templates/wp-admin/settings/form-contents.php:221
69
  msgid "Select Files"
70
+ msgstr "ファイルを選択"
71
 
72
  #: src/methods/updraftvault.php:346
73
  msgid "__Password"
87
 
88
  #: src/includes/updraftplus-notices.php:193
89
  msgid "Find out more about our revolutionary new WordPress plugin."
90
+ msgstr "私達のさらに革命的なプラグインを見る。"
91
 
92
  #: src/includes/updraftplus-notices.php:193
93
  msgid "Instant and secure logon with a wave of your phone."
131
 
132
  #: src/methods/cloudfiles.php:520
133
  msgid "Cloud Files"
134
+ msgstr "Cloud Files"
135
 
136
  #: src/admin.php:4207
137
  msgid "Your settings failed to save. Please refresh the settings page and try again"
138
+ msgstr "設定の保存に失敗しました。設定画面を更新し、もう一回挑戦してください"
139
 
140
  #: src/admin.php:4166
141
  msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
148
 
149
  #: src/includes/class-wpadmin-commands.php:488
150
  msgid "archive"
151
+ msgstr "アーカイブ"
152
 
153
  #: src/includes/class-wpadmin-commands.php:479
154
  msgid "Extra database"
155
+ msgstr "他のデータベース"
156
 
157
  #: src/admin.php:3436
158
  msgid "Press here to download or browse"
159
+ msgstr "ダウンロードまたは閲覧するにはここをクリック"
160
 
161
  #: src/admin.php:1070, src/admin.php:1080
162
  msgid "Error: invalid path"
163
+ msgstr "エラー: 無効なパス"
164
 
165
  #: src/admin.php:928
166
  msgid "An error occurred when fetching storage module options: "
167
+ msgstr "ストレージモジュールのオプションを取得中にエラーが発生しました: "
168
 
169
  #: src/admin.php:756
170
  msgid "Loading log file"
171
+ msgstr "ログファイルの読み込み中"
172
 
173
  #: src/admin.php:755
174
  msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
176
 
177
  #: src/admin.php:754
178
  msgid "Search"
179
+ msgstr "検索"
180
 
181
  #: src/admin.php:753
182
  msgid "Select a file to view information about it"
183
+ msgstr "情報をご覧になるには、ファイルを選択してください。"
184
 
185
  #: src/admin.php:752
186
  msgid "Browsing zip file"
187
+ msgstr "zip ファイルの参照"
188
 
189
  #: src/admin.php:721
190
  msgid "With UpdraftPlus Premium, you can directly download individual files from here."
192
 
193
  #: src/admin.php:669
194
  msgid "Browse contents"
195
+ msgstr "コンテンツを参照"
196
 
197
  #: src/restorer.php:1692
198
  msgid "Skipped tables:"
208
 
209
  #: src/admin.php:2422
210
  msgid "All WordPress tables will be backed up."
211
+ msgstr "すべての WordPress テーブルがバックアップされます。"
212
 
213
  #: src/admin.php:751
214
  msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
215
+ msgstr "更に詳しい情報は、ブラウザーの JavaScript コンソールや、サーバーにある、PHP のエラーログの中に見つかるかもしれません。"
216
 
217
  #: src/admin.php:751
218
  msgid "That you are attempting to upload a zip file previously created by UpdraftPlus."
220
 
221
  #: src/admin.php:751
222
  msgid "The available memory on the server."
223
+ msgstr "サーバー上の使用可能なメモリー。"
224
 
225
  #: src/admin.php:751
226
  msgid "Any settings in your .htaccess or web.config file that affects the maximum upload or post size."
228
 
229
  #: src/admin.php:751
230
  msgid "The file failed to upload. Please check the following:"
231
+ msgstr "ファイルのアップロードに失敗しました。次の項目を確認してください:"
232
 
233
  #: src/admin.php:750
234
  msgid "HTTP code:"
236
 
237
  #: src/admin.php:646
238
  msgid "You have chosen to backup a database, but no tables have been selected"
239
+ msgstr "データベースをバックアップすることを選択しましたが、テーブルは選択されていません"
240
 
241
  #: src/addons/moredatabase.php:585
242
  msgid "tables"
286
 
287
  #: src/templates/wp-admin/settings/tab-addons.php:233
288
  msgid "Some backup plugins can’t restore a backup, so Premium allows you to restore backups from other plugins."
289
+ msgstr "一部のバックアッププラグインでは、バックアップを復元できないことがありますが、プレミアムプラグインは他のバックアッププラグインのバックアップから復元することができます。"
290
 
291
  #: src/templates/wp-admin/settings/tab-addons.php:231,
292
  #: src/templates/wp-admin/settings/tab-addons.php:232
317
 
318
  #: src/templates/wp-admin/settings/tab-addons.php:169
319
  msgid "Set exact times to create or delete backups."
320
+ msgstr "バックアップを作成または削除する正確な時刻を設定します。"
321
 
322
  #: src/templates/wp-admin/settings/tab-addons.php:167,
323
  #: src/templates/wp-admin/settings/tab-addons.php:168
334
 
335
  #: src/templates/wp-admin/settings/tab-addons.php:137
336
  msgid "Backup WordPress core and non-WP files and databases."
337
+ msgstr "WordPress のコアと、WordPress 以外のファイル、データベースをバックアップ"
338
 
339
  #: src/templates/wp-admin/settings/tab-addons.php:121
340
  msgid "Automatically backs up your website before any updates to plugins, themes and WordPress core."
351
 
352
  #: src/templates/wp-admin/settings/tab-addons.php:104
353
  msgid "Fast, personal support"
354
+ msgstr "迅速な、パーソナル・サポート"
355
 
356
  #: src/templates/wp-admin/settings/tab-addons.php:89
357
  msgid "UpdraftPlus Migrator clones your WordPress site and moves it to a new domain directly and simply."
395
 
396
  #: src/templates/wp-admin/settings/tab-addons.php:30
397
  msgid "Free"
398
+ msgstr "無料"
399
 
400
  #: src/templates/wp-admin/settings/tab-addons.php:30,
401
  #: src/templates/wp-admin/settings/tab-addons.php:34,
405
 
406
  #: src/templates/wp-admin/settings/form-contents.php:245
407
  msgid "Recommended: optimize your database with WP-Optimize."
408
+ msgstr "推奨: WP-Optimize でデータベースを最適化してください。"
409
 
410
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:15
411
  msgid "When you've backed up your database, we recommend you install our WP-Optimize plugin to streamline it for better website performance."
412
+ msgstr "データベースをバックアップしましたら、ウェブサイトのパフォーマンスを向上させるために WP-Optimize プラグインをインストールすることを推奨します。"
413
 
414
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:15
415
  msgid "WP-Optimize"
424
 
425
  #: src/includes/updraftplus-notices.php:182
426
  msgid "After you've backed up your database, we recommend you install our WP-Optimize plugin to streamline it for better website performance."
427
+ msgstr "データベースをバックアップした後は、ウェブサイトのパフォーマンスを向上させるために WP-Optimize プラグインをインストールすることを推奨します。"
428
 
429
  #: src/addons/morefiles.php:309
430
  msgid "Please choose a file or directory"
524
  #: src/templates/wp-admin/notices/report-plain.php:23,
525
  #: src/templates/wp-admin/notices/report.php:20
526
  msgid "Get UpdraftCentral"
527
+ msgstr "UpdraftCentral をゲット"
528
 
529
  #: src/templates/wp-admin/advanced/site-info.php:84
530
  msgid "Apache modules"
577
 
578
  #: src/includes/updraftplus-notices.php:111
579
  msgid "Do you use UpdraftPlus on multiple sites?"
580
+ msgstr "複数のサイトで UpdraftPlus を使用していますか ?"
581
 
582
  #: src/includes/updraftplus-notices.php:92,
583
  #: src/templates/wp-admin/settings/tab-addons.php:300
594
 
595
  #: src/includes/updraftplus-notices.php:81
596
  msgid "easily migrate or clone your site in minutes"
597
+ msgstr "数分で簡単にサイトを移行または複製します"
598
 
599
  #: src/includes/updraftplus-notices.php:72
600
  msgid "Add SFTP to send your data securely, lock settings and encrypt your database backups for extra security."
748
 
749
  #: src/admin.php:749
750
  msgid "remote files deleted"
751
+ msgstr "リモートファイルを削除しました"
752
 
753
  #: src/admin.php:747
754
  msgid "Complete"
756
 
757
  #: src/admin.php:746
758
  msgid "Do you want to carry out the import?"
759
+ msgstr "インポートを実行しますか ?"
760
 
761
  #: src/admin.php:745
762
  msgid "Which was exported on:"
813
 
814
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:62
815
  msgid "or to restore manually"
816
+ msgstr "または手動で復元します"
817
 
818
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:62
819
  msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time"
1117
 
1118
  #: src/backup.php:867, src/class-updraftplus.php:3094
1119
  msgid "The backup was aborted by the user"
1120
+ msgstr "バックアップはユーザーによって中止されました"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1681
 
1682
  #: src/restorer.php:2191
1683
  msgid "This database needs to be deployed on MySQL version %s or later."
1684
+ msgstr "このデータベースは、MySQLバージョン %s 以降にデプロイする必要があります。"
1685
 
1686
  #: src/restorer.php:2191
1687
  msgid "This problem is caused by trying to restore a database on a very old MySQL version that is incompatible with the source database."
1783
 
1784
  #: src/methods/updraftvault.php:380
1785
  msgid "Quota:"
1786
+ msgstr "割り当て: "
1787
 
1788
  #: src/methods/updraftvault.php:378
1789
  msgid "Vault owner"
2149
 
2150
  #: src/admin.php:696, src/admin.php:722, src/admin.php:723
2151
  msgid "You have made changes to your settings, and not saved."
2152
+ msgstr "設定を変更していますが、保存していません。"
2153
 
2154
  #: src/addons/onedrive.php:983
2155
  msgid "N.B. %s is not case-sensitive."
2380
 
2381
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11
2382
  msgid "Go to the shop."
2383
+ msgstr "ショップに進む。"
2384
 
2385
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11
2386
  msgid "Compare with the free version"
2387
+ msgstr "無料版と比較する"
2388
 
2389
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:11,
2390
  #: src/templates/wp-admin/settings/tab-addons.php:33,
2402
 
2403
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:4
2404
  msgid "Thank you for backing up with UpdraftPlus!"
2405
+ msgstr "UpdraftPlus でバックアップしていただきありがとうございます。"
2406
 
2407
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
2408
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:21
2465
  #: src/methods/s3.php:166, src/methods/s3.php:167, src/methods/s3.php:168,
2466
  #: src/methods/s3.php:176, src/methods/s3.php:177, src/methods/s3.php:178
2467
  msgid "%s Error: Failed to initialise"
2468
+ msgstr "%s エラー: 初期化に失敗しました"
2469
 
2470
  #: src/templates/wp-admin/settings/form-contents.php:220
2471
  msgctxt "Uploader: Drop db.gz.crypt files here to upload them for decryption - or - Select Files"
2474
 
2475
  #: src/admin.php:690
2476
  msgid "You did not select any components to restore. Please select at least one, and then try again."
2477
+ msgstr "復元するコンポーネントを選択していません。 少なくとも1つを選択してから、もう一度お試しください。"
2478
 
2479
  #: src/addons/sftp.php:442
2480
  msgctxt "Do not translate BEGIN RSA PRIVATE KEY. PCKS1, XML, PEM and PuTTY are also technical acronyms which should not be translated."
2593
  #: src/addons/lockadmin.php:141,
2594
  #: src/templates/wp-admin/advanced/lock-admin.php:7
2595
  msgid "Lock access to the UpdraftPlus settings page"
2596
+ msgstr "UpdraftPlus 設定ページへのアクセスをロックします"
2597
 
2598
  #: src/addons/lockadmin.php:117
2599
  msgid "The admin password has been changed."
2777
 
2778
  #: src/admin.php:3592
2779
  msgid "Why am I seeing this?"
2780
+ msgstr "なぜ私はこれを見ていますか ?"
2781
 
2782
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:44
2783
  msgid "The location of this directory is set in the expert settings, in the Settings tab."
3038
  #: src/addons/googlecloud.php:615, src/addons/onedrive.php:762,
3039
  #: src/addons/onedrive.php:773, src/methods/googledrive.php:403
3040
  msgid "However, subsequent access attempts failed:"
3041
+ msgstr "しかし、その後のアクセス試行は失敗しました。"
3042
 
3043
  #: src/admin.php:3375
3044
  msgid "External database"
3050
 
3051
  #: src/templates/wp-admin/settings/form-contents.php:263
3052
  msgid "Back up more databases"
3053
+ msgstr "より多くのデータベースをバックアップします。"
3054
 
3055
  #: src/templates/wp-admin/settings/form-contents.php:222
3056
  msgid "First, enter the decryption key"
3165
 
3166
  #: src/addons/onedrive.php:989, src/methods/dropbox.php:528
3167
  msgid "(You appear to be already authenticated)."
3168
+ msgstr "(あなたはすでに認証されているようです)。"
3169
 
3170
  #: src/methods/dropbox.php:523, src/methods/dropbox.php:532,
3171
  #: src/methods/dropbox.php:538
3325
 
3326
  #: src/admin.php:3373
3327
  msgid "Database (created by %s)"
3328
+ msgstr "データベース (作成: %s)"
3329
 
3330
  #: src/admin.php:3367, src/admin.php:3406
3331
  msgid "unknown source"
3332
+ msgstr "不明なソース"
3333
 
3334
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:45
3335
  msgid "Rescan remote storage"
3378
 
3379
  #: src/methods/dropbox.php:313
3380
  msgid "%s returned an unexpected HTTP response: %s"
3381
+ msgstr "%s は予期しない HTTP 応答を返しました: %s"
3382
 
3383
  #: src/addons/sftp.php:963
3384
  msgid "The UpdraftPlus module for this file access method (%s) does not support listing files"
3446
 
3447
  #: src/methods/ftp.php:304
3448
  msgid "regular non-encrypted FTP"
3449
+ msgstr "通常の暗号化されていない FTP"
3450
 
3451
  #: src/restorer.php:1665
3452
  msgid "Backup created by:"
3524
 
3525
  #: src/backup.php:1438
3526
  msgid "No database tables found"
3527
+ msgstr "データベーステーブルが見つかりません"
3528
 
3529
  #: src/backup.php:1436
3530
  msgid "please wait for the rescheduled attempt"
3727
 
3728
  #: src/methods/cloudfiles-new.php:116
3729
  msgid "US or UK-based Rackspace Account"
3730
+ msgstr "米国または英国拠点の Rackspace アカウント"
3731
 
3732
  #: src/addons/cloudfiles-enhanced.php:258, src/methods/cloudfiles-new.php:116
3733
  msgid "Accounts created at rackspacecloud.com are US accounts; accounts created at rackspace.co.uk are UK accounts."
3770
 
3771
  #: src/restorer.php:1732
3772
  msgid "Split line to avoid exceeding maximum packet size"
3773
+ msgstr "最大パケットサイズを超えないように回線を分割する"
3774
 
3775
  #: src/restorer.php:1612
3776
  msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure (%s)"
3786
 
3787
  #: src/restorer.php:149
3788
  msgid "Could not move old files out of the way."
3789
+ msgstr "古いファイルを途中で移動できませんでした。"
3790
 
3791
  #: src/restorer.php:145
3792
  msgid "Moving old data out of the way..."
4282
 
4283
  #: src/methods/email.php:47
4284
  msgid "Backup is of: %s."
4285
+ msgstr "バックアップ: %s"
4286
 
4287
  #: src/admin.php:737
4288
  msgid "%s settings test result:"
4648
 
4649
  #: src/admin.php:3758
4650
  msgid "File is not locally present - needs retrieving from remote storage"
4651
+ msgstr "ファイルがローカルに存在しません - リモートストレージから取得する必要があります"
4652
 
4653
  #: src/admin.php:3745
4654
  msgid "Looking for %s archive: file name: %s"
4655
+ msgstr "%s アーカイブを探しています: ファイル名: %s"
4656
 
4657
  #: src/admin.php:3706
4658
  msgid "Final checks"
4672
 
4673
  #: src/admin.php:674
4674
  msgid "Raw backup history"
4675
+ msgstr "未処理のバックアップ履歴"
4676
 
4677
  #: src/templates/wp-admin/advanced/site-info.php:97
4678
  msgid "Show raw backup and file list"
4755
 
4756
  #: src/methods/dropbox.php:397
4757
  msgid "You do not appear to be authenticated with %s (whilst deleting)"
4758
+ msgstr "%sで認証されていないようです (削除中)"
4759
 
4760
  #: src/methods/dropbox.php:127
4761
  msgid "Dropbox error: %s (see log file for more)"
4895
 
4896
  #: src/restorer.php:1403
4897
  msgid "Please supply the requested information, and then continue."
4898
+ msgstr "要求された情報を入力してから、続行してください。"
4899
 
4900
  #: src/class-updraftplus.php:4690, src/restorer.php:1706
4901
  msgid "Site information:"
5221
 
5222
  #: src/addons/morefiles.php:127, src/includes/class-wpadmin-commands.php:482
5223
  msgid "WordPress Core"
5224
+ msgstr "WordPress コア"
5225
 
5226
  #: src/methods/addon-base-v2.php:301, src/methods/stream-base.php:315
5227
  msgid "Failed: We were not able to place a file in that directory - please check your credentials."
5287
 
5288
  #: src/addons/onedrive.php:756, src/methods/dropbox.php:656
5289
  msgid "Your %s account name: %s"
5290
+ msgstr "あなたの %s アカウント名: %s"
5291
 
5292
  #: src/methods/dropbox.php:646, src/methods/dropbox.php:673
5293
  msgid "though part of the returned information was not as expected - your mileage may vary"
5320
 
5321
  #: src/methods/dropbox.php:105, src/methods/dropbox.php:122
5322
  msgid "You do not appear to be authenticated with Dropbox"
5323
+ msgstr "Dropbox で認証されていないようです"
5324
 
5325
  #: src/methods/s3.php:1068
5326
  msgid "The communication with %s was not encrypted."
5427
 
5428
  #: src/methods/cloudfiles.php:582, src/methods/openstack-base.php:495
5429
  msgid "We accessed the container, and were able to create files within it."
5430
+ msgstr "コンテナにアクセスし、その中にファイルを作成することができました。"
5431
 
5432
  #: src/methods/cloudfiles.php:578
5433
  msgid "Cloud Files error - we accessed the container, but failed to create a file within it"
5435
 
5436
  #: src/methods/cloudfiles.php:551, src/methods/openstack-base.php:437
5437
  msgid "Failure: No container details were given."
5438
+ msgstr "失敗: コンテナの詳細が指定されていません。"
5439
 
5440
  #: src/addons/moredatabase.php:245, src/addons/sftp.php:424,
5441
  #: src/addons/webdav.php:103, src/methods/cloudfiles-new.php:178,
5601
  #: src/addons/googlecloud.php:635, src/addons/onedrive.php:794,
5602
  #: src/methods/googledrive.php:423
5603
  msgid "you have authenticated your %s account."
5604
+ msgstr "%sアカウントを認証しました。"
5605
 
5606
  #: src/addons/googlecloud.php:635, src/addons/googlecloud.php:756,
5607
  #: src/addons/onedrive.php:794, src/addons/sftp.php:550,
5669
  #: src/class-updraftplus.php:4661, src/restorer.php:1688,
5670
  #: src/restorer.php:1777, src/restorer.php:1803
5671
  msgid "Old table prefix:"
5672
+ msgstr "古いテーブルの接頭辞: "
5673
 
5674
  #: src/addons/reporting.php:70, src/addons/reporting.php:169,
5675
  #: src/backup.php:960, src/class-updraftplus.php:4616
5698
 
5699
  #: src/restorer.php:384
5700
  msgid "Failed to write out the decrypted database to the filesystem"
5701
+ msgstr "解読されたデータベースをファイルシステムに書き出すことができませんでした"
5702
 
5703
  #: src/restorer.php:368
5704
  msgid "Failed to create a temporary directory"
5734
 
5735
  #: src/restorer.php:141
5736
  msgid "Copying this entity failed."
5737
+ msgstr "このエンティティをコピーできませんでした。"
5738
 
5739
  #: src/restorer.php:140
5740
  msgid "Backup file not available."
5758
 
5759
  #: src/admin.php:3773
5760
  msgid "Archive is expected to be size:"
5761
+ msgstr "アーカイブの予想サイズ: "
5762
 
5763
  #: src/admin.php:3657
5764
  msgid "If making a request for support, please include this information:"
5766
 
5767
  #: src/admin.php:3656
5768
  msgid "ABORT: Could not find the information on which entities to restore."
5769
+ msgstr "ABORT: 復元するエンティティに関する情報を見つけることができませんでした。"
5770
 
5771
  #: src/admin.php:3610
5772
  msgid "UpdraftPlus Restoration: Progress"
5773
+ msgstr "UpdraftPlus の復元: 進行状況"
5774
 
5775
  #: src/admin.php:3562
5776
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
5794
 
5795
  #: src/admin.php:3176
5796
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
5797
+ msgstr "Web サーバーの PHP / Curl インストールは、HTTPS アクセスをサポートしていません。 %s の通信は暗号化されません。暗号化のための能力を得るためには、 Curl/SSL をインストールするよう、ホスティング業者に依頼してください。(アドオン経由で)"
5798
 
5799
  #: src/methods/cloudfiles-new.php:107, src/methods/cloudfiles.php:468,
5800
  #: src/methods/openstack-base.php:541, src/methods/s3.php:825
5811
 
5812
  #: src/templates/wp-admin/settings/form-contents.php:377
5813
  msgid "Disable SSL entirely where possible"
5814
+ msgstr "可能な限り SSL を完全に無効にする"
5815
 
5816
  #: src/templates/wp-admin/settings/form-contents.php:373
5817
  msgid "Note that not all cloud backup methods are necessarily using SSL authentication."
6175
 
6176
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:33
6177
  msgid "This is a count of the contents of your Updraft directory"
6178
+ msgstr "これは Updraft ディレクトリ内のコンテンツ数です"
6179
 
6180
  #: src/addons/google-enhanced.php:84, src/methods/googledrive.php:167,
6181
  #: src/methods/googledrive.php:169, src/methods/googledrive.php:423,
6244
 
6245
  #: src/templates/wp-admin/settings/tab-status.php:46
6246
  msgid "All the times shown in this section are using WordPress's configured time zone, which you can set in Settings -> General"
6247
+ msgstr "表示されている時間は WordPress で設定されたタイムゾーンを使用しています。あなたは「設定」よりタイムゾーンを変更することができます。"
6248
 
6249
  #: src/admin.php:275
6250
  msgid "At the same time as the files backup"
6417
 
6418
  #: src/includes/updraftplus-notices.php:101
6419
  msgid "Like UpdraftPlus and can spare one minute?"
6420
+ msgstr "1分お時間をいただけますか ?"
6421
 
6422
  #: src/addons/azure.php:217, src/class-updraftplus.php:4340,
6423
  #: src/methods/googledrive.php:1001, src/methods/s3.php:316
languages/updraftplus-lt_LT.mo CHANGED
Binary file
languages/updraftplus-lt_LT.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2015-07-20 13:54:21+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -963,7 +963,7 @@ msgstr ""
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
- msgstr ""
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
@@ -1041,7 +1041,7 @@ msgstr ""
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
- msgstr ""
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
@@ -1065,7 +1065,7 @@ msgstr ""
1065
 
1066
  #: src/central/bootstrap.php:442
1067
  msgid "Details"
1068
- msgstr ""
1069
 
1070
  #: src/central/bootstrap.php:441
1071
  msgid "Key description"
@@ -1121,7 +1121,7 @@ msgstr ""
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
- msgstr ""
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
@@ -1129,7 +1129,7 @@ msgstr ""
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
- msgstr ""
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
@@ -1171,7 +1171,7 @@ msgstr ""
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
- msgstr ""
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
@@ -1212,7 +1212,7 @@ msgstr ""
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
- msgstr ""
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
@@ -1325,7 +1325,7 @@ msgstr ""
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
- msgstr ""
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
@@ -1378,7 +1378,7 @@ msgstr ""
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
- msgstr ""
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
@@ -4898,7 +4898,7 @@ msgstr ""
4898
  #: src/addons/migrator.php:333, src/admin.php:2229,
4899
  #: src/class-updraftplus.php:4683, src/restorer.php:2033
4900
  msgid "Warning:"
4901
- msgstr ""
4902
 
4903
  #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675,
4904
  #: src/restorer.php:154
@@ -4915,7 +4915,7 @@ msgstr ""
4915
 
4916
  #: src/admin.php:692
4917
  msgid "Close"
4918
- msgstr ""
4919
 
4920
  #: src/addons/autobackup.php:330, src/addons/autobackup.php:422,
4921
  #: src/admin.php:648, src/methods/remotesend.php:66,
@@ -5789,7 +5789,7 @@ msgstr ""
5789
 
5790
  #: src/templates/wp-admin/settings/form-contents.php:401
5791
  msgid "Save Changes"
5792
- msgstr ""
5793
 
5794
  #: src/templates/wp-admin/settings/form-contents.php:378
5795
  msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
@@ -5873,7 +5873,7 @@ msgstr ""
5873
 
5874
  #: src/addons/morefiles.php:297, src/admin.php:687
5875
  msgid "Cancel"
5876
- msgstr ""
5877
 
5878
  #: src/addons/reporting.php:233, src/admin.php:3325
5879
  msgid "None"
@@ -5894,7 +5894,7 @@ msgstr ""
5894
  #: src/templates/wp-admin/settings/form-contents.php:285,
5895
  #: src/udaddons/options.php:130
5896
  msgid "Email"
5897
- msgstr ""
5898
 
5899
  #: src/templates/wp-admin/settings/form-contents.php:176
5900
  msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
@@ -6385,7 +6385,7 @@ msgstr ""
6385
  #: src/admin.php:530, src/admin.php:882,
6386
  #: src/templates/wp-admin/settings/tab-bar.php:7
6387
  msgid "Settings"
6388
- msgstr ""
6389
 
6390
  #: src/backup.php:232
6391
  msgid "Could not create %s zip. Consult the log file for more information."
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:42:31+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
+ msgstr "Prisijungti"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
+ msgstr "Description"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
1065
 
1066
  #: src/central/bootstrap.php:442
1067
  msgid "Details"
1068
+ msgstr "Paaiškinimai"
1069
 
1070
  #: src/central/bootstrap.php:441
1071
  msgid "Key description"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
+ msgstr "Ваши настройки были сохранены."
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
+ msgstr "sustabdyti"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
+ msgstr "Išsaugoma..."
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
+ msgstr "Atmesti"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
+ msgstr "Nustatymai"
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
+ msgstr "Įskiepiai"
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
4898
  #: src/addons/migrator.php:333, src/admin.php:2229,
4899
  #: src/class-updraftplus.php:4683, src/restorer.php:2033
4900
  msgid "Warning:"
4901
+ msgstr "Įspėjimas:"
4902
 
4903
  #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675,
4904
  #: src/restorer.php:154
4915
 
4916
  #: src/admin.php:692
4917
  msgid "Close"
4918
+ msgstr "Uždaryti"
4919
 
4920
  #: src/addons/autobackup.php:330, src/addons/autobackup.php:422,
4921
  #: src/admin.php:648, src/methods/remotesend.php:66,
5789
 
5790
  #: src/templates/wp-admin/settings/form-contents.php:401
5791
  msgid "Save Changes"
5792
+ msgstr "Įrašyti pakeitimus"
5793
 
5794
  #: src/templates/wp-admin/settings/form-contents.php:378
5795
  msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
5873
 
5874
  #: src/addons/morefiles.php:297, src/admin.php:687
5875
  msgid "Cancel"
5876
+ msgstr "Atšaukti"
5877
 
5878
  #: src/addons/reporting.php:233, src/admin.php:3325
5879
  msgid "None"
5894
  #: src/templates/wp-admin/settings/form-contents.php:285,
5895
  #: src/udaddons/options.php:130
5896
  msgid "Email"
5897
+ msgstr "El.paštas"
5898
 
5899
  #: src/templates/wp-admin/settings/form-contents.php:176
5900
  msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
6385
  #: src/admin.php:530, src/admin.php:882,
6386
  #: src/templates/wp-admin/settings/tab-bar.php:7
6387
  msgid "Settings"
6388
+ msgstr "Nustatymai"
6389
 
6390
  #: src/backup.php:232
6391
  msgid "Could not create %s zip. Consult the log file for more information."
languages/updraftplus-nl_NL.mo CHANGED
Binary file
languages/updraftplus-nl_NL.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2017-04-04 10:53:14+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -131,7 +131,7 @@ msgstr ""
131
 
132
  #: src/methods/cloudfiles.php:520
133
  msgid "Cloud Files"
134
- msgstr ""
135
 
136
  #: src/admin.php:4207
137
  msgid "Your settings failed to save. Please refresh the settings page and try again"
@@ -5780,7 +5780,7 @@ msgstr "De PHP/Curl-installatie van de webserver staat https-toegang niet toe. D
5780
 
5781
  #: src/admin.php:3176
5782
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
5783
- msgstr ""
5784
 
5785
  #: src/methods/cloudfiles-new.php:107, src/methods/cloudfiles.php:468,
5786
  #: src/methods/openstack-base.php:541, src/methods/s3.php:825
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:38:15+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
131
 
132
  #: src/methods/cloudfiles.php:520
133
  msgid "Cloud Files"
134
+ msgstr "Cloud-bestanden"
135
 
136
  #: src/admin.php:4207
137
  msgid "Your settings failed to save. Please refresh the settings page and try again"
5780
 
5781
  #: src/admin.php:3176
5782
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
5783
+ msgstr "De PHP/Curl-installatie van de webserver ondersteunt https-toegang niet. Communicatie met %s zal niet versleuteld worden. Vraag de webhost Curl/SSL te installeren om versleutelde toegang te kunnen gebruiken (m.b.v. een add-on)."
5784
 
5785
  #: src/methods/cloudfiles-new.php:107, src/methods/cloudfiles.php:468,
5786
  #: src/methods/openstack-base.php:541, src/methods/s3.php:825
languages/updraftplus-pl_PL.mo CHANGED
Binary file
languages/updraftplus-pl_PL.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2017-06-25 18:56:09+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -1212,7 +1212,7 @@ msgstr "Będzie zaimportowane jako nowa strona."
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
- msgstr "Odwołaj"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
@@ -2898,7 +2898,7 @@ msgstr "Wyślij utworzony raport przez UpdraftPlus (edycja darmowa) wraz z najno
2898
 
2899
  #: src/methods/googledrive.php:1090
2900
  msgid "N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your project; you must create a new one from your Google API console for each site."
2901
- msgstr "A przy okazji, jeżeli instalujesz UpdraftPlus na kilku stronach WordPress, nie możesz używać tego samego projektu; powinieneś utworzyć nowy projekt ze swojej konsoli Google API dla każdej strony osobno."
2902
 
2903
  #: src/admin.php:3350
2904
  msgid "You have not yet made any backups."
@@ -2929,7 +2929,7 @@ msgstr "Ten przycisk jest nieaktywny ponieważ brakuje praw do zapisu w Twoim fo
2929
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:22,
2930
  #: src/templates/wp-admin/settings/tab-bar.php:6
2931
  msgid "Existing Backups"
2932
- msgstr "Istniejące kopie zapasowe"
2933
 
2934
  #: src/admin.php:514, src/templates/wp-admin/settings/tab-bar.php:5
2935
  msgid "Current Status"
@@ -2937,7 +2937,7 @@ msgstr "Bieżący status"
2937
 
2938
  #: src/admin.php:937
2939
  msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
2940
- msgstr "Aby zmienić ustawienia domyślne tego, co ma zostać skopiowane, aby skonfigurować zaplanowane kopie, aby wysłać kopie do lokalizacji zdalnych (rekomendowane) oraz więcej, przejdź do zakładki \"Ustawienia\""
2941
 
2942
  #: src/admin.php:937
2943
  msgid "To make a backup, just press the Backup Now button."
@@ -3079,7 +3079,7 @@ msgstr "Wystąpił błąd przy pierwszym poleceniu %s - trwa anulowanie"
3079
 
3080
  #: src/addons/moredatabase.php:105, src/backup.php:1390
3081
  msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
3082
- msgstr "Połączenie nieudane: sprawdź ustawienia logowania; czy serwer działa; czy połączenie nie jest zablokowane przez firewall?"
3083
 
3084
  #: src/backup.php:1390
3085
  msgid "database connection attempt failed."
@@ -3153,7 +3153,7 @@ msgstr "Sukces:"
3153
 
3154
  #: src/addons/onedrive.php:991, src/methods/dropbox.php:538
3155
  msgid "<strong>After</strong> you have saved your settings (by clicking 'Save Changes' below), then come back here once and click this link to complete authentication with %s."
3156
- msgstr "<strong>Po</strong> zapisaniu ustawień (kliknij 'Zapisz zmiany' poniżej) wróć tutaj i kliknij poniższy link aby zakończyć autoryzację %s."
3157
 
3158
  #: src/addons/onedrive.php:989, src/methods/dropbox.php:528
3159
  msgid "(You appear to be already authenticated)."
@@ -3325,7 +3325,7 @@ msgstr "nieznane źródło"
3325
 
3326
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:45
3327
  msgid "Rescan remote storage"
3328
- msgstr "Przeskanuj ponownie zdalną lokalizację."
3329
 
3330
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:40
3331
  msgid "Upload backup files"
@@ -4889,7 +4889,7 @@ msgstr "Proszę podać wymagane informacje, a następnie kontynuować."
4889
 
4890
  #: src/class-updraftplus.php:4690, src/restorer.php:1706
4891
  msgid "Site information:"
4892
- msgstr "Informacje o stronie:"
4893
 
4894
  #: src/restorer.php:1573
4895
  msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
@@ -5938,7 +5938,7 @@ msgstr "Codziennie"
5938
 
5939
  #: src/admin.php:694, src/admin.php:3008
5940
  msgid "Download log file"
5941
- msgstr "Pobierz plik dziennika"
5942
 
5943
  #: src/admin.php:2905
5944
  msgid "The folder exists, but your webserver does not have permission to write to it."
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:36:49+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
+ msgstr "Odwołąć"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
2898
 
2899
  #: src/methods/googledrive.php:1090
2900
  msgid "N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your project; you must create a new one from your Google API console for each site."
2901
+ msgstr "A przy okazji, jeżeli instalujesz UpdraftPlus na kilku stronach WordPress, nie możesz używać tego samego projektu; powinieneś utworzyć nowy projekt ze swojej kosoli Google API dla każdej strony osobno."
2902
 
2903
  #: src/admin.php:3350
2904
  msgid "You have not yet made any backups."
2929
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:22,
2930
  #: src/templates/wp-admin/settings/tab-bar.php:6
2931
  msgid "Existing Backups"
2932
+ msgstr "Istniejące kopie zapasowwe"
2933
 
2934
  #: src/admin.php:514, src/templates/wp-admin/settings/tab-bar.php:5
2935
  msgid "Current Status"
2937
 
2938
  #: src/admin.php:937
2939
  msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
2940
+ msgstr "Aby zmienić ustawienia domyślne tego, co ma zostac skopiowane, aby skonfigurować zaplanowane kopie, aby wysłać kopie do lokalizacji zdalnych (rekomendowane) oraz więcej, przejdź do zakładki \"Ustawienia\""
2941
 
2942
  #: src/admin.php:937
2943
  msgid "To make a backup, just press the Backup Now button."
3079
 
3080
  #: src/addons/moredatabase.php:105, src/backup.php:1390
3081
  msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
3082
+ msgstr "Połączenie niedudane: sprawdź ustawienia logowania; czy serwer działa; czy połączenie nie jest zablokowane przez firewall?"
3083
 
3084
  #: src/backup.php:1390
3085
  msgid "database connection attempt failed."
3153
 
3154
  #: src/addons/onedrive.php:991, src/methods/dropbox.php:538
3155
  msgid "<strong>After</strong> you have saved your settings (by clicking 'Save Changes' below), then come back here once and click this link to complete authentication with %s."
3156
+ msgstr "<strong>Po</strong> zapisaniu ustawień (klinkij 'Zapisz zmiany' poniżej) wróć tutaj i kliknij poniższy link aby zakończyć autoryzację %s."
3157
 
3158
  #: src/addons/onedrive.php:989, src/methods/dropbox.php:528
3159
  msgid "(You appear to be already authenticated)."
3325
 
3326
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:45
3327
  msgid "Rescan remote storage"
3328
+ msgstr "Przeskanuj lokalizację zdalną ponownie."
3329
 
3330
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:40
3331
  msgid "Upload backup files"
4889
 
4890
  #: src/class-updraftplus.php:4690, src/restorer.php:1706
4891
  msgid "Site information:"
4892
+ msgstr "Informacje strony:"
4893
 
4894
  #: src/restorer.php:1573
4895
  msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
5938
 
5939
  #: src/admin.php:694, src/admin.php:3008
5940
  msgid "Download log file"
5941
+ msgstr "Pobieranie pliku dziennika"
5942
 
5943
  #: src/admin.php:2905
5944
  msgid "The folder exists, but your webserver does not have permission to write to it."
languages/updraftplus-tr_TR.mo CHANGED
Binary file
languages/updraftplus-tr_TR.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2015-09-28 12:34:39+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -131,7 +131,7 @@ msgstr ""
131
 
132
  #: src/methods/cloudfiles.php:520
133
  msgid "Cloud Files"
134
- msgstr ""
135
 
136
  #: src/admin.php:4207
137
  msgid "Your settings failed to save. Please refresh the settings page and try again"
@@ -503,7 +503,7 @@ msgstr ""
503
  #: src/templates/wp-admin/notices/report-plain.php:29,
504
  #: src/templates/wp-admin/notices/report.php:26
505
  msgid "Sign up"
506
- msgstr ""
507
 
508
  #: src/templates/wp-admin/notices/bottom-notice.php:25,
509
  #: src/templates/wp-admin/notices/horizontal-notice.php:36,
@@ -656,18 +656,18 @@ msgstr ""
656
 
657
  #: src/templates/wp-admin/advanced/tools-menu.php:22
658
  msgid "Site size"
659
- msgstr ""
660
 
661
  #: src/templates/wp-admin/advanced/tools-menu.php:10,
662
  #: src/templates/wp-admin/settings/tab-addons.php:247,
663
  #: src/templates/wp-admin/settings/tab-addons.php:248
664
  msgid "Lock settings"
665
- msgstr ""
666
 
667
  #: src/templates/wp-admin/advanced/site-info.php:5,
668
  #: src/templates/wp-admin/advanced/tools-menu.php:6
669
  msgid "Site information"
670
- msgstr ""
671
 
672
  #: src/templates/wp-admin/advanced/search-replace.php:9
673
  msgid "For the ability to migrate websites, upgrade to UpdraftPlus Premium."
@@ -675,7 +675,7 @@ msgstr ""
675
 
676
  #: src/templates/wp-admin/advanced/export-settings.php:15
677
  msgid "Import settings"
678
- msgstr ""
679
 
680
  #: src/templates/wp-admin/advanced/export-settings.php:12
681
  msgid "You can also import previously-exported settings. This tool will replace all your saved settings."
@@ -683,7 +683,7 @@ msgstr ""
683
 
684
  #: src/templates/wp-admin/advanced/export-settings.php:9
685
  msgid "Export settings"
686
- msgstr ""
687
 
688
  #: src/templates/wp-admin/advanced/export-settings.php:7
689
  msgid "including any passwords"
@@ -696,7 +696,7 @@ msgstr ""
696
  #: src/templates/wp-admin/advanced/export-settings.php:5,
697
  #: src/templates/wp-admin/advanced/tools-menu.php:26
698
  msgid "Export / import settings"
699
- msgstr ""
700
 
701
  #: src/restorer.php:1869
702
  msgid "Processing table (%s)"
@@ -736,11 +736,11 @@ msgstr ""
736
 
737
  #: src/admin.php:1531
738
  msgid "Remote files deleted:"
739
- msgstr ""
740
 
741
  #: src/admin.php:1530
742
  msgid "Local files deleted:"
743
- msgstr ""
744
 
745
  #: src/admin.php:973, src/admin.php:977, src/admin.php:985, src/admin.php:989
746
  msgid "Follow this link to authorize access to your %s account (you will not be able to back up to %s without it)."
@@ -752,7 +752,7 @@ msgstr ""
752
 
753
  #: src/admin.php:747
754
  msgid "Complete"
755
- msgstr ""
756
 
757
  #: src/admin.php:746
758
  msgid "Do you want to carry out the import?"
@@ -768,11 +768,11 @@ msgstr ""
768
 
769
  #: src/admin.php:743
770
  msgid "Importing..."
771
- msgstr ""
772
 
773
  #: src/admin.php:739
774
  msgid "You have not yet selected a file to import."
775
- msgstr ""
776
 
777
  #: src/admin.php:723
778
  msgid "Your export file will be of your displayed settings, not your saved ones."
@@ -780,7 +780,7 @@ msgstr ""
780
 
781
  #: src/admin.php:82
782
  msgid "template not found"
783
- msgstr ""
784
 
785
  #: src/addons/s3-enhanced.php:331
786
  msgid "US East (Ohio)"
@@ -821,7 +821,7 @@ msgstr ""
821
 
822
  #: src/admin.php:2247
823
  msgid "To fix this problem go here."
824
- msgstr ""
825
 
826
  #: src/admin.php:2247
827
  msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
@@ -881,11 +881,11 @@ msgstr ""
881
 
882
  #: src/templates/wp-admin/settings/header.php:26
883
  msgid "FAQs"
884
- msgstr ""
885
 
886
  #: src/central/bootstrap.php:496
887
  msgid "More information..."
888
- msgstr ""
889
 
890
  #: src/central/bootstrap.php:494
891
  msgid "Use the alternative method for making a connection with the dashboard."
@@ -917,11 +917,11 @@ msgstr ""
917
 
918
  #: src/addons/migrator.php:2207, src/central/bootstrap.php:513
919
  msgid "slower, strongest"
920
- msgstr ""
921
 
922
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
923
  msgid "recommended"
924
- msgstr ""
925
 
926
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
927
  msgid "%s bytes"
@@ -933,7 +933,7 @@ msgstr ""
933
 
934
  #: src/addons/migrator.php:2204, src/central/bootstrap.php:510
935
  msgid "easy to break, fastest"
936
- msgstr ""
937
 
938
  #: src/addons/migrator.php:2204, src/addons/migrator.php:2205,
939
  #: src/addons/migrator.php:2207, src/central/bootstrap.php:510,
@@ -943,7 +943,7 @@ msgstr ""
943
 
944
  #: src/addons/migrator.php:2202, src/central/bootstrap.php:508
945
  msgid "Encryption key size:"
946
- msgstr ""
947
 
948
  #: src/addons/migrator.php:2200
949
  msgid "Enter your chosen name"
@@ -963,7 +963,7 @@ msgstr ""
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
- msgstr ""
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
@@ -971,11 +971,11 @@ msgstr ""
971
 
972
  #: src/methods/email.php:30
973
  msgid "This backup archive is %s MB in size - the attempt to send this via email is likely to fail (few email servers allow attachments of this size). If so, you should switch to using a different remote storage method."
974
- msgstr ""
975
 
976
  #: src/class-updraftplus.php:1693
977
  msgid "Size: %s MB"
978
- msgstr ""
979
 
980
  #: src/central/bootstrap.php:486
981
  msgid "Other (please specify - i.e. the site where you have installed an UpdraftCentral dashboard)"
@@ -991,7 +991,7 @@ msgstr ""
991
 
992
  #: src/templates/wp-admin/settings/tab-status.php:47
993
  msgid "Now"
994
- msgstr ""
995
 
996
  #: src/class-updraftplus.php:4628, src/restorer.php:1010
997
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
@@ -1009,7 +1009,7 @@ msgstr ""
1009
  #: src/methods/updraftvault.php:316, src/methods/updraftvault.php:322,
1010
  #: src/methods/updraftvault.php:328
1011
  msgid "or (annual discount)"
1012
- msgstr ""
1013
 
1014
  #: src/methods/updraftvault.php:252
1015
  msgid "No Vault connection was found for this site (has it moved?); please disconnect and re-connect."
@@ -1025,11 +1025,11 @@ msgstr ""
1025
 
1026
  #: src/central/bootstrap.php:535
1027
  msgid "fetch..."
1028
- msgstr ""
1029
 
1030
  #: src/central/bootstrap.php:534
1031
  msgid "View recent UpdraftCentral log events"
1032
- msgstr ""
1033
 
1034
  #: src/central/bootstrap.php:489
1035
  msgid "URL of mothership"
@@ -1037,19 +1037,19 @@ msgstr ""
1037
 
1038
  #: src/central/bootstrap.php:472
1039
  msgid "Enter any description"
1040
- msgstr ""
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
- msgstr ""
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
1048
- msgstr ""
1049
 
1050
  #: src/central/bootstrap.php:430
1051
  msgid "Delete..."
1052
- msgstr ""
1053
 
1054
  #: src/central/bootstrap.php:423
1055
  msgid "Created:"
@@ -1065,11 +1065,11 @@ msgstr ""
1065
 
1066
  #: src/central/bootstrap.php:442
1067
  msgid "Details"
1068
- msgstr ""
1069
 
1070
  #: src/central/bootstrap.php:441
1071
  msgid "Key description"
1072
- msgstr ""
1073
 
1074
  #: src/central/bootstrap.php:316, src/central/bootstrap.php:327
1075
  msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
@@ -1085,7 +1085,7 @@ msgstr ""
1085
 
1086
  #: src/central/bootstrap.php:69
1087
  msgid "This connection appears to already have been made."
1088
- msgstr ""
1089
 
1090
  #: src/central/bootstrap.php:66
1091
  msgid "You must visit this link in the same browser and login session as you created the key in."
@@ -1117,33 +1117,33 @@ msgstr ""
1117
 
1118
  #: src/backup.php:867, src/class-updraftplus.php:3094
1119
  msgid "The backup was aborted by the user"
1120
- msgstr ""
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
- msgstr ""
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
1128
- msgstr ""
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
- msgstr ""
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
1136
- msgstr ""
1137
 
1138
  #: src/templates/wp-admin/advanced/tools-menu.php:30,
1139
  #: src/templates/wp-admin/advanced/wipe-settings.php:5,
1140
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
1141
  msgid "Wipe settings"
1142
- msgstr ""
1143
 
1144
  #: src/templates/wp-admin/advanced/site-info.php:95
1145
  msgid "reset"
1146
- msgstr ""
1147
 
1148
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:21
1149
  msgid "these backup sets"
@@ -1155,7 +1155,7 @@ msgstr ""
1155
 
1156
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:33
1157
  msgid "calculate"
1158
- msgstr ""
1159
 
1160
  #: src/admin.php:722
1161
  msgid "You should save your changes to ensure that they are used for making your backup."
@@ -1167,19 +1167,19 @@ msgstr ""
1167
 
1168
  #: src/admin.php:714
1169
  msgid "Please enter a valid URL"
1170
- msgstr ""
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
- msgstr ""
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
1178
- msgstr ""
1179
 
1180
  #: src/admin.php:652
1181
  msgid "Fetching..."
1182
- msgstr ""
1183
 
1184
  #: src/addons/s3-enhanced.php:339
1185
  msgid "Asia Pacific (Seoul)"
@@ -1212,11 +1212,11 @@ msgstr ""
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
- msgstr ""
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
1219
- msgstr ""
1220
 
1221
  #: src/addons/multisite.php:576
1222
  msgid "Read more..."
@@ -1289,19 +1289,19 @@ msgstr ""
1289
 
1290
  #: src/templates/wp-admin/settings/form-contents.php:100
1291
  msgid "Sending Your Backup To Remote Storage"
1292
- msgstr ""
1293
 
1294
  #: src/templates/wp-admin/settings/form-contents.php:65
1295
  msgid "Database backup schedule"
1296
- msgstr ""
1297
 
1298
  #: src/templates/wp-admin/settings/form-contents.php:54
1299
  msgid "Incremental file backup schedule"
1300
- msgstr ""
1301
 
1302
  #: src/templates/wp-admin/settings/form-contents.php:22
1303
  msgid "Files backup schedule"
1304
- msgstr ""
1305
 
1306
  #: src/templates/wp-admin/advanced/wipe-settings.php:6
1307
  msgid "You will then need to enter all your settings again. You can also do this before deactivating/deinstalling UpdraftPlus if you wish."
@@ -1313,7 +1313,7 @@ msgstr ""
1313
 
1314
  #: src/admin.php:4079
1315
  msgid "Send this backup to remote storage"
1316
- msgstr ""
1317
 
1318
  #: src/admin.php:4077
1319
  msgid "Check out UpdraftPlus Vault."
@@ -1325,7 +1325,7 @@ msgstr ""
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
- msgstr ""
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
@@ -1337,7 +1337,7 @@ msgstr ""
1337
 
1338
  #: src/admin.php:2414
1339
  msgid "Include the database in the backup"
1340
- msgstr ""
1341
 
1342
  #: src/admin.php:2394
1343
  msgid "Continue restoration"
@@ -1353,15 +1353,15 @@ msgstr ""
1353
 
1354
  #: src/admin.php:2386
1355
  msgid "%s minutes, %s seconds"
1356
- msgstr ""
1357
 
1358
  #: src/admin.php:2333
1359
  msgid "Backup Contents And Schedule"
1360
- msgstr ""
1361
 
1362
  #: src/templates/wp-admin/settings/tab-bar.php:9
1363
  msgid "Premium / Extensions"
1364
- msgstr ""
1365
 
1366
  #: src/admin.php:2113, src/admin.php:2122
1367
  msgid "Sufficient information about the in-progress restoration operation could not be found."
@@ -1370,7 +1370,7 @@ msgstr ""
1370
  #: src/addons/morefiles.php:55, src/admin.php:720
1371
  msgctxt "(verb)"
1372
  msgid "Download"
1373
- msgstr ""
1374
 
1375
  #: src/admin.php:645
1376
  msgid "You have chosen to backup files, but no file entities have been selected"
@@ -1378,11 +1378,11 @@ msgstr ""
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
- msgstr ""
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
1385
- msgstr ""
1386
 
1387
  #: src/addons/googlecloud.php:966
1388
  msgid "Bucket location"
@@ -1516,7 +1516,7 @@ msgstr ""
1516
 
1517
  #: src/backup.php:1579
1518
  msgid "the options table was not found"
1519
- msgstr ""
1520
 
1521
  #: src/backup.php:1577
1522
  msgid "no options or sitemeta table was found"
@@ -1536,7 +1536,7 @@ msgstr ""
1536
 
1537
  #: src/templates/wp-admin/advanced/site-info.php:49
1538
  msgid "Not installed"
1539
- msgstr ""
1540
 
1541
  #: src/addons/googlecloud.php:951, src/addons/s3-enhanced.php:54
1542
  msgid "Storage class"
@@ -1629,7 +1629,7 @@ msgstr "Seçimi kaldır"
1629
 
1630
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:6
1631
  msgid "Select all"
1632
- msgstr "Tümünü seç"
1633
 
1634
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:4
1635
  msgid "Actions upon selected backups"
@@ -1653,19 +1653,19 @@ msgstr "Şu tarihten eski yedekler için"
1653
 
1654
  #: src/admin.php:730
1655
  msgid "week(s)"
1656
- msgstr "hafta"
1657
 
1658
  #: src/admin.php:729
1659
  msgid "hour(s)"
1660
- msgstr "saat"
1661
 
1662
  #: src/admin.php:728
1663
  msgid "day(s)"
1664
- msgstr "gün"
1665
 
1666
  #: src/admin.php:727
1667
  msgid "in the month"
1668
- msgstr "ayın içerisinde"
1669
 
1670
  #: src/admin.php:726
1671
  msgid "day"
@@ -1689,7 +1689,7 @@ msgstr "Bu problem kaynak veritabanıyla uyumsuz çok eski bir MySQL versiyonuna
1689
 
1690
  #: src/methods/updraftvault.php:645
1691
  msgid "You do not currently have any UpdraftPlus Vault quota"
1692
- msgstr "Bir UpdraftPlus Vault kotanız bulunmamaktadır."
1693
 
1694
  #: src/class-updraftplus.php:4714
1695
  msgid "You must upgrade MySQL to be able to use this database."
@@ -2189,7 +2189,7 @@ msgstr "buradan ayarlayın"
2189
 
2190
  #: src/addons/onedrive.php:618, src/methods/updraftvault.php:618
2191
  msgid "To remove the block, please go here."
2192
- msgstr "Engellemeyi kaldırmak için lütfen buraya tıklayın."
2193
 
2194
  #: src/addons/s3-enhanced.php:450
2195
  msgid "Do remember to save your settings."
@@ -2358,7 +2358,7 @@ msgstr "Wen sunucunuzun IP adresi (%s) engellenmiş gözüküyor."
2358
  #: src/addons/onedrive.php:618, src/methods/updraftvault.php:618,
2359
  #: src/udaddons/updraftplus-addons.php:816
2360
  msgid "UpdraftPlus.com has responded with 'Access Denied'."
2361
- msgstr "UpdraftPlus.com şu yanıtı dönerdi 'Erişim Başarısız'."
2362
 
2363
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
2364
  msgid "Premium WooCommerce plugins"
@@ -2430,7 +2430,7 @@ msgstr "UpdraftPlus haber listesine katılmak için bu linke tıklayın."
2430
  #: src/templates/wp-admin/settings/tab-addons.php:135,
2431
  #: src/templates/wp-admin/settings/tab-addons.php:136
2432
  msgid "Backup non-WordPress files and databases"
2433
- msgstr ""
2434
 
2435
  #: src/templates/wp-admin/settings/tab-addons.php:19
2436
  msgid "Ask a pre-sales question"
@@ -2587,7 +2587,7 @@ msgstr "Lütfen şifreyi not aldığınızdan emin olun!"
2587
  #: src/addons/lockadmin.php:141,
2588
  #: src/templates/wp-admin/advanced/lock-admin.php:7
2589
  msgid "Lock access to the UpdraftPlus settings page"
2590
- msgstr "UpdraftPlus ayarlar sayfasına erişimi sınırla"
2591
 
2592
  #: src/addons/lockadmin.php:117
2593
  msgid "The admin password has been changed."
@@ -3814,7 +3814,7 @@ msgstr "Bilgi ayıklanıyor"
3814
 
3815
  #: src/addons/reporting.php:211, src/admin.php:3313
3816
  msgid "Uploaded to:"
3817
- msgstr "Şu dizine yüklendi:"
3818
 
3819
  #: src/addons/reporting.php:210
3820
  msgid "Time taken:"
@@ -4048,7 +4048,7 @@ msgstr "İçerik URLsi:"
4048
 
4049
  #: src/restorer.php:149
4050
  msgid "You should check the file ownerships and permissions in your WordPress installation"
4051
- msgstr ""
4052
 
4053
  #: src/templates/wp-admin/settings/form-contents.php:176
4054
  msgid "See also the \"More Files\" add-on from our shop."
@@ -5780,7 +5780,7 @@ msgstr "Web sunucunuzun PHP/Curl yüklemesi https erişimini desteklemiyor. Bu d
5780
 
5781
  #: src/admin.php:3176
5782
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
5783
- msgstr ""
5784
 
5785
  #: src/methods/cloudfiles-new.php:107, src/methods/cloudfiles.php:468,
5786
  #: src/methods/openstack-base.php:541, src/methods/s3.php:825
@@ -6397,7 +6397,7 @@ msgstr "Sonsuz döngü: Daha fazla bilgi için lütfen logunuzu inceleyin"
6397
 
6398
  #: src/includes/updraftplus-notices.php:102
6399
  msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
6400
- msgstr ""
6401
 
6402
  #: src/includes/updraftplus-notices.php:101
6403
  msgid "Like UpdraftPlus and can spare one minute?"
2
  # This file is distributed under the same license as the UpdraftPlus package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2017-09-05 14:32:00+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
131
 
132
  #: src/methods/cloudfiles.php:520
133
  msgid "Cloud Files"
134
+ msgstr "Bulut dosyaları"
135
 
136
  #: src/admin.php:4207
137
  msgid "Your settings failed to save. Please refresh the settings page and try again"
503
  #: src/templates/wp-admin/notices/report-plain.php:29,
504
  #: src/templates/wp-admin/notices/report.php:26
505
  msgid "Sign up"
506
+ msgstr "Kayıt ol"
507
 
508
  #: src/templates/wp-admin/notices/bottom-notice.php:25,
509
  #: src/templates/wp-admin/notices/horizontal-notice.php:36,
656
 
657
  #: src/templates/wp-admin/advanced/tools-menu.php:22
658
  msgid "Site size"
659
+ msgstr "Site boyutu"
660
 
661
  #: src/templates/wp-admin/advanced/tools-menu.php:10,
662
  #: src/templates/wp-admin/settings/tab-addons.php:247,
663
  #: src/templates/wp-admin/settings/tab-addons.php:248
664
  msgid "Lock settings"
665
+ msgstr "Kilit ayarları"
666
 
667
  #: src/templates/wp-admin/advanced/site-info.php:5,
668
  #: src/templates/wp-admin/advanced/tools-menu.php:6
669
  msgid "Site information"
670
+ msgstr "Site bilgileri"
671
 
672
  #: src/templates/wp-admin/advanced/search-replace.php:9
673
  msgid "For the ability to migrate websites, upgrade to UpdraftPlus Premium."
675
 
676
  #: src/templates/wp-admin/advanced/export-settings.php:15
677
  msgid "Import settings"
678
+ msgstr "İçer aktarma ayarları"
679
 
680
  #: src/templates/wp-admin/advanced/export-settings.php:12
681
  msgid "You can also import previously-exported settings. This tool will replace all your saved settings."
683
 
684
  #: src/templates/wp-admin/advanced/export-settings.php:9
685
  msgid "Export settings"
686
+ msgstr "Dışa aktarma ayarları"
687
 
688
  #: src/templates/wp-admin/advanced/export-settings.php:7
689
  msgid "including any passwords"
696
  #: src/templates/wp-admin/advanced/export-settings.php:5,
697
  #: src/templates/wp-admin/advanced/tools-menu.php:26
698
  msgid "Export / import settings"
699
+ msgstr "Dışa/İçe aktarma ayarları"
700
 
701
  #: src/restorer.php:1869
702
  msgid "Processing table (%s)"
736
 
737
  #: src/admin.php:1531
738
  msgid "Remote files deleted:"
739
+ msgstr "Uzak sunucuda ki dosyalar silindi:"
740
 
741
  #: src/admin.php:1530
742
  msgid "Local files deleted:"
743
+ msgstr "Yerel dosyalar silindi:"
744
 
745
  #: src/admin.php:973, src/admin.php:977, src/admin.php:985, src/admin.php:989
746
  msgid "Follow this link to authorize access to your %s account (you will not be able to back up to %s without it)."
752
 
753
  #: src/admin.php:747
754
  msgid "Complete"
755
+ msgstr "Tamamla"
756
 
757
  #: src/admin.php:746
758
  msgid "Do you want to carry out the import?"
768
 
769
  #: src/admin.php:743
770
  msgid "Importing..."
771
+ msgstr "İçe aktarılıyor..."
772
 
773
  #: src/admin.php:739
774
  msgid "You have not yet selected a file to import."
775
+ msgstr "Henüz içe aktarmak için bir dosya seçmediniz."
776
 
777
  #: src/admin.php:723
778
  msgid "Your export file will be of your displayed settings, not your saved ones."
780
 
781
  #: src/admin.php:82
782
  msgid "template not found"
783
+ msgstr "şablon bulunamadı"
784
 
785
  #: src/addons/s3-enhanced.php:331
786
  msgid "US East (Ohio)"
821
 
822
  #: src/admin.php:2247
823
  msgid "To fix this problem go here."
824
+ msgstr "Bu sorunu gidermek için buraya gidin."
825
 
826
  #: src/admin.php:2247
827
  msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
881
 
882
  #: src/templates/wp-admin/settings/header.php:26
883
  msgid "FAQs"
884
+ msgstr "SSS"
885
 
886
  #: src/central/bootstrap.php:496
887
  msgid "More information..."
888
+ msgstr "Daha fazla bilgi..."
889
 
890
  #: src/central/bootstrap.php:494
891
  msgid "Use the alternative method for making a connection with the dashboard."
917
 
918
  #: src/addons/migrator.php:2207, src/central/bootstrap.php:513
919
  msgid "slower, strongest"
920
+ msgstr "daha yavaş, en güçlü"
921
 
922
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
923
  msgid "recommended"
924
+ msgstr "tavsiye edilen"
925
 
926
  #: src/addons/migrator.php:2206, src/central/bootstrap.php:512
927
  msgid "%s bytes"
933
 
934
  #: src/addons/migrator.php:2204, src/central/bootstrap.php:510
935
  msgid "easy to break, fastest"
936
+ msgstr "kırılması kolay, en hızlı"
937
 
938
  #: src/addons/migrator.php:2204, src/addons/migrator.php:2205,
939
  #: src/addons/migrator.php:2207, src/central/bootstrap.php:510,
943
 
944
  #: src/addons/migrator.php:2202, src/central/bootstrap.php:508
945
  msgid "Encryption key size:"
946
+ msgstr "Şifreleme anahtarı boyutu:"
947
 
948
  #: src/addons/migrator.php:2200
949
  msgid "Enter your chosen name"
963
 
964
  #: src/methods/ftp.php:380
965
  msgid "login"
966
+ msgstr "giriş"
967
 
968
  #: src/methods/email.php:79
969
  msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
971
 
972
  #: src/methods/email.php:30
973
  msgid "This backup archive is %s MB in size - the attempt to send this via email is likely to fail (few email servers allow attachments of this size). If so, you should switch to using a different remote storage method."
974
+ msgstr "Bu yedek arşivi boyut olarak %s MB, bunu email ile göndermek yüksek olasılıkla başarısız olacaktır (çok az email sunucusu bu boyutta dosyalara izin veriyor). Eğer başarısız olursa farklı bir uzak depo alanına geçiş yapmalısınız."
975
 
976
  #: src/class-updraftplus.php:1693
977
  msgid "Size: %s MB"
978
+ msgstr "Boyut: %s MB"
979
 
980
  #: src/central/bootstrap.php:486
981
  msgid "Other (please specify - i.e. the site where you have installed an UpdraftCentral dashboard)"
991
 
992
  #: src/templates/wp-admin/settings/tab-status.php:47
993
  msgid "Now"
994
+ msgstr "Şimdi"
995
 
996
  #: src/class-updraftplus.php:4628, src/restorer.php:1010
997
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
1009
  #: src/methods/updraftvault.php:316, src/methods/updraftvault.php:322,
1010
  #: src/methods/updraftvault.php:328
1011
  msgid "or (annual discount)"
1012
+ msgstr "ya da (yıllık indirim)"
1013
 
1014
  #: src/methods/updraftvault.php:252
1015
  msgid "No Vault connection was found for this site (has it moved?); please disconnect and re-connect."
1025
 
1026
  #: src/central/bootstrap.php:535
1027
  msgid "fetch..."
1028
+ msgstr "getir..."
1029
 
1030
  #: src/central/bootstrap.php:534
1031
  msgid "View recent UpdraftCentral log events"
1032
+ msgstr "Son UpdraftCentral kayıt günlüklerini görüntüle"
1033
 
1034
  #: src/central/bootstrap.php:489
1035
  msgid "URL of mothership"
1037
 
1038
  #: src/central/bootstrap.php:472
1039
  msgid "Enter any description"
1040
+ msgstr "Bir açıklama girin"
1041
 
1042
  #: src/central/bootstrap.php:469
1043
  msgid "Description"
1044
+ msgstr "Tanım"
1045
 
1046
  #: src/central/bootstrap.php:463
1047
  msgid "Create new key"
1048
+ msgstr "Yeni anahtar oluştur"
1049
 
1050
  #: src/central/bootstrap.php:430
1051
  msgid "Delete..."
1052
+ msgstr "Sil..."
1053
 
1054
  #: src/central/bootstrap.php:423
1055
  msgid "Created:"
1065
 
1066
  #: src/central/bootstrap.php:442
1067
  msgid "Details"
1068
+ msgstr "Ayrıntılar"
1069
 
1070
  #: src/central/bootstrap.php:441
1071
  msgid "Key description"
1072
+ msgstr "Anahtar açıklaması"
1073
 
1074
  #: src/central/bootstrap.php:316, src/central/bootstrap.php:327
1075
  msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
1085
 
1086
  #: src/central/bootstrap.php:69
1087
  msgid "This connection appears to already have been made."
1088
+ msgstr "Bu bağlantı zaten yapılmış gibi görünüyor."
1089
 
1090
  #: src/central/bootstrap.php:66
1091
  msgid "You must visit this link in the same browser and login session as you created the key in."
1117
 
1118
  #: src/backup.php:867, src/class-updraftplus.php:3094
1119
  msgid "The backup was aborted by the user"
1120
+ msgstr "Yedekleme kullanıcı tarafından iptal edildi"
1121
 
1122
  #: src/admin.php:4202
1123
  msgid "Your settings have been saved."
1124
+ msgstr "Ayarlarınız kaydedildi."
1125
 
1126
  #: src/admin.php:3330
1127
  msgid "Total backup size:"
1128
+ msgstr "Toplam yedek boyutu:"
1129
 
1130
  #: src/admin.php:2744
1131
  msgid "stop"
1132
+ msgstr "durdur"
1133
 
1134
  #: src/admin.php:2582
1135
  msgid "The backup has finished running"
1136
+ msgstr "Yedekleme çalışmayı bitirdi"
1137
 
1138
  #: src/templates/wp-admin/advanced/tools-menu.php:30,
1139
  #: src/templates/wp-admin/advanced/wipe-settings.php:5,
1140
  #: src/templates/wp-admin/advanced/wipe-settings.php:9
1141
  msgid "Wipe settings"
1142
+ msgstr "Ayarları sıfırla"
1143
 
1144
  #: src/templates/wp-admin/advanced/site-info.php:95
1145
  msgid "reset"
1146
+ msgstr "varsayılana dön"
1147
 
1148
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:21
1149
  msgid "these backup sets"
1155
 
1156
  #: src/templates/wp-admin/settings/downloading-and-restoring.php:33
1157
  msgid "calculate"
1158
+ msgstr "hesapla"
1159
 
1160
  #: src/admin.php:722
1161
  msgid "You should save your changes to ensure that they are used for making your backup."
1167
 
1168
  #: src/admin.php:714
1169
  msgid "Please enter a valid URL"
1170
+ msgstr "Lütfen geçerli bir URL giriniz"
1171
 
1172
  #: src/admin.php:697
1173
  msgid "Saving..."
1174
+ msgstr "Kaydediyor..."
1175
 
1176
  #: src/admin.php:660
1177
  msgid "Error: the server sent us a response which we did not understand."
1178
+ msgstr "Hata: sunucu bize anlayamadığımız bir yanıt gönderdi."
1179
 
1180
  #: src/admin.php:652
1181
  msgid "Fetching..."
1182
+ msgstr "Getiriliyor..."
1183
 
1184
  #: src/addons/s3-enhanced.php:339
1185
  msgid "Asia Pacific (Seoul)"
1212
  #: src/admin.php:2395, src/templates/wp-admin/notices/horizontal-notice.php:16,
1213
  #: src/templates/wp-admin/notices/horizontal-notice.php:18
1214
  msgid "Dismiss"
1215
+ msgstr "İptal"
1216
 
1217
  #: src/admin.php:734
1218
  msgid "Please fill in the required information."
1219
+ msgstr "Lütfen gerekli bilgileri doldurun."
1220
 
1221
  #: src/addons/multisite.php:576
1222
  msgid "Read more..."
1289
 
1290
  #: src/templates/wp-admin/settings/form-contents.php:100
1291
  msgid "Sending Your Backup To Remote Storage"
1292
+ msgstr "Yedeğiniz uzak depolama alanına gönderiliyor"
1293
 
1294
  #: src/templates/wp-admin/settings/form-contents.php:65
1295
  msgid "Database backup schedule"
1296
+ msgstr "Veritabanı yedekleme zamanlaması"
1297
 
1298
  #: src/templates/wp-admin/settings/form-contents.php:54
1299
  msgid "Incremental file backup schedule"
1300
+ msgstr "Artan dosya yedekleme aralıkları"
1301
 
1302
  #: src/templates/wp-admin/settings/form-contents.php:22
1303
  msgid "Files backup schedule"
1304
+ msgstr "Dosya yedekleme zamanlaması"
1305
 
1306
  #: src/templates/wp-admin/advanced/wipe-settings.php:6
1307
  msgid "You will then need to enter all your settings again. You can also do this before deactivating/deinstalling UpdraftPlus if you wish."
1313
 
1314
  #: src/admin.php:4079
1315
  msgid "Send this backup to remote storage"
1316
+ msgstr "Bu yedeği uzak depolama alanına gönder"
1317
 
1318
  #: src/admin.php:4077
1319
  msgid "Check out UpdraftPlus Vault."
1325
 
1326
  #: src/admin.php:4077
1327
  msgid "settings"
1328
+ msgstr "ayarlar"
1329
 
1330
  #: src/admin.php:4077
1331
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
1337
 
1338
  #: src/admin.php:2414
1339
  msgid "Include the database in the backup"
1340
+ msgstr "Yedeğin içine veritabanını dahil et"
1341
 
1342
  #: src/admin.php:2394
1343
  msgid "Continue restoration"
1353
 
1354
  #: src/admin.php:2386
1355
  msgid "%s minutes, %s seconds"
1356
+ msgstr "%s dakika, %s saniye"
1357
 
1358
  #: src/admin.php:2333
1359
  msgid "Backup Contents And Schedule"
1360
+ msgstr "Yedekleme içeriği ve zamanlama"
1361
 
1362
  #: src/templates/wp-admin/settings/tab-bar.php:9
1363
  msgid "Premium / Extensions"
1364
+ msgstr "Premium / Eklentiler"
1365
 
1366
  #: src/admin.php:2113, src/admin.php:2122
1367
  msgid "Sufficient information about the in-progress restoration operation could not be found."
1370
  #: src/addons/morefiles.php:55, src/admin.php:720
1371
  msgctxt "(verb)"
1372
  msgid "Download"
1373
+ msgstr "İndir"
1374
 
1375
  #: src/admin.php:645
1376
  msgid "You have chosen to backup files, but no file entities have been selected"
1378
 
1379
  #: src/admin.php:546
1380
  msgid "Extensions"
1381
+ msgstr "Eklentiler"
1382
 
1383
  #: src/admin.php:538, src/templates/wp-admin/settings/tab-bar.php:8
1384
  msgid "Advanced Tools"
1385
+ msgstr "Gelişmiş araçlar"
1386
 
1387
  #: src/addons/googlecloud.php:966
1388
  msgid "Bucket location"
1516
 
1517
  #: src/backup.php:1579
1518
  msgid "the options table was not found"
1519
+ msgstr "seçenekler tablosu bulunamadı"
1520
 
1521
  #: src/backup.php:1577
1522
  msgid "no options or sitemeta table was found"
1536
 
1537
  #: src/templates/wp-admin/advanced/site-info.php:49
1538
  msgid "Not installed"
1539
+ msgstr "Kurulmadı"
1540
 
1541
  #: src/addons/googlecloud.php:951, src/addons/s3-enhanced.php:54
1542
  msgid "Storage class"
1629
 
1630
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:6
1631
  msgid "Select all"
1632
+ msgstr "Hepsini seç"
1633
 
1634
  #: src/templates/wp-admin/settings/delete-and-restore-modals.php:4
1635
  msgid "Actions upon selected backups"
1653
 
1654
  #: src/admin.php:730
1655
  msgid "week(s)"
1656
+ msgstr "hafta(lar)"
1657
 
1658
  #: src/admin.php:729
1659
  msgid "hour(s)"
1660
+ msgstr "saat(ler)"
1661
 
1662
  #: src/admin.php:728
1663
  msgid "day(s)"
1664
+ msgstr "gün(ler)"
1665
 
1666
  #: src/admin.php:727
1667
  msgid "in the month"
1668
+ msgstr "ay içinde"
1669
 
1670
  #: src/admin.php:726
1671
  msgid "day"
1689
 
1690
  #: src/methods/updraftvault.php:645
1691
  msgid "You do not currently have any UpdraftPlus Vault quota"
1692
+ msgstr "Şuan da bir UpdraftPlus Vault kotasına sahip değilsiniz"
1693
 
1694
  #: src/class-updraftplus.php:4714
1695
  msgid "You must upgrade MySQL to be able to use this database."
2189
 
2190
  #: src/addons/onedrive.php:618, src/methods/updraftvault.php:618
2191
  msgid "To remove the block, please go here."
2192
+ msgstr "Bloğu kaldırmak için lütfen buraya gidin."
2193
 
2194
  #: src/addons/s3-enhanced.php:450
2195
  msgid "Do remember to save your settings."
2358
  #: src/addons/onedrive.php:618, src/methods/updraftvault.php:618,
2359
  #: src/udaddons/updraftplus-addons.php:816
2360
  msgid "UpdraftPlus.com has responded with 'Access Denied'."
2361
+ msgstr "UpdraftPlus.com 'Erişim Reddedildi' cevabını verdi."
2362
 
2363
  #: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
2364
  msgid "Premium WooCommerce plugins"
2430
  #: src/templates/wp-admin/settings/tab-addons.php:135,
2431
  #: src/templates/wp-admin/settings/tab-addons.php:136
2432
  msgid "Backup non-WordPress files and databases"
2433
+ msgstr "WordPress dosyalarını ve veritabanını yedekle"
2434
 
2435
  #: src/templates/wp-admin/settings/tab-addons.php:19
2436
  msgid "Ask a pre-sales question"
2587
  #: src/addons/lockadmin.php:141,
2588
  #: src/templates/wp-admin/advanced/lock-admin.php:7
2589
  msgid "Lock access to the UpdraftPlus settings page"
2590
+ msgstr "UpdraftPlus ayarlar sayfasına erişimi kilitle"
2591
 
2592
  #: src/addons/lockadmin.php:117
2593
  msgid "The admin password has been changed."
3814
 
3815
  #: src/addons/reporting.php:211, src/admin.php:3313
3816
  msgid "Uploaded to:"
3817
+ msgstr "Şuraya yüklendi:"
3818
 
3819
  #: src/addons/reporting.php:210
3820
  msgid "Time taken:"
4048
 
4049
  #: src/restorer.php:149
4050
  msgid "You should check the file ownerships and permissions in your WordPress installation"
4051
+ msgstr "WordPress yüklemenizdeki dosya izinlerini ve sahipliklerini kontrol etmelisiniz"
4052
 
4053
  #: src/templates/wp-admin/settings/form-contents.php:176
4054
  msgid "See also the \"More Files\" add-on from our shop."
5780
 
5781
  #: src/admin.php:3176
5782
  msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
5783
+ msgstr "Web sunucunuzun PHP/Curl yüklemesi https erişimini desteklemiyor. %s ile iletişimler kriptosuz olacak. Kriptolama (eklenti ile) için barındırma firmanızdan Curl/SSL yüklemesini isteyin."
5784
 
5785
  #: src/methods/cloudfiles-new.php:107, src/methods/cloudfiles.php:468,
5786
  #: src/methods/openstack-base.php:541, src/methods/s3.php:825
6397
 
6398
  #: src/includes/updraftplus-notices.php:102
6399
  msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
6400
+ msgstr "Lütfen wordpress.org sitesinde olumlu bir inceleme girerek UpdraftPlus'a yardımcı olun."
6401
 
6402
  #: src/includes/updraftplus-notices.php:101
6403
  msgid "Like UpdraftPlus and can spare one minute?"
languages/updraftplus.pot CHANGED
@@ -117,7 +117,7 @@ msgstr ""
117
  msgid "%s Error"
118
  msgstr ""
119
 
120
- #: src/addons/azure.php:217, src/class-updraftplus.php:4340, src/methods/googledrive.php:1006, src/methods/s3.php:316
121
  msgid "File not found"
122
  msgstr ""
123
 
@@ -165,7 +165,7 @@ msgstr ""
165
  msgid "This is not your Azure login - see the instructions if needing more guidance."
166
  msgstr ""
167
 
168
- #: src/addons/azure.php:549, src/addons/migrator.php:2200, src/addons/sftp.php:439, src/admin.php:711, src/admin.php:4362
169
  msgid "Key"
170
  msgstr ""
171
 
@@ -269,7 +269,7 @@ msgstr ""
269
  msgid "Cloud Files authentication failed"
270
  msgstr ""
271
 
272
- #: src/addons/cloudfiles-enhanced.php:102, src/addons/migrator.php:772, src/addons/migrator.php:1018, src/addons/migrator.php:1099, src/addons/migrator.php:1146, src/addons/migrator.php:1380, src/addons/migrator.php:1706, src/addons/migrator.php:1733, src/addons/migrator.php:1739, src/addons/migrator.php:1801, src/addons/migrator.php:1841, src/addons/migrator.php:1880, src/addons/migrator.php:1890, src/addons/migrator.php:1895, src/addons/s3-enhanced.php:127, src/addons/s3-enhanced.php:132, src/addons/s3-enhanced.php:134, src/addons/sftp.php:814, src/addons/webdav.php:119, src/admin.php:82, src/admin.php:662, src/admin.php:3778, src/admin.php:3808, src/methods/remotesend.php:71, src/methods/remotesend.php:239, src/methods/updraftvault.php:465, src/restorer.php:1408
273
  msgid "Error:"
274
  msgstr ""
275
 
@@ -481,7 +481,7 @@ msgstr ""
481
  msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
482
  msgstr ""
483
 
484
- #: src/addons/googlecloud.php:432, src/addons/migrator.php:462, src/admin.php:1935, src/admin.php:1982, src/admin.php:1990, src/class-updraftplus.php:886, src/class-updraftplus.php:892, src/class-updraftplus.php:4544, src/class-updraftplus.php:4546, src/class-updraftplus.php:4672, src/class-updraftplus.php:4679, src/class-updraftplus.php:4714, src/methods/googledrive.php:369, src/methods/s3.php:316
485
  msgid "Error: %s"
486
  msgstr ""
487
 
@@ -677,7 +677,7 @@ msgstr ""
677
  msgid "Please make sure that you have made a note of the password!"
678
  msgstr ""
679
 
680
- #: src/addons/lockadmin.php:156, src/addons/moredatabase.php:246, src/addons/sftp.php:431, src/addons/webdav.php:109, src/methods/openstack2.php:158, src/methods/updraftvault.php:346, src/udaddons/options.php:132
681
  msgid "Password"
682
  msgstr ""
683
 
@@ -821,7 +821,7 @@ msgstr ""
821
  msgid "Go"
822
  msgstr ""
823
 
824
- #: src/addons/migrator.php:333, src/admin.php:2229, src/class-updraftplus.php:4683, src/restorer.php:2033
825
  msgid "Warning:"
826
  msgstr ""
827
 
@@ -1017,11 +1017,11 @@ msgstr ""
1017
  msgid "Testing connection..."
1018
  msgstr ""
1019
 
1020
- #: src/addons/migrator.php:1767, src/admin.php:2808, src/admin.php:2842, src/admin.php:2846, src/admin.php:3763, src/admin.php:3776, src/restorer.php:2273, src/restorer.php:2378
1021
  msgid "OK"
1022
  msgstr ""
1023
 
1024
- #: src/addons/migrator.php:1771, src/addons/moredatabase.php:247, src/addons/reporting.php:248, src/admin.php:299, src/admin.php:3300, src/admin.php:3373, src/admin.php:3862, src/includes/class-wpadmin-commands.php:147, src/includes/class-wpadmin-commands.php:480, src/templates/wp-admin/settings/delete-and-restore-modals.php:81, src/templates/wp-admin/settings/delete-and-restore-modals.php:83
1025
  msgid "Database"
1026
  msgstr ""
1027
 
@@ -1550,7 +1550,7 @@ msgstr ""
1550
  msgid "Your label for this backup (optional)"
1551
  msgstr ""
1552
 
1553
- #: src/addons/reporting.php:70, src/addons/reporting.php:169, src/backup.php:960, src/class-updraftplus.php:4616
1554
  msgid "Backup of:"
1555
  msgstr ""
1556
 
@@ -1899,7 +1899,7 @@ msgid "The key provided was not in a valid format, or was corrupt."
1899
  msgstr ""
1900
 
1901
  #: src/addons/sftp.php:346
1902
- msgid "UpdraftPlus debug mode is on: detailed debugging data follows.n"
1903
  msgstr ""
1904
 
1905
  #: src/addons/sftp.php:405
@@ -2011,7 +2011,7 @@ msgstr ""
2011
  msgid "At the same time as the files backup"
2012
  msgstr ""
2013
 
2014
- #: src/admin.php:295, src/admin.php:4335
2015
  msgid "Files"
2016
  msgstr ""
2017
 
@@ -2111,11 +2111,11 @@ msgstr ""
2111
  msgid "Error: the server sent us a response which we did not understand."
2112
  msgstr ""
2113
 
2114
- #: src/admin.php:661, src/admin.php:3902
2115
  msgid "Error data:"
2116
  msgstr ""
2117
 
2118
- #: src/admin.php:663, src/admin.php:1609, src/admin.php:3761, src/class-updraftplus.php:1157, src/class-updraftplus.php:1201, src/methods/addon-base-v2.php:95, src/methods/addon-base-v2.php:100, src/methods/addon-base-v2.php:205, src/methods/addon-base-v2.php:225, src/methods/stream-base.php:200, src/restorer.php:2269, src/restorer.php:2294, src/restorer.php:2375, src/updraftplus.php:156
2119
  msgid "Error"
2120
  msgstr ""
2121
 
@@ -2231,7 +2231,7 @@ msgstr ""
2231
  msgid "Saving..."
2232
  msgstr ""
2233
 
2234
- #: src/admin.php:698, src/methods/updraftvault.php:302, src/methods/updraftvault.php:347, src/udaddons/options.php:246
2235
  msgid "Connect"
2236
  msgstr ""
2237
 
@@ -2515,11 +2515,11 @@ msgstr ""
2515
  msgid "Error: invalid path"
2516
  msgstr ""
2517
 
2518
- #: src/admin.php:1227, src/admin.php:3873, src/class-updraftplus.php:2088, src/class-updraftplus.php:2153, src/class-updraftplus.php:2287
2519
  msgid "A PHP exception (%s) has occurred: %s"
2520
  msgstr ""
2521
 
2522
- #: src/admin.php:1234, src/admin.php:3881, src/class-updraftplus.php:2095, src/class-updraftplus.php:2160, src/class-updraftplus.php:2294
2523
  msgid "A PHP fatal error (%s) has occurred: %s"
2524
  msgstr ""
2525
 
@@ -3000,131 +3000,127 @@ msgstr ""
3000
  msgid "Delete this backup set"
3001
  msgstr ""
3002
 
3003
- #: src/admin.php:3543
3004
- msgid "No backup log)"
3005
- msgstr ""
3006
-
3007
- #: src/admin.php:3562
3008
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
3009
  msgstr ""
3010
 
3011
- #: src/admin.php:3563
3012
  msgid "Backup does not exist in the backup history"
3013
  msgstr ""
3014
 
3015
- #: src/admin.php:3592
3016
  msgid "Why am I seeing this?"
3017
  msgstr ""
3018
 
3019
- #: src/admin.php:3610
3020
  msgid "UpdraftPlus Restoration: Progress"
3021
  msgstr ""
3022
 
3023
- #: src/admin.php:3612
3024
  msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
3025
  msgstr ""
3026
 
3027
- #: src/admin.php:3656
3028
  msgid "ABORT: Could not find the information on which entities to restore."
3029
  msgstr ""
3030
 
3031
- #: src/admin.php:3657
3032
  msgid "If making a request for support, please include this information:"
3033
  msgstr ""
3034
 
3035
- #: src/admin.php:3706
3036
  msgid "Final checks"
3037
  msgstr ""
3038
 
3039
- #: src/admin.php:3733
3040
  msgid "Skipping restoration of WordPress core when importing a single site into a multisite installation. If you had anything necessary in your WordPress directory then you will need to re-add it manually from the zip file."
3041
  msgstr ""
3042
 
3043
- #: src/admin.php:3745
3044
  msgid "Looking for %s archive: file name: %s"
3045
  msgstr ""
3046
 
3047
- #: src/admin.php:3748
3048
  msgid "Skipping: this archive was already restored."
3049
  msgstr ""
3050
 
3051
- #: src/admin.php:3758
3052
  msgid "File is not locally present - needs retrieving from remote storage"
3053
  msgstr ""
3054
 
3055
- #: src/admin.php:3773
3056
  msgid "Archive is expected to be size:"
3057
  msgstr ""
3058
 
3059
- #: src/admin.php:3778
3060
  msgid "file is size:"
3061
  msgstr ""
3062
 
3063
- #: src/admin.php:3781
3064
  msgid "The backup records do not contain information about the proper size of this file."
3065
  msgstr ""
3066
 
3067
- #: src/admin.php:3784, src/admin.php:3785
3068
  msgid "Could not find one of the files for restoration"
3069
  msgstr ""
3070
 
3071
- #: src/admin.php:3894
3072
  msgid "Error message"
3073
  msgstr ""
3074
 
3075
- #: src/admin.php:3904, src/templates/wp-admin/settings/downloading-and-restoring.php:28
3076
  msgid "Please consult this FAQ for help on what to do about it."
3077
  msgstr ""
3078
 
3079
- #: src/admin.php:4077
3080
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
3081
  msgstr ""
3082
 
3083
- #: src/admin.php:4077
3084
  msgid "settings"
3085
  msgstr ""
3086
 
3087
- #: src/admin.php:4077
3088
  msgid "Not got any remote storage?"
3089
  msgstr ""
3090
 
3091
- #: src/admin.php:4077
3092
  msgid "Check out UpdraftPlus Vault."
3093
  msgstr ""
3094
 
3095
- #: src/admin.php:4079
3096
  msgid "Send this backup to remote storage"
3097
  msgstr ""
3098
 
3099
- #: src/admin.php:4166
3100
  msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
3101
  msgstr ""
3102
 
3103
- #: src/admin.php:4173, src/templates/wp-admin/settings/tab-status.php:27
3104
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
3105
  msgstr ""
3106
 
3107
- #: src/admin.php:4202
3108
  msgid "Your settings have been saved."
3109
  msgstr ""
3110
 
3111
- #: src/admin.php:4207
3112
  msgid "Your settings failed to save. Please refresh the settings page and try again"
3113
  msgstr ""
3114
 
3115
- #: src/admin.php:4255
3116
  msgid "Your settings have been wiped."
3117
  msgstr ""
3118
 
3119
- #: src/admin.php:4329
3120
  msgid "Known backups (raw)"
3121
  msgstr ""
3122
 
3123
- #: src/admin.php:4359
3124
  msgid "Options (raw)"
3125
  msgstr ""
3126
 
3127
- #: src/admin.php:4362
3128
  msgid "Value"
3129
  msgstr ""
3130
 
@@ -3444,10 +3440,6 @@ msgstr ""
3444
  msgid "Your free disk space is very low - only %s Mb remain"
3445
  msgstr ""
3446
 
3447
- #: src/class-updraftplus.php:946
3448
- msgid "$pre_line"
3449
- msgstr ""
3450
-
3451
  #: src/class-updraftplus.php:1117, src/methods/cloudfiles.php:223
3452
  msgid "%s error - failed to re-assemble chunks"
3453
  msgstr ""
@@ -3520,155 +3512,155 @@ msgstr ""
3520
  msgid "The backup has not finished; a resumption is scheduled"
3521
  msgstr ""
3522
 
3523
- #: src/class-updraftplus.php:3604
3524
  msgid "Could not read the directory"
3525
  msgstr ""
3526
 
3527
- #: src/class-updraftplus.php:3638
3528
  msgid "Could not save backup history because we have no backup array. Backup probably failed."
3529
  msgstr ""
3530
 
3531
- #: src/class-updraftplus.php:4228, src/class-updraftplus.php:4544, src/restorer.php:376
3532
  msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
3533
  msgstr ""
3534
 
3535
- #: src/class-updraftplus.php:4247, src/class-updraftplus.php:4556, src/restorer.php:389
3536
  msgid "Decryption failed. The most likely cause is that you used the wrong key."
3537
  msgstr ""
3538
 
3539
- #: src/class-updraftplus.php:4247
3540
  msgid "The decryption key used:"
3541
  msgstr ""
3542
 
3543
- #: src/class-updraftplus.php:4546
3544
  msgid "Decryption failed. The database file is encrypted."
3545
  msgstr ""
3546
 
3547
- #: src/class-updraftplus.php:4565
3548
  msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
3549
  msgstr ""
3550
 
3551
- #: src/class-updraftplus.php:4573
3552
  msgid "Failed to open database file."
3553
  msgstr ""
3554
 
3555
- #: src/class-updraftplus.php:4616
3556
  msgid "(version: %s)"
3557
  msgstr ""
3558
 
3559
- #: src/class-updraftplus.php:4621, src/class-updraftplus.php:4639
3560
  msgid "This backup set is from a different site - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
3561
  msgstr ""
3562
 
3563
- #: src/class-updraftplus.php:4628, src/restorer.php:1010
3564
  msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
3565
  msgstr ""
3566
 
3567
- #: src/class-updraftplus.php:4628, src/restorer.php:1010
3568
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
3569
  msgstr ""
3570
 
3571
- #: src/class-updraftplus.php:4648, src/class-updraftplus.php:4655
3572
  msgid "%s version: %s"
3573
  msgstr ""
3574
 
3575
- #: src/class-updraftplus.php:4649
3576
  msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
3577
  msgstr ""
3578
 
3579
- #: src/class-updraftplus.php:4656
3580
  msgid "The site in this backup was running on a webserver with version %s of %s. "
3581
  msgstr ""
3582
 
3583
- #: src/class-updraftplus.php:4656
3584
  msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
3585
  msgstr ""
3586
 
3587
- #: src/class-updraftplus.php:4656
3588
  msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
3589
  msgstr ""
3590
 
3591
- #: src/class-updraftplus.php:4656
3592
  msgid "Any support requests to do with %s should be raised with your web hosting company."
3593
  msgstr ""
3594
 
3595
- #: src/class-updraftplus.php:4661, src/restorer.php:1688, src/restorer.php:1777, src/restorer.php:1803
3596
  msgid "Old table prefix:"
3597
  msgstr ""
3598
 
3599
- #: src/class-updraftplus.php:4664
3600
  msgid "Backup label:"
3601
  msgstr ""
3602
 
3603
- #: src/class-updraftplus.php:4672, src/class-updraftplus.php:4675, src/restorer.php:154
3604
  msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
3605
  msgstr ""
3606
 
3607
- #: src/class-updraftplus.php:4675
3608
  msgid "It will be imported as a new site."
3609
  msgstr ""
3610
 
3611
- #: src/class-updraftplus.php:4675
3612
  msgid "Please read this link for important information on this process."
3613
  msgstr ""
3614
 
3615
- #: src/class-updraftplus.php:4679, src/restorer.php:1700
3616
  msgid "To import an ordinary WordPress site into a multisite installation requires %s."
3617
  msgstr ""
3618
 
3619
- #: src/class-updraftplus.php:4683
3620
  msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
3621
  msgstr ""
3622
 
3623
- #: src/class-updraftplus.php:4683
3624
  msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
3625
  msgstr ""
3626
 
3627
- #: src/class-updraftplus.php:4690, src/restorer.php:1706
3628
  msgid "Site information:"
3629
  msgstr ""
3630
 
3631
- #: src/class-updraftplus.php:4714
3632
  msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
3633
  msgstr ""
3634
 
3635
- #: src/class-updraftplus.php:4714
3636
  msgid "You must upgrade MySQL to be able to use this database."
3637
  msgstr ""
3638
 
3639
- #: src/class-updraftplus.php:4761
3640
  msgid "This database backup is missing core WordPress tables: %s"
3641
  msgstr ""
3642
 
3643
- #: src/class-updraftplus.php:4764
3644
  msgid "This database backup has the following WordPress tables excluded: %s"
3645
  msgstr ""
3646
 
3647
- #: src/class-updraftplus.php:4769
3648
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
3649
  msgstr ""
3650
 
3651
- #: src/class-updraftplus.php:4786, src/methods/ftp.php:309
3652
  msgid "Your web server's PHP installation has these functions disabled: %s."
3653
  msgstr ""
3654
 
3655
- #: src/class-updraftplus.php:4786, src/methods/ftp.php:309, src/restorer.php:1493
3656
  msgid "Your hosting company must enable these functions before %s can work."
3657
  msgstr ""
3658
 
3659
- #: src/class-updraftplus.php:4786, src/restorer.php:1493
3660
  msgid "restoration"
3661
  msgstr ""
3662
 
3663
- #: src/class-updraftplus.php:4806
3664
  msgid "The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver."
3665
  msgstr ""
3666
 
3667
- #: src/class-updraftplus.php:4813, src/class-updraftplus.php:4834
3668
  msgid "The attempt to undo the double-compression failed."
3669
  msgstr ""
3670
 
3671
- #: src/class-updraftplus.php:4836
3672
  msgid "The attempt to undo the double-compression succeeded."
3673
  msgstr ""
3674
 
@@ -4008,7 +4000,7 @@ msgstr ""
4008
  msgid "No settings were found"
4009
  msgstr ""
4010
 
4011
- #: src/methods/cloudfiles.php:422
4012
  msgid "Error downloading remote file: Failed to download"
4013
  msgstr ""
4014
 
@@ -4320,10 +4312,6 @@ msgstr ""
4320
  msgid "The %s object was not found"
4321
  msgstr ""
4322
 
4323
- #: src/methods/openstack-base.php:420
4324
- msgid "Error downloading remote file: Failed to download. (.$e->getMessage.)"
4325
- msgstr ""
4326
-
4327
  #: src/methods/openstack-base.php:490
4328
  msgid "%s error - we accessed the container, but failed to create a file within it"
4329
  msgstr ""
@@ -4566,18 +4554,10 @@ msgstr ""
4566
  msgid "Enter your UpdraftPlus.Com email / password here to connect:"
4567
  msgstr ""
4568
 
4569
- #: src/methods/updraftvault.php:345
4570
- msgid "__E-mail"
4571
- msgstr ""
4572
-
4573
  #: src/methods/updraftvault.php:345
4574
  msgid "E-mail"
4575
  msgstr ""
4576
 
4577
- #: src/methods/updraftvault.php:346
4578
- msgid "__Password"
4579
- msgstr ""
4580
-
4581
  #: src/methods/updraftvault.php:350
4582
  msgid "Don't know your email address, or forgotten your password?"
4583
  msgstr ""
@@ -4626,7 +4606,7 @@ msgstr ""
4626
  msgid "Refresh current status"
4627
  msgstr ""
4628
 
4629
- #: src/methods/updraftvault.php:568, src/udaddons/options.php:267
4630
  msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
4631
  msgstr ""
4632
 
@@ -5464,7 +5444,7 @@ msgstr ""
5464
  msgid "Back up more databases"
5465
  msgstr ""
5466
 
5467
- #: src/templates/wp-admin/settings/form-contents.php:285, src/udaddons/options.php:130
5468
  msgid "Email"
5469
  msgstr ""
5470
 
@@ -5908,143 +5888,143 @@ msgstr ""
5908
  msgid "You do seem to have the obsolete Updraft plugin installed - perhaps you got them confused?"
5909
  msgstr ""
5910
 
5911
- #: src/udaddons/options.php:115
5912
- msgid "Your web server's version of PHP is too old (.phpversion.) - UpdraftPlus expects at least %s. You can try it, but don't be surprised if it does not work. To fix this problem, contact your web hosting company"
5913
  msgstr ""
5914
 
5915
- #: src/udaddons/options.php:128
5916
  msgid "Connect with your UpdraftPlus.Com account"
5917
  msgstr ""
5918
 
5919
- #: src/udaddons/options.php:161
5920
  msgid "Not yet got an account (it's free)? Go get one!"
5921
  msgstr ""
5922
 
5923
- #: src/udaddons/options.php:172
5924
  msgid "Forgotten your details?"
5925
  msgstr ""
5926
 
5927
- #: src/udaddons/options.php:244
5928
  msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
5929
  msgstr ""
5930
 
5931
- #: src/udaddons/options.php:273
5932
  msgid "You are presently <strong>connected</strong> to an UpdraftPlus.Com account."
5933
  msgstr ""
5934
 
5935
- #: src/udaddons/options.php:274
5936
  msgid "If you bought new add-ons, then follow this link to refresh your connection"
5937
  msgstr ""
5938
 
5939
- #: src/udaddons/options.php:275
5940
  msgid "Note that after you have claimed your add-ons, you can remove your password (but not the email address) from the settings below, without affecting this site's access to updates."
5941
  msgstr ""
5942
 
5943
- #: src/udaddons/options.php:278
5944
  msgid "You are presently <strong>not connected</strong> to an UpdraftPlus.Com account."
5945
  msgstr ""
5946
 
5947
- #: src/udaddons/options.php:285
5948
  msgid "Errors occurred when trying to connect to UpdraftPlus.Com:"
5949
  msgstr ""
5950
 
5951
- #: src/udaddons/options.php:332
5952
  msgid "Please wait whilst we make the claim..."
5953
  msgstr ""
5954
 
5955
- #: src/udaddons/options.php:333
5956
  msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
5957
  msgstr ""
5958
 
5959
- #: src/udaddons/options.php:334
5960
  msgid "Claim not granted - your account login details were wrong"
5961
  msgstr ""
5962
 
5963
- #: src/udaddons/options.php:335
5964
  msgid "An unknown response was received. Response was:"
5965
  msgstr ""
5966
 
5967
- #: src/udaddons/options.php:365, src/udaddons/updraftplus-addons.php:290
5968
  msgid "UpdraftPlus Addons"
5969
  msgstr ""
5970
 
5971
- #: src/udaddons/options.php:376
5972
  msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
5973
  msgstr ""
5974
 
5975
- #: src/udaddons/options.php:402
5976
  msgid "An error occurred when trying to retrieve your add-ons."
5977
  msgstr ""
5978
 
5979
- #: src/udaddons/options.php:418
5980
  msgid "UpdraftPlus Support"
5981
  msgstr ""
5982
 
5983
- #: src/udaddons/options.php:420
5984
  msgid "Need to get support?"
5985
  msgstr ""
5986
 
5987
- #: src/udaddons/options.php:420
5988
  msgid "Go here"
5989
  msgstr ""
5990
 
5991
- #: src/udaddons/options.php:457, src/udaddons/options.php:457
5992
  msgid "You've got it"
5993
  msgstr ""
5994
 
5995
- #: src/udaddons/options.php:459
5996
  msgid "Your version: %s"
5997
  msgstr ""
5998
 
5999
- #: src/udaddons/options.php:461, src/udaddons/options.php:463
6000
  msgid "latest"
6001
  msgstr ""
6002
 
6003
- #: src/udaddons/options.php:465
6004
  msgid "(apparently a pre-release or withdrawn release)"
6005
  msgstr ""
6006
 
6007
- #: src/udaddons/options.php:471
6008
  msgid "Available for this site (via your all-addons purchase)"
6009
  msgstr ""
6010
 
6011
- #: src/udaddons/options.php:471
6012
  msgid "please follow this link to update the plugin in order to get it"
6013
  msgstr ""
6014
 
6015
- #: src/udaddons/options.php:474
6016
  msgid "Assigned to this site"
6017
  msgstr ""
6018
 
6019
- #: src/udaddons/options.php:474
6020
  msgid "please follow this link to update the plugin in order to activate it"
6021
  msgstr ""
6022
 
6023
- #: src/udaddons/options.php:482
6024
  msgid "Available to claim on this site"
6025
  msgstr ""
6026
 
6027
- #: src/udaddons/options.php:482, src/udaddons/options.php:484
6028
  msgid "activate it on this site"
6029
  msgstr ""
6030
 
6031
- #: src/udaddons/options.php:484
6032
  msgid "You have an inactive purchase"
6033
  msgstr ""
6034
 
6035
- #: src/udaddons/options.php:488
6036
  msgid "Get it from the UpdraftPlus.Com Store"
6037
  msgstr ""
6038
 
6039
- #: src/udaddons/options.php:488
6040
  msgid "(or connect using the form on this page if you have already purchased it)"
6041
  msgstr ""
6042
 
6043
- #: src/udaddons/options.php:489, src/udaddons/options.php:489
6044
  msgid "Buy It"
6045
  msgstr ""
6046
 
6047
- #: src/udaddons/options.php:553
6048
  msgid "Manage Addons"
6049
  msgstr ""
6050
 
117
  msgid "%s Error"
118
  msgstr ""
119
 
120
+ #: src/addons/azure.php:217, src/class-updraftplus.php:4339, src/methods/googledrive.php:1006, src/methods/s3.php:316
121
  msgid "File not found"
122
  msgstr ""
123
 
165
  msgid "This is not your Azure login - see the instructions if needing more guidance."
166
  msgstr ""
167
 
168
+ #: src/addons/azure.php:549, src/addons/migrator.php:2200, src/addons/sftp.php:439, src/admin.php:711, src/admin.php:4360
169
  msgid "Key"
170
  msgstr ""
171
 
269
  msgid "Cloud Files authentication failed"
270
  msgstr ""
271
 
272
+ #: src/addons/cloudfiles-enhanced.php:102, src/addons/migrator.php:772, src/addons/migrator.php:1018, src/addons/migrator.php:1099, src/addons/migrator.php:1146, src/addons/migrator.php:1380, src/addons/migrator.php:1706, src/addons/migrator.php:1733, src/addons/migrator.php:1739, src/addons/migrator.php:1801, src/addons/migrator.php:1841, src/addons/migrator.php:1880, src/addons/migrator.php:1890, src/addons/migrator.php:1895, src/addons/s3-enhanced.php:127, src/addons/s3-enhanced.php:132, src/addons/s3-enhanced.php:134, src/addons/sftp.php:814, src/addons/webdav.php:119, src/admin.php:82, src/admin.php:662, src/admin.php:3776, src/admin.php:3806, src/methods/remotesend.php:71, src/methods/remotesend.php:239, src/methods/updraftvault.php:465, src/restorer.php:1408
273
  msgid "Error:"
274
  msgstr ""
275
 
481
  msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
482
  msgstr ""
483
 
484
+ #: src/addons/googlecloud.php:432, src/addons/migrator.php:462, src/admin.php:1935, src/admin.php:1982, src/admin.php:1990, src/class-updraftplus.php:886, src/class-updraftplus.php:892, src/class-updraftplus.php:4543, src/class-updraftplus.php:4545, src/class-updraftplus.php:4671, src/class-updraftplus.php:4678, src/class-updraftplus.php:4713, src/methods/googledrive.php:369, src/methods/s3.php:316
485
  msgid "Error: %s"
486
  msgstr ""
487
 
677
  msgid "Please make sure that you have made a note of the password!"
678
  msgstr ""
679
 
680
+ #: src/addons/lockadmin.php:156, src/addons/moredatabase.php:246, src/addons/sftp.php:431, src/addons/webdav.php:109, src/methods/openstack2.php:158, src/methods/updraftvault.php:346, src/udaddons/options.php:135
681
  msgid "Password"
682
  msgstr ""
683
 
821
  msgid "Go"
822
  msgstr ""
823
 
824
+ #: src/addons/migrator.php:333, src/admin.php:2229, src/class-updraftplus.php:4682, src/restorer.php:2033
825
  msgid "Warning:"
826
  msgstr ""
827
 
1017
  msgid "Testing connection..."
1018
  msgstr ""
1019
 
1020
+ #: src/addons/migrator.php:1767, src/admin.php:2808, src/admin.php:2842, src/admin.php:2846, src/admin.php:3761, src/admin.php:3774, src/restorer.php:2273, src/restorer.php:2378
1021
  msgid "OK"
1022
  msgstr ""
1023
 
1024
+ #: src/addons/migrator.php:1771, src/addons/moredatabase.php:247, src/addons/reporting.php:248, src/admin.php:299, src/admin.php:3300, src/admin.php:3373, src/admin.php:3860, src/includes/class-wpadmin-commands.php:147, src/includes/class-wpadmin-commands.php:480, src/templates/wp-admin/settings/delete-and-restore-modals.php:81, src/templates/wp-admin/settings/delete-and-restore-modals.php:83
1025
  msgid "Database"
1026
  msgstr ""
1027
 
1550
  msgid "Your label for this backup (optional)"
1551
  msgstr ""
1552
 
1553
+ #: src/addons/reporting.php:70, src/addons/reporting.php:169, src/backup.php:960, src/class-updraftplus.php:4615
1554
  msgid "Backup of:"
1555
  msgstr ""
1556
 
1899
  msgstr ""
1900
 
1901
  #: src/addons/sftp.php:346
1902
+ msgid "UpdraftPlus debug mode is on: detailed debugging data follows."
1903
  msgstr ""
1904
 
1905
  #: src/addons/sftp.php:405
2011
  msgid "At the same time as the files backup"
2012
  msgstr ""
2013
 
2014
+ #: src/admin.php:295, src/admin.php:4333
2015
  msgid "Files"
2016
  msgstr ""
2017
 
2111
  msgid "Error: the server sent us a response which we did not understand."
2112
  msgstr ""
2113
 
2114
+ #: src/admin.php:661, src/admin.php:3900
2115
  msgid "Error data:"
2116
  msgstr ""
2117
 
2118
+ #: src/admin.php:663, src/admin.php:1609, src/admin.php:3759, src/class-updraftplus.php:1157, src/class-updraftplus.php:1201, src/methods/addon-base-v2.php:95, src/methods/addon-base-v2.php:100, src/methods/addon-base-v2.php:205, src/methods/addon-base-v2.php:225, src/methods/stream-base.php:200, src/restorer.php:2269, src/restorer.php:2294, src/restorer.php:2375, src/updraftplus.php:156
2119
  msgid "Error"
2120
  msgstr ""
2121
 
2231
  msgid "Saving..."
2232
  msgstr ""
2233
 
2234
+ #: src/admin.php:698, src/methods/updraftvault.php:302, src/methods/updraftvault.php:347, src/udaddons/options.php:249
2235
  msgid "Connect"
2236
  msgstr ""
2237
 
2515
  msgid "Error: invalid path"
2516
  msgstr ""
2517
 
2518
+ #: src/admin.php:1227, src/admin.php:3871, src/class-updraftplus.php:2088, src/class-updraftplus.php:2153, src/class-updraftplus.php:2287
2519
  msgid "A PHP exception (%s) has occurred: %s"
2520
  msgstr ""
2521
 
2522
+ #: src/admin.php:1234, src/admin.php:3879, src/class-updraftplus.php:2095, src/class-updraftplus.php:2160, src/class-updraftplus.php:2294
2523
  msgid "A PHP fatal error (%s) has occurred: %s"
2524
  msgstr ""
2525
 
3000
  msgid "Delete this backup set"
3001
  msgstr ""
3002
 
3003
+ #: src/admin.php:3560
 
 
 
 
3004
  msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
3005
  msgstr ""
3006
 
3007
+ #: src/admin.php:3561
3008
  msgid "Backup does not exist in the backup history"
3009
  msgstr ""
3010
 
3011
+ #: src/admin.php:3590
3012
  msgid "Why am I seeing this?"
3013
  msgstr ""
3014
 
3015
+ #: src/admin.php:3608
3016
  msgid "UpdraftPlus Restoration: Progress"
3017
  msgstr ""
3018
 
3019
+ #: src/admin.php:3610
3020
  msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
3021
  msgstr ""
3022
 
3023
+ #: src/admin.php:3654
3024
  msgid "ABORT: Could not find the information on which entities to restore."
3025
  msgstr ""
3026
 
3027
+ #: src/admin.php:3655
3028
  msgid "If making a request for support, please include this information:"
3029
  msgstr ""
3030
 
3031
+ #: src/admin.php:3704
3032
  msgid "Final checks"
3033
  msgstr ""
3034
 
3035
+ #: src/admin.php:3731
3036
  msgid "Skipping restoration of WordPress core when importing a single site into a multisite installation. If you had anything necessary in your WordPress directory then you will need to re-add it manually from the zip file."
3037
  msgstr ""
3038
 
3039
+ #: src/admin.php:3743
3040
  msgid "Looking for %s archive: file name: %s"
3041
  msgstr ""
3042
 
3043
+ #: src/admin.php:3746
3044
  msgid "Skipping: this archive was already restored."
3045
  msgstr ""
3046
 
3047
+ #: src/admin.php:3756
3048
  msgid "File is not locally present - needs retrieving from remote storage"
3049
  msgstr ""
3050
 
3051
+ #: src/admin.php:3771
3052
  msgid "Archive is expected to be size:"
3053
  msgstr ""
3054
 
3055
+ #: src/admin.php:3776
3056
  msgid "file is size:"
3057
  msgstr ""
3058
 
3059
+ #: src/admin.php:3779
3060
  msgid "The backup records do not contain information about the proper size of this file."
3061
  msgstr ""
3062
 
3063
+ #: src/admin.php:3782, src/admin.php:3783
3064
  msgid "Could not find one of the files for restoration"
3065
  msgstr ""
3066
 
3067
+ #: src/admin.php:3892
3068
  msgid "Error message"
3069
  msgstr ""
3070
 
3071
+ #: src/admin.php:3902, src/templates/wp-admin/settings/downloading-and-restoring.php:28
3072
  msgid "Please consult this FAQ for help on what to do about it."
3073
  msgstr ""
3074
 
3075
+ #: src/admin.php:4075
3076
  msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
3077
  msgstr ""
3078
 
3079
+ #: src/admin.php:4075
3080
  msgid "settings"
3081
  msgstr ""
3082
 
3083
+ #: src/admin.php:4075
3084
  msgid "Not got any remote storage?"
3085
  msgstr ""
3086
 
3087
+ #: src/admin.php:4075
3088
  msgid "Check out UpdraftPlus Vault."
3089
  msgstr ""
3090
 
3091
+ #: src/admin.php:4077
3092
  msgid "Send this backup to remote storage"
3093
  msgstr ""
3094
 
3095
+ #: src/admin.php:4164
3096
  msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
3097
  msgstr ""
3098
 
3099
+ #: src/admin.php:4171, src/templates/wp-admin/settings/tab-status.php:27
3100
  msgid "This button is disabled because your backup directory is not writable (see the settings)."
3101
  msgstr ""
3102
 
3103
+ #: src/admin.php:4200
3104
  msgid "Your settings have been saved."
3105
  msgstr ""
3106
 
3107
+ #: src/admin.php:4205
3108
  msgid "Your settings failed to save. Please refresh the settings page and try again"
3109
  msgstr ""
3110
 
3111
+ #: src/admin.php:4253
3112
  msgid "Your settings have been wiped."
3113
  msgstr ""
3114
 
3115
+ #: src/admin.php:4327
3116
  msgid "Known backups (raw)"
3117
  msgstr ""
3118
 
3119
+ #: src/admin.php:4357
3120
  msgid "Options (raw)"
3121
  msgstr ""
3122
 
3123
+ #: src/admin.php:4360
3124
  msgid "Value"
3125
  msgstr ""
3126
 
3440
  msgid "Your free disk space is very low - only %s Mb remain"
3441
  msgstr ""
3442
 
 
 
 
 
3443
  #: src/class-updraftplus.php:1117, src/methods/cloudfiles.php:223
3444
  msgid "%s error - failed to re-assemble chunks"
3445
  msgstr ""
3512
  msgid "The backup has not finished; a resumption is scheduled"
3513
  msgstr ""
3514
 
3515
+ #: src/class-updraftplus.php:3603
3516
  msgid "Could not read the directory"
3517
  msgstr ""
3518
 
3519
+ #: src/class-updraftplus.php:3637
3520
  msgid "Could not save backup history because we have no backup array. Backup probably failed."
3521
  msgstr ""
3522
 
3523
+ #: src/class-updraftplus.php:4227, src/class-updraftplus.php:4543, src/restorer.php:376
3524
  msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
3525
  msgstr ""
3526
 
3527
+ #: src/class-updraftplus.php:4246, src/class-updraftplus.php:4555, src/restorer.php:389
3528
  msgid "Decryption failed. The most likely cause is that you used the wrong key."
3529
  msgstr ""
3530
 
3531
+ #: src/class-updraftplus.php:4246
3532
  msgid "The decryption key used:"
3533
  msgstr ""
3534
 
3535
+ #: src/class-updraftplus.php:4545
3536
  msgid "Decryption failed. The database file is encrypted."
3537
  msgstr ""
3538
 
3539
+ #: src/class-updraftplus.php:4564
3540
  msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
3541
  msgstr ""
3542
 
3543
+ #: src/class-updraftplus.php:4572
3544
  msgid "Failed to open database file."
3545
  msgstr ""
3546
 
3547
+ #: src/class-updraftplus.php:4615
3548
  msgid "(version: %s)"
3549
  msgstr ""
3550
 
3551
+ #: src/class-updraftplus.php:4620, src/class-updraftplus.php:4638
3552
  msgid "This backup set is from a different site - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
3553
  msgstr ""
3554
 
3555
+ #: src/class-updraftplus.php:4627, src/restorer.php:1010
3556
  msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
3557
  msgstr ""
3558
 
3559
+ #: src/class-updraftplus.php:4627, src/restorer.php:1010
3560
  msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
3561
  msgstr ""
3562
 
3563
+ #: src/class-updraftplus.php:4647, src/class-updraftplus.php:4654
3564
  msgid "%s version: %s"
3565
  msgstr ""
3566
 
3567
+ #: src/class-updraftplus.php:4648
3568
  msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
3569
  msgstr ""
3570
 
3571
+ #: src/class-updraftplus.php:4655
3572
  msgid "The site in this backup was running on a webserver with version %s of %s. "
3573
  msgstr ""
3574
 
3575
+ #: src/class-updraftplus.php:4655
3576
  msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
3577
  msgstr ""
3578
 
3579
+ #: src/class-updraftplus.php:4655
3580
  msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
3581
  msgstr ""
3582
 
3583
+ #: src/class-updraftplus.php:4655
3584
  msgid "Any support requests to do with %s should be raised with your web hosting company."
3585
  msgstr ""
3586
 
3587
+ #: src/class-updraftplus.php:4660, src/restorer.php:1688, src/restorer.php:1777, src/restorer.php:1803
3588
  msgid "Old table prefix:"
3589
  msgstr ""
3590
 
3591
+ #: src/class-updraftplus.php:4663
3592
  msgid "Backup label:"
3593
  msgstr ""
3594
 
3595
+ #: src/class-updraftplus.php:4671, src/class-updraftplus.php:4674, src/restorer.php:154
3596
  msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
3597
  msgstr ""
3598
 
3599
+ #: src/class-updraftplus.php:4674
3600
  msgid "It will be imported as a new site."
3601
  msgstr ""
3602
 
3603
+ #: src/class-updraftplus.php:4674
3604
  msgid "Please read this link for important information on this process."
3605
  msgstr ""
3606
 
3607
+ #: src/class-updraftplus.php:4678, src/restorer.php:1700
3608
  msgid "To import an ordinary WordPress site into a multisite installation requires %s."
3609
  msgstr ""
3610
 
3611
+ #: src/class-updraftplus.php:4682
3612
  msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
3613
  msgstr ""
3614
 
3615
+ #: src/class-updraftplus.php:4682
3616
  msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
3617
  msgstr ""
3618
 
3619
+ #: src/class-updraftplus.php:4689, src/restorer.php:1706
3620
  msgid "Site information:"
3621
  msgstr ""
3622
 
3623
+ #: src/class-updraftplus.php:4713
3624
  msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
3625
  msgstr ""
3626
 
3627
+ #: src/class-updraftplus.php:4713
3628
  msgid "You must upgrade MySQL to be able to use this database."
3629
  msgstr ""
3630
 
3631
+ #: src/class-updraftplus.php:4760
3632
  msgid "This database backup is missing core WordPress tables: %s"
3633
  msgstr ""
3634
 
3635
+ #: src/class-updraftplus.php:4763
3636
  msgid "This database backup has the following WordPress tables excluded: %s"
3637
  msgstr ""
3638
 
3639
+ #: src/class-updraftplus.php:4768
3640
  msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
3641
  msgstr ""
3642
 
3643
+ #: src/class-updraftplus.php:4785, src/methods/ftp.php:309
3644
  msgid "Your web server's PHP installation has these functions disabled: %s."
3645
  msgstr ""
3646
 
3647
+ #: src/class-updraftplus.php:4785, src/methods/ftp.php:309, src/restorer.php:1493
3648
  msgid "Your hosting company must enable these functions before %s can work."
3649
  msgstr ""
3650
 
3651
+ #: src/class-updraftplus.php:4785, src/restorer.php:1493
3652
  msgid "restoration"
3653
  msgstr ""
3654
 
3655
+ #: src/class-updraftplus.php:4805
3656
  msgid "The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver."
3657
  msgstr ""
3658
 
3659
+ #: src/class-updraftplus.php:4812, src/class-updraftplus.php:4833
3660
  msgid "The attempt to undo the double-compression failed."
3661
  msgstr ""
3662
 
3663
+ #: src/class-updraftplus.php:4835
3664
  msgid "The attempt to undo the double-compression succeeded."
3665
  msgstr ""
3666
 
4000
  msgid "No settings were found"
4001
  msgstr ""
4002
 
4003
+ #: src/methods/cloudfiles.php:422, src/methods/openstack-base.php:420
4004
  msgid "Error downloading remote file: Failed to download"
4005
  msgstr ""
4006
 
4312
  msgid "The %s object was not found"
4313
  msgstr ""
4314
 
 
 
 
 
4315
  #: src/methods/openstack-base.php:490
4316
  msgid "%s error - we accessed the container, but failed to create a file within it"
4317
  msgstr ""
4554
  msgid "Enter your UpdraftPlus.Com email / password here to connect:"
4555
  msgstr ""
4556
 
 
 
 
 
4557
  #: src/methods/updraftvault.php:345
4558
  msgid "E-mail"
4559
  msgstr ""
4560
 
 
 
 
 
4561
  #: src/methods/updraftvault.php:350
4562
  msgid "Don't know your email address, or forgotten your password?"
4563
  msgstr ""
4606
  msgid "Refresh current status"
4607
  msgstr ""
4608
 
4609
+ #: src/methods/updraftvault.php:568, src/udaddons/options.php:270
4610
  msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
4611
  msgstr ""
4612
 
5444
  msgid "Back up more databases"
5445
  msgstr ""
5446
 
5447
+ #: src/templates/wp-admin/settings/form-contents.php:285, src/udaddons/options.php:133
5448
  msgid "Email"
5449
  msgstr ""
5450
 
5888
  msgid "You do seem to have the obsolete Updraft plugin installed - perhaps you got them confused?"
5889
  msgstr ""
5890
 
5891
+ #: src/udaddons/options.php:118
5892
+ msgid "Your web server's version of PHP is too old (%s) - UpdraftPlus expects at least %s. You can try it, but don't be surprised if it does not work. To fix this problem, contact your web hosting company"
5893
  msgstr ""
5894
 
5895
+ #: src/udaddons/options.php:131
5896
  msgid "Connect with your UpdraftPlus.Com account"
5897
  msgstr ""
5898
 
5899
+ #: src/udaddons/options.php:164
5900
  msgid "Not yet got an account (it's free)? Go get one!"
5901
  msgstr ""
5902
 
5903
+ #: src/udaddons/options.php:175
5904
  msgid "Forgotten your details?"
5905
  msgstr ""
5906
 
5907
+ #: src/udaddons/options.php:247
5908
  msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
5909
  msgstr ""
5910
 
5911
+ #: src/udaddons/options.php:276
5912
  msgid "You are presently <strong>connected</strong> to an UpdraftPlus.Com account."
5913
  msgstr ""
5914
 
5915
+ #: src/udaddons/options.php:277
5916
  msgid "If you bought new add-ons, then follow this link to refresh your connection"
5917
  msgstr ""
5918
 
5919
+ #: src/udaddons/options.php:278
5920
  msgid "Note that after you have claimed your add-ons, you can remove your password (but not the email address) from the settings below, without affecting this site's access to updates."
5921
  msgstr ""
5922
 
5923
+ #: src/udaddons/options.php:281
5924
  msgid "You are presently <strong>not connected</strong> to an UpdraftPlus.Com account."
5925
  msgstr ""
5926
 
5927
+ #: src/udaddons/options.php:288
5928
  msgid "Errors occurred when trying to connect to UpdraftPlus.Com:"
5929
  msgstr ""
5930
 
5931
+ #: src/udaddons/options.php:335
5932
  msgid "Please wait whilst we make the claim..."
5933
  msgstr ""
5934
 
5935
+ #: src/udaddons/options.php:336
5936
  msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
5937
  msgstr ""
5938
 
5939
+ #: src/udaddons/options.php:337
5940
  msgid "Claim not granted - your account login details were wrong"
5941
  msgstr ""
5942
 
5943
+ #: src/udaddons/options.php:338
5944
  msgid "An unknown response was received. Response was:"
5945
  msgstr ""
5946
 
5947
+ #: src/udaddons/options.php:368, src/udaddons/updraftplus-addons.php:290
5948
  msgid "UpdraftPlus Addons"
5949
  msgstr ""
5950
 
5951
+ #: src/udaddons/options.php:379
5952
  msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
5953
  msgstr ""
5954
 
5955
+ #: src/udaddons/options.php:405
5956
  msgid "An error occurred when trying to retrieve your add-ons."
5957
  msgstr ""
5958
 
5959
+ #: src/udaddons/options.php:421
5960
  msgid "UpdraftPlus Support"
5961
  msgstr ""
5962
 
5963
+ #: src/udaddons/options.php:423
5964
  msgid "Need to get support?"
5965
  msgstr ""
5966
 
5967
+ #: src/udaddons/options.php:423
5968
  msgid "Go here"
5969
  msgstr ""
5970
 
5971
+ #: src/udaddons/options.php:460, src/udaddons/options.php:460
5972
  msgid "You've got it"
5973
  msgstr ""
5974
 
5975
+ #: src/udaddons/options.php:462
5976
  msgid "Your version: %s"
5977
  msgstr ""
5978
 
5979
+ #: src/udaddons/options.php:464, src/udaddons/options.php:466
5980
  msgid "latest"
5981
  msgstr ""
5982
 
5983
+ #: src/udaddons/options.php:468
5984
  msgid "(apparently a pre-release or withdrawn release)"
5985
  msgstr ""
5986
 
5987
+ #: src/udaddons/options.php:474
5988
  msgid "Available for this site (via your all-addons purchase)"
5989
  msgstr ""
5990
 
5991
+ #: src/udaddons/options.php:474
5992
  msgid "please follow this link to update the plugin in order to get it"
5993
  msgstr ""
5994
 
5995
+ #: src/udaddons/options.php:477
5996
  msgid "Assigned to this site"
5997
  msgstr ""
5998
 
5999
+ #: src/udaddons/options.php:477
6000
  msgid "please follow this link to update the plugin in order to activate it"
6001
  msgstr ""
6002
 
6003
+ #: src/udaddons/options.php:485
6004
  msgid "Available to claim on this site"
6005
  msgstr ""
6006
 
6007
+ #: src/udaddons/options.php:485, src/udaddons/options.php:487
6008
  msgid "activate it on this site"
6009
  msgstr ""
6010
 
6011
+ #: src/udaddons/options.php:487
6012
  msgid "You have an inactive purchase"
6013
  msgstr ""
6014
 
6015
+ #: src/udaddons/options.php:491
6016
  msgid "Get it from the UpdraftPlus.Com Store"
6017
  msgstr ""
6018
 
6019
+ #: src/udaddons/options.php:491
6020
  msgid "(or connect using the form on this page if you have already purchased it)"
6021
  msgstr ""
6022
 
6023
+ #: src/udaddons/options.php:492, src/udaddons/options.php:492
6024
  msgid "Buy It"
6025
  msgstr ""
6026
 
6027
+ #: src/udaddons/options.php:556
6028
  msgid "Manage Addons"
6029
  msgstr ""
6030
 
methods/backup-module.php CHANGED
@@ -369,11 +369,10 @@ abstract class UpdraftPlus_BackupModule {
369
  *
370
  * @uses UpdraftPlus::jobdata_set()
371
  *
372
- * @param String $key - the key for the job data
373
- * @param Mixed $value - the data to be stored
374
- * @param String|Null $legacy_key - the previous name of the key, prior to instance-specific job data (so that upgrades across versions whilst a backup is in progress can still find its data)
375
  */
376
- public function jobdata_set($key, $value, $legacy_key = null) {
377
 
378
  $instance_key = $this->get_id().'-'.($this->_instance_id ? $this->_instance_id : 'no_instance');
379
 
@@ -387,8 +386,6 @@ abstract class UpdraftPlus_BackupModule {
387
 
388
  $updraftplus->jobdata_set($instance_key, $instance_data);
389
 
390
- if (is_string($legacy_key)) $updraftplus->jobdata_set($legacy_key, $value);
391
-
392
  }
393
 
394
  /**
369
  *
370
  * @uses UpdraftPlus::jobdata_set()
371
  *
372
+ * @param String $key - the key for the job data
373
+ * @param Mixed $value - the data to be stored
 
374
  */
375
+ public function jobdata_set($key, $value) {
376
 
377
  $instance_key = $this->get_id().'-'.($this->_instance_id ? $this->_instance_id : 'no_instance');
378
 
386
 
387
  $updraftplus->jobdata_set($instance_key, $instance_data);
388
 
 
 
389
  }
390
 
391
  /**
methods/dropbox.php CHANGED
@@ -42,8 +42,8 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
42
  global $updraftplus;
43
 
44
  // Update upload ID
45
- $this->jobdata_set('upload_id_'.$this->current_file_hash, $uploadid, 'updraf_dbid_'.$this->current_file_hash);
46
- $this->jobdata_set('upload_offset_'.$this->current_file_hash, $offset, 'updraf_dbof_'.$this->current_file_hash);
47
 
48
  $time_now = microtime(true);
49
 
42
  global $updraftplus;
43
 
44
  // Update upload ID
45
+ $this->jobdata_set('upload_id_'.$this->current_file_hash, $uploadid);
46
+ $this->jobdata_set('upload_offset_'.$this->current_file_hash, $offset);
47
 
48
  $time_now = microtime(true);
49
 
methods/googledrive.php CHANGED
@@ -938,7 +938,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
938
  // Error handling??
939
  $pointer += strlen($chunk);
940
  $status = $media->nextChunk($chunk);
941
- $this->jobdata_set($transkey, array($media->updraftplus_getResumeUri(), $media->getProgress()), 'gd'.$transkey);
942
  $updraftplus->record_uploaded_chunk(round(100*$pointer/$local_size, 1), $media->getProgress(), $file);
943
  }
944
 
938
  // Error handling??
939
  $pointer += strlen($chunk);
940
  $status = $media->nextChunk($chunk);
941
+ $this->jobdata_set($transkey, array($media->updraftplus_getResumeUri(), $media->getProgress()));
942
  $updraftplus->record_uploaded_chunk(round(100*$pointer/$local_size, 1), $media->getProgress(), $file);
943
  }
944
 
methods/openstack-base.php CHANGED
@@ -211,7 +211,7 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
211
  $file_status = array('chunks' => array());
212
  }
213
 
214
- $this->jobdata_set($file_key, $file_status, 'openstack_'.$file_key);
215
 
216
  if ($upload_start < $bytes_already_uploaded) {
217
  if ($next_chunk_size != $upload_size) {
@@ -285,7 +285,7 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
285
 
286
  $file_status['chunks'][$chunk_index]['size'] = $upload_size;
287
 
288
- $this->jobdata_set($file_key, $file_status, 'openstack_'.$file_key);
289
 
290
  if ($next_chunk_size != $upload_size) {
291
  $response = new stdClass;
@@ -417,7 +417,7 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
417
  } catch (Exception $e) {
418
  global $updraftplus;
419
  $updraftplus->log("$file: Failed to download (".$e->getMessage().")");
420
- $updraftplus->log("$file: ".sprintf(__("%s Error", 'updraftplus'), $this->desc).": ".__('Error downloading remote file: Failed to download'.' ('.$e->getMessage().")", 'updraftplus'), 'error');
421
  return false;
422
  }
423
  return $dl->getContent();
211
  $file_status = array('chunks' => array());
212
  }
213
 
214
+ $this->jobdata_set($file_key, $file_status);
215
 
216
  if ($upload_start < $bytes_already_uploaded) {
217
  if ($next_chunk_size != $upload_size) {
285
 
286
  $file_status['chunks'][$chunk_index]['size'] = $upload_size;
287
 
288
+ $this->jobdata_set($file_key, $file_status);
289
 
290
  if ($next_chunk_size != $upload_size) {
291
  $response = new stdClass;
417
  } catch (Exception $e) {
418
  global $updraftplus;
419
  $updraftplus->log("$file: Failed to download (".$e->getMessage().")");
420
+ $updraftplus->log("$file: ".sprintf(__("%s Error", 'updraftplus'), $this->desc).": ".__('Error downloading remote file: Failed to download', 'updraftplus').' ('.$e->getMessage().")", 'error');
421
  return false;
422
  }
423
  return $dl->getContent();
methods/s3.php CHANGED
@@ -384,7 +384,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
384
  continue;
385
  } else {
386
  $updraftplus->log("$whoweare chunked upload: got multipart ID: $upload_id");
387
- $this->jobdata_set($hash.'_uid', $upload_id, "upd_${whoweare_keys}_${hash}_uid");
388
  }
389
  } else {
390
  $updraftplus->log("$whoweare chunked upload: retrieved previously obtained multipart ID: $upload_id");
@@ -408,7 +408,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
408
  if (false !== $etag && is_string($etag)) {
409
  $updraftplus->record_uploaded_chunk(round(100*$i/$chunks, 1), "$i, $etag", $fullpath);
410
  array_push($etags, $etag);
411
- $this->jobdata_set($hash.'_etag_'.$i, $etag, "ud_${whoweare_keys}_${hash}_e$i");
412
  $successes++;
413
  } else {
414
  $updraftplus->log("$whoweare chunk $i: upload failed");
384
  continue;
385
  } else {
386
  $updraftplus->log("$whoweare chunked upload: got multipart ID: $upload_id");
387
+ $this->jobdata_set($hash.'_uid', $upload_id);
388
  }
389
  } else {
390
  $updraftplus->log("$whoweare chunked upload: retrieved previously obtained multipart ID: $upload_id");
408
  if (false !== $etag && is_string($etag)) {
409
  $updraftplus->record_uploaded_chunk(round(100*$i/$chunks, 1), "$i, $etag", $fullpath);
410
  array_push($etags, $etag);
411
+ $this->jobdata_set($hash.'_etag_'.$i, $etag);
412
  $successes++;
413
  } else {
414
  $updraftplus->log("$whoweare chunk $i: upload failed");
methods/updraftvault.php CHANGED
@@ -108,7 +108,7 @@ class UpdraftPlus_BackupModule_updraftvault extends UpdraftPlus_BackupModule_s3
108
  $config['error'] = array('message' => 'site_not_connected', 'values' => array());
109
 
110
  $this->vault_config = $config;
111
- $this->jobdata_set('config', $config, 'updraftvault_config');
112
  return $config;
113
  }
114
 
@@ -229,7 +229,7 @@ class UpdraftPlus_BackupModule_updraftvault extends UpdraftPlus_BackupModule_s3
229
 
230
  $config['server_side_encryption'] = 'AES256';
231
  $this->vault_config = $config;
232
- $this->jobdata_set('config', $config, 'updraftvault_config');
233
  // N.B. This isn't multi-server compatible
234
  set_transient('udvault_last_config', $config, 86400*7);
235
  return $config;
@@ -342,8 +342,8 @@ class UpdraftPlus_BackupModule_updraftvault extends UpdraftPlus_BackupModule_s3
342
  <div id="updraftvault_settings_connect" style="display:none;" class="updraft-hidden">
343
  <p><?php _e('Enter your UpdraftPlus.Com email / password here to connect:', 'updraftplus');?></p>
344
  <p>
345
- <input id="updraftvault_email" class="udignorechange" type="text" placeholder="<?php esc_attr_e(__('E-mail', 'updraftplus'));?>">
346
- <input id="updraftvault_pass" class="udignorechange" type="password" placeholder="<?php esc_attr_e(__('Password', 'updraftplus'));?>">
347
  <button id="updraftvault_connect_go" class="button-primary"><?php _e('Connect', 'updraftplus');?></button>
348
  </p>
349
  <p class="padding-top-14px">
108
  $config['error'] = array('message' => 'site_not_connected', 'values' => array());
109
 
110
  $this->vault_config = $config;
111
+ $this->jobdata_set('config', $config);
112
  return $config;
113
  }
114
 
229
 
230
  $config['server_side_encryption'] = 'AES256';
231
  $this->vault_config = $config;
232
+ $this->jobdata_set('config', $config);
233
  // N.B. This isn't multi-server compatible
234
  set_transient('udvault_last_config', $config, 86400*7);
235
  return $config;
342
  <div id="updraftvault_settings_connect" style="display:none;" class="updraft-hidden">
343
  <p><?php _e('Enter your UpdraftPlus.Com email / password here to connect:', 'updraftplus');?></p>
344
  <p>
345
+ <input id="updraftvault_email" class="udignorechange" type="text" placeholder="<?php esc_attr_e('E-mail', 'updraftplus');?>">
346
+ <input id="updraftvault_pass" class="udignorechange" type="password" placeholder="<?php esc_attr_e('Password', 'updraftplus');?>">
347
  <button id="updraftvault_connect_go" class="button-primary"><?php _e('Connect', 'updraftplus');?></button>
348
  </p>
349
  <p class="padding-top-14px">
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: Backup with UpdraftPlus, DavidAnderson, DNutbourne, aporter, snigh
3
  Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
4
  Requires at least: 3.2
5
  Tested up to: 4.8
6
- Stable tag: 1.13.6
7
  Author URI: https://updraftplus.com
8
  Donate link: https://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
@@ -149,7 +149,17 @@ Unfortunately not; since this is free software, there’s no warranty and no gua
149
 
150
  The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
151
 
152
- N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.13.6 of the free version correspond to changes made in 2.13.6.x of the paid version.
 
 
 
 
 
 
 
 
 
 
153
 
154
  = 1.13.6 - 05/Sep/2017 =
155
 
@@ -542,5 +552,6 @@ Furthermore, reliance upon any non-English translation is at your own risk. Updr
542
 
543
  We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
544
 
 
545
  == Upgrade Notice ==
546
- * 1.13.6: Easier Google Drive setup. Lots of small tweaks and improvements. Recommended update for all.
3
  Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
4
  Requires at least: 3.2
5
  Tested up to: 4.8
6
+ Stable tag: 1.13.7
7
  Author URI: https://updraftplus.com
8
  Donate link: https://david.dw-perspective.org.uk/donate
9
  License: GPLv3 or later
149
 
150
  The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
151
 
152
+ N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.13.7 of the free version correspond to changes made in 2.13.7.x of the paid version.
153
+
154
+ = 1.13.7 - 06/Sep/2017 =
155
+
156
+ * FIX: UpdraftCentral connectivity for various operations restored (regression in 1.13.6)
157
+ * FIX: No error message was being shown when a backup to local storage was missing upon restore
158
+ * COMPATIBILITY: Replace uses of the deprecated (PHP 7.2+) each() function
159
+ * TRANSLATION: Portuguese (Portugal) and Romanian translations are now complete and supplied from wordpress.org, so can be removed from the free plugin zip
160
+ * TWEAK: Fix some wrongly-called translation functions, and pull more known strings into the Premium version
161
+ * TWEAK: Remove the legacy parameter for setting storage upload job status data (only useful for version downgrades of more than 1 release during in-progress backups)
162
+ * TWEAK: Exclude some unnecessary build and unused files from the release zip (reduce disk space and download size)
163
 
164
  = 1.13.6 - 05/Sep/2017 =
165
 
552
 
553
  We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
554
 
555
+
556
  == Upgrade Notice ==
557
+ * 1.13.7: Easier Google Drive setup. Lots of small tweaks and improvements. Fix UpdraftCentral regression in 1.13.6. Recommended update for all.
updraftplus.php CHANGED
@@ -5,7 +5,7 @@ Plugin Name: UpdraftPlus - Backup/Restore
5
  Plugin URI: https://updraftplus.com
6
  Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
7
  Author: UpdraftPlus.Com, DavidAnderson
8
- Version: 1.13.6
9
  Donate link: https://david.dw-perspective.org.uk/donate
10
  License: GPLv3 or later
11
  Text Domain: updraftplus
5
  Plugin URI: https://updraftplus.com
6
  Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
7
  Author: UpdraftPlus.Com, DavidAnderson
8
+ Version: 1.13.7
9
  Donate link: https://david.dw-perspective.org.uk/donate
10
  License: GPLv3 or later
11
  Text Domain: updraftplus
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit2f865a0910fe1d724e305a7823c0e1af::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813', 'loadClassLoader'));
25
 
26
  $includePaths = require __DIR__ . '/include_paths.php';
27
  array_push($includePaths, get_include_path());
@@ -31,7 +31,7 @@ class ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813
31
  if ($useStaticLoader) {
32
  require_once __DIR__ . '/autoload_static.php';
33
 
34
- call_user_func(\Composer\Autoload\ComposerStaticInitabeb097ad980562dcf3d1e482eb77813::getInitializer($loader));
35
  } else {
36
  $map = require __DIR__ . '/autoload_namespaces.php';
37
  foreach ($map as $namespace => $path) {
@@ -52,19 +52,19 @@ class ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813
52
  $loader->register(true);
53
 
54
  if ($useStaticLoader) {
55
- $includeFiles = Composer\Autoload\ComposerStaticInitabeb097ad980562dcf3d1e482eb77813::$files;
56
  } else {
57
  $includeFiles = require __DIR__ . '/autoload_files.php';
58
  }
59
  foreach ($includeFiles as $fileIdentifier => $file) {
60
- composerRequireabeb097ad980562dcf3d1e482eb77813($fileIdentifier, $file);
61
  }
62
 
63
  return $loader;
64
  }
65
  }
66
 
67
- function composerRequireabeb097ad980562dcf3d1e482eb77813($fileIdentifier, $file)
68
  {
69
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
70
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit2f865a0910fe1d724e305a7823c0e1af
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit2f865a0910fe1d724e305a7823c0e1af', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit2f865a0910fe1d724e305a7823c0e1af', 'loadClassLoader'));
25
 
26
  $includePaths = require __DIR__ . '/include_paths.php';
27
  array_push($includePaths, get_include_path());
31
  if ($useStaticLoader) {
32
  require_once __DIR__ . '/autoload_static.php';
33
 
34
+ call_user_func(\Composer\Autoload\ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af::getInitializer($loader));
35
  } else {
36
  $map = require __DIR__ . '/autoload_namespaces.php';
37
  foreach ($map as $namespace => $path) {
52
  $loader->register(true);
53
 
54
  if ($useStaticLoader) {
55
+ $includeFiles = Composer\Autoload\ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af::$files;
56
  } else {
57
  $includeFiles = require __DIR__ . '/autoload_files.php';
58
  }
59
  foreach ($includeFiles as $fileIdentifier => $file) {
60
+ composerRequire2f865a0910fe1d724e305a7823c0e1af($fileIdentifier, $file);
61
  }
62
 
63
  return $loader;
64
  }
65
  }
66
 
67
+ function composerRequire2f865a0910fe1d724e305a7823c0e1af($fileIdentifier, $file)
68
  {
69
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
70
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitabeb097ad980562dcf3d1e482eb77813
8
  {
9
  public static $files = array (
10
  'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
@@ -152,10 +152,10 @@ class ComposerStaticInitabeb097ad980562dcf3d1e482eb77813
152
  public static function getInitializer(ClassLoader $loader)
153
  {
154
  return \Closure::bind(function () use ($loader) {
155
- $loader->prefixLengthsPsr4 = ComposerStaticInitabeb097ad980562dcf3d1e482eb77813::$prefixLengthsPsr4;
156
- $loader->prefixDirsPsr4 = ComposerStaticInitabeb097ad980562dcf3d1e482eb77813::$prefixDirsPsr4;
157
- $loader->prefixesPsr0 = ComposerStaticInitabeb097ad980562dcf3d1e482eb77813::$prefixesPsr0;
158
- $loader->classMap = ComposerStaticInitabeb097ad980562dcf3d1e482eb77813::$classMap;
159
 
160
  }, null, ClassLoader::class);
161
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af
8
  {
9
  public static $files = array (
10
  'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
152
  public static function getInitializer(ClassLoader $loader)
153
  {
154
  return \Closure::bind(function () use ($loader) {
155
+ $loader->prefixLengthsPsr4 = ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af::$prefixLengthsPsr4;
156
+ $loader->prefixDirsPsr4 = ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af::$prefixDirsPsr4;
157
+ $loader->prefixesPsr0 = ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af::$prefixesPsr0;
158
+ $loader->classMap = ComposerStaticInit2f865a0910fe1d724e305a7823c0e1af::$classMap;
159
 
160
  }, null, ClassLoader::class);
161
  }
vendor/robloach/component-installer/LICENSE.md DELETED
@@ -1,24 +0,0 @@
1
- # License
2
-
3
- Component Installer is released under the MIT License:
4
-
5
- > Copyright (C) 2015 [Rob Loach](http://robloach.net)
6
- >
7
- > Permission is hereby granted, free of charge, to any person obtaining
8
- > a copy of this software and associated documentation files (the
9
- > "Software"), to deal in the Software without restriction, including
10
- > without limitation the rights to use, copy, modify, merge, publish,
11
- > distribute, sublicense, and/or sell copies of the Software, and to
12
- > permit persons to whom the Software is furnished to do so, subject to
13
- > the following conditions:
14
- >
15
- > The above copyright notice and this permission notice shall be
16
- > included in all copies or substantial portions of the Software.
17
- >
18
- > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
- > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
- > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
- > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
- > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
- > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
- > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/README.md DELETED
@@ -1,324 +0,0 @@
1
- # Component Installer for [Composer](http://getcomposer.org) [![Build Status](https://secure.travis-ci.org/RobLoach/component-installer.png?branch=master)](http://travis-ci.org/RobLoach/component-installer)
2
-
3
- Allows installation of Components via [Composer](http://getcomposer.org).
4
-
5
- ## Install
6
-
7
- ```
8
- composer require robloach/component-installer
9
- ```
10
-
11
- ``` json
12
- {
13
- "require": {
14
- "robloach/component-installer": "*"
15
- }
16
- }
17
- ```
18
-
19
- ## Usage
20
-
21
- To install a Component with Composer, add the Component to your *composer.json*
22
- `require` key. The following will install [jQuery](http://jquery.com) and
23
- [normalize.css](https://github.com/necolas/normalize.css):
24
-
25
- ```
26
- composer require components/jquery
27
- composer require components/normalize.css
28
- ```
29
-
30
- ``` json
31
- {
32
- "require": {
33
- "components/jquery": "2.*",
34
- "components/normalize.css": "3.*",
35
- "robloach/component-installer": "*"
36
- }
37
- }
38
- ```
39
-
40
- ### Using the Component
41
-
42
- The easiest approach is to use the Component statically. Just reference the
43
- Components manually using a `script` or `link` tag:
44
-
45
- ``` html
46
- <script src="components/jquery/jquery.js"></script>
47
- <link href="components/normalize/normalize.css" rel="stylesheet">
48
- ```
49
-
50
- For complex projects, a [RequireJS](http://requirejs.org) configuration is
51
- available, which allows autoloading scripts only when needed. A *require.css*
52
- file is also compiled, including all Component stylesheets:
53
-
54
- ``` html
55
- <!DOCTYPE html>
56
- <html>
57
- <head>
58
- <link href="components/require.css" rel="stylesheet" type="text/css">
59
- <script src="components/require.js"></script>
60
- </head>
61
- <body>
62
- <h1>jQuery+RequireJS Component Installer Sample Page</h1>
63
- <script>
64
- require(['jquery'], function($) {
65
- $('body').css('background-color', 'green');
66
- });
67
- </script>
68
- </body>
69
- </html>
70
- ```
71
-
72
- ## Configuration
73
-
74
- There are a number of ways to alter how Components are installed and used.
75
-
76
- ### Installation Directory
77
-
78
- It is possible to switch where Components are installed by changing the
79
- `component-dir` option in your root *composer.json*'s `config`. The following
80
- will install jQuery to *public/jquery* rather than *components/jquery*:
81
-
82
- ``` json
83
- {
84
- "require": {
85
- "components/jquery": "*"
86
- },
87
- "config": {
88
- "component-dir": "public"
89
- }
90
- }
91
- ```
92
-
93
- Defaults to `components`.
94
-
95
- ### Base URL
96
-
97
- While `component-dir` depicts where the Components will be installed,
98
- `component-baseurl` tells RequireJS the base path that will use when attempting
99
- to load the scripts in the web browser. It is important to make sure the
100
- `component-baseurl` points to the `component-dir` when loaded externally. See
101
- more about [`baseUrl`](http://requirejs.org/docs/api.html#config-baseUrl) in the
102
- RequireJS documentation.
103
-
104
- ``` json
105
- {
106
- "require": {
107
- "components/jquery": "*"
108
- },
109
- "config": {
110
- "component-dir": "public/assets",
111
- "component-baseurl": "/assets"
112
- }
113
- }
114
- ```
115
-
116
- Defaults to `components`.
117
-
118
- ### Assetic filters
119
-
120
- ``` json
121
- {
122
- "require": {
123
- "components/jquery": "*"
124
- },
125
- "config": {
126
- "component-dir": "public/assets",
127
- "component-baseurl": "/assets",
128
- "component-scriptFilters": {
129
- "\\Assetic\\Filter\\GoogleClosure\\CompilerApiFilter": []
130
- },
131
- "component-styleFilters": {
132
- "\\Assetic\\Filter\\CssImportFilter": []
133
- }
134
- }
135
- }
136
- ```
137
-
138
- ## Creating a Component
139
-
140
- To set up a Component to be installed with Component Installer, have it
141
- `require` the package *robloach/component-installer* and set the `type` to
142
- *component*, but it is not necessary:
143
-
144
- ``` json
145
- {
146
- "name": "components/bootstrap",
147
- "type": "component",
148
- "require": {
149
- "robloach/component-installer": "*"
150
- },
151
- "extra": {
152
- "component": {
153
- "scripts": [
154
- "js/bootstrap.js"
155
- ],
156
- "styles": [
157
- "css/bootstrap.css"
158
- ],
159
- "files": [
160
- "img/*.png",
161
- "js/bootstrap.min.js",
162
- "css/bootstrap.min.css"
163
- ]
164
- }
165
- }
166
- }
167
- ```
168
-
169
- * `scripts` - List of all the JavaScript files that will be concatenated
170
- together and processed when loading the Component.
171
- * `styles` - List of all the CSS files that should be concatenated together
172
- into the final *require.css* file.
173
- * `files` - Any additional file assets that should be copied into the Component
174
- directory.
175
-
176
- ### Component Name
177
-
178
- Components can provide their own Component name. The following will install
179
- jQuery to *components/myownjquery* rather than *components/jquery*:
180
-
181
- ``` json
182
- {
183
- "name": "components/jquery",
184
- "type": "component",
185
- "extra": {
186
- "component": {
187
- "name": "myownjquery"
188
- }
189
- }
190
- }
191
- ```
192
-
193
- Defaults to the package name, without the vendor.
194
-
195
- ### RequireJS Configuration
196
-
197
- Components can alter how [RequireJS](http://requirejs.org) registers and
198
- interacts with them by changing some of the [configuration
199
- options](http://www.requirejs.org/docs/api.html#config):
200
-
201
- ``` json
202
- {
203
- "name": "components/backbone",
204
- "type": "component",
205
- "require": {
206
- "components/underscore": "*"
207
- },
208
- "extra": {
209
- "component": {
210
- "shim": {
211
- "deps": ["underscore", "jquery"],
212
- "exports": "Backbone"
213
- },
214
- "config": {
215
- "color": "blue"
216
- }
217
- }
218
- },
219
- "config": {
220
- "component": {
221
- "waitSeconds": 5
222
- }
223
- }
224
- }
225
- ```
226
-
227
- Current available RequireJS options for individual packages include:
228
- * [`shim`](http://www.requirejs.org/docs/api.html#config-shim)
229
- * [`config`](http://www.requirejs.org/docs/api.html#config-moduleconfig)
230
- * Anything that's passed through `config.component` is sent to Require.js
231
-
232
- ### Packages Without Composer Support
233
-
234
- Using [`repositories`](http://getcomposer.org/doc/05-repositories.md#repositories)
235
- in *composer.json* allows use of Component Installer in packages that don't
236
- explicitly provide their own *composer.json*. In the following example, we
237
- define use of [html5shiv](https://github.com/aFarkas/html5shiv):
238
-
239
- ``` json
240
- {
241
- "require": {
242
- "afarkas/html5shiv": "3.6.*"
243
- },
244
- "repositories": [
245
- {
246
- "type": "package",
247
- "package": {
248
- "name": "afarkas/html5shiv",
249
- "type": "component",
250
- "version": "3.6.2",
251
- "dist": {
252
- "url": "https://github.com/aFarkas/html5shiv/archive/3.6.2.zip",
253
- "type": "zip"
254
- },
255
- "source": {
256
- "url": "https://github.com/aFarkas/html5shiv.git",
257
- "type": "git",
258
- "reference": "3.6.2"
259
- },
260
- "extra": {
261
- "component": {
262
- "scripts": [
263
- "dist/html5shiv.js"
264
- ]
265
- }
266
- },
267
- "require": {
268
- "robloach/component-installer": "*"
269
- }
270
- }
271
- }
272
- ]
273
- }
274
- ```
275
-
276
- ### Packages Without Component Support In *composer.json*
277
-
278
- Using [`extra`](https://getcomposer.org/doc/04-schema.md#extra)
279
- in *composer.json* allows use of Component Installer in packages that don't
280
- explicitly provide support for component, but do ship with their own *composer.json*.
281
- Using `extra` with packages that ship with Component Installer, will override component's settings for that package.
282
-
283
- ``` json
284
- {
285
- "require": {
286
- "datatables/datatables": "~1.10"
287
- },
288
- "extra": {
289
- "component": {
290
- "datatables/datatables": {
291
- "scripts": [
292
- "media/js/jquery.dataTables.js"
293
- ],
294
- "styles": [
295
- "media/css/jquery.dataTables.css"
296
- ],
297
- "files": [
298
- "media/js/jquery.dataTables.min.js",
299
- "media/css/jquery.dataTables.min.css",
300
- "media/images/*.png"
301
- ]
302
- }
303
- }
304
- }
305
- }
306
- ```
307
-
308
- ## Not Invented Here
309
-
310
- There are many other amazing projects from which Component Installer was
311
- inspired. It is encouraged to take a look at some of the [other great package
312
- management systems](http://github.com/wilmoore/frontend-packagers):
313
- * [npm](http://npmjs.org)
314
- * [bower](http://twitter.github.com/bower/)
315
- * [component](http://github.com/component/component)
316
- * [Jam](http://jamjs.org)
317
- * [volo](http://volojs.org)
318
- * [Ender](http://ender.jit.su)
319
- * etc
320
-
321
- ## License
322
-
323
- Component Installer is licensed under the MIT License - see LICENSE.md for
324
- details.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/composer.json DELETED
@@ -1,44 +0,0 @@
1
- {
2
- "name": "robloach/component-installer",
3
- "description": "Allows installation of Components via Composer.",
4
- "type": "composer-plugin",
5
- "license": "MIT",
6
- "authors": [
7
- {
8
- "name": "Rob Loach",
9
- "homepage": "http://robloach.net"
10
- }
11
- ],
12
- "autoload": {
13
- "psr-0": {
14
- "ComponentInstaller": "src/"
15
- }
16
- },
17
- "extra": {
18
- "branch-alias": {
19
- "dev-master": "1.0.x-dev"
20
- },
21
- "class": "ComponentInstaller\\ComponentInstallerPlugin"
22
- },
23
- "require": {
24
- "php": ">=5.3.2",
25
- "kriswallsmith/assetic": "1.*",
26
- "composer-plugin-api": "^1.0"
27
- },
28
- "require-dev": {
29
- "composer/composer": "1.*@alpha",
30
- "phpunit/phpunit": "4.*"
31
- },
32
- "scripts": {
33
- "test": "phpunit"
34
- },
35
- "archive": {
36
- "exclude": [
37
- "tests",
38
- "phpunit.xml.dist",
39
- ".travis.yml",
40
- ".gitignore",
41
- ".editorconfig"
42
- ]
43
- }
44
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/phpunit.xml.dist DELETED
@@ -1,25 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <phpunit backupGlobals="false"
4
- backupStaticAttributes="false"
5
- colors="true"
6
- convertErrorsToExceptions="true"
7
- convertNoticesToExceptions="true"
8
- convertWarningsToExceptions="true"
9
- processIsolation="false"
10
- stopOnFailure="false"
11
- syntaxCheck="true"
12
- bootstrap="tests/bootstrap.php"
13
- >
14
- <testsuites>
15
- <testsuite name="Component Installer Test Suite">
16
- <directory>tests/ComponentInstaller</directory>
17
- </testsuite>
18
- </testsuites>
19
-
20
- <filter>
21
- <whitelist>
22
- <directory>src/ComponentInstaller</directory>
23
- </whitelist>
24
- </filter>
25
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/ComponentInstallerPlugin.php DELETED
@@ -1,35 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller;
13
-
14
- use Composer\Composer;
15
- use Composer\IO\IOInterface;
16
- use Composer\Plugin\PluginInterface;
17
-
18
- /**
19
- * Composer Plugin to install Components.
20
- *
21
- * Adds the ComponentInstaller Plugin to the Composer instance.
22
- *
23
- * @see ComponentInstaller\Installer
24
- */
25
- class ComponentInstallerPlugin implements PluginInterface
26
- {
27
- /**
28
- * Called when the plugin is activated.
29
- */
30
- public function activate(Composer $composer, IOInterface $io)
31
- {
32
- $installer = new Installer($io, $composer);
33
- $composer->getInstallationManager()->addInstaller($installer);
34
- }
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Installer.php DELETED
@@ -1,195 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller;
13
-
14
- use Composer\Installer\LibraryInstaller;
15
- use Composer\Script\Event;
16
- use Composer\Package\PackageInterface;
17
- use Composer\Package\AliasPackage;
18
-
19
- /**
20
- * Component Installer for Composer.
21
- */
22
- class Installer extends LibraryInstaller
23
- {
24
-
25
- /**
26
- * The location where Components are to be installed.
27
- */
28
- protected $componentDir;
29
-
30
- /**
31
- * {@inheritDoc}
32
- *
33
- * Components are supported by all packages. This checks wheteher or not the
34
- * entire package is a "component", as well as injects the script to act
35
- * on components embedded in packages that are not just "component" types.
36
- */
37
- public function supports($packageType)
38
- {
39
- // Components are supported by all package types. We will just act on
40
- // the root package's scripts if available.
41
- $rootPackage = isset($this->composer) ? $this->composer->getPackage() : null;
42
- if (isset($rootPackage)) {
43
- // Ensure we get the root package rather than its alias.
44
- while ($rootPackage instanceof AliasPackage) {
45
- $rootPackage = $rootPackage->getAliasOf();
46
- }
47
-
48
- // Make sure the root package can override the available scripts.
49
- if (method_exists($rootPackage, 'setScripts')) {
50
- $scripts = $rootPackage->getScripts();
51
- // Act on the "post-autoload-dump" command so that we can act on all
52
- // the installed packages.
53
- $scripts['post-autoload-dump']['component-installer'] = 'ComponentInstaller\\Installer::postAutoloadDump';
54
- $rootPackage->setScripts($scripts);
55
- }
56
- }
57
-
58
- // State support for "component" package types.
59
- return $packageType == 'component';
60
- }
61
-
62
- /**
63
- * Gets the destination Component directory.
64
- *
65
- * @param PackageInterface $package
66
- * @return string
67
- * The path to where the final Component should be installed.
68
- */
69
- public function getComponentPath(PackageInterface $package)
70
- {
71
- // Parse the pretty name for the vendor and package name.
72
- $name = $prettyName = $package->getPrettyName();
73
- if (strpos($prettyName, '/') !== false) {
74
- list($vendor, $name) = explode('/', $prettyName);
75
- unset($vendor);
76
- }
77
-
78
- // First look for an override in root package's extra, then try the package's extra
79
- $rootPackage = $this->composer->getPackage();
80
- $rootExtras = $rootPackage ? $rootPackage->getExtra() : array();
81
- $customComponents = isset($rootExtras['component']) ? $rootExtras['component'] : array();
82
-
83
- if (isset($customComponents[$prettyName]) && is_array($customComponents[$prettyName])) {
84
- $component = $customComponents[$prettyName];
85
- }
86
- else {
87
- $extra = $package->getExtra();
88
- $component = isset($extra['component']) ? $extra['component'] : array();
89
- }
90
-
91
- // Allow the component to define its own name.
92
- if (isset($component['name'])) {
93
- $name = $component['name'];
94
- }
95
-
96
- // Find where the package should be located.
97
- return $this->getComponentDir() . DIRECTORY_SEPARATOR . $name;
98
- }
99
-
100
- /**
101
- * Initialize the Component directory, as well as the vendor directory.
102
- */
103
- protected function initializeVendorDir()
104
- {
105
- $this->componentDir = $this->getComponentDir();
106
- $this->filesystem->ensureDirectoryExists($this->componentDir);
107
- parent::initializeVendorDir();
108
- }
109
-
110
- /**
111
- * Retrieves the Installer's provided component directory.
112
- */
113
- public function getComponentDir()
114
- {
115
- $config = $this->composer->getConfig();
116
- return $config->has('component-dir') ? $config->get('component-dir') : 'components';
117
- }
118
-
119
- /**
120
- * Remove both the installed code and files from the Component directory.
121
- *
122
- * @param PackageInterface $package
123
- */
124
- public function removeCode(PackageInterface $package)
125
- {
126
- $this->removeComponent($package);
127
- parent::removeCode($package);
128
- }
129
-
130
- /**
131
- * Remove a Component's files from the Component directory.
132
- *
133
- * @param PackageInterface $package
134
- * @return bool
135
- */
136
- public function removeComponent(PackageInterface $package)
137
- {
138
- $path = $this->getComponentPath($package);
139
- return $this->filesystem->remove($path);
140
- }
141
-
142
- /**
143
- * Before installing the Component, be sure its destination is clear first.
144
- *
145
- * @param PackageInterface $package
146
- */
147
- public function installCode(PackageInterface $package)
148
- {
149
- $this->removeComponent($package);
150
- parent::installCode($package);
151
- }
152
-
153
- /**
154
- * Script callback; Acted on after the autoloader is dumped.
155
- *
156
- * @param Event $event
157
- */
158
- public static function postAutoloadDump(Event $event)
159
- {
160
- // Retrieve basic information about the environment and present a
161
- // message to the user.
162
- $composer = $event->getComposer();
163
- $io = $event->getIO();
164
- $io->write('<info>Compiling component files</info>');
165
-
166
- // Set up all the processes.
167
- $processes = array(
168
- // Copy the assets to the Components directory.
169
- "ComponentInstaller\\Process\\CopyProcess",
170
- // Build the require.js file.
171
- "ComponentInstaller\\Process\\RequireJsProcess",
172
- // Build the require.css file.
173
- "ComponentInstaller\\Process\\RequireCssProcess",
174
- // Compile the require-built.js file.
175
- "ComponentInstaller\\Process\\BuildJsProcess",
176
- );
177
-
178
- // Initialize and execute each process in sequence.
179
- foreach ($processes as $class) {
180
- if(!class_exists($class)){
181
- $io->write("<warning>Process class '$class' not found, skipping this process</warning>");
182
- continue;
183
- }
184
-
185
- /** @var \ComponentInstaller\Process\Process $process */
186
- $process = new $class($composer, $io);
187
- // When an error occurs during initialization, end the process.
188
- if (!$process->init()) {
189
- $io->write("<warning>An error occurred while initializing the '$class' process.</warning>");
190
- break;
191
- }
192
- $process->process();
193
- }
194
- }
195
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Process/BuildJsProcess.php DELETED
@@ -1,87 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Process;
13
-
14
- /**
15
- * Builds all JavaScript Components into one require-built.js.
16
- */
17
- class BuildJsProcess extends Process
18
- {
19
- /**
20
- * {@inheritdoc}
21
- */
22
- public function process()
23
- {
24
- return $this->compile($this->packages);
25
- }
26
-
27
- /**
28
- * Copy file assets from the given packages to the component directory.
29
- *
30
- * @param array $packages
31
- * An array of packages.
32
- * @return bool
33
- */
34
- public function compile($packages)
35
- {
36
- // Set up the initial require-build.js file.
37
- $destination = $this->componentDir.DIRECTORY_SEPARATOR.'require-built.js';
38
- $require = $this->componentDir.DIRECTORY_SEPARATOR.'require.js';
39
- copy($require, $destination);
40
-
41
- // Cycle through each package and add it to the built require.js file.
42
- foreach ($packages as $package) {
43
- // Retrieve some information about the package
44
- $name = isset($package['name']) ? $package['name'] : '__component__';
45
- $extra = isset($package['extra']) ? $package['extra'] : array();
46
- $componentName = $this->getComponentName($name, $extra);
47
-
48
- // Find where the source file is located.
49
- $packageDir = $this->componentDir.DIRECTORY_SEPARATOR.$componentName;
50
- $source = $packageDir.DIRECTORY_SEPARATOR.$componentName.'-built.js';
51
-
52
- // Make sure the source script is available.
53
- if (file_exists($source)) {
54
- // Build the compiled script.
55
- $content = file_get_contents($source);
56
- $output = $this->definePrefix($componentName) . $content . $this->definePostfix();
57
-
58
- // Append the module definition to the destination file.
59
- file_put_contents($destination, $output, FILE_APPEND);
60
- }
61
- }
62
-
63
- return true;
64
- }
65
-
66
- /**
67
- * Provide the initial definition prefix.
68
- *
69
- * @param string $componentName
70
- * @return string Begin the module definition.
71
- */
72
- protected function definePrefix($componentName)
73
- {
74
- // Define the module using the simplified CommonJS wrapper.
75
- return "\ndefine('$componentName', function (require, exports, module) {\n";
76
- }
77
-
78
- /**
79
- * Finish the module definition.
80
- *
81
- * @return string Close brackets to finish the module.
82
- */
83
- protected function definePostfix()
84
- {
85
- return "\n});\n";
86
- }
87
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Process/CopyProcess.php DELETED
@@ -1,74 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Process;
13
-
14
- /**
15
- * Process which copies components from their source to the components folder.
16
- */
17
- class CopyProcess extends Process
18
- {
19
- /**
20
- * {@inheritdoc}
21
- */
22
- public function process()
23
- {
24
- return $this->copy($this->packages);
25
- }
26
-
27
- /**
28
- * Copy file assets from the given packages to the component directory.
29
- *
30
- * @param array $packages
31
- * An array of packages.
32
- * @return bool
33
- */
34
- public function copy($packages)
35
- {
36
- // Iterate over each package that should be processed.
37
- foreach ($packages as $package) {
38
- // Retrieve some information about the package.
39
- $packageDir = $this->getVendorDir($package);
40
- $name = isset($package['name']) ? $package['name'] : '__component__';
41
- $extra = isset($package['extra']) ? $package['extra'] : array();
42
- $componentName = $this->getComponentName($name, $extra);
43
-
44
- // Cycle through each asset type.
45
- $fileType = array('scripts', 'styles', 'files');
46
- foreach ($fileType as $type) {
47
- // Only act on the files if they're available.
48
- if (isset($extra['component'][$type]) && is_array($extra['component'][$type])) {
49
- foreach ($extra['component'][$type] as $file) {
50
- // Make sure the file itself is available.
51
- $source = $packageDir.DIRECTORY_SEPARATOR.$file;
52
-
53
- // Perform a recursive glob file search on the pattern.
54
- foreach ($this->fs->recursiveGlobFiles($source) as $filesource) {
55
- // Find the final destination without the package directory.
56
- $withoutPackageDir = str_replace($packageDir.DIRECTORY_SEPARATOR, '', $filesource);
57
-
58
- // Construct the final file destination.
59
- $destination = $this->componentDir.DIRECTORY_SEPARATOR.$componentName.DIRECTORY_SEPARATOR.$withoutPackageDir;
60
-
61
- // Ensure the directory is available.
62
- $this->fs->ensureDirectoryExists(dirname($destination));
63
-
64
- // Copy the file to its destination.
65
- copy($filesource, $destination);
66
- }
67
- }
68
- }
69
- }
70
- }
71
-
72
- return true;
73
- }
74
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Process/Process.php DELETED
@@ -1,224 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Process;
13
-
14
- use Composer\IO\IOInterface;
15
- use Composer\Composer;
16
- use Composer\IO\NullIO;
17
- use Composer\Package\Dumper\ArrayDumper;
18
- use ComponentInstaller\Util\Filesystem;
19
- use Composer\Package\Loader\ArrayLoader;
20
-
21
- /**
22
- * The base Process type.
23
- *
24
- * Processes are initialized, and then run during installation.
25
- */
26
- class Process implements ProcessInterface
27
- {
28
- /**
29
- * @var Composer
30
- */
31
- protected $composer;
32
-
33
- /**
34
- * @var IOInterface|NullIO
35
- */
36
- protected $io;
37
-
38
- /**
39
- * @var \Composer\Config
40
- */
41
- protected $config;
42
-
43
- /**
44
- * @var array
45
- */
46
- protected $packages = array();
47
-
48
- /**
49
- * @var string
50
- */
51
- protected $componentDir = 'components';
52
-
53
- /**
54
- * @var Filesystem
55
- */
56
- protected $fs;
57
-
58
- /**
59
- * The Composer installation manager to find Component vendor directories.
60
- * @var \Composer\Installer\InstallationManager
61
- */
62
- protected $installationManager;
63
-
64
- /**
65
- * {@inheritdoc}
66
- */
67
- public function __construct(Composer $composer = null, IOInterface $io = null)
68
- {
69
- $this->composer = isset($composer) ? $composer : new Composer();
70
- $this->io = isset($io) ? $io : new NullIO();
71
- $this->fs = new Filesystem();
72
- $this->installationManager = $this->composer->getInstallationManager();
73
- }
74
-
75
- /**
76
- * {@inheritdoc}
77
- */
78
- public function init()
79
- {
80
- // Retrieve the configuration variables.
81
- $this->config = $this->composer->getConfig();
82
- if (isset($this->config)) {
83
- if ($this->config->has('component-dir')) {
84
- $this->componentDir = $this->config->get('component-dir');
85
- }
86
- }
87
-
88
- // Get the available packages.
89
- $allPackages = array();
90
- /** @var \Composer\Package\Locker $locker */
91
- $locker = $this->composer->getLocker();
92
- if ($locker !== null && $locker->isLocked()) {
93
- $lockData = $locker->getLockData();
94
- $allPackages = $lockData['packages'];
95
-
96
- // Also merge in any of the development packages.
97
- $dev = isset($lockData['packages-dev']) ? $lockData['packages-dev'] : array();
98
- foreach ($dev as $package) {
99
- $allPackages[] = $package;
100
- }
101
- }
102
-
103
- // Only add those packages that we can reasonably
104
- // assume are components into our packages list
105
- /** @var \Composer\Package\RootPackageInterface $rootPackage */
106
- $rootPackage = $this->composer->getPackage();
107
- $rootExtras = $rootPackage ? $rootPackage->getExtra() : array();
108
- $customComponents = isset($rootExtras['component']) ? $rootExtras['component'] : array();
109
- foreach ($allPackages as $package) {
110
- $name = $package['name'];
111
- if (isset($customComponents[$name]) && is_array($customComponents[$name])) {
112
- $package['extra'] = array('component' => $customComponents[$name]);
113
- $this->packages[] = $package;
114
- }
115
- else {
116
- $extra = isset($package['extra']) ? $package['extra'] : array();
117
- if (isset($extra['component']) && is_array($extra['component'])) {
118
- $this->packages[] = $package;
119
- }
120
- }
121
- }
122
-
123
- // Add the root package to the packages list.
124
- $root = $this->composer->getPackage();
125
- if ($root) {
126
- $dumper = new ArrayDumper();
127
- $package = $dumper->dump($root);
128
- $package['is-root'] = true;
129
- $this->packages[] = $package;
130
- }
131
-
132
- return true;
133
- }
134
-
135
- /**
136
- * {@inheritdoc}
137
- */
138
- public function process()
139
- {
140
- return false;
141
- }
142
-
143
- /**
144
- * Retrieves the component name for the component.
145
- *
146
- * @param string $prettyName
147
- * The Composer package name.
148
- * @param array $extra
149
- * The extra config options sent from Composer.
150
- *
151
- * @return string
152
- * The name of the component, without its vendor name.
153
- */
154
- public function getComponentName($prettyName, array $extra = array())
155
- {
156
- // Parse the pretty name for the vendor and name.
157
- if (strpos($prettyName, '/') !== false) {
158
- list($vendor, $name) = explode('/', $prettyName);
159
- unset($vendor);
160
- } else {
161
- // Vendor wasn't found, so default to the pretty name instead.
162
- $name = $prettyName;
163
- }
164
-
165
- // Allow the component to define its own name.
166
- $component = isset($extra['component']) ? $extra['component'] : array();
167
- if (isset($component['name'])) {
168
- $name = $component['name'];
169
- }
170
-
171
- return $name;
172
- }
173
-
174
- /**
175
- * Retrieves the component directory.
176
- */
177
- public function getComponentDir()
178
- {
179
- return $this->componentDir;
180
- }
181
-
182
- /**
183
- * Sets the component directory.
184
- * @param string $dir
185
- * @return string
186
- */
187
- public function setComponentDir($dir)
188
- {
189
- return $this->componentDir = $dir;
190
- }
191
-
192
- /**
193
- * Retrieves the given package's vendor directory, where it's installed.
194
- *
195
- * @param array $package
196
- * The package to retrieve the vendor directory for.
197
- * @return string
198
- */
199
- public function getVendorDir(array $package)
200
- {
201
- // The root package vendor directory is not handled by getInstallPath().
202
- if (isset($package['is-root']) && $package['is-root'] === true) {
203
- $path = getcwd();
204
-
205
- if (!file_exists($path.DIRECTORY_SEPARATOR.'composer.json')) {
206
- for ($temp = __DIR__; strlen($temp) > 3; $temp = dirname($temp)) {
207
- if (file_exists($temp.DIRECTORY_SEPARATOR.'composer.json')) {
208
- $path = $temp;
209
- }
210
- }
211
- }
212
-
213
- return $path;
214
- }
215
-
216
- if (!isset($package['version'])) {
217
- $package['version'] = '1.0.0';
218
- }
219
- $loader = new ArrayLoader();
220
- $completePackage = $loader->load($package);
221
-
222
- return $this->installationManager->getInstallPath($completePackage);
223
- }
224
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Process/ProcessInterface.php DELETED
@@ -1,44 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Process;
13
-
14
- use Composer\IO\IOInterface;
15
- use Composer\Composer;
16
-
17
- interface ProcessInterface
18
- {
19
- /**
20
- * Create a new Process.
21
- *
22
- * @param Composer $composer
23
- * The Composer object to act on.
24
- * @param IOInterface $io
25
- * Input/Output object to act on.
26
- */
27
- public function __construct(Composer $composer, IOInterface $io);
28
-
29
- /**
30
- * Initialize the process before its run.
31
- *
32
- * @return boolean
33
- * Whether or not the process should continue after initialization.
34
- */
35
- public function init();
36
-
37
- /**
38
- * Called when running through the process.
39
- *
40
- * @return boolean
41
- * True or false depending on whether the process was successful.
42
- */
43
- public function process();
44
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Process/RequireCssProcess.php DELETED
@@ -1,127 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Process;
13
-
14
- use Composer\Config;
15
- use Assetic\Asset\AssetCollection;
16
- use Assetic\Filter\CssRewriteFilter;
17
- use Assetic\Asset\FileAsset;
18
- use Assetic\Filter\FilterCollection;
19
-
20
- /**
21
- * Builds the require.css file from all Component stylesheets.
22
- */
23
- class RequireCssProcess extends Process
24
- {
25
- /**
26
- * {@inheritdoc}
27
- */
28
- public function process()
29
- {
30
- $filters = array(new CssRewriteFilter());
31
- if ($this->config->has('component-styleFilters')) {
32
- $customFilters = $this->config->get('component-styleFilters');
33
- if (isset($customFilters) && is_array($customFilters)) {
34
- foreach ($customFilters as $filter => $filterParams) {
35
- $reflection = new \ReflectionClass($filter);
36
- $filters[] = $reflection->newInstanceArgs($filterParams);
37
- }
38
- }
39
- }
40
-
41
- $filterCollection = new FilterCollection($filters);
42
-
43
- $assets = new AssetCollection();
44
- $styles = $this->packageStyles($this->packages);
45
- foreach ($styles as $package => $packageStyles) {
46
- $packageAssets = new AssetCollection();
47
- $packagePath = $this->componentDir.'/'.$package;
48
-
49
- foreach ($packageStyles as $style => $paths) {
50
- foreach ($paths as $path) {
51
- // The full path to the CSS file.
52
- $assetPath = realpath($path);
53
- // The root of the CSS file.
54
- $sourceRoot = dirname($path);
55
- // The style path to the CSS file when external.
56
- $sourcePath = $package . '/' . $style;
57
- //Replace glob patterns with filenames.
58
- $filename = basename($style);
59
- if(preg_match('~^\*(\.[^\.]+)$~', $filename, $matches)){
60
- $sourcePath = str_replace($filename, basename($assetPath), $sourcePath);
61
- }
62
- // Where the final CSS will be generated.
63
- $targetPath = $this->componentDir;
64
- // Build the asset and add it to the collection.
65
- $asset = new FileAsset($assetPath, $filterCollection, $sourceRoot, $sourcePath);
66
- $asset->setTargetPath($targetPath);
67
- $assets->add($asset);
68
- // Add asset to package collection.
69
- $sourcePath = preg_replace('{^.*'.preg_quote($package).'/}', '', $sourcePath);
70
- $asset = new FileAsset($assetPath, $filterCollection, $sourceRoot, $sourcePath);
71
- $asset->setTargetPath($packagePath);
72
- $packageAssets->add($asset);
73
- }
74
- }
75
-
76
- if (file_put_contents($packagePath.'/'.$package.'-built.css', $packageAssets->dump()) === FALSE) {
77
- $this->io->write("<error>Error writing $package-built.css to destination</error>");
78
- }
79
- }
80
-
81
- if (file_put_contents($this->componentDir . '/require.css', $assets->dump()) === FALSE) {
82
- $this->io->write('<error>Error writing require.css to destination</error>');
83
- return false;
84
- }
85
-
86
- return null;
87
- }
88
-
89
- /**
90
- * Retrieves an array of styles from a collection of packages.
91
- *
92
- * @param array $packages
93
- * An array of packages from the composer.lock file.
94
- *
95
- * @return array
96
- * A set of package styles.
97
- */
98
- public function packageStyles(array $packages)
99
- {
100
- $output = array();
101
-
102
- // Construct the packages configuration.
103
- foreach ($packages as $package) {
104
- // Retrieve information from the extra options.
105
- $extra = isset($package['extra']) ? $package['extra'] : array();
106
- $name = $this->getComponentName($package['name'], $extra);
107
- $component = isset($extra['component']) ? $extra['component'] : array();
108
- $styles = isset($component['styles']) ? $component['styles'] : array();
109
- $vendorDir = $this->getVendorDir($package);
110
-
111
- // Loop through each style.
112
- foreach ($styles as $style) {
113
- // Find the style path from the vendor directory.
114
- $path = strtr($vendorDir.'/'.$style, '/', DIRECTORY_SEPARATOR);
115
-
116
- // Search for the candidate with a glob recursive file search.
117
- $files = $this->fs->recursiveGlobFiles($path);
118
- foreach ($files as $file) {
119
- // Provide the package name, style and full path.
120
- $output[$name][$style][] = $file;
121
- }
122
- }
123
- }
124
-
125
- return $output;
126
- }
127
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Process/RequireJsProcess.php DELETED
@@ -1,264 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Process;
13
-
14
- use Assetic\Asset\StringAsset;
15
- use Composer\Config;
16
- use Composer\Json\JsonFile;
17
- use Assetic\Asset\AssetCollection;
18
- use Assetic\Asset\FileAsset;
19
-
20
- /**
21
- * Builds the require.js configuration.
22
- */
23
- class RequireJsProcess extends Process
24
- {
25
- /**
26
- * The base URL for the require.js configuration.
27
- */
28
- protected $baseUrl = 'components';
29
-
30
- /**
31
- * {@inheritdoc}
32
- */
33
- public function init()
34
- {
35
- $output = parent::init();
36
- if ($this->config->has('component-baseurl')) {
37
- $this->baseUrl = $this->config->get('component-baseurl');
38
- }
39
-
40
- return $output;
41
- }
42
-
43
- /**
44
- * {@inheritdoc}
45
- */
46
- public function process()
47
- {
48
- // Construct the require.js and stick it in the destination.
49
- $json = $this->requireJson($this->packages, $this->config);
50
- $requireConfig = $this->requireJs($json);
51
-
52
- // Attempt to write the require.config.js file.
53
- $destination = $this->componentDir . '/require.config.js';
54
- $this->fs->ensureDirectoryExists(dirname($destination));
55
- if (file_put_contents($destination, $requireConfig) === FALSE) {
56
- $this->io->write('<error>Error writing require.config.js</error>');
57
-
58
- return false;
59
- }
60
-
61
- // Read in require.js to prepare the final require.js.
62
- if (!file_exists(dirname(__DIR__) . '/Resources/require.js')) {
63
- $this->io->write('<error>Error reading in require.js</error>');
64
-
65
- return false;
66
- }
67
-
68
- $assets = $this->newAssetCollection();
69
- $assets->add(new FileAsset(dirname(__DIR__) . '/Resources/require.js'));
70
- $assets->add(new StringAsset($requireConfig));
71
-
72
- // Append the config to the require.js and write it.
73
- if (file_put_contents($this->componentDir . '/require.js', $assets->dump()) === FALSE) {
74
- $this->io->write('<error>Error writing require.js to the components directory</error>');
75
-
76
- return false;
77
- }
78
-
79
- return null;
80
- }
81
-
82
- /**
83
- * Creates a require.js configuration from an array of packages.
84
- *
85
- * @param $packages
86
- * An array of packages from the composer.lock file.
87
- *
88
- * @return array
89
- * The built JSON array.
90
- */
91
- public function requireJson(array $packages)
92
- {
93
- $json = array();
94
-
95
- // Construct the packages configuration.
96
- foreach ($packages as $package) {
97
- // Retrieve information from the extra options.
98
- $extra = isset($package['extra']) ? $package['extra'] : array();
99
- $options = isset($extra['component']) ? $extra['component'] : array();
100
-
101
- // Construct the base details.
102
- $name = $this->getComponentName($package['name'], $extra);
103
- $component = array(
104
- 'name' => $name,
105
- );
106
-
107
- // Build the "main" directive.
108
- $scripts = isset($options['scripts']) ? $options['scripts'] : array();
109
- if (!empty($scripts)) {
110
- // Put all scripts into a build.js file.
111
- $result = $this->aggregateScripts($package, $scripts, $name.DIRECTORY_SEPARATOR.$name.'-built.js');
112
- if ($result) {
113
- // If the aggregation was successful, add the script to the
114
- // packages array.
115
- $component['main'] = $name.'-built.js';
116
-
117
- // Add the component to the packages array.
118
- $json['packages'][] = $component;
119
- }
120
- }
121
-
122
- // Add the shim definition for the package.
123
- $shim = isset($options['shim']) ? $options['shim'] : array();
124
- if (!empty($shim)) {
125
- $json['shim'][$name] = $shim;
126
- }
127
-
128
- // Add the config definition for the package.
129
- $packageConfig = isset($options['config']) ? $options['config'] : array();
130
- if (!empty($packageConfig)) {
131
- $json['config'][$name] = $packageConfig;
132
- }
133
- }
134
-
135
- // Provide the baseUrl.
136
- $json['baseUrl'] = $this->baseUrl;
137
-
138
- // Merge in configuration options from the root.
139
- if ($this->config->has('component')) {
140
- $config = $this->config->get('component');
141
- if (isset($config) && is_array($config)) {
142
- // Use a recursive, distict array merge.
143
- $json = $this->arrayMergeRecursiveDistinct($json, $config);
144
- }
145
- }
146
-
147
- return $json;
148
- }
149
-
150
- /**
151
- * Concatenate all scripts together into one destination file.
152
- *
153
- * @param array $package
154
- * @param array $scripts
155
- * @param string $file
156
- * @return bool
157
- */
158
- public function aggregateScripts($package, array $scripts, $file)
159
- {
160
- $assets = $this->newAssetCollection();
161
-
162
- foreach ($scripts as $script) {
163
- // Collect each candidate from a glob file search.
164
- $path = $this->getVendorDir($package).DIRECTORY_SEPARATOR.$script;
165
- $matches = $this->fs->recursiveGlobFiles($path);
166
- foreach ($matches as $match) {
167
- $assets->add(new FileAsset($match));
168
- }
169
- }
170
- $js = $assets->dump();
171
-
172
- // Write the file if there are any JavaScript assets.
173
- if (!empty($js)) {
174
- $destination = $this->componentDir.DIRECTORY_SEPARATOR.$file;
175
- $this->fs->ensureDirectoryExists(dirname($destination));
176
-
177
- return file_put_contents($destination, $js);
178
- }
179
-
180
- return false;
181
- }
182
-
183
- /**
184
- * Constructs the require.js file from the provided require.js JSON array.
185
- *
186
- * @param $json
187
- * The require.js JSON configuration.
188
- *
189
- * @return string
190
- * The RequireJS JavaScript configuration.
191
- */
192
- public function requireJs(array $json = array())
193
- {
194
- // Encode the array to a JSON array.
195
- $js = JsonFile::encode($json);
196
-
197
- // Construct the JavaScript output.
198
- $output = <<<EOT
199
- var components = $js;
200
- if (typeof require !== "undefined" && require.config) {
201
- require.config(components);
202
- } else {
203
- var require = components;
204
- }
205
- if (typeof exports !== "undefined" && typeof module !== "undefined") {
206
- module.exports = components;
207
- }
208
- EOT;
209
-
210
- return $output;
211
- }
212
-
213
- /**
214
- * Merges two arrays without changing string array keys. Appends to array if keys are numeric.
215
- *
216
- * @see array_merge()
217
- * @see array_merge_recursive()
218
- *
219
- * @param array $array1
220
- * @param array $array2
221
- * @return array
222
- */
223
- protected function arrayMergeRecursiveDistinct(array &$array1, array &$array2)
224
- {
225
- $merged = $array1;
226
-
227
- foreach ($array2 as $key => &$value) {
228
- if(is_numeric($key)){
229
- $merged[] = $value;
230
- } else {
231
- if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
232
- $merged[$key] = $this->arrayMergeRecursiveDistinct($merged[$key], $value);
233
- }
234
- else {
235
- $merged[$key] = $value;
236
- }
237
- }
238
- }
239
-
240
- return $merged;
241
- }
242
-
243
- /**
244
- * @return AssetCollection
245
- */
246
- protected function newAssetCollection()
247
- {
248
- // Aggregate all the assets into one file.
249
- $assets = new AssetCollection();
250
- if ($this->config->has('component-scriptFilters')) {
251
- $filters = $this->config->get('component-scriptFilters');
252
- if (isset($filters) && is_array($filters)) {
253
- foreach ($filters as $filter => $filterParams) {
254
- $reflection = new \ReflectionClass($filter);
255
- /** @var \Assetic\Filter\FilterInterface $filter */
256
- $filter = $reflection->newInstanceArgs($filterParams);
257
- $assets->ensureFilter($filter);
258
- }
259
- }
260
- }
261
-
262
- return $assets;
263
- }
264
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Resources/require.js DELETED
@@ -1,2019 +0,0 @@
1
- /** vim: et:ts=4:sw=4:sts=4
2
- * @license RequireJS 2.1.5 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
3
- * Available via the MIT or new BSD license.
4
- * see: http://github.com/jrburke/requirejs for details
5
- */
6
- //Not using strict: uneven strict support in browsers, #392, and causes
7
- //problems with requirejs.exec()/transpiler plugins that may not be strict.
8
- /*jslint regexp: true, nomen: true, sloppy: true */
9
- /*global window, navigator, document, importScripts, setTimeout, opera */
10
-
11
- var requirejs, require, define;
12
- (function (global) {
13
- var req, s, head, baseElement, dataMain, src,
14
- interactiveScript, currentlyAddingScript, mainScript, subPath,
15
- version = '2.1.5',
16
- commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
17
- cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
18
- jsSuffixRegExp = /\.js$/,
19
- currDirRegExp = /^\.\//,
20
- op = Object.prototype,
21
- ostring = op.toString,
22
- hasOwn = op.hasOwnProperty,
23
- ap = Array.prototype,
24
- apsp = ap.splice,
25
- isBrowser = !!(typeof window !== 'undefined' && navigator && document),
26
- isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
27
- //PS3 indicates loaded and complete, but need to wait for complete
28
- //specifically. Sequence is 'loading', 'loaded', execution,
29
- // then 'complete'. The UA check is unfortunate, but not sure how
30
- //to feature test w/o causing perf issues.
31
- readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
32
- /^complete$/ : /^(complete|loaded)$/,
33
- defContextName = '_',
34
- //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
35
- isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
36
- contexts = {},
37
- cfg = {},
38
- globalDefQueue = [],
39
- useInteractive = false;
40
-
41
- function isFunction(it) {
42
- return ostring.call(it) === '[object Function]';
43
- }
44
-
45
- function isArray(it) {
46
- return ostring.call(it) === '[object Array]';
47
- }
48
-
49
- /**
50
- * Helper function for iterating over an array. If the func returns
51
- * a true value, it will break out of the loop.
52
- */
53
- function each(ary, func) {
54
- if (ary) {
55
- var i;
56
- for (i = 0; i < ary.length; i += 1) {
57
- if (ary[i] && func(ary[i], i, ary)) {
58
- break;
59
- }
60
- }
61
- }
62
- }
63
-
64
- /**
65
- * Helper function for iterating over an array backwards. If the func
66
- * returns a true value, it will break out of the loop.
67
- */
68
- function eachReverse(ary, func) {
69
- if (ary) {
70
- var i;
71
- for (i = ary.length - 1; i > -1; i -= 1) {
72
- if (ary[i] && func(ary[i], i, ary)) {
73
- break;
74
- }
75
- }
76
- }
77
- }
78
-
79
- function hasProp(obj, prop) {
80
- return hasOwn.call(obj, prop);
81
- }
82
-
83
- function getOwn(obj, prop) {
84
- return hasProp(obj, prop) && obj[prop];
85
- }
86
-
87
- /**
88
- * Cycles over properties in an object and calls a function for each
89
- * property value. If the function returns a truthy value, then the
90
- * iteration is stopped.
91
- */
92
- function eachProp(obj, func) {
93
- var prop;
94
- for (prop in obj) {
95
- if (hasProp(obj, prop)) {
96
- if (func(obj[prop], prop)) {
97
- break;
98
- }
99
- }
100
- }
101
- }
102
-
103
- /**
104
- * Simple function to mix in properties from source into target,
105
- * but only if target does not already have a property of the same name.
106
- */
107
- function mixin(target, source, force, deepStringMixin) {
108
- if (source) {
109
- eachProp(source, function (value, prop) {
110
- if (force || !hasProp(target, prop)) {
111
- if (deepStringMixin && typeof value !== 'string') {
112
- if (!target[prop]) {
113
- target[prop] = {};
114
- }
115
- mixin(target[prop], value, force, deepStringMixin);
116
- } else {
117
- target[prop] = value;
118
- }
119
- }
120
- });
121
- }
122
- return target;
123
- }
124
-
125
- //Similar to Function.prototype.bind, but the 'this' object is specified
126
- //first, since it is easier to read/figure out what 'this' will be.
127
- function bind(obj, fn) {
128
- return function () {
129
- return fn.apply(obj, arguments);
130
- };
131
- }
132
-
133
- function scripts() {
134
- return document.getElementsByTagName('script');
135
- }
136
-
137
- //Allow getting a global that expressed in
138
- //dot notation, like 'a.b.c'.
139
- function getGlobal(value) {
140
- if (!value) {
141
- return value;
142
- }
143
- var g = global;
144
- each(value.split('.'), function (part) {
145
- g = g[part];
146
- });
147
- return g;
148
- }
149
-
150
- /**
151
- * Constructs an error with a pointer to an URL with more information.
152
- * @param {String} id the error ID that maps to an ID on a web page.
153
- * @param {String} message human readable error.
154
- * @param {Error} [err] the original error, if there is one.
155
- *
156
- * @returns {Error}
157
- */
158
- function makeError(id, msg, err, requireModules) {
159
- var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id);
160
- e.requireType = id;
161
- e.requireModules = requireModules;
162
- if (err) {
163
- e.originalError = err;
164
- }
165
- return e;
166
- }
167
-
168
- if (typeof define !== 'undefined') {
169
- //If a define is already in play via another AMD loader,
170
- //do not overwrite.
171
- return;
172
- }
173
-
174
- if (typeof requirejs !== 'undefined') {
175
- if (isFunction(requirejs)) {
176
- //Do not overwrite and existing requirejs instance.
177
- return;
178
- }
179
- cfg = requirejs;
180
- requirejs = undefined;
181
- }
182
-
183
- //Allow for a require config object
184
- if (typeof require !== 'undefined' && !isFunction(require)) {
185
- //assume it is a config object.
186
- cfg = require;
187
- require = undefined;
188
- }
189
-
190
- function newContext(contextName) {
191
- var inCheckLoaded, Module, context, handlers,
192
- checkLoadedTimeoutId,
193
- config = {
194
- //Defaults. Do not set a default for map
195
- //config to speed up normalize(), which
196
- //will run faster if there is no default.
197
- waitSeconds: 7,
198
- baseUrl: './',
199
- paths: {},
200
- pkgs: {},
201
- shim: {},
202
- config: {}
203
- },
204
- registry = {},
205
- //registry of just enabled modules, to speed
206
- //cycle breaking code when lots of modules
207
- //are registered, but not activated.
208
- enabledRegistry = {},
209
- undefEvents = {},
210
- defQueue = [],
211
- defined = {},
212
- urlFetched = {},
213
- requireCounter = 1,
214
- unnormalizedCounter = 1;
215
-
216
- /**
217
- * Trims the . and .. from an array of path segments.
218
- * It will keep a leading path segment if a .. will become
219
- * the first path segment, to help with module name lookups,
220
- * which act like paths, but can be remapped. But the end result,
221
- * all paths that use this function should look normalized.
222
- * NOTE: this method MODIFIES the input array.
223
- * @param {Array} ary the array of path segments.
224
- */
225
- function trimDots(ary) {
226
- var i, part;
227
- for (i = 0; ary[i]; i += 1) {
228
- part = ary[i];
229
- if (part === '.') {
230
- ary.splice(i, 1);
231
- i -= 1;
232
- } else if (part === '..') {
233
- if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
234
- //End of the line. Keep at least one non-dot
235
- //path segment at the front so it can be mapped
236
- //correctly to disk. Otherwise, there is likely
237
- //no path mapping for a path starting with '..'.
238
- //This can still fail, but catches the most reasonable
239
- //uses of ..
240
- break;
241
- } else if (i > 0) {
242
- ary.splice(i - 1, 2);
243
- i -= 2;
244
- }
245
- }
246
- }
247
- }
248
-
249
- /**
250
- * Given a relative module name, like ./something, normalize it to
251
- * a real name that can be mapped to a path.
252
- * @param {String} name the relative name
253
- * @param {String} baseName a real name that the name arg is relative
254
- * to.
255
- * @param {Boolean} applyMap apply the map config to the value. Should
256
- * only be done if this normalization is for a dependency ID.
257
- * @returns {String} normalized name
258
- */
259
- function normalize(name, baseName, applyMap) {
260
- var pkgName, pkgConfig, mapValue, nameParts, i, j, nameSegment,
261
- foundMap, foundI, foundStarMap, starI,
262
- baseParts = baseName && baseName.split('/'),
263
- normalizedBaseParts = baseParts,
264
- map = config.map,
265
- starMap = map && map['*'];
266
-
267
- //Adjust any relative paths.
268
- if (name && name.charAt(0) === '.') {
269
- //If have a base name, try to normalize against it,
270
- //otherwise, assume it is a top-level require that will
271
- //be relative to baseUrl in the end.
272
- if (baseName) {
273
- if (getOwn(config.pkgs, baseName)) {
274
- //If the baseName is a package name, then just treat it as one
275
- //name to concat the name with.
276
- normalizedBaseParts = baseParts = [baseName];
277
- } else {
278
- //Convert baseName to array, and lop off the last part,
279
- //so that . matches that 'directory' and not name of the baseName's
280
- //module. For instance, baseName of 'one/two/three', maps to
281
- //'one/two/three.js', but we want the directory, 'one/two' for
282
- //this normalization.
283
- normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
284
- }
285
-
286
- name = normalizedBaseParts.concat(name.split('/'));
287
- trimDots(name);
288
-
289
- //Some use of packages may use a . path to reference the
290
- //'main' module name, so normalize for that.
291
- pkgConfig = getOwn(config.pkgs, (pkgName = name[0]));
292
- name = name.join('/');
293
- if (pkgConfig && name === pkgName + '/' + pkgConfig.main) {
294
- name = pkgName;
295
- }
296
- } else if (name.indexOf('./') === 0) {
297
- // No baseName, so this is ID is resolved relative
298
- // to baseUrl, pull off the leading dot.
299
- name = name.substring(2);
300
- }
301
- }
302
-
303
- //Apply map config if available.
304
- if (applyMap && map && (baseParts || starMap)) {
305
- nameParts = name.split('/');
306
-
307
- for (i = nameParts.length; i > 0; i -= 1) {
308
- nameSegment = nameParts.slice(0, i).join('/');
309
-
310
- if (baseParts) {
311
- //Find the longest baseName segment match in the config.
312
- //So, do joins on the biggest to smallest lengths of baseParts.
313
- for (j = baseParts.length; j > 0; j -= 1) {
314
- mapValue = getOwn(map, baseParts.slice(0, j).join('/'));
315
-
316
- //baseName segment has config, find if it has one for
317
- //this name.
318
- if (mapValue) {
319
- mapValue = getOwn(mapValue, nameSegment);
320
- if (mapValue) {
321
- //Match, update name to the new value.
322
- foundMap = mapValue;
323
- foundI = i;
324
- break;
325
- }
326
- }
327
- }
328
- }
329
-
330
- if (foundMap) {
331
- break;
332
- }
333
-
334
- //Check for a star map match, but just hold on to it,
335
- //if there is a shorter segment match later in a matching
336
- //config, then favor over this star map.
337
- if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
338
- foundStarMap = getOwn(starMap, nameSegment);
339
- starI = i;
340
- }
341
- }
342
-
343
- if (!foundMap && foundStarMap) {
344
- foundMap = foundStarMap;
345
- foundI = starI;
346
- }
347
-
348
- if (foundMap) {
349
- nameParts.splice(0, foundI, foundMap);
350
- name = nameParts.join('/');
351
- }
352
- }
353
-
354
- return name;
355
- }
356
-
357
- function removeScript(name) {
358
- if (isBrowser) {
359
- each(scripts(), function (scriptNode) {
360
- if (scriptNode.getAttribute('data-requiremodule') === name &&
361
- scriptNode.getAttribute('data-requirecontext') === context.contextName) {
362
- scriptNode.parentNode.removeChild(scriptNode);
363
- return true;
364
- }
365
- });
366
- }
367
- }
368
-
369
- function hasPathFallback(id) {
370
- var pathConfig = getOwn(config.paths, id);
371
- if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
372
- removeScript(id);
373
- //Pop off the first array value, since it failed, and
374
- //retry
375
- pathConfig.shift();
376
- context.require.undef(id);
377
- context.require([id]);
378
- return true;
379
- }
380
- }
381
-
382
- //Turns a plugin!resource to [plugin, resource]
383
- //with the plugin being undefined if the name
384
- //did not have a plugin prefix.
385
- function splitPrefix(name) {
386
- var prefix,
387
- index = name ? name.indexOf('!') : -1;
388
- if (index > -1) {
389
- prefix = name.substring(0, index);
390
- name = name.substring(index + 1, name.length);
391
- }
392
- return [prefix, name];
393
- }
394
-
395
- /**
396
- * Creates a module mapping that includes plugin prefix, module
397
- * name, and path. If parentModuleMap is provided it will
398
- * also normalize the name via require.normalize()
399
- *
400
- * @param {String} name the module name
401
- * @param {String} [parentModuleMap] parent module map
402
- * for the module name, used to resolve relative names.
403
- * @param {Boolean} isNormalized: is the ID already normalized.
404
- * This is true if this call is done for a define() module ID.
405
- * @param {Boolean} applyMap: apply the map config to the ID.
406
- * Should only be true if this map is for a dependency.
407
- *
408
- * @returns {Object}
409
- */
410
- function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
411
- var url, pluginModule, suffix, nameParts,
412
- prefix = null,
413
- parentName = parentModuleMap ? parentModuleMap.name : null,
414
- originalName = name,
415
- isDefine = true,
416
- normalizedName = '';
417
-
418
- //If no name, then it means it is a require call, generate an
419
- //internal name.
420
- if (!name) {
421
- isDefine = false;
422
- name = '_@r' + (requireCounter += 1);
423
- }
424
-
425
- nameParts = splitPrefix(name);
426
- prefix = nameParts[0];
427
- name = nameParts[1];
428
-
429
- if (prefix) {
430
- prefix = normalize(prefix, parentName, applyMap);
431
- pluginModule = getOwn(defined, prefix);
432
- }
433
-
434
- //Account for relative paths if there is a base name.
435
- if (name) {
436
- if (prefix) {
437
- if (pluginModule && pluginModule.normalize) {
438
- //Plugin is loaded, use its normalize method.
439
- normalizedName = pluginModule.normalize(name, function (name) {
440
- return normalize(name, parentName, applyMap);
441
- });
442
- } else {
443
- normalizedName = normalize(name, parentName, applyMap);
444
- }
445
- } else {
446
- //A regular module.
447
- normalizedName = normalize(name, parentName, applyMap);
448
-
449
- //Normalized name may be a plugin ID due to map config
450
- //application in normalize. The map config values must
451
- //already be normalized, so do not need to redo that part.
452
- nameParts = splitPrefix(normalizedName);
453
- prefix = nameParts[0];
454
- normalizedName = nameParts[1];
455
- isNormalized = true;
456
-
457
- url = context.nameToUrl(normalizedName);
458
- }
459
- }
460
-
461
- //If the id is a plugin id that cannot be determined if it needs
462
- //normalization, stamp it with a unique ID so two matching relative
463
- //ids that may conflict can be separate.
464
- suffix = prefix && !pluginModule && !isNormalized ?
465
- '_unnormalized' + (unnormalizedCounter += 1) :
466
- '';
467
-
468
- return {
469
- prefix: prefix,
470
- name: normalizedName,
471
- parentMap: parentModuleMap,
472
- unnormalized: !!suffix,
473
- url: url,
474
- originalName: originalName,
475
- isDefine: isDefine,
476
- id: (prefix ?
477
- prefix + '!' + normalizedName :
478
- normalizedName) + suffix
479
- };
480
- }
481
-
482
- function getModule(depMap) {
483
- var id = depMap.id,
484
- mod = getOwn(registry, id);
485
-
486
- if (!mod) {
487
- mod = registry[id] = new context.Module(depMap);
488
- }
489
-
490
- return mod;
491
- }
492
-
493
- function on(depMap, name, fn) {
494
- var id = depMap.id,
495
- mod = getOwn(registry, id);
496
-
497
- if (hasProp(defined, id) &&
498
- (!mod || mod.defineEmitComplete)) {
499
- if (name === 'defined') {
500
- fn(defined[id]);
501
- }
502
- } else {
503
- getModule(depMap).on(name, fn);
504
- }
505
- }
506
-
507
- function onError(err, errback) {
508
- var ids = err.requireModules,
509
- notified = false;
510
-
511
- if (errback) {
512
- errback(err);
513
- } else {
514
- each(ids, function (id) {
515
- var mod = getOwn(registry, id);
516
- if (mod) {
517
- //Set error on module, so it skips timeout checks.
518
- mod.error = err;
519
- if (mod.events.error) {
520
- notified = true;
521
- mod.emit('error', err);
522
- }
523
- }
524
- });
525
-
526
- if (!notified) {
527
- req.onError(err);
528
- }
529
- }
530
- }
531
-
532
- /**
533
- * Internal method to transfer globalQueue items to this context's
534
- * defQueue.
535
- */
536
- function takeGlobalQueue() {
537
- //Push all the globalDefQueue items into the context's defQueue
538
- if (globalDefQueue.length) {
539
- //Array splice in the values since the context code has a
540
- //local var ref to defQueue, so cannot just reassign the one
541
- //on context.
542
- apsp.apply(defQueue,
543
- [defQueue.length - 1, 0].concat(globalDefQueue));
544
- globalDefQueue = [];
545
- }
546
- }
547
-
548
- handlers = {
549
- 'require': function (mod) {
550
- if (mod.require) {
551
- return mod.require;
552
- } else {
553
- return (mod.require = context.makeRequire(mod.map));
554
- }
555
- },
556
- 'exports': function (mod) {
557
- mod.usingExports = true;
558
- if (mod.map.isDefine) {
559
- if (mod.exports) {
560
- return mod.exports;
561
- } else {
562
- return (mod.exports = defined[mod.map.id] = {});
563
- }
564
- }
565
- },
566
- 'module': function (mod) {
567
- if (mod.module) {
568
- return mod.module;
569
- } else {
570
- return (mod.module = {
571
- id: mod.map.id,
572
- uri: mod.map.url,
573
- config: function () {
574
- return (config.config && getOwn(config.config, mod.map.id)) || {};
575
- },
576
- exports: defined[mod.map.id]
577
- });
578
- }
579
- }
580
- };
581
-
582
- function cleanRegistry(id) {
583
- //Clean up machinery used for waiting modules.
584
- delete registry[id];
585
- delete enabledRegistry[id];
586
- }
587
-
588
- function breakCycle(mod, traced, processed) {
589
- var id = mod.map.id;
590
-
591
- if (mod.error) {
592
- mod.emit('error', mod.error);
593
- } else {
594
- traced[id] = true;
595
- each(mod.depMaps, function (depMap, i) {
596
- var depId = depMap.id,
597
- dep = getOwn(registry, depId);
598
-
599
- //Only force things that have not completed
600
- //being defined, so still in the registry,
601
- //and only if it has not been matched up
602
- //in the module already.
603
- if (dep && !mod.depMatched[i] && !processed[depId]) {
604
- if (getOwn(traced, depId)) {
605
- mod.defineDep(i, defined[depId]);
606
- mod.check(); //pass false?
607
- } else {
608
- breakCycle(dep, traced, processed);
609
- }
610
- }
611
- });
612
- processed[id] = true;
613
- }
614
- }
615
-
616
- function checkLoaded() {
617
- var map, modId, err, usingPathFallback,
618
- waitInterval = config.waitSeconds * 1000,
619
- //It is possible to disable the wait interval by using waitSeconds of 0.
620
- expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
621
- noLoads = [],
622
- reqCalls = [],
623
- stillLoading = false,
624
- needCycleCheck = true;
625
-
626
- //Do not bother if this call was a result of a cycle break.
627
- if (inCheckLoaded) {
628
- return;
629
- }
630
-
631
- inCheckLoaded = true;
632
-
633
- //Figure out the state of all the modules.
634
- eachProp(enabledRegistry, function (mod) {
635
- map = mod.map;
636
- modId = map.id;
637
-
638
- //Skip things that are not enabled or in error state.
639
- if (!mod.enabled) {
640
- return;
641
- }
642
-
643
- if (!map.isDefine) {
644
- reqCalls.push(mod);
645
- }
646
-
647
- if (!mod.error) {
648
- //If the module should be executed, and it has not
649
- //been inited and time is up, remember it.
650
- if (!mod.inited && expired) {
651
- if (hasPathFallback(modId)) {
652
- usingPathFallback = true;
653
- stillLoading = true;
654
- } else {
655
- noLoads.push(modId);
656
- removeScript(modId);
657
- }
658
- } else if (!mod.inited && mod.fetched && map.isDefine) {
659
- stillLoading = true;
660
- if (!map.prefix) {
661
- //No reason to keep looking for unfinished
662
- //loading. If the only stillLoading is a
663
- //plugin resource though, keep going,
664
- //because it may be that a plugin resource
665
- //is waiting on a non-plugin cycle.
666
- return (needCycleCheck = false);
667
- }
668
- }
669
- }
670
- });
671
-
672
- if (expired && noLoads.length) {
673
- //If wait time expired, throw error of unloaded modules.
674
- err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
675
- err.contextName = context.contextName;
676
- return onError(err);
677
- }
678
-
679
- //Not expired, check for a cycle.
680
- if (needCycleCheck) {
681
- each(reqCalls, function (mod) {
682
- breakCycle(mod, {}, {});
683
- });
684
- }
685
-
686
- //If still waiting on loads, and the waiting load is something
687
- //other than a plugin resource, or there are still outstanding
688
- //scripts, then just try back later.
689
- if ((!expired || usingPathFallback) && stillLoading) {
690
- //Something is still waiting to load. Wait for it, but only
691
- //if a timeout is not already in effect.
692
- if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
693
- checkLoadedTimeoutId = setTimeout(function () {
694
- checkLoadedTimeoutId = 0;
695
- checkLoaded();
696
- }, 50);
697
- }
698
- }
699
-
700
- inCheckLoaded = false;
701
- }
702
-
703
- Module = function (map) {
704
- this.events = getOwn(undefEvents, map.id) || {};
705
- this.map = map;
706
- this.shim = getOwn(config.shim, map.id);
707
- this.depExports = [];
708
- this.depMaps = [];
709
- this.depMatched = [];
710
- this.pluginMaps = {};
711
- this.depCount = 0;
712
-
713
- /* this.exports this.factory
714
- this.depMaps = [],
715
- this.enabled, this.fetched
716
- */
717
- };
718
-
719
- Module.prototype = {
720
- init: function (depMaps, factory, errback, options) {
721
- options = options || {};
722
-
723
- //Do not do more inits if already done. Can happen if there
724
- //are multiple define calls for the same module. That is not
725
- //a normal, common case, but it is also not unexpected.
726
- if (this.inited) {
727
- return;
728
- }
729
-
730
- this.factory = factory;
731
-
732
- if (errback) {
733
- //Register for errors on this module.
734
- this.on('error', errback);
735
- } else if (this.events.error) {
736
- //If no errback already, but there are error listeners
737
- //on this module, set up an errback to pass to the deps.
738
- errback = bind(this, function (err) {
739
- this.emit('error', err);
740
- });
741
- }
742
-
743
- //Do a copy of the dependency array, so that
744
- //source inputs are not modified. For example
745
- //"shim" deps are passed in here directly, and
746
- //doing a direct modification of the depMaps array
747
- //would affect that config.
748
- this.depMaps = depMaps && depMaps.slice(0);
749
-
750
- this.errback = errback;
751
-
752
- //Indicate this module has be initialized
753
- this.inited = true;
754
-
755
- this.ignore = options.ignore;
756
-
757
- //Could have option to init this module in enabled mode,
758
- //or could have been previously marked as enabled. However,
759
- //the dependencies are not known until init is called. So
760
- //if enabled previously, now trigger dependencies as enabled.
761
- if (options.enabled || this.enabled) {
762
- //Enable this module and dependencies.
763
- //Will call this.check()
764
- this.enable();
765
- } else {
766
- this.check();
767
- }
768
- },
769
-
770
- defineDep: function (i, depExports) {
771
- //Because of cycles, defined callback for a given
772
- //export can be called more than once.
773
- if (!this.depMatched[i]) {
774
- this.depMatched[i] = true;
775
- this.depCount -= 1;
776
- this.depExports[i] = depExports;
777
- }
778
- },
779
-
780
- fetch: function () {
781
- if (this.fetched) {
782
- return;
783
- }
784
- this.fetched = true;
785
-
786
- context.startTime = (new Date()).getTime();
787
-
788
- var map = this.map;
789
-
790
- //If the manager is for a plugin managed resource,
791
- //ask the plugin to load it now.
792
- if (this.shim) {
793
- context.makeRequire(this.map, {
794
- enableBuildCallback: true
795
- })(this.shim.deps || [], bind(this, function () {
796
- return map.prefix ? this.callPlugin() : this.load();
797
- }));
798
- } else {
799
- //Regular dependency.
800
- return map.prefix ? this.callPlugin() : this.load();
801
- }
802
- },
803
-
804
- load: function () {
805
- var url = this.map.url;
806
-
807
- //Regular dependency.
808
- if (!urlFetched[url]) {
809
- urlFetched[url] = true;
810
- context.load(this.map.id, url);
811
- }
812
- },
813
-
814
- /**
815
- * Checks if the module is ready to define itself, and if so,
816
- * define it.
817
- */
818
- check: function () {
819
- if (!this.enabled || this.enabling) {
820
- return;
821
- }
822
-
823
- var err, cjsModule,
824
- id = this.map.id,
825
- depExports = this.depExports,
826
- exports = this.exports,
827
- factory = this.factory;
828
-
829
- if (!this.inited) {
830
- this.fetch();
831
- } else if (this.error) {
832
- this.emit('error', this.error);
833
- } else if (!this.defining) {
834
- //The factory could trigger another require call
835
- //that would result in checking this module to
836
- //define itself again. If already in the process
837
- //of doing that, skip this work.
838
- this.defining = true;
839
-
840
- if (this.depCount < 1 && !this.defined) {
841
- if (isFunction(factory)) {
842
- //If there is an error listener, favor passing
843
- //to that instead of throwing an error.
844
- if (this.events.error) {
845
- try {
846
- exports = context.execCb(id, factory, depExports, exports);
847
- } catch (e) {
848
- err = e;
849
- }
850
- } else {
851
- exports = context.execCb(id, factory, depExports, exports);
852
- }
853
-
854
- if (this.map.isDefine) {
855
- //If setting exports via 'module' is in play,
856
- //favor that over return value and exports. After that,
857
- //favor a non-undefined return value over exports use.
858
- cjsModule = this.module;
859
- if (cjsModule &&
860
- cjsModule.exports !== undefined &&
861
- //Make sure it is not already the exports value
862
- cjsModule.exports !== this.exports) {
863
- exports = cjsModule.exports;
864
- } else if (exports === undefined && this.usingExports) {
865
- //exports already set the defined value.
866
- exports = this.exports;
867
- }
868
- }
869
-
870
- if (err) {
871
- err.requireMap = this.map;
872
- err.requireModules = [this.map.id];
873
- err.requireType = 'define';
874
- return onError((this.error = err));
875
- }
876
-
877
- } else {
878
- //Just a literal value
879
- exports = factory;
880
- }
881
-
882
- this.exports = exports;
883
-
884
- if (this.map.isDefine && !this.ignore) {
885
- defined[id] = exports;
886
-
887
- if (req.onResourceLoad) {
888
- req.onResourceLoad(context, this.map, this.depMaps);
889
- }
890
- }
891
-
892
- //Clean up
893
- cleanRegistry(id);
894
-
895
- this.defined = true;
896
- }
897
-
898
- //Finished the define stage. Allow calling check again
899
- //to allow define notifications below in the case of a
900
- //cycle.
901
- this.defining = false;
902
-
903
- if (this.defined && !this.defineEmitted) {
904
- this.defineEmitted = true;
905
- this.emit('defined', this.exports);
906
- this.defineEmitComplete = true;
907
- }
908
-
909
- }
910
- },
911
-
912
- callPlugin: function () {
913
- var map = this.map,
914
- id = map.id,
915
- //Map already normalized the prefix.
916
- pluginMap = makeModuleMap(map.prefix);
917
-
918
- //Mark this as a dependency for this plugin, so it
919
- //can be traced for cycles.
920
- this.depMaps.push(pluginMap);
921
-
922
- on(pluginMap, 'defined', bind(this, function (plugin) {
923
- var load, normalizedMap, normalizedMod,
924
- name = this.map.name,
925
- parentName = this.map.parentMap ? this.map.parentMap.name : null,
926
- localRequire = context.makeRequire(map.parentMap, {
927
- enableBuildCallback: true
928
- });
929
-
930
- //If current map is not normalized, wait for that
931
- //normalized name to load instead of continuing.
932
- if (this.map.unnormalized) {
933
- //Normalize the ID if the plugin allows it.
934
- if (plugin.normalize) {
935
- name = plugin.normalize(name, function (name) {
936
- return normalize(name, parentName, true);
937
- }) || '';
938
- }
939
-
940
- //prefix and name should already be normalized, no need
941
- //for applying map config again either.
942
- normalizedMap = makeModuleMap(map.prefix + '!' + name,
943
- this.map.parentMap);
944
- on(normalizedMap,
945
- 'defined', bind(this, function (value) {
946
- this.init([], function () { return value; }, null, {
947
- enabled: true,
948
- ignore: true
949
- });
950
- }));
951
-
952
- normalizedMod = getOwn(registry, normalizedMap.id);
953
- if (normalizedMod) {
954
- //Mark this as a dependency for this plugin, so it
955
- //can be traced for cycles.
956
- this.depMaps.push(normalizedMap);
957
-
958
- if (this.events.error) {
959
- normalizedMod.on('error', bind(this, function (err) {
960
- this.emit('error', err);
961
- }));
962
- }
963
- normalizedMod.enable();
964
- }
965
-
966
- return;
967
- }
968
-
969
- load = bind(this, function (value) {
970
- this.init([], function () { return value; }, null, {
971
- enabled: true
972
- });
973
- });
974
-
975
- load.error = bind(this, function (err) {
976
- this.inited = true;
977
- this.error = err;
978
- err.requireModules = [id];
979
-
980
- //Remove temp unnormalized modules for this module,
981
- //since they will never be resolved otherwise now.
982
- eachProp(registry, function (mod) {
983
- if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
984
- cleanRegistry(mod.map.id);
985
- }
986
- });
987
-
988
- onError(err);
989
- });
990
-
991
- //Allow plugins to load other code without having to know the
992
- //context or how to 'complete' the load.
993
- load.fromText = bind(this, function (text, textAlt) {
994
- /*jslint evil: true */
995
- var moduleName = map.name,
996
- moduleMap = makeModuleMap(moduleName),
997
- hasInteractive = useInteractive;
998
-
999
- //As of 2.1.0, support just passing the text, to reinforce
1000
- //fromText only being called once per resource. Still
1001
- //support old style of passing moduleName but discard
1002
- //that moduleName in favor of the internal ref.
1003
- if (textAlt) {
1004
- text = textAlt;
1005
- }
1006
-
1007
- //Turn off interactive script matching for IE for any define
1008
- //calls in the text, then turn it back on at the end.
1009
- if (hasInteractive) {
1010
- useInteractive = false;
1011
- }
1012
-
1013
- //Prime the system by creating a module instance for
1014
- //it.
1015
- getModule(moduleMap);
1016
-
1017
- //Transfer any config to this other module.
1018
- if (hasProp(config.config, id)) {
1019
- config.config[moduleName] = config.config[id];
1020
- }
1021
-
1022
- try {
1023
- req.exec(text);
1024
- } catch (e) {
1025
- return onError(makeError('fromtexteval',
1026
- 'fromText eval for ' + id +
1027
- ' failed: ' + e,
1028
- e,
1029
- [id]));
1030
- }
1031
-
1032
- if (hasInteractive) {
1033
- useInteractive = true;
1034
- }
1035
-
1036
- //Mark this as a dependency for the plugin
1037
- //resource
1038
- this.depMaps.push(moduleMap);
1039
-
1040
- //Support anonymous modules.
1041
- context.completeLoad(moduleName);
1042
-
1043
- //Bind the value of that module to the value for this
1044
- //resource ID.
1045
- localRequire([moduleName], load);
1046
- });
1047
-
1048
- //Use parentName here since the plugin's name is not reliable,
1049
- //could be some weird string with no path that actually wants to
1050
- //reference the parentName's path.
1051
- plugin.load(map.name, localRequire, load, config);
1052
- }));
1053
-
1054
- context.enable(pluginMap, this);
1055
- this.pluginMaps[pluginMap.id] = pluginMap;
1056
- },
1057
-
1058
- enable: function () {
1059
- enabledRegistry[this.map.id] = this;
1060
- this.enabled = true;
1061
-
1062
- //Set flag mentioning that the module is enabling,
1063
- //so that immediate calls to the defined callbacks
1064
- //for dependencies do not trigger inadvertent load
1065
- //with the depCount still being zero.
1066
- this.enabling = true;
1067
-
1068
- //Enable each dependency
1069
- each(this.depMaps, bind(this, function (depMap, i) {
1070
- var id, mod, handler;
1071
-
1072
- if (typeof depMap === 'string') {
1073
- //Dependency needs to be converted to a depMap
1074
- //and wired up to this module.
1075
- depMap = makeModuleMap(depMap,
1076
- (this.map.isDefine ? this.map : this.map.parentMap),
1077
- false,
1078
- !this.skipMap);
1079
- this.depMaps[i] = depMap;
1080
-
1081
- handler = getOwn(handlers, depMap.id);
1082
-
1083
- if (handler) {
1084
- this.depExports[i] = handler(this);
1085
- return;
1086
- }
1087
-
1088
- this.depCount += 1;
1089
-
1090
- on(depMap, 'defined', bind(this, function (depExports) {
1091
- this.defineDep(i, depExports);
1092
- this.check();
1093
- }));
1094
-
1095
- if (this.errback) {
1096
- on(depMap, 'error', this.errback);
1097
- }
1098
- }
1099
-
1100
- id = depMap.id;
1101
- mod = registry[id];
1102
-
1103
- //Skip special modules like 'require', 'exports', 'module'
1104
- //Also, don't call enable if it is already enabled,
1105
- //important in circular dependency cases.
1106
- if (!hasProp(handlers, id) && mod && !mod.enabled) {
1107
- context.enable(depMap, this);
1108
- }
1109
- }));
1110
-
1111
- //Enable each plugin that is used in
1112
- //a dependency
1113
- eachProp(this.pluginMaps, bind(this, function (pluginMap) {
1114
- var mod = getOwn(registry, pluginMap.id);
1115
- if (mod && !mod.enabled) {
1116
- context.enable(pluginMap, this);
1117
- }
1118
- }));
1119
-
1120
- this.enabling = false;
1121
-
1122
- this.check();
1123
- },
1124
-
1125
- on: function (name, cb) {
1126
- var cbs = this.events[name];
1127
- if (!cbs) {
1128
- cbs = this.events[name] = [];
1129
- }
1130
- cbs.push(cb);
1131
- },
1132
-
1133
- emit: function (name, evt) {
1134
- each(this.events[name], function (cb) {
1135
- cb(evt);
1136
- });
1137
- if (name === 'error') {
1138
- //Now that the error handler was triggered, remove
1139
- //the listeners, since this broken Module instance
1140
- //can stay around for a while in the registry.
1141
- delete this.events[name];
1142
- }
1143
- }
1144
- };
1145
-
1146
- function callGetModule(args) {
1147
- //Skip modules already defined.
1148
- if (!hasProp(defined, args[0])) {
1149
- getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
1150
- }
1151
- }
1152
-
1153
- function removeListener(node, func, name, ieName) {
1154
- //Favor detachEvent because of IE9
1155
- //issue, see attachEvent/addEventListener comment elsewhere
1156
- //in this file.
1157
- if (node.detachEvent && !isOpera) {
1158
- //Probably IE. If not it will throw an error, which will be
1159
- //useful to know.
1160
- if (ieName) {
1161
- node.detachEvent(ieName, func);
1162
- }
1163
- } else {
1164
- node.removeEventListener(name, func, false);
1165
- }
1166
- }
1167
-
1168
- /**
1169
- * Given an event from a script node, get the requirejs info from it,
1170
- * and then removes the event listeners on the node.
1171
- * @param {Event} evt
1172
- * @returns {Object}
1173
- */
1174
- function getScriptData(evt) {
1175
- //Using currentTarget instead of target for Firefox 2.0's sake. Not
1176
- //all old browsers will be supported, but this one was easy enough
1177
- //to support and still makes sense.
1178
- var node = evt.currentTarget || evt.srcElement;
1179
-
1180
- //Remove the listeners once here.
1181
- removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
1182
- removeListener(node, context.onScriptError, 'error');
1183
-
1184
- return {
1185
- node: node,
1186
- id: node && node.getAttribute('data-requiremodule')
1187
- };
1188
- }
1189
-
1190
- function intakeDefines() {
1191
- var args;
1192
-
1193
- //Any defined modules in the global queue, intake them now.
1194
- takeGlobalQueue();
1195
-
1196
- //Make sure any remaining defQueue items get properly processed.
1197
- while (defQueue.length) {
1198
- args = defQueue.shift();
1199
- if (args[0] === null) {
1200
- return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' + args[args.length - 1]));
1201
- } else {
1202
- //args are id, deps, factory. Should be normalized by the
1203
- //define() function.
1204
- callGetModule(args);
1205
- }
1206
- }
1207
- }
1208
-
1209
- context = {
1210
- config: config,
1211
- contextName: contextName,
1212
- registry: registry,
1213
- defined: defined,
1214
- urlFetched: urlFetched,
1215
- defQueue: defQueue,
1216
- Module: Module,
1217
- makeModuleMap: makeModuleMap,
1218
- nextTick: req.nextTick,
1219
- onError: onError,
1220
-
1221
- /**
1222
- * Set a configuration for the context.
1223
- * @param {Object} cfg config object to integrate.
1224
- */
1225
- configure: function (cfg) {
1226
- //Make sure the baseUrl ends in a slash.
1227
- if (cfg.baseUrl) {
1228
- if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
1229
- cfg.baseUrl += '/';
1230
- }
1231
- }
1232
-
1233
- //Save off the paths and packages since they require special processing,
1234
- //they are additive.
1235
- var pkgs = config.pkgs,
1236
- shim = config.shim,
1237
- objs = {
1238
- paths: true,
1239
- config: true,
1240
- map: true
1241
- };
1242
-
1243
- eachProp(cfg, function (value, prop) {
1244
- if (objs[prop]) {
1245
- if (prop === 'map') {
1246
- if (!config.map) {
1247
- config.map = {};
1248
- }
1249
- mixin(config[prop], value, true, true);
1250
- } else {
1251
- mixin(config[prop], value, true);
1252
- }
1253
- } else {
1254
- config[prop] = value;
1255
- }
1256
- });
1257
-
1258
- //Merge shim
1259
- if (cfg.shim) {
1260
- eachProp(cfg.shim, function (value, id) {
1261
- //Normalize the structure
1262
- if (isArray(value)) {
1263
- value = {
1264
- deps: value
1265
- };
1266
- }
1267
- if ((value.exports || value.init) && !value.exportsFn) {
1268
- value.exportsFn = context.makeShimExports(value);
1269
- }
1270
- shim[id] = value;
1271
- });
1272
- config.shim = shim;
1273
- }
1274
-
1275
- //Adjust packages if necessary.
1276
- if (cfg.packages) {
1277
- each(cfg.packages, function (pkgObj) {
1278
- var location;
1279
-
1280
- pkgObj = typeof pkgObj === 'string' ? { name: pkgObj } : pkgObj;
1281
- location = pkgObj.location;
1282
-
1283
- //Create a brand new object on pkgs, since currentPackages can
1284
- //be passed in again, and config.pkgs is the internal transformed
1285
- //state for all package configs.
1286
- pkgs[pkgObj.name] = {
1287
- name: pkgObj.name,
1288
- location: location || pkgObj.name,
1289
- //Remove leading dot in main, so main paths are normalized,
1290
- //and remove any trailing .js, since different package
1291
- //envs have different conventions: some use a module name,
1292
- //some use a file name.
1293
- main: (pkgObj.main || 'main')
1294
- .replace(currDirRegExp, '')
1295
- .replace(jsSuffixRegExp, '')
1296
- };
1297
- });
1298
-
1299
- //Done with modifications, assing packages back to context config
1300
- config.pkgs = pkgs;
1301
- }
1302
-
1303
- //If there are any "waiting to execute" modules in the registry,
1304
- //update the maps for them, since their info, like URLs to load,
1305
- //may have changed.
1306
- eachProp(registry, function (mod, id) {
1307
- //If module already has init called, since it is too
1308
- //late to modify them, and ignore unnormalized ones
1309
- //since they are transient.
1310
- if (!mod.inited && !mod.map.unnormalized) {
1311
- mod.map = makeModuleMap(id);
1312
- }
1313
- });
1314
-
1315
- //If a deps array or a config callback is specified, then call
1316
- //require with those args. This is useful when require is defined as a
1317
- //config object before require.js is loaded.
1318
- if (cfg.deps || cfg.callback) {
1319
- context.require(cfg.deps || [], cfg.callback);
1320
- }
1321
- },
1322
-
1323
- makeShimExports: function (value) {
1324
- function fn() {
1325
- var ret;
1326
- if (value.init) {
1327
- ret = value.init.apply(global, arguments);
1328
- }
1329
- return ret || (value.exports && getGlobal(value.exports));
1330
- }
1331
- return fn;
1332
- },
1333
-
1334
- makeRequire: function (relMap, options) {
1335
- options = options || {};
1336
-
1337
- function localRequire(deps, callback, errback) {
1338
- var id, map, requireMod;
1339
-
1340
- if (options.enableBuildCallback && callback && isFunction(callback)) {
1341
- callback.__requireJsBuild = true;
1342
- }
1343
-
1344
- if (typeof deps === 'string') {
1345
- if (isFunction(callback)) {
1346
- //Invalid call
1347
- return onError(makeError('requireargs', 'Invalid require call'), errback);
1348
- }
1349
-
1350
- //If require|exports|module are requested, get the
1351
- //value for them from the special handlers. Caveat:
1352
- //this only works while module is being defined.
1353
- if (relMap && hasProp(handlers, deps)) {
1354
- return handlers[deps](registry[relMap.id]);
1355
- }
1356
-
1357
- //Synchronous access to one module. If require.get is
1358
- //available (as in the Node adapter), prefer that.
1359
- if (req.get) {
1360
- return req.get(context, deps, relMap, localRequire);
1361
- }
1362
-
1363
- //Normalize module name, if it contains . or ..
1364
- map = makeModuleMap(deps, relMap, false, true);
1365
- id = map.id;
1366
-
1367
- if (!hasProp(defined, id)) {
1368
- return onError(makeError('notloaded', 'Module name "' +
1369
- id +
1370
- '" has not been loaded yet for context: ' +
1371
- contextName +
1372
- (relMap ? '' : '. Use require([])')));
1373
- }
1374
- return defined[id];
1375
- }
1376
-
1377
- //Grab defines waiting in the global queue.
1378
- intakeDefines();
1379
-
1380
- //Mark all the dependencies as needing to be loaded.
1381
- context.nextTick(function () {
1382
- //Some defines could have been added since the
1383
- //require call, collect them.
1384
- intakeDefines();
1385
-
1386
- requireMod = getModule(makeModuleMap(null, relMap));
1387
-
1388
- //Store if map config should be applied to this require
1389
- //call for dependencies.
1390
- requireMod.skipMap = options.skipMap;
1391
-
1392
- requireMod.init(deps, callback, errback, {
1393
- enabled: true
1394
- });
1395
-
1396
- checkLoaded();
1397
- });
1398
-
1399
- return localRequire;
1400
- }
1401
-
1402
- mixin(localRequire, {
1403
- isBrowser: isBrowser,
1404
-
1405
- /**
1406
- * Converts a module name + .extension into an URL path.
1407
- * *Requires* the use of a module name. It does not support using
1408
- * plain URLs like nameToUrl.
1409
- */
1410
- toUrl: function (moduleNamePlusExt) {
1411
- var ext,
1412
- index = moduleNamePlusExt.lastIndexOf('.'),
1413
- segment = moduleNamePlusExt.split('/')[0],
1414
- isRelative = segment === '.' || segment === '..';
1415
-
1416
- //Have a file extension alias, and it is not the
1417
- //dots from a relative path.
1418
- if (index !== -1 && (!isRelative || index > 1)) {
1419
- ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
1420
- moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
1421
- }
1422
-
1423
- return context.nameToUrl(normalize(moduleNamePlusExt,
1424
- relMap && relMap.id, true), ext, true);
1425
- },
1426
-
1427
- defined: function (id) {
1428
- return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
1429
- },
1430
-
1431
- specified: function (id) {
1432
- id = makeModuleMap(id, relMap, false, true).id;
1433
- return hasProp(defined, id) || hasProp(registry, id);
1434
- }
1435
- });
1436
-
1437
- //Only allow undef on top level require calls
1438
- if (!relMap) {
1439
- localRequire.undef = function (id) {
1440
- //Bind any waiting define() calls to this context,
1441
- //fix for #408
1442
- takeGlobalQueue();
1443
-
1444
- var map = makeModuleMap(id, relMap, true),
1445
- mod = getOwn(registry, id);
1446
-
1447
- delete defined[id];
1448
- delete urlFetched[map.url];
1449
- delete undefEvents[id];
1450
-
1451
- if (mod) {
1452
- //Hold on to listeners in case the
1453
- //module will be attempted to be reloaded
1454
- //using a different config.
1455
- if (mod.events.defined) {
1456
- undefEvents[id] = mod.events;
1457
- }
1458
-
1459
- cleanRegistry(id);
1460
- }
1461
- };
1462
- }
1463
-
1464
- return localRequire;
1465
- },
1466
-
1467
- /**
1468
- * Called to enable a module if it is still in the registry
1469
- * awaiting enablement. A second arg, parent, the parent module,
1470
- * is passed in for context, when this method is overriden by
1471
- * the optimizer. Not shown here to keep code compact.
1472
- */
1473
- enable: function (depMap) {
1474
- var mod = getOwn(registry, depMap.id);
1475
- if (mod) {
1476
- getModule(depMap).enable();
1477
- }
1478
- },
1479
-
1480
- /**
1481
- * Internal method used by environment adapters to complete a load event.
1482
- * A load event could be a script load or just a load pass from a synchronous
1483
- * load call.
1484
- * @param {String} moduleName the name of the module to potentially complete.
1485
- */
1486
- completeLoad: function (moduleName) {
1487
- var found, args, mod,
1488
- shim = getOwn(config.shim, moduleName) || {},
1489
- shExports = shim.exports;
1490
-
1491
- takeGlobalQueue();
1492
-
1493
- while (defQueue.length) {
1494
- args = defQueue.shift();
1495
- if (args[0] === null) {
1496
- args[0] = moduleName;
1497
- //If already found an anonymous module and bound it
1498
- //to this name, then this is some other anon module
1499
- //waiting for its completeLoad to fire.
1500
- if (found) {
1501
- break;
1502
- }
1503
- found = true;
1504
- } else if (args[0] === moduleName) {
1505
- //Found matching define call for this script!
1506
- found = true;
1507
- }
1508
-
1509
- callGetModule(args);
1510
- }
1511
-
1512
- //Do this after the cycle of callGetModule in case the result
1513
- //of those calls/init calls changes the registry.
1514
- mod = getOwn(registry, moduleName);
1515
-
1516
- if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
1517
- if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
1518
- if (hasPathFallback(moduleName)) {
1519
- return;
1520
- } else {
1521
- return onError(makeError('nodefine',
1522
- 'No define call for ' + moduleName,
1523
- null,
1524
- [moduleName]));
1525
- }
1526
- } else {
1527
- //A script that does not call define(), so just simulate
1528
- //the call for it.
1529
- callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
1530
- }
1531
- }
1532
-
1533
- checkLoaded();
1534
- },
1535
-
1536
- /**
1537
- * Converts a module name to a file path. Supports cases where
1538
- * moduleName may actually be just an URL.
1539
- * Note that it **does not** call normalize on the moduleName,
1540
- * it is assumed to have already been normalized. This is an
1541
- * internal API, not a public one. Use toUrl for the public API.
1542
- */
1543
- nameToUrl: function (moduleName, ext, skipExt) {
1544
- var paths, pkgs, pkg, pkgPath, syms, i, parentModule, url,
1545
- parentPath;
1546
-
1547
- //If a colon is in the URL, it indicates a protocol is used and it is just
1548
- //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
1549
- //or ends with .js, then assume the user meant to use an url and not a module id.
1550
- //The slash is important for protocol-less URLs as well as full paths.
1551
- if (req.jsExtRegExp.test(moduleName)) {
1552
- //Just a plain path, not module name lookup, so just return it.
1553
- //Add extension if it is included. This is a bit wonky, only non-.js things pass
1554
- //an extension, this method probably needs to be reworked.
1555
- url = moduleName + (ext || '');
1556
- } else {
1557
- //A module that needs to be converted to a path.
1558
- paths = config.paths;
1559
- pkgs = config.pkgs;
1560
-
1561
- syms = moduleName.split('/');
1562
- //For each module name segment, see if there is a path
1563
- //registered for it. Start with most specific name
1564
- //and work up from it.
1565
- for (i = syms.length; i > 0; i -= 1) {
1566
- parentModule = syms.slice(0, i).join('/');
1567
- pkg = getOwn(pkgs, parentModule);
1568
- parentPath = getOwn(paths, parentModule);
1569
- if (parentPath) {
1570
- //If an array, it means there are a few choices,
1571
- //Choose the one that is desired
1572
- if (isArray(parentPath)) {
1573
- parentPath = parentPath[0];
1574
- }
1575
- syms.splice(0, i, parentPath);
1576
- break;
1577
- } else if (pkg) {
1578
- //If module name is just the package name, then looking
1579
- //for the main module.
1580
- if (moduleName === pkg.name) {
1581
- pkgPath = pkg.location + '/' + pkg.main;
1582
- } else {
1583
- pkgPath = pkg.location;
1584
- }
1585
- syms.splice(0, i, pkgPath);
1586
- break;
1587
- }
1588
- }
1589
-
1590
- //Join the path parts together, then figure out if baseUrl is needed.
1591
- url = syms.join('/');
1592
- url += (ext || (/\?/.test(url) || skipExt ? '' : '.js'));
1593
- url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
1594
- }
1595
-
1596
- return config.urlArgs ? url +
1597
- ((url.indexOf('?') === -1 ? '?' : '&') +
1598
- config.urlArgs) : url;
1599
- },
1600
-
1601
- //Delegates to req.load. Broken out as a separate function to
1602
- //allow overriding in the optimizer.
1603
- load: function (id, url) {
1604
- req.load(context, id, url);
1605
- },
1606
-
1607
- /**
1608
- * Executes a module callack function. Broken out as a separate function
1609
- * solely to allow the build system to sequence the files in the built
1610
- * layer in the right sequence.
1611
- *
1612
- * @private
1613
- */
1614
- execCb: function (name, callback, args, exports) {
1615
- return callback.apply(exports, args);
1616
- },
1617
-
1618
- /**
1619
- * callback for script loads, used to check status of loading.
1620
- *
1621
- * @param {Event} evt the event from the browser for the script
1622
- * that was loaded.
1623
- */
1624
- onScriptLoad: function (evt) {
1625
- //Using currentTarget instead of target for Firefox 2.0's sake. Not
1626
- //all old browsers will be supported, but this one was easy enough
1627
- //to support and still makes sense.
1628
- if (evt.type === 'load' ||
1629
- (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
1630
- //Reset interactive script so a script node is not held onto for
1631
- //to long.
1632
- interactiveScript = null;
1633
-
1634
- //Pull out the name of the module and the context.
1635
- var data = getScriptData(evt);
1636
- context.completeLoad(data.id);
1637
- }
1638
- },
1639
-
1640
- /**
1641
- * Callback for script errors.
1642
- */
1643
- onScriptError: function (evt) {
1644
- var data = getScriptData(evt);
1645
- if (!hasPathFallback(data.id)) {
1646
- return onError(makeError('scripterror', 'Script error', evt, [data.id]));
1647
- }
1648
- }
1649
- };
1650
-
1651
- context.require = context.makeRequire();
1652
- return context;
1653
- }
1654
-
1655
- /**
1656
- * Main entry point.
1657
- *
1658
- * If the only argument to require is a string, then the module that
1659
- * is represented by that string is fetched for the appropriate context.
1660
- *
1661
- * If the first argument is an array, then it will be treated as an array
1662
- * of dependency string names to fetch. An optional function callback can
1663
- * be specified to execute when all of those dependencies are available.
1664
- *
1665
- * Make a local req variable to help Caja compliance (it assumes things
1666
- * on a require that are not standardized), and to give a short
1667
- * name for minification/local scope use.
1668
- */
1669
- req = requirejs = function (deps, callback, errback, optional) {
1670
-
1671
- //Find the right context, use default
1672
- var context, config,
1673
- contextName = defContextName;
1674
-
1675
- // Determine if have config object in the call.
1676
- if (!isArray(deps) && typeof deps !== 'string') {
1677
- // deps is a config object
1678
- config = deps;
1679
- if (isArray(callback)) {
1680
- // Adjust args if there are dependencies
1681
- deps = callback;
1682
- callback = errback;
1683
- errback = optional;
1684
- } else {
1685
- deps = [];
1686
- }
1687
- }
1688
-
1689
- if (config && config.context) {
1690
- contextName = config.context;
1691
- }
1692
-
1693
- context = getOwn(contexts, contextName);
1694
- if (!context) {
1695
- context = contexts[contextName] = req.s.newContext(contextName);
1696
- }
1697
-
1698
- if (config) {
1699
- context.configure(config);
1700
- }
1701
-
1702
- return context.require(deps, callback, errback);
1703
- };
1704
-
1705
- /**
1706
- * Support require.config() to make it easier to cooperate with other
1707
- * AMD loaders on globally agreed names.
1708
- */
1709
- req.config = function (config) {
1710
- return req(config);
1711
- };
1712
-
1713
- /**
1714
- * Execute something after the current tick
1715
- * of the event loop. Override for other envs
1716
- * that have a better solution than setTimeout.
1717
- * @param {Function} fn function to execute later.
1718
- */
1719
- req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
1720
- setTimeout(fn, 4);
1721
- } : function (fn) { fn(); };
1722
-
1723
- /**
1724
- * Export require as a global, but only if it does not already exist.
1725
- */
1726
- if (!require) {
1727
- require = req;
1728
- }
1729
-
1730
- req.version = version;
1731
-
1732
- //Used to filter out dependencies that are already paths.
1733
- req.jsExtRegExp = /^\/|:|\?|\.js$/;
1734
- req.isBrowser = isBrowser;
1735
- s = req.s = {
1736
- contexts: contexts,
1737
- newContext: newContext
1738
- };
1739
-
1740
- //Create default context.
1741
- req({});
1742
-
1743
- //Exports some context-sensitive methods on global require.
1744
- each([
1745
- 'toUrl',
1746
- 'undef',
1747
- 'defined',
1748
- 'specified'
1749
- ], function (prop) {
1750
- //Reference from contexts instead of early binding to default context,
1751
- //so that during builds, the latest instance of the default context
1752
- //with its config gets used.
1753
- req[prop] = function () {
1754
- var ctx = contexts[defContextName];
1755
- return ctx.require[prop].apply(ctx, arguments);
1756
- };
1757
- });
1758
-
1759
- if (isBrowser) {
1760
- head = s.head = document.getElementsByTagName('head')[0];
1761
- //If BASE tag is in play, using appendChild is a problem for IE6.
1762
- //When that browser dies, this can be removed. Details in this jQuery bug:
1763
- //http://dev.jquery.com/ticket/2709
1764
- baseElement = document.getElementsByTagName('base')[0];
1765
- if (baseElement) {
1766
- head = s.head = baseElement.parentNode;
1767
- }
1768
- }
1769
-
1770
- /**
1771
- * Any errors that require explicitly generates will be passed to this
1772
- * function. Intercept/override it if you want custom error handling.
1773
- * @param {Error} err the error object.
1774
- */
1775
- req.onError = function (err) {
1776
- throw err;
1777
- };
1778
-
1779
- /**
1780
- * Does the request to load a module for the browser case.
1781
- * Make this a separate function to allow other environments
1782
- * to override it.
1783
- *
1784
- * @param {Object} context the require context to find state.
1785
- * @param {String} moduleName the name of the module.
1786
- * @param {Object} url the URL to the module.
1787
- */
1788
- req.load = function (context, moduleName, url) {
1789
- var config = (context && context.config) || {},
1790
- node;
1791
- if (isBrowser) {
1792
- //In the browser so use a script tag
1793
- node = config.xhtml ?
1794
- document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
1795
- document.createElement('script');
1796
- node.type = config.scriptType || 'text/javascript';
1797
- node.charset = 'utf-8';
1798
- node.async = true;
1799
-
1800
- node.setAttribute('data-requirecontext', context.contextName);
1801
- node.setAttribute('data-requiremodule', moduleName);
1802
-
1803
- //Set up load listener. Test attachEvent first because IE9 has
1804
- //a subtle issue in its addEventListener and script onload firings
1805
- //that do not match the behavior of all other browsers with
1806
- //addEventListener support, which fire the onload event for a
1807
- //script right after the script execution. See:
1808
- //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
1809
- //UNFORTUNATELY Opera implements attachEvent but does not follow the script
1810
- //script execution mode.
1811
- if (node.attachEvent &&
1812
- //Check if node.attachEvent is artificially added by custom script or
1813
- //natively supported by browser
1814
- //read https://github.com/jrburke/requirejs/issues/187
1815
- //if we can NOT find [native code] then it must NOT natively supported.
1816
- //in IE8, node.attachEvent does not have toString()
1817
- //Note the test for "[native code" with no closing brace, see:
1818
- //https://github.com/jrburke/requirejs/issues/273
1819
- !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
1820
- !isOpera) {
1821
- //Probably IE. IE (at least 6-8) do not fire
1822
- //script onload right after executing the script, so
1823
- //we cannot tie the anonymous define call to a name.
1824
- //However, IE reports the script as being in 'interactive'
1825
- //readyState at the time of the define call.
1826
- useInteractive = true;
1827
-
1828
- node.attachEvent('onreadystatechange', context.onScriptLoad);
1829
- //It would be great to add an error handler here to catch
1830
- //404s in IE9+. However, onreadystatechange will fire before
1831
- //the error handler, so that does not help. If addEventListener
1832
- //is used, then IE will fire error before load, but we cannot
1833
- //use that pathway given the connect.microsoft.com issue
1834
- //mentioned above about not doing the 'script execute,
1835
- //then fire the script load event listener before execute
1836
- //next script' that other browsers do.
1837
- //Best hope: IE10 fixes the issues,
1838
- //and then destroys all installs of IE 6-9.
1839
- //node.attachEvent('onerror', context.onScriptError);
1840
- } else {
1841
- node.addEventListener('load', context.onScriptLoad, false);
1842
- node.addEventListener('error', context.onScriptError, false);
1843
- }
1844
- node.src = url;
1845
-
1846
- //For some cache cases in IE 6-8, the script executes before the end
1847
- //of the appendChild execution, so to tie an anonymous define
1848
- //call to the module name (which is stored on the node), hold on
1849
- //to a reference to this node, but clear after the DOM insertion.
1850
- currentlyAddingScript = node;
1851
- if (baseElement) {
1852
- head.insertBefore(node, baseElement);
1853
- } else {
1854
- head.appendChild(node);
1855
- }
1856
- currentlyAddingScript = null;
1857
-
1858
- return node;
1859
- } else if (isWebWorker) {
1860
- try {
1861
- //In a web worker, use importScripts. This is not a very
1862
- //efficient use of importScripts, importScripts will block until
1863
- //its script is downloaded and evaluated. However, if web workers
1864
- //are in play, the expectation that a build has been done so that
1865
- //only one script needs to be loaded anyway. This may need to be
1866
- //reevaluated if other use cases become common.
1867
- importScripts(url);
1868
-
1869
- //Account for anonymous modules
1870
- context.completeLoad(moduleName);
1871
- } catch (e) {
1872
- context.onError(makeError('importscripts',
1873
- 'importScripts failed for ' +
1874
- moduleName + ' at ' + url,
1875
- e,
1876
- [moduleName]));
1877
- }
1878
- }
1879
- };
1880
-
1881
- function getInteractiveScript() {
1882
- if (interactiveScript && interactiveScript.readyState === 'interactive') {
1883
- return interactiveScript;
1884
- }
1885
-
1886
- eachReverse(scripts(), function (script) {
1887
- if (script.readyState === 'interactive') {
1888
- return (interactiveScript = script);
1889
- }
1890
- });
1891
- return interactiveScript;
1892
- }
1893
-
1894
- //Look for a data-main script attribute, which could also adjust the baseUrl.
1895
- if (isBrowser) {
1896
- //Figure out baseUrl. Get it from the script tag with require.js in it.
1897
- eachReverse(scripts(), function (script) {
1898
- //Set the 'head' where we can append children by
1899
- //using the script's parent.
1900
- if (!head) {
1901
- head = script.parentNode;
1902
- }
1903
-
1904
- //Look for a data-main attribute to set main script for the page
1905
- //to load. If it is there, the path to data main becomes the
1906
- //baseUrl, if it is not already set.
1907
- dataMain = script.getAttribute('data-main');
1908
- if (dataMain) {
1909
- //Set final baseUrl if there is not already an explicit one.
1910
- if (!cfg.baseUrl) {
1911
- //Pull off the directory of data-main for use as the
1912
- //baseUrl.
1913
- src = dataMain.split('/');
1914
- mainScript = src.pop();
1915
- subPath = src.length ? src.join('/') + '/' : './';
1916
-
1917
- cfg.baseUrl = subPath;
1918
- dataMain = mainScript;
1919
- }
1920
-
1921
- //Strip off any trailing .js since dataMain is now
1922
- //like a module name.
1923
- dataMain = dataMain.replace(jsSuffixRegExp, '');
1924
-
1925
- //Put the data-main script in the files to load.
1926
- cfg.deps = cfg.deps ? cfg.deps.concat(dataMain) : [dataMain];
1927
-
1928
- return true;
1929
- }
1930
- });
1931
- }
1932
-
1933
- /**
1934
- * The function that handles definitions of modules. Differs from
1935
- * require() in that a string for the module should be the first argument,
1936
- * and the function to execute after dependencies are loaded should
1937
- * return a value to define the module corresponding to the first argument's
1938
- * name.
1939
- */
1940
- define = function (name, deps, callback) {
1941
- var node, context;
1942
-
1943
- //Allow for anonymous modules
1944
- if (typeof name !== 'string') {
1945
- //Adjust args appropriately
1946
- callback = deps;
1947
- deps = name;
1948
- name = null;
1949
- }
1950
-
1951
- //This module may not have dependencies
1952
- if (!isArray(deps)) {
1953
- callback = deps;
1954
- deps = [];
1955
- }
1956
-
1957
- //If no name, and callback is a function, then figure out if it a
1958
- //CommonJS thing with dependencies.
1959
- if (!deps.length && isFunction(callback)) {
1960
- //Remove comments from the callback string,
1961
- //look for require calls, and pull them into the dependencies,
1962
- //but only if there are function args.
1963
- if (callback.length) {
1964
- callback
1965
- .toString()
1966
- .replace(commentRegExp, '')
1967
- .replace(cjsRequireRegExp, function (match, dep) {
1968
- deps.push(dep);
1969
- });
1970
-
1971
- //May be a CommonJS thing even without require calls, but still
1972
- //could use exports, and module. Avoid doing exports and module
1973
- //work though if it just needs require.
1974
- //REQUIRES the function to expect the CommonJS variables in the
1975
- //order listed below.
1976
- deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);
1977
- }
1978
- }
1979
-
1980
- //If in IE 6-8 and hit an anonymous define() call, do the interactive
1981
- //work.
1982
- if (useInteractive) {
1983
- node = currentlyAddingScript || getInteractiveScript();
1984
- if (node) {
1985
- if (!name) {
1986
- name = node.getAttribute('data-requiremodule');
1987
- }
1988
- context = contexts[node.getAttribute('data-requirecontext')];
1989
- }
1990
- }
1991
-
1992
- //Always save off evaluating the def call until the script onload handler.
1993
- //This allows multiple modules to be in a file without prematurely
1994
- //tracing dependencies, and allows for anonymous module support,
1995
- //where the module name is not known until the script onload event
1996
- //occurs. If no context, use the global queue, and get it processed
1997
- //in the onscript load callback.
1998
- (context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
1999
- };
2000
-
2001
- define.amd = {
2002
- jQuery: true
2003
- };
2004
-
2005
-
2006
- /**
2007
- * Executes the text. Normally just uses eval, but can be modified
2008
- * to use a better, environment-specific call. Only used for transpiling
2009
- * loader plugins, not for plain JS modules.
2010
- * @param {String} text the text to execute/evaluate.
2011
- */
2012
- req.exec = function (text) {
2013
- /*jslint evil: true */
2014
- return eval(text);
2015
- };
2016
-
2017
- //Set up with config info.
2018
- req(cfg);
2019
- }(this));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/ComponentInstaller/Util/Filesystem.php DELETED
@@ -1,68 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Util;
13
-
14
- use Composer\Util\Filesystem as BaseFilesystem;
15
-
16
- /**
17
- * Provides basic file system operations.
18
- */
19
- class Filesystem extends BaseFilesystem
20
- {
21
- /**
22
- * Performs a recursive-enabled glob search with the given pattern.
23
- *
24
- * @param string $pattern
25
- * The pattern passed to glob(). If the pattern contains "**", then it
26
- * a recursive search will be used.
27
- * @param int $flags
28
- * Flags to pass into glob().
29
- *
30
- * @return mixed
31
- * An array of files that match the recursive pattern given.
32
- */
33
- public function recursiveGlob($pattern, $flags = 0)
34
- {
35
- // Perform the glob search.
36
- $files = glob($pattern, $flags);
37
-
38
- // Check if this is to be recursive.
39
- if (strpos($pattern, '**') !== FALSE) {
40
- $dirs = glob(dirname($pattern).DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR|GLOB_NOSORT);
41
- if ($dirs) {
42
- foreach ($dirs as $dir) {
43
- $files = array_merge($files, $this->recursiveGlob($dir.DIRECTORY_SEPARATOR.basename($pattern), $flags));
44
- }
45
- }
46
- }
47
-
48
- return $files;
49
- }
50
-
51
- /**
52
- * Performs a recursive glob search for files with the given pattern.
53
- *
54
- * @param string $pattern
55
- * The pattern passed to glob().
56
- * @param int $flags
57
- * Flags to pass into glob().
58
- *
59
- * @return mixed
60
- * An array of files that match the recursive pattern given.
61
- */
62
- public function recursiveGlobFiles($pattern, $flags = 0)
63
- {
64
- $files = $this->recursiveGlob($pattern, $flags);
65
-
66
- return array_filter($files, 'is_file');
67
- }
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/src/bootstrap.php DELETED
@@ -1,28 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- function includeIfExists($file)
13
- {
14
- if (file_exists($file)) {
15
- /** @noinspection PhpIncludeInspection */
16
- return include $file;
17
- }
18
-
19
- return null;
20
- }
21
-
22
- if ((!$loader = includeIfExists(__DIR__ . '/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__ . '/../../../autoload.php'))) {
23
- die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
24
- 'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
25
- 'php composer.phar install'.PHP_EOL);
26
- }
27
-
28
- return $loader;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/InstallerTest.php DELETED
@@ -1,159 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace Composer\Test;
13
-
14
- use ComponentInstaller\Util\Filesystem;
15
- use Composer\Test\Installer\LibraryInstallerTest;
16
- use ComponentInstaller\Installer;
17
- use Composer\Package\Loader\ArrayLoader;
18
- use Composer\Config;
19
-
20
- /**
21
- * Tests registering Component Installer with Composer.
22
- */
23
- class InstallerTest extends LibraryInstallerTest
24
- {
25
- protected $componentDir = 'components';
26
-
27
- /**
28
- * @var \Composer\Config
29
- */
30
- protected $config;
31
-
32
- /**
33
- * @var Filesystem
34
- */
35
- protected $fs;
36
-
37
- /**
38
- * {@inheritdoc}
39
- */
40
- protected function setUp()
41
- {
42
- // Run through the Library Installer Test set up.
43
- parent::setUp();
44
-
45
- // Also be sure to set up the Component directory.
46
- $this->componentDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'composer-test-component';
47
- $this->ensureDirectoryExistsAndClear($this->componentDir);
48
-
49
- // Merge the component-dir setting in so that it applies correctly.
50
- $this->config->merge(array(
51
- 'config' => array(
52
- 'component-dir' => $this->componentDir,
53
- ),
54
- ));
55
- }
56
-
57
- /**
58
- * {@inheritdoc}
59
- */
60
- protected function tearDown()
61
- {
62
- $this->fs->removeDirectory($this->componentDir);
63
-
64
- parent::tearDown();
65
- }
66
-
67
- /**
68
- * Tests that the Installer doesn't create the Component directory.
69
- */
70
- public function testInstallerCreationShouldNotCreateComponentDirectory()
71
- {
72
- $this->fs->removeDirectory($this->componentDir);
73
- new Installer($this->io, $this->composer);
74
- $this->assertFileNotExists($this->componentDir);
75
- }
76
-
77
- /**
78
- * Test the Installer's support() function.
79
- *
80
- * @param $type
81
- * The type of library.
82
- * @param $expected
83
- * Whether or not the given type is supported by Component Installer.
84
- *
85
- * @return void
86
- *
87
- * @dataProvider providerComponentSupports
88
- */
89
- public function testComponentSupports($type, $expected)
90
- {
91
- $installer = new Installer($this->io, $this->composer, 'component');
92
- $this->assertSame($expected, $installer->supports($type), sprintf('Failed to show support for %s', $type));
93
- }
94
-
95
- /**
96
- * Data provider for testComponentSupports().
97
- *
98
- * @see testComponentSupports()
99
- */
100
- public function providerComponentSupports()
101
- {
102
- // All package types support having Components.
103
- $tests[] = array('component', true);
104
- $tests[] = array('all-supported', false);
105
-
106
- return $tests;
107
- }
108
-
109
- /**
110
- * Tests the Installer's getComponentPath function.
111
- *
112
- * @param $expected
113
- * The expected install path for the package.
114
- * @param $package
115
- * The package to test upon.
116
- *
117
- * @dataProvider providerGetComponentPath
118
- *
119
- * @see \ComponentInstaller\Installer::getComponentPath()
120
- */
121
- public function testGetComponentPath($expected, $package) {
122
- // Construct the mock objects.
123
- $installer = new Installer($this->io, $this->composer, 'component');
124
- $loader = new ArrayLoader();
125
-
126
- // Test the results.
127
- $result = $installer->getComponentPath($loader->load($package));
128
- $this->assertEquals($this->componentDir . DIRECTORY_SEPARATOR . $expected, $result);
129
- }
130
-
131
- /**
132
- * Data provider for testGetComponentPath().
133
- *
134
- * @see testGetComponentPath()
135
- */
136
- public function providerGetComponentPath()
137
- {
138
- $package = array(
139
- 'name' => 'foo/bar',
140
- 'type' => 'component',
141
- 'version' => '1.0.0',
142
- );
143
- $tests[] = array('bar', $package);
144
-
145
- $package = array(
146
- 'name' => 'foo/bar2',
147
- 'version' => '1.0.0',
148
- 'type' => 'component',
149
- 'extra' => array(
150
- 'component' => array(
151
- 'name' => 'foo',
152
- ),
153
- ),
154
- );
155
- $tests[] = array('foo', $package);
156
-
157
- return $tests;
158
- }
159
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/CopyProcessTest.php DELETED
@@ -1,209 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Test\Process;
13
-
14
- use ComponentInstaller\Process\CopyProcess;
15
-
16
- /**
17
- * Tests CopyProcess.
18
- */
19
- class CopyProcessTest extends ProcessTest
20
- {
21
- /**
22
- * @var CopyProcess
23
- */
24
- protected $process;
25
-
26
- public function setUp()
27
- {
28
- parent::setUp();
29
- $this->process = new CopyProcess($this->composer, $this->io);
30
- }
31
-
32
- /**
33
- * testCopy
34
- *
35
- * @dataProvider providerCopyStyles
36
- * @param array $packages
37
- * @param array $files
38
- */
39
- public function testCopyStyles($packages, $files)
40
- {
41
- // Initialize the process.
42
- $this->process->init();
43
- $this->process->copy($packages);
44
- foreach ($files as $file) {
45
- $this->assertFileExists($this->componentDir.'/' . $file, sprintf('Failed to find the destination file: %s', $file));
46
- }
47
- }
48
-
49
- public function providerCopyStyles()
50
- {
51
- // Test collecting one style.
52
- $package = array(
53
- 'name' => 'components/package',
54
- 'version' => '1.2.3',
55
- 'is-root' => true, // Set the root so that it knows to use the cwd.
56
- 'extra' => array(
57
- 'component' => array(
58
- 'styles' => array(
59
- 'tests/ComponentInstaller/Test/Resources/test.css',
60
- ),
61
- ),
62
- ),
63
- );
64
- $packages = array($package);
65
- $tests[] = array($packages, array(
66
- 'package/tests/ComponentInstaller/Test/Resources/test.css',
67
- ));
68
-
69
- // Test collecting two styles.
70
- $package = array(
71
- 'name' => 'components/packagewithtwostyles',
72
- 'version' => '1.2.3',
73
- 'is-root' => true, // Set the root so that it knows to use the cwd.
74
- 'extra' => array(
75
- 'component' => array(
76
- 'styles' => array(
77
- 'tests/ComponentInstaller/Test/Resources/test.css',
78
- 'tests/ComponentInstaller/Test/Resources/test2.css',
79
- ),
80
- ),
81
- ),
82
- );
83
- $packages = array($package);
84
- $tests[] = array($packages, array(
85
- 'packagewithtwostyles/tests/ComponentInstaller/Test/Resources/test.css',
86
- 'packagewithtwostyles/tests/ComponentInstaller/Test/Resources/test2.css',
87
- ));
88
-
89
- // Test collecting a style that doesn't exist.
90
- $package = array(
91
- 'name' => 'components/stylethatdoesnotexist',
92
- 'version' => '1.2.3',
93
- 'is-root' => true, // Set the root so that it knows to use the cwd.
94
- 'extra' => array(
95
- 'component' => array(
96
- 'styles' => array(
97
- 'tests/ComponentInstaller/Test/Resources/test.css',
98
- 'tests/ComponentInstaller/Test/Resources/test-not-found.css',
99
- ),
100
- ),
101
- ),
102
- );
103
- $packages = array($package);
104
- $tests[] = array($packages, array(
105
- 'stylethatdoesnotexist/tests/ComponentInstaller/Test/Resources/test.css',
106
- ));
107
-
108
- // Test collecting all styles, files and scripts.
109
- $package = array(
110
- 'name' => 'components/allassets',
111
- 'version' => '1.2.3',
112
- 'is-root' => true, // Set the root so that it knows to use the cwd.
113
- 'extra' => array(
114
- 'component' => array(
115
- 'styles' => array(
116
- 'tests/ComponentInstaller/Test/Resources/test.css',
117
- ),
118
- 'files' => array(
119
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
120
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
121
- ),
122
- 'scripts' => array(
123
- 'tests/ComponentInstaller/Test/Resources/test.js'
124
- ),
125
- ),
126
- ),
127
- );
128
- $packages = array($package);
129
- $tests[] = array($packages, array(
130
- 'allassets/tests/ComponentInstaller/Test/Resources/test.css',
131
- 'allassets/tests/ComponentInstaller/Test/Resources/img.jpg',
132
- 'allassets/tests/ComponentInstaller/Test/Resources/img2.jpg',
133
- 'allassets/tests/ComponentInstaller/Test/Resources/test.js',
134
- ));
135
-
136
- // Test copying a different component name.
137
- $package = array(
138
- 'name' => 'components/differentcomponentname',
139
- 'version' => '1.2.3',
140
- 'is-root' => true, // Set the root so that it knows to use the cwd.
141
- 'extra' => array(
142
- 'component' => array(
143
- 'name' => 'diffname',
144
- 'files' => array(
145
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
146
- ),
147
- ),
148
- ),
149
- );
150
- $packages = array($package);
151
- $tests[] = array($packages, array(
152
- 'diffname/tests/ComponentInstaller/Test/Resources/img.jpg',
153
- ));
154
-
155
- // Test two different packages.
156
- $package = array(
157
- 'name' => 'components/twopackages1',
158
- 'version' => '1.2.3',
159
- 'is-root' => true, // Set the root so that it knows to use the cwd.
160
- 'extra' => array(
161
- 'component' => array(
162
- 'files' => array(
163
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
164
- ),
165
- ),
166
- ),
167
- );
168
- $package2 = array(
169
- 'name' => 'components/twopackages2',
170
- 'version' => '1.2.3',
171
- 'is-root' => true, // Set the root so that it knows to use the cwd.
172
- 'extra' => array(
173
- 'component' => array(
174
- 'name' => 'twopackages2-diff',
175
- 'files' => array(
176
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
177
- ),
178
- ),
179
- ),
180
- );
181
- $packages = array($package, $package2);
182
- $tests[] = array($packages, array(
183
- 'twopackages1/tests/ComponentInstaller/Test/Resources/img.jpg',
184
- 'twopackages2-diff/tests/ComponentInstaller/Test/Resources/img2.jpg',
185
- ));
186
-
187
- // Test copying an asset with a glob().
188
- $package = array(
189
- 'name' => 'components/differentcomponentname',
190
- 'version' => '1.2.3',
191
- 'is-root' => true, // Set the root so that it knows to use the cwd.
192
- 'extra' => array(
193
- 'component' => array(
194
- 'name' => 'diffname',
195
- 'files' => array(
196
- 'tests/ComponentInstaller/Test/Resources/*.jpg',
197
- ),
198
- ),
199
- ),
200
- );
201
- $packages = array($package);
202
- $tests[] = array($packages, array(
203
- 'diffname/tests/ComponentInstaller/Test/Resources/img.jpg',
204
- 'diffname/tests/ComponentInstaller/Test/Resources/img2.jpg',
205
- ));
206
-
207
- return $tests;
208
- }
209
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/ProcessTest.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Test\Process;
13
-
14
- use ComponentInstaller\Process\Process;
15
- use Composer\Composer;
16
- use Composer\Config;
17
- use Composer\IO\NullIO;
18
- use Composer\Util\Filesystem;
19
- use Composer\Installer\InstallationManager;
20
- use Composer\Installer\LibraryInstaller;
21
- use ComponentInstaller\Installer;
22
-
23
- /**
24
- * Tests Process.
25
- */
26
- class ProcessTest extends \PHPUnit_Framework_TestCase
27
- {
28
- /**
29
- * @var Composer
30
- */
31
- protected $composer;
32
-
33
- /**
34
- * @var Config
35
- */
36
- protected $config;
37
-
38
- /**
39
- * @var NullIO
40
- */
41
- protected $io;
42
-
43
- /**
44
- * @var Filesystem
45
- */
46
- protected $filesystem;
47
-
48
- /**
49
- * @var string
50
- */
51
- protected $componentDir;
52
-
53
- /**
54
- * @var string
55
- */
56
- protected $vendorDir;
57
-
58
- /**
59
- * @var string
60
- */
61
- protected $binDir;
62
-
63
- /**
64
- * @var InstallationManager
65
- */
66
- protected $installationManager;
67
-
68
- public function setUp()
69
- {
70
- $this->filesystem = new Filesystem();
71
- $this->composer = new Composer();
72
- $this->config = new Config();
73
- $this->io = new NullIO();
74
-
75
- $this->componentDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'component-installer-componentDir';
76
- $this->vendorDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'component-installer-vendorDir';
77
- $this->binDir = realpath(sys_get_temp_dir()).DIRECTORY_SEPARATOR.'component-installer-binDir';
78
-
79
- foreach (array($this->componentDir, $this->vendorDir, $this->binDir) as $dir) {
80
- if (is_dir($dir)) {
81
- $this->filesystem->removeDirectory($dir);
82
- }
83
- $this->filesystem->ensureDirectoryExists($dir);
84
- }
85
- $this->config->merge(array(
86
- 'config' => array(
87
- 'vendor-dir' => $this->vendorDir,
88
- 'component-dir' => $this->componentDir,
89
- 'bin-dir' => $this->binDir,
90
- )
91
- ));
92
- $this->composer->setConfig($this->config);
93
-
94
- // Set up the Installation Manager.
95
- $this->installationManager = new InstallationManager();
96
- $this->installationManager->addInstaller(new LibraryInstaller($this->io, $this->composer));
97
- $this->installationManager->addInstaller(new Installer($this->io, $this->composer));
98
- $this->composer->setInstallationManager($this->installationManager);
99
- }
100
-
101
- protected function tearDown()
102
- {
103
- foreach (array($this->componentDir, $this->vendorDir, $this->binDir) as $dir) {
104
- $this->filesystem->removeDirectory($dir);
105
- }
106
- }
107
-
108
- /**
109
- * testGetComponentName
110
- *
111
- * @dataProvider providerGetComponentName
112
- * @param string $prettyName
113
- * @param array $extra
114
- * @param string $expected
115
- */
116
- public function testGetComponentName($prettyName, array $extra, $expected)
117
- {
118
- $process = new Process($this->composer, $this->io);
119
- $result = $process->getComponentName($prettyName, array('component' => $extra));
120
- $this->assertEquals($result, $expected, sprintf('Fail to get proper component name for %s', $prettyName));
121
- }
122
-
123
- /**
124
- * Data provider for testGetComponentName.
125
- *
126
- * @see testGetComponentName()
127
- */
128
- public function providerGetComponentName()
129
- {
130
- return array(
131
- array('components/jquery', array(), 'jquery'),
132
- array('components/jquery', array('name' => 'myownjquery'), 'myownjquery'),
133
- array('jquery', array(), 'jquery'),
134
- );
135
- }
136
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/RequireCssProcessTest.php DELETED
@@ -1,150 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Test\Process;
13
-
14
- use ComponentInstaller\Process\RequireCssProcess;
15
- use Composer\Config;
16
-
17
- /**
18
- * Tests RequireCssProcess.
19
- */
20
- class RequireCssProcessTest extends ProcessTest
21
- {
22
- /**
23
- * @var RequireCssProcess
24
- */
25
- protected $process;
26
-
27
- public function setUp()
28
- {
29
- parent::setUp();
30
- $this->process = new RequireCssProcess($this->composer, $this->io);
31
- }
32
- /**
33
- * testPackageStyles
34
- *
35
- * @dataProvider providerPackageStyles
36
- * @param array $packages
37
- * @param array $config
38
- * @param array $expected
39
- */
40
- public function testPackageStyles(array $packages, array $config, $expected = null)
41
- {
42
- $this->composer->getConfig()->merge(array('config' => $config));
43
- $this->process->init();
44
- $result = $this->process->packageStyles($packages);
45
- $this->assertEquals($expected, $result);
46
- }
47
-
48
- public function providerPackageStyles()
49
- {
50
- // Test collecting one style.
51
- $package = array(
52
- 'name' => 'components/package',
53
- 'type' => 'component',
54
- 'extra' => array(
55
- 'component' => array(
56
- 'styles' => array(
57
- 'tests/ComponentInstaller/Test/Resources/test.css',
58
- ),
59
- ),
60
- ),
61
- 'is-root' => true,
62
- );
63
- $packages = array($package);
64
- $expected = array(
65
- 'package' => array(
66
- 'tests/ComponentInstaller/Test/Resources/test.css' => array(
67
- realpath('tests/ComponentInstaller/Test/Resources/test.css'),
68
- ),
69
- ),
70
- );
71
- $tests[] = array($packages, array(), $expected);
72
-
73
- // Test collecting a style that doesn't exist.
74
- $package2 = array(
75
- 'name' => 'components/package2',
76
- 'type' => 'component',
77
- 'extra' => array(
78
- 'component' => array(
79
- 'styles' => array(
80
- 'tests/ComponentInstaller/Test/Resources/test-not-found.css',
81
- ),
82
- ),
83
- ),
84
- 'is-root' => true,
85
- );
86
- $packages = array($package, $package2);
87
- $expected = array(
88
- 'package' => array(
89
- 'tests/ComponentInstaller/Test/Resources/test.css' => array(
90
- realpath('tests/ComponentInstaller/Test/Resources/test.css'),
91
- )
92
- )
93
- );
94
- $tests[] = array($packages, array(), $expected);
95
-
96
- // Test collecting a style that doesn't exist.
97
- $package3 = array(
98
- 'name' => 'components/package3',
99
- 'type' => 'component',
100
- 'extra' => array(
101
- 'component' => array(
102
- 'styles' => array(
103
- 'tests/ComponentInstaller/Test/Resources/test2.css',
104
- ),
105
- ),
106
- ),
107
- 'is-root' => true,
108
- );
109
- $packages = array($package, $package3);
110
- $expected = array(
111
- 'package' => array(
112
- 'tests/ComponentInstaller/Test/Resources/test.css' => array(
113
- realpath('tests/ComponentInstaller/Test/Resources/test.css'),
114
- ),
115
- ),
116
- 'package3' => array(
117
- 'tests/ComponentInstaller/Test/Resources/test2.css' => array(
118
- realpath('tests/ComponentInstaller/Test/Resources/test2.css'),
119
- ),
120
- )
121
- );
122
- $tests[] = array($packages, array(), $expected);
123
-
124
- // Test collecting a style that uses glob().
125
- $package = array(
126
- 'name' => 'components/package4',
127
- 'type' => 'component',
128
- 'extra' => array(
129
- 'component' => array(
130
- 'styles' => array(
131
- 'tests/ComponentInstaller/Test/Resources/*.css',
132
- ),
133
- ),
134
- ),
135
- 'is-root' => true,
136
- );
137
- $packages = array($package);
138
- $expected = array(
139
- 'package4' => array(
140
- 'tests/ComponentInstaller/Test/Resources/*.css' => array(
141
- realpath('tests/ComponentInstaller/Test/Resources/test.css'),
142
- realpath('tests/ComponentInstaller/Test/Resources/test2.css'),
143
- )
144
- )
145
- );
146
- $tests[] = array($packages, array(), $expected);
147
-
148
- return $tests;
149
- }
150
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/RequireJsProcessTest.php DELETED
@@ -1,343 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Test\Process;
13
-
14
- use ComponentInstaller\Process\RequireJsProcess;
15
- use Composer\Config;
16
-
17
- /**
18
- * Tests RequireJsProcess.
19
- */
20
- class RequireJsProcessTest extends ProcessTest
21
- {
22
- /**
23
- * @var RequireJsProcess
24
- */
25
- protected $process;
26
-
27
- public function setUp()
28
- {
29
- parent::setUp();
30
- $this->process = new RequireJsProcess($this->composer, $this->io);
31
- }
32
-
33
- /**
34
- * testRequireJs
35
- *
36
- * @dataProvider providerRequireJs
37
- * @param array $json
38
- * @param string $expected
39
- */
40
- public function testRequireJs(array $json = array(), $expected = '')
41
- {
42
- $result = $this->process->requireJs($json);
43
- $this->assertEquals($expected, $result);
44
- }
45
-
46
- public function providerRequireJs()
47
- {
48
- // Start with a base RequireJS configuration.
49
- $js = <<<EOT
50
- var components = %s;
51
- if (typeof require !== "undefined" && require.config) {
52
- require.config(components);
53
- } else {
54
- var require = components;
55
- }
56
- if (typeof exports !== "undefined" && typeof module !== "undefined") {
57
- module.exports = components;
58
- }
59
- EOT;
60
-
61
- // Tests a basic configuration.
62
- $tests[] = array(
63
- array('foo' => 'bar'),
64
- sprintf($js, "{\n \"foo\": \"bar\"\n}"),
65
- );
66
-
67
- return $tests;
68
- }
69
-
70
- /**
71
- * testRequireJson
72
- *
73
- * @dataProvider providerRequireJson
74
- * @param array $packages
75
- * @param array $config
76
- * @param string $expected
77
- */
78
- public function testRequireJson(array $packages, array $config, $expected = null)
79
- {
80
- $this->composer->getConfig()->merge(array('config' => $config));
81
- $this->process->init();
82
- $result = $this->process->requireJson($packages);
83
- $this->assertEquals($expected, $result);
84
- }
85
-
86
- public function providerRequireJson()
87
- {
88
- // Test a package that doesn't have any extra information.
89
- $packageWithoutExtra = array(
90
- 'name' => 'components/packagewithoutextra',
91
- 'type' => 'component',
92
- );
93
- $packages = array($packageWithoutExtra);
94
- $expected = array(
95
- 'baseUrl' => 'components',
96
- );
97
- $tests[] = array($packages, array(), $expected);
98
-
99
- // Test switching the component directory.
100
- $packages = array($packageWithoutExtra);
101
- $expected = array(
102
- 'baseUrl' => 'components',
103
- );
104
- $tests[] = array($packages, array('component-dir' => 'otherdir'), $expected);
105
-
106
- // Test switching the baseUrl.
107
- $packages = array($packageWithoutExtra);
108
- $expected = array(
109
- 'baseUrl' => '/another/path',
110
- );
111
- $tests[] = array($packages, array('component-baseurl' => '/another/path'), $expected);
112
-
113
- // Test a package with just Scripts.
114
- $jquery = array(
115
- 'name' => 'components/jquery',
116
- 'type' => 'component',
117
- 'extra' => array(
118
- 'component' => array(
119
- 'scripts' => array(
120
- 'jquery.js',
121
- )
122
- )
123
- )
124
- );
125
- $packages = array($jquery);
126
- $expected = array(
127
- 'baseUrl' => 'components',
128
- );
129
- $tests[] = array($packages, array(), $expected);
130
-
131
- // Test a pckage with just shim information.
132
- $underscore = array(
133
- 'name' => 'components/underscore',
134
- 'type' => 'component',
135
- 'extra' => array(
136
- 'component' => array(
137
- 'shim' => array(
138
- 'exports' => '_',
139
- ),
140
- ),
141
- ),
142
- 'baseUrl' => 'components',
143
- );
144
- $packages = array($underscore);
145
- $expected = array(
146
- 'shim' => array(
147
- 'underscore' => array(
148
- 'exports' => '_',
149
- ),
150
- ),
151
- 'baseUrl' => 'components',
152
- );
153
- $tests[] = array($packages, array(), $expected);
154
-
155
- // Test a package the has everything.
156
- $backbone = array(
157
- 'name' => 'components/backbone',
158
- 'type' => 'component',
159
- 'extra' => array(
160
- 'component' => array(
161
- 'scripts' => array(
162
- 'backbone.js'
163
- ),
164
- 'shim' => array(
165
- 'exports' => 'Backbone',
166
- 'deps' => array(
167
- 'underscore',
168
- 'jquery'
169
- ),
170
- ),
171
- ),
172
- ),
173
- );
174
- $packages = array($backbone);
175
- $expected = array(
176
- 'shim' => array(
177
- 'backbone' => array(
178
- 'exports' => 'Backbone',
179
- 'deps' => array(
180
- 'underscore',
181
- 'jquery'
182
- ),
183
- ),
184
- ),
185
- 'baseUrl' => 'components',
186
- );
187
- $tests[] = array($packages, array(), $expected);
188
-
189
- // Test multiple packages.
190
- $packages = array($backbone, $jquery);
191
- $expected = array(
192
- 'shim' => array(
193
- 'backbone' => array(
194
- 'exports' => 'Backbone',
195
- 'deps' => array(
196
- 'underscore',
197
- 'jquery'
198
- ),
199
- ),
200
- ),
201
- 'baseUrl' => 'components',
202
- );
203
- $tests[] = array($packages, array(), $expected);
204
-
205
- // Package with a config definition.
206
- $packageWithConfig = array(
207
- 'name' => 'components/packagewithconfig',
208
- 'type' => 'component',
209
- 'extra' => array(
210
- 'component' => array(
211
- 'config' => array(
212
- 'color' => 'blue',
213
- ),
214
- ),
215
- ),
216
- );
217
- $packages = array($packageWithConfig);
218
- $expected = array(
219
- 'config' => array(
220
- 'packagewithconfig' => array(
221
- 'color' => 'blue',
222
- ),
223
- ),
224
- 'baseUrl' => 'components',
225
- );
226
- $tests[] = array($packages, array(), $expected);
227
-
228
- // Test building the JavaScript file.
229
- $packageWithScripts = array(
230
- 'name' => 'components/foobar',
231
- 'type' => 'component',
232
- 'extra' => array(
233
- 'component' => array(
234
- 'scripts' => array(
235
- 'tests/ComponentInstaller/Test/Resources/test.js',
236
- ),
237
- ),
238
- ),
239
- 'is-root' => true,
240
- );
241
- $packages = array($packageWithScripts);
242
- $expected = array(
243
- 'packages' => array(
244
- array(
245
- 'name' => 'foobar',
246
- 'main' => 'foobar-built.js'
247
- ),
248
- ),
249
- 'baseUrl' => 'components',
250
- );
251
- $tests[] = array($packages, array(), $expected);
252
-
253
- // Test building JavaScript files with glob().
254
- $packageWithScripts = array(
255
- 'name' => 'components/foobar2',
256
- 'extra' => array(
257
- 'component' => array(
258
- 'scripts' => array(
259
- 'tests/ComponentInstaller/Test/Resources/*.js',
260
- ),
261
- ),
262
- ),
263
- 'is-root' => true,
264
- );
265
- $packages = array($packageWithScripts);
266
- $expected = array(
267
- 'packages' => array(
268
- array(
269
- 'name' => 'foobar2',
270
- 'main' => 'foobar2-built.js'
271
- ),
272
- ),
273
- 'baseUrl' => 'components',
274
- );
275
- $tests[] = array($packages, array(), $expected);
276
-
277
- // Test bringing in config options from the root package.
278
- $package = array(
279
- 'name' => 'components/foobar3',
280
- 'extra' => array(
281
- 'component' => array(
282
- 'config' => array(
283
- 'color' => 'blue',
284
- ),
285
- ),
286
- ),
287
- );
288
- $packages = array($package);
289
- $config = array(
290
- 'component' => array(
291
- 'waitSeconds' => 3,
292
- 'baseUrl' => 'public',
293
- ),
294
- );
295
- $expected = array(
296
- 'config' => array(
297
- 'foobar3' => array(
298
- 'color' => 'blue',
299
- ),
300
- ),
301
- 'baseUrl' => 'public',
302
- 'waitSeconds' => 3,
303
- );
304
- $tests[] = array($packages, $config, $expected);
305
-
306
- // Test overriding component config from root packages.
307
- $package = array(
308
- 'name' => 'components/foobar3',
309
- 'extra' => array(
310
- 'component' => array(
311
- 'config' => array(
312
- 'color' => 'blue',
313
- ),
314
- ),
315
- ),
316
- );
317
- $packages = array($package);
318
- $config = array(
319
- 'component' => array(
320
- 'waitSeconds' => 3,
321
- 'baseUrl' => 'public',
322
- 'config' => array(
323
- 'foobar3' => array(
324
- 'color' => 'red',
325
- ),
326
- ),
327
- ),
328
- );
329
- $expected = array(
330
- 'config' => array(
331
- 'foobar3' => array(
332
- 'color' => 'red',
333
- ),
334
- ),
335
- 'baseUrl' => 'public',
336
- 'waitSeconds' => 3,
337
- );
338
- $tests[] = array($packages, $config, $expected);
339
-
340
- return $tests;
341
- }
342
-
343
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/img.jpg DELETED
Binary file
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/img2.jpg DELETED
Binary file
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/img.jpg DELETED
Binary file
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/img3.jpg DELETED
Binary file
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/subdir2/img4.jpg DELETED
Binary file
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test.css DELETED
@@ -1,3 +0,0 @@
1
- h1 {
2
- color: red;
3
- }
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test.js DELETED
@@ -1,4 +0,0 @@
1
- /**
2
- * This is a JavaScript test file.
3
- */
4
- var foo = "bar";
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test2.css DELETED
@@ -1,3 +0,0 @@
1
- h1 {
2
- color: blue;
3
- }
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test2.js DELETED
@@ -1,4 +0,0 @@
1
- /**
2
- * This is a JavaScript test2 file.
3
- */
4
- var bar = "foo";
 
 
 
 
vendor/robloach/component-installer/tests/ComponentInstaller/Test/Util/FilesystemTest.php DELETED
@@ -1,169 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- namespace ComponentInstaller\Test\Process;
13
-
14
- use ComponentInstaller\Util\Filesystem;
15
-
16
- /**
17
- * Tests Process.
18
- */
19
- class FilesystemTest extends \PHPUnit_Framework_TestCase
20
- {
21
- /**
22
- * Tests the recursiveGlob function.
23
- *
24
- * @dataProvider providerRecursiveGlobFiles
25
- * @param array $expected
26
- * @param string $pattern
27
- * @param int $flags
28
- */
29
- public function testRecursiveGlobFiles($expected, $pattern, $flags = 0)
30
- {
31
- $fs = new Filesystem();
32
- $result = $fs->recursiveGlobFiles($pattern, $flags);
33
-
34
- // Sort the arrays so that the indexes don't matter.
35
- sort($expected);
36
- sort($result);
37
-
38
- $this->assertEquals($expected, $result);
39
- }
40
-
41
- public function providerRecursiveGlobFiles()
42
- {
43
- $tests[] = array(
44
- array(
45
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
46
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
47
- 'tests/ComponentInstaller/Test/Resources/test.css',
48
- 'tests/ComponentInstaller/Test/Resources/test.js',
49
- 'tests/ComponentInstaller/Test/Resources/test2.css',
50
- 'tests/ComponentInstaller/Test/Resources/test2.js',
51
- ),
52
- 'tests/ComponentInstaller/Test/Resources/*',
53
- );
54
-
55
- $tests[] = array(
56
- array(
57
- 'tests/ComponentInstaller/Test/Resources/test.css',
58
- 'tests/ComponentInstaller/Test/Resources/test2.css',
59
- ),
60
- 'tests/ComponentInstaller/Test/Resources/*.css',
61
- );
62
-
63
- $tests[] = array(
64
- array(
65
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
66
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
67
- ),
68
- 'tests/ComponentInstaller/Test/Resources/*.jpg',
69
- );
70
-
71
- $tests[] = array(
72
- array(
73
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
74
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
75
- ),
76
- 'tests/ComponentInstaller/Test/Resources/*img*',
77
- );
78
-
79
- $tests[] = array(
80
- array(
81
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
82
- ),
83
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
84
- );
85
-
86
- $tests[] = array(
87
- array(
88
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
89
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
90
- 'tests/ComponentInstaller/Test/Resources/subdir/img.jpg',
91
- 'tests/ComponentInstaller/Test/Resources/subdir/img3.jpg',
92
- 'tests/ComponentInstaller/Test/Resources/subdir/subdir2/img4.jpg',
93
- ),
94
- 'tests/ComponentInstaller/Test/Resources/**img*.jpg',
95
- );
96
-
97
- return $tests;
98
- }
99
-
100
- /**
101
- * Tests the recursiveGlob function.
102
- *
103
- * @dataProvider providerRecursiveGlob
104
- * @param array $expected
105
- * @param string $pattern
106
- * @param int $flags
107
- */
108
- public function testRecursiveGlob($expected, $pattern, $flags = 0)
109
- {
110
- $fs = new Filesystem();
111
- $result = $fs->recursiveGlob($pattern, $flags);
112
-
113
- // Sort the arrays so that the indexes don't matter.
114
- sort($expected);
115
- sort($result);
116
- $this->assertEquals($expected, $result);
117
- }
118
-
119
- public function providerRecursiveGlob()
120
- {
121
- $tests[] = array(
122
- array(
123
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
124
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
125
- 'tests/ComponentInstaller/Test/Resources/test.css',
126
- 'tests/ComponentInstaller/Test/Resources/test.js',
127
- 'tests/ComponentInstaller/Test/Resources/test2.css',
128
- 'tests/ComponentInstaller/Test/Resources/test2.js',
129
- 'tests/ComponentInstaller/Test/Resources/subdir',
130
- ),
131
- 'tests/ComponentInstaller/Test/Resources/*',
132
- );
133
-
134
- $tests[] = array(
135
- array(
136
- 'tests/ComponentInstaller/Test/Resources/test.css',
137
- 'tests/ComponentInstaller/Test/Resources/test2.css',
138
- ),
139
- 'tests/ComponentInstaller/Test/Resources/*.css',
140
- );
141
-
142
- $tests[] = array(
143
- array(
144
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
145
- 'tests/ComponentInstaller/Test/Resources/img2.jpg',
146
- ),
147
- 'tests/ComponentInstaller/Test/Resources/*.jpg',
148
- );
149
-
150
- $tests[] = array(
151
- array(
152
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
153
- ),
154
- 'tests/ComponentInstaller/Test/Resources/img.jpg',
155
- );
156
-
157
- $tests[] = array(
158
- array(
159
- 'tests/ComponentInstaller/Test/Resources/subdir/img.jpg',
160
- 'tests/ComponentInstaller/Test/Resources/subdir/img3.jpg',
161
- 'tests/ComponentInstaller/Test/Resources/subdir/subdir2/img4.jpg',
162
- 'tests/ComponentInstaller/Test/Resources/subdir/subdir2',
163
- ),
164
- 'tests/ComponentInstaller/Test/Resources/subdir/**',
165
- );
166
-
167
- return $tests;
168
- }
169
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/robloach/component-installer/tests/bootstrap.php DELETED
@@ -1,20 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Component Installer.
5
- *
6
- * (c) Rob Loach (http://robloach.net)
7
- *
8
- * For the full copyright and license information, please view the LICENSE.md
9
- * file that was distributed with this source code.
10
- */
11
-
12
- error_reporting(E_ALL);
13
-
14
- // Add the Component Installer test paths.
15
- $loader = require __DIR__ . '/../src/bootstrap.php';
16
- $loader->add('ComponentInstaller\Test', __DIR__);
17
-
18
- // Allow use of the Composer\Test namespace.
19
- $path = $loader->findFile('Composer\\Composer');
20
- $loader->add('Composer\Test', dirname(dirname(dirname($path))) . '/tests');