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