3.1.0 changes:
[BackupPC.git] / lib / BackupPC / Lang / en.pm
index 2a417bc..1b72d71 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/perl -T
+#!/bin/perl
 
 #my %lang;
 #use strict;
@@ -12,6 +12,9 @@ $Lang{Start_Incr_Backup} = "Start Incr Backup";
 $Lang{Stop_Dequeue_Backup} = "Stop/Dequeue Backup";
 $Lang{Restore} = "Restore";
 
+$Lang{Type_full} = "full";
+$Lang{Type_incr} = "incremental";
+
 # -----
 
 $Lang{Only_privileged_users_can_view_admin_options} = "Only privileged users can view admin options.";
@@ -20,18 +23,22 @@ $Lang{Admin_Options} = "Admin Options";
 $Lang{Admin_Options_Page} = <<EOF;
 \${h1(qq{$Lang{Admin_Options}})}
 <br>
-\${h1("Server Control")}
-<form action="\$MyURL" method="get">
-<table>
-  <tr><td>Stop the server:<td><input type="submit" name="action" value="Stop">
-  <tr><td>Reload the server configuration:<td><input type="submit" name="action" value="Reload">
+\${h2("Server Control")}
+<form name="ReloadForm" action="\$MyURL" method="get">
+<input type="hidden" name="action" value="">
+<table class="tableStnd">
+  <tr><td>Reload the server configuration:<td><input type="button" value="Reload"
+     onClick="document.ReloadForm.action.value='Reload';
+              document.ReloadForm.submit();">
 </table>
 </form>
-\${h1("Server Configuration")}
+<!--
+\${h2("Server Configuration")}
 <ul>
   <li><i>Other options can go here... e.g.,</i>
   <li>Edit server configuration
 </ul>
+-->
 EOF
 $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server",
             "This CGI script (\$MyURL) is unable to connect to the BackupPC"
@@ -54,10 +61,7 @@ EOF
 
 $Lang{H_BackupPC_Server_Status} = "BackupPC Server Status";
 
