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