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