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