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