* Added more options to server backup command: rather than just forcing
[BackupPC.git] / lib / BackupPC / Lang / en.pm
1 #!/usr/bin/perl
2
3 #my %lang;
4 #use strict;
5
6 # --------------------------------
7
8 $Lang{Start_Archive} = "Start Archive";
9 $Lang{Stop_Dequeue_Archive} = "Stop/Dequeue Archive";
10 $Lang{Start_Full_Backup} = "Start Full Backup";
11 $Lang{Start_Incr_Backup} = "Start Incr Backup";
12 $Lang{Stop_Dequeue_Backup} = "Stop/Dequeue Backup";
13 $Lang{Restore} = "Restore";
14
15 $Lang{Type_full} = "full";
16 $Lang{Type_incr} = "incremental";
17
18 # -----
19
20 $Lang{Only_privileged_users_can_view_admin_options} = "Only privileged users can view admin options.";
21 $Lang{H_Admin_Options} = "BackupPC Server: Admin Options";
22 $Lang{Admin_Options} = "Admin Options";
23 $Lang{Admin_Options_Page} = <<EOF;
24 \${h1(qq{$Lang{Admin_Options}})}
25 <br>
26 \${h2("Server Control")}
27 <form name="ReloadForm" action="\$MyURL" method="get">
28 <input type="hidden" name="action" value="">
29 <table class="tableStnd">
30   <tr><td>Reload the server configuration:<td><input type="button" value="Reload"
31      onClick="document.ReloadForm.action.value='Reload';
32               document.ReloadForm.submit();">
33 </table>
34 </form>
35 <!--
36 \${h2("Server Configuration")}
37 <ul>
38   <li><i>Other options can go here... e.g.,</i>
39   <li>Edit server configuration
40 </ul>
41 -->
42 EOF
43 $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server",
44             "This CGI script (\$MyURL) is unable to connect to the BackupPC"
45           . " server on \$Conf{ServerHost} port \$Conf{ServerPort}.  The error"
46           . " was: \$err.",
47             "Perhaps the BackupPC server is not running or there is a "
48           . " configuration error.  Please report this to your Sys Admin.";
49 $Lang{Admin_Start_Server} = <<EOF;
50 \${h1(qq{$Lang{Unable_to_connect_to_BackupPC_server}})}
51 <form action="\$MyURL" method="get">
52 The BackupPC server at <tt>\$Conf{ServerHost}</tt> port <tt>\$Conf{ServerPort}</tt>
53 is not currently running (maybe you just stopped it, or haven't yet started it).<br>
54 Do you want to start it?
55 <input type="hidden" name="action" value="startServer">
56 <input type="submit" value="Start Server" name="ignore">
57 </form>
58 EOF
59
60 # -----
61
62 $Lang{H_BackupPC_Server_Status} = "BackupPC Server Status";
63
64 $Lang{BackupPC_Server_Status_General_Info}= <<EOF;
65 \${h2(\"General Server Information\")}
66
67 <ul>
68 <li> The servers PID is \$Info{pid},  on host \$Conf{ServerHost},
69      version \$Info{Version}, started at \$serverStartTime.
70 <li> This status was generated at \$now.
71 <li> The configuration was last loaded at \$configLoadTime.
72 <li> PCs will be next queued at \$nextWakeupTime.
73 <li> Other info:
74     <ul>
75         <li>\$numBgQueue pending backup requests from last scheduled wakeup,
76         <li>\$numUserQueue pending user backup requests,
77         <li>\$numCmdQueue pending command requests,
78         \$poolInfo
79         <li>Pool file system was recently at \$Info{DUlastValue}%
80             (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime)
81             and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
82     </ul>
83 </ul>
84 EOF
85
86 $Lang{BackupPC_Server_Status} = <<EOF;
87 \${h1(qq{$Lang{H_BackupPC_Server_Status}})}
88
89 <p>
90 \$generalInfo
91
92 \${h2("Currently Running Jobs")}
93 <p>
94 <table class="tableStnd" border cellspacing="1" cellpadding="3">
95 <tr class="tableheader"><td> Host </td>
96     <td> Type </td>
97     <td> User </td>
98     <td> Start Time </td>
99     <td> Command </td>
100     <td align="center"> PID </td>
101     <td align="center"> Xfer PID </td>
102     </tr>
103 \$jobStr
104 </table>
105 <p>
106
107 \${h2("Failures that need attention")}
108 <p>
109 <table class="tableStnd" border cellspacing="1" cellpadding="3">
110 <tr class="tableheader"><td align="center"> Host </td>
111     <td align="center"> Type </td>
112     <td align="center"> User </td>
113     <td align="center"> Last Try </td>
114     <td align="center"> Details </td>
115     <td align="center"> Error Time </td>
116     <td> Last error (other than no ping) </td></tr>
117 \$statusStr
118 </table>
119 EOF
120
121 # --------------------------------
122 $Lang{BackupPC__Server_Summary} = "BackupPC: Host Summary";
123 $Lang{BackupPC__Archive} = "BackupPC: Archive";
124 $Lang{BackupPC_Summary} = <<EOF;
125
126 \${h1(qq{$Lang{BackupPC__Server_Summary}})}
127 <p>
128 <ul>
129 <li>This status was generated at \$now.
130 <li>Pool file system was recently at \$Info{DUlastValue}%
131     (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime)
132         and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
133 </ul>
134 </p>
135
136 \${h2("Hosts with good Backups")}
137 <p>
138 There are \$hostCntGood hosts that have been backed up, for a total of:
139 <ul>
140 <li> \$fullTot full backups of total size \${fullSizeTot}GB
141      (prior to pooling and compression),
142 <li> \$incrTot incr backups of total size \${incrSizeTot}GB
143      (prior to pooling and compression).
144 </ul>
145 </p>
146 <table class="sortable" id="host_summary_backups" border cellpadding="3" cellspacing="1">
147 <tr class="tableheader"><td> Host </td>
148     <td align="center"> User </td>
149     <td align="center"> #Full </td>
150     <td align="center"> Full Age (days) </td>
151     <td align="center"> Full Size (GB) </td>
152     <td align="center"> Speed (MB/s) </td>
153     <td align="center"> #Incr </td>
154     <td align="center"> Incr Age (days) </td>
155     <td align="center"> Last Backup (days) </td>
156     <td align="center"> State </td>
157     <td align="center"> #Xfer errs </td>
158     <td align="center"> Last attempt </td></tr>
159 \$strGood
160 </table>
161 <br><br>
162 \${h2("Hosts with no Backups")}
163 <p>
164 There are \$hostCntNone hosts with no backups.
165 <p>
166 <table class="sortable" id="host_summary_nobackups" border cellpadding="3" cellspacing="1">
167 <tr class="tableheader"><td> Host </td>
168     <td align="center"> User </td>
169     <td align="center"> #Full </td>
170     <td align="center"> Full Age (days) </td>
171     <td align="center"> Full Size (GB) </td>
172     <td align="center"> Speed (MB/s) </td>
173     <td align="center"> #Incr </td>
174     <td align="center"> Incr Age/days </td>
175     <td align="center"> Last Backup (days) </td>
176     <td align="center"> State </td>
177     <td align="center"> #Xfer errs </td>
178     <td align="center"> Last attempt </td></tr>
179 \$strNone
180 </table>
181 EOF
182
183 $Lang{BackupPC_Archive} = <<EOF;
184 \${h1(qq{$Lang{BackupPC__Archive}})}
185 <script language="javascript" type="text/javascript">
186 <!--
187
188     function checkAll(location)
189     {
190       for (var i=0;i<document.form1.elements.length;i++)
191       {
192         var e = document.form1.elements[i];
193         if ((e.checked || !e.checked) && e.name != \'all\') {
194             if (eval("document.form1."+location+".checked")) {
195                 e.checked = true;
196             } else {
197                 e.checked = false;
198             }
199         }
200       }
201     }
202
203     function toggleThis(checkbox)
204     {
205        var cb = eval("document.form1."+checkbox);
206        cb.checked = !cb.checked;
207     }
208
209 //-->
210 </script>
211
212 There are \$hostCntGood hosts that have been backed up for a total size of \${fullSizeTot}GB
213 <p>
214 <form name="form1" method="post" action="\$MyURL">
215 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
216 <input type="hidden" name="type" value="1">
217 <input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
218 <input type="hidden" name="action" value="Archive">
219 <table class="tableStnd" border cellpadding="3" cellspacing="1">
220 <tr class="tableheader"><td align=center> Host</td>
221     <td align="center"> User </td>
222     <td align="center"> Backup Size </td>
223 \$strGood
224 \$checkAllHosts
225 </table>
226 </form>
227 <p>
228
229 EOF
230
231 $Lang{BackupPC_Archive2} = <<EOF;
232 \${h1(qq{$Lang{BackupPC__Archive}})}
233 About to archive the following hosts
234 <ul>
235 \$HostListStr
236 </ul>
237 <form action="\$MyURL" method="post">
238 \$hiddenStr
239 <input type="hidden" name="action" value="Archive">
240 <input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
241 <input type="hidden" name="type" value="2">
242 <input type="hidden" value="0" name="archive_type">
243 <table class="tableStnd" border cellspacing="1" cellpadding="3">
244 \$paramStr
245 <tr>
246     <td colspan=2><input type="submit" value="Start the Archive" name="ignore"></td>
247 </tr>
248 </form>
249 </table>
250 EOF
251
252 $Lang{BackupPC_Archive2_location} = <<EOF;
253 <tr>
254     <td>Archive Location/Device</td>
255     <td><input type="text" value="\$ArchiveDest" name="archive_device"></td>
256 </tr>
257 EOF
258
259 $Lang{BackupPC_Archive2_compression} = <<EOF;
260 <tr>
261     <td>Compression</td>
262     <td>
263     <input type="radio" value="0" name="compression" \$ArchiveCompNone>None<br>
264     <input type="radio" value="1" name="compression" \$ArchiveCompGzip>gzip<br>
265     <input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2
266     </td>
267 </tr>
268 EOF
269
270 $Lang{BackupPC_Archive2_parity} = <<EOF;
271 <tr>
272     <td>Percentage of Parity Data (0 = disable, 5 = typical)</td>
273     <td><input type="numeric" value="\$ArchivePar" name="par"></td>
274 </tr>
275 EOF
276
277 $Lang{BackupPC_Archive2_split} = <<EOF;
278 <tr>
279     <td>Split output into</td>
280     <td><input type="numeric" value="\$ArchiveSplit" name="splitsize">Megabytes</td>
281 </tr>
282 EOF
283
284 # -----------------------------------
285 $Lang{Pool_Stat} = <<EOF;
286         <li>Pool is \${poolSize}GB comprising \$info->{"\${name}FileCnt"} files
287             and \$info->{"\${name}DirCnt"} directories (as of \$poolTime),
288         <li>Pool hashing gives \$info->{"\${name}FileCntRep"} repeated
289             files with longest chain \$info->{"\${name}FileRepMax"},
290         <li>Nightly cleanup removed \$info->{"\${name}FileCntRm"} files of
291             size \${poolRmSize}GB (around \$poolTime),
292 EOF
293
294 # --------------------------------
295 $Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Backup Requested on \$host";
296 # --------------------------------
297 $Lang{REPLY_FROM_SERVER} = <<EOF;
298 \${h1(\$str)}
299 <p>
300 Reply from server was: \$reply
301 <p>
302 Go back to <a href="\$MyURL?host=\$host">\$host home page</a>.
303 EOF
304 # --------------------------------
305 $Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Start Backup Confirm on \$host";
306 # --------------------------------
307 $Lang{Are_you_sure_start} = <<EOF;
308 \${h1("Are you sure?")}
309 <p>
310 You are about to start a \$type backup on \$host.
311
312 <form name="Confirm" action="\$MyURL" method="get">
313 <input type="hidden" name="host" value="\$host">
314 <input type="hidden" name="hostIP" value="\$ipAddr">
315 <input type="hidden" name="doit" value="1">
316 <input type="hidden" name="action" value="">
317 Do you really want to do this?
318 <input type="button" value="\$buttonText"
319   onClick="document.Confirm.action.value='\$In{action}';
320            document.Confirm.submit();">
321 <input type="submit" value="No" name="ignore">
322 </form>
323 EOF
324 # --------------------------------
325 $Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Stop Backup Confirm on \$host";
326 # --------------------------------
327 $Lang{Are_you_sure_stop} = <<EOF;
328
329 \${h1("Are you sure?")}
330
331 <p>
332 You are about to stop/dequeue backups on \$host;
333
334 <form name="Confirm" action="\$MyURL" method="get">
335 <input type="hidden" name="host"   value="\$host">
336 <input type="hidden" name="doit"   value="1">
337 <input type="hidden" name="action" value="">
338 Also, please don\'t start another backup for
339 <input type="text" name="backoff" size="10" value="\$backoff"> hours.
340 <p>
341 Do you really want to do this?
342 <input type="button" value="\$buttonText"
343   onClick="document.Confirm.action.value='\$In{action}';
344            document.Confirm.submit();">
345 <input type="submit" value="No" name="ignore">
346 </form>
347
348 EOF
349 # --------------------------------
350 $Lang{Only_privileged_users_can_view_queues_} = "Only privileged users can view queues.";
351 # --------------------------------
352 $Lang{Only_privileged_users_can_archive} = "Only privileged users can Archive.";
353 # --------------------------------
354 $Lang{BackupPC__Queue_Summary} = "BackupPC: Queue Summary";
355 # --------------------------------
356 $Lang{Backup_Queue_Summary} = <<EOF;
357 \${h1("Backup Queue Summary")}
358 <br><br>
359 \${h2("User Queue Summary")}
360 <p>
361 The following user requests are currently queued:
362 </p>
363 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
364 <tr class="tableheader"><td> Host </td>
365     <td> Req Time </td>
366     <td> User </td></tr>
367 \$strUser
368 </table>
369 <br><br>
370
371 \${h2("Background Queue Summary")}
372 <p>
373 The following background requests are currently queued:
374 </p>
375 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
376 <tr class="tableheader"><td> Host </td>
377     <td> Req Time </td>
378     <td> User </td></tr>
379 \$strBg
380 </table>
381 <br><br>
382 \${h2("Command Queue Summary")}
383 <p>
384 The following command requests are currently queued:
385 </p>
386 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
387 <tr class="tableheader"><td> Host </td>
388     <td> Req Time </td>
389     <td> User </td>
390     <td> Command </td></tr>
391 \$strCmd
392 </table>
393 EOF
394
395 # --------------------------------
396 $Lang{Backup_PC__Log_File__file} = "BackupPC: File \$file";
397 $Lang{Log_File__file__comment} = <<EOF;
398 \${h1("File \$file \$comment")}
399 <p>
400 EOF
401 # --------------------------------
402 $Lang{Contents_of_log_file} = <<EOF;
403 Contents of file <tt>\$file</tt>, modified \$mtimeStr \$comment
404 EOF
405
406 # --------------------------------
407 $Lang{skipped__skipped_lines} = "[ skipped \$skipped lines ]\n";
408 # --------------------------------
409 $Lang{_pre___Can_t_open_log_file__file} = "<pre>\nCan\'t open log file \$file\n";
410
411 # --------------------------------
412 $Lang{BackupPC__Log_File_History} = "BackupPC: Log File History";
413 $Lang{Log_File_History__hdr} = <<EOF;
414 \${h1("Log File History \$hdr")}
415 <p>
416 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
417 <tr class="tableheader"><td align="center"> File </td>
418     <td align="center"> Size </td>
419     <td align="center"> Modification time </td></tr>
420 \$str
421 </table>
422 EOF
423
424 # -------------------------------
425 $Lang{Recent_Email_Summary} = <<EOF;
426 \${h1("Recent Email Summary (Reverse time order)")}
427 <p>
428 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
429 <tr class="tableheader"><td align="center"> Recipient </td>
430     <td align="center"> Host </td>
431     <td align="center"> Time </td>
432     <td align="center"> Subject </td></tr>
433 \$str
434 </table>
435 EOF
436  
437
438 # ------------------------------
439 $Lang{Browse_backup__num_for__host} = "BackupPC: Browse backup \$num for \$host";
440
441 # ------------------------------
442 $Lang{Restore_Options_for__host} = "BackupPC: Restore Options for \$host";
443 $Lang{Restore_Options_for__host2} = <<EOF;
444 \${h1("Restore Options for \$host")}
445 <p>
446 You have selected the following files/directories from
447 share \$share, backup number #\$num:
448 <ul>
449 \$fileListStr
450 </ul>
451 </p><p>
452 You have three choices for restoring these files/directories.
453 Please select one of the following options.
454 </p>
455 \${h2("Option 1: Direct Restore")}
456 <p>
457 EOF
458
459 $Lang{Restore_Options_for__host_Option1} = <<EOF;
460 You can start a restore that will restore these files directly onto
461 <b>\$directHost</b>.
462 </p><p>
463 <b>Warning:</b> any existing files that match the ones you have
464 selected will be overwritten!
465 </p>
466 <form action="\$MyURL" method="post" name="direct">
467 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
468 <input type="hidden" name="num" value="\$num">
469 <input type="hidden" name="type" value="3">
470 \$hiddenStr
471 <input type="hidden" value="\$In{action}" name="action">
472 <table class="tableStnd" border="0">
473 <tr>
474     <td>Restore the files to host</td>
475     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
476          name="hostDest">-->
477          <select name="hostDest" onChange="document.direct.shareDest.value=''">
478          \$hostDestSel
479          </select>
480          <script language="Javascript">
481          function myOpen(URL) {
482                 window.open(URL,'','width=500,height=400');
483          }
484          </script>
485          <!--<a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">Search for available shares (NOT IMPLEMENTED)</a>--></td>
486 </tr><tr>
487     <td>Restore the files to share</td>
488     <td><input type="text" size="40" value="\${EscHTML(\$share)}"
489          name="shareDest"></td>
490 </tr><tr>
491     <td>Restore the files below dir<br>(relative to share)</td>
492     <td valign="top"><input type="text" size="40" maxlength="256"
493         value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
494 </tr><tr>
495     <td><input type="submit" value="Start Restore" name="ignore"></td>
496 </table>
497 </form>
498 EOF
499
500 $Lang{Restore_Options_for__host_Option1_disabled} = <<EOF;
501 Direct restore has been disabled for host \${EscHTML(\$hostDest)}.
502 Please select one of the other restore options.
503 EOF
504
505 # ------------------------------
506 $Lang{Option_2__Download_Zip_archive} = <<EOF;
507 <p>
508 \${h2("Option 2: Download Zip archive")}
509 <p>
510 You can download a Zip archive containing all the files/directories you have
511 selected.  You can then use a local application, such as WinZip,
512 to view or extract any of the files.
513 </p><p>
514 <b>Warning:</b> depending upon which files/directories you have selected,
515 this archive might be very very large.  It might take many minutes to
516 create and transfer the archive, and you will need enough local disk
517 space to store it.
518 </p>
519 <form action="\$MyURL" method="post">
520 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
521 <input type="hidden" name="num" value="\$num">
522 <input type="hidden" name="type" value="2">
523 \$hiddenStr
524 <input type="hidden" value="\$In{action}" name="action">
525 <input type="checkbox" value="1" name="relative" checked> Make archive relative
526 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
527 (otherwise archive will contain full paths).
528 <br>
529 Compression (0=off, 1=fast,...,9=best)
530 <input type="text" size="6" value="5" name="compressLevel">
531 <br>
532 <input type="submit" value="Download Zip File" name="ignore">
533 </form>
534 EOF
535
536 # ------------------------------
537
538 $Lang{Option_2__Download_Zip_archive2} = <<EOF;
539 <p>
540 \${h2("Option 2: Download Zip archive")}
541 <p>
542 Archive::Zip is not installed so you will not be able to download a
543 zip archive.
544 Please ask your system adminstrator to install Archive::Zip from
545 <a href="http://www.cpan.org">www.cpan.org</a>.
546 </p>
547 EOF
548
549
550 # ------------------------------
551 $Lang{Option_3__Download_Zip_archive} = <<EOF;
552 \${h2("Option 3: Download Tar archive")}
553 <p>
554 You can download a Tar archive containing all the files/directories you
555 have selected.  You can then use a local application, such as tar or
556 WinZip to view or extract any of the files.
557 </p><p>
558 <b>Warning:</b> depending upon which files/directories you have selected,
559 this archive might be very very large.  It might take many minutes to
560 create and transfer the archive, and you will need enough local disk
561 space to store it.
562 </p>
563 <form action="\$MyURL" method="post">
564 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
565 <input type="hidden" name="num" value="\$num">
566 <input type="hidden" name="type" value="1">
567 \$hiddenStr
568 <input type="hidden" value="\$In{action}" name="action">
569 <input type="checkbox" value="1" name="relative" checked> Make archive relative
570 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
571 (otherwise archive will contain full paths).
572 <br>
573 <input type="submit" value="Download Tar File" name="ignore">
574 </form>
575 EOF
576
577
578 # ------------------------------
579 $Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host";
580
581 $Lang{Are_you_sure} = <<EOF;
582 \${h1("Are you sure?")}
583 <p>
584 You are about to start a restore directly to the machine \$In{hostDest}.
585 The following files will be restored to share \$In{shareDest}, from
586 backup number \$num:
587 <p>
588 <table class="tableStnd" border>
589 <tr class="tableheader"><td>Original file/dir</td><td>Will be restored to</td></tr>
590 \$fileListStr
591 </table>
592
593 <form name="RestoreForm" action="\$MyURL" method="post">
594 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
595 <input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}">
596 <input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}">
597 <input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}">
598 <input type="hidden" name="num" value="\$num">
599 <input type="hidden" name="type" value="4">
600 <input type="hidden" name="action" value="">
601 \$hiddenStr
602 Do you really want to do this?
603 <input type="button" value="\$Lang->{Restore}"
604  onClick="document.RestoreForm.action.value='Restore';
605           document.RestoreForm.submit();">
606 <input type="submit" value="No" name="ignore">
607 </form>
608 EOF
609
610
611 # --------------------------
612 $Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest";
613 $Lang{Reply_from_server_was___reply} = <<EOF;
614 \${h1(\$str)}
615 <p>
616 Reply from server was: \$reply
617 <p>
618 Go back to <a href="\$MyURL?host=\$hostDest">\$hostDest home page</a>.
619 EOF
620
621 $Lang{BackupPC_Archive_Reply_from_server} = <<EOF;
622 \${h1(\$str)}
623 <p>
624 Reply from server was: \$reply
625 EOF
626
627
628 # -------------------------
629 $Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary";
630
631 $Lang{Host__host_Backup_Summary2} = <<EOF;
632 \${h1("Host \$host Backup Summary")}
633 <p>
634 \$warnStr
635 <ul>
636 \$statusStr
637 </ul>
638 </p>
639 \${h2("User Actions")}
640 <p>
641 <form name="StartStopForm" action="\$MyURL" method="get">
642 <input type="hidden" name="host"   value="\$host">
643 <input type="hidden" name="action" value="">
644 \$startIncrStr
645 <input type="button" value="\$Lang->{Start_Full_Backup}"
646  onClick="document.StartStopForm.action.value='Start_Full_Backup';
647           document.StartStopForm.submit();">
648 <input type="button" value="\$Lang->{Stop_Dequeue_Backup}"
649  onClick="document.StartStopForm.action.value='Stop_Dequeue_Backup';
650           document.StartStopForm.submit();">
651 </form>
652 </p>
653 \${h2("Backup Summary")}
654 <p>
655 Click on the backup number to browse and restore backup files.
656 </p>
657 <table class="tableStnd" border cellspacing="1" cellpadding="3">
658 <tr class="tableheader"><td align="center"> Backup# </td>
659     <td align="center"> Type </td>
660     <td align="center"> Filled </td>
661     <td align="center"> Level </td>
662     <td align="center"> Start Date </td>
663     <td align="center"> Duration/mins </td>
664     <td align="center"> Age/days </td>
665     <td align="center"> Server Backup Path </td>
666 </tr>
667 \$str
668 </table>
669 <p>
670
671 \$restoreStr
672 </p>
673 <br><br>
674 \${h2("Xfer Error Summary")}
675 <br><br>
676 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
677 <tr class="tableheader"><td align="center"> Backup# </td>
678     <td align="center"> Type </td>
679     <td align="center"> View </td>
680     <td align="center"> #Xfer errs </td>
681     <td align="center"> #bad files </td>
682     <td align="center"> #bad share </td>
683     <td align="center"> #tar errs </td>
684 </tr>
685 \$errStr
686 </table>
687 <br><br>
688
689 \${h2("File Size/Count Reuse Summary")}
690 <p>
691 Existing files are those already in the pool; new files are those added
692 to the pool.
693 Empty files and SMB errors aren\'t counted in the reuse and new counts.
694 </p>
695 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
696 <tr class="tableheader"><td colspan="2" bgcolor="#ffffff"></td>
697     <td align="center" colspan="3"> Totals </td>
698     <td align="center" colspan="2"> Existing Files </td>
699     <td align="center" colspan="2"> New Files </td>
700 </tr>
701 <tr class="tableheader">
702     <td align="center"> Backup# </td>
703     <td align="center"> Type </td>
704     <td align="center"> #Files </td>
705     <td align="center"> Size/MB </td>
706     <td align="center"> MB/sec </td>
707     <td align="center"> #Files </td>
708     <td align="center"> Size/MB </td>
709     <td align="center"> #Files </td>
710     <td align="center"> Size/MB </td>
711 </tr>
712 \$sizeStr
713 </table>
714 <br><br>
715
716 \${h2("Compression Summary")}
717 <p>
718 Compression performance for files already in the pool and newly
719 compressed files.
720 </p>
721 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
722 <tr class="tableheader"><td colspan="3" bgcolor="#ffffff"></td>
723     <td align="center" colspan="3"> Existing Files </td>
724     <td align="center" colspan="3"> New Files </td>
725 </tr>
726 <tr class="tableheader"><td align="center"> Backup# </td>
727     <td align="center"> Type </td>
728     <td align="center"> Comp Level </td>
729     <td align="center"> Size/MB </td>
730     <td align="center"> Comp/MB </td>
731     <td align="center"> Comp </td>
732     <td align="center"> Size/MB </td>
733     <td align="center"> Comp/MB </td>
734     <td align="center"> Comp </td>
735 </tr>
736 \$compStr
737 </table>
738 <br><br>
739 EOF
740
741 $Lang{Host__host_Archive_Summary} = "BackupPC: Host \$host Archive Summary";
742 $Lang{Host__host_Archive_Summary2} = <<EOF;
743 \${h1("Host \$host Archive Summary")}
744 <p>
745 \$warnStr
746 <ul>
747 \$statusStr
748 </ul>
749
750 \${h2("User Actions")}
751 <p>
752 <form name="StartStopForm" action="\$MyURL" method="get">
753 <input type="hidden" name="archivehost" value="\$host">
754 <input type="hidden" name="host" value="\$host">
755 <input type="hidden" name="action" value="">
756 <input type="button" value="\$Lang->{Start_Archive}"
757  onClick="document.StartStopForm.action.value='Start_Archive';
758           document.StartStopForm.submit();">
759 <input type="button" value="\$Lang->{Stop_Dequeue_Archive}"
760  onClick="document.StartStopForm.action.value='Stop_Dequeue_Archive';
761           document.StartStopForm.submit();">
762 </form>
763
764 \$ArchiveStr
765
766 EOF
767
768 # -------------------------
769 $Lang{Error} = "BackupPC: Error";
770 $Lang{Error____head} = <<EOF;
771 \${h1("Error: \$head")}
772 <p>\$mesg</p>
773 EOF
774
775 # -------------------------
776 $Lang{NavSectionTitle_} = "Server";
777
778 # -------------------------
779 $Lang{Backup_browse_for__host} = <<EOF;
780 \${h1("Backup browse for \$host")}
781
782 <script language="javascript" type="text/javascript">
783 <!--
784
785     function checkAll(location)
786     {
787       for (var i=0;i<document.form1.elements.length;i++)
788       {
789         var e = document.form1.elements[i];
790         if ((e.checked || !e.checked) && e.name != \'all\') {
791             if (eval("document.form1."+location+".checked")) {
792                 e.checked = true;
793             } else {
794                 e.checked = false;
795             }
796         }
797       }
798     }
799     
800     function toggleThis(checkbox)
801     {
802        var cb = eval("document.form1."+checkbox);
803        cb.checked = !cb.checked;        
804     }
805
806 //-->
807 </script>
808
809 <form name="form0" method="post" action="\$MyURL">
810 <input type="hidden" name="num" value="\$num">
811 <input type="hidden" name="host" value="\$host">
812 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
813 <input type="hidden" name="action" value="browse">
814 <ul>
815 <li> You are browsing backup #\$num, which started around \$backupTime
816         (\$backupAge days ago),
817 \$filledBackup
818 <li> Enter directory: <input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit">
819 <li> Click on a directory below to navigate into that directory,
820 <li> Click on a file below to restore that file,
821 <li> You can view the backup <a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">history</a> of the current directory.
822 </ul>
823 </form>
824
825 \${h2("Contents of \${EscHTML(\$dirDisplay)}")}
826 <form name="form1" method="post" action="\$MyURL">
827 <input type="hidden" name="num" value="\$num">
828 <input type="hidden" name="host" value="\$host">
829 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
830 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
831 <input type="hidden" name="action" value="Restore">
832 <br>
833 <table width="100%">
834 <tr><td valign="top" width="30%">
835     <table align="left" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
836     \$dirStr
837     </table>
838 </td><td width="3%">
839 </td><td valign="top">
840     <br>
841         <table border width="100%" align="left" cellpadding="3" cellspacing="1">
842         \$fileHeader
843         \$topCheckAll
844         \$fileStr
845         \$checkAll
846         </table>
847     </td></tr></table>
848 <br>
849 <!--
850 This is now in the checkAll row
851 <input type="submit" name="Submit" value="Restore selected files">
852 -->
853 </form>
854 EOF
855
856 # ------------------------------
857 $Lang{DirHistory_backup_for__host} = "BackupPC: Directory backup history for \$host";
858
859 #
860 # These two strings are used to build the links for directories and
861 # file versions.  Files are appended with a version number.
862 #
863 $Lang{DirHistory_dirLink}  = "dir";
864 $Lang{DirHistory_fileLink} = "v";
865
866 $Lang{DirHistory_for__host} = <<EOF;
867 \${h1("Directory backup history for \$host")}
868 <p>
869 This display shows each unique version of files across all
870 the backups:
871 <ul>
872 <li> Click on a backup number to return to the backup browser,
873 <li> Click on a directory link (\$Lang->{DirHistory_dirLink}) to navigate
874      into that directory,
875 <li> Click on a file version link (\$Lang->{DirHistory_fileLink}0,
876      \$Lang->{DirHistory_fileLink}1, ...) to download that file,
877 <li> Files with the same contents between different backups have the same
878      version number,
879 <li> Files or directories not present in a particular backup have an
880      empty box.
881 <li> Files shown with the same version might have different attributes.
882      Select the backup number to see the file attributes.
883 </ul>
884
885 \${h2("History of \${EscHTML(\$dirDisplay)}")}
886
887 <br>
888 <table border cellspacing="2" cellpadding="3">
889 <tr class="fviewheader"><td>Backup number</td>\$backupNumStr</tr>
890 <tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr>
891 \$fileStr
892 </table>
893 EOF
894
895 # ------------------------------
896 $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host";
897
898 $Lang{Restore___num_details_for__host2} = <<EOF;
899 \${h1("Restore #\$num Details for \$host")}
900 <p>
901 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="90%">
902 <tr><td class="tableheader"> Number </td><td class="border"> \$Restores[\$i]{num} </td></tr>
903 <tr><td class="tableheader"> Requested by </td><td class="border"> \$RestoreReq{user} </td></tr>
904 <tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr>
905 <tr><td class="tableheader"> Result </td><td class="border"> \$Restores[\$i]{result} </td></tr>
906 <tr><td class="tableheader"> Error Message </td><td class="border"> \$Restores[\$i]{errorMsg} </td></tr>
907 <tr><td class="tableheader"> Source host </td><td class="border"> \$RestoreReq{hostSrc} </td></tr>
908 <tr><td class="tableheader"> Source backup num </td><td class="border"> \$RestoreReq{num} </td></tr>
909 <tr><td class="tableheader"> Source share </td><td class="border"> \$RestoreReq{shareSrc} </td></tr>
910 <tr><td class="tableheader"> Destination host </td><td class="border"> \$RestoreReq{hostDest} </td></tr>
911 <tr><td class="tableheader"> Destination share </td><td class="border"> \$RestoreReq{shareDest} </td></tr>
912 <tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr>
913 <tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr>
914 <tr><td class="tableheader"> Number of files </td><td class="border"> \$Restores[\$i]{nFiles} </td></tr>
915 <tr><td class="tableheader"> Total size </td><td class="border"> \${MB} MB </td></tr>
916 <tr><td class="tableheader"> Transfer rate </td><td class="border"> \$MBperSec MB/sec </td></tr>
917 <tr><td class="tableheader"> TarCreate errors </td><td class="border"> \$Restores[\$i]{tarCreateErrs} </td></tr>
918 <tr><td class="tableheader"> Xfer errors </td><td class="border"> \$Restores[\$i]{xferErrs} </td></tr>
919 <tr><td class="tableheader"> Xfer log file </td><td class="border">
920 <a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">View</a>,
921 <a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Errors</a>
922 </tr></tr>
923 </table>
924 </p>
925 \${h1("File/Directory list")}
926 <p>
927 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="100%">
928 <tr class="tableheader"><td>Original file/dir</td><td>Restored to</td></tr>
929 \$fileListStr
930 </table>
931 EOF
932
933 # ------------------------------
934 $Lang{Archive___num_details_for__host} = "BackupPC: Archive #\$num details for \$host";
935
936 $Lang{Archive___num_details_for__host2 } = <<EOF;
937 \${h1("Archive #\$num Details for \$host")}
938 <p>
939 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
940 <tr><td class="tableheader"> Number </td><td class="border"> \$Archives[\$i]{num} </td></tr>
941 <tr><td class="tableheader"> Requested by </td><td class="border"> \$ArchiveReq{user} </td></tr>
942 <tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr>
943 <tr><td class="tableheader"> Result </td><td class="border"> \$Archives[\$i]{result} </td></tr>
944 <tr><td class="tableheader"> Error Message </td><td class="border"> \$Archives[\$i]{errorMsg} </td></tr>
945 <tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr>
946 <tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr>
947 <tr><td class="tableheader"> Xfer log file </td><td class="border">
948 <a href="\$MyURL?action=view&type=ArchiveLOG&num=\$Archives[\$i]{num}&host=\$host">View</a>,
949 <a href="\$MyURL?action=view&type=ArchiveErr&num=\$Archives[\$i]{num}&host=\$host">Errors</a>
950 </tr></tr>
951 </table>
952 <p>
953 \${h1("Host list")}
954 <p>
955 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
956 <tr class="tableheader"><td>Host</td><td>Backup Number</td></tr>
957 \$HostListStr
958 </table>
959 EOF
960
961 # -----------------------------------
962 $Lang{Email_Summary} = "BackupPC: Email Summary";
963
964 # -----------------------------------
965 #  !! ERROR messages !!
966 # -----------------------------------
967 $Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: check apache error_log\n";
968 $Lang{Wrong_user__my_userid_is___} =  
969               "Wrong user: my userid is \$>, instead of \$uid"
970             . "(\$Conf{BackupPCUser})\n";
971 # $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries.";
972 $Lang{Only_privileged_users_can_stop_or_start_backups} = 
973                   "Only privileged users can stop or start backups on"
974                 . " \${EscHTML(\$host)}.";
975 $Lang{Invalid_number__num} = "Invalid number \$num";
976 $Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?";
977 $Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files.";
978 $Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files.";
979 $Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries.";
980 $Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files"
981                 . " for host \${EscHTML(\$In{host})}.";
982 $Lang{Empty_host_name} = "Empty host name.";
983 $Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}"
984                     . " is empty";
985 $Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name"
986                     . " \${EscHTML(\$relDir)}";
987 $Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files"
988                 . " for host \${EscHTML(\$In{host})}.";
989 $Lang{Bad_host_name} = "Bad host name \${EscHTML(\$host)}";
990 $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to"
991                 . " select some files.";
992 $Lang{You_haven_t_selected_any_hosts} = "You haven\'t selected any hosts; please go Back to"
993                 . " select some hosts.";
994 $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names";
995 $Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} doesn\'t exist";
996 $Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host"
997                     . " \${EscHTML(\$In{hostDest})}";
998 $Lang{Can_t_open_create__openPath} = "Can\'t open/create "
999                 . "\${EscHTML(\"\$openPath\")}";
1000 $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files"
1001                 . " for host \${EscHTML(\$host)}.";
1002 $Lang{Empty_host_name} = "Empty host name";
1003 $Lang{Unknown_host_or_user} = "Unknown host or user \${EscHTML(\$host)}";
1004 $Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about"
1005                 . " host \${EscHTML(\$host)}." ;
1006 $Lang{Only_privileged_users_can_view_archive_information} = "Only privileged users can view archive information.";
1007 $Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information.";
1008 $Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscHTML(\$host)} does"
1009                 . " not exist.";
1010 $Lang{Archive_number__num_for_host__does_not_exist} = "Archive number \$num for host \${EscHTML(\$host)} does"
1011                 . " not exist.";
1012 $Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscHTML(\$host)}";
1013 $Lang{host_is_a_DHCP_host} = <<EOF;
1014 \$host is a DHCP host, and I don\'t know its IP address.  I checked the
1015 netbios name of \$ENV{REMOTE_ADDR}\$tryIP, and found that that machine
1016 is not \$host.
1017 <p>
1018 Until I see \$host at a particular DHCP address, you can only
1019 start this request from the client machine itself.
1020 EOF
1021
1022 # ------------------------------------
1023 # !! Server Mesg !!
1024 # ------------------------------------
1025
1026 $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by"
1027                                       . " \$User from \$ENV{REMOTE_ADDR}";
1028 $Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User";
1029 $Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User";
1030 $Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num,"
1031              . " by \$User from \$ENV{REMOTE_ADDR}";
1032 $Lang{Archive_requested} = "Archive requested by \$User from \$ENV{REMOTE_ADDR}";
1033
1034 # -------------------------------------------------
1035 # ------- Stuff that was forgotten ----------------
1036 # -------------------------------------------------
1037
1038 $Lang{Status} = "Status";
1039 $Lang{PC_Summary} = "Host Summary";
1040 $Lang{LOG_file} = "LOG file";
1041 $Lang{LOG_files} = "LOG files";
1042 $Lang{Old_LOGs} = "Old LOGs";
1043 $Lang{Email_summary} = "Email summary";
1044 $Lang{Config_file} = "Config file";
1045 # $Lang{Hosts_file} = "Hosts file";
1046 $Lang{Current_queues} = "Current queues";
1047 $Lang{Documentation} = "Documentation";
1048
1049 #$Lang{Host_or_User_name} = "<small>Host or User name:</small>";
1050 $Lang{Go} = "Go";
1051 $Lang{Hosts} = "Hosts";
1052 $Lang{Select_a_host} = "Select a host...";
1053
1054 $Lang{There_have_been_no_archives} = "<h2> There have been no archives </h2>\n";
1055 $Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n";
1056 $Lang{This_PC_is_used_by} = "<li>This PC is used by \${UserLink(\$user)}";
1057
1058 $Lang{Extracting_only_Errors} = "(Extracting only Errors)";
1059 $Lang{XferLOG} = "XferLOG";
1060 $Lang{Errors}  = "Errors";
1061
1062 # ------------
1063 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
1064 <li>Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj".
1065 EOF
1066 # ------------
1067 $Lang{The_command_cmd_is_currently_running_for_started} = <<EOF;
1068 <li>The command \$cmd is currently running for \$host, started \$startTime.
1069 EOF
1070
1071 # -----------
1072 $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF;
1073 <li>Host \$host is queued on the background queue (will be backed up soon).
1074 EOF
1075
1076 # ----------
1077 $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF;
1078 <li>Host \$host is queued on the user queue (will be backed up soon).
1079 EOF
1080
1081 # ---------
1082 $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF;
1083 <li>A command for \$host is on the command queue (will run soon).
1084 EOF
1085
1086 # --------
1087 $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
1088 <li>Last status is state \"\$Lang->{\$StatusHost{state}}\"\$reason as of \$startTime.
1089 EOF
1090
1091 # --------
1092 $Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF;
1093 <li>Last error is \"\${EscHTML(\$StatusHost{error})}\".
1094 EOF
1095
1096 # ------
1097 $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF;
1098 <li>Pings to \$host have failed \$StatusHost{deadCnt} consecutive times.
1099 EOF
1100
1101 # -----
1102 $Lang{Prior_to_that__pings} = "Prior to that, pings";
1103
1104 # -----
1105 $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF;
1106 <li>\$priorStr to \$host have succeeded \$StatusHost{aliveCnt}
1107         consecutive times.
1108 EOF
1109
1110 $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
1111 <li>Because \$host has been on the network at least \$Conf{BlackoutGoodCnt}
1112 consecutive times, it will not be backed up from \$blackoutStr.
1113 EOF
1114
1115 $Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 on \$days";
1116
1117 $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
1118 <li>Backups are deferred for \$hours hours
1119 (<a href=\"\$MyURL?action=Stop_Dequeue_Backup&host=\$host\">change this number</a>).
1120 EOF
1121
1122 $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}";
1123
1124 # $Lang{Host_Inhost} = "Host \$In{host}";
1125
1126 $Lang{checkAll} = <<EOF;
1127 <tr><td class="fviewborder">
1128 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
1129 </td><td colspan="5" align="center" class="fviewborder">
1130 <input type="submit" name="Submit" value="Restore selected files">
1131 </td></tr>
1132 EOF
1133
1134 $Lang{checkAllHosts} = <<EOF;
1135 <tr><td class="fviewborder">
1136 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
1137 </td><td colspan="2" align="center" class="fviewborder">
1138 <input type="submit" name="Submit" value="Archive selected hosts">
1139 </td></tr>
1140 EOF
1141
1142 $Lang{fileHeader} = <<EOF;
1143     <tr class="fviewheader"><td align=center> Name</td>
1144        <td align="center"> Type</td>
1145        <td align="center"> Mode</td>
1146        <td align="center"> #</td>
1147        <td align="center"> Size</td>
1148        <td align="center"> Date modified</td>
1149     </tr>
1150 EOF
1151
1152 $Lang{Home} = "Home";
1153 $Lang{Browse} = "Browse backups";
1154 $Lang{Last_bad_XferLOG} = "Last bad XferLOG";
1155 $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors&nbsp;only)";
1156
1157 $Lang{This_display_is_merged_with_backup} = <<EOF;
1158 <li> This display is merged with backup #\$numF.
1159 EOF
1160
1161 $Lang{Visit_this_directory_in_backup} = <<EOF;
1162 <li> Select the backup you wish to view: <select onChange="window.location=this.value">\$otherDirs </select>
1163 EOF
1164
1165 $Lang{Restore_Summary} = <<EOF;
1166 \${h2("Restore Summary")}
1167 <p>
1168 Click on the restore number for more details.
1169 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
1170 <tr class="tableheader"><td align="center"> Restore# </td>
1171     <td align="center"> Result </td>
1172     <td align="right"> Start Date</td>
1173     <td align="right"> Dur/mins</td>
1174     <td align="right"> #files </td>
1175     <td align="right"> MB </td>
1176     <td align="right"> #tar errs </td>
1177     <td align="right"> #xferErrs </td>
1178 </tr>
1179 \$restoreStr
1180 </table>
1181 <p>
1182 EOF
1183
1184 $Lang{Archive_Summary} = <<EOF;
1185 \${h2("Archive Summary")}
1186 <p>
1187 Click on the archive number for more details.
1188 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
1189 <tr class="tableheader"><td align="center"> Archive# </td>
1190     <td align="center"> Result </td>
1191     <td align="right"> Start Date</td>
1192     <td align="right"> Dur/mins</td>
1193 </tr>
1194 \$ArchiveStr
1195 </table>
1196 <p>
1197 EOF
1198
1199 $Lang{BackupPC__Documentation} = "BackupPC: Documentation";
1200
1201 $Lang{No} = "no";
1202 $Lang{Yes} = "yes";
1203
1204 $Lang{The_directory_is_empty} = <<EOF;
1205 <tr><td bgcolor="#ffffff">The directory \${EscHTML(\$dirDisplay)} is empty
1206 </td></tr>
1207 EOF
1208
1209 #$Lang{on} = "on";
1210 $Lang{off} = "off";
1211
1212 $Lang{backupType_full}    = "full";
1213 $Lang{backupType_incr}    = "incr";
1214 $Lang{backupType_partial} = "partial";
1215
1216 $Lang{failed} = "failed";
1217 $Lang{success} = "success";
1218 $Lang{and} = "and";
1219
1220 # ------
1221 # Hosts states and reasons
1222 $Lang{Status_idle} = "idle";
1223 $Lang{Status_backup_starting} = "backup starting";
1224 $Lang{Status_backup_in_progress} = "backup in progress";
1225 $Lang{Status_restore_starting} = "restore starting";
1226 $Lang{Status_restore_in_progress} = "restore in progress";
1227 $Lang{Status_link_pending} = "link pending";
1228 $Lang{Status_link_running} = "link running";
1229
1230 $Lang{Reason_backup_done}    = "done";
1231 $Lang{Reason_restore_done}   = "restore done";
1232 $Lang{Reason_archive_done}   = "archive done";
1233 $Lang{Reason_nothing_to_do}  = "idle";
1234 $Lang{Reason_backup_failed}  = "backup failed";
1235 $Lang{Reason_restore_failed} = "restore failed";
1236 $Lang{Reason_archive_failed} = "archive failed";
1237 $Lang{Reason_no_ping}        = "no ping";
1238 $Lang{Reason_backup_canceled_by_user}  = "backup canceled by user";
1239 $Lang{Reason_restore_canceled_by_user} = "restore canceled by user";
1240 $Lang{Reason_archive_canceled_by_user} = "archive canceled by user";
1241 $Lang{Disabled_OnlyManualBackups}  = "auto disabled";  
1242 $Lang{Disabled_AllBackupsDisabled} = "disabled";                  
1243
1244
1245 # ---------
1246 # Email messages
1247
1248 # No backup ever
1249 $Lang{EMailNoBackupEverSubj} = "BackupPC: no backups of \$host have succeeded";
1250 $Lang{EMailNoBackupEverMesg} = <<'EOF';
1251 To: $user$domain
1252 cc:
1253 Subject: $subj
1254 $headers
1255 Dear $userName,
1256
1257 Your PC ($host) has never been successfully backed up by our
1258 PC backup software.  PC backups should occur automatically
1259 when your PC is connected to the network.  You should contact
1260 computer support if:
1261
1262   - Your PC has been regularly connected to the network, meaning
1263     there is some configuration or setup problem preventing
1264     backups from occurring.
1265
1266   - You don't want your PC backed up and you want these email
1267     messages to stop.
1268
1269 Otherwise, please make sure your PC is connected to the network
1270 next time you are in the office.
1271
1272 Regards,
1273 BackupPC Genie
1274 http://backuppc.sourceforge.net
1275 EOF
1276
1277 # No recent backup
1278 $Lang{EMailNoBackupRecentSubj} = "BackupPC: no recent backups on \$host";
1279 $Lang{EMailNoBackupRecentMesg} = <<'EOF';
1280 To: $user$domain
1281 cc:
1282 Subject: $subj
1283 $headers
1284 Dear $userName,
1285
1286 Your PC ($host) has not been successfully backed up for $days days.
1287 Your PC has been correctly backed up $numBackups times from $firstTime to $days
1288 ago.  PC backups should occur automatically when your PC is connected
1289 to the network.
1290
1291 If your PC has been connected for more than a few hours to the
1292 network during the last $days days you should contact IS to find
1293 out why backups are not working.
1294
1295 Otherwise, if you are out of the office, there's not much you can
1296 do, other than manually copying especially critical files to other
1297 media.  You should be aware that any files you have created or
1298 changed in the last $days days (including all new email and
1299 attachments) cannot be restored if your PC disk crashes.
1300
1301 Regards,
1302 BackupPC Genie
1303 http://backuppc.sourceforge.net
1304 EOF
1305
1306 # Old Outlook files
1307 $Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up";
1308 $Lang{EMailOutlookBackupMesg} = <<'EOF';
1309 To: $user$domain
1310 cc:
1311 Subject: $subj
1312 $headers
1313 Dear $userName,
1314
1315 The Outlook files on your PC have $howLong.
1316 These files contain all your email, attachments, contact and calendar           
1317 information.  Your PC has been correctly backed up $numBackups times from
1318 $firstTime to $lastTime days ago.  However, Outlook locks all its files when
1319 it is running, preventing these files from being backed up.
1320
1321 It is recommended you backup the Outlook files when you are connected
1322 to the network by exiting Outlook and all other applications, and,
1323 using just your browser, go to this link:
1324
1325     $CgiURL?host=$host               
1326
1327 Select "Start Incr Backup" twice to start a new incremental backup.
1328 You can select "Return to $host page" and then hit "reload" to check
1329 the status of the backup.  It should take just a few minutes to
1330 complete.
1331
1332 Regards,
1333 BackupPC Genie
1334 http://backuppc.sourceforge.net
1335 EOF
1336
1337 $Lang{howLong_not_been_backed_up} = "not been backed up successfully";
1338 $Lang{howLong_not_been_backed_up_for_days_days} = "not been backed up for \$days days";
1339
1340 #######################################################################
1341 # RSS strings
1342 #######################################################################
1343 $Lang{RSS_Doc_Title}       = "BackupPC Server";
1344 $Lang{RSS_Doc_Description} = "RSS feed for BackupPC";
1345 $Lang{RSS_Host_Summary}    = <<EOF;
1346 Full Count: \$fullCnt;
1347 Full Age/days: \$fullAge;
1348 Full Size/GB: \$fullSize;
1349 Speed MB/sec: \$fullRate;
1350 Incr Count: \$incrCnt;
1351 Incr Age/Days: \$incrAge;
1352 State: \$host_state;
1353 Last Attempt: \$host_last_attempt;
1354 EOF
1355
1356 #######################################################################
1357 # Configuration editor strings
1358 #######################################################################
1359
1360 $Lang{Only_privileged_users_can_edit_config_files} = "Only privileged users can edit configuation settings.";
1361 $Lang{CfgEdit_Edit_Config} = "Edit Config";
1362 $Lang{CfgEdit_Edit_Hosts}  = "Edit Hosts";
1363
1364 $Lang{CfgEdit_Title_Server} = "Server";
1365 $Lang{CfgEdit_Title_General_Parameters} = "General Parameters";
1366 $Lang{CfgEdit_Title_Wakeup_Schedule} = "Wakeup Schedule";
1367 $Lang{CfgEdit_Title_Concurrent_Jobs} = "Concurrent Jobs";
1368 $Lang{CfgEdit_Title_Pool_Filesystem_Limits} = "Pool Filesystem Limits";
1369 $Lang{CfgEdit_Title_Other_Parameters} = "Other Parameters";
1370 $Lang{CfgEdit_Title_Remote_Apache_Settings} = "Remote Apache Settings";
1371 $Lang{CfgEdit_Title_Program_Paths} = "Program Paths";
1372 $Lang{CfgEdit_Title_Install_Paths} = "Install Paths";
1373 $Lang{CfgEdit_Title_Email} = "Email";
1374 $Lang{CfgEdit_Title_Email_settings} = "Email settings";
1375 $Lang{CfgEdit_Title_Email_User_Messages} = "Email User Messages";
1376 $Lang{CfgEdit_Title_CGI} = "CGI";
1377 $Lang{CfgEdit_Title_Admin_Privileges} = "Admin Privileges";
1378 $Lang{CfgEdit_Title_Page_Rendering} = "Page Rendering";
1379 $Lang{CfgEdit_Title_Paths} = "Paths";
1380 $Lang{CfgEdit_Title_User_URLs} = "User URLs";
1381 $Lang{CfgEdit_Title_User_Config_Editing} = "User Config Editing";
1382 $Lang{CfgEdit_Title_Xfer} = "Xfer";
1383 $Lang{CfgEdit_Title_Xfer_Settings} = "Xfer Settings";
1384 $Lang{CfgEdit_Title_Ftp_Settings} = "FTP Settings";
1385 $Lang{CfgEdit_Title_Smb_Settings} = "Smb Settings";
1386 $Lang{CfgEdit_Title_Tar_Settings} = "Tar Settings";
1387 $Lang{CfgEdit_Title_Rsync_Settings} = "Rsync Settings";
1388 $Lang{CfgEdit_Title_Rsyncd_Settings} = "Rsyncd Settings";
1389 $Lang{CfgEdit_Title_Archive_Settings} = "Archive Settings";
1390 $Lang{CfgEdit_Title_Include_Exclude} = "Include/Exclude";
1391 $Lang{CfgEdit_Title_Smb_Paths_Commands} = "Smb Paths/Commands";
1392 $Lang{CfgEdit_Title_Tar_Paths_Commands} = "Tar Paths/Commands";
1393 $Lang{CfgEdit_Title_Rsync_Paths_Commands_Args} = "Rsync Paths/Commands/Args";
1394 $Lang{CfgEdit_Title_Rsyncd_Port_Args} = "Rsyncd Port/Args";
1395 $Lang{CfgEdit_Title_Archive_Paths_Commands} = "Archive Paths/Commands";
1396 $Lang{CfgEdit_Title_Schedule} = "Schedule";
1397 $Lang{CfgEdit_Title_Full_Backups} = "Full Backups";
1398 $Lang{CfgEdit_Title_Incremental_Backups} = "Incremental Backups";
1399 $Lang{CfgEdit_Title_Blackouts} = "Blackouts";
1400 $Lang{CfgEdit_Title_Other} = "Other";
1401 $Lang{CfgEdit_Title_Backup_Settings} = "Backup Settings";
1402 $Lang{CfgEdit_Title_Client_Lookup} = "Client Lookup";
1403 $Lang{CfgEdit_Title_Other} = "Other";
1404 $Lang{CfgEdit_Title_User_Commands} = "User Commands";
1405 $Lang{CfgEdit_Title_Hosts} = "Hosts";
1406
1407 $Lang{CfgEdit_Hosts_Comment} = <<EOF;
1408 To add a new host, select Add and then enter the name.  To start with
1409 the per-host configuration from another host, enter the host name
1410 as NEWHOST=COPYHOST.  This will overwrite any existing per-host
1411 configuration for NEWHOST.  You can also do this for an existing
1412 host.  To delete a host, hit the Delete button.  For Add, Delete,
1413 and configuration copy, changes don't take effect until you select
1414 Save.  None of the deleted host's backups will be removed,
1415 so if you accidently delete a host, simply re-add it.  To completely
1416 remove a host's backups, you need to manually remove the files
1417 below \$topDir/pc/HOST
1418 EOF
1419
1420 $Lang{CfgEdit_Header_Main} = <<EOF;
1421 \${h1("Main Configuration Editor")}
1422 EOF
1423
1424 $Lang{CfgEdit_Header_Host} = <<EOF;
1425 \${h1("Host \$host Configuration Editor")}
1426 <p>
1427 Note: Check Override if you want to modify a value specific to this host.
1428 <p>
1429 EOF
1430
1431 $Lang{CfgEdit_Button_Save}     = "Save";
1432 $Lang{CfgEdit_Button_Insert}   = "Insert";
1433 $Lang{CfgEdit_Button_Delete}   = "Delete";
1434 $Lang{CfgEdit_Button_Add}      = "Add";
1435 $Lang{CfgEdit_Button_Override} = "Override";
1436 $Lang{CfgEdit_Button_New_Key}  = "New Key";
1437
1438 $Lang{CfgEdit_Error_No_Save}
1439             = "Error: No save due to errors";
1440 $Lang{CfgEdit_Error__must_be_an_integer}
1441             = "Error: \$var must be an integer";
1442 $Lang{CfgEdit_Error__must_be_real_valued_number}
1443             = "Error: \$var must be a real-valued number";
1444 $Lang{CfgEdit_Error__entry__must_be_an_integer}
1445             = "Error: \$var entry \$k must be an integer";
1446 $Lang{CfgEdit_Error__entry__must_be_real_valued_number}
1447             = "Error: \$var entry \$k must be a real-valued number";
1448 $Lang{CfgEdit_Error__must_be_executable_program}
1449             = "Error: \$var must be a valid executable path";
1450 $Lang{CfgEdit_Error__must_be_valid_option}
1451             = "Error: \$var must be a valid option";
1452 $Lang{CfgEdit_Error_Copy_host_does_not_exist}
1453             = "Copy host \$copyHost doesn't exist; creating full host name \$fullHost.  Delete this host if that is not what you wanted.";
1454
1455 $Lang{CfgEdit_Log_Copy_host_config}
1456             = "\$User copied config from host \$fromHost to \$host\n";
1457 $Lang{CfgEdit_Log_Delete_param}
1458             = "\$User deleted \$p from \$conf\n";
1459 $Lang{CfgEdit_Log_Add_param_value}
1460             = "\$User added \$p to \$conf, set to \$value\n";
1461 $Lang{CfgEdit_Log_Change_param_value}
1462             = "\$User changed \$p in \$conf to \$valueNew from \$valueOld\n";
1463 $Lang{CfgEdit_Log_Host_Delete}
1464             = "\$User deleted host \$host\n";
1465 $Lang{CfgEdit_Log_Host_Change}
1466             = "\$User host \$host changed \$key from \$valueOld to \$valueNew\n";
1467 $Lang{CfgEdit_Log_Host_Add}
1468             = "\$User added host \$host: \$value\n";
1469   
1470 #end of lang_en.pm