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)
Release Info
Developer | DavidAnderson |
Plugin | UpdraftPlus WordPress Backup Plugin |
Version | 1.13.7 |
Comparing to | |
See all releases |
Code changes from version 1.13.6 to 1.13.7
- admin.php +0 -2
- central/bootstrap.php +2 -2
- class-updraftplus.php +2 -3
- includes/updraft-admin.js +1 -1
- includes/updraft-admin.min.js +1 -1
- languages/updraftplus-da_DK.mo +0 -0
- languages/updraftplus-da_DK.po +10 -10
- languages/updraftplus-fi.mo +0 -0
- languages/updraftplus-fi.po +26 -26
- languages/updraftplus-hu_HU.mo +0 -0
- languages/updraftplus-hu_HU.po +26 -26
- languages/updraftplus-it_IT.mo +0 -0
- languages/updraftplus-it_IT.po +47 -47
- languages/updraftplus-ja.mo +0 -0
- languages/updraftplus-ja.po +83 -83
- languages/updraftplus-lt_LT.mo +0 -0
- languages/updraftplus-lt_LT.po +16 -16
- languages/updraftplus-nl_NL.mo +0 -0
- languages/updraftplus-nl_NL.po +3 -3
- languages/updraftplus-pl_PL.mo +0 -0
- languages/updraftplus-pl_PL.po +10 -10
- languages/updraftplus-tr_TR.mo +0 -0
- languages/updraftplus-tr_TR.po +79 -79
- languages/updraftplus.pot +124 -144
- methods/backup-module.php +3 -6
- methods/dropbox.php +2 -2
- methods/googledrive.php +1 -1
- methods/openstack-base.php +3 -3
- methods/s3.php +2 -2
- methods/updraftvault.php +4 -4
- readme.txt +14 -3
- updraftplus.php +1 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +5 -5
- vendor/robloach/component-installer/LICENSE.md +0 -24
- vendor/robloach/component-installer/README.md +0 -324
- vendor/robloach/component-installer/composer.json +0 -44
- vendor/robloach/component-installer/phpunit.xml.dist +0 -25
- vendor/robloach/component-installer/src/ComponentInstaller/ComponentInstallerPlugin.php +0 -35
- vendor/robloach/component-installer/src/ComponentInstaller/Installer.php +0 -195
- vendor/robloach/component-installer/src/ComponentInstaller/Process/BuildJsProcess.php +0 -87
- vendor/robloach/component-installer/src/ComponentInstaller/Process/CopyProcess.php +0 -74
- vendor/robloach/component-installer/src/ComponentInstaller/Process/Process.php +0 -224
- vendor/robloach/component-installer/src/ComponentInstaller/Process/ProcessInterface.php +0 -44
- vendor/robloach/component-installer/src/ComponentInstaller/Process/RequireCssProcess.php +0 -127
- vendor/robloach/component-installer/src/ComponentInstaller/Process/RequireJsProcess.php +0 -264
- vendor/robloach/component-installer/src/ComponentInstaller/Resources/require.js +0 -2019
- vendor/robloach/component-installer/src/ComponentInstaller/Util/Filesystem.php +0 -68
- vendor/robloach/component-installer/src/bootstrap.php +0 -28
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/InstallerTest.php +0 -159
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/CopyProcessTest.php +0 -209
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/ProcessTest.php +0 -136
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/RequireCssProcessTest.php +0 -150
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Process/RequireJsProcessTest.php +0 -343
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/img.jpg +0 -0
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/img2.jpg +0 -0
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/img.jpg +0 -0
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/img3.jpg +0 -0
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/subdir/subdir2/img4.jpg +0 -0
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test.css +0 -3
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test.js +0 -4
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test2.css +0 -3
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Resources/test2.js +0 -4
- vendor/robloach/component-installer/tests/ComponentInstaller/Test/Util/FilesystemTest.php +0 -169
- vendor/robloach/component-installer/tests/bootstrap.php +0 -20
@@ -3539,8 +3539,6 @@ class UpdraftPlus_Admin {
|
|
3539 |
</div>
|
3540 |
ENDHERE;
|
3541 |
return $ret;
|
3542 |
-
} else {
|
3543 |
-
// return str_replace(' ', ' ', '('.__('No backup log)', 'updraftplus').')');
|
3544 |
}
|
3545 |
}
|
3546 |
|
3539 |
</div>
|
3540 |
ENDHERE;
|
3541 |
return $ret;
|
|
|
|
|
3542 |
}
|
3543 |
}
|
3544 |
|
@@ -28,8 +28,8 @@ class UpdraftPlus_UpdraftCentral_Main {
|
|
28 |
'analytics' => 'UpdraftCentral_Analytics_Commands'
|
29 |
));
|
30 |
|
31 |
-
// If nothing was
|
32 |
-
if (empty($
|
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
|
@@ -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(
|
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 |
-
|
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;
|
@@ -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 |
}
|
@@ -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+"×tamp="+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+"×tamp="+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,"&").replace(/</g,"<").replace(/>/g,">"))):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+"×tamp="+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+"×tamp="+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,"&").replace(/</g,"<").replace(/>/g,">"))):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)})});
|
Binary file
|
@@ -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-
|
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 "
|
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 "
|
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
|
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 "
|
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 "
|
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 "
|
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 "
|
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 "
|
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 "
|
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"
|
Binary file
|
@@ -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:
|
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"
|
Binary file
|
@@ -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-
|
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 "Adj meg leírást"
|
|
1041 |
|
1042 |
#: src/central/bootstrap.php:469
|
1043 |
msgid "Description"
|
1044 |
-
msgstr "
|
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
|
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 "
|
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 "
|
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 "
|
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-
|
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-
|
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 "
|
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á
|
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
|
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 "
|
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 "
|
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ó
|
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 "
|
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"
|
Binary file
|
@@ -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-
|
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 "
|
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
|
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,
|
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
|
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
|
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,
|
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
|
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
|
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
|
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,
|
Binary file
|
@@ -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-
|
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 "
|
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 "
|
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 "
|
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 "
|
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
|
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 "
|
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 "
|
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 "
|
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
|
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 "
|
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 "
|
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
|
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 "
|
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 "
|
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 "
|
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 "
|
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 "
|
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
|
Binary file
|
@@ -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:
|
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."
|
Binary file
|
@@ -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-
|
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
|
Binary file
|
@@ -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-
|
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 "
|
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
|
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
|
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
|
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
|
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ń (
|
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
|
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
|
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 "
|
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."
|
Binary file
|
@@ -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:
|
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 "
|
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 "
|
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 "
|
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 "
|
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
|
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
|
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 "
|
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?"
|
@@ -117,7 +117,7 @@ msgstr ""
|
|
117 |
msgid "%s Error"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: src/addons/azure.php:217, src/class-updraftplus.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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:
|
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:
|
2115 |
msgid "Error data:"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: src/admin.php:663, src/admin.php:1609, src/admin.php:
|
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:
|
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:
|
2519 |
msgid "A PHP exception (%s) has occurred: %s"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
-
#: src/admin.php:1234, src/admin.php:
|
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:
|
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:
|
3012 |
msgid "Backup does not exist in the backup history"
|
3013 |
msgstr ""
|
3014 |
|
3015 |
-
#: src/admin.php:
|
3016 |
msgid "Why am I seeing this?"
|
3017 |
msgstr ""
|
3018 |
|
3019 |
-
#: src/admin.php:
|
3020 |
msgid "UpdraftPlus Restoration: Progress"
|
3021 |
msgstr ""
|
3022 |
|
3023 |
-
#: src/admin.php:
|
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:
|
3028 |
msgid "ABORT: Could not find the information on which entities to restore."
|
3029 |
msgstr ""
|
3030 |
|
3031 |
-
#: src/admin.php:
|
3032 |
msgid "If making a request for support, please include this information:"
|
3033 |
msgstr ""
|
3034 |
|
3035 |
-
#: src/admin.php:
|
3036 |
msgid "Final checks"
|
3037 |
msgstr ""
|
3038 |
|
3039 |
-
#: src/admin.php:
|
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:
|
3044 |
msgid "Looking for %s archive: file name: %s"
|
3045 |
msgstr ""
|
3046 |
|
3047 |
-
#: src/admin.php:
|
3048 |
msgid "Skipping: this archive was already restored."
|
3049 |
msgstr ""
|
3050 |
|
3051 |
-
#: src/admin.php:
|
3052 |
msgid "File is not locally present - needs retrieving from remote storage"
|
3053 |
msgstr ""
|
3054 |
|
3055 |
-
#: src/admin.php:
|
3056 |
msgid "Archive is expected to be size:"
|
3057 |
msgstr ""
|
3058 |
|
3059 |
-
#: src/admin.php:
|
3060 |
msgid "file is size:"
|
3061 |
msgstr ""
|
3062 |
|
3063 |
-
#: src/admin.php:
|
3064 |
msgid "The backup records do not contain information about the proper size of this file."
|
3065 |
msgstr ""
|
3066 |
|
3067 |
-
#: src/admin.php:
|
3068 |
msgid "Could not find one of the files for restoration"
|
3069 |
msgstr ""
|
3070 |
|
3071 |
-
#: src/admin.php:
|
3072 |
msgid "Error message"
|
3073 |
msgstr ""
|
3074 |
|
3075 |
-
#: src/admin.php:
|
3076 |
msgid "Please consult this FAQ for help on what to do about it."
|
3077 |
msgstr ""
|
3078 |
|
3079 |
-
#: src/admin.php:
|
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:
|
3084 |
msgid "settings"
|
3085 |
msgstr ""
|
3086 |
|
3087 |
-
#: src/admin.php:
|
3088 |
msgid "Not got any remote storage?"
|
3089 |
msgstr ""
|
3090 |
|
3091 |
-
#: src/admin.php:
|
3092 |
msgid "Check out UpdraftPlus Vault."
|
3093 |
msgstr ""
|
3094 |
|
3095 |
-
#: src/admin.php:
|
3096 |
msgid "Send this backup to remote storage"
|
3097 |
msgstr ""
|
3098 |
|
3099 |
-
#: src/admin.php:
|
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:
|
3104 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
3105 |
msgstr ""
|
3106 |
|
3107 |
-
#: src/admin.php:
|
3108 |
msgid "Your settings have been saved."
|
3109 |
msgstr ""
|
3110 |
|
3111 |
-
#: src/admin.php:
|
3112 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
3113 |
msgstr ""
|
3114 |
|
3115 |
-
#: src/admin.php:
|
3116 |
msgid "Your settings have been wiped."
|
3117 |
msgstr ""
|
3118 |
|
3119 |
-
#: src/admin.php:
|
3120 |
msgid "Known backups (raw)"
|
3121 |
msgstr ""
|
3122 |
|
3123 |
-
#: src/admin.php:
|
3124 |
msgid "Options (raw)"
|
3125 |
msgstr ""
|
3126 |
|
3127 |
-
#: src/admin.php:
|
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:
|
3524 |
msgid "Could not read the directory"
|
3525 |
msgstr ""
|
3526 |
|
3527 |
-
#: src/class-updraftplus.php:
|
3528 |
msgid "Could not save backup history because we have no backup array. Backup probably failed."
|
3529 |
msgstr ""
|
3530 |
|
3531 |
-
#: src/class-updraftplus.php:
|
3532 |
msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
|
3533 |
msgstr ""
|
3534 |
|
3535 |
-
#: src/class-updraftplus.php:
|
3536 |
msgid "Decryption failed. The most likely cause is that you used the wrong key."
|
3537 |
msgstr ""
|
3538 |
|
3539 |
-
#: src/class-updraftplus.php:
|
3540 |
msgid "The decryption key used:"
|
3541 |
msgstr ""
|
3542 |
|
3543 |
-
#: src/class-updraftplus.php:
|
3544 |
msgid "Decryption failed. The database file is encrypted."
|
3545 |
msgstr ""
|
3546 |
|
3547 |
-
#: src/class-updraftplus.php:
|
3548 |
msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
|
3549 |
msgstr ""
|
3550 |
|
3551 |
-
#: src/class-updraftplus.php:
|
3552 |
msgid "Failed to open database file."
|
3553 |
msgstr ""
|
3554 |
|
3555 |
-
#: src/class-updraftplus.php:
|
3556 |
msgid "(version: %s)"
|
3557 |
msgstr ""
|
3558 |
|
3559 |
-
#: src/class-updraftplus.php:
|
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:
|
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:
|
3568 |
msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
-
#: src/class-updraftplus.php:
|
3572 |
msgid "%s version: %s"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
-
#: src/class-updraftplus.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
3596 |
msgid "Old table prefix:"
|
3597 |
msgstr ""
|
3598 |
|
3599 |
-
#: src/class-updraftplus.php:
|
3600 |
msgid "Backup label:"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
-
#: src/class-updraftplus.php:
|
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:
|
3608 |
msgid "It will be imported as a new site."
|
3609 |
msgstr ""
|
3610 |
|
3611 |
-
#: src/class-updraftplus.php:
|
3612 |
msgid "Please read this link for important information on this process."
|
3613 |
msgstr ""
|
3614 |
|
3615 |
-
#: src/class-updraftplus.php:
|
3616 |
msgid "To import an ordinary WordPress site into a multisite installation requires %s."
|
3617 |
msgstr ""
|
3618 |
|
3619 |
-
#: src/class-updraftplus.php:
|
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:
|
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:
|
3628 |
msgid "Site information:"
|
3629 |
msgstr ""
|
3630 |
|
3631 |
-
#: src/class-updraftplus.php:
|
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:
|
3636 |
msgid "You must upgrade MySQL to be able to use this database."
|
3637 |
msgstr ""
|
3638 |
|
3639 |
-
#: src/class-updraftplus.php:
|
3640 |
msgid "This database backup is missing core WordPress tables: %s"
|
3641 |
msgstr ""
|
3642 |
|
3643 |
-
#: src/class-updraftplus.php:
|
3644 |
msgid "This database backup has the following WordPress tables excluded: %s"
|
3645 |
msgstr ""
|
3646 |
|
3647 |
-
#: src/class-updraftplus.php:
|
3648 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
3649 |
msgstr ""
|
3650 |
|
3651 |
-
#: src/class-updraftplus.php:
|
3652 |
msgid "Your web server's PHP installation has these functions disabled: %s."
|
3653 |
msgstr ""
|
3654 |
|
3655 |
-
#: src/class-updraftplus.php:
|
3656 |
msgid "Your hosting company must enable these functions before %s can work."
|
3657 |
msgstr ""
|
3658 |
|
3659 |
-
#: src/class-updraftplus.php:
|
3660 |
msgid "restoration"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
-
#: src/class-updraftplus.php:
|
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:
|
3668 |
msgid "The attempt to undo the double-compression failed."
|
3669 |
msgstr ""
|
3670 |
|
3671 |
-
#: src/class-updraftplus.php:
|
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:
|
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:
|
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:
|
5912 |
-
msgid "Your web server's version of PHP is too old (
|
5913 |
msgstr ""
|
5914 |
|
5915 |
-
#: src/udaddons/options.php:
|
5916 |
msgid "Connect with your UpdraftPlus.Com account"
|
5917 |
msgstr ""
|
5918 |
|
5919 |
-
#: src/udaddons/options.php:
|
5920 |
msgid "Not yet got an account (it's free)? Go get one!"
|
5921 |
msgstr ""
|
5922 |
|
5923 |
-
#: src/udaddons/options.php:
|
5924 |
msgid "Forgotten your details?"
|
5925 |
msgstr ""
|
5926 |
|
5927 |
-
#: src/udaddons/options.php:
|
5928 |
msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
|
5929 |
msgstr ""
|
5930 |
|
5931 |
-
#: src/udaddons/options.php:
|
5932 |
msgid "You are presently <strong>connected</strong> to an UpdraftPlus.Com account."
|
5933 |
msgstr ""
|
5934 |
|
5935 |
-
#: src/udaddons/options.php:
|
5936 |
msgid "If you bought new add-ons, then follow this link to refresh your connection"
|
5937 |
msgstr ""
|
5938 |
|
5939 |
-
#: src/udaddons/options.php:
|
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:
|
5944 |
msgid "You are presently <strong>not connected</strong> to an UpdraftPlus.Com account."
|
5945 |
msgstr ""
|
5946 |
|
5947 |
-
#: src/udaddons/options.php:
|
5948 |
msgid "Errors occurred when trying to connect to UpdraftPlus.Com:"
|
5949 |
msgstr ""
|
5950 |
|
5951 |
-
#: src/udaddons/options.php:
|
5952 |
msgid "Please wait whilst we make the claim..."
|
5953 |
msgstr ""
|
5954 |
|
5955 |
-
#: src/udaddons/options.php:
|
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:
|
5960 |
msgid "Claim not granted - your account login details were wrong"
|
5961 |
msgstr ""
|
5962 |
|
5963 |
-
#: src/udaddons/options.php:
|
5964 |
msgid "An unknown response was received. Response was:"
|
5965 |
msgstr ""
|
5966 |
|
5967 |
-
#: src/udaddons/options.php:
|
5968 |
msgid "UpdraftPlus Addons"
|
5969 |
msgstr ""
|
5970 |
|
5971 |
-
#: src/udaddons/options.php:
|
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:
|
5976 |
msgid "An error occurred when trying to retrieve your add-ons."
|
5977 |
msgstr ""
|
5978 |
|
5979 |
-
#: src/udaddons/options.php:
|
5980 |
msgid "UpdraftPlus Support"
|
5981 |
msgstr ""
|
5982 |
|
5983 |
-
#: src/udaddons/options.php:
|
5984 |
msgid "Need to get support?"
|
5985 |
msgstr ""
|
5986 |
|
5987 |
-
#: src/udaddons/options.php:
|
5988 |
msgid "Go here"
|
5989 |
msgstr ""
|
5990 |
|
5991 |
-
#: src/udaddons/options.php:
|
5992 |
msgid "You've got it"
|
5993 |
msgstr ""
|
5994 |
|
5995 |
-
#: src/udaddons/options.php:
|
5996 |
msgid "Your version: %s"
|
5997 |
msgstr ""
|
5998 |
|
5999 |
-
#: src/udaddons/options.php:
|
6000 |
msgid "latest"
|
6001 |
msgstr ""
|
6002 |
|
6003 |
-
#: src/udaddons/options.php:
|
6004 |
msgid "(apparently a pre-release or withdrawn release)"
|
6005 |
msgstr ""
|
6006 |
|
6007 |
-
#: src/udaddons/options.php:
|
6008 |
msgid "Available for this site (via your all-addons purchase)"
|
6009 |
msgstr ""
|
6010 |
|
6011 |
-
#: src/udaddons/options.php:
|
6012 |
msgid "please follow this link to update the plugin in order to get it"
|
6013 |
msgstr ""
|
6014 |
|
6015 |
-
#: src/udaddons/options.php:
|
6016 |
msgid "Assigned to this site"
|
6017 |
msgstr ""
|
6018 |
|
6019 |
-
#: src/udaddons/options.php:
|
6020 |
msgid "please follow this link to update the plugin in order to activate it"
|
6021 |
msgstr ""
|
6022 |
|
6023 |
-
#: src/udaddons/options.php:
|
6024 |
msgid "Available to claim on this site"
|
6025 |
msgstr ""
|
6026 |
|
6027 |
-
#: src/udaddons/options.php:
|
6028 |
msgid "activate it on this site"
|
6029 |
msgstr ""
|
6030 |
|
6031 |
-
#: src/udaddons/options.php:
|
6032 |
msgid "You have an inactive purchase"
|
6033 |
msgstr ""
|
6034 |
|
6035 |
-
#: src/udaddons/options.php:
|
6036 |
msgid "Get it from the UpdraftPlus.Com Store"
|
6037 |
msgstr ""
|
6038 |
|
6039 |
-
#: src/udaddons/options.php:
|
6040 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
6041 |
msgstr ""
|
6042 |
|
6043 |
-
#: src/udaddons/options.php:
|
6044 |
msgid "Buy It"
|
6045 |
msgstr ""
|
6046 |
|
6047 |
-
#: src/udaddons/options.php:
|
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 |
|
@@ -369,11 +369,10 @@ abstract class UpdraftPlus_BackupModule {
|
|
369 |
*
|
370 |
* @uses UpdraftPlus::jobdata_set()
|
371 |
*
|
372 |
-
* @param String
|
373 |
-
* @param Mixed
|
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
|
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 |
/**
|
@@ -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
|
46 |
-
$this->jobdata_set('upload_offset_'.$this->current_file_hash, $offset
|
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 |
|
@@ -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())
|
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 |
|
@@ -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
|
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
|
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().")", '
|
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();
|
@@ -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
|
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
|
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");
|
@@ -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
|
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
|
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(
|
346 |
-
<input id="updraftvault_pass" class="udignorechange" type="password" placeholder="<?php esc_attr_e(
|
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">
|
@@ -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.
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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.
|
@@ -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.
|
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
|
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit2f865a0910fe1d724e305a7823c0e1af::getLoader();
|
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitabeb097ad980562dcf3d1e482eb77813
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
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\
|
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\
|
56 |
} else {
|
57 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
58 |
}
|
59 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
60 |
-
|
61 |
}
|
62 |
|
63 |
return $loader;
|
64 |
}
|
65 |
}
|
66 |
|
67 |
-
function
|
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;
|
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
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 =
|
156 |
-
$loader->prefixDirsPsr4 =
|
157 |
-
$loader->prefixesPsr0 =
|
158 |
-
$loader->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 |
}
|
@@ -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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,3 +0,0 @@
|
|
1 |
-
h1 {
|
2 |
-
color: red;
|
3 |
-
}
|
|
|
|
|
|
@@ -1,4 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This is a JavaScript test file.
|
3 |
-
*/
|
4 |
-
var foo = "bar";
|
|
|
|
|
|
|
|
@@ -1,3 +0,0 @@
|
|
1 |
-
h1 {
|
2 |
-
color: blue;
|
3 |
-
}
|
|
|
|
|
|
@@ -1,4 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This is a JavaScript test2 file.
|
3 |
-
*/
|
4 |
-
var bar = "foo";
|
|
|
|
|
|
|
|
@@ -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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -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');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|