-$Lang{BackupPC_Server_Status}= <<EOF;
-\${h1(qq{$Lang{H_BackupPC_Server_Status}})}
-
-<p>
+$Lang{BackupPC_Server_Status_General_Info}= <<EOF;
 \${h2(\"General Server Information\")}
 
 <ul>
@@ -77,10 +81,17 @@ $Lang{BackupPC_Server_Status}= <<EOF;
             and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
     </ul>
 </ul>
+EOF
+
+$Lang{BackupPC_Server_Status} = <<EOF;
+\${h1(qq{$Lang{H_BackupPC_Server_Status}})}
+
+<p>
+\$generalInfo
 
 \${h2("Currently Running Jobs")}
 <p>
-<table cellspacing="1" cellpadding="3">
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
 <tr class="tableheader"><td> Host </td>
     <td> Type </td>
     <td> User </td>
@@ -95,7 +106,7 @@ $Lang{BackupPC_Server_Status}= <<EOF;
 
 \${h2("Failures that need attention")}
 <p>
-<table cellspacing="1" cellpadding="3">
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
 <tr class="tableheader"><td align="center"> Host </td>
     <td align="center"> Type </td>
     <td align="center"> User </td>
@@ -108,13 +119,18 @@ $Lang{BackupPC_Server_Status}= <<EOF;
 EOF
 
 # --------------------------------
-$Lang{BackupPC__Server_Summary} = "BackupPC: Server Summary";
+$Lang{BackupPC__Server_Summary} = "BackupPC: Host Summary";
 $Lang{BackupPC__Archive} = "BackupPC: Archive";
-$Lang{BackupPC_Summary}=<<EOF;
+$Lang{BackupPC_Summary} = <<EOF;
 
 \${h1(qq{$Lang{BackupPC__Server_Summary}})}
 <p>
-This status was generated at \$now.
+<ul>
+<li>This status was generated at \$now.
+<li>Pool file system was recently at \$Info{DUlastValue}%
+    (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime)
+        and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
+</ul>
 </p>
 
 \${h2("Hosts with good Backups")}
@@ -127,15 +143,16 @@ There are \$hostCntGood hosts that have been backed up, for a total of:
      (prior to pooling and compression).
 </ul>
 </p>
-<table cellpadding="3" cellspacing="1">
+<table class="sortable" id="host_summary_backups" border cellpadding="3" cellspacing="1">
 <tr class="tableheader"><td> Host </td>
     <td align="center"> User </td>
     <td align="center"> #Full </td>
-    <td align="center"> Full Age/days </td>
-    <td align="center"> Full Size/GB </td>
-    <td align="center"> Speed MB/sec </td>
+    <td align="center"> Full Age (days) </td>
+    <td align="center"> Full Size (GB) </td>
+    <td align="center"> Speed (MB/s) </td>
     <td align="center"> #Incr </td>
-    <td align="center"> Incr Age/days </td>
+    <td align="center"> Incr Age (days) </td>
+    <td align="center"> Last Backup (days) </td>
     <td align="center"> State </td>
     <td align="center"> Last attempt </td></tr>
 \$strGood
@@ -145,23 +162,23 @@ There are \$hostCntGood hosts that have been backed up, for a total of:
 <p>
 There are \$hostCntNone hosts with no backups.
 <p>
-<table cellpadding="3" cellspacing="1">
+<table class="sortable" id="host_summary_nobackups" border cellpadding="3" cellspacing="1">
 <tr class="tableheader"><td> Host </td>
     <td align="center"> User </td>
     <td align="center"> #Full </td>
-    <td align="center"> Full Age/days </td>
-    <td align="center"> Full Size/GB </td>
-    <td align="center"> Speed MB/sec </td>
+    <td align="center"> Full Age (days) </td>
+    <td align="center"> Full Size (GB) </td>
+    <td align="center"> Speed (MB/s) </td>
     <td align="center"> #Incr </td>
     <td align="center"> Incr Age/days </td>
-    <td align="center"> Current State </td>
-    <td align="center"> Last backup attempt </td></tr>
+    <td align="center"> Last Backup (days) </td>
+    <td align="center"> State </td>
+    <td align="center"> Last attempt </td></tr>
 \$strNone
 </table>
 EOF
 
-$Lang{BackupPC_Archive}=<<EOF;
-
+$Lang{BackupPC_Archive} = <<EOF;
 \${h1(qq{$Lang{BackupPC__Archive}})}
 <script language="javascript" type="text/javascript">
 <!--
@@ -195,22 +212,21 @@ There are \$hostCntGood hosts that have been backed up for a total size of \${fu
 <form name="form1" method="post" action="\$MyURL">
 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
 <input type="hidden" name="type" value="1">
+<input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
 <input type="hidden" name="action" value="Archive">
-<table cellpadding="0" cellspacing="0" bgcolor="#333333"><tr><td>
-<table border="0" width="100%" align="left" cellpadding="2" cellspacing="1">
-<tr bgcolor="#99cc33"><td align=center> Host</td>
+<table class="tableStnd" border cellpadding="3" cellspacing="1">
+<tr class="tableheader"><td align=center> Host</td>
     <td align="center"> User </td>
     <td align="center"> Backup Size </td>
 \$strGood
 \$checkAllHosts
 </table>
-</td></tr></table>
+</form>
 <p>
 
-</table>
 EOF
 
-$Lang{BackupPC_Archive2}=<<EOF;
+$Lang{BackupPC_Archive2} = <<EOF;
 \${h1(qq{$Lang{BackupPC__Archive}})}
 About to archive the following hosts
 <ul>
@@ -219,30 +235,48 @@ About to archive the following hosts
 <form action="\$MyURL" method="post">
 \$hiddenStr
 <input type="hidden" name="action" value="Archive">
+<input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
 <input type="hidden" name="type" value="2">
 <input type="hidden" value="0" name="archive_type">
-<table border="1">
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
+\$paramStr
+<tr>
+    <td colspan=2><input type="submit" value="Start the Archive" name="ignore"></td>
+</tr>
+</form>
+</table>
+EOF
+
+$Lang{BackupPC_Archive2_location} = <<EOF;
 <tr>
     <td>Archive Location/Device</td>
     <td><input type="text" value="\$ArchiveDest" name="archive_device"></td>
+</tr>
+EOF
+
+$Lang{BackupPC_Archive2_compression} = <<EOF;
 <tr>
     <td>Compression</td>
-    <td><input type="radio" value="0" name="compression" \$ArchiveCompNone>None<br>
+    <td>
+    <input type="radio" value="0" name="compression" \$ArchiveCompNone>None<br>
     <input type="radio" value="1" name="compression" \$ArchiveCompGzip>gzip<br>
-    <input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2</tr>
+    <input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2
+    </td>
 </tr>
+EOF
+
+$Lang{BackupPC_Archive2_parity} = <<EOF;
 <tr>
-    <td>Number of Parity Files</td>
+    <td>Percentage of Parity Data (0 = disable, 5 = typical)</td>
     <td><input type="numeric" value="\$ArchivePar" name="par"></td>
 </tr>
+EOF
+
+$Lang{BackupPC_Archive2_split} = <<EOF;
 <tr>
-    <td>Split output into:</td>
+    <td>Split output into</td>
     <td><input type="numeric" value="\$ArchiveSplit" name="splitsize">Megabytes</td>
 </tr>
-<tr>
-    <td colspan=2><input type="submit" value="Start the Archive" name=""></td>
-</tr>
-</table>
 EOF
 
 # -----------------------------------
@@ -273,13 +307,16 @@ $Lang{Are_you_sure_start} = <<EOF;
 <p>
 You are about to start a \$type backup on \$host.
 
-<form action="\$MyURL" method="get">
+<form name="Confirm" action="\$MyURL" method="get">
 <input type="hidden" name="host" value="\$host">
 <input type="hidden" name="hostIP" value="\$ipAddr">
 <input type="hidden" name="doit" value="1">
+<input type="hidden" name="action" value="">
 Do you really want to do this?
-<input type="submit" value="\$In{action}" name="action">
-<input type="submit" value="No" name="">
+<input type="button" value="\$buttonText"
+  onClick="document.Confirm.action.value='\$In{action}';
+           document.Confirm.submit();">
+<input type="submit" value="No" name="ignore">
 </form>
 EOF
 # --------------------------------
@@ -292,15 +329,18 @@ $Lang{Are_you_sure_stop} = <<EOF;
 <p>
 You are about to stop/dequeue backups on \$host;
 
-<form action="\$MyURL" method="get">
-<input type="hidden" name="host" value="\$host">
-<input type="hidden" name="doit" value="1">
+<form name="Confirm" action="\$MyURL" method="get">
+<input type="hidden" name="host"   value="\$host">
+<input type="hidden" name="doit"   value="1">
+<input type="hidden" name="action" value="">
 Also, please don\'t start another backup for
 <input type="text" name="backoff" size="10" value="\$backoff"> hours.
 <p>
 Do you really want to do this?
-<input type="submit" value="\$In{action}" name="action">
-<input type="submit" value="No" name="">
+<input type="button" value="\$buttonText"
+  onClick="document.Confirm.action.value='\$In{action}';
+           document.Confirm.submit();">
+<input type="submit" value="No" name="ignore">
 </form>
 
 EOF
@@ -318,7 +358,7 @@ $Lang{Backup_Queue_Summary} = <<EOF;
 <p>
 The following user requests are currently queued:
 </p>
-<table cellspacing="1" cellpadding="3" width="80%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td> Host </td>
     <td> Req Time </td>
     <td> User </td></tr>
@@ -330,7 +370,7 @@ The following user requests are currently queued:
 <p>
 The following background requests are currently queued:
 </p>
-<table cellspacing="1" cellpadding="3" width="80%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td> Host </td>
     <td> Req Time </td>
     <td> User </td></tr>
@@ -341,7 +381,7 @@ The following background requests are currently queued:
 <p>
 The following command requests are currently queued:
 </p>
-<table cellspacing="1" cellpadding="3" width="80%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td> Host </td>
     <td> Req Time </td>
     <td> User </td>
@@ -351,14 +391,14 @@ The following command requests are currently queued:
 EOF
 
 # --------------------------------
-$Lang{Backup_PC__Log_File__file} = "BackupPC: Log File \$file";
+$Lang{Backup_PC__Log_File__file} = "BackupPC: File \$file";
 $Lang{Log_File__file__comment} = <<EOF;
-\${h1("Log File \$file \$comment")}
+\${h1("File \$file \$comment")}
 <p>
 EOF
 # --------------------------------
 $Lang{Contents_of_log_file} = <<EOF;
-Contents of log file <tt>\$file</tt>, modified \$mtimeStr \$comment
+Contents of file <tt>\$file</tt>, modified \$mtimeStr \$comment
 EOF
 
 # --------------------------------
@@ -371,7 +411,7 @@ $Lang{BackupPC__Log_File_History} = "BackupPC: Log File History";
 $Lang{Log_File_History__hdr} = <<EOF;
 \${h1("Log File History \$hdr")}
 <p>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td align="center"> File </td>
     <td align="center"> Size </td>
     <td align="center"> Modification time </td></tr>
@@ -383,7 +423,7 @@ EOF
 $Lang{Recent_Email_Summary} = <<EOF;
 \${h1("Recent Email Summary (Reverse time order)")}
 <p>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td align="center"> Recipient </td>
     <td align="center"> Host </td>
     <td align="center"> Time </td>
@@ -412,8 +452,11 @@ Please select one of the following options.
 </p>
 \${h2("Option 1: Direct Restore")}
 <p>
+EOF
+
+$Lang{Restore_Options_for__host_Option1} = <<EOF;
 You can start a restore that will restore these files directly onto
-\$host.
+<b>\$directHost</b>.
 </p><p>
 <b>Warning:</b> any existing files that match the ones you have
 selected will be overwritten!
@@ -424,20 +467,20 @@ selected will be overwritten!
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Restore the files to host</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
         name="hostDest">-->
         <select name="hostDest" onChange="document.direct.shareDest.value=''">
-        <!-- hostOpt -->
+        \$hostDestSel
         </select>
         <script language="Javascript">
         function myOpen(URL) {
-               window.open(URL,'','width=200,height=200');
-       }
+               window.open(URL,'','width=500,height=400');
+        }
         </script>
-        <a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">Search for available shares</a></td>
+        <!--<a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">Search for available shares (NOT IMPLEMENTED)</a>--></td>
 </tr><tr>
     <td>Restore the files to share</td>
     <td><input type="text" size="40" value="\${EscHTML(\$share)}"
@@ -447,14 +490,19 @@ selected will be overwritten!
     <td valign="top"><input type="text" size="40" maxlength="256"
        value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
 </tr><tr>
-    <td><input type="submit" value="Start Restore" name=""></td>
+    <td><input type="submit" value="Start Restore" name="ignore"></td>
 </table>
 </form>
 EOF
 
+$Lang{Restore_Options_for__host_Option1_disabled} = <<EOF;
+Direct restore has been disabled for host \${EscHTML(\$hostDest)}.
+Please select one of the other restore options.
+EOF
+
 # ------------------------------
 $Lang{Option_2__Download_Zip_archive} = <<EOF;
-
+<p>
 \${h2("Option 2: Download Zip archive")}
 <p>
 You can download a Zip archive containing all the files/directories you have
@@ -479,13 +527,14 @@ to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
 Compression (0=off, 1=fast,...,9=best)
 <input type="text" size="6" value="5" name="compressLevel">
 <br>
-<input type="submit" value="Download Zip File" name="">
+<input type="submit" value="Download Zip File" name="ignore">
 </form>
 EOF
 
 # ------------------------------
 
 $Lang{Option_2__Download_Zip_archive2} = <<EOF;
+<p>
 \${h2("Option 2: Download Zip archive")}
 <p>
 Archive::Zip is not installed so you will not be able to download a
@@ -519,7 +568,7 @@ space to store it.
 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
 (otherwise archive will contain full paths).
 <br>
-<input type="submit" value="Download Tar File" name="">
+<input type="submit" value="Download Tar File" name="ignore">
 </form>
 EOF
 
@@ -534,22 +583,25 @@ You are about to start a restore directly to the machine \$In{hostDest}.
 The following files will be restored to share \$In{shareDest}, from
 backup number \$num:
 <p>
-<table border>
-<tr><td>Original file/dir</td><td>Will be restored to</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Original file/dir</td><td>Will be restored to</td></tr>
 \$fileListStr
 </table>
 
-<form action="\$MyURL" method="post">
+<form name="RestoreForm" action="\$MyURL" method="post">
 <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">
+<input type="hidden" name="action" value="">
 \$hiddenStr
 Do you really want to do this?
-<input type="submit" value="\$In{action}" name="action">
-<input type="submit" value="No" name="">
+<input type="button" value="\$Lang->{Restore}"
+ onClick="document.RestoreForm.action.value='Restore';
+          document.RestoreForm.submit();">
+<input type="submit" value="No" name="ignore">
 </form>
 EOF
 
@@ -584,21 +636,27 @@ $Lang{Host__host_Backup_Summary2} = <<EOF;
 </p>
 \${h2("User Actions")}
 <p>
-<form action="\$MyURL" method="get">
-<input type="hidden" name="host" value="\$host">
+<form name="StartStopForm" action="\$MyURL" method="get">
+<input type="hidden" name="host"   value="\$host">
+<input type="hidden" name="action" value="">
 \$startIncrStr
-<input type="submit" value="$Lang{Start_Full_Backup}" name="action">
-<input type="submit" value="$Lang{Stop_Dequeue_Backup}" name="action">
+<input type="button" value="\$Lang->{Start_Full_Backup}"
+ onClick="document.StartStopForm.action.value='Start_Full_Backup';
+          document.StartStopForm.submit();">
+<input type="button" value="\$Lang->{Stop_Dequeue_Backup}"
+ onClick="document.StartStopForm.action.value='Stop_Dequeue_Backup';
+          document.StartStopForm.submit();">
 </form>
 </p>
 \${h2("Backup Summary")}
 <p>
 Click on the backup number to browse and restore backup files.
 </p>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3">
 <tr class="tableheader"><td align="center"> Backup# </td>
     <td align="center"> Type </td>
     <td align="center"> Filled </td>
+    <td align="center"> Level </td>
     <td align="center"> Start Date </td>
     <td align="center"> Duration/mins </td>
     <td align="center"> Age/days </td>
@@ -613,7 +671,7 @@ Click on the backup number to browse and restore backup files.
 <br><br>
 \${h2("Xfer Error Summary")}
 <br><br>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td align="center"> Backup# </td>
     <td align="center"> Type </td>
     <td align="center"> View </td>
@@ -632,7 +690,7 @@ Existing files are those already in the pool; new files are those added
 to the pool.
 Empty files and SMB errors aren\'t counted in the reuse and new counts.
 </p>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td colspan="2" bgcolor="#ffffff"></td>
     <td align="center" colspan="3"> Totals </td>
     <td align="center" colspan="2"> Existing Files </td>
@@ -658,7 +716,7 @@ Empty files and SMB errors aren\'t counted in the reuse and new counts.
 Compression performance for files already in the pool and newly
 compressed files.
 </p>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td colspan="3" bgcolor="#ffffff"></td>
     <td align="center" colspan="3"> Existing Files </td>
     <td align="center" colspan="3"> New Files </td>
@@ -689,14 +747,18 @@ $Lang{Host__host_Archive_Summary2} = <<EOF;
 
 \${h2("User Actions")}
 <p>
-<form action="\$MyURL" method="get">
+<form name="StartStopForm" action="\$MyURL" method="get">
 <input type="hidden" name="archivehost" value="\$host">
 <input type="hidden" name="host" value="\$host">
-<input type="submit" value="$Lang{Start_Archive}" name="action">
-<input type="submit" value="$Lang{Stop_Dequeue_Archive}" name="action">
+<input type="hidden" name="action" value="">
+<input type="button" value="\$Lang->{Start_Archive}"
+ onClick="document.StartStopForm.action.value='Start_Archive';
+          document.StartStopForm.submit();">
+<input type="button" value="\$Lang->{Stop_Dequeue_Archive}"
+ onClick="document.StartStopForm.action.value='Stop_Dequeue_Archive';
+          document.StartStopForm.submit();">
 </form>
 
-
 \$ArchiveStr
 
 EOF
@@ -764,17 +826,17 @@ $Lang{Backup_browse_for__host} = <<EOF;
 <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}">
+<input type="hidden" name="action" value="Restore">
 <br>
 <table width="100%">
-<tr><td valign="top">
-    <br><table align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
+<tr><td valign="top" width="30%">
+    <table align="left" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
     \$dirStr
     </table>
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -821,7 +883,7 @@ the backups:
 \${h2("History of \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Backup number</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr>
 \$fileStr
@@ -831,10 +893,10 @@ EOF
 # ------------------------------
 $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host";
 
-$Lang{Restore___num_details_for__host2 } = <<EOF;
+$Lang{Restore___num_details_for__host2} = <<EOF;
 \${h1("Restore #\$num Details for \$host")}
 <p>
-<table cellspacing="1" cellpadding="3" width="50%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="90%">
 <tr><td class="tableheader"> Number </td><td class="border"> \$Restores[\$i]{num} </td></tr>
 <tr><td class="tableheader"> Requested by </td><td class="border"> \$RestoreReq{user} </td></tr>
 <tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr>
@@ -857,10 +919,10 @@ $Lang{Restore___num_details_for__host2 } = <<EOF;
 <a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Errors</a>
 </tr></tr>
 </table>
-<p>
+</p>
 \${h1("File/Directory list")}
 <p>
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="100%">
 <tr class="tableheader"><td>Original file/dir</td><td>Restored to</td></tr>
 \$fileListStr
 </table>
@@ -872,15 +934,15 @@ $Lang{Archive___num_details_for__host} = "BackupPC: Archive #\$num details for \
 $Lang{Archive___num_details_for__host2 } = <<EOF;
 \${h1("Archive #\$num Details for \$host")}
 <p>
-<table border>
-<tr><td> Number </td><td> \$Archives[\$i]{num} </td></tr>
-<tr><td> Requested by </td><td> \$ArchiveReq{user} </td></tr>
-<tr><td> Request time </td><td> \$reqTime </td></tr>
-<tr><td> Result </td><td> \$Archives[\$i]{result} </td></tr>
-<tr><td> Error Message </td><td> \$Archives[\$i]{errorMsg} </td></tr>
-<tr><td> Start time </td><td> \$startTime </td></tr>
-<tr><td> Duration </td><td> \$duration min </td></tr>
-<tr><td> Xfer log file </td><td>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr><td class="tableheader"> Number </td><td class="border"> \$Archives[\$i]{num} </td></tr>
+<tr><td class="tableheader"> Requested by </td><td class="border"> \$ArchiveReq{user} </td></tr>
+<tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr>
+<tr><td class="tableheader"> Result </td><td class="border"> \$Archives[\$i]{result} </td></tr>
+<tr><td class="tableheader"> Error Message </td><td class="border"> \$Archives[\$i]{errorMsg} </td></tr>
+<tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr>
+<tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr>
+<tr><td class="tableheader"> Xfer log file </td><td class="border">
 <a href="\$MyURL?action=view&type=ArchiveLOG&num=\$Archives[\$i]{num}&host=\$host">View</a>,
 <a href="\$MyURL?action=view&type=ArchiveErr&num=\$Archives[\$i]{num}&host=\$host">Errors</a>
 </tr></tr>
@@ -888,8 +950,8 @@ $Lang{Archive___num_details_for__host2 } = <<EOF;
 <p>
 \${h1("Host list")}
 <p>
-<table border>
-<tr><td>Host</td><td>Backup Number</td></tr>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td>Host</td><td>Backup Number</td></tr>
 \$HostListStr
 </table>
 EOF
@@ -931,8 +993,8 @@ $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any
 $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"
                    . " \${EscHTML(\$In{hostDest})}";
-$Lang{Can_t_open_create} = "Can\'t open/create "
-                    . "\${EscHTML(\"\$TopDir/pc/\$hostDest/\$reqFileName\")}";
+$Lang{Can_t_open_create__openPath} = "Can\'t open/create "
+               . "\${EscHTML(\"\$openPath\")}";
 $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files"
                 . " for host \${EscHTML(\$host)}.";
 $Lang{Empty_host_name} = "Empty host name";
@@ -955,16 +1017,14 @@ Until I see \$host at a particular DHCP address, you can only
 start this request from the client machine itself.
 EOF
 
-########################
-# ok you can do it then
-########################
+# ------------------------------------
+# !! Server Mesg !!
+# ------------------------------------
 
 $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by"
                                      . " \$User from \$ENV{REMOTE_ADDR}";
-
 $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{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num,"
             . " by \$User from \$ENV{REMOTE_ADDR}";
 $Lang{Archive_requested} = "Archive requested by \$User from \$ENV{REMOTE_ADDR}";
@@ -974,19 +1034,20 @@ $Lang{Archive_requested} = "Archive requested by \$User from \$ENV{REMOTE_ADDR}"
 # -------------------------------------------------
 
 $Lang{Status} = "Status";
-$Lang{PC_Summary} = "PC Summary";
+$Lang{PC_Summary} = "Host Summary";
 $Lang{LOG_file} = "LOG file";
 $Lang{LOG_files} = "LOG files";
 $Lang{Old_LOGs} = "Old LOGs";
 $Lang{Email_summary} = "Email summary";
 $Lang{Config_file} = "Config file";
-$Lang{Hosts_file} = "Hosts file";
+$Lang{Hosts_file} = "Hosts file";
 $Lang{Current_queues} = "Current queues";
 $Lang{Documentation} = "Documentation";
 
-$Lang{Host_or_User_name} = "<small>Host or User name:</small>";
+#$Lang{Host_or_User_name} = "<small>Host or User name:</small>";
 $Lang{Go} = "Go";
 $Lang{Hosts} = "Hosts";
+$Lang{Select_a_host} = "Select a host...";
 
 $Lang{There_have_been_no_archives} = "<h2> There have been no archives </h2>\n";
 $Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n";
@@ -1046,12 +1107,14 @@ EOF
 
 $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
 <li>Because \$host has been on the network at least \$Conf{BlackoutGoodCnt}
-consecutive times, it will not be backed up from \$t0 to \$t1 on \$days.
+consecutive times, it will not be backed up from \$blackoutStr.
 EOF
 
+$Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 on \$days";
+
 $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
 <li>Backups are deferred for \$hours hours
-(<a href=\"\$MyURL?action=Stop/Dequeue%20Backup&host=\$host\">change this number</a>).
+(<a href=\"\$MyURL?action=Stop_Dequeue_Backup&host=\$host\">change this number</a>).
 EOF
 
 $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}";
@@ -1067,9 +1130,9 @@ $Lang{checkAll} = <<EOF;
 EOF
 
 $Lang{checkAllHosts} = <<EOF;
-<tr bgcolor="#ffffcc"><td>
+<tr><td class="fviewborder">
 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
-</td><td colspan="2" align="center">
+</td><td colspan="2" align="center" class="fviewborder">
 <input type="submit" name="Submit" value="Archive selected hosts">
 </td></tr>
 EOF
@@ -1085,6 +1148,7 @@ $Lang{fileHeader} = <<EOF;
 EOF
 
 $Lang{Home} = "Home";
+$Lang{Browse} = "Browse backups";
 $Lang{Last_bad_XferLOG} = "Last bad XferLOG";
 $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors&nbsp;only)";
 
@@ -1100,7 +1164,7 @@ $Lang{Restore_Summary} = <<EOF;
 \${h2("Restore Summary")}
 <p>
 Click on the restore number for more details.
-<table cellspacing="1" cellpadding="3" width="100%">
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
 <tr class="tableheader"><td align="center"> Restore# </td>
     <td align="center"> Result </td>
     <td align="right"> Start Date</td>
@@ -1119,8 +1183,8 @@ $Lang{Archive_Summary} = <<EOF;
 \${h2("Archive Summary")}
 <p>
 Click on the archive number for more details.
-<table border>
-<tr><td align="center"> Archive# </td>
+<table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
+<tr class="tableheader"><td align="center"> Archive# </td>
     <td align="center"> Result </td>
     <td align="right"> Start Date</td>
     <td align="right"> Dur/mins</td>
@@ -1161,14 +1225,20 @@ $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_backup_done}    = "done";
+$Lang{Reason_restore_done}   = "restore done";
+$Lang{Reason_archive_done}   = "archive done";
+$Lang{Reason_nothing_to_do}  = "idle";
+$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_archive_failed} = "archive 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";
+$Lang{Reason_archive_canceled_by_user} = "archive canceled by user";
+$Lang{Disabled_OnlyManualBackups}  = "auto disabled";  
+$Lang{Disabled_AllBackupsDisabled} = "disabled";                  
+
 
 # ---------
 # Email messages
@@ -1179,7 +1249,7 @@ $Lang{EMailNoBackupEverMesg} = <<'EOF';
 To: $user$domain
 cc:
 Subject: $subj
-
+$headers
 Dear $userName,
 
 Your PC ($host) has never been successfully backed up by our
@@ -1208,7 +1278,7 @@ $Lang{EMailNoBackupRecentMesg} = <<'EOF';
 To: $user$domain
 cc:
 Subject: $subj
-
+$headers
 Dear $userName,
 
 Your PC ($host) has not been successfully backed up for $days days.
@@ -1237,7 +1307,7 @@ $Lang{EMailOutlookBackupMesg} = <<'EOF';
 To: $user$domain
 cc:
 Subject: $subj
-
+$headers
 Dear $userName,
 
 The Outlook files on your PC have $howLong.
@@ -1265,4 +1335,134 @@ 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";
 
+#######################################################################
+# RSS strings
+#######################################################################
+$Lang{RSS_Doc_Title}       = "BackupPC Server";
+$Lang{RSS_Doc_Description} = "RSS feed for BackupPC";
+$Lang{RSS_Host_Summary}    = <<EOF;
+Full Count: \$fullCnt;
+Full Age/days: \$fullAge;
+Full Size/GB: \$fullSize;
+Speed MB/sec: \$fullRate;
+Incr Count: \$incrCnt;
+Incr Age/Days: \$incrAge;
+State: \$host_state;
+Last Attempt: \$host_last_attempt;
+EOF
+
+#######################################################################
+# Configuration editor strings
+#######################################################################
+
+$Lang{Only_privileged_users_can_edit_config_files} = "Only privileged users can edit configuation settings.";
+$Lang{CfgEdit_Edit_Config} = "Edit Config";
+$Lang{CfgEdit_Edit_Hosts}  = "Edit Hosts";
+
+$Lang{CfgEdit_Title_Server} = "Server";
+$Lang{CfgEdit_Title_General_Parameters} = "General Parameters";
+$Lang{CfgEdit_Title_Wakeup_Schedule} = "Wakeup Schedule";
+$Lang{CfgEdit_Title_Concurrent_Jobs} = "Concurrent Jobs";
+$Lang{CfgEdit_Title_Pool_Filesystem_Limits} = "Pool Filesystem Limits";
+$Lang{CfgEdit_Title_Other_Parameters} = "Other Parameters";
+$Lang{CfgEdit_Title_Remote_Apache_Settings} = "Remote Apache Settings";
+$Lang{CfgEdit_Title_Program_Paths} = "Program Paths";
+$Lang{CfgEdit_Title_Install_Paths} = "Install Paths";
+$Lang{CfgEdit_Title_Email} = "Email";
+$Lang{CfgEdit_Title_Email_settings} = "Email settings";
+$Lang{CfgEdit_Title_Email_User_Messages} = "Email User Messages";
+$Lang{CfgEdit_Title_CGI} = "CGI";
+$Lang{CfgEdit_Title_Admin_Privileges} = "Admin Privileges";
+$Lang{CfgEdit_Title_Page_Rendering} = "Page Rendering";
+$Lang{CfgEdit_Title_Paths} = "Paths";
+$Lang{CfgEdit_Title_User_URLs} = "User URLs";
+$Lang{CfgEdit_Title_User_Config_Editing} = "User Config Editing";
+$Lang{CfgEdit_Title_Xfer} = "Xfer";
+$Lang{CfgEdit_Title_Xfer_Settings} = "Xfer Settings";
+$Lang{CfgEdit_Title_Smb_Settings} = "Smb Settings";
+$Lang{CfgEdit_Title_Tar_Settings} = "Tar Settings";
+$Lang{CfgEdit_Title_Rsync_Settings} = "Rsync Settings";
+$Lang{CfgEdit_Title_Rsyncd_Settings} = "Rsyncd Settings";
+$Lang{CfgEdit_Title_BackupPCd_Settings} = "BackupPCd Settings";
+$Lang{CfgEdit_Title_Archive_Settings} = "Archive Settings";
+$Lang{CfgEdit_Title_Include_Exclude} = "Include/Exclude";
+$Lang{CfgEdit_Title_Smb_Paths_Commands} = "Smb Paths/Commands";
+$Lang{CfgEdit_Title_Tar_Paths_Commands} = "Tar Paths/Commands";
+$Lang{CfgEdit_Title_Rsync_Paths_Commands_Args} = "Rsync Paths/Commands/Args";
+$Lang{CfgEdit_Title_Rsyncd_Port_Args} = "Rsyncd Port/Args";
+$Lang{CfgEdit_Title_Archive_Paths_Commands} = "Archive Paths/Commands";
+$Lang{CfgEdit_Title_Schedule} = "Schedule";
+$Lang{CfgEdit_Title_Full_Backups} = "Full Backups";
+$Lang{CfgEdit_Title_Incremental_Backups} = "Incremental Backups";
+$Lang{CfgEdit_Title_Blackouts} = "Blackouts";
+$Lang{CfgEdit_Title_Other} = "Other";
+$Lang{CfgEdit_Title_Backup_Settings} = "Backup Settings";
+$Lang{CfgEdit_Title_Client_Lookup} = "Client Lookup";
+$Lang{CfgEdit_Title_Other} = "Other";
+$Lang{CfgEdit_Title_User_Commands} = "User Commands";
+$Lang{CfgEdit_Title_Hosts} = "Hosts";
+
+$Lang{CfgEdit_Hosts_Comment} = <<EOF;
+To add a new host, select Add and then enter the name.  To start with
+the per-host configuration from another host, enter the host name
+as NEWHOST=COPYHOST.  This will overwrite any existing per-host
+configuration for NEWHOST.  You can also do this for an existing
+host.  To delete a host, hit the Delete button.  For Add, Delete,
+and configuration copy, changes don't take effect until you select
+Save.  None of the deleted host's backups will be removed,
+so if you accidently delete a host, simply re-add it.  To completely
+remove a host's backups, you need to manually remove the files
+below \$topDir/pc/HOST
+EOF
+
+$Lang{CfgEdit_Header_Main} = <<EOF;
+\${h1("Main Configuration Editor")}
+EOF
+
+$Lang{CfgEdit_Header_Host} = <<EOF;
+\${h1("Host \$host Configuration Editor")}
+<p>
+Note: Check Override if you want to modify a value specific to this host.
+<p>
+EOF
+
+$Lang{CfgEdit_Button_Save}     = "Save";
+$Lang{CfgEdit_Button_Insert}   = "Insert";
+$Lang{CfgEdit_Button_Delete}   = "Delete";
+$Lang{CfgEdit_Button_Add}      = "Add";
+$Lang{CfgEdit_Button_Override} = "Override";
+$Lang{CfgEdit_Button_New_Key}  = "New Key";
+
+$Lang{CfgEdit_Error_No_Save}
+            = "Error: No save due to errors";
+$Lang{CfgEdit_Error__must_be_an_integer}
+            = "Error: \$var must be an integer";
+$Lang{CfgEdit_Error__must_be_real_valued_number}
+            = "Error: \$var must be a real-valued number";
+$Lang{CfgEdit_Error__entry__must_be_an_integer}
+            = "Error: \$var entry \$k must be an integer";
+$Lang{CfgEdit_Error__entry__must_be_real_valued_number}
+            = "Error: \$var entry \$k must be a real-valued number";
+$Lang{CfgEdit_Error__must_be_executable_program}
+            = "Error: \$var must be a valid executable path";
+$Lang{CfgEdit_Error__must_be_valid_option}
+            = "Error: \$var must be a valid option";
+$Lang{CfgEdit_Error_Copy_host_does_not_exist}
+            = "Copy host \$copyHost doesn't exist; creating full host name \$fullHost.  Delete this host if that is not what you wanted.";
+
+$Lang{CfgEdit_Log_Copy_host_config}
+            = "\$User copied config from host \$fromHost to \$host\n";
+$Lang{CfgEdit_Log_Delete_param}
+            = "\$User deleted \$p from \$conf\n";
+$Lang{CfgEdit_Log_Add_param_value}
+            = "\$User added \$p to \$conf, set to \$value\n";
+$Lang{CfgEdit_Log_Change_param_value}
+            = "\$User changed \$p in \$conf to \$valueNew from \$valueOld\n";
+$Lang{CfgEdit_Log_Host_Delete}
+            = "\$User deleted host \$host\n";
+$Lang{CfgEdit_Log_Host_Change}
+            = "\$User host \$host changed \$key from \$valueOld to \$valueNew\n";
+$Lang{CfgEdit_Log_Host_Add}
+            = "\$User added host \$host: \$value\n";
+  
 #end of lang_en.pm