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