* A failed full dump is now saved as a partial (incomplete) dump,
[BackupPC.git] / lib / BackupPC / Lang / en.pm
1 #!/bin/perl -T
2
3 #my %lang;
4
5 #use strict;
6
7 # --------------------------------
8
9 $Lang{Start_Full_Backup} = "Start Full Backup";
10 $Lang{Start_Incr_Backup} = "Start Incr Backup";
11 $Lang{Stop_Dequeue_Backup} = "Stop/Dequeue Backup";
12 $Lang{Restore} = "Restore";
13
14 # -----
15
16 $Lang{H_BackupPC_Server_Status} = "BackupPC Server Status";
17
18 $Lang{BackupPC_Server_Status}= <<EOF;
19 \${h1(qq{$Lang{H_BackupPC_Server_Status}})}
20
21 <p>
22 \${h2(\"General Server Information\")}
23
24 <ul>
25 <li> The servers PID is \$Info{pid},  on host \$Conf{ServerHost},
26      version \$Info{Version}, started at \$serverStartTime.
27 <li> This status was generated at \$now.
28 <li> PCs will be next queued at \$nextWakeupTime.
29 <li> Other info:
30     <ul>
31         <li>\$numBgQueue pending backup requests from last scheduled wakeup,
32         <li>\$numUserQueue pending user backup requests,
33         <li>\$numCmdQueue pending command requests,
34         \$poolInfo
35         <li>Pool file system was recently at \$Info{DUlastValue}%
36             (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime)
37             and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
38     </ul>
39 </ul>
40
41 \${h2("Currently Running Jobs")}
42 <p>
43 <table border>
44 <tr><td> Host </td>
45     <td> Type </td>
46     <td> User </td>
47     <td> Start Time </td>
48     <td> Command </td>
49     <td align="center"> PID </td>
50     <td align="center"> Xfer PID </td>
51     </tr>
52 \$jobStr
53 </table>
54 <p>
55
56 \${h2("Failures that need attention")}
57 <p>
58 <table border>
59 <tr><td align="center"> Host </td>
60     <td align="center"> Type </td>
61     <td align="center"> User </td>
62     <td align="center"> Last Try </td>
63     <td align="center"> Details </td>
64     <td align="center"> Error Time </td>
65     <td> Last error (other than no ping) </td></tr>
66 \$statusStr
67 </table>
68 EOF
69
70 # --------------------------------
71 $Lang{BackupPC__Server_Summary} = "BackupPC: Server Summary";
72 $Lang{BackupPC_Summary}=<<EOF;
73
74 \${h1(qq{$Lang{BackupPC__Server_Summary}})}
75 <p>
76 This status was generated at \$now.
77 <p>
78
79 \${h2("Hosts with good Backups")}
80 <p>
81 There are \$hostCntGood hosts that have been backed up, for a total of:
82 <ul>
83 <li> \$fullTot full backups of total size \${fullSizeTot}GB
84      (prior to pooling and compression),
85 <li> \$incrTot incr backups of total size \${incrSizeTot}GB
86      (prior to pooling and compression).
87 </ul>
88 <table border>
89 <tr><td> Host </td>
90     <td align="center"> User </td>
91     <td align="center"> #Full </td>
92     <td align="center"> Full Age/days </td>
93     <td align="center"> Full Size/GB </td>
94     <td align="center"> Speed MB/sec </td>
95     <td align="center"> #Incr </td>
96     <td align="center"> Incr Age/days </td>
97     <td align="center"> State </td>
98     <td align="center"> Last attempt </td></tr>
99 \$strGood
100 </table>
101 <p>
102
103 \${h2("Hosts with no Backups")}
104 <p>
105 There are \$hostCntNone hosts with no backups.
106 <p>
107 <table border>
108 <tr><td> Host </td>
109     <td align="center"> User </td>
110     <td align="center"> #Full </td>
111     <td align="center"> Full Age/days </td>
112     <td align="center"> Full Size/GB </td>
113     <td align="center"> Speed MB/sec </td>
114     <td align="center"> #Incr </td>
115     <td align="center"> Incr Age/days </td>
116     <td align="center"> Current State </td>
117     <td align="center"> Last backup attempt </td></tr>
118 \$strNone
119 </table>
120 EOF
121
122 # -----------------------------------
123 $Lang{Pool_Stat} = <<EOF;
124         <li>Pool is \${poolSize}GB comprising \$info->{"\${name}FileCnt"} files
125             and \$info->{"\${name}DirCnt"} directories (as of \$poolTime),
126         <li>Pool hashing gives \$info->{"\${name}FileCntRep"} repeated
127             files with longest chain \$info->{"\${name}FileRepMax"},
128         <li>Nightly cleanup removed \$info->{"\${name}FileCntRm"} files of
129             size \${poolRmSize}GB (around \$poolTime),
130 EOF
131
132 # --------------------------------
133 $Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Backup Requested on \$host";
134 # --------------------------------
135 $Lang{REPLY_FROM_SERVER} = <<EOF;
136 \${h1(\$str)}
137 <p>
138 Reply from server was: \$reply
139 <p>
140 Go back to <a href="\$MyURL?host=\$host">\$host home page</a>.
141 EOF
142 # --------------------------------
143 $Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Start Backup Confirm on \$host";
144 # --------------------------------
145 $Lang{Are_you_sure_start} = <<EOF;
146 \${h1("Are you sure?")}
147 <p>
148 You are about to start a \$type backup on \$host.
149
150 <form action="\$MyURL" method="get">
151 <input type="hidden" name="host" value="\$host">
152 <input type="hidden" name="hostIP" value="\$ipAddr">
153 <input type="hidden" name="doit" value="1">
154 Do you really want to do this?
155 <input type="submit" value="\$In{action}" name="action">
156 <input type="submit" value="No" name="">
157 </form>
158 EOF
159 # --------------------------------
160 $Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Stop Backup Confirm on \$host";
161 # --------------------------------
162 $Lang{Are_you_sure_stop} = <<EOF;
163
164 \${h1("Are you sure?")}
165
166 <p>
167 You are about to stop/dequeue backups on \$host;
168
169 <form action="\$MyURL" method="get">
170 <input type="hidden" name="host" value="\$host">
171 <input type="hidden" name="doit" value="1">
172 Also, please don\'t start another backup for
173 <input type="text" name="backoff" size="10" value="\$backoff"> hours.
174 <p>
175 Do you really want to do this?
176 <input type="submit" value="\$In{action}" name="action">
177 <input type="submit" value="No" name="">
178 </form>
179
180 EOF
181 # --------------------------------
182 $Lang{Only_privileged_users_can_view_queues_} = "Only privileged users can view queues.";
183 # --------------------------------
184 $Lang{BackupPC__Queue_Summary} = "BackupPC: Queue Summary";
185 # --------------------------------
186 $Lang{Backup_Queue_Summary} = <<EOF;
187 \${h1("Backup Queue Summary")}
188 <p>
189 \${h2("User Queue Summary")}
190 <p>
191 The following user requests are currently queued:
192 <table border>
193 <tr><td> Host </td>
194     <td> Req Time </td>
195     <td> User </td></tr>
196 \$strUser
197 </table>
198 <p>
199
200 \${h2("Background Queue Summary")}
201 <p>
202 The following background requests are currently queued:
203 <table border>
204 <tr><td> Host </td>
205     <td> Req Time </td>
206     <td> User </td></tr>
207 \$strBg
208 </table>
209 <p>
210
211 \${h2("Command Queue Summary")}
212 <p>
213 The following command requests are currently queued:
214 <table border>
215 <tr><td> Host </td>
216     <td> Req Time </td>
217     <td> User </td>
218     <td> Command </td></tr>
219 \$strCmd
220 </table>
221 EOF
222
223 # --------------------------------
224 $Lang{Backup_PC__Log_File__file} = "BackupPC: Log File \$file";
225 $Lang{Log_File__file__comment} = <<EOF;
226 \${h1("Log File \$file \$comment")}
227 <p>
228 EOF
229 # --------------------------------
230 $Lang{Contents_of_log_file} = <<EOF;
231 Contents of log file <tt>\$file</tt>, modified \$mtimeStr \$comment
232 EOF
233
234 # --------------------------------
235 $Lang{skipped__skipped_lines} = "[ skipped \$skipped lines ]\n";
236 # --------------------------------
237 $Lang{_pre___Can_t_open_log_file__file} = "<pre>\nCan\'t open log file \$file\n";
238
239 # --------------------------------
240 $Lang{BackupPC__Log_File_History} = "BackupPC: Log File History";
241 $Lang{Log_File_History__hdr} = <<EOF;
242 \${h1("Log File History \$hdr")}
243 <p>
244 <table border>
245 <tr><td align="center"> File </td>
246     <td align="center"> Size </td>
247     <td align="center"> Modification time </td></tr>
248 \$str
249 </table>
250 EOF
251
252 # -------------------------------
253 $Lang{Recent_Email_Summary} = <<EOF;
254 \${h1("Recent Email Summary (Reverse time order)")}
255 <p>
256 <table border>
257 <tr><td align="center"> Recipient </td>
258     <td align="center"> Host </td>
259     <td align="center"> Time </td>
260     <td align="center"> Subject </td></tr>
261 \$str
262 </table>
263 EOF
264  
265
266 # ------------------------------
267 $Lang{Browse_backup__num_for__host} = "BackupPC: Browse backup \$num for \$host";
268
269 # ------------------------------
270 $Lang{Restore_Options_for__host} = "BackupPC: Restore Options for \$host";
271 $Lang{Restore_Options_for__host2} = <<EOF;
272 <p>
273 You have selected the following files/directories from
274 share \$share, backup number #\$num:
275 <ul>
276 \$fileListStr
277 </ul>
278 <p>
279 You have three choices for restoring these files/directories.
280 Please select one of the following options.
281 <p>
282 \${h2("Option 1: Direct Restore")}
283 <p>
284 You can start a restore that will restore these files directly onto
285 \$host.
286 <p>
287 <b>Warning:</b> any existing files that match the ones you have
288 selected will be overwritten!
289
290 <form action="\$MyURL" method="post">
291 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
292 <input type="hidden" name="num" value="\$num">
293 <input type="hidden" name="type" value="3">
294 \$hiddenStr
295 <input type="hidden" value="\$In{action}" name="action">
296 <table border="0">
297 <tr>
298     <td>Restore the files to host</td>
299     <td><input type="text" size="40" value="\${EscHTML(\$host)}"
300          name="hostDest"></td>
301 </tr><tr>
302     <td>Restore the files to share</td>
303     <td><input type="text" size="40" value="\${EscHTML(\$share)}"
304          name="shareDest"></td>
305 </tr><tr>
306     <td>Restore the files below dir<br>(relative to share)</td>
307     <td valign="top"><input type="text" size="40" maxlength="256"
308         value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
309 </tr><tr>
310     <td><input type="submit" value="Start Restore" name=""></td>
311 </table>
312 </form>
313 EOF
314
315 # ------------------------------
316 $Lang{Option_2__Download_Zip_archive} = <<EOF;
317
318 \${h2("Option 2: Download Zip archive")}
319 <p>
320 You can download a Zip archive containing all the files/directories you have
321 selected.  You can then use a local application, such as WinZip,
322 to view or extract any of the files.
323 <p>
324 <b>Warning:</b> depending upon which files/directories you have selected,
325 this archive might be very very large.  It might take many minutes to
326 create and transfer the archive, and you will need enough local disk
327 space to store it.
328 <p>
329 <form action="\$MyURL" method="post">
330 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
331 <input type="hidden" name="num" value="\$num">
332 <input type="hidden" name="type" value="2">
333 \$hiddenStr
334 <input type="hidden" value="\$In{action}" name="action">
335 <input type="checkbox" value="1" name="relative" checked> Make archive relative
336 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
337 (otherwise archive will contain full paths).
338 <br>
339 Compression (0=off, 1=fast,...,9=best)
340 <input type="text" size="6" value="5" name="compressLevel">
341 <br>
342 <input type="submit" value="Download Zip File" name="">
343 </form>
344 EOF
345
346 # ------------------------------
347
348 $Lang{Option_2__Download_Zip_archive2} = <<EOF;
349 \${h2("Option 2: Download Zip archive")}
350 <p>
351 Archive::Zip is not installed so you will not be able to download a
352 zip archive.
353 Please ask your system adminstrator to install Archive::Zip from
354 <a href="http://www.cpan.org">www.cpan.org</a>.
355 <p>
356 EOF
357
358
359 # ------------------------------
360 $Lang{Option_3__Download_Zip_archive} = <<EOF;
361 \${h2("Option 3: Download Tar archive")}
362 <p>
363 You can download a Tar archive containing all the files/directories you
364 have selected.  You can then use a local application, such as tar or
365 WinZip to view or extract any of the files.
366 <p>
367 <b>Warning:</b> depending upon which files/directories you have selected,
368 this archive might be very very large.  It might take many minutes to
369 create and transfer the archive, and you will need enough local disk
370 space to store it.
371 <p>
372 <form action="\$MyURL" method="post">
373 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
374 <input type="hidden" name="num" value="\$num">
375 <input type="hidden" name="type" value="1">
376 \$hiddenStr
377 <input type="hidden" value="\$In{action}" name="action">
378 <input type="checkbox" value="1" name="relative" checked> Make archive relative
379 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
380 (otherwise archive will contain full paths).
381 <br>
382 <input type="submit" value="Download Tar File" name="">
383 </form>
384 EOF
385
386
387 # ------------------------------
388 $Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host";
389
390 $Lang{Are_you_sure} = <<EOF;
391 \${h1("Are you sure?")}
392 <p>
393 You are about to start a restore directly to the machine \$In{hostDest}.
394 The following files will be restored to share \$In{shareDest}, from
395 backup number \$num:
396 <p>
397 <table border>
398 <tr><td>Original file/dir</td><td>Will be restored to</td></tr>
399 \$fileListStr
400 </table>
401
402 <form action="\$MyURL" method="post">
403 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
404 <input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}">
405 <input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}">
406 <input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}">
407 <input type="hidden" name="num" value="\$num">
408 <input type="hidden" name="type" value="4">
409 \$hiddenStr
410 Do you really want to do this?
411 <input type="submit" value="\$In{action}" name="action">
412 <input type="submit" value="No" name="">
413 </form>
414 EOF
415
416
417 # --------------------------
418 $Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest";
419 $Lang{Reply_from_server_was___reply} = <<EOF;
420 \${h1(\$str)}
421 <p>
422 Reply from server was: \$reply
423 <p>
424 Go back to <a href="\$MyURL?host=\$hostDest">\$hostDest home page</a>.
425 EOF
426
427 # -------------------------
428 $Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary";
429
430 $Lang{Host__host_Backup_Summary2} = <<EOF;
431 \${h1("Host \$host Backup Summary")}
432 <p>
433 \$warnStr
434 <ul>
435 \$statusStr
436 </ul>
437
438 \${h2("User Actions")}
439 <p>
440 <form action="\$MyURL" method="get">
441 <input type="hidden" name="host" value="\$host">
442 \$startIncrStr
443 <input type="submit" value="$Lang{Start_Full_Backup}" name="action">
444 <input type="submit" value="$Lang{Stop_Dequeue_Backup}" name="action">
445 </form>
446
447 \${h2("Backup Summary")}
448 <p>
449 Click on the backup number to browse and restore backup files.
450 <table border>
451 <tr><td align="center"> Backup# </td>
452     <td align="center"> Type </td>
453     <td align="center"> Filled </td>
454     <td align="center"> Start Date </td>
455     <td align="center"> Duration/mins </td>
456     <td align="center"> Age/days </td>
457     <td align="center"> Server Backup Path </td>
458 </tr>
459 \$str
460 </table>
461 <p>
462
463 \$restoreStr
464
465 \${h2("Xfer Error Summary")}
466 <p>
467 <table border>
468 <tr><td align="center"> Backup# </td>
469     <td align="center"> Type </td>
470     <td align="center"> View </td>
471     <td align="center"> #Xfer errs </td>
472     <td align="center"> #bad files </td>
473     <td align="center"> #bad share </td>
474     <td align="center"> #tar errs </td>
475 </tr>
476 \$errStr
477 </table>
478 <p>
479
480 \${h2("File Size/Count Reuse Summary")}
481 <p>
482 Existing files are those already in the pool; new files are those added
483 to the pool.
484 Empty files and SMB errors aren\'t counted in the reuse and new counts.
485 <table border>
486 <tr><td colspan="2"></td>
487     <td align="center" colspan="3"> Totals </td>
488     <td align="center" colspan="2"> Existing Files </td>
489     <td align="center" colspan="2"> New Files </td>
490 </tr>
491 <tr>
492     <td align="center"> Backup# </td>
493     <td align="center"> Type </td>
494     <td align="center"> #Files </td>
495     <td align="center"> Size/MB </td>
496     <td align="center"> MB/sec </td>
497     <td align="center"> #Files </td>
498     <td align="center"> Size/MB </td>
499     <td align="center"> #Files </td>
500     <td align="center"> Size/MB </td>
501 </tr>
502 \$sizeStr
503 </table>
504 <p>
505
506 \${h2("Compression Summary")}
507 <p>
508 Compression performance for files already in the pool and newly
509 compressed files.
510 <table border>
511 <tr><td colspan="3"></td>
512     <td align="center" colspan="3"> Existing Files </td>
513     <td align="center" colspan="3"> New Files </td>
514 </tr>
515 <tr><td align="center"> Backup# </td>
516     <td align="center"> Type </td>
517     <td align="center"> Comp Level </td>
518     <td align="center"> Size/MB </td>
519     <td align="center"> Comp/MB </td>
520     <td align="center"> Comp </td>
521     <td align="center"> Size/MB </td>
522     <td align="center"> Comp/MB </td>
523     <td align="center"> Comp </td>
524 </tr>
525 \$compStr
526 </table>
527 <p>
528 EOF
529
530 # -------------------------
531 $Lang{Error} = "BackupPC: Error";
532 $Lang{Error____head} = <<EOF;
533 \${h1("Error: \$head")}
534 <p>\$mesg</p>
535 EOF
536
537 # -------------------------
538 $Lang{NavSectionTitle_} = "Server";
539
540 # -------------------------
541 $Lang{Backup_browse_for__host} = <<EOF;
542 \${h1("Backup browse for \$host")}
543
544 <script language="javascript" type="text/javascript">
545 <!--
546
547     function checkAll(location)
548     {
549       for (var i=0;i<document.form1.elements.length;i++)
550       {
551         var e = document.form1.elements[i];
552         if ((e.checked || !e.checked) && e.name != \'all\') {
553             if (eval("document.form1."+location+".checked")) {
554                 e.checked = true;
555             } else {
556                 e.checked = false;
557             }
558         }
559       }
560     }
561     
562     function toggleThis(checkbox)
563     {
564        var cb = eval("document.form1."+checkbox);
565        cb.checked = !cb.checked;        
566     }
567
568 //-->
569 </script>
570
571 <form name="form0" method="post" action="\$MyURL">
572 <input type="hidden" name="num" value="\$num">
573 <input type="hidden" name="host" value="\$host">
574 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
575 <input type="hidden" name="action" value="browse">
576 <ul>
577 <li> You are browsing backup #\$num, which started around \$backupTime
578         (\$backupAge days ago),
579 \$filledBackup
580 <li> Click on a directory below to navigate into that directory,
581 <li> Click on a file below to restore that file,
582 <li> You can view the backup <a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">history</a> of the current directory.
583 <li> Enter directory: <input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit">
584 </ul>
585 </form>
586
587 \${h2("Contents of \${EscHTML(\$dirDisplay)}")}
588 <form name="form1" method="post" action="\$MyURL">
589 <input type="hidden" name="num" value="\$num">
590 <input type="hidden" name="host" value="\$host">
591 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
592 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
593 <input type="hidden" name="action" value="$Lang{Restore}">
594 <br>
595 <table>
596 <tr><td valign="top">
597     <!--Navigate here:-->
598     <br><table align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
599     \$dirStr
600     </table>
601 </td><td width="3%">
602 </td><td valign="top">
603     <!--Restore files here:-->
604     <br>
605     <table cellpadding="0" cellspacing="0" bgcolor="#333333"><tr><td>
606         <table border="0" width="100%" align="left" cellpadding="2" cellspacing="1">
607         \$fileHeader
608         \$topCheckAll
609         \$fileStr
610         \$checkAll
611         </table>
612     </td></tr></table>
613 <br>
614 <!--
615 This is now in the checkAll row
616 <input type="submit" name="Submit" value="Restore selected files">
617 -->
618 </td></tr></table>
619 </form>
620 EOF
621
622 # ------------------------------
623 $Lang{DirHistory_backup_for__host} = "BackupPC: Directory backup history for \$host";
624
625 #
626 # These two strings are used to build the links for directories and
627 # file versions.  Files are appended with a version number.
628 #
629 $Lang{DirHistory_dirLink}  = "dir";
630 $Lang{DirHistory_fileLink} = "v";
631
632 $Lang{DirHistory_for__host} = <<EOF;
633 \${h1("Directory backup history for \$host")}
634 <p>
635 This display shows each unique version of files across all
636 the backups:
637 <ul>
638 <li> Click on a backup number to return to the backup browser,
639 <li> Click on a directory link (\$Lang->{DirHistory_dirLink}) to navigate
640      into that directory,
641 <li> Click on a file version link (\$Lang->{DirHistory_fileLink}0,
642      \$Lang->{DirHistory_fileLink}1, ...) to download that file,
643 <li> Files with the same contents between different backups have the same
644      version number,
645 <li> Files or directories not present in a particular backup have an
646      empty box.
647 <li> Files shown with the same version might have different attributes.
648      Select the backup number to see the file attributes.
649 </ul>
650
651 \${h2("History of \${EscHTML(\$dirDisplay)}")}
652
653 <br>
654 <table border bgcolor="#ffffcc">
655 <tr bgcolor="\$Conf{CgiHeaderBgColor}"><td>Backup number</td>\$backupNumStr</tr>
656 <tr bgcolor="\$Conf{CgiHeaderBgColor}"><td>Backup time</td>\$backupTimeStr</tr>
657 \$fileStr
658 </table>
659 EOF
660
661 # ------------------------------
662 $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host";
663
664 $Lang{Restore___num_details_for__host2 } = <<EOF;
665 \${h1("Restore #\$num Details for \$host")}
666 <p>
667 <table border>
668 <tr><td> Number </td><td> \$Restores[\$i]{num} </td></tr>
669 <tr><td> Requested by </td><td> \$RestoreReq{user} </td></tr>
670 <tr><td> Request time </td><td> \$reqTime </td></tr>
671 <tr><td> Result </td><td> \$Restores[\$i]{result} </td></tr>
672 <tr><td> Error Message </td><td> \$Restores[\$i]{errorMsg} </td></tr>
673 <tr><td> Source host </td><td> \$RestoreReq{hostSrc} </td></tr>
674 <tr><td> Source backup num </td><td> \$RestoreReq{num} </td></tr>
675 <tr><td> Source share </td><td> \$RestoreReq{shareSrc} </td></tr>
676 <tr><td> Destination host </td><td> \$RestoreReq{hostDest} </td></tr>
677 <tr><td> Destination share </td><td> \$RestoreReq{shareDest} </td></tr>
678 <tr><td> Start time </td><td> \$startTime </td></tr>
679 <tr><td> Duration </td><td> \$duration min </td></tr>
680 <tr><td> Number of files </td><td> \$Restores[\$i]{nFiles} </td></tr>
681 <tr><td> Total size </td><td> \${MB} MB </td></tr>
682 <tr><td> Transfer rate </td><td> \$MBperSec MB/sec </td></tr>
683 <tr><td> TarCreate errors </td><td> \$Restores[\$i]{tarCreateErrs} </td></tr>
684 <tr><td> Xfer errors </td><td> \$Restores[\$i]{xferErrs} </td></tr>
685 <tr><td> Xfer log file </td><td>
686 <a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">View</a>,
687 <a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Errors</a>
688 </tr></tr>
689 </table>
690 <p>
691 \${h1("File/Directory list")}
692 <p>
693 <table border>
694 <tr><td>Original file/dir</td><td>Restored to</td></tr>
695 \$fileListStr
696 </table>
697 EOF
698
699 # -----------------------------------
700 $Lang{Email_Summary} = "BackupPC: Email Summary";
701
702 # -----------------------------------
703 #  !! ERROR messages !!
704 # -----------------------------------
705 $Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: check apache error_log\n";
706 $Lang{Wrong_user__my_userid_is___} =  
707               "Wrong user: my userid is \$>, instead of \$uid"
708             . "(\$Conf{BackupPCUser})\n";
709 $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries.";
710 $Lang{Only_privileged_users_can_stop_or_start_backups} = 
711                   "Only privileged users can stop or start backups on"
712                 . " \${EscHTML(\$host)}.";
713 $Lang{Invalid_number__num} = "Invalid number \$num";
714 $Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?";
715 $Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files.";
716 $Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files.";
717 $Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries.";
718 $Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files"
719                 . " for host \${EscHTML(\$In{host})}.";
720 $Lang{Empty_host_name} = "Empty host name.";
721 $Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}"
722                     . " is empty";
723 $Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name"
724                     . " \${EscHTML(\$relDir)}";
725 $Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files"
726                 . " for host \${EscHTML(\$In{host})}.";
727 $Lang{Bad_host_name} = "Bad host name \${EscHTML(\$host)}";
728 $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to"
729                 . " select some files.";
730 $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names";
731 $Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} doesn\'t exist";
732 $Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host"
733                     . " \${EscHTML(\$In{hostDest})}";
734 $Lang{Can_t_open_create} = "Can\'t open/create "
735                     . "\${EscHTML(\"\$TopDir/pc/\$hostDest/\$reqFileName\")}";
736 $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files"
737                 . " for host \${EscHTML(\$host)}.";
738 $Lang{Empty_host_name} = "Empty host name";
739 $Lang{Unknown_host_or_user} = "Unknown host or user \${EscHTML(\$host)}";
740 $Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about"
741                 . " host \${EscHTML(\$host)}." ;
742 $Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information.";
743 $Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscHTML(\$host)} does"
744                 . " not exist.";
745
746 $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server",
747             "This CGI script (\$MyURL) is unable to connect to the BackupPC"
748           . " server on \$Conf{ServerHost} port \$Conf{ServerPort}.  The error"
749           . " was: \$err.",
750             "Perhaps the BackupPC server is not running or there is a "
751           . " configuration error.  Please report this to your Sys Admin.";
752
753 $Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscHTML(\$host)}";
754 $Lang{host_is_a_DHCP_host} = <<EOF;
755 \$host is a DHCP host, and I don\'t know its IP address.  I checked the
756 netbios name of \$ENV{REMOTE_ADDR}\$tryIP, and found that that machine
757 is not \$host.
758 <p>
759 Until I see \$host at a particular DHCP address, you can only
760 start this request from the client machine itself.
761 EOF
762
763 ########################
764 # ok you can do it then
765 ########################
766
767 $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by"
768                                       . " \$User from \$ENV{REMOTE_ADDR}";
769
770 $Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User";
771 $Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User";
772
773 $Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num,"
774              . " by \$User from \$ENV{REMOTE_ADDR}";
775
776 # -------------------------------------------------
777 # ------- Stuff that was forgotten ----------------
778 # -------------------------------------------------
779
780 $Lang{Status} = "Status";
781 $Lang{PC_Summary} = "PC Summary";
782 $Lang{LOG_file} = "LOG file";
783 $Lang{Old_LOGs} = "Old LOGs";
784 $Lang{Email_summary} = "Email summary";
785 $Lang{Config_file} = "Config file";
786 $Lang{Hosts_file} = "Hosts file";
787 $Lang{Current_queues} = "Current queues";
788 $Lang{Documentation} = "Documentation";
789
790 $Lang{Host_or_User_name} = "<small>Host or User name:</small>";
791 $Lang{Go} = "Go";
792 $Lang{Hosts} = "Hosts";
793
794 $Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n";
795 $Lang{This_PC_is_used_by} = "<li>This PC is used by \${UserLink(\$user)}";
796
797 $Lang{Extracting_only_Errors} = "(Extracting only Errors)";
798 $Lang{XferLOG} = "XferLOG";
799 $Lang{Errors}  = "Errors";
800
801 # ------------
802 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
803 <li>Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj".
804 EOF
805 # ------------
806 $Lang{The_command_cmd_is_currently_running_for_started} = <<EOF;
807 <li>The command \$cmd is currently running for \$host, started \$startTime.
808 EOF
809
810 # -----------
811 $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF;
812 <li>Host \$host is queued on the background queue (will be backed up soon).
813 EOF
814
815 # ----------
816 $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF;
817 <li>Host \$host is queued on the user queue (will be backed up soon).
818 EOF
819
820 # ---------
821 $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF;
822 <li>A command for \$host is on the command queue (will run soon).
823 EOF
824
825 # --------
826 $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
827 <li>Last status is state \"\$Lang->{\$StatusHost{state}}\"\$reason as of \$startTime.
828 EOF
829
830 # --------
831 $Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF;
832 <li>Last error is \"\${EscHTML(\$StatusHost{error})}\".
833 EOF
834
835 # ------
836 $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF;
837 <li>Pings to \$host have failed \$StatusHost{deadCnt} consecutive times.
838 EOF
839
840 # -----
841 $Lang{Prior_to_that__pings} = "Prior to that, pings";
842
843 # -----
844 $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF;
845 <li>\$priorStr to \$host have succeeded \$StatusHost{aliveCnt}
846         consecutive times.
847 EOF
848
849 $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
850 <li>Because \$host has been on the network at least \$Conf{BlackoutGoodCnt}
851 consecutive times, it will not be backed up from \$t0 to \$t1 on \$days.
852 EOF
853
854 $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
855 <li>Backups are deferred for \$hours hours
856 (<a href=\"\$MyURL?action=Stop/Dequeue%20Backup&host=\$host\">change this number</a>).
857 EOF
858
859 $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}";
860
861 $Lang{Host_Inhost} = "Host \$In{host}";
862
863 $Lang{checkAll} = <<EOF;
864 <tr bgcolor="#ffffcc"><td>
865 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
866 </td><td colspan="5" align="center">
867 <input type="submit" name="Submit" value="Restore selected files">
868 </td></tr>
869 EOF
870
871 $Lang{fileHeader} = <<EOF;
872     <tr bgcolor="\$Conf{CgiHeaderBgColor}"><td align=center> Name</td>
873        <td align="center"> Type</td>
874        <td align="center"> Mode</td>
875        <td align="center"> #</td>
876        <td align="center"> Size</td>
877        <td align="center"> Mod time</td>
878     </tr>
879 EOF
880
881 $Lang{Home} = "Home";
882 $Lang{Last_bad_XferLOG} = "Last bad XferLOG";
883 $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors&nbsp;only)";
884
885 $Lang{This_display_is_merged_with_backup} = <<EOF;
886 <li> This display is merged with backup #\$numF.
887 EOF
888
889 $Lang{Visit_this_directory_in_backup} = <<EOF;
890 <li> Visit this directory in backup #\$otherDirs.
891 EOF
892
893 $Lang{Restore_Summary} = <<EOF;
894 \${h2("Restore Summary")}
895 <p>
896 Click on the restore number for more details.
897 <table border>
898 <tr><td align="center"> Restore# </td>
899     <td align="center"> Result </td>
900     <td align="right"> Start Date</td>
901     <td align="right"> Dur/mins</td>
902     <td align="right"> #files </td>
903     <td align="right"> MB </td>
904     <td align="right"> #tar errs </td>
905     <td align="right"> #xferErrs </td>
906 </tr>
907 \$restoreStr
908 </table>
909 <p>
910 EOF
911
912 $Lang{BackupPC__Documentation} = "BackupPC: Documentation";
913
914 $Lang{No} = "no";
915 $Lang{Yes} = "yes";
916
917 $Lang{The_directory_is_empty} = <<EOF;
918 <tr><td bgcolor="#ffffff">The directory \${EscHTML(\$dirDisplay)} is empty
919 </td></tr>
920 EOF
921
922 #$Lang{on} = "on";
923 $Lang{off} = "off";
924
925 $Lang{backupType_full}    = "full";
926 $Lang{backupType_incr}    = "incr";
927 $Lang{backupType_partial} = "partial";
928
929 $Lang{failed} = "failed";
930 $Lang{success} = "success";
931 $Lang{and} = "and";
932
933 # ------
934 # Hosts states and reasons
935 $Lang{Status_idle} = "idle";
936 $Lang{Status_backup_starting} = "backup starting";
937 $Lang{Status_backup_in_progress} = "backup in progress";
938 $Lang{Status_restore_starting} = "restore starting";
939 $Lang{Status_restore_in_progress} = "restore in progress";
940 $Lang{Status_link_pending} = "link pending";
941 $Lang{Status_link_running} = "link running";
942
943 $Lang{Reason_backup_done} = "backup done";
944 $Lang{Reason_restore_done} = "restore done";
945 $Lang{Reason_nothing_to_do} = "nothing to do";
946 $Lang{Reason_backup_failed} = "backup failed";
947 $Lang{Reason_restore_failed} = "restore failed";
948 $Lang{Reason_no_ping} = "no ping";
949 $Lang{Reason_backup_canceled_by_user} = "backup canceled by user";
950 $Lang{Reason_restore_canceled_by_user} = "restore canceled by user";
951
952 # ---------
953 # Email messages
954
955 # No backup ever
956 $Lang{EMailNoBackupEverSubj} = "BackupPC: no backups of \$host have succeeded";
957 $Lang{EMailNoBackupEverMesg} = <<'EOF';
958 To: $user$domain
959 cc:
960 Subject: $subj
961
962 Dear $userName,
963
964 Your PC ($host) has never been successfully backed up by our
965 PC backup software.  PC backups should occur automatically
966 when your PC is connected to the network.  You should contact
967 computer support if:
968
969   - Your PC has been regularly connected to the network, meaning
970     there is some configuration or setup problem preventing
971     backups from occurring.
972
973   - You don't want your PC backed up and you want these email
974     messages to stop.
975
976 Otherwise, please make sure your PC is connected to the network
977 next time you are in the office.
978
979 Regards,
980 BackupPC Genie
981 http://backuppc.sourceforge.net
982 EOF
983
984 # No recent backup
985 $Lang{EMailNoBackupRecentSubj} = "BackupPC: no recent backups on \$host";
986 $Lang{EMailNoBackupRecentMesg} = <<'EOF';
987 To: $user$domain
988 cc:
989 Subject: $subj
990
991 Dear $userName,
992
993 Your PC ($host) has not been successfully backed up for $days days.
994 Your PC has been correctly backed up $numBackups times from $firstTime to $days
995 ago.  PC backups should occur automatically when your PC is connected
996 to the network.
997
998 If your PC has been connected for more than a few hours to the
999 network during the last $days days you should contact IS to find
1000 out why backups are not working.
1001
1002 Otherwise, if you are out of the office, there's not much you can
1003 do, other than manually copying especially critical files to other
1004 media.  You should be aware that any files you have created or
1005 changed in the last $days days (including all new email and
1006 attachments) cannot be restored if your PC disk crashes.
1007
1008 Regards,
1009 BackupPC Genie
1010 http://backuppc.sourceforge.net
1011 EOF
1012
1013 # Old Outlook files
1014 $Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up";
1015 $Lang{EMailOutlookBackupMesg} = <<'EOF';
1016 To: $user$domain
1017 cc:
1018 Subject: $subj
1019
1020 Dear $userName,
1021
1022 The Outlook files on your PC have $howLong.
1023 These files contain all your email, attachments, contact and calendar           
1024 information.  Your PC has been correctly backed up $numBackups times from
1025 $firstTime to $lastTime days ago.  However, Outlook locks all its files when
1026 it is running, preventing these files from being backed up.
1027
1028 It is recommended you backup the Outlook files when you are connected
1029 to the network by exiting Outlook and all other applications, and,
1030 using just your browser, go to this link:
1031
1032     $CgiURL?host=$host               
1033
1034 Select "Start Incr Backup" twice to start a new incremental backup.
1035 You can select "Return to $host page" and then hit "reload" to check
1036 the status of the backup.  It should take just a few minutes to
1037 complete.
1038
1039 Regards,
1040 BackupPC Genie
1041 http://backuppc.sourceforge.net
1042 EOF
1043
1044 $Lang{howLong_not_been_backed_up} = "not been backed up successfully";
1045 $Lang{howLong_not_been_backed_up_for_days_days} = "not been backed up for \$days days";
1046
1047 #end of lang_en.pm