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