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