* A failed full dump is now saved as a partial (incomplete) dump,
[BackupPC.git] / lib / BackupPC / Lang / en.pm
index 065a888..4c4554e 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/bin/perl -T
 
 #my %lang;
 
@@ -47,8 +47,8 @@ $Lang{BackupPC_Server_Status}= <<EOF;
     <td> Start Time </td>
     <td> Command </td>
     <td align="center"> PID </td>
-    <td> Xfer PID </td>
-    \$tarPidHdr</tr>
+    <td align="center"> Xfer PID </td>
+    </tr>
 \$jobStr
 </table>
 <p>
@@ -223,7 +223,7 @@ EOF
 # --------------------------------
 $Lang{Backup_PC__Log_File__file} = "BackupPC: Log File \$file";
 $Lang{Log_File__file__comment} = <<EOF;
-"Log File \$file \$comment";
+\${h1("Log File \$file \$comment")}
 <p>
 EOF
 # --------------------------------
@@ -288,7 +288,7 @@ You can start a restore that will restore these files directly onto
 selected will be overwritten!
 
 <form action="\$MyURL" method="post">
-<input type="hidden" name="host" value="\${EscapeHTML(\$host)}">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
 <input type="hidden" name="num" value="\$num">
 <input type="hidden" name="type" value="3">
 \$hiddenStr
@@ -296,16 +296,16 @@ selected will be overwritten!
 <table border="0">
 <tr>
     <td>Restore the files to host</td>
-    <td><input type="text" size="40" value="\${EscapeHTML(\$host)}"
+    <td><input type="text" size="40" value="\${EscHTML(\$host)}"
         name="hostDest"></td>
 </tr><tr>
     <td>Restore the files to share</td>
-    <td><input type="text" size="40" value="\${EscapeHTML(\$share)}"
+    <td><input type="text" size="40" value="\${EscHTML(\$share)}"
         name="shareDest"></td>
 </tr><tr>
     <td>Restore the files below dir<br>(relative to share)</td>
     <td valign="top"><input type="text" size="40" maxlength="256"
-       value="\${EscapeHTML(\$pathHdr)}" name="pathHdr"></td>
+       value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
 </tr><tr>
     <td><input type="submit" value="Start Restore" name=""></td>
 </table>
@@ -327,13 +327,13 @@ create and transfer the archive, and you will need enough local disk
 space to store it.
 <p>
 <form action="\$MyURL" method="post">
-<input type="hidden" name="host" value="\${EscapeHTML(\$host)}">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
 <input type="hidden" name="num" value="\$num">
 <input type="hidden" name="type" value="2">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
 <input type="checkbox" value="1" name="relative" checked> Make archive relative
-to \${EscapeHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
+to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
 (otherwise archive will contain full paths).
 <br>
 Compression (0=off, 1=fast,...,9=best)
@@ -348,7 +348,8 @@ EOF
 $Lang{Option_2__Download_Zip_archive2} = <<EOF;
 \${h2("Option 2: Download Zip archive")}
 <p>
-You could download a zip archive, but Archive::Zip is not installed.
+Archive::Zip is not installed so you will not be able to download a
+zip archive.
 Please ask your system adminstrator to install Archive::Zip from
 <a href="http://www.cpan.org">www.cpan.org</a>.
 <p>
@@ -369,13 +370,13 @@ create and transfer the archive, and you will need enough local disk
 space to store it.
 <p>
 <form action="\$MyURL" method="post">
-<input type="hidden" name="host" value="\${EscapeHTML(\$host)}">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
 <input type="hidden" name="num" value="\$num">
 <input type="hidden" name="type" value="1">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
 <input type="checkbox" value="1" name="relative" checked> Make archive relative
-to \${EscapeHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
+to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
 (otherwise archive will contain full paths).
 <br>
 <input type="submit" value="Download Tar File" name="">
@@ -399,10 +400,10 @@ backup number \$num:
 </table>
 
 <form action="\$MyURL" method="post">
-<input type="hidden" name="host" value="\${EscapeHTML(\$host)}">
-<input type="hidden" name="hostDest" value="\${EscapeHTML(\$In{hostDest})}">
-<input type="hidden" name="shareDest" value="\${EscapeHTML(\$In{shareDest})}">
-<input type="hidden" name="pathHdr" value="\${EscapeHTML(\$In{pathHdr})}">
+<input type="hidden" name="host" value="\${EscHTML(\$host)}">
+<input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}">
+<input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}">
+<input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}">
 <input type="hidden" name="num" value="\$num">
 <input type="hidden" name="type" value="4">
 \$hiddenStr
@@ -439,7 +440,7 @@ $Lang{Host__host_Backup_Summary2} = <<EOF;
 <form action="\$MyURL" method="get">
 <input type="hidden" name="host" value="\$host">
 \$startIncrStr
-<input type="submit" value="$Lang{Start_Full_Backup}" name="action" alt="demarage plein">
+<input type="submit" value="$Lang{Start_Full_Backup}" name="action">
 <input type="submit" value="$Lang{Stop_Dequeue_Backup}" name="action">
 </form>
 
@@ -567,18 +568,27 @@ $Lang{Backup_browse_for__host} = <<EOF;
 //-->
 </script>
 
+<form name="form0" method="post" action="\$MyURL">
+<input type="hidden" name="num" value="\$num">
+<input type="hidden" name="host" value="\$host">
+<input type="hidden" name="share" value="\${EscHTML(\$share)}">
+<input type="hidden" name="action" value="browse">
 <ul>
 <li> You are browsing backup #\$num, which started around \$backupTime
         (\$backupAge days ago),
 \$filledBackup
 <li> Click on a directory below to navigate into that directory,
-<li> Click on a file below to restore that file.
+<li> Click on a file below to restore that file,
+<li> You can view the backup <a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">history</a> of the current directory.
+<li> Enter directory: <input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit">
 </ul>
+</form>
 
-\${h2("Contents of \${EscapeHTML(\$dirDisplay)}")}
+\${h2("Contents of \${EscHTML(\$dirDisplay)}")}
 <form name="form1" method="post" action="\$MyURL">
 <input type="hidden" name="num" value="\$num">
 <input type="hidden" name="host" value="\$host">
+<input type="hidden" name="share" value="\${EscHTML(\$share)}">
 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
 <input type="hidden" name="action" value="$Lang{Restore}">
 <br>
@@ -609,6 +619,45 @@ This is now in the checkAll row
 </form>
 EOF
 
+# ------------------------------
+$Lang{DirHistory_backup_for__host} = "BackupPC: Directory backup history for \$host";
+
+#
+# These two strings are used to build the links for directories and
+# file versions.  Files are appended with a version number.
+#
+$Lang{DirHistory_dirLink}  = "dir";
+$Lang{DirHistory_fileLink} = "v";
+
+$Lang{DirHistory_for__host} = <<EOF;
+\${h1("Directory backup history for \$host")}
+<p>
+This display shows each unique version of files across all
+the backups:
+<ul>
+<li> Click on a backup number to return to the backup browser,
+<li> Click on a directory link (\$Lang->{DirHistory_dirLink}) to navigate
+     into that directory,
+<li> Click on a file version link (\$Lang->{DirHistory_fileLink}0,
+     \$Lang->{DirHistory_fileLink}1, ...) to download that file,
+<li> Files with the same contents between different backups have the same
+     version number,
+<li> Files or directories not present in a particular backup have an
+     empty box.
+<li> Files shown with the same version might have different attributes.
+     Select the backup number to see the file attributes.
+</ul>
+
+\${h2("History of \${EscHTML(\$dirDisplay)}")}
+
+<br>
+<table border bgcolor="#ffffcc">
+<tr bgcolor="\$Conf{CgiHeaderBgColor}"><td>Backup number</td>\$backupNumStr</tr>
+<tr bgcolor="\$Conf{CgiHeaderBgColor}"><td>Backup time</td>\$backupTimeStr</tr>
+\$fileStr
+</table>
+EOF
+
 # ------------------------------
 $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host";
 
@@ -660,43 +709,38 @@ $Lang{Wrong_user__my_userid_is___} =
 $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries.";
 $Lang{Only_privileged_users_can_stop_or_start_backups} = 
                   "Only privileged users can stop or start backups on"
-               . " \${EscapeHTML(\$host)}.";
+               . " \${EscHTML(\$host)}.";
 $Lang{Invalid_number__num} = "Invalid number \$num";
 $Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?";
 $Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files.";
 $Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files.";
 $Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries.";
 $Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files"
-                . " for host \${EscapeHTML(\$In{host})}.";
+                . " for host \${EscHTML(\$In{host})}.";
 $Lang{Empty_host_name} = "Empty host name.";
-$Lang{Can_t_browse_bad_directory_name} = "Can\'t browse bad directory name"
-                   . " \${EscapeHTML(\"\$TopDir/pc/\$host/\$num\")}";
-$Lang{Directory___EscapeHTML} = "Directory \${EscapeHTML(\"\$TopDir/pc/\$host/\$num\")}"
+$Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}"
                    . " is empty";
 $Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name"
-                   . " \${EscapeHTML(\$fullDir)}";
+                   . " \${EscHTML(\$relDir)}";
 $Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files"
-                . " for host \${EscapeHTML(\$In{host})}.";
-$Lang{Bad_host_name} = "Bad host name \${EscapeHTML(\$host)}";
+                . " for host \${EscHTML(\$In{host})}.";
+$Lang{Bad_host_name} = "Bad host name \${EscHTML(\$host)}";
 $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to"
                 . " select some files.";
 $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names";
-$Lang{Can_t_fork_for_tar_restore} = "Can\'t fork for tar restore";
-$Lang{Can_t_fork_for_zip_restore} = "Can\'t fork for zip restore";
-$Lang{Host__doesn_t_exist} = "Host \${EscapeHTML(\$In{hostDest})} doesn\'t exist";
+$Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} doesn\'t exist";
 $Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host"
-                   . " \${EscapeHTML(\$In{hostDest})}";
+                   . " \${EscHTML(\$In{hostDest})}";
 $Lang{Can_t_open_create} = "Can\'t open/create "
-                    . "\${EscapeHTML(\"\$TopDir/pc/\$hostDest/\$reqFileName\")}";
+                    . "\${EscHTML(\"\$TopDir/pc/\$hostDest/\$reqFileName\")}";
 $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files"
-                . " for host \${EscapeHTML(\$host)}.";
+                . " for host \${EscHTML(\$host)}.";
 $Lang{Empty_host_name} = "Empty host name";
-$Lang{Can_t_restore_bad_file} = "Can\'t restore bad file \${EscapeHTML(\$fullPath)}";
-$Lang{Unknown_host_or_user} = "Unknown host or user \${EscapeHTML(\$host)}";
+$Lang{Unknown_host_or_user} = "Unknown host or user \${EscHTML(\$host)}";
 $Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about"
-                . " host \${EscapeHTML(\$host)}." ;
+                . " host \${EscHTML(\$host)}." ;
 $Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information.";
-$Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscapeHTML(\$host)} does"
+$Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscHTML(\$host)} does"
                . " not exist.";
 
 $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server",
@@ -706,8 +750,7 @@ $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC ser
             "Perhaps the BackupPC server is not running or there is a "
           . " configuration error.  Please report this to your Sys Admin.";
 
-$Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscapeHTML(\$host)}";
-
+$Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscHTML(\$host)}";
 $Lang{host_is_a_DHCP_host} = <<EOF;
 \$host is a DHCP host, and I don\'t know its IP address.  I checked the
 netbios name of \$ENV{REMOTE_ADDR}\$tryIP, and found that that machine
@@ -717,18 +760,6 @@ Until I see \$host at a particular DHCP address, you can only
 start this request from the client machine itself.
 EOF
 
-# ------------------------------------
-# !! Server Mesg !!
-# ------------------------------------
-
-# do not translate the firsts, used by server
-$Lang{backup__In_hostIP___host} = "backup \$In{hostIP} \$host"
-                                . " \$User \$doFull";
-$Lang{backup__host__host__User__doFull} = "backup \$host \$host \$User \$doFull";
-$Lang{restore__ipAddr} = "restore \$ipAddr"
-                       . " \$hostDest \$User \$reqFileName";
-$Lang{stop__host__User__In_backoff} = "stop \$host \$User \$In{backoff}";
-
 ########################
 # ok you can do it then
 ########################
@@ -738,16 +769,6 @@ $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{h
 
 $Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User";
 $Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User";
-$Lang{log_Can_t_fork_for_tar_restore_request_by__User} = "log Can\'t fork for tar restore request by \$User";
-$Lang{log_User__User_downloaded_tar_archive_for__host} = "log User \$User downloaded tar archive for \$host,"
-                           . " backup \$num; files were: "
-                          . " \${join(\", \", \@fileListTrim)}";
-
-$Lang{log_Can_t_fork_for_zip_restore_request_by__User} = "log Can\'t fork for zip restore request by \$User";
-
-$Lang{log_User__User_downloaded_zip_archive_for__host}= "log User \$User downloaded zip archive for \$host,"
-                           . " backup \$num; files were: "
-                           . "\${join(\", \", \@fileListTrim)}";
 
 $Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num,"
             . " by \$User from \$ENV{REMOTE_ADDR}";
@@ -773,6 +794,10 @@ $Lang{Hosts} = "Hosts";
 $Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n";
 $Lang{This_PC_is_used_by} = "<li>This PC is used by \${UserLink(\$user)}";
 
+$Lang{Extracting_only_Errors} = "(Extracting only Errors)";
+$Lang{XferLOG} = "XferLOG";
+$Lang{Errors}  = "Errors";
+
 # ------------
 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
 <li>Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj".
@@ -799,13 +824,12 @@ EOF
 
 # --------
 $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
-<li>Last status is state \"\$StatusHost{state}\"\$reason
-    as of \$startTime.
+<li>Last status is state \"\$Lang->{\$StatusHost{state}}\"\$reason as of \$startTime.
 EOF
 
 # --------
-$Lang{Last_error_is____EscapeHTML_StatusHost_error} = <<EOF;
-<li>Last error is \"\${EscapeHTML(\$StatusHost{error})}\"
+$Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF;
+<li>Last error is \"\${EscHTML(\$StatusHost{error})}\".
 EOF
 
 # ------
@@ -832,8 +856,6 @@ $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
 (<a href=\"\$MyURL?action=Stop/Dequeue%20Backup&host=\$host\">change this number</a>).
 EOF
 
-$Lang{info_jobs_hosts_queueLen} = "info jobs hosts queueLen";
-
 $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}";
 
 $Lang{Host_Inhost} = "Host \$In{host}";
@@ -841,7 +863,7 @@ $Lang{Host_Inhost} = "Host \$In{host}";
 $Lang{checkAll} = <<EOF;
 <tr bgcolor="#ffffcc"><td>
 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
-</td><td colspan="4" align="center">
+</td><td colspan="5" align="center">
 <input type="submit" name="Submit" value="Restore selected files">
 </td></tr>
 EOF
@@ -850,6 +872,7 @@ $Lang{fileHeader} = <<EOF;
     <tr bgcolor="\$Conf{CgiHeaderBgColor}"><td align=center> Name</td>
        <td align="center"> Type</td>
        <td align="center"> Mode</td>
+       <td align="center"> #</td>
        <td align="center"> Size</td>
        <td align="center"> Mod time</td>
     </tr>
@@ -860,8 +883,11 @@ $Lang{Last_bad_XferLOG} = "Last bad XferLOG";
 $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors&nbsp;only)";
 
 $Lang{This_display_is_merged_with_backup} = <<EOF;
-<li> This display is merged with backup #\$numF, the most recent prior
-     filled (full) dump.
+<li> This display is merged with backup #\$numF.
+EOF
+
+$Lang{Visit_this_directory_in_backup} = <<EOF;
+<li> Visit this directory in backup #\$otherDirs.
 EOF
 
 $Lang{Restore_Summary} = <<EOF;
@@ -889,18 +915,133 @@ $Lang{No} = "no";
 $Lang{Yes} = "yes";
 
 $Lang{The_directory_is_empty} = <<EOF;
-<tr><td bgcolor="#ffffff">The directory \${EscapeHTML(\$dirDisplay)} is empty
+<tr><td bgcolor="#ffffff">The directory \${EscHTML(\$dirDisplay)} is empty
 </td></tr>
 EOF
 
-$Lang{on} = "on";
+#$Lang{on} = "on";
 $Lang{off} = "off";
 
-$Lang{full} = "full";
-$Lang{incremental} = "incr";
+$Lang{backupType_full}    = "full";
+$Lang{backupType_incr}    = "incr";
+$Lang{backupType_partial} = "partial";
 
 $Lang{failed} = "failed";
 $Lang{success} = "success";
 $Lang{and} = "and";
 
+# ------
+# Hosts states and reasons
+$Lang{Status_idle} = "idle";
+$Lang{Status_backup_starting} = "backup starting";
+$Lang{Status_backup_in_progress} = "backup in progress";
+$Lang{Status_restore_starting} = "restore starting";
+$Lang{Status_restore_in_progress} = "restore in progress";
+$Lang{Status_link_pending} = "link pending";
+$Lang{Status_link_running} = "link running";
+
+$Lang{Reason_backup_done} = "backup done";
+$Lang{Reason_restore_done} = "restore done";
+$Lang{Reason_nothing_to_do} = "nothing to do";
+$Lang{Reason_backup_failed} = "backup failed";
+$Lang{Reason_restore_failed} = "restore failed";
+$Lang{Reason_no_ping} = "no ping";
+$Lang{Reason_backup_canceled_by_user} = "backup canceled by user";
+$Lang{Reason_restore_canceled_by_user} = "restore canceled by user";
+
+# ---------
+# Email messages
+
+# No backup ever
+$Lang{EMailNoBackupEverSubj} = "BackupPC: no backups of \$host have succeeded";
+$Lang{EMailNoBackupEverMesg} = <<'EOF';
+To: $user$domain
+cc:
+Subject: $subj
+
+Dear $userName,
+
+Your PC ($host) has never been successfully backed up by our
+PC backup software.  PC backups should occur automatically
+when your PC is connected to the network.  You should contact
+computer support if:
+
+  - Your PC has been regularly connected to the network, meaning
+    there is some configuration or setup problem preventing
+    backups from occurring.
+
+  - You don't want your PC backed up and you want these email
+    messages to stop.
+
+Otherwise, please make sure your PC is connected to the network
+next time you are in the office.
+
+Regards,
+BackupPC Genie
+http://backuppc.sourceforge.net
+EOF
+
+# No recent backup
+$Lang{EMailNoBackupRecentSubj} = "BackupPC: no recent backups on \$host";
+$Lang{EMailNoBackupRecentMesg} = <<'EOF';
+To: $user$domain
+cc:
+Subject: $subj
+
+Dear $userName,
+
+Your PC ($host) has not been successfully backed up for $days days.
+Your PC has been correctly backed up $numBackups times from $firstTime to $days
+ago.  PC backups should occur automatically when your PC is connected
+to the network.
+
+If your PC has been connected for more than a few hours to the
+network during the last $days days you should contact IS to find
+out why backups are not working.
+
+Otherwise, if you are out of the office, there's not much you can
+do, other than manually copying especially critical files to other
+media.  You should be aware that any files you have created or
+changed in the last $days days (including all new email and
+attachments) cannot be restored if your PC disk crashes.
+
+Regards,
+BackupPC Genie
+http://backuppc.sourceforge.net
+EOF
+
+# Old Outlook files
+$Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up";
+$Lang{EMailOutlookBackupMesg} = <<'EOF';
+To: $user$domain
+cc:
+Subject: $subj
+
+Dear $userName,
+
+The Outlook files on your PC have $howLong.
+These files contain all your email, attachments, contact and calendar           
+information.  Your PC has been correctly backed up $numBackups times from
+$firstTime to $lastTime days ago.  However, Outlook locks all its files when
+it is running, preventing these files from being backed up.
+
+It is recommended you backup the Outlook files when you are connected
+to the network by exiting Outlook and all other applications, and,
+using just your browser, go to this link:
+
+    $CgiURL?host=$host               
+
+Select "Start Incr Backup" twice to start a new incremental backup.
+You can select "Return to $host page" and then hit "reload" to check
+the status of the backup.  It should take just a few minutes to
+complete.
+
+Regards,
+BackupPC Genie
+http://backuppc.sourceforge.net
+EOF
+
+$Lang{howLong_not_been_backed_up} = "not been backed up successfully";
+$Lang{howLong_not_been_backed_up_for_days_days} = "not been backed up for \$days days";
+
 #end of lang_en.pm