WordPress.org

Plugin Directory

Changeset 628706


Ignore:
Timestamp:
11/22/12 15:54:09 (17 months ago)
Author:
willmot
Message:

Release 2.1 to trunk

Location:
backupwordpress/trunk
Files:
10 added
18 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • backupwordpress/trunk/admin/actions.php

    r615007 r628706  
    1111 
    1212    $schedule = new HMBKP_Scheduled_Backup( urldecode( $_GET['hmbkp_schedule_id'] ) ); 
    13     $schedule->delete_backup( base64_decode( urldecode( $_GET['hmbkp_delete_backup'] ) ) ); 
     13 
     14    $schedule->delete_backup( base64_decode( $_GET['hmbkp_delete_backup'] ) ); 
    1415 
    1516    wp_redirect( remove_query_arg( array( 'hmbkp_delete_backup', '_wpnonce' ) ), 303 ); 
     
    4445function hmbkp_ajax_request_do_backup() { 
    4546 
    46     if ( empty( $_GET['hmbkp_schedule_id'] ) ) 
    47         return; 
     47    if ( empty( $_POST['hmbkp_schedule_id'] ) ) 
     48        return; 
     49 
     50    // We wan't to display any fatal errors in this ajax request so we can catch them on the other side. 
     51    error_reporting( E_ERROR ); 
     52    @ini_set( 'display_errors', 'On' ); 
     53    @ini_set( 'html_errors', 'Off' ); 
     54 
     55    // Force a memory error for testing purposes 
     56    //ini_set( 'memory_limit', '2M' ); 
     57    //function a() { a(); } a(); 
    4858 
    4959    ignore_user_abort( true ); 
     
    5161    hmbkp_cleanup(); 
    5262 
    53     $schedule = new HMBKP_Scheduled_Backup( urldecode( $_GET['hmbkp_schedule_id'] ) ); 
     63    $schedule = new HMBKP_Scheduled_Backup( urldecode( $_POST['hmbkp_schedule_id'] ) ); 
    5464 
    5565    $schedule->run(); 
    56  
    57     hmbkp_schedule_actions( $schedule ); 
    5866 
    5967    exit; 
     
    6876function hmbkp_request_download_backup() { 
    6977 
    70     if ( empty( $_GET['hmbkp_download_backup'] ) || ! check_admin_referer( 'hmbkp-download_backup' ) ) 
    71         return; 
    72  
    73     wp_redirect( str_replace( realpath( HM_Backup::conform_dir( HM_Backup::get_home_path() ) ), home_url(), base64_decode( $_GET['hmbkp_download_backup'] ) ), 303 ); 
     78    if ( empty( $_GET['hmbkp_download_backup'] ) || ! check_admin_referer( 'hmbkp-download_backup' ) || ! file_exists( base64_decode( $_GET['hmbkp_download_backup'] ) ) ) 
     79        return; 
     80 
     81    $url = str_replace( HM_Backup::conform_dir( HM_Backup::get_home_path() ), home_url(), trailingslashit( dirname( base64_decode( $_GET['hmbkp_download_backup'] ) ) ) ) . urlencode( pathinfo( base64_decode( $_GET['hmbkp_download_backup'] ), PATHINFO_BASENAME ) ); 
     82 
     83    if ( ( require_once( ABSPATH . '/wp-admin/includes/misc.php' ) ) && got_mod_rewrite() ) { 
     84 
     85        // Force the .htaccess to be rebuilt 
     86        if ( file_exists( hmbkp_path() . '/.htaccess' ) ) 
     87            unlink( hmbkp_path() . '/.htaccess' ); 
     88 
     89        hmbkp_path(); 
     90 
     91        $url = add_query_arg( 'key', HMBKP_SECURE_KEY, $url ); 
     92 
     93    } 
     94 
     95    wp_redirect( $url, 303 ); 
    7496 
    7597    exit; 
     
    125147function hmbkp_ajax_is_backup_in_progress() { 
    126148 
    127     if ( empty( $_GET['hmbkp_schedule_id'] ) ) 
    128         return; 
    129  
    130     $schedule = new HMBKP_Scheduled_Backup( urldecode( $_GET['hmbkp_schedule_id'] ) ); 
     149    if ( empty( $_POST['hmbkp_schedule_id'] ) ) 
     150        return; 
     151 
     152    $schedule = new HMBKP_Scheduled_Backup( urldecode( $_POST['hmbkp_schedule_id'] ) ); 
    131153 
    132154    if ( ! $schedule->get_status() ) 
     
    146168function hmbkp_ajax_calculate_backup_size() { 
    147169 
    148     if ( empty( $_GET['hmbkp_schedule_id'] ) ) 
    149         return; 
    150  
    151     $schedule = new HMBKP_Scheduled_Backup( urldecode( $_GET['hmbkp_schedule_id'] ) ); 
     170    if ( empty( $_POST['hmbkp_schedule_id'] ) ) 
     171        return; 
     172 
     173    $schedule = new HMBKP_Scheduled_Backup( urldecode( $_POST['hmbkp_schedule_id'] ) ); 
    152174 
    153175    $recalculate_filesize = true; 
     
    186208function hmbkp_edit_schedule_load() { 
    187209 
    188     $schedule = new HMBKP_Scheduled_Backup( esc_attr( $_GET['hmbkp_schedule_id'] ) ); 
     210    $schedule = new HMBKP_Scheduled_Backup( $_GET['hmbkp_schedule_id'] ); 
    189211 
    190212    require( HMBKP_PLUGIN_PATH . '/admin/schedule-form.php' ); 
     
    200222function hmbkp_edit_schedule_excludes_load() { 
    201223 
    202     $schedule = new HMBKP_Scheduled_Backup( esc_attr( $_GET['hmbkp_schedule_id'] ) ); 
     224    $schedule = new HMBKP_Scheduled_Backup( $_GET['hmbkp_schedule_id'] ); 
    203225 
    204226    require( HMBKP_PLUGIN_PATH . '/admin/schedule-form-excludes.php' ); 
     
    234256        return; 
    235257 
    236     $schedule = new HMBKP_Scheduled_Backup( esc_attr( $_GET['hmbkp_schedule_id'] ) ); 
     258    $schedule = new HMBKP_Scheduled_Backup( $_GET['hmbkp_schedule_id'] ); 
    237259 
    238260    $errors = array(); 
     
    304326function hmbkp_add_exclude_rule() { 
    305327 
    306     $schedule = new HMBKP_Scheduled_Backup( esc_attr( $_POST['hmbkp_schedule_id'] ) ); 
     328    $schedule = new HMBKP_Scheduled_Backup( $_POST['hmbkp_schedule_id'] ); 
    307329 
    308330    $schedule->set_excludes( $_POST['hmbkp_exclude_rule'], true ); 
     
    326348function hmbkp_delete_exclude_rule() { 
    327349 
    328     $schedule = new HMBKP_Scheduled_Backup( esc_attr( $_POST['hmbkp_schedule_id'] ) ); 
     350    $schedule = new HMBKP_Scheduled_Backup( $_GET['hmbkp_schedule_id'] ); 
    329351 
    330352    $excludes = $schedule->get_excludes(); 
    331353 
    332     $schedule->set_excludes( array_diff( $excludes, (array) $_POST['hmbkp_exclude_rule'] ) ); 
     354    $schedule->set_excludes( array_diff( $excludes, (array) stripslashes( $_GET['hmbkp_exclude_rule'] ) ) ); 
    333355 
    334356    $schedule->save(); 
     
    356378        $excludes = explode( ',', $_POST['hmbkp_schedule_excludes'] ); 
    357379 
    358     if ( ! empty( $_POST['hmbkp_file_method'] ) ) 
    359         $file_method = $_POST['hmbkp_file_method']; 
    360  
    361     hmbkp_file_list( $schedule, $excludes, $file_method ); 
    362  
    363     foreach( $schedule->get_excluded_files() as $key => $excluded_file ) 
    364         if ( strpos( $excluded_file, $schedule->get_path() ) === false ) 
    365             $excluded_files[] = $excluded_file; 
    366  
    367     if ( ! empty( $excluded_files) ) { ?> 
    368  
    369     <p><?php printf( _n( '%s matches 1 file.', '%1$s matches %2$d files.', count( $excluded_files ), 'hmbkp' ), '<code>' . implode( '</code>, <code>', $excludes ) . '</code>', count( $excluded_files ) ); ?></p> 
     380    hmbkp_file_list( $schedule, $excludes, 'get_excluded_files' ); 
     381 
     382    $schedule->set_excludes( $excludes ); 
     383 
     384    error_log( $schedule->get_excluded_file_count() ); 
     385 
     386    if ( $schedule->get_excluded_file_count() ) { ?> 
     387 
     388        <p><?php printf( _n( '%s matches 1 file.', '%1$s matches %2$d files.', $schedule->get_excluded_file_count(), 'hmbkp' ), '<code>' . implode( '</code>, <code>', $excludes ) . '</code>', $schedule->get_excluded_file_count() ); ?></p> 
    370389 
    371390    <?php } else { ?> 
    372391 
    373     <p><?php printf( __( '%s didn\'t match any files.', 'hmbkp' ), '<code>' . implode( '</code>, <code>', $excludes ) . '</code>' ); ?></p> 
     392        <p><?php printf( __( '%s didn\'t match any files.', 'hmbkp' ), '<code>' . implode( '</code>, <code>', $excludes ) . '</code>' ); ?></p> 
    374393 
    375394    <?php } ?> 
    376395 
    377     <p><button type="button" class="button-primary hmbkp_save_exclude_rule"><?php _e( 'Exclude', 'hmbkp' ); ?></button> <button type="button" class="button-secondary hmbkp_cancel_save_exclude_rule"><?php _e( 'Cancel', 'hmbkp' ); ?></button></p> 
     396        <p><button type="button" class="button-primary hmbkp_save_exclude_rule"><?php _e( 'Exclude', 'hmbkp' ); ?></button> <button type="button" class="button-secondary hmbkp_cancel_save_exclude_rule"><?php _e( 'Cancel', 'hmbkp' ); ?></button></p> 
    378397 
    379398    <?php exit; 
     
    382401add_action( 'wp_ajax_hmbkp_file_list', 'hmbkp_preview_exclude_rule', 10, 0 ); 
    383402 
    384 /** 
    385  * Handles changes in the defined Constants 
    386  * that users can define to control advanced 
    387  * settings 
    388  */ 
    389 function hmbkp_constant_changes() { 
    390  
    391     // If a custom backup path has been set or changed 
    392     if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && HM_Backup::conform_dir( HMBKP_PATH ) !== ( $from = HM_Backup::conform_dir( get_option( 'hmbkp_path' ) ) ) ) 
    393         hmbkp_path_move( $from, HMBKP_PATH ); 
    394  
    395     // If a custom backup path has been removed 
    396     if ( ( ( defined( 'HMBKP_PATH' ) && ! HMBKP_PATH ) || ! defined( 'HMBKP_PATH' ) && HM_Backup::conform_dir( hmbkp_path_default() ) != ( $from = HM_Backup::conform_dir( get_option( 'hmbkp_path' ) ) ) ) ) 
    397         hmbkp_path_move( $from, hmbkp_path_default() ); 
    398  
    399     // If the custom path has changed and the new directory isn't writable 
    400     if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && HM_Backup::conform_dir( HMBKP_PATH ) != ( $from = HM_Backup::conform_dir( get_option( 'hmbkp_path' ) ) ) && $from != hmbkp_path_default() && !is_writable( HMBKP_PATH ) && is_dir( $from ) ) 
    401         hmbkp_path_move( $from, hmbkp_path_default() ); 
    402  
    403 } 
     403function hmbkp_display_error_and_offer_to_email_it() { 
     404 
     405    if ( empty( $_POST['hmbkp_error'] ) ) 
     406        return; 
     407 
     408    $error = str_replace( HM_Backup::get_home_path(), '', $_POST['hmbkp_error'] ); ?> 
     409 
     410    <h3><?php _e( 'Your BackUp Failed', 'hmbkp' ); ?></h3> 
     411 
     412    <p><?php _e( "Here's the response from the server:" ); ?></p> 
     413 
     414    <pre><?php echo esc_attr( $error ); ?></pre> 
     415 
     416    <p class="description">You can email details of this error to <a href="http://hmn.md">Human Made Limited</a> so they can look into the issue.<br /><br /></p> 
     417 
     418    <button class="button hmbkp-fancybox-close"><?php _e( 'Close', 'hmbkp' ); ?></button> 
     419    <button class="button-primary hmbkp_send_error_via_email right"><?php _e( 'Email to Support', 'hmbkp' ); ?></button> 
     420 
     421    <?php exit; 
     422} 
     423add_action( 'wp_ajax_hmbkp_backup_error', 'hmbkp_display_error_and_offer_to_email_it' ); 
     424 
     425function hmbkp_send_error_via_email() { 
     426 
     427    if ( empty( $_POST['hmbkp_error'] ) ) 
     428        return; 
     429 
     430    $error = $_POST['hmbkp_error']; 
     431 
     432    wp_mail( 'support@humanmade.co.uk', 'BackUpWordPress Fatal error on ' . parse_url( home_url(), PHP_URL_HOST ), $error, 'From: BackUpWordPress <' . get_bloginfo( 'admin_email' ) . '>' . "\r\n" ); 
     433 
     434    exit; 
     435 
     436} 
     437add_action( 'wp_ajax_hmbkp_email_error', 'hmbkp_send_error_via_email' ); 
  • backupwordpress/trunk/admin/backups.php

    r602026 r628706  
    77    <?php foreach ( $schedules->get_schedules() as $schedule ) : ?> 
    88 
    9         <li><a<?php if ( ! empty ( $_GET['hmbkp_schedule_id'] ) && $schedule->get_id() == $_GET['hmbkp_schedule_id'] ) { ?> class="current"<?php } ?> href="<?php echo esc_url( add_query_arg( 'hmbkp_schedule_id', $schedule->get_id(), HMBKP_ADMIN_URL ) ); ?> "><?php echo esc_attr( $schedule->get_name() ); ?> <span class="count">(<?php echo count( $schedule->get_backups() ); ?>)</span></a></li> 
     9        <li<?php if ( $schedule->get_status() ) { ?> class="hmbkp-running"<?php } ?>><a<?php if ( ! empty ( $_GET['hmbkp_schedule_id'] ) && $schedule->get_id() == $_GET['hmbkp_schedule_id'] ) { ?> class="current"<?php } ?> href="<?php echo esc_url( add_query_arg( 'hmbkp_schedule_id', $schedule->get_id(), HMBKP_ADMIN_URL ) ); ?> "><?php echo esc_attr( $schedule->get_name() ); ?> <span class="count">(<?php echo count( $schedule->get_backups() ); ?>)</span></a></li> 
    1010 
    1111    <?php endforeach; ?> 
  • backupwordpress/trunk/admin/page.php

    r588863 r628706  
    1515<?php endif; ?> 
    1616 
    17     <p class="howto"><?php printf( __( 'If you need help getting things working you are more than welcome to email us at %s and we\'ll do what we can.', 'hmbkp' ), '<a href="mailto:support@hmn.md">support@hmn.md</a>' ); ?></p> 
     17    <p class="howto"><?php printf( __( 'If your finding BackUpWordPress useful, please %s.', 'hmbkp' ), '<a href="http://wordpress.org/support/view/plugin-reviews/backupwordpress">' . __( 'rate it on the plugin directory', 'hmbkp' ) . '</a>' ); ?></p> 
     18 
     19    <p class="howto"><?php printf( __( 'If you need help getting things working then check the FAQ by clicking on help in the top right hand corner of this page.', 'hmbkp' ), '<a href="mailto:support@hmn.md">support@hmn.md</a>' ); ?></p> 
    1820 
    1921</div> 
  • backupwordpress/trunk/admin/schedule-form-excludes.php

    r602026 r628706  
    1111            <label for="hmbkp-new-exclude-rule"> 
    1212 
    13                 <?php _e( 'New Exclude Rule', 'hmbkp' ); ?> 
     13                <?php _e( 'New Exclude Rule[s]', 'hmbkp' ); ?> 
    1414 
    15                 <input id="hmbkp-new-exclude-rule" type="text" class="code" placeholder=".git/, *.mp3, wp-content/uploads/" /> 
     15                <input id="hmbkp-new-exclude-rule" type="text" class="code" placeholder="" /> 
     16 
     17                <span class="howto">Enter new exclude rules as a comma separated list, e.g. <code>.git/, *.mp3, wp-content/uploads/</code></span> 
    1618 
    1719                <button type="button" class="button-secondary hmbkp_preview_exclude_rule"><?php _e( 'Preview', 'hmbkp' ); ?></button> 
     
    3840                        <span class="code"><?php echo esc_attr( str_ireplace( untrailingslashit( $schedule->get_root() ), '', $exclude ) ); ?></span> 
    3941 
    40         <?php if ( strpos( $schedule->get_path(), untrailingslashit( $exclude ) ) !== false ) : ?> 
     42        <?php if ( $schedule->get_path() === untrailingslashit( $exclude ) ) : ?> 
    4143 
    4244                        <span class="reason"><?php _e( 'default', 'hmbkp' ); ?></span> 
     
    6567            <ul class="subsubsub"> 
    6668 
    67     <?php if ( $schedule->get_excluded_files() ) : ?> 
     69    <?php if ( $schedule->get_excluded_file_count() ) : ?> 
    6870 
    69                 <li><a href="#hmbkp_excluded_files"><?php _e( 'Excluded', 'hmbkp' ); ?></a>(<?php echo count( $schedule->get_excluded_files() ); ?>)</li> 
     71                <li><a href="#hmbkp_excluded_files"><?php _e( 'Excluded', 'hmbkp' ); ?></a>(<?php echo $schedule->get_excluded_file_count(); ?>)</li> 
    7072 
    7173    <?php endif; ?> 
    7274 
    73                 <li><a href="#hmbkp_included_files"><?php _e( 'Included', 'hmbkp' ); ?></a>(<?php echo count( $schedule->get_included_files() ); ?>)</li> 
     75                <li><a href="#hmbkp_included_files"><?php _e( 'Included', 'hmbkp' ); ?></a>(<?php echo $schedule->get_included_file_count(); ?>)</li> 
    7476 
    75     <?php if ( $schedule->get_unreadable_files() ) : ?> 
     77    <?php if ( $schedule->get_unreadable_file_count() ) : ?> 
    7678 
    77                 <li><a href="#hmbkp_unreadable_files"><?php _e( 'Unreadable', 'hmbkp' ); ?></a>(<?php echo count( $schedule->get_unreadable_files() ); ?>)</li> 
     79                <li><a href="#hmbkp_unreadable_files"><?php _e( 'Unreadable', 'hmbkp' ); ?></a>(<?php echo $schedule->get_unreadable_file_count(); ?>)</li> 
    7880 
    7981    <?php endif; ?> 
     
    8183            </ul> 
    8284 
    83     <?php if ( $schedule->get_excluded_files() ) : ?> 
     85    <?php if ( $schedule->get_excluded_file_count() ) : ?> 
    8486 
    8587            <div id="hmbkp_excluded_files"> 
     
    9799            </div> 
    98100 
    99     <?php if ( $schedule->get_unreadable_files() ) : ?> 
     101    <?php if ( $schedule->get_unreadable_file_count() ) : ?> 
    100102 
    101103            <div id="hmbkp_unreadable_files"> 
  • backupwordpress/trunk/admin/schedule.php

    r615007 r628706  
    1717    case 'hourly' : 
    1818 
    19         $reoccurrence = date_i18n( 'i', $schedule->get_next_occurrence( false ) ) === '00' ? sprintf( __( 'hourly on the hour', 'hmbkp' ) ) : sprintf( __( 'hourly at %s minutes past the hour', 'hmbkp' ), '<span ' . $next_backup . '>' . str_replace( '0', '', date_i18n( 'i', $schedule->get_next_occurrence( false ) ) ) ) . '</span>'; 
     19        $reoccurrence = date_i18n( 'i', $schedule->get_next_occurrence( false ) ) === '00' ? '<span ' . $next_backup . '>' . __( 'hourly on the hour', 'hmbkp' ) . '</span>' : sprintf( __( 'hourly at %s minutes past the hour', 'hmbkp' ), '<span ' . $next_backup . '>' . str_replace( '0', '', date_i18n( 'i', $schedule->get_next_occurrence( false ) ) ) ) . '</span>'; 
    2020 
    2121    break; 
  • backupwordpress/trunk/assets/hmbkp.css

    r602026 r628706  
    5050.hmbkp-schedule-sentence { margin: 0; font-size: 16px; font-weight: lighter; margin: 30px 0 10px; clear: both; margin-left: 10px; } 
    5151.hmbkp-schedule-sentence::before { content: "\2714"; margin-right: 10px; width: 16px; height: 47px; display: block; float: left; } 
     52.hmbkp-schedule-sentence.hmbkp-error::before { content: "\2718"; } 
    5253.hmbkp-schedule-sentence.hmbkp-running::before { background-image: url('wpspin_light.gif'); background-repeat: no-repeat; margin-right: 10px; content: " "; } 
    53 .hmbkp-schedule-sentence .hmbkp-status { display: block; font-size: 12px; color: #666; margin: 2px 0 0 26px; } 
     54.hmbkp-schedule-sentence .hmbkp-status { display: none; font-size: 12px; color: #666; margin: 2px 0 0 26px; } 
     55.hmbkp-schedule-sentence.hmbkp-running .hmbkp-status { display: block; } 
     56.hmbkp-schedule-sentence.hmbkp-running .hmbkp-schedule-actions { display: none; } 
    5457.hmbkp-schedule-sentence [title] { border-bottom: 1px dotted #CCC; cursor: help; } 
     58 
     59.subsubsub li.hmbkp-running a { background-image: url('wpspin_light.gif'); background-repeat: no-repeat; padding-left: 20px; vertical-align: middle; } 
     60.subsubsub li.hmbkp-running a.current { padding: 0; background-image: none; } 
    5561 
    5662.hmbkp-schedule-sentence .hmbkp-schedule-actions { visibility: visible; } 
    5763.hmbkp-schedule-actions { font-size: 12px; font-weight: normal; margin: 0 0 0 26px; } 
    5864 
    59 button.hmbkp-ajax-loading { padding-left: 20px; } 
    60 button.hmbkp-ajax-loading::before { background-image: url('wpspin_light.gif'); background-repeat: no-repeat; background-position: 1px -1px; margin-left: -20px; display: inline-block; width: 16px; height: 16px; content: " "; vertical-align: middle; padding-right: 3px; } 
     65.hmbkp-ajax-loading, button.hmbkp-ajax-loading { padding-left: 20px; } 
     66.hmbkp-ajax-loading::before { background-image: url('wpspin_light.gif'); background-repeat: no-repeat; background-position: 1px -1px; margin-left: -20px; display: inline-block; width: 16px; height: 16px; content: " "; vertical-align: middle; padding-right: 3px; } 
    6167 
    6268button { height: 14px; } 
     
    8086.hmbkp-edit-schedule-excludes-form td span.reason { color: #CCC; } 
    8187input[type="datetime-local"] { border-radius: 3px; border-width: 1px; border-style: solid; box-sizing: border-box; border-color: #DFDFDF; background-color: white; } 
     88 
     89pre { background-color: #eee; padding: 10px; white-space: normal; } 
  • backupwordpress/trunk/assets/hmbkp.js

    r602026 r628706  
    77    $( document ).ajaxComplete( function() { 
    88        $( '.hmbkp-ajax-loading' ).removeClass( 'hmbkp-ajax-loading' ); 
     9    } ); 
     10 
     11    $( document ).on( 'click', '.hmbkp-fancybox-close', function() { 
     12        $.fancybox.close(); 
    913    } ); 
    1014 
     
    2731 
    2832            if ( $( '.hmbkp-form p.submit:contains(\'Update\')' ).size() ) 
    29                 $( '<button type="button" class="button-secondary hmbkp_cancel">' + objectL10n.cancel + '</button></p>' ).appendTo( '.hmbkp-form p.submit' ); 
    30  
    31             $( '.hmbkp_cancel' ).click( function() { 
    32                 $.fancybox.close(); 
    33             } ); 
     33                $( '<button type="button" class="button-secondary hmbkp-fancybox-close">' + objectL10n.cancel + '</button></p>' ).appendTo( '.hmbkp-form p.submit' ); 
    3434 
    3535        } 
     
    7474        $.post( 
    7575            ajaxurl, 
    76             { 'action'  : 'hmbkp_file_list', 'hmbkp_schedule_excludes' : $( '.hmbkp_add_exclude_rule input' ).val(), 'hmbkp_schedule_id' : $( '[name="hmbkp_schedule_id"]' ).val(), 'hmbkp_file_method' : 'get_excluded_files' }, 
     76            { 'action'  : 'hmbkp_file_list', 'hmbkp_schedule_excludes' : $( '.hmbkp_add_exclude_rule input' ).val(), 'hmbkp_schedule_id' : $( '[name="hmbkp_schedule_id"]' ).val() }, 
    7777            function( data ) { 
    7878 
     
    8989 
    9090            } 
    91         ).error( function() { 
    92  
    93  
    94  
    95         } ); 
     91        ) 
    9692 
    9793    } ); 
     
    182178    $( document ).on( 'click', '.hmbkp-edit-schedule-excludes-form td a', function( e ) { 
    183179 
    184         $( this ).addClass( 'hmbkp-ajax-loading' ); 
     180        $( this ).addClass( 'hmbkp-ajax-loading' ).text( '' ); 
    185181 
    186182        e.preventDefault(); 
    187183 
    188         $.post( 
     184        $.get( 
    189185            ajaxurl, 
    190186            { 'action' : 'hmbkp_delete_exclude_rule', 'hmbkp_exclude_rule' : $( this ).closest( 'td' ).attr( 'data-hmbkp-exclude-rule' ), 'hmbkp_schedule_id' : $( '[name="hmbkp_schedule_id"]' ).val() }, 
     
    215211        e.preventDefault(); 
    216212 
    217         $.post( 
     213        $.get( 
    218214            ajaxurl + '?' + $( this ).serialize(), 
    219215            { 'action'  : 'hmnkp_edit_schedule_submit' }, 
     
    264260    } ); 
    265261 
    266     // Text the cron response using ajax 
    267     $.get( ajaxurl, { 'action' : 'hmbkp_cron_test' }, 
     262    // Test the cron response using ajax 
     263    $.post( ajaxurl, { 'action' : 'hmbkp_cron_test' }, 
    268264         function( data ) { 
    269265             if ( data != 1 ) { 
     
    275271    // Calculate the estimated backup size 
    276272    if ( $( '.hmbkp-schedule-sentence .calculating' ).size() ) { 
    277         $.get( ajaxurl, { 'action' : 'hmbkp_calculate', 'hmbkp_schedule_id' : $( '[data-hmbkp-schedule-id]' ).attr( 'data-hmbkp-schedule-id' ) }, 
     273        $.post( ajaxurl, { 'action' : 'hmbkp_calculate', 'hmbkp_schedule_id' : $( '[data-hmbkp-schedule-id]' ).attr( 'data-hmbkp-schedule-id' ) }, 
    278274            function( data ) { 
    279275 
     
    294290    } 
    295291 
    296     if ( $( '.hmbkp-running' ).size() ) 
    297         hmbkpRedirectOnBackupComplete(); 
    298  
    299     $( '.hmbkp-run' ).live( 'click', function( e ) { 
     292    if ( $( '.hmbkp-schedule-sentence.hmbkp-running' ).size() ) 
     293        hmbkpRedirectOnBackupComplete( $( '[data-hmbkp-schedule-id]' ).attr( 'data-hmbkp-schedule-id' ), true ); 
     294 
     295    $( document ).on( 'click', '.hmbkp-run', function( e ) { 
     296 
     297        $( this ).closest( '.hmbkp-schedule-sentence' ).addClass( 'hmbkp-running' ); 
     298 
     299        $( '.hmbkp-error' ).removeClass( 'hmbkp-error' ); 
    300300 
    301301        scheduleId = $( '[data-hmbkp-schedule-id]' ).attr( 'data-hmbkp-schedule-id' ); 
    302302 
    303         ajaxRequest = $.get( 
     303        ajaxRequest = $.post( 
    304304            ajaxurl, 
    305305            { 'action' : 'hmbkp_run_schedule', 'hmbkp_schedule_id' : scheduleId }, 
    306306            function( data ) { 
    307307 
    308                 if ( data.indexOf( 'hmbkp-schedule-actions' ) != -1 ) 
     308                // Backup Succeeded 
     309                if ( ! data ) { 
    309310                    location.reload( true ); 
    310  
    311                 // The backup failed so just redirect back 
    312                 else 
    313                     location.replace( '//' + location.host + location.pathname  + '?page=backupwordpress&action=hmbkp_cancel&reason=broken&hmbkp_schedule_id=' + scheduleId ); 
    314  
    315             } 
    316         ).error( function() { 
     311                } 
     312 
     313                // The backup failed, show the error and offer to have it emailed back 
     314                else { 
     315 
     316                    $( '.hmbkp-schedule-sentence.hmbkp-running' ).removeClass( 'hmbkp-running' ).addClass( 'hmbkp-error' ); 
     317 
     318                    $.post( 
     319                        ajaxurl, 
     320                        { 'action' : 'hmbkp_backup_error', 'hmbkp_error' : data }, 
     321                        function( data ) { 
     322 
     323                            if ( ! data ) 
     324                                return; 
     325 
     326                            $.fancybox( { 
     327                                'maxWidth'  : 500, 
     328                                'content'   : data, 
     329                                'modal'     : true 
     330                            } ); 
     331 
     332                        } 
     333                    ); 
     334 
     335                } 
     336 
     337                $( document ).one( 'click', '.hmbkp_send_error_via_email', function( e ) { 
     338 
     339                    e.preventDefault(); 
     340 
     341                    $( this ).addClass( 'hmbkp-ajax-loading' ); 
     342 
     343                    $.post( 
     344                        ajaxurl, 
     345                        { 'action' : 'hmbkp_email_error', 'hmbkp_error' : data }, 
     346                        function( data ) { 
     347                            $.fancybox.close(); 
     348                        } 
     349 
     350                    ) 
     351 
     352                } ); 
     353 
     354            } 
     355 
     356        // Redirect back on error 
     357        ).error( function( data ) { 
    317358            location.replace( '//' + location.host + location.pathname  + '?page=backupwordpress&action=hmbkp_cancel&reason=broken&hmbkp_schedule_id=' + scheduleId ); 
    318359        } ); 
    319360 
    320         $( this ).closest( '.hmbkp-schedule-sentence' ).addClass( 'hmbkp-running' ); 
    321  
    322         hmbkpRedirectOnBackupComplete(); 
     361        setTimeout( function() { 
     362            hmbkpRedirectOnBackupComplete( scheduleId, false ) 
     363        }, 1000 ); 
    323364 
    324365        e.preventDefault(); 
     
    328369} ); 
    329370 
    330 function hmbkpRedirectOnBackupComplete( schedule_id ) { 
    331  
    332     jQuery.get( 
     371function hmbkpRedirectOnBackupComplete( schedule_id, redirect ) { 
     372 
     373    jQuery.post( 
    333374        ajaxurl, 
    334375        { 'action' : 'hmbkp_is_in_progress', 'hmbkp_schedule_id' : jQuery( '[data-hmbkp-schedule-id]' ).attr( 'data-hmbkp-schedule-id' ) }, 
    335376        function( data ) { 
    336377 
    337             if ( data == 0 ) { 
    338  
    339                 location.reload( true ); 
     378            if ( data === 0 && redirect === true ) { 
     379                    location.reload( true ); 
    340380 
    341381            } else { 
    342382 
    343                 setTimeout( 'hmbkpRedirectOnBackupComplete();', 500 ); 
    344  
    345                 jQuery( '.hmbkp-schedule-actions' ).replaceWith( data ); 
     383                if ( data != 0 ) { 
     384 
     385                    redirect = true; 
     386 
     387                    jQuery( '.hmbkp-status' ).remove(); 
     388                    jQuery( '.hmbkp-schedule-actions' ).replaceWith( data ); 
     389 
     390                } 
     391 
     392                setTimeout( function() { 
     393                    hmbkpRedirectOnBackupComplete( schedule_id, redirect ); 
     394                }, 5000 ); 
    346395 
    347396            } 
  • backupwordpress/trunk/backupwordpress.po

    r588863 r628706  
    33"Project-Id-Version: BackUpWordPress\n" 
    44"Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2012-08-22 15:46-0000\n" 
    6 "PO-Revision-Date: 2012-08-22 15:47-0000\n" 
     5"POT-Creation-Date: 2012-11-22 15:37-0000\n" 
     6"PO-Revision-Date: 2012-11-22 15:37-0000\n" 
    77"Last-Translator: Tom Willmot <tom@humanmade.co.uk>\n" 
    88"Language-Team: Human Made Limited <support@humanmade.co.uk>\n" 
     
    1313"X-Poedit-KeywordsList: __;_e\n" 
    1414"X-Poedit-Basepath: .\n" 
     15"X-Generator: Poedit 1.5.4\n" 
    1516"X-Poedit-SearchPath-0: .\n" 
    1617 
    17 #: plugin.php:52 
     18#: plugin.php:60 
    1819msgid "BackUpWordPress requires PHP version 5.2.4 or greater." 
    1920msgstr "" 
    2021 
    21 #: plugin.php:63 
     22#: plugin.php:71 
    2223#, php-format 
    2324msgid "BackUpWordPress requires WordPress version %s or greater." 
    2425msgstr "" 
    2526 
    26 #: plugin.php:95 admin/schedule-form.php:52 
     27#: plugin.php:140 admin/schedule-form.php:54 
    2728msgid "Update" 
    2829msgstr "" 
    2930 
    30 #: plugin.php:96 
     31#: plugin.php:141 admin/actions.php:396 
    3132msgid "Cancel" 
    3233msgstr "" 
    3334 
    34 #: plugin.php:97 
     35#: plugin.php:142 
    3536msgid "" 
    3637"Are you sure you want to delete this schedule? All of it's backups will also " 
    37 "be deleted.\n" 
    38 "\n" 
    39 "'Cancel' to go back, 'OK' to delete.\n" 
    40 msgstr "" 
    41  
    42 #: plugin.php:98 
    43 msgid "" 
    44 "Are you sure you want to delete this backup?\n" 
    45 "\n" 
    46 "'Cancel' to go back, 'OK' to delete.\n" 
    47 msgstr "" 
    48  
    49 #: plugin.php:99 
    50 msgid "" 
    51 "Are you sure you want to remove this exclude rule?\n" 
    52 "\n" 
    53 "'Cancel' to go back, 'OK' to delete.\n" 
    54 msgstr "" 
    55  
    56 #: plugin.php:100 
     38"be deleted." 
     39msgstr "" 
     40 
     41#: plugin.php:142 plugin.php:143 plugin.php:144 plugin.php:145 
     42msgid "'Cancel' to go back, 'OK' to delete." 
     43msgstr "" 
     44 
     45#: plugin.php:143 
     46msgid "Are you sure you want to delete this backup?" 
     47msgstr "" 
     48 
     49#: plugin.php:144 
     50msgid "Are you sure you want to remove this exclude rule?" 
     51msgstr "" 
     52 
     53#: plugin.php:145 
    5754msgid "" 
    5855"Reducing the number of backups that are stored on this server will cause " 
    5956"some of your existing backups to be deleted, are you sure that's what you " 
    60 "want?\n" 
    61 "\n" 
    62 "'Cancel' to go back, 'OK' to delete.\n" 
    63 msgstr "" 
    64  
    65 #: admin/actions.php:163 functions/interface.php:72 functions/interface.php:82 
    66 #: functions/interface.php:92 
     57"want?" 
     58msgstr "" 
     59 
     60#: admin/actions.php:192 admin/actions.php:195 functions/interface.php:72 
     61#: functions/interface.php:82 functions/interface.php:92 
    6762msgid "BackUpWordPress has detected a problem." 
    6863msgstr "" 
    6964 
    70 #: admin/actions.php:163 
     65#: admin/actions.php:192 admin/actions.php:195 
    7166#, php-format 
    7267msgid "" 
     
    7671msgstr "" 
    7772 
    78 #: admin/actions.php:232 
     73#: admin/actions.php:265 
    7974msgid "Backup type cannot be empty" 
    8075msgstr "" 
    8176 
    82 #: admin/actions.php:235 
     77#: admin/actions.php:268 
    8378msgid "Invalid backup type" 
    8479msgstr "" 
    8580 
    86 #: admin/actions.php:245 
     81#: admin/actions.php:278 
    8782msgid "Schedule cannot be empty" 
    8883msgstr "" 
    8984 
    90 #: admin/actions.php:248 
     85#: admin/actions.php:281 
    9186msgid "Invalid schedule" 
    9287msgstr "" 
    9388 
    94 #: admin/actions.php:258 
    95 msgid "Max backups must be more than 1" 
    96 msgstr "" 
    97  
    98 #: admin/actions.php:261 
     89#: admin/actions.php:291 
     90msgid "Max backups can't be empty" 
     91msgstr "" 
     92 
     93#: admin/actions.php:294 
    9994msgid "Max backups must be a number" 
    10095msgstr "" 
    10196 
    102 #: admin/actions.php:338 
     97#: admin/actions.php:297 
     98msgid "Max backups must be greater than 0" 
     99msgstr "" 
     100 
     101#: admin/actions.php:392 
    103102#, php-format 
    104103msgid "%s didn't match any files." 
     104msgstr "" 
     105 
     106#: admin/actions.php:396 
     107msgid "Exclude" 
     108msgstr "" 
     109 
     110#: admin/actions.php:410 
     111msgid "Your BackUp Failed" 
     112msgstr "" 
     113 
     114#: admin/actions.php:412 
     115msgid "Here's the response from the server:" 
     116msgstr "" 
     117 
     118#: admin/actions.php:418 admin/schedule-form-excludes.php:119 
     119msgid "Close" 
     120msgstr "" 
     121 
     122#: admin/actions.php:419 
     123msgid "Email to Support" 
    105124msgstr "" 
    106125 
     
    149168#: admin/constants.php:8 admin/constants.php:11 admin/constants.php:14 
    150169#: admin/constants.php:17 admin/constants.php:20 admin/constants.php:23 
    151 #: admin/constants.php:26 admin/constants.php:29 admin/constants.php:32 
    152 #: admin/constants.php:35 admin/constants.php:38 admin/constants.php:41 
     170#: admin/constants.php:26 admin/constants.php:29 
    153171msgid "e.g." 
    154172msgstr "" 
     
    161179msgstr "" 
    162180 
    163 #: admin/constants.php:11 admin/constants.php:14 admin/constants.php:23 
    164 #: admin/constants.php:26 
     181#: admin/constants.php:11 admin/constants.php:14 
    165182msgid "database" 
    166183msgstr "" 
     
    173190msgstr "" 
    174191 
    175 #: admin/constants.php:14 admin/constants.php:23 admin/constants.php:26 
     192#: admin/constants.php:14 
    176193msgid "files" 
    177194msgstr "" 
    178195 
    179196#: admin/constants.php:17 
    180 #, php-format 
    181 msgid "" 
    182 "Completely disables the automatic back up. You can still back up using the " 
    183 "\"Back Up Now\" button. Defaults to %s." 
    184 msgstr "" 
    185  
    186 #: admin/constants.php:20 
    187 #, php-format 
    188 msgid "" 
    189 "Number of backups to keep, older backups will be deleted automatically when " 
    190 "a new backup is completed. Defaults to %s." 
    191 msgstr "" 
    192  
    193 #: admin/constants.php:23 admin/constants.php:26 
    194 #, php-format 
    195 msgid "Backup %1$s only, your %2$s won't be backed up. Defaults to %3$s." 
    196 msgstr "" 
    197  
    198 #: admin/constants.php:29 
    199 #, php-format 
    200 msgid "The time that the daily back up should run. Defaults to %s." 
    201 msgstr "" 
    202  
    203 #: admin/constants.php:32 
    204197#, php-format 
    205198msgid "" 
     
    208201msgstr "" 
    209202 
    210 #: admin/constants.php:35 
     203#: admin/constants.php:20 
    211204msgid "" 
    212205"Comma separated list of files or directories to exclude, the backups " 
     
    214207msgstr "" 
    215208 
    216 #: admin/constants.php:38 
     209#: admin/constants.php:23 
    217210#, php-format 
    218211msgid "The capability to use when calling %1$s. Defaults to %2$s." 
    219212msgstr "" 
    220213 
    221 #: admin/constants.php:41 
     214#: admin/constants.php:26 
    222215#, php-format 
    223216msgid "The root directory that is backed up. Defaults to %s." 
     217msgstr "" 
     218 
     219#: admin/constants.php:29 
     220#, php-format 
     221msgid "The time that your schedules should run. Defaults to %s." 
    224222msgstr "" 
    225223 
     
    266264#: admin/page.php:17 
    267265#, php-format 
    268 msgid "" 
    269 "If you need help getting things working you are more than welcome to email " 
    270 "us at %s and we'll do what we can." 
     266msgid "If your finding BackUpWordPress useful, please %s." 
     267msgstr "" 
     268 
     269#: admin/page.php:17 
     270msgid "rate it on the plugin directory" 
     271msgstr "" 
     272 
     273#: admin/page.php:19 
     274msgid "" 
     275"If you need help getting things working then check the FAQ by clicking on " 
     276"help in the top right hand corner of this page." 
    271277msgstr "" 
    272278 
    273279#: admin/schedule-form-excludes.php:7 
    274 msgid "Manage Exclude" 
     280msgid "Manage Excludes" 
    275281msgstr "" 
    276282 
    277283#: admin/schedule-form-excludes.php:13 
    278 msgid "New Exclude Rule" 
    279 msgstr "" 
    280  
    281 #: admin/schedule-form-excludes.php:17 
     284msgid "New Exclude Rule[s]" 
     285msgstr "" 
     286 
     287#: admin/schedule-form-excludes.php:19 
    282288msgid "Preview" 
    283289msgstr "" 
    284290 
    285 #: admin/schedule-form-excludes.php:27 
     291#: admin/schedule-form-excludes.php:29 
    286292msgid "Exclude Rules" 
    287293msgstr "" 
    288294 
    289 #: admin/schedule-form-excludes.php:42 
     295#: admin/schedule-form-excludes.php:44 
     296msgid "default" 
     297msgstr "" 
     298 
     299#: admin/schedule-form-excludes.php:48 
     300msgid "defined" 
     301msgstr "" 
     302 
     303#: admin/schedule-form-excludes.php:52 
    290304msgid "Remove" 
    291305msgstr "" 
    292306 
    293 #: admin/schedule-form-excludes.php:59 
     307#: admin/schedule-form-excludes.php:71 
    294308msgid "Excluded" 
    295309msgstr "" 
    296310 
    297 #: admin/schedule-form-excludes.php:60 
     311#: admin/schedule-form-excludes.php:75 
    298312msgid "Included" 
    299313msgstr "" 
    300314 
    301 #: admin/schedule-form-excludes.php:63 
     315#: admin/schedule-form-excludes.php:79 
    302316msgid "Unreadable" 
    303317msgstr "" 
    304318 
    305 #: admin/schedule-form-excludes.php:86 
     319#: admin/schedule-form-excludes.php:107 
    306320msgid "Unreadable files can't be backed up" 
    307321msgstr "" 
    308322 
    309 #: admin/schedule-form-excludes.php:92 
     323#: admin/schedule-form-excludes.php:113 
    310324#, php-format 
    311325msgid "Your site is %s. Backups will be compressed and so will be smaller." 
    312 msgstr "" 
    313  
    314 #: admin/schedule-form-excludes.php:98 
    315 msgid "Close" 
    316326msgstr "" 
    317327 
     
    340350msgstr "" 
    341351 
    342 #: admin/schedule-form.php:39 
     352#: admin/schedule-form.php:27 
     353msgid "Manual Only" 
     354msgstr "" 
     355 
     356#: admin/schedule-form.php:41 
    343357msgid "Number of backups to store on this server" 
    344358msgstr "" 
    345359 
    346 #: admin/schedule-form.php:43 
    347 msgid "" 
    348 "The number of previous backups to store on the server. past this limit the " 
    349 "oldest backups will be deleted automatically." 
    350 msgstr "" 
    351  
    352 #: admin/schedule.php:16 
     360#: admin/schedule-form.php:45 
     361msgid "" 
     362"The number of previous backups to store on the server. past this limit older " 
     363"backups will be deleted automatically." 
     364msgstr "" 
     365 
     366#: admin/schedule.php:4 
     367msgid "Backups will be compressed and should be smaller than this." 
     368msgstr "" 
     369 
     370#: admin/schedule.php:4 
     371msgid "this shouldn't take long&hellip;" 
     372msgstr "" 
     373 
     374#: admin/schedule.php:4 
     375msgid "calculating the size of your site&hellip;" 
     376msgstr "" 
     377 
     378#: admin/schedule.php:12 
     379#, php-format 
     380msgid "The next backup will be on %1$s at %2$s" 
     381msgstr "" 
     382 
     383#: admin/schedule.php:19 
    353384msgid "hourly on the hour" 
    354385msgstr "" 
    355386 
    356 #: admin/schedule.php:16 
     387#: admin/schedule.php:19 
    357388#, php-format 
    358389msgid "hourly at %s minutes past the hour" 
    359390msgstr "" 
    360391 
    361 #: admin/schedule.php:22 
     392#: admin/schedule.php:25 
    362393#, php-format 
    363394msgid "daily at %s" 
    364395msgstr "" 
    365396 
    366 #: admin/schedule.php:34 
    367 #, php-format 
    368 msgid "every 12 hours at %s &amp; %s" 
    369 msgstr "" 
    370  
    371 #: admin/schedule.php:40 
    372 #, php-format 
    373 msgid "weekly on %s at %s" 
    374 msgstr "" 
    375  
    376 #: admin/schedule.php:46 
    377 #, php-format 
    378 msgid "fortnightly on %s at %s" 
    379 msgstr "" 
    380  
    381 #: admin/schedule.php:53 
    382 #, php-format 
    383 msgid "on the %s of each month at %s" 
    384 msgstr "" 
    385  
    386 #: admin/schedule.php:59 
    387 msgid "server" 
    388 msgstr "" 
    389  
    390 #: admin/schedule.php:66 
    391 #, php-format 
    392 msgid "store the only the last backup %s" 
    393 msgstr "" 
    394  
    395 #: admin/schedule.php:72 
    396 #, php-format 
    397 msgid "don't store any backups %s" 
    398 msgstr "" 
    399  
    400 #: admin/schedule.php:78 
    401 #, php-format 
    402 msgid "store only the last %s backups %s" 
     397#: admin/schedule.php:37 
     398#, php-format 
     399msgid "every 12 hours at %1$s &amp; %2$s" 
     400msgstr "" 
     401 
     402#: admin/schedule.php:43 
     403#, php-format 
     404msgid "weekly on %1$s at %2$s" 
     405msgstr "" 
     406 
     407#: admin/schedule.php:49 
     408#, php-format 
     409msgid "fortnightly on %1$s at %2$s" 
     410msgstr "" 
     411 
     412#: admin/schedule.php:56 
     413#, php-format 
     414msgid "on the %1$s of each month at %2$s" 
     415msgstr "" 
     416 
     417#: admin/schedule.php:62 
     418msgid "manually" 
     419msgstr "" 
     420 
     421#: admin/schedule.php:68 
     422msgid "this server" 
     423msgstr "" 
     424 
     425#: admin/schedule.php:75 
     426#, php-format 
     427msgid "store the only the last backup on %s" 
     428msgstr "" 
     429 
     430#: admin/schedule.php:81 
     431#, php-format 
     432msgid "don't store any backups on %s" 
    403433msgstr "" 
    404434 
    405435#: admin/schedule.php:87 
    406436#, php-format 
    407 msgid "Backup my %s %s %s, %s. %s" 
    408 msgstr "" 
    409  
    410 #: admin/schedule.php:87 
    411 msgid "Backups will be compressed and should be smaller than this." 
     437msgid "store only the last %1$s backups on %2$s" 
     438msgstr "" 
     439 
     440#: admin/schedule.php:96 
     441#, php-format 
     442msgid "Backup my %1$s %2$s %3$s, %4$s. %5$s" 
    412443msgstr "" 
    413444 
     
    416447msgstr "" 
    417448 
     449#: classes/email.php:23 
     450msgid "" 
     451"Receive a notification email when a backup completes, if the backup is small " 
     452"enough (&lt; 10mb) then it will be attached to the email. Separate multiple " 
     453"email address's with a comma." 
     454msgstr "" 
     455 
    418456#: classes/email.php:50 
    419457#, php-format 
     
    431469msgstr "" 
    432470 
     471#: classes/email.php:129 
     472#, php-format 
     473msgid "BackUpWordPress was unable to backup your site %1$s." 
     474msgstr "" 
     475 
     476#: classes/email.php:129 
     477msgid "Here are the errors that we're encountered:" 
     478msgstr "" 
     479 
     480#: classes/email.php:129 
     481#, php-format 
     482msgid "" 
     483"If the errors above look like Martian, forward this email to %3$s and we'll " 
     484"take a look" 
     485msgstr "" 
     486 
     487#: classes/email.php:129 
     488msgid "" 
     489"Kind Regards,\n" 
     490"The Apologetic BackUpWordPress Backup Emailing Robot" 
     491msgstr "" 
     492 
    433493#: classes/email.php:137 
    434494#, php-format 
     
    436496msgstr "" 
    437497 
    438 #: classes/schedule.php:460 
    439 msgid "Backup started" 
    440 msgstr "" 
    441  
    442 #: classes/schedule.php:511 
    443 msgid "Creating zip archive" 
    444 msgstr "" 
    445  
    446 #: classes/schedule.php:517 
    447 msgid "Dumping database" 
    448 msgstr "" 
    449  
    450 #: functions/core.php:192 
     498#: classes/email.php:142 classes/email.php:151 
     499#, php-format 
     500msgid "BackUpWordPress has completed a backup of your site %1$s." 
     501msgstr "" 
     502 
     503#: classes/email.php:142 
     504msgid "The backup file should be attached to this email." 
     505msgstr "" 
     506 
     507#: classes/email.php:142 classes/email.php:151 
     508msgid "You can download the backup file by clicking the link below:" 
     509msgstr "" 
     510 
     511#: classes/email.php:142 classes/email.php:151 
     512msgid "" 
     513"Kind Regards,\n" 
     514"The Happy BackUpWordPress Backup Emailing Robot" 
     515msgstr "" 
     516 
     517#: classes/email.php:151 
     518msgid "Unfortunately the backup file was too large to attach to this email." 
     519msgstr "" 
     520 
     521#: classes/schedule.php:512 functions/interface.php:252 
     522msgid "Starting Backup" 
     523msgstr "" 
     524 
     525#: classes/schedule.php:582 
     526#, php-format 
     527msgid "Dumping Database %s" 
     528msgstr "" 
     529 
     530#: classes/schedule.php:588 
     531#, php-format 
     532msgid "Verifying Database Dump %s" 
     533msgstr "" 
     534 
     535#: classes/schedule.php:594 
     536#, php-format 
     537msgid "Creating zip archive %s" 
     538msgstr "" 
     539 
     540#: classes/schedule.php:600 
     541#, php-format 
     542msgid "Verifying Zip Archive %s" 
     543msgstr "" 
     544 
     545#: classes/schedule.php:606 
     546msgid "Finishing Backup" 
     547msgstr "" 
     548 
     549#: classes/wp-cli.php:16 
     550#, php-format 
     551msgid "BackUpWordPress may not work when php is running with %s on" 
     552msgstr "" 
     553 
     554#: classes/wp-cli.php:19 
     555msgid "Backup: Dumping database..." 
     556msgstr "" 
     557 
     558#: classes/wp-cli.php:23 
     559msgid "Backup: Zipping everything up..." 
     560msgstr "" 
     561 
     562#: classes/wp-cli.php:38 
     563msgid "Invalid backup path" 
     564msgstr "" 
     565 
     566#: classes/wp-cli.php:43 
     567msgid "Invalid root path" 
     568msgstr "" 
     569 
     570#: classes/wp-cli.php:68 
     571msgid "Backup Complete: " 
     572msgstr "" 
     573 
     574#: classes/wp-cli.php:71 
     575msgid "Backup Failed" 
     576msgstr "" 
     577 
     578#: functions/core.php:202 
    451579msgid "BackUpWordPress has setup your default schedules." 
    452580msgstr "" 
    453581 
    454 #: functions/core.php:192 
     582#: functions/core.php:202 
    455583msgid "" 
    456584"By default BackUpWordPress performs a daily backup of your database and a " 
    457 "weekly backup of your database &amp; files. You can modify these schedules " 
    458 "below." 
    459 msgstr "" 
    460  
    461 #: functions/core.php:273 
     585"weekly backup of your database &amp; files. You can modify these schedules." 
     586msgstr "" 
     587 
     588#: functions/core.php:293 
    462589#, php-format 
    463590msgid "" 
     
    469596msgstr "" 
    470597 
    471 #: functions/interface.php:28 functions/interface.php:215 
     598#: functions/interface.php:28 functions/interface.php:264 
    472599msgid "Delete" 
    473600msgstr "" 
     
    494621#, php-format 
    495622msgid "" 
    496 "%1$s is running in %2$s. Please contact your host and ask them to disable " 
    497 "%3$s." 
     623"%1$s is running in %2$s, please contact your host and ask them to disable " 
     624"it. BackUpWordPress may not work correctly whilst %3$s is on." 
    498625msgstr "" 
    499626 
     
    524651msgstr "" 
    525652 
    526 #: functions/interface.php:182 
     653#: functions/interface.php:111 
     654msgid "BackUpWordPress failed to perform the backup." 
     655msgstr "" 
     656 
     657#: functions/interface.php:111 
     658msgid "You have likely hit a memory limit." 
     659msgstr "" 
     660 
     661#: functions/interface.php:227 
    527662msgid "Database and Files" 
    528663msgstr "" 
    529664 
    530 #: functions/interface.php:185 
     665#: functions/interface.php:230 
    531666msgid "Files" 
    532667msgstr "" 
    533668 
    534 #: functions/interface.php:188 
     669#: functions/interface.php:233 
    535670msgid "Database" 
    536671msgstr "" 
    537672 
    538 #: functions/interface.php:193 
    539 msgid "Unknown" 
    540 msgstr "" 
    541  
    542 #: functions/interface.php:201 
     673#: functions/interface.php:238 
     674msgid "Legacy" 
     675msgstr "" 
     676 
     677#: functions/interface.php:252 
    543678msgid "cancel" 
    544679msgstr "" 
    545680 
    546 #: functions/interface.php:207 
     681#: functions/interface.php:256 
    547682msgid "Settings" 
    548683msgstr "" 
    549684 
    550 #: functions/interface.php:210 
     685#: functions/interface.php:259 
    551686msgid "Excludes" 
    552687msgstr "" 
    553688 
    554 #: functions/interface.php:213 
     689#: functions/interface.php:262 
    555690msgid "Run now" 
    556691msgstr "" 
    557692 
    558 #: hm-backup/hm-backup.php:892 
     693#: hm-backup/hm-backup.php:906 
     694msgid "The mysqldump file was not created" 
     695msgstr "" 
     696 
     697#: hm-backup/hm-backup.php:931 
    559698msgid "The backup file was not created" 
    560699msgstr "" 
    561700 
    562 #: hm-backup/hm-backup.php:963 
     701#: hm-backup/hm-backup.php:951 
    563702msgid "The following files are unreadable and couldn't be backed up: " 
    564703msgstr "" 
  • backupwordpress/trunk/classes/schedule.php

    r615007 r628706  
    9595 
    9696        // Set the archive filename to site name + schedule slug + date 
    97         $this->set_archive_filename( implode( '-', array( get_bloginfo( 'name' ), $this->get_id(), $this->get_type(), date( 'Y-m-d-H-i-s', current_time( 'timestamp' ) ) ) ) . '.zip' ); 
     97        $this->set_archive_filename( implode( '-', array( sanitize_title( url_shorten( home_url() ) ), $this->get_id(), $this->get_type(), date( 'Y-m-d-H-i-s', current_time( 'timestamp' ) ) ) ) . '.zip' ); 
    9898 
    9999        // Setup the schedule if it isn't set or TODO if it's changed 
     
    311311 
    312312                    // Excludes 
    313                     if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', $this->conform_dir( $file->getPathname() ) ) ) ) 
     313                    if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
    314314                        continue; 
    315315 
     
    387387     */ 
    388388    public function set_schedule_start_time( $timestamp ) { 
    389  
    390         if ( (string) (int) $timestamp !== (string) $timestamp ) 
    391             throw new Exception( 'Argument 1 for ' . __METHOD__ . ' must be a valid UNIX timestamp' ); 
    392  
    393389        $this->schedule_start_time = $timestamp; 
    394  
    395390    } 
    396391 
     
    515510 
    516511        // Mark the backup as started 
    517         $this->set_status( __( 'Backup started', 'hmbkp' ) ); 
     512        $this->set_status( __( 'Starting Backup', 'hmbkp' ) ); 
    518513 
    519514        $this->backup(); 
     
    583578        switch ( $action ) : 
    584579 
     580            case 'hmbkp_mysqldump_started' : 
     581 
     582                $this->set_status( sprintf( __( 'Dumping Database %s', 'hmbkp' ), '(<code>' . $this->get_mysqldump_method() . '</code>)' ) ); 
     583 
     584            break; 
     585 
     586            case 'hmbkp_mysqldump_verify_started' : 
     587 
     588                $this->set_status( sprintf( __( 'Verifying Database Dump %s', 'hmbkp' ), '(<code>' . $this->get_mysqldump_method() . '</code>)' ) ); 
     589 
     590            break; 
     591 
    585592            case 'hmbkp_archive_started' : 
    586593 
    587                 $this->set_status( __( 'Creating zip archive', 'hmbkp' ) ); 
     594                $this->set_status( sprintf( __( 'Creating zip archive %s', 'hmbkp' ), '(<code>' . $this->get_archive_method() . '</code>)' ) ); 
    588595 
    589596            break; 
    590597 
    591             case 'hmbkp_mysqldump_started' : 
    592  
    593                 $this->set_status( __( 'Dumping database', 'hmbkp' ) ); 
     598            case 'hmbkp_archive_verify_started' : 
     599 
     600                $this->set_status( sprintf( __( 'Verifying Zip Archive %s', 'hmbkp' ), '(<code>' . $this->get_archive_method() . '</code>)' ) ); 
    594601 
    595602            break; 
    596603 
    597604            case 'hmbkp_backup_complete' : 
     605 
     606                $this->set_status( __( 'Finishing Backup', 'hmbkp' ) ); 
    598607 
    599608                if ( $this->get_errors() ) { 
  • backupwordpress/trunk/classes/wp-cli.php

    r602026 r628706  
    1313 
    1414        // Make sure it's possible to do a backup 
    15         if ( HM_Backup::is_safe_mode_active() ) { 
    16             WP_CLI::error( __( 'Backup not possible when php is running safe_mode on', 'hmbkp' ) ); 
    17             return false; 
    18         } 
     15        if ( HM_Backup::is_safe_mode_active() ) 
     16            WP_CLI::error( sprintf( __( 'BackUpWordPress may not work when php is running with %s on', 'hmbkp' ), 'safe_mode' ) ); 
    1917 
    2018        add_action( 'hmbkp_mysqldump_started', function() { 
  • backupwordpress/trunk/functions/core.php

    r615505 r628706  
    9090 
    9191    // Version 1 to 2 
    92     if ( version_compare( '2.0' , get_option( 'hmbkp_plugin_version' ), '>' ) ) { 
     92    if ( get_option( 'hmbkp_plugin_version' ) && version_compare( '2.0' , get_option( 'hmbkp_plugin_version' ), '>' ) ) { 
    9393 
    9494        /** 
     
    149149 
    150150    // Every update 
    151     if ( version_compare( HMBKP_VERSION, get_option( 'hmbkp_plugin_version' ), '>' ) ) { 
     151    if ( get_option( 'hmbkp_plugin_version' ) && version_compare( HMBKP_VERSION, get_option( 'hmbkp_plugin_version' ), '>' ) ) { 
    152152 
    153153        hmbkp_deactivate(); 
     
    156156        if ( file_exists( hmbkp_path() . '/.htaccess' ) ) 
    157157            unlink( hmbkp_path() . '/.htaccess' ); 
     158 
     159        // Force index.html to be re-written 
     160        if ( file_exists( hmbkp_path() . '/index.html' ) ) 
     161            unlink( hmbkp_path() . '/index.html' ); 
    158162 
    159163    } 
     
    264268        $path = HMBKP_PATH; 
    265269 
    266     // If the dir doesn't exist or isn't writable then use wp-content/backups instead 
    267     if ( ( ! $path || ! is_writable( $path ) ) && HM_Backup::conform_dir( $path ) !== hmbkp_path_default() ) 
     270    // If the dir doesn't exist or isn't writable then use the default path instead instead 
     271    if ( ( ! $path || ( is_dir( $path ) && ! is_writable( $path ) ) || ( ! is_dir( $path ) && ! is_writable( dirname( $path ) ) ) ) && get_option( 'hmbkp_path' ) !== get_option( 'hmbkp_default_path' ) ) 
    268272        $path = hmbkp_path_default(); 
    269273 
    270274    // Create the backups directory if it doesn't exist 
    271     if ( is_writable( dirname( $path ) ) && ! is_dir( $path ) ) 
     275    if ( ! is_dir( $path ) && is_writable( dirname( $path ) ) ) 
    272276        mkdir( $path, 0755 ); 
    273277 
     278    // If the path has changed then cache it 
    274279    if ( get_option( 'hmbkp_path' ) !== $path ) 
    275280        update_option( 'hmbkp_path', $path ); 
     
    281286        file_put_contents( $index, '' ); 
    282287 
     288    // Protect the directory with a .htaccess file on Apache servers 
     289    if ( ( require_once( ABSPATH . '/wp-admin/includes/misc.php' ) ) && got_mod_rewrite() ) { 
     290 
     291        $htaccess = $path . '/.htaccess'; 
     292 
     293        $contents[] = '# ' . sprintf( __( 'This %s file ensures that other people cannot download your backup files.', 'hmbkp' ), '.htaccess' ); 
     294        $contents[] = ''; 
     295        $contents[] = '<IfModule mod_rewrite.c>'; 
     296        $contents[] = 'RewriteEngine On'; 
     297        $contents[] = 'RewriteCond %{QUERY_STRING} !key=' . HMBKP_SECURE_KEY; 
     298        $contents[] = 'RewriteRule (.*) - [F]'; 
     299        $contents[] = '</IfModule>'; 
     300        $contents[] = ''; 
     301 
     302        if ( ! file_exists( $htaccess ) && is_writable( $path ) ) 
     303            insert_with_markers( $htaccess, 'BackUpWordPress', $contents ); 
     304 
     305    } 
     306 
    283307    return HM_Backup::conform_dir( $path ); 
    284308 
     
    291315 */ 
    292316function hmbkp_path_default() { 
    293     return HM_Backup::conform_dir( WP_CONTENT_DIR . '/backups' ); 
     317 
     318    $path = get_option( 'hmbkp_default_path' ); 
     319 
     320    if ( empty( $path ) ) { 
     321 
     322        $path = HM_Backup::conform_dir( trailingslashit( WP_CONTENT_DIR ) . substr( md5( time() ), 0, 10 ) . '-backups' ); 
     323 
     324        update_option( 'hmbkp_default_path', $path ); 
     325 
     326    } 
     327 
     328    $upload_dir = wp_upload_dir(); 
     329 
     330    // If the backups dir can't be created in WP_CONTENT_DIR then fallback to uploads 
     331    if ( ( ! is_dir( $path ) && ! is_writable( dirname( $path ) ) ) || ( is_dir( $path ) && ! is_writable( $path ) ) && strpos( $path, $upload_dir['basedir'] ) === false ) { 
     332 
     333        hmbkp_path_move( $path, $path = HM_Backup::conform_dir( trailingslashit( $upload_dir['basedir'] ) . substr( md5( time() ), 0, 10 ) . '-backups' ) ); 
     334 
     335        update_option( 'hmbkp_default_path', $path ); 
     336 
     337    } 
     338 
     339    return $path; 
    294340} 
    295341 
     
    304350function hmbkp_path_move( $from, $to ) { 
    305351 
     352    if ( ! untrailingslashit( $from ) || ! untrailingslashit( $to ) ) 
     353        return; 
     354 
    306355    // Create the custom backups directory if it doesn't exist 
    307356    if ( is_writable( dirname( $to ) ) && ! is_dir( $to ) ) 
    308357        mkdir( $to, 0755 ); 
    309358 
    310     if ( ! is_dir( $to ) || ! is_writable( $to ) || ! is_dir( $from ) ) 
     359    if ( ! is_dir( $to ) || ! is_writable( $to ) ) 
    311360        return false; 
    312361 
     362    update_option( 'hmbkp_path', $to ); 
     363 
    313364    hmbkp_cleanup(); 
     365 
     366    if ( ! is_dir( $from ) ) 
     367        return false; 
    314368 
    315369    if ( $handle = opendir( $from ) ) : 
     
    317371        while ( false !== ( $file = readdir( $handle ) ) ) 
    318372            if ( $file !== '.' && $file !== '..' ) 
    319                 rename( trailingslashit( $from ) . $file, trailingslashit( $to ) . $file ); 
     373                if ( ! @rename( trailingslashit( $from ) . $file, trailingslashit( $to ) . $file ) ) 
     374                    copy( trailingslashit( $from ) . $file, trailingslashit( $to ) . $file ); 
    320375 
    321376        closedir( $handle ); 
     
    335390function hmbkp_possible() { 
    336391 
    337     if ( ! is_writable( hmbkp_path() ) || ! is_dir( hmbkp_path() ) || HM_Backup::is_safe_mode_active() ) 
     392    if ( ! is_writable( hmbkp_path() ) || ! is_dir( hmbkp_path() ) ) 
    338393        return false; 
    339394 
     
    364419 
    365420} 
     421 
     422/** 
     423 * Handles changes in the defined Constants 
     424 * that users can define to control advanced 
     425 * settings 
     426 */ 
     427function hmbkp_constant_changes() { 
     428 
     429    // If a custom backup path has been set or changed 
     430    if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && HM_Backup::conform_dir( HMBKP_PATH ) !== ( $from = HM_Backup::conform_dir( get_option( 'hmbkp_path' ) ) ) ) 
     431      hmbkp_path_move( $from, HMBKP_PATH ); 
     432 
     433    // If a custom backup path has been removed 
     434    if ( ( ( defined( 'HMBKP_PATH' ) && ! HMBKP_PATH ) || ! defined( 'HMBKP_PATH' ) && hmbkp_path_default() !== ( $from = HM_Backup::conform_dir( get_option( 'hmbkp_path' ) ) ) ) ) 
     435      hmbkp_path_move( $from, hmbkp_path_default() ); 
     436 
     437    // If the custom path has changed and the new directory isn't writable 
     438    if ( defined( 'HMBKP_PATH' ) && HMBKP_PATH && ! is_writable( HMBKP_PATH ) && get_option( 'hmbkp_path' ) === HMBKP_PATH && is_dir( HMBKP_PATH ) ) 
     439        hmbkp_path_move( HMBKP_PATH, hmbkp_path_default() ); 
     440 
     441} 
  • backupwordpress/trunk/functions/interface.php

    r615007 r628706  
    4545    if ( ! is_dir( hmbkp_path() ) ) : 
    4646 
    47         function hmbkp_path_exists_warning() { 
    48             $php_user = exec( 'whoami' ); 
     47        function hmbkp_path_exists_warning() { 
     48              $php_user = exec( 'whoami' ); 
    4949            $php_group = reset( explode( ' ', exec( 'groups' ) ) ); 
    50             echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress is almost ready.', 'hmbkp' ) . '</strong> ' . sprintf( __( 'The backups directory can\'t be created because your %1$s directory isn\'t writable, run %2$s or %3$s or create the folder yourself.', 'hmbkp' ), '<code>wp-content</code>', '<code>chown ' . $php_user . ':' . $php_group . ' ' . WP_CONTENT_DIR . '</code>', '<code>chmod 777 ' . WP_CONTENT_DIR . '</code>' ) . '</p></div>'; 
    51         } 
    52         add_action( 'admin_notices', 'hmbkp_path_exists_warning' ); 
     50            echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress is almost ready.', 'hmbkp' ) . '</strong> ' . sprintf( __( 'The backups directory can\'t be created because your %1$s directory isn\'t writable, run %2$s or %3$s or create the folder yourself.', 'hmbkp' ), '<code>wp-content</code>', '<code>chown ' . $php_user . ':' . $php_group . ' ' . WP_CONTENT_DIR . '</code>', '<code>chmod 777 ' . WP_CONTENT_DIR . '</code>' ) . '</p></div>'; 
     51        } 
     52        add_action( 'admin_notices', 'hmbkp_path_exists_warning' ); 
    5353 
    5454    endif; 
     
    5757    if ( is_dir( hmbkp_path() ) && ! is_writable( hmbkp_path() ) ) : 
    5858 
    59         function hmbkp_writable_path_warning() { 
     59        function hmbkp_writable_path_warning() { 
    6060            $php_user = exec( 'whoami' ); 
    6161            $php_group = reset( explode( ' ', exec( 'groups' ) ) ); 
    62             echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress is almost ready.', 'hmbkp' ) . '</strong> ' . sprintf( __( 'Your backups directory isn\'t writable, run %1$s or %2$s or set the permissions yourself.', 'hmbkp' ), '<code>chown -R ' . esc_attr( $php_user ) . ':' . esc_attr( $php_group ) . ' ' . esc_attr( hmbkp_path() ) . '</code>', '<code>chmod -R 777 ' . esc_attr( hmbkp_path() ) . '</code>' ) . '</p></div>'; 
    63         } 
    64         add_action( 'admin_notices', 'hmbkp_writable_path_warning' ); 
     62            echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress is almost ready.', 'hmbkp' ) . '</strong> ' . sprintf( __( 'Your backups directory isn\'t writable, run %1$s or %2$s or set the permissions yourself.', 'hmbkp' ), '<code>chown -R ' . esc_attr( $php_user ) . ':' . esc_attr( $php_group ) . ' ' . esc_attr( hmbkp_path() ) . '</code>', '<code>chmod -R 777 ' . esc_attr( hmbkp_path() ) . '</code>' ) . '</p></div>'; 
     63        } 
     64        add_action( 'admin_notices', 'hmbkp_writable_path_warning' ); 
    6565 
    6666    endif; 
     
    6969    if ( HM_Backup::is_safe_mode_active() ) : 
    7070 
    71         function hmbkp_safe_mode_warning() { 
    72             echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is running in %2$s. Please contact your host and ask them to disable %3$s.', 'hmbkp' ), '<code>PHP</code>', sprintf( '<a href="%1$s">%2$s</a>', __( 'http://php.net/manual/en/features.safe-mode.php', 'hmbkp' ), __( 'Safe Mode', 'hmbkp' ) ), '<code>' . __( 'Safe Mode', 'hmbkp' ) . '</code>' ) . '</p></div>'; 
    73         } 
    74         add_action( 'admin_notices', 'hmbkp_safe_mode_warning' ); 
     71        function hmbkp_safe_mode_warning() { 
     72            echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is running in %2$s, please contact your host and ask them to disable it. BackUpWordPress may not work correctly whilst %3$s is on.', 'hmbkp' ), '<code>PHP</code>', sprintf( '<a href="%1$s">%2$s</a>', __( 'http://php.net/manual/en/features.safe-mode.php', 'hmbkp' ), __( 'Safe Mode', 'hmbkp' ) ), '<code>' . __( 'Safe Mode', 'hmbkp' ) . '</code>' ) . '</p></div>'; 
     73        } 
     74        add_action( 'admin_notices', 'hmbkp_safe_mode_warning' ); 
    7575 
    7676    endif; 
     
    166166        $schedule->set_excludes( $excludes ); 
    167167 
    168     $files = $schedule->$file_method(); 
    169  
    170     if ( $files ) : ?> 
     168    $exclude_string = $schedule->exclude_string( 'regex' ); ?> 
    171169 
    172170    <ul class="hmbkp_file_list code"> 
    173171 
    174         <?php foreach( $files as $file ) : 
     172        <?php foreach( $schedule->get_files() as $file ) : 
    175173 
    176174            if ( ! is_null( $excludes ) && strpos( $file, str_ireplace( $schedule->get_root(), '', $schedule->get_path() ) ) !== false ) 
    177                 continue; ?> 
    178  
    179             <?php if ( $file->isDir() ) { ?> 
    180  
    181         <li title="<?php echo esc_attr( HM_Backup::conform_dir( trailingslashit( $file->getPathName() ) ) ); ?>"><?php echo trailingslashit( str_ireplace( HM_Backup::conform_dir( trailingslashit( $schedule->get_root() ) ), '', HM_Backup::conform_dir( $file->getPathName() ) ) ); ?></li> 
     175                continue; 
     176 
     177            // Skip directory browsing dots 
     178            if ( $file === '.' || $file === '..' ) 
     179                continue; 
     180 
     181            // Show only unreadable files 
     182            if ( $file_method === 'get_unreadable_files' && $file->isReadable() ) 
     183                continue; 
     184 
     185            // Skip unreadable files 
     186            elseif ( $file_method !== 'get_unreadable_files' && ! $file->isReadable() ) 
     187                continue; 
     188 
     189            // Show only included files 
     190            if ( $file_method === 'get_included_files' ) 
     191                if ( $exclude_string && preg_match( '(' . $exclude_string . ')', str_ireplace( trailingslashit( $schedule->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
     192                    continue; 
     193 
     194            // Show only excluded files 
     195            if ( $file_method === 'get_excluded_files' ) 
     196                if ( ! $exclude_string || ! preg_match( '(' .  $exclude_string . ')', str_ireplace( trailingslashit( $schedule->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
     197                    continue; 
     198 
     199            if ( $file->isDir() ) { ?> 
     200 
     201        <li title="<?php echo esc_attr( HM_Backup::conform_dir( trailingslashit( $file->getPathName() ) ) ); ?>"><?php echo esc_html( ltrim( trailingslashit( str_ireplace( HM_Backup::conform_dir( trailingslashit( $schedule->get_root() ) ), '', HM_Backup::conform_dir( $file->getPathName() ) ) ), '/' ) ); ?></li> 
    182202 
    183203            <?php } else { ?> 
    184204 
    185         <li title="<?php echo esc_attr( HM_Backup::conform_dir( $file->getPathName() ) ); ?>"><?php echo str_ireplace( HM_Backup::conform_dir( trailingslashit( $schedule->get_root() ) ), '', HM_Backup::conform_dir( $file->getPathName() ) ); ?></li> 
     205        <li title="<?php echo esc_attr( HM_Backup::conform_dir( $file->getPathName() ) ); ?>"><?php echo esc_html( ltrim( str_ireplace( HM_Backup::conform_dir( trailingslashit( $schedule->get_root() ) ), '', HM_Backup::conform_dir( $file->getPathName() ) ), '/' ) ); ?></li> 
    186206 
    187207            <?php } 
     
    191211    </ul> 
    192212 
    193     <?php endif; 
    194  
    195 } 
     213<?php } 
    196214 
    197215 
     
    230248 * @return void 
    231249 */ 
    232 function hmbkp_schedule_actions( HMBKP_Scheduled_Backup $schedule ) { 
    233  
    234     if ( $status = $schedule->get_status() ) { ?> 
    235  
    236         <span class="hmbkp-status"><?php echo $status; ?> <a href="<?php echo add_query_arg( array( 'action' => 'hmbkp_cancel', 'hmbkp_schedule_id' => $schedule->get_id() ), HMBKP_ADMIN_URL ); ?>"><?php _e( 'cancel', 'hmbkp' ); ?></a></span> 
    237  
    238     <?php } else { ?> 
     250function hmbkp_schedule_actions( HMBKP_Scheduled_Backup $schedule ) { ?> 
     251 
     252    <span class="hmbkp-status"><?php echo $schedule->get_status() ? $schedule->get_status() : __( 'Starting Backup', 'hmbkp' ); ?> <a href="<?php echo add_query_arg( array( 'action' => 'hmbkp_cancel', 'hmbkp_schedule_id' => $schedule->get_id() ), HMBKP_ADMIN_URL ); ?>"><?php _e( 'cancel', 'hmbkp' ); ?></a></span> 
    239253 
    240254    <div class="hmbkp-schedule-actions row-actions"> 
     
    252266    </div> 
    253267 
    254     <?php } 
    255  
    256 } 
     268<?php } 
    257269 
    258270/** 
  • backupwordpress/trunk/hm-backup/hm-backup.php

    r614508 r628706  
    44 * Generic file and database backup class 
    55 * 
    6  * @version 2.0 
     6 * @version 2.1 
    77 */ 
    88class HM_Backup { 
     
    191191    public static function get_home_path() { 
    192192 
    193         $home = get_option( 'home' ); 
    194         $siteurl = get_option( 'siteurl' ); 
     193        $home_url = home_url(); 
     194        $site_url = site_url(); 
    195195 
    196196        $home_path = ABSPATH; 
    197197 
    198         if ( ! empty( $home ) && $home !== $siteurl ) 
    199             $home_path = trailingslashit( substr( ABSPATH, 0, strrpos( ABSPATH, str_replace( $home, '', $siteurl ) ) ) ); 
     198        if ( $home_url !== $site_url ) 
     199            $home_path = trailingslashit( substr( ABSPATH, 0, strrpos( ABSPATH, str_replace( $home_url, '', $site_url ) ) ) ); 
    200200 
    201201        return self::conform_dir( $home_path ); 
     
    271271 
    272272        if ( empty( $this->archive_filename ) ) 
    273             $this->set_archive_filename( implode( '-', array( get_bloginfo( 'name' ), 'backup', date( 'Y-m-d-H-i-s', current_time( 'timestamp' ) ) ) ) . '.zip' ); 
     273            $this->set_archive_filename( implode( '-', array( sanitize_title( url_shorten( home_url() ) ), 'backup', date( 'Y-m-d-H-i-s', current_time( 'timestamp' ) ) ) ) . '.zip' ); 
    274274 
    275275        return $this->archive_filename; 
     
    351351 
    352352        if ( empty( $this->root ) ) 
    353             $this->set_root( $this->conform_dir( self::get_home_path() ) ); 
     353            $this->set_root( HM_Backup::conform_dir( self::get_home_path() ) ); 
    354354 
    355355        return $this->root; 
     
    369369            throw new Exception( 'Invalid root path <code>' . $path . '</code> must be a valid directory path' ); 
    370370 
    371         $this->root = $this->conform_dir( $path ); 
     371        $this->root = HM_Backup::conform_dir( $path ); 
    372372 
    373373    } 
     
    382382 
    383383        if ( empty( $this->path ) ) 
    384             $this->set_path( $this->conform_dir( WP_CONTENT_DIR . '/backups' ) ); 
     384            $this->set_path( HM_Backup::conform_dir( hmbkp_path_default() ) ); 
    385385 
    386386        return $this->path; 
     
    400400            throw new Exception( 'Invalid backup path <code>' . $path . '</code> must be a non empty (string)' ); 
    401401 
    402         $this->path = $this->conform_dir( $path ); 
     402        $this->path = HM_Backup::conform_dir( $path ); 
    403403 
    404404    } 
     
    512512        // Find the one which works 
    513513        foreach ( $mysqldump_locations as $location ) 
    514             if ( is_executable( $this->conform_dir( $location ) ) ) 
     514            if ( is_executable( HM_Backup::conform_dir( $location ) ) ) 
    515515                $this->set_mysqldump_command_path( $location ); 
    516516 
     
    573573        // Find the one which works 
    574574        foreach ( $zip_locations as $location ) 
    575             if ( is_executable( $this->conform_dir( $location ) ) ) 
     575            if ( is_executable( HM_Backup::conform_dir( $location ) ) ) 
    576576                $this->set_zip_command_path( $location ); 
    577577 
     
    632632    public function dump_database() { 
    633633 
    634         $this->do_action( 'hmbkp_mysqldump_started' ); 
    635  
    636634        if ( $this->get_mysqldump_command_path() ) 
    637635            $this->mysqldump(); 
     
    647645 
    648646        $this->mysqldump_method = 'mysqldump'; 
     647 
     648        $this->do_action( 'hmbkp_mysqldump_started' ); 
    649649 
    650650        $host = reset( explode( ':', DB_HOST ) ); 
     
    700700 
    701701        $this->mysqldump_method = 'mysqldump_fallback'; 
     702 
     703        $this->do_action( 'hmbkp_mysqldump_started' ); 
    702704 
    703705        $this->db = mysql_pconnect( DB_HOST, DB_USER, DB_PASSWORD ); 
     
    742744    public function archive() { 
    743745 
    744         $this->do_action( 'hmbkp_archive_started' ); 
    745  
    746746        // Do we have the path to the zip command 
    747747        if ( $this->get_zip_command_path() ) 
     
    773773        $this->archive_method = 'zip'; 
    774774 
     775        $this->do_action( 'hmbkp_archive_started' ); 
     776 
    775777        // Zip up $this->root with excludes 
    776778        if ( $this->get_type() !== 'database' && $this->exclude_string( 'zip' ) ) 
    777             $this->warning( $this->archive_method, shell_exec( 'cd ' . escapeshellarg( $this->get_root() ) . ' && ' . escapeshellarg( $this->get_zip_command_path() ) . ' -rq ' . escapeshellarg( $this->get_archive_filepath() ) . ' ./' . ' -x ' . $this->exclude_string( 'zip' ) . ' 2>&1' ) ); 
     779            $this->warning( $this->archive_method, shell_exec( 'cd ' . escapeshellarg( $this->get_root() ) . ' && ' . escapeshellcmd( $this->get_zip_command_path() ) . ' -rq ' . escapeshellarg( $this->get_archive_filepath() ) . ' ./' . ' -x ' . $this->exclude_string( 'zip' ) . ' 2>&1' ) ); 
    778780 
    779781        // Zip up $this->root without excludes 
    780782        elseif ( $this->get_type() !== 'database' ) 
    781             $this->warning( $this->archive_method, shell_exec( 'cd ' . escapeshellarg( $this->get_root() ) . ' && ' . escapeshellarg( $this->get_zip_command_path() ) . ' -rq ' . escapeshellarg( $this->get_archive_filepath() ) . ' ./' . ' 2>&1' ) ); 
     783            $this->warning( $this->archive_method, shell_exec( 'cd ' . escapeshellarg( $this->get_root() ) . ' && ' . escapeshellcmd( $this->get_zip_command_path() ) . ' -rq ' . escapeshellarg( $this->get_archive_filepath() ) . ' ./' . ' 2>&1' ) ); 
    782784 
    783785        // Add the database dump to the archive 
    784786        if ( $this->get_type() !== 'file' ) 
    785             $this->warning( $this->archive_method, shell_exec( 'cd ' . escapeshellarg( $this->get_path() ) . ' && ' . escapeshellarg( $this->get_zip_command_path() ) . ' -uq ' . escapeshellarg( $this->get_archive_filepath() ) . ' ' . escapeshellarg( $this->get_database_dump_filename() ) . ' 2>&1' ) ); 
     787            $this->warning( $this->archive_method, shell_exec( 'cd ' . escapeshellarg( $this->get_path() ) . ' && ' . escapeshellcmd( $this->get_zip_command_path() ) . ' -uq ' . escapeshellarg( $this->get_archive_filepath() ) . ' ' . escapeshellarg( $this->get_database_dump_filename() ) . ' 2>&1' ) ); 
    786788 
    787789        $this->verify_archive(); 
     
    801803        $this->archive_method = 'ziparchive'; 
    802804 
     805        $this->do_action( 'hmbkp_archive_started' ); 
     806 
    803807        $zip = new ZipArchive(); 
    804808 
     
    818822 
    819823                // Excludes 
    820                 if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', $this->conform_dir( $file->getPathname() ) ) ) ) 
     824                if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
    821825                    continue; 
    822826 
    823827                if ( $file->isDir() ) 
    824                     $zip->addEmptyDir( trailingslashit( str_ireplace( trailingslashit( $this->get_root() ), '', $this->conform_dir( $file->getPathname() ) ) ) ); 
     828                    $zip->addEmptyDir( trailingslashit( str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ); 
    825829 
    826830                elseif ( $file->isFile() ) 
    827                     $zip->addFile( $file->getPathname(), str_ireplace( trailingslashit( $this->get_root() ), '', $this->conform_dir( $file->getPathname() ) ) ); 
     831                    $zip->addFile( $file->getPathname(), str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ); 
    828832 
    829833                if ( ++$files_added % 500 === 0 ) 
     
    864868        $this->errors_to_warnings( $this->archive_method ); 
    865869        $this->archive_method = 'pclzip'; 
     870 
     871        $this->do_action( 'hmbkp_archive_started' ); 
    866872 
    867873        global $_hmbkp_exclude_string; 
     
    891897    public function verify_mysqldump() { 
    892898 
     899        $this->do_action( 'hmbkp_mysqldump_verify_started' ); 
     900 
    893901        // If we've already passed then no need to check again 
    894902        if ( ! empty( $this->mysqldump_verified ) ) 
     
    914922    public function verify_archive() { 
    915923 
     924        $this->do_action( 'hmbkp_archive_verify_started' ); 
     925 
    916926        // If we've already passed then no need to check again 
    917927        if ( ! empty( $this->archive_verified ) ) 
     
    924934        if ( $this->get_zip_command_path() && $this->get_archive_method() === 'zip' ) { 
    925935 
    926             $verify = shell_exec( escapeshellarg( $this->get_zip_command_path() ) . ' -T ' . escapeshellarg( $this->get_archive_filepath() ) . ' 2> /dev/null' ); 
     936            $verify = shell_exec( escapeshellcmd( $this->get_zip_command_path() ) . ' -T ' . escapeshellarg( $this->get_archive_filepath() ) . ' 2> /dev/null' ); 
    927937 
    928938            if ( strpos( $verify, 'OK' ) === false ) 
     
    9911001                continue; 
    9921002 
    993             $filepath = $this->conform_dir( trailingslashit( $dir ) . $file ); 
     1003            $filepath = HM_Backup::conform_dir( trailingslashit( $dir ) . $file ); 
    9941004            $file = str_ireplace( trailingslashit( $this->get_root() ), '', $filepath ); 
    9951005 
     
    10261036 
    10271037            // Excludes 
    1028             if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', $this->conform_dir( $file->getPathname() ) ) ) ) 
     1038            if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
    10291039                continue; 
    10301040 
     
    10341044 
    10351045        return $this->included_files; 
     1046 
     1047    } 
     1048 
     1049    /** 
     1050     * Return the number of files included in the backup 
     1051     * 
     1052     * @access public 
     1053     * @return array 
     1054     */ 
     1055    public function get_included_file_count() { 
     1056 
     1057        if ( ! empty( $this->included_file_count ) ) 
     1058            return $this->included_file_count; 
     1059 
     1060        $this->included_file_count = 0; 
     1061 
     1062        $excludes = $this->exclude_string( 'regex' ); 
     1063 
     1064        foreach ( $this->get_files() as $file ) { 
     1065 
     1066            if ( $file === '.' || $file === '..' || ! $file->isReadable() ) 
     1067                continue; 
     1068 
     1069            // Excludes 
     1070            if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
     1071                continue; 
     1072 
     1073            $this->included_file_count++; 
     1074 
     1075        } 
     1076 
     1077        return $this->included_file_count; 
    10361078 
    10371079    } 
     
    10581100 
    10591101            // Excludes 
    1060             if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', $this->conform_dir( $file->getPathname() ) ) ) ) 
     1102            if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
    10611103                $this->excluded_files[] = $file; 
    10621104 
     
    10641106 
    10651107        return $this->excluded_files; 
     1108 
     1109    } 
     1110 
     1111    /** 
     1112     * Return the number of files excluded from the backup 
     1113     * 
     1114     * @access public 
     1115     * @return array 
     1116     */ 
     1117    public function get_excluded_file_count() { 
     1118 
     1119        if ( ! empty( $this->excluded_file_count ) ) 
     1120            return $this->excluded_file_count; 
     1121 
     1122        $this->excluded_file_count = 0; 
     1123 
     1124        $excludes = $this->exclude_string( 'regex' ); 
     1125 
     1126        foreach ( $this->get_files() as $file ) { 
     1127 
     1128            if ( $file === '.' || $file === '..' || ! $file->isReadable() ) 
     1129                continue; 
     1130 
     1131            // Excludes 
     1132            if ( $excludes && preg_match( '(' . $excludes . ')', str_ireplace( trailingslashit( $this->get_root() ), '', HM_Backup::conform_dir( $file->getPathname() ) ) ) ) 
     1133                $this->excluded_file_count++; 
     1134 
     1135        } 
     1136 
     1137        return $this->excluded_file_count; 
    10661138 
    10671139    } 
     
    10911163 
    10921164        return $this->unreadable_files; 
     1165 
     1166    } 
     1167 
     1168    /** 
     1169     * Return the number of unreadable files. 
     1170     * 
     1171     * @access public 
     1172     * @return array 
     1173     */ 
     1174    public function get_unreadable_file_count() { 
     1175 
     1176        if ( ! empty( $this->get_unreadable_file_count ) ) 
     1177            return $this->get_unreadable_file_count; 
     1178 
     1179        $this->get_unreadable_file_count = 0; 
     1180 
     1181        foreach ( $this->get_files() as $file ) { 
     1182 
     1183            if ( $file === '.' || $file === '..' ) 
     1184                continue; 
     1185 
     1186            if ( ! $file->isReadable() ) 
     1187                $this->get_unreadable_file_count++; 
     1188 
     1189        } 
     1190 
     1191        return $this->get_unreadable_file_count; 
    10931192 
    10941193    } 
     
    11561255     * @return string 
    11571256     */ 
    1158     protected function exclude_string( $context = 'zip' ) { 
     1257    public function exclude_string( $context = 'zip' ) { 
    11591258 
    11601259        // Return a comma separated list by default 
     
    11931292 
    11941293            // Strip $this->root and conform 
    1195             $rule = str_ireplace( $this->get_root(), '', untrailingslashit( $this->conform_dir( $rule ) ) ); 
     1294            $rule = str_ireplace( $this->get_root(), '', untrailingslashit( HM_Backup::conform_dir( $rule ) ) ); 
    11961295 
    11971296            // Strip the preceeding slash 
  • backupwordpress/trunk/languages/hmbkp-de_DE.po

    r588863 r628706  
     1# Translation of 2.x in German 
     2# This file is distributed under the same license as the 2.x package. 
    13msgid "" 
    24msgstr "" 
    3 "Project-Id-Version: BackUpWordPress\n" 
    4 "Report-Msgid-Bugs-To: \n" 
    5 "POT-Creation-Date: 2012-08-22 15:49+0100\n" 
    6 "PO-Revision-Date: 2012-08-22 15:49+0100\n" 
    7 "Last-Translator: Flo Edelmann <florian-edelmann@online.de>\n" 
    8 "Language-Team: Flo Edelmann <florian-edelmann@online.de>\n" 
    9 "Language: \n" 
     5"PO-Revision-Date: 2012-11-22 15:38:29+0000\n" 
    106"MIME-Version: 1.0\n" 
    117"Content-Type: text/plain; charset=UTF-8\n" 
    128"Content-Transfer-Encoding: 8bit\n" 
    13 "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2\n" 
    14 "X-Poedit-Basepath: ..\n" 
    15 "X-Poedit-Language: German\n" 
    16 "X-Poedit-Country: GERMANY\n" 
    179"Plural-Forms: nplurals=2; plural=n != 1;\n" 
    18 "X-Poedit-SourceCharset: utf-8\n" 
    19 "X-Poedit-SearchPath-0: .\n" 
    20  
    21 #: plugin.php:52 
    22 msgid "BackUpWordPress requires PHP version 5.2.4 or greater." 
    23 msgstr "BackUpWordPress benötigt PHP Version 5.2.4 oder höher." 
    24  
    25 #: plugin.php:63 
    26 #, php-format 
    27 msgid "BackUpWordPress requires WordPress version %s or greater." 
    28 msgstr "BackUpWordPress benötigt WordPress Version %s oder größer." 
    29  
    30 #: plugin.php:95 
    31 #: admin/schedule-form.php:52 
    32 msgid "Update" 
    33 msgstr "Update" 
    34  
    35 #: plugin.php:96 
    36 msgid "Cancel" 
    37 msgstr "Abbrechen" 
    38  
    39 #: plugin.php:97 
     10"X-Generator: GlotPress/0.1\n" 
     11"Project-Id-Version: 2.x\n" 
     12 
     13#: admin/actions.php:419 
     14msgid "Email to Support" 
     15msgstr "" 
     16 
     17#: admin/page.php:17 
     18msgid "If your finding BackUpWordPress useful, please %s." 
     19msgstr "" 
     20 
     21#: admin/schedule-form-excludes.php:13 
     22msgid "New Exclude Rule[s]" 
     23msgstr "" 
     24 
     25#: admin/actions.php:410 
     26msgid "Your BackUp Failed" 
     27msgstr "" 
     28 
     29#: admin/actions.php:412 
     30msgid "Here's the response from the server:" 
     31msgstr "" 
     32 
     33#: admin/page.php:19 
     34msgid "If you need help getting things working then check the FAQ by clicking on help in the top right hand corner of this page." 
     35msgstr "" 
     36 
     37#: admin/page.php:17 
     38msgid "rate it on the plugin directory" 
     39msgstr "" 
     40 
     41#: classes/schedule.php:512 functions/interface.php:252 
     42msgid "Starting Backup" 
     43msgstr "" 
     44 
     45#: classes/schedule.php:582 
     46msgid "Dumping Database %s" 
     47msgstr "" 
     48 
     49#: classes/schedule.php:588 
     50msgid "Verifying Database Dump %s" 
     51msgstr "" 
     52 
     53#: classes/schedule.php:594 
     54msgid "Creating zip archive %s" 
     55msgstr "" 
     56 
     57#: classes/schedule.php:600 
     58msgid "Verifying Zip Archive %s" 
     59msgstr "" 
     60 
     61#: classes/schedule.php:606 
     62msgid "Finishing Backup" 
     63msgstr "" 
     64 
     65#: classes/wp-cli.php:16 
     66msgid "BackUpWordPress may not work when php is running with %s on" 
     67msgstr "" 
     68 
     69#: functions/interface.php:72 
     70msgid "%1$s is running in %2$s, please contact your host and ask them to disable it. BackUpWordPress may not work correctly whilst %3$s is on." 
     71msgstr "" 
     72 
     73#: admin/constants.php:29 
     74msgid "The time that your schedules should run. Defaults to %s." 
     75msgstr "Die Dauer, über die deine geplanten Aufgaben laufen sollen. Standard: %s." 
     76 
     77#: plugin.php:142 
     78msgid "Are you sure you want to delete this schedule? All of it's backups will also be deleted." 
     79msgstr "Bist du sicher, dass dieser Plan gelöscht werden soll? Alle zugehörigen Backups werden mit diesem Schritt auch gelöscht." 
     80 
     81#: plugin.php:142 plugin.php:143 plugin.php:144 plugin.php:145 
     82msgid "'Cancel' to go back, 'OK' to delete." 
     83msgstr "'Abbrechen' zum Zurückkehren, 'OK' zum Löschen." 
     84 
     85#: plugin.php:143 
     86msgid "Are you sure you want to delete this backup?" 
     87msgstr "Bist du sicher, dass du dieses Backup löschen möchtest?" 
     88 
     89#: plugin.php:144 
     90msgid "Are you sure you want to remove this exclude rule?" 
     91msgstr "Bist du sicher, dass du diese Ausschlussregel entfernen möchtest?" 
     92 
     93#: plugin.php:145 
     94msgid "Reducing the number of backups that are stored on this server will cause some of your existing backups to be deleted, are you sure that's what you want?" 
     95msgstr "Das Verringern der Anzahl der Backups, die auf diesem Server vorgehalten werden, bewirkt, dass einige existierende Backups gelöscht werden. Bist du sicher, dass du dies möchtest?" 
     96 
     97#: admin/actions.php:291 
     98msgid "Max backups can't be empty" 
     99msgstr "Die maximale Anzahl Backups kann nicht leer sein." 
     100 
     101#: admin/actions.php:297 
     102msgid "Max backups must be greater than 0" 
     103msgstr "Die maximale Anzahl Backups muss größer als 0 sein." 
     104 
     105#: admin/actions.php:396 
     106msgid "Exclude" 
     107msgstr "Ausschließen" 
     108 
     109#: admin/schedule-form-excludes.php:44 
     110msgid "default" 
     111msgstr "standard" 
     112 
     113#: admin/schedule-form-excludes.php:48 
     114msgid "defined" 
     115msgstr "festgelegt" 
     116 
     117#: admin/schedule-form.php:27 
     118msgid "Manual Only" 
     119msgstr "Nur manuell" 
     120 
     121#: admin/schedule-form.php:45 
     122msgid "The number of previous backups to store on the server. past this limit older backups will be deleted automatically." 
     123msgstr "Die Anzahl der Backups, die auf diesem Server vorgehalten werden. Bei Überschreitung des Limits werden ältere Backups automatisch gelöscht." 
     124 
     125#: admin/schedule.php:4 
     126msgid "this shouldn't take long&hellip;" 
     127msgstr "das sollte nicht lange dauern&hellip;" 
     128 
     129#: admin/schedule.php:4 
     130msgid "calculating the size of your site&hellip;" 
     131msgstr "Wir berechnen die Größe deiner Seite&hellip;" 
     132 
     133#: admin/schedule.php:12 
     134msgid "The next backup will be on %1$s at %2$s" 
     135msgstr "Das nächste Backup wird ausgeführt am %1$s um %2$s." 
     136 
     137#: admin/schedule.php:37 
     138msgid "every 12 hours at %1$s &amp; %2$s" 
     139msgstr "alle 12 Stunden um %1$s &amp; %2$s" 
     140 
     141#: admin/schedule.php:43 
     142msgid "weekly on %1$s at %2$s" 
     143msgstr "wöchentlich am %1$s um %2$s" 
     144 
     145#: admin/schedule.php:49 
     146msgid "fortnightly on %1$s at %2$s" 
     147msgstr "zweiwöchentlich am %1$s um %2$s" 
     148 
     149#: admin/schedule.php:56 
     150msgid "on the %1$s of each month at %2$s" 
     151msgstr "am %1$s. jedes Monats um %2$s" 
     152 
     153#: admin/schedule.php:62 
     154msgid "manually" 
     155msgstr "manuell" 
     156 
     157#: admin/schedule.php:68 
     158msgid "this server" 
     159msgstr "dieser Server" 
     160 
     161#: admin/schedule.php:75 
     162msgid "store the only the last backup on %s" 
     163msgstr "Halte nur das letzte Backup auf %s vor." 
     164 
     165#: admin/schedule.php:81 
     166msgid "don't store any backups on %s" 
     167msgstr "Speichere keine Backups auf %s" 
     168 
     169#: admin/schedule.php:87 
     170msgid "store only the last %1$s backups on %2$s" 
     171msgstr "Halte nur die letzten %1$s Backups auf %2$s vor." 
     172 
     173#: admin/schedule.php:96 
     174msgid "Backup my %1$s %2$s %3$s, %4$s. %5$s" 
     175msgstr "Erstelle ein Backup meiner %1$s %2$s %3$s, %4$s. %5$s" 
     176 
     177#: classes/email.php:23 
     178msgid "Receive a notification email when a backup completes, if the backup is small enough (&lt; 10mb) then it will be attached to the email. Separate multiple email address's with a comma." 
     179msgstr "Erhalte eine E-Mail, wenn ein Backup fertiggestellt wurde. Ist das Backup nicht zu groß (&lt; 10 MB), wird es an die E-Mail angehängt. Einzelne E-Mail-Adressen können durch Kommata getrennt angegeben werden." 
     180 
     181#: classes/email.php:129 
     182msgid "BackUpWordPress was unable to backup your site %1$s." 
     183msgstr "BackUpWordPress konnte deine Seite %1$s nicht sichern." 
     184 
     185#: classes/email.php:129 
     186msgid "Here are the errors that we're encountered:" 
     187msgstr "Hier sind die Fehler, auf die wir gestoßen sind:" 
     188 
     189#: classes/email.php:129 
     190msgid "If the errors above look like Martian, forward this email to %3$s and we'll take a look" 
     191msgstr "Wenn dir die Fehlermeldung oben wie ein Marsmensch vorkommt, dann leite diese E-Mail weiter an %3$s und wir schauen und das an." 
     192 
     193#: classes/email.php:129 
    40194msgid "" 
    41 "Are you sure you want to delete this schedule? All of it's backups will also be deleted.\n" 
    42 "\n" 
    43 "'Cancel' to go back, 'OK' to delete.\n" 
    44 msgstr "" 
    45 "Bist du sicher, dass du diesen Plan löschen möchtest? Alle enthaltenen Backups werden ebenfalls gelöscht.\n" 
    46 "\n" 
    47 "Drücke auf 'Abbrechen' zum Zurückgehen, 'OK' zum Löschen.\n" 
    48  
    49 #: plugin.php:98 
     195"Kind Regards,\n" 
     196"The Apologetic BackUpWordPress Backup Emailing Robot" 
     197msgstr "" 
     198"Mit freundlichen Grüßen\n" 
     199"Der Untröstliche BackUpWordpress Backup-E-Mail-Roboter " 
     200 
     201#: classes/email.php:142 classes/email.php:151 
     202msgid "BackUpWordPress has completed a backup of your site %1$s." 
     203msgstr "BackUpWordPress hat ein Backup deiner Seite %1$s fertiggestellt." 
     204 
     205#: classes/email.php:142 
     206msgid "The backup file should be attached to this email." 
     207msgstr "Die Backup-Datei sollte dieser E-Mail angehängt sein." 
     208 
     209#: classes/email.php:142 classes/email.php:151 
     210msgid "You can download the backup file by clicking the link below:" 
     211msgstr "Du kannst die Backup-Datei herunterladen, indem du auf den folgenden Link klickst:" 
     212 
     213#: classes/email.php:142 classes/email.php:151 
    50214msgid "" 
    51 "Are you sure you want to delete this backup?\n" 
    52 "\n" 
    53 "'Cancel' to go back, 'OK' to delete.\n" 
    54 msgstr "" 
    55 "Bist du sicher, dass du dieses Backup löschen möchtest?\n" 
    56 "\n" 
    57 "Drücke auf 'Abbrechen' zum Zurückgehen, 'OK' zum Löschen.\n" 
    58  
    59 #: plugin.php:99 
    60 msgid "" 
    61 "Are you sure you want to remove this exclude rule?\n" 
    62 "\n" 
    63 "'Cancel' to go back, 'OK' to delete.\n" 
    64 msgstr "" 
    65 "Bist du sicher, dass du diese Ausnahmeregel entfernen möchtest?\n" 
    66 "\n" 
    67 "Drücke auf 'Abbrechen' zum Zurückgehen, 'OK' zum Löschen.\n" 
    68  
    69 #: plugin.php:100 
    70 msgid "" 
    71 "Reducing the number of backups that are stored on this server will cause some of your existing backups to be deleted, are you sure that's what you want?\n" 
    72 "\n" 
    73 "'Cancel' to go back, 'OK' to delete.\n" 
    74 msgstr "" 
    75 "Wenn du die Anzahl der Backups, die auf diesem Server gespeichert werden, reduzierst, werden einige deiner existierenden Backups gelöscht. Bist du sicher, dass du das willst?\n" 
    76 "\n" 
    77 "Drücke auf 'Abbrechen' zum Zurückgehen, 'OK' zum Löschen.\n" 
    78  
    79 #: classes/schedule.php:460 
    80 msgid "Backup started" 
    81 msgstr "Backup gestartet" 
    82  
    83 #: classes/schedule.php:511 
    84 msgid "Creating zip archive" 
    85 msgstr "ZIP-Archiv wird erstellt" 
    86  
    87 #: classes/schedule.php:517 
    88 msgid "Dumping database" 
    89 msgstr "Datenbank wird gedump" 
     215"Kind Regards,\n" 
     216"The Happy BackUpWordPress Backup Emailing Robot" 
     217msgstr "" 
     218"Mit freundlichen Grüßen\n" 
     219"Der Glückliche BackUpWordPress Backup-E-Mail-Roboter" 
     220 
     221#: classes/email.php:151 
     222msgid "Unfortunately the backup file was too large to attach to this email." 
     223msgstr "Unglücklicherweise war die Backup-Datei zu groß, um sie dieser E-Mail anzuhängen." 
     224 
     225#: classes/wp-cli.php:19 
     226msgid "Backup: Dumping database..." 
     227msgstr "Fertige Backup an: Sichere Datenbank..." 
     228 
     229#: classes/wp-cli.php:23 
     230msgid "Backup: Zipping everything up..." 
     231msgstr "Fertige Backup an: Packe alles zusammen..." 
     232 
     233#: classes/wp-cli.php:38 
     234msgid "Invalid backup path" 
     235msgstr "Ungültiges Backupverzeichnis" 
     236 
     237#: classes/wp-cli.php:43 
     238msgid "Invalid root path" 
     239msgstr "Ungültiges Rootverzeichnis" 
     240 
     241#: classes/wp-cli.php:68 
     242msgid "Backup Complete: " 
     243msgstr "Backup fertiggestellt:" 
     244 
     245#: classes/wp-cli.php:71 
     246msgid "Backup Failed" 
     247msgstr "Backup fehlgeschlagen." 
     248 
     249#: functions/core.php:202 
     250msgid "By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database &amp; files. You can modify these schedules." 
     251msgstr "Standardmäßig führt BackUpWordPress ein tägliches Backup deiner Datenbank und ein wöchentliches Backup deiner Datenbank &amp; Dateien durch. Du kannst diesen Aufgabenplan selbstverständlich anpassen." 
     252 
     253#: functions/interface.php:111 
     254msgid "BackUpWordPress failed to perform the backup." 
     255msgstr "BackUpWordPress ist am Ausführen des Backups gescheitert." 
     256 
     257#: functions/interface.php:111 
     258msgid "You have likely hit a memory limit." 
     259msgstr "Du hast wahrscheinlich ein Speicherlimit überschritten." 
     260 
     261#: functions/interface.php:238 
     262msgid "Legacy" 
     263msgstr "" 
     264 
     265#: hm-backup/hm-backup.php:906 
     266msgid "The mysqldump file was not created" 
     267msgstr "Die MySQL-Abbilddatei konnte nicht erstellt werden." 
     268 
     269#: functions/interface.php:62 
     270msgid "Your backups directory isn't writable, run %1$s or %2$s or set the permissions yourself." 
     271msgstr "Dein Backup-Verzeichnis ist nicht schreibbar. Führe %1$s oder %2$s aus oder setze die Berechtigungen selbst." 
     272 
     273#: functions/interface.php:50 
     274msgid "The backups directory can't be created because your %1$s directory isn't writable, run %2$s or %3$s or create the folder yourself." 
     275msgstr "Das Backup-Verzeichnis kann nicht erstellt werden, weil dein %1$s-Verzeichnis nicht schreibbar ist. Führe %2$s oder %3$s aus oder erstelle das Verzeichnis selbst." 
     276 
     277#: functions/core.php:202 
     278msgid "BackUpWordPress has setup your default schedules." 
     279msgstr "BackUpWordPress hat deine Standard-Pläne eingerichtet." 
     280 
     281#: classes/email.php:127 
     282msgid "Backup of %s Failed" 
     283msgstr "Backup von %s fehlgeschlagen" 
     284 
     285#: classes/email.php:50 
     286msgid "Send an email notification to %s" 
     287msgstr "Sende E-Mail-Benachrichtigungen an %s" 
     288 
     289#: classes/email.php:72 
     290msgid "%s isn't a valid email" 
     291msgstr "%s ist keine gültige E-Mail-Adresse" 
     292 
     293#: admin/schedule.php:4 
     294msgid "Backups will be compressed and should be smaller than this." 
     295msgstr "Die Backups werden komprimiert und sollten kleiner sein." 
    90296 
    91297#: classes/email.php:19 
     
    93299msgstr "E-Mail-Benachrichtigung" 
    94300 
    95 #: classes/email.php:50 
    96 #, php-format 
    97 msgid "Send an email notification to %s" 
    98 msgstr "Sende E-Mail-Benachrichtigungen an %s" 
    99  
    100 #: classes/email.php:72 
    101 #, php-format 
    102 msgid "%s isn't a valid email" 
    103 msgstr "%s ist keine gültige E-Mail-Adresse" 
    104  
    105 #: classes/email.php:127 
    106 #, php-format 
    107 msgid "Backup of %s Failed" 
    108 msgstr "Backup von %s fehlgeschlagen" 
    109  
    110 #: classes/email.php:137 
    111 #, php-format 
    112 msgid "Backup of %s" 
    113 msgstr "Backup von %s" 
    114  
    115 #: hm-backup/hm-backup.php:532 
     301#: admin/schedule.php:19 
     302msgid "hourly on the hour" 
     303msgstr "stündlich zur vollen Stunde" 
     304 
     305#: admin/schedule.php:25 
     306msgid "daily at %s" 
     307msgstr "täglich um %s" 
     308 
     309#: admin/schedule-form.php:41 
     310msgid "Number of backups to store on this server" 
     311msgstr "Anzahl der Backups, die auf dem Server gespeichert bleiben" 
     312 
     313#: admin/schedule-form.php:7 
     314msgid "Schedule Settings" 
     315msgstr "Plan-Einstellungen" 
     316 
     317#: admin/actions.php:418 admin/schedule-form-excludes.php:119 
     318msgid "Close" 
     319msgstr "Schließen" 
     320 
     321#: admin/menu.php:69 
     322msgid "The information below is for version %1$s. View the %2$s file for help specific to version %3$s." 
     323msgstr "Diese Informationen sind für Version %1$s. Sieh dir die %2$s-Datei  für Hilfe speziell für Version %3$s an." 
     324 
     325#: admin/constants.php:26 
     326msgid "The root directory that is backed up. Defaults to %s." 
     327msgstr "Das Wurzelverzeichnis, das gesichert wird. Standard: %s" 
     328 
     329#: admin/constants.php:23 
     330msgid "The capability to use when calling %1$s. Defaults to %2$s." 
     331msgstr "Die Rolle, die beim Aufrufen von %1$s benutzt wird. Standard: %2$s" 
     332 
     333#: admin/constants.php:14 
     334msgid "The path to your %1$s executable. Will be used to zip up your %2$s and %3$s if available." 
     335msgstr "Der Pfad zur ausführbaren %1$s-Datei. Wird genutzt, um deine %2$s und %3$s als ZIP-Archiv zu komprimieren, wenn verfügbar." 
     336 
     337#: plugin.php:71 
     338msgid "BackUpWordPress requires WordPress version %s or greater." 
     339msgstr "BackUpWordPress benötigt WordPress Version %s oder größer." 
     340 
     341#: plugin.php:141 admin/actions.php:396 
     342msgid "Cancel" 
     343msgstr "Abbrechen" 
     344 
     345#: admin/constants.php:11 
     346msgid "The path to your %1$s executable. Will be used for the %2$s part of the back up if available." 
     347msgstr "Der Pfad zur ausführbaren %1$s-Datei. Wird für den %2$s-Teil des Backups genutzt, wenn verfügbar." 
     348 
     349#: admin/constants.php:8 admin/constants.php:11 admin/constants.php:14 
     350#: admin/constants.php:17 admin/constants.php:20 admin/constants.php:23 
     351#: admin/constants.php:26 admin/constants.php:29 
     352msgid "e.g." 
     353msgstr "z.B." 
     354 
     355#: admin/constants.php:3 
     356msgid "You can %1$s any of the following %2$s in your %3$s to control advanced settings. %4$s. Defined %5$s will be highlighted." 
     357msgstr "Du kannst jede der folgenden %2$s in deinem %3$s %1$sn, um erweiterte Einstellungen vorzunehmen. %4$s. Definierte %5$s werden hervorgehoben." 
     358 
     359#: admin/actions.php:192 admin/actions.php:195 
     360msgid "%1$s is returning a %2$s response which could mean cron jobs aren't getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details." 
     361msgstr "%1$s gibt eine %2$s-Antwort zurück. Das könnte bedeuten, dass deine Cron-Jobs nicht richtig aufgerufen werden. BackUpWordPress benutzt wp-cron, um geplante Backups auszuführen.  Sieh dir das %3$s an für mehr Details." 
     362 
     363#: functions/interface.php:72 
     364msgid "http://php.net/manual/en/features.safe-mode.php" 
     365msgstr "http://php.net/manual/de/features.safe-mode.php" 
     366 
     367#: functions/interface.php:72 
     368msgid "Safe Mode" 
     369msgstr "Safe Mode" 
     370 
     371#: functions/interface.php:82 
     372msgid "Your custom backups directory %1$s doesn't exist and can't be created, your backups will be saved to %2$s instead." 
     373msgstr "Dein angepasstes Backup-Verzeichnis %1$s existiert nicht und kann nicht erstellt werden, neue Backups werden stattdessen nach %2$s gespeichert." 
     374 
     375#: functions/interface.php:92 
     376msgid "Your custom backups directory %1$s isn't writable, new backups will be saved to %2$s instead." 
     377msgstr "Dein angepasstes Backup-Verzeichnis %1$s ist nicht schreibbar, neue Backups werden stattdessen nach %2$s gespeichert." 
     378 
     379#: functions/interface.php:252 
     380msgid "cancel" 
     381msgstr "abbrechen" 
     382 
     383#: functions/interface.php:256 
     384msgid "Settings" 
     385msgstr "Einstellungen" 
     386 
     387#: functions/interface.php:259 
     388msgid "Excludes" 
     389msgstr "Ausnahmen" 
     390 
     391#: functions/interface.php:27 
     392msgid "Download" 
     393msgstr "Download" 
     394 
     395#: functions/interface.php:50 functions/interface.php:62 
     396msgid "BackUpWordPress is almost ready." 
     397msgstr "BackUpWordPress ist fast fertig." 
     398 
     399#: functions/interface.php:102 
     400msgid "BackUpWordPress detected issues with your last backup." 
     401msgstr "BackUpWordPress hat Probleme bei deinem letzten Backup bemerkt." 
     402 
     403#: functions/interface.php:227 
     404msgid "Database and Files" 
     405msgstr "Datenbank und Dateien" 
     406 
     407#: functions/interface.php:233 
     408msgid "Database" 
     409msgstr "Datenbank" 
     410 
     411#: hm-backup/hm-backup.php:931 
    116412msgid "The backup file was not created" 
    117413msgstr "Die Backup-Datei wurde nicht angelegt" 
    118414 
    119 #: hm-backup/hm-backup.php:603 
     415#: hm-backup/hm-backup.php:951 
    120416msgid "The following files are unreadable and couldn't be backed up: " 
    121417msgstr "Die folgenden Dateien sind nicht lesbar und konnten nicht gesichert werden:" 
    122418 
    123 #: admin/constants.php:3 
    124 #, php-format 
    125 msgid "You can %1$s any of the following %2$s in your %3$s to control advanced settings. %4$s. Defined %5$s will be highlighted." 
    126 msgstr "Du kannst jede der folgenden %2$s in deinem %3$s %1$sn, um erweiterte Einstellungen vorzunehmen. %4$s. Definierte %5$s werden hervorgehoben." 
    127  
    128 #: admin/constants.php:3 
    129 msgid "Constants" 
    130 msgstr "Konstanten" 
     419#: admin/actions.php:192 admin/actions.php:195 functions/interface.php:72 
     420#: functions/interface.php:82 functions/interface.php:92 
     421msgid "BackUpWordPress has detected a problem." 
     422msgstr "BackUpWordPress hat ein Problem entdeckt." 
     423 
     424#: admin/actions.php:265 
     425msgid "Backup type cannot be empty" 
     426msgstr "Backup-Typ kann nicht leer sein" 
     427 
     428#: admin/actions.php:268 
     429msgid "Invalid backup type" 
     430msgstr "Ungültiger Backup-Typ" 
     431 
     432#: admin/actions.php:278 
     433msgid "Schedule cannot be empty" 
     434msgstr "Aufgaben können nicht leer sein" 
     435 
     436#: admin/actions.php:281 
     437msgid "Invalid schedule" 
     438msgstr "Ungültige Aufgaben" 
     439 
     440#: admin/actions.php:294 
     441msgid "Max backups must be a number" 
     442msgstr "Maximale Anzahl der Backups muss eine Zahl sein" 
     443 
     444#: admin/actions.php:392 
     445msgid "%s didn't match any files." 
     446msgstr "%s passt auf keine Dateien." 
     447 
     448#: admin/backups.php:13 
     449msgid "add schedule" 
     450msgstr "Aufgabe hinzufügen" 
     451 
     452#: admin/backups.php:37 
     453msgid "Size" 
     454msgstr "Größe" 
     455 
     456#: admin/backups.php:38 
     457msgid "Type" 
     458msgstr "Typ" 
     459 
     460#: admin/backups.php:39 
     461msgid "Actions" 
     462msgstr "Aktionen" 
     463 
     464#: admin/backups.php:62 
     465msgid "This is where your backups will appear once you have one." 
     466msgstr "Hier erscheinen deine Backups, sobald du welche hast." 
    131467 
    132468#: admin/constants.php:3 
     
    135471 
    136472#: admin/constants.php:8 
    137 #, php-format 
    138473msgid "The path to folder you would like to store your backup files in, defaults to %s." 
    139474msgstr "Der Pfad zum Verzeichnis, in dem du die Backups speichern möchtest. Standard: %s" 
    140475 
    141 #: admin/constants.php:8 
    142 #: admin/constants.php:11 
    143 #: admin/constants.php:14 
    144 #: admin/constants.php:17 
    145 #: admin/constants.php:20 
    146 #: admin/constants.php:23 
    147 #: admin/constants.php:26 
    148 #: admin/constants.php:29 
    149 #: admin/constants.php:32 
    150 #: admin/constants.php:35 
    151 #: admin/constants.php:38 
    152 #: admin/constants.php:41 
    153 msgid "e.g." 
    154 msgstr "z.B." 
    155  
    156 #: admin/constants.php:11 
    157 #, php-format 
    158 msgid "The path to your %1$s executable. Will be used for the %2$s part of the back up if available." 
    159 msgstr "Der Pfad zur ausführbaren %1$s-Datei. Wird für den %2$s-Teil des Backups genutzt, wenn verfügbar." 
    160  
    161 #: admin/constants.php:11 
    162 #: admin/constants.php:14 
    163 #: admin/constants.php:23 
    164 #: admin/constants.php:26 
     476#: admin/constants.php:11 admin/constants.php:14 
    165477msgid "database" 
    166478msgstr "Datenbank" 
    167479 
    168480#: admin/constants.php:14 
    169 #, php-format 
    170 msgid "The path to your %1$s executable. Will be used to zip up your %2$s and %3$s if available." 
    171 msgstr "Der Pfad zur ausführbaren %1$s-Datei. Wird genutzt, um deine %2$s und %3$s als ZIP-Archiv zu komprimieren, wenn verfügbar." 
    172  
    173 #: admin/constants.php:14 
    174 #: admin/constants.php:23 
    175 #: admin/constants.php:26 
    176481msgid "files" 
    177482msgstr "Dateien" 
    178483 
    179484#: admin/constants.php:17 
    180 #, php-format 
    181 msgid "Completely disables the automatic back up. You can still back up using the \"Back Up Now\" button. Defaults to %s." 
    182 msgstr "Deaktiviert die automatischen Backups vollständig. Du kannst trotzdem Backups erstellen, indem du den \"Jetzt sichern\"-Button verwendest. Standard: %s" 
    183  
    184 #: admin/constants.php:20 
    185 #, php-format 
    186 msgid "Number of backups to keep, older backups will be deleted automatically when a new backup is completed. Defaults to %s." 
    187 msgstr "Anzahl der zu behaltenden Backups. Ältere Backups werden automatisch gelöscht, sobald ein neues Backup fertiggestellt ist. Standard: %s" 
    188  
    189 #: admin/constants.php:23 
    190 #: admin/constants.php:26 
    191 #, php-format 
    192 msgid "Backup %1$s only, your %2$s won't be backed up. Defaults to %3$s." 
    193 msgstr "Nur die %1$s sichern, deine %2$s werden nicht gesichert. Standard: %3$s" 
    194  
    195 #: admin/constants.php:29 
    196 #, php-format 
    197 msgid "The time that the daily back up should run. Defaults to %s." 
    198 msgstr "Die Zeit, zu der das tägliche Backup laufen soll. Standard: %s" 
    199  
    200 #: admin/constants.php:32 
    201 #, php-format 
    202485msgid "Attempt to email a copy of your backups. Value should be email address to send backups to. Defaults to %s." 
    203486msgstr "Versuche, eine Kopie des Backups per E-Mail zu senden. Der Wert sollte eine E-Mail-Adresse sein. Standard: %s" 
    204487 
    205 #: admin/constants.php:35 
     488#: admin/constants.php:20 
    206489msgid "Comma separated list of files or directories to exclude, the backups directory is automatically excluded." 
    207490msgstr "Kommagetrennte Liste von Dateien oder Verzeichnissen, die ausgeschlossen werden sollen (das Backup-Verzeichnis ist automatisch ausgeschlossen)." 
    208491 
    209 #: admin/constants.php:38 
    210 #, php-format 
    211 msgid "The capability to use when calling %1$s. Defaults to %2$s." 
    212 msgstr "Die Rolle, die beim Aufrufen von %1$s benutzt wird. Standard: %2$s" 
    213  
    214 #: admin/constants.php:41 
    215 #, php-format 
    216 msgid "The root directory that is backed up. Defaults to %s." 
    217 msgstr "Das Wurzelverzeichnis, das gesichert wird. Standard: %s" 
    218  
    219 #: admin/schedule-form.php:7 
    220 msgid "Schedule Settings" 
    221 msgstr "Plan-Einstellungen" 
     492#: admin/menu.php:10 admin/page.php:5 
     493msgid "Manage Backups" 
     494msgstr "Backups verwalten" 
     495 
     496#: admin/menu.php:10 admin/menu.php:34 
     497msgid "Backups" 
     498msgstr "Backups" 
     499 
     500#: admin/menu.php:69 
     501msgid "You are not using the latest stable version of BackUpWordPress" 
     502msgstr "Du benutzt nicht die neueste stabile BackUpWordPress-Version" 
     503 
     504#: admin/menu.php:75 
     505msgid "FAQ" 
     506msgstr "FAQ" 
     507 
     508#: admin/constants.php:3 admin/menu.php:76 
     509msgid "Constants" 
     510msgstr "Konstanten" 
     511 
     512#: admin/menu.php:79 
     513msgid "For more information:" 
     514msgstr "Für mehr Informationen:" 
     515 
     516#: admin/menu.php:81 
     517msgid "Support Forums" 
     518msgstr "Support-Foren" 
     519 
     520#: admin/menu.php:82 
     521msgid "Help with translation" 
     522msgstr "Beim Übersetzen helfen" 
     523 
     524#: admin/page.php:13 
     525msgid "You need to fix the issues detailed above before BackUpWordPress can start." 
     526msgstr "Du musst die Probleme, die oben beschrieben werden, beheben, bevor BackUpWordPress starten kann." 
     527 
     528#: admin/schedule-form-excludes.php:19 
     529msgid "Preview" 
     530msgstr "Vorschau" 
     531 
     532#: admin/schedule-form-excludes.php:29 
     533msgid "Exclude Rules" 
     534msgstr "Ausnahmeregeln" 
     535 
     536#: admin/schedule-form-excludes.php:52 
     537msgid "Remove" 
     538msgstr "Entfernen" 
     539 
     540#: admin/schedule-form-excludes.php:71 
     541msgid "Excluded" 
     542msgstr "Ausnehmen" 
     543 
     544#: admin/schedule-form-excludes.php:75 
     545msgid "Included" 
     546msgstr "Einschließen" 
     547 
     548#: admin/schedule-form-excludes.php:79 
     549msgid "Unreadable" 
     550msgstr "Nicht lesbar" 
     551 
     552#: admin/schedule-form-excludes.php:107 
     553msgid "Unreadable files can't be backed up" 
     554msgstr "Nicht lesbare Dateien können nicht gesichert werden" 
     555 
     556#: admin/schedule-form-excludes.php:113 
     557msgid "Your site is %s. Backups will be compressed and so will be smaller." 
     558msgstr "Deine Seite ist %s groß. Die Backups werden komprimiert und sollten kleiner sein." 
    222559 
    223560#: admin/schedule-form.php:11 
     
    237574msgstr "Datenbank" 
    238575 
     576#: functions/interface.php:230 
     577msgid "Files" 
     578msgstr "Dateien" 
     579 
     580#: admin/schedule-form-excludes.php:7 
     581msgid "Manage Excludes" 
     582msgstr "Ausnahmen verwalten" 
     583 
    239584#: admin/schedule-form.php:23 
    240585msgid "Schedule" 
    241586msgstr "Plan" 
    242587 
    243 #: admin/schedule-form.php:39 
    244 msgid "Number of backups to store on this server" 
    245 msgstr "Anzahl der Backups, die auf dem Server gespeichert bleiben" 
    246  
    247 #: admin/schedule-form.php:43 
    248 msgid "The number of previous backups to store on the server. past this limit the oldest backups will be deleted automatically." 
    249 msgstr "Die Anzahl der vorherigen Backups, die auf dem Server gespeichert bleiben sollen. Über diesem Limit werden die ältesten Backups automatisch gelöscht." 
    250  
    251 #: admin/schedule.php:16 
    252 msgid "hourly on the hour" 
    253 msgstr "" 
    254  
    255 #: admin/schedule.php:16 
    256 #, php-format 
     588#: plugin.php:140 admin/schedule-form.php:54 
     589msgid "Update" 
     590msgstr "Update" 
     591 
     592#: admin/schedule.php:19 
    257593msgid "hourly at %s minutes past the hour" 
    258 msgstr "" 
    259  
    260 #: admin/schedule.php:22 
    261 #, php-format 
    262 msgid "daily at %s" 
    263 msgstr "" 
    264  
    265 #: admin/schedule.php:34 
    266 #, php-format 
    267 msgid "every 12 hours at %s &amp; %s" 
    268 msgstr "" 
    269  
    270 #: admin/schedule.php:40 
    271 #, php-format 
    272 msgid "weekly on %s at %s" 
    273 msgstr "" 
    274  
    275 #: admin/schedule.php:46 
    276 #, php-format 
    277 msgid "fortnightly on %s at %s" 
    278 msgstr "" 
    279  
    280 #: admin/schedule.php:53 
    281 #, php-format 
    282 msgid "on the %s of each month at %s" 
    283 msgstr "" 
    284  
    285 #: admin/schedule.php:59 
    286 msgid "server" 
    287 msgstr "Server" 
    288  
    289 #: admin/schedule.php:66 
    290 #, php-format 
    291 msgid "store the only the last backup %s" 
    292 msgstr "" 
    293  
    294 #: admin/schedule.php:72 
    295 #, php-format 
    296 msgid "don't store any backups %s" 
    297 msgstr "" 
    298  
    299 #: admin/schedule.php:78 
    300 #, php-format 
    301 msgid "store only the last %s backups %s" 
    302 msgstr "" 
    303  
    304 #: admin/schedule.php:87 
    305 #, php-format 
    306 msgid "Backup my %s %s %s, %s. %s" 
    307 msgstr "" 
    308  
    309 #: admin/schedule.php:87 
    310 msgid "Backups will be compressed and should be smaller than this." 
    311 msgstr "Die Backups werden komprimiert und sollten kleiner sein." 
    312  
    313 #: admin/schedule-form-excludes.php:7 
    314 msgid "Manage Exclude" 
    315 msgstr "Ausnahmen verwalten" 
    316  
    317 #: admin/schedule-form-excludes.php:13 
    318 msgid "New Exclude Rule" 
    319 msgstr "Neue Ausnahmeregel" 
    320  
    321 #: admin/schedule-form-excludes.php:17 
    322 msgid "Preview" 
    323 msgstr "Vorschau" 
    324  
    325 #: admin/schedule-form-excludes.php:27 
    326 msgid "Exclude Rules" 
    327 msgstr "Ausnahmeregeln" 
    328  
    329 #: admin/schedule-form-excludes.php:42 
    330 msgid "Remove" 
    331 msgstr "Entfernen" 
    332  
    333 #: admin/schedule-form-excludes.php:59 
    334 msgid "Excluded" 
    335 msgstr "Ausnehmen" 
    336  
    337 #: admin/schedule-form-excludes.php:60 
    338 msgid "Included" 
    339 msgstr "Einschließen" 
    340  
    341 #: admin/schedule-form-excludes.php:63 
    342 msgid "Unreadable" 
    343 msgstr "Nicht lesbar" 
    344  
    345 #: admin/schedule-form-excludes.php:86 
    346 msgid "Unreadable files can't be backed up" 
    347 msgstr "Nicht lesbare Dateien können nicht gesichert werden" 
    348  
    349 #: admin/schedule-form-excludes.php:92 
    350 #, php-format 
    351 msgid "Your site is %s. Backups will be compressed and so will be smaller." 
    352 msgstr "Deine Seite ist %s groß. Die Backups werden komprimiert und sollten kleiner sein." 
    353  
    354 #: admin/schedule-form-excludes.php:98 
    355 msgid "Close" 
    356 msgstr "Schließen" 
    357  
    358 #: admin/actions.php:163 
    359 msgid "BackUpWordPress has detected a problem." 
    360 msgstr "BackUpWordPress hat ein Problem entdeckt." 
    361  
    362 #: admin/actions.php:163 
    363 #, php-format 
    364 msgid "%1$s is returning a %2$s response which could mean cron jobs aren't getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details." 
    365 msgstr "%1$s gibt eine %2$s-Antwort zurück. Das könnte bedeuten, dass deine Cron-Jobs nicht richtig aufgerufen werden. BackUpWordPress benutzt wp-cron, um geplante Backups auszuführen.  Sieh dir das %3$s an für mehr Details." 
    366  
    367 #: admin/actions.php:232 
    368 msgid "Backup type cannot be empty" 
    369 msgstr "Backup-Typ kann nicht leer sein" 
    370  
    371 #: admin/actions.php:235 
    372 msgid "Invalid backup type" 
    373 msgstr "Ungültiger Backup-Typ" 
    374  
    375 #: admin/actions.php:245 
    376 msgid "Schedule cannot be empty" 
    377 msgstr "Aufgaben können nicht leer sein" 
    378  
    379 #: admin/actions.php:248 
    380 msgid "Invalid schedule" 
    381 msgstr "Ungültige Aufgaben" 
    382  
    383 #: admin/actions.php:258 
    384 msgid "Max backups must be more than 1" 
    385 msgstr "Maximale Anzahl der Backups muss größer als 1 sein" 
    386  
    387 #: admin/actions.php:261 
    388 msgid "Max backups must be a number" 
    389 msgstr "Maximale Anzahl der Backups muss eine Nummer sein" 
    390  
    391 #: admin/actions.php:334 
    392 #, php-format 
    393 msgid "%s matches 1 file." 
    394 msgid_plural "%s matches %d files" 
    395 msgstr[0] "%s passt auf eine Datei." 
    396 msgstr[1] "%s passt auf %d Dateien." 
    397  
    398 #: admin/actions.php:338 
    399 #, php-format 
    400 msgid "%s didn't match any files." 
    401 msgstr "%s passt auf keine Dateien." 
    402  
    403 #: admin/page.php:5 
    404 msgid "Manage Backups" 
    405 msgstr "Backups verwalten" 
    406  
    407 #: admin/page.php:13 
    408 msgid "You need to fix the issues detailed above before BackUpWordPress can start." 
    409 msgstr "Du musst die Probleme, die oben beschrieben werden, beheben, bevor BackUpWordPress starten kann." 
    410  
    411 #: admin/page.php:17 
    412 #, php-format 
    413 msgid "If you need help getting things working you are more than welcome to email us at %s and we'll do what we can." 
    414 msgstr "Wenn du Hilfe brauchst, sende uns ruhig eine E-Mail an %s (am besten auf Englisch) und wir werden tun, was wir können." 
    415  
    416 #: admin/backups.php:13 
    417 msgid "add schedule" 
    418 msgstr "Aufgabe hinzufügen" 
    419  
    420 #: admin/backups.php:36 
    421 #, php-format 
    422 msgid "1 backup completed" 
    423 msgid_plural "%d backups completed" 
    424 msgstr[0] "1 Backup fertiggestellt" 
    425 msgstr[1] "%d Backups fertiggestellt" 
    426  
    427 #: admin/backups.php:37 
    428 msgid "Size" 
    429 msgstr "Größe" 
    430  
    431 #: admin/backups.php:38 
    432 msgid "Type" 
    433 msgstr "Typ" 
    434  
    435 #: admin/backups.php:39 
    436 msgid "Actions" 
    437 msgstr "Aktionen" 
    438  
    439 #: admin/backups.php:62 
    440 msgid "This is where your backups will appear once you have one." 
    441 msgstr "Hier erscheinen deine Backups, sobald du welche hast." 
    442  
    443 #: admin/menu.php:10 
    444 #: admin/menu.php:34 
    445 msgid "Backups" 
    446 msgstr "Backups" 
    447  
    448 #: admin/menu.php:69 
    449 msgid "You are not using the latest stable version of BackUpWordPress" 
    450 msgstr "Du benutzt nicht die neueste stabile BackUpWordPress-Version" 
    451  
    452 #: admin/menu.php:69 
    453 #, php-format 
    454 msgid "The information below is for version %1$s. View the %2$s file for help specific to version %3$s." 
    455 msgstr "Diese Informationen sind für Version %1$s. Sieh dir die %2$s-Datei  für Hilfe speziell für Version %3$s an." 
    456  
    457 #: admin/menu.php:75 
    458 msgid "FAQ" 
    459 msgstr "FAQ" 
    460  
    461 #: admin/menu.php:79 
    462 msgid "For more information:" 
    463 msgstr "Für mehr Informationen:" 
    464  
    465 #: admin/menu.php:81 
    466 msgid "Support Forums" 
    467 msgstr "Support-Foren" 
    468  
    469 #: admin/menu.php:82 
    470 msgid "Help with translation" 
    471 msgstr "Beim Übersetzen helfen" 
    472  
    473 #: functions/core.php:192 
    474 msgid "BackUpWordPress has setup your default schedules." 
    475 msgstr "BackUpWordPress hat deine Standard-Pläne eingerichtet." 
    476  
    477 #: functions/core.php:192 
    478 msgid "By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database &amp; files. You can modify these schedules below." 
    479 msgstr "Standardmäßig macht BackUpWordPress täglich ein Backup deiner Datenbank und wöchentlich eines deiner Datenbank und deiner Dateien. Du kannst diese Pläne hier bearbeiten." 
    480  
    481 #: functions/core.php:273 
    482 #, php-format 
     594msgstr "stündlich, %s Minuten nach der vollen Stunde" 
     595 
     596#: functions/interface.php:262 
     597msgid "Run now" 
     598msgstr "Jetzt ausführen" 
     599 
     600#: functions/interface.php:28 functions/interface.php:264 
     601msgid "Delete" 
     602msgstr "Löschen" 
     603 
     604#: plugin.php:60 
     605msgid "BackUpWordPress requires PHP version 5.2.4 or greater." 
     606msgstr "BackUpWordPress benötigt PHP Version 5.2.4 oder höher." 
     607 
     608#: classes/email.php:137 
     609msgid "Backup of %s" 
     610msgstr "Backup von %s" 
     611 
     612#: functions/core.php:293 
    483613msgid "This %s file ensures that other people cannot download your backup files." 
    484614msgstr "Diese %s-Datei garantiert, dass andere Leute nicht deine Backup-Dateien herunterladen können." 
    485  
    486 #: functions/interface.php:27 
    487 msgid "Download" 
    488 msgstr "Download" 
    489  
    490 #: functions/interface.php:28 
    491 #: functions/interface.php:215 
    492 msgid "Delete" 
    493 msgstr "Löschen" 
    494  
    495 #: functions/interface.php:50 
    496 #: functions/interface.php:62 
    497 msgid "BackUpWordPress is almost ready." 
    498 msgstr "BackUpWordPress ist fast fertig." 
    499  
    500 #: functions/interface.php:50 
    501 #, php-format 
    502 msgid "The backups directory can't be created because your %1$s directory isn't writable, run %2$s or %3$s or create the folder yourself." 
    503 msgstr "Das Backup-Verzeichnis kann nicht erstellt werden, weil dein %1$s-Verzeichnis nicht schreibbar ist. Führe %2$s oder %3$s aus oder erstelle das Verzeichnis selbst." 
    504  
    505 #: functions/interface.php:62 
    506 #, php-format 
    507 msgid "Your backups directory isn't writable, run %1$s or %2$s or set the permissions yourself." 
    508 msgstr "Dein Backup-Verzeichnis ist nicht schreibbar. Führe %1$s oder %2$s aus oder setze die Berechtigungen selbst." 
    509  
    510 #: functions/interface.php:72 
    511 #, php-format 
    512 msgid "%1$s is running in %2$s. Please contact your host and ask them to disable %3$s." 
    513 msgstr "%1$s läuft im %2$s. Bitte kontaktiere deinen Administrator und bitte ihn, den %3$s zu deaktivieren." 
    514  
    515 #: functions/interface.php:72 
    516 msgid "http://php.net/manual/en/features.safe-mode.php" 
    517 msgstr "http://php.net/manual/de/features.safe-mode.php" 
    518  
    519 #: functions/interface.php:72 
    520 msgid "Safe Mode" 
    521 msgstr "Safe Mode" 
    522  
    523 #: functions/interface.php:82 
    524 #, php-format 
    525 msgid "Your custom backups directory %1$s doesn't exist and can't be created, your backups will be saved to %2$s instead." 
    526 msgstr "Dein angepasstes Backup-Verzeichnis %1$s existiert nicht und kann nicht erstellt werden, neue Backups werden stattdessen nach %2$s gespeichert." 
    527  
    528 #: functions/interface.php:92 
    529 #, php-format 
    530 msgid "Your custom backups directory %1$s isn't writable, new backups will be saved to %2$s instead." 
    531 msgstr "Dein angepasstes Backup-Verzeichnis %1$s ist nicht schreibbar, neue Backups werden stattdessen nach %2$s gespeichert." 
    532  
    533 #: functions/interface.php:102 
    534 msgid "BackUpWordPress detected issues with your last backup." 
    535 msgstr "BackUpWordPress hat Probleme bei deinem letzten Backup bemerkt." 
    536  
    537 #: functions/interface.php:182 
    538 msgid "Database and Files" 
    539 msgstr "Datenbank und Dateien" 
    540  
    541 #: functions/interface.php:185 
    542 msgid "Files" 
    543 msgstr "Dateien" 
    544  
    545 #: functions/interface.php:188 
    546 msgid "Database" 
    547 msgstr "Datenbank" 
    548  
    549 #: functions/interface.php:193 
    550 msgid "Unknown" 
    551 msgstr "Unbekannt" 
    552  
    553 #: functions/interface.php:201 
    554 msgid "cancel" 
    555 msgstr "abbrechen" 
    556  
    557 #: functions/interface.php:207 
    558 msgid "Settings" 
    559 msgstr "Einstellungen" 
    560  
    561 #: functions/interface.php:210 
    562 msgid "Excludes" 
    563 msgstr "Ausnahmen" 
    564  
    565 #: functions/interface.php:213 
    566 msgid "Run now" 
    567 msgstr "Jetzt ausführen" 
    568  
    569 #~ msgid "" 
    570 #~ "You can define %1$s in your %2$s to control some settings. A full list of " 
    571 #~ "%3$s can be found in the %4$s. Defined settings will not be editable " 
    572 #~ "below." 
    573 #~ msgstr "" 
    574 #~ "Du kannst %1$s in deinem %2$s definieren, um einige Einstellungen " 
    575 #~ "vorzunehmen. Eine komplette Liste der %3$s kannst du im %4$s finden. " 
    576 #~ "Definierte Einstellungen sind unten nicht veränderbar." 
    577  
    578 #~ msgid "help panel" 
    579 #~ msgstr "Hilfe-Panel" 
    580  
    581 #~ msgid "Automatic Backups" 
    582 #~ msgstr "Automatische Backups" 
    583  
    584 #~ msgid "Backup my site automatically." 
    585 #~ msgstr "Sichere meine Seite automatisch." 
    586  
    587 #~ msgid "No automatic backups." 
    588 #~ msgstr "Keine automatischen Backups." 
    589  
    590 #~ msgid "Frequency of backups" 
    591 #~ msgstr "Häufigkeit der Backups" 
    592  
    593 #~ msgid "Automatic backups will occur" 
    594 #~ msgstr "Automatische Backups werden ausgeführt:" 
    595  
    596 #~ msgid "Daily" 
    597 #~ msgstr "Täglich" 
    598  
    599 #~ msgid "Weekly" 
    600 #~ msgstr "Wöchentlich" 
    601  
    602 #~ msgid "Fortnightly" 
    603 #~ msgstr "Vierzehntägig" 
    604  
    605 #~ msgid "Monthly" 
    606 #~ msgstr "Monatlich" 
    607  
    608 #~ msgid "What to Backup" 
    609 #~ msgstr "Zu sichernde Daten" 
    610  
    611 #~ msgid "Backup my" 
    612 #~ msgstr "Sichere meine" 
    613  
    614 #~ msgid "Number of backups" 
    615 #~ msgstr "Anzahl der Backups" 
    616  
    617 #~ msgid "Email backups" 
    618 #~ msgstr "Backup-E-Mail" 
    619  
    620 #~ msgid "" 
    621 #~ "A copy of the backup file will be emailed to this address. Disabled if " 
    622 #~ "left blank." 
    623 #~ msgstr "" 
    624 #~ "Eine Kopie der Backup-Datei wird per E-Mail an diese Adresse gesendet. " 
    625 #~ "Leerlassen zum deaktivieren." 
    626  
    627 #~ msgid "" 
    628 #~ "A comma separated list of file and directory paths that you do " 
    629 #~ "<strong>not</strong> want to backup." 
    630 #~ msgstr "" 
    631 #~ "Eine kommagetrennte  Liste von Datei- und Verzeichnispfaden, die du " 
    632 #~ "<strong>nicht</strong> sichern möchtest." 
    633  
    634 #~ msgid "Save Changes" 
    635 #~ msgstr "Änderungen speichern" 
    636  
    637 #~ msgid "Only the most recent backup will be saved" 
    638  
    639 #~ msgid_plural "The %d most recent backups will be saved" 
    640 #~ msgstr[0] "Nur das neueste Backup wird gespeichert" 
    641 #~ msgstr[1] "Die %d neuesten Backups werden gespeichert" 
    642  
    643 #~ msgid "Total %s" 
    644 #~ msgstr "Insgesamt %s" 
    645  
    646 #~ msgid "Back Up Now" 
    647 #~ msgstr "Jetzt sichern" 
    648  
    649 #~ msgid "You have entered an invalid number of backups." 
    650 #~ msgstr "Du hast eine ungültige Anzahl von Backups eingegeben." 
    651  
    652 #~ msgid "Automatic backups are %s." 
    653 #~ msgstr "Automatische Backups sind %s." 
    654  
    655 #~ msgid "disabled" 
    656 #~ msgstr "deaktiviert" 
    657  
    658 #~ msgid "&amp;" 
    659 #~ msgstr "&amp;" 
    660  
    661 #~ msgid "" 
    662 #~ "Your %1$s will be automatically backed up %2$s. The next backup will " 
    663 #~ "occur at %3$s on %4$s and be saved to %5$s." 
    664  
    665 #~ msgid_plural "" 
    666 #~ "Your %1$s will be automatically backed up %2$s. The next backup will " 
    667 #~ "occur at %3$s on %4$s and be saved to %5$s." 
    668 #~ msgstr[0] "" 
    669 #~ "Deine %1$s wird automatisch %2$s gesichert. Das nächste Backup findet am " 
    670 #~ "%4$s um %3$s statt und wird nach %5$s gespeichert." 
    671 #~ msgstr[1] "" 
    672 #~ "Deine %1$s werden automatisch %2$s gesichert. Das nächste Backup findet " 
    673 #~ "am %3$s um %4$s statt und wird nach %5$s gespeichert." 
    674  
    675 #~ msgid "It's currently %s" 
    676 #~ msgstr "Es ist jetzt %s" 
    677  
    678 #~ msgid "Calculating Size..." 
    679 #~ msgstr "Größe berechnen..." 
    680  
    681 #~ msgid "A copy of each backup will be emailed to %s." 
    682 #~ msgstr "Eine Kopie jedes Backups wird an %s gesendet." 
    683  
    684 #~ msgid "The following paths will be excluded from your backups %s." 
    685 #~ msgstr "" 
    686 #~ "Die folgenden Pfade werden von deinen Backups ausgeschlossen sein: %s" 
    687  
    688 #~ msgid "Settings saved." 
    689 #~ msgstr "Einstellungen gespeichert." 
    690  
    691 #~ msgid "" 
    692 #~ "You have both %1$s and %2$s defined so there isn't anything to back up." 
    693 #~ msgstr "" 
    694 #~ "Du hast sowohl %1$s, als auch %2$s definiert. Deswegen gibt es nichts zu " 
    695 #~ "sichern." 
    696  
    697 #~ msgid "The following email address is not valid: %s." 
    698  
    699 #~ msgid_plural "The following email addresses are not valid: %s." 
    700 #~ msgstr[0] "Die folgende E-Mail-Adresse ist ungültig: %s" 
    701 #~ msgstr[1] "Die folgenden E-Mail-Adressen sind ungültig: %s" 
    702  
    703 #~ msgid "" 
    704 #~ "The last backup email failed to send. It's likely that the file is too " 
    705 #~ "large." 
    706 #~ msgstr "" 
    707 #~ "Das letzte Backup-E-Mail konnte nicht gesendet werden. Wahrscheinlich ist " 
    708 #~ "die Datei zu groß." 
    709  
    710 #~ msgid "" 
    711 #~ "You have defined a custom exclude list but the following paths don't " 
    712 #~ "exist %s, are you sure you entered them correctly?" 
    713 #~ msgstr "" 
    714 #~ "Du hast eine Ausnahmen-Liste definiert, aber die folgenden Pfade " 
    715 #~ "existieren nicht: %s. Bist du sicher, dass du sie korrekt eingegeben hast?" 
    716  
    717 #~ msgid "Removing old backups" 
    718 #~ msgstr "Alte Backups werden gelöscht" 
    719  
    720 #~ msgid "" 
    721 #~ "BackUpWordPress has completed a backup of your site %1$s.\\n\\nThe backup " 
    722 #~ "file should be attached to this email.\\n\\nYou can also download the " 
    723 #~ "backup file by clicking the link below:\\n\\n%2$s\\n\\nKind Regards\\n\\n " 
    724 #~ "The Happy BackUpWordPress Backup Emailing Robot" 
    725 #~ msgstr "" 
    726 #~ "BackUpWordPress hat ein Backup deiner Seite %1$s fertiggestellt.\n" 
    727 #~ "\n" 
    728 #~ "Die Backup-Datei sollte an diese E-Mail angehängt sein.\n" 
    729 #~ "\n" 
    730 #~ "Du kannst es auch herunterladen, indem du den folgenden Link anklickst:\n" 
    731 #~ "\n" 
    732 #~ "%2$s\n" 
    733 #~ "\n" 
    734 #~ "Liebe Grüße\n" 
    735 #~ "\n" 
    736 #~ " Der glückliche BackUpWordPress-Backup-E-Mail-Roboter" 
    737  
    738 #~ msgid "" 
    739 #~ "BackUpWordPress has completed a backup of your site %1$s.\\n" 
    740 #~ "\\nUnfortunately the backup file was too large to attach to this email.\\n" 
    741 #~ "\\nYou can download the backup file by clicking the link below:\\n\\n%2$s" 
    742 #~ "\\n\\nKind Regards\\n\\n The Happy BackUpWordPress Backup Emailing Robot" 
    743 #~ msgstr "" 
    744 #~ "BackUpWordPress hat ein Backup deiner Seite %1$s fertiggestellt.\n" 
    745 #~ "\n" 
    746 #~ "Leider war die Backup-Datei zu groß, um sie an dieses E-Mail anzuhängen.\n" 
    747 #~ "\n" 
    748 #~ "Du kannst es aber herunterladen, indem du den folgenden Link anklickst:\n" 
    749 #~ "\n" 
    750 #~ "%2$s\n" 
    751 #~ "\n" 
    752 #~ "Liebe Grüße\n" 
    753 #~ "\n" 
    754 #~ " Der glückliche BackUpWordPress-Backup-E-Mail-Roboter" 
  • backupwordpress/trunk/plugin.php

    r615505 r628706  
    66Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools &rarr; Backups</strong>. 
    77Author: Human Made Limited 
    8 Version: 2.0.6 
     8Version: 2.1 
    99Author URI: http://hmn.md/ 
    1010*/ 
     
    3838if ( ! defined( 'HMBKP_ADMIN_URL' ) ) 
    3939    define( 'HMBKP_ADMIN_URL', add_query_arg( 'page', HMBKP_PLUGIN_SLUG, admin_url( 'tools.php' ) ) ); 
     40 
     41define( 'HMBKP_SECURE_KEY', md5( ABSPATH . time() ) ); 
    4042 
    4143if ( ! defined( 'HMBKP_REQUIRED_WP_VERSION' ) ) 
     
    9799    include( HMBKP_PLUGIN_PATH . '/classes/wp-cli.php' ); 
    98100 
     101// Handle any advanced option changes 
     102hmbkp_constant_changes(); 
     103 
    99104// Set the tmp directory to the backup path 
    100105if ( ! defined( 'PCLZIP_TEMPORARY_DIR' ) ) 
     
    129134    if ( isset( $_GET['page'] ) && $_GET['page'] == HMBKP_PLUGIN_SLUG ) { 
    130135 
    131         wp_enqueue_script( 'hmbkp_fancybox', HMBKP_PLUGIN_URL . '/assets/fancyBox/source/jquery.fancybox.js', array( 'jquery' ), HMBKP_VERSION ); 
    132         wp_enqueue_script( 'hmbkp', HMBKP_PLUGIN_URL . '/assets/hmbkp.js', array( 'jquery-ui-tabs', 'jquery-ui-widget', 'hmbkp_fancybox' ), HMBKP_VERSION ); 
     136        wp_enqueue_script( 'hmbkp-fancybox', HMBKP_PLUGIN_URL . '/assets/fancyBox/source/jquery.fancybox.js', array( 'jquery' ), sanitize_title( HMBKP_VERSION ) ); 
     137        wp_enqueue_script( 'hmbkp', HMBKP_PLUGIN_URL . '/assets/hmbkp.js', array( 'jquery-ui-tabs', 'jquery-ui-widget', 'hmbkp-fancybox' ), sanitize_title( HMBKP_VERSION ) ); 
    133138 
    134139        wp_localize_script( 'hmbkp', 'objectL10n', array( 
     
    145150 
    146151    } 
    147  
    148     // Handle any advanced option changes 
    149     hmbkp_constant_changes(); 
    150152 
    151153} 
  • backupwordpress/trunk/readme.txt

    r615505 r628706  
    5252You need to download the latest backup file either by clicking download on the backups page or via `FTP`. `Unzip` the files and upload all the files to your server overwriting your site. You can then import the database using your hosts database management tool (likely `phpMyAdmin`). 
    5353 
    54 See this post for more details http://hmn.md/backupwordpress/ 
     54See this post for more details http://hmn.md/backupwordpress-how-to-restore-from-backup-files/. 
    5555 
    5656**Does BackUpWordPress back up the backups directory?** 
     
    103103 
    104104== Changelog == 
     105 
     106#### 2.1 
     107 
     108* Stop blocking people with `safe_mode = On` from using the plugin, instead just show a warning. 
     109* Fix possible fatal error when setting schedule to monthly. 
     110* Fix issues with download backup not working on some shared hosts. 
     111* Fix issuses with download backup not working on sites with strange characters in the site name. 
     112* Fix a bug could cause the update actions to fire on initial activation. 
     113* Improved reliability when changing backup paths, now with Unit Tests. 
     114* Generate the lists of excluded, included and unreadable files in a more memory efficient way, no more fatal errors on sites with lots of files. 
     115* Bring back .htaccess protection of the backups directory on `Apache` servers with `mod_rewrite` enabled. 
     116* Prepend a random string to the backups directory to make it harder to brute force guess. 
     117* Fall back to storing the backups directoy in `uploads` if `WP_CONTENT_DIR` isn't writable. 
     118* Attempt to catch `E_ERROR` level errors (Fatal errors) that happen during the backup process and offer to email them to support. 
     119* Provide more granular status messages during the backup process. 
     120* Show a spinner next to the schedule link when a backup is running on a schedule which you are not currently viewing. 
     121* Improve the feedback when removing an exclude rule. 
     122* Fix an issue that could cause an exclude rule to be marked as default when it in-fact isn't, thus not letting it be deleted. 
     123* Add a line encouraging people to rate the plugin if they like it. 
     124* Change the support line to point to the FAQ before recommending they contact support. 
     125* Fix the link to the "How to Restore" post in the FAQ. 
     126* Some string changes for translators, 18 changed strings. 
     127 
    105128 
    106129#### 2.0.6 
Note: See TracChangeset for help on using the changeset viewer.