* Added internationalization (i18n) code from Xavier Nicollet.
[BackupPC.git] / lib / BackupPC / Lang / en.pm
1 #!/usr/bin/perl -w
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> Xfer PID </td>
51     \$tarPidHdr</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 "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="\${EscapeHTML(\$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="\${EscapeHTML(\$host)}"
300          name="hostDest"></td>
301 </tr><tr>
302     <td>Restore the files to share</td>
303     <td><input type="text" size="40" value="\${EscapeHTML(\$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="\${EscapeHTML(\$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="\${EscapeHTML(\$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 \${EscapeHTML(\$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 You could download a zip archive, but Archive::Zip is not installed.
352 Please ask your system adminstrator to install Archive::Zip from
353 <a href="http://www.cpan.org">www.cpan.org</a>.
354 <p>
355 EOF
356
357
358 # ------------------------------
359 $Lang{Option_3__Download_Zip_archive} = <<EOF;
360 \${h2("Option 3: Download Tar archive")}
361 <p>
362 You can download a Tar archive containing all the files/directories you
363 have selected.  You can then use a local application, such as tar or
364 WinZip to view or extract any of the files.
365 <p>
366 <b>Warning:</b> depending upon which files/directories you have selected,
367 this archive might be very very large.  It might take many minutes to
368 create and transfer the archive, and you will need enough local disk
369 space to store it.
370 <p>
371 <form action="\$MyURL" method="post">
372 <input type="hidden" name="host" value="\${EscapeHTML(\$host)}">
373 <input type="hidden" name="num" value="\$num">
374 <input type="hidden" name="type" value="1">
375 \$hiddenStr
376 <input type="hidden" value="\$In{action}" name="action">
377 <input type="checkbox" value="1" name="relative" checked> Make archive relative
378 to \${EscapeHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
379 (otherwise archive will contain full paths).
380 <br>
381 <input type="submit" value="Download Tar File" name="">
382 </form>
383 EOF
384
385
386 # ------------------------------
387 $Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host";
388
389 $Lang{Are_you_sure} = <<EOF;
390 \${h1("Are you sure?")}
391 <p>
392 You are about to start a restore directly to the machine \$In{hostDest}.
393 The following files will be restored to share \$In{shareDest}, from
394 backup number \$num:
395 <p>
396 <table border>
397 <tr><td>Original file/dir</td><td>Will be restored to</td></tr>
398 \$fileListStr
399 </table>
400
401 <form action="\$MyURL" method="post">
402 <input type="hidden" name="host" value="\${EscapeHTML(\$host)}">
403 <input type="hidden" name="hostDest" value="\${EscapeHTML(\$In{hostDest})}">
404 <input type="hidden" name="shareDest" value="\${EscapeHTML(\$In{shareDest})}">
405 <input type="hidden" name="pathHdr" value="\${EscapeHTML(\$In{pathHdr})}">
406 <input type="hidden" name="num" value="\$num">
407 <input type="hidden" name="type" value="4">
408 \$hiddenStr
409 Do you really want to do this?
410 <input type="submit" value="\$In{action}" name="action">
411 <input type="submit" value="No" name="">
412 </form>
413 EOF
414
415
416 # --------------------------
417 $Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest";
418 $Lang{Reply_from_server_was___reply} = <<EOF;
419 \${h1(\$str)}
420 <p>
421 Reply from server was: \$reply
422 <p>
423 Go back to <a href="\$MyURL?host=\$hostDest">\$hostDest home page</a>.
424 EOF
425
426 # -------------------------
427 $Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary";
428
429 $Lang{Host__host_Backup_Summary2} = <<EOF;
430 \${h1("Host \$host Backup Summary")}
431 <p>
432 \$warnStr
433 <ul>
434 \$statusStr
435 </ul>
436
437 \${h2("User Actions")}
438 <p>
439 <form action="\$MyURL" method="get">
440 <input type="hidden" name="host" value="\$host">
441 \$startIncrStr
442 <input type="submit" value="$Lang{Start_Full_Backup}" name="action" alt="demarage plein">
443 <input type="submit" value="$Lang{Stop_Dequeue_Backup}" name="action">
444 </form>
445
446 \${h2("Backup Summary")}
447 <p>
448 Click on the backup number to browse and restore backup files.
449 <table border>
450 <tr><td align="center"> Backup# </td>
451     <td align="center"> Type </td>
452     <td align="center"> Filled </td>
453     <td align="center"> Start Date </td>
454     <td align="center"> Duration/mins </td>
455     <td align="center"> Age/days </td>
456     <td align="center"> Server Backup Path </td>
457 </tr>
458 \$str
459 </table>
460 <p>
461
462 \$restoreStr
463
464 \${h2("Xfer Error Summary")}
465 <p>
466 <table border>
467 <tr><td align="center"> Backup# </td>
468     <td align="center"> Type </td>
469     <td align="center"> View </td>
470     <td align="center"> #Xfer errs </td>
471     <td align="center"> #bad files </td>
472     <td align="center"> #bad share </td>
473     <td align="center"> #tar errs </td>
474 </tr>
475 \$errStr
476 </table>
477 <p>
478
479 \${h2("File Size/Count Reuse Summary")}
480 <p>
481 Existing files are those already in the pool; new files are those added
482 to the pool.
483 Empty files and SMB errors aren\'t counted in the reuse and new counts.
484 <table border>
485 <tr><td colspan="2"></td>
486     <td align="center" colspan="3"> Totals </td>
487     <td align="center" colspan="2"> Existing Files </td>
488     <td align="center" colspan="2"> New Files </td>
489 </tr>
490 <tr>
491     <td align="center"> Backup# </td>
492     <td align="center"> Type </td>
493     <td align="center"> #Files </td>
494     <td align="center"> Size/MB </td>
495     <td align="center"> MB/sec </td>
496     <td align="center"> #Files </td>
497     <td align="center"> Size/MB </td>
498     <td align="center"> #Files </td>
499     <td align="center"> Size/MB </td>
500 </tr>
501 \$sizeStr
502 </table>
503 <p>
504
505 \${h2("Compression Summary")}
506 <p>
507 Compression performance for files already in the pool and newly
508 compressed files.
509 <table border>
510 <tr><td colspan="3"></td>
511     <td align="center" colspan="3"> Existing Files </td>
512     <td align="center" colspan="3"> New Files </td>
513 </tr>
514 <tr><td align="center"> Backup# </td>
515     <td align="center"> Type </td>
516     <td align="center"> Comp Level </td>
517     <td align="center"> Size/MB </td>
518     <td align="center"> Comp/MB </td>
519     <td align="center"> Comp </td>
520     <td align="center"> Size/MB </td>
521     <td align="center"> Comp/MB </td>
522     <td align="center"> Comp </td>
523 </tr>
524 \$compStr
525 </table>
526 <p>
527 EOF
528
529 # -------------------------
530 $Lang{Error} = "BackupPC: Error";
531 $Lang{Error____head} = <<EOF;
532 \${h1("Error: \$head")}
533 <p>\$mesg</p>
534 EOF
535
536 # -------------------------
537 $Lang{NavSectionTitle_} = "Server";
538
539 # -------------------------
540 $Lang{Backup_browse_for__host} = <<EOF;
541 \${h1("Backup browse for \$host")}
542
543 <script language="javascript" type="text/javascript">
544 <!--
545
546     function checkAll(location)
547     {
548       for (var i=0;i<document.form1.elements.length;i++)
549       {
550         var e = document.form1.elements[i];
551         if ((e.checked || !e.checked) && e.name != \'all\') {
552             if (eval("document.form1."+location+".checked")) {
553                 e.checked = true;
554             } else {
555                 e.checked = false;
556             }
557         }
558       }
559     }
560     
561     function toggleThis(checkbox)
562     {
563        var cb = eval("document.form1."+checkbox);
564        cb.checked = !cb.checked;        
565     }
566
567 //-->
568 </script>
569
570 <ul>
571 <li> You are browsing backup #\$num, which started around \$backupTime
572         (\$backupAge days ago),
573 \$filledBackup
574 <li> Click on a directory below to navigate into that directory,
575 <li> Click on a file below to restore that file.
576 </ul>
577
578 \${h2("Contents of \${EscapeHTML(\$dirDisplay)}")}
579 <form name="form1" method="post" action="\$MyURL">
580 <input type="hidden" name="num" value="\$num">
581 <input type="hidden" name="host" value="\$host">
582 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
583 <input type="hidden" name="action" value="$Lang{Restore}">
584 <br>
585 <table>
586 <tr><td valign="top">
587     <!--Navigate here:-->
588     <br><table align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
589     \$dirStr
590     </table>
591 </td><td width="3%">
592 </td><td valign="top">
593     <!--Restore files here:-->
594     <br>
595     <table cellpadding="0" cellspacing="0" bgcolor="#333333"><tr><td>
596         <table border="0" width="100%" align="left" cellpadding="2" cellspacing="1">
597         \$fileHeader
598         \$topCheckAll
599         \$fileStr
600         \$checkAll
601         </table>
602     </td></tr></table>
603 <br>
604 <!--
605 This is now in the checkAll row
606 <input type="submit" name="Submit" value="Restore selected files">
607 -->
608 </td></tr></table>
609 </form>
610 EOF
611
612 # ------------------------------
613 $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host";
614
615 $Lang{Restore___num_details_for__host2 } = <<EOF;
616 \${h1("Restore #\$num Details for \$host")}
617 <p>
618 <table border>
619 <tr><td> Number </td><td> \$Restores[\$i]{num} </td></tr>
620 <tr><td> Requested by </td><td> \$RestoreReq{user} </td></tr>
621 <tr><td> Request time </td><td> \$reqTime </td></tr>
622 <tr><td> Result </td><td> \$Restores[\$i]{result} </td></tr>
623 <tr><td> Error Message </td><td> \$Restores[\$i]{errorMsg} </td></tr>
624 <tr><td> Source host </td><td> \$RestoreReq{hostSrc} </td></tr>
625 <tr><td> Source backup num </td><td> \$RestoreReq{num} </td></tr>
626 <tr><td> Source share </td><td> \$RestoreReq{shareSrc} </td></tr>
627 <tr><td> Destination host </td><td> \$RestoreReq{hostDest} </td></tr>
628 <tr><td> Destination share </td><td> \$RestoreReq{shareDest} </td></tr>
629 <tr><td> Start time </td><td> \$startTime </td></tr>
630 <tr><td> Duration </td><td> \$duration min </td></tr>
631 <tr><td> Number of files </td><td> \$Restores[\$i]{nFiles} </td></tr>
632 <tr><td> Total size </td><td> \${MB} MB </td></tr>
633 <tr><td> Transfer rate </td><td> \$MBperSec MB/sec </td></tr>
634 <tr><td> TarCreate errors </td><td> \$Restores[\$i]{tarCreateErrs} </td></tr>
635 <tr><td> Xfer errors </td><td> \$Restores[\$i]{xferErrs} </td></tr>
636 <tr><td> Xfer log file </td><td>
637 <a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">View</a>,
638 <a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Errors</a>
639 </tr></tr>
640 </table>
641 <p>
642 \${h1("File/Directory list")}
643 <p>
644 <table border>
645 <tr><td>Original file/dir</td><td>Restored to</td></tr>
646 \$fileListStr
647 </table>
648 EOF
649
650 # -----------------------------------
651 $Lang{Email_Summary} = "BackupPC: Email Summary";
652
653 # -----------------------------------
654 #  !! ERROR messages !!
655 # -----------------------------------
656 $Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: check apache error_log\n";
657 $Lang{Wrong_user__my_userid_is___} =  
658               "Wrong user: my userid is \$>, instead of \$uid"
659             . "(\$Conf{BackupPCUser})\n";
660 $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries.";
661 $Lang{Only_privileged_users_can_stop_or_start_backups} = 
662                   "Only privileged users can stop or start backups on"
663                 . " \${EscapeHTML(\$host)}.";
664 $Lang{Invalid_number__num} = "Invalid number \$num";
665 $Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?";
666 $Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files.";
667 $Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files.";
668 $Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries.";
669 $Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files"
670                 . " for host \${EscapeHTML(\$In{host})}.";
671 $Lang{Empty_host_name} = "Empty host name.";
672 $Lang{Can_t_browse_bad_directory_name} = "Can\'t browse bad directory name"
673                     . " \${EscapeHTML(\"\$TopDir/pc/\$host/\$num\")}";
674 $Lang{Directory___EscapeHTML} = "Directory \${EscapeHTML(\"\$TopDir/pc/\$host/\$num\")}"
675                     . " is empty";
676 $Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name"
677                     . " \${EscapeHTML(\$fullDir)}";
678 $Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files"
679                 . " for host \${EscapeHTML(\$In{host})}.";
680 $Lang{Bad_host_name} = "Bad host name \${EscapeHTML(\$host)}";
681 $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to"
682                 . " select some files.";
683 $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names";
684 $Lang{Can_t_fork_for_tar_restore} = "Can\'t fork for tar restore";
685 $Lang{Can_t_fork_for_zip_restore} = "Can\'t fork for zip restore";
686 $Lang{Host__doesn_t_exist} = "Host \${EscapeHTML(\$In{hostDest})} doesn\'t exist";
687 $Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host"
688                     . " \${EscapeHTML(\$In{hostDest})}";
689 $Lang{Can_t_open_create} = "Can\'t open/create "
690                     . "\${EscapeHTML(\"\$TopDir/pc/\$hostDest/\$reqFileName\")}";
691 $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files"
692                 . " for host \${EscapeHTML(\$host)}.";
693 $Lang{Empty_host_name} = "Empty host name";
694 $Lang{Can_t_restore_bad_file} = "Can\'t restore bad file \${EscapeHTML(\$fullPath)}";
695 $Lang{Unknown_host_or_user} = "Unknown host or user \${EscapeHTML(\$host)}";
696 $Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about"
697                 . " host \${EscapeHTML(\$host)}." ;
698 $Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information.";
699 $Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscapeHTML(\$host)} does"
700                 . " not exist.";
701
702 $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server",
703             "This CGI script (\$MyURL) is unable to connect to the BackupPC"
704           . " server on \$Conf{ServerHost} port \$Conf{ServerPort}.  The error"
705           . " was: \$err.",
706             "Perhaps the BackupPC server is not running or there is a "
707           . " configuration error.  Please report this to your Sys Admin.";
708
709 $Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscapeHTML(\$host)}";
710
711 $Lang{host_is_a_DHCP_host} = <<EOF;
712 \$host is a DHCP host, and I don\'t know its IP address.  I checked the
713 netbios name of \$ENV{REMOTE_ADDR}\$tryIP, and found that that machine
714 is not \$host.
715 <p>
716 Until I see \$host at a particular DHCP address, you can only
717 start this request from the client machine itself.
718 EOF
719
720 # ------------------------------------
721 # !! Server Mesg !!
722 # ------------------------------------
723
724 # do not translate the firsts, used by server
725 $Lang{backup__In_hostIP___host} = "backup \$In{hostIP} \$host"
726                                 . " \$User \$doFull";
727 $Lang{backup__host__host__User__doFull} = "backup \$host \$host \$User \$doFull";
728 $Lang{restore__ipAddr} = "restore \$ipAddr"
729                        . " \$hostDest \$User \$reqFileName";
730 $Lang{stop__host__User__In_backoff} = "stop \$host \$User \$In{backoff}";
731
732 ########################
733 # ok you can do it then
734 ########################
735
736 $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by"
737                                       . " \$User from \$ENV{REMOTE_ADDR}";
738
739 $Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User";
740 $Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User";
741 $Lang{log_Can_t_fork_for_tar_restore_request_by__User} = "log Can\'t fork for tar restore request by \$User";
742 $Lang{log_User__User_downloaded_tar_archive_for__host} = "log User \$User downloaded tar archive for \$host,"
743                            . " backup \$num; files were: "
744                            . " \${join(\", \", \@fileListTrim)}";
745
746 $Lang{log_Can_t_fork_for_zip_restore_request_by__User} = "log Can\'t fork for zip restore request by \$User";
747
748 $Lang{log_User__User_downloaded_zip_archive_for__host}= "log User \$User downloaded zip archive for \$host,"
749                            . " backup \$num; files were: "
750                            . "\${join(\", \", \@fileListTrim)}";
751
752 $Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num,"
753              . " by \$User from \$ENV{REMOTE_ADDR}";
754
755 # -------------------------------------------------
756 # ------- Stuff that was forgotten ----------------
757 # -------------------------------------------------
758
759 $Lang{Status} = "Status";
760 $Lang{PC_Summary} = "PC Summary";
761 $Lang{LOG_file} = "LOG file";
762 $Lang{Old_LOGs} = "Old LOGs";
763 $Lang{Email_summary} = "Email summary";
764 $Lang{Config_file} = "Config file";
765 $Lang{Hosts_file} = "Hosts file";
766 $Lang{Current_queues} = "Current queues";
767 $Lang{Documentation} = "Documentation";
768
769 $Lang{Host_or_User_name} = "<small>Host or User name:</small>";
770 $Lang{Go} = "Go";
771 $Lang{Hosts} = "Hosts";
772
773 $Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n";
774 $Lang{This_PC_is_used_by} = "<li>This PC is used by \${UserLink(\$user)}";
775
776 # ------------
777 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
778 <li>Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj".
779 EOF
780 # ------------
781 $Lang{The_command_cmd_is_currently_running_for_started} = <<EOF;
782 <li>The command \$cmd is currently running for \$host, started \$startTime.
783 EOF
784
785 # -----------
786 $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF;
787 <li>Host \$host is queued on the background queue (will be backed up soon).
788 EOF
789
790 # ----------
791 $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF;
792 <li>Host \$host is queued on the user queue (will be backed up soon).
793 EOF
794
795 # ---------
796 $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF;
797 <li>A command for \$host is on the command queue (will run soon).
798 EOF
799
800 # --------
801 $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
802 <li>Last status is state \"\$StatusHost{state}\"\$reason
803     as of \$startTime.
804 EOF
805
806 # --------
807 $Lang{Last_error_is____EscapeHTML_StatusHost_error} = <<EOF;
808 <li>Last error is \"\${EscapeHTML(\$StatusHost{error})}\"
809 EOF
810
811 # ------
812 $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF;
813 <li>Pings to \$host have failed \$StatusHost{deadCnt} consecutive times.
814 EOF
815
816 # -----
817 $Lang{Prior_to_that__pings} = "Prior to that, pings";
818
819 # -----
820 $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF;
821 <li>\$priorStr to \$host have succeeded \$StatusHost{aliveCnt}
822         consecutive times.
823 EOF
824
825 $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
826 <li>Because \$host has been on the network at least \$Conf{BlackoutGoodCnt}
827 consecutive times, it will not be backed up from \$t0 to \$t1 on \$days.
828 EOF
829
830 $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
831 <li>Backups are deferred for \$hours hours
832 (<a href=\"\$MyURL?action=Stop/Dequeue%20Backup&host=\$host\">change this number</a>).
833 EOF
834
835 $Lang{info_jobs_hosts_queueLen} = "info jobs hosts queueLen";
836
837 $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}";
838
839 $Lang{Host_Inhost} = "Host \$In{host}";
840
841 $Lang{checkAll} = <<EOF;
842 <tr bgcolor="#ffffcc"><td>
843 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;Select all
844 </td><td colspan="4" align="center">
845 <input type="submit" name="Submit" value="Restore selected files">
846 </td></tr>
847 EOF
848
849 $Lang{fileHeader} = <<EOF;
850     <tr bgcolor="\$Conf{CgiHeaderBgColor}"><td align=center> Name</td>
851        <td align="center"> Type</td>
852        <td align="center"> Mode</td>
853        <td align="center"> Size</td>
854        <td align="center"> Mod time</td>
855     </tr>
856 EOF
857
858 $Lang{Home} = "Home";
859 $Lang{Last_bad_XferLOG} = "Last bad XferLOG";
860 $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors&nbsp;only)";
861
862 $Lang{This_display_is_merged_with_backup} = <<EOF;
863 <li> This display is merged with backup #\$numF, the most recent prior
864      filled (full) dump.
865 EOF
866
867 $Lang{Restore_Summary} = <<EOF;
868 \${h2("Restore Summary")}
869 <p>
870 Click on the restore number for more details.
871 <table border>
872 <tr><td align="center"> Restore# </td>
873     <td align="center"> Result </td>
874     <td align="right"> Start Date</td>
875     <td align="right"> Dur/mins</td>
876     <td align="right"> #files </td>
877     <td align="right"> MB </td>
878     <td align="right"> #tar errs </td>
879     <td align="right"> #xferErrs </td>
880 </tr>
881 \$restoreStr
882 </table>
883 <p>
884 EOF
885
886 $Lang{BackupPC__Documentation} = "BackupPC: Documentation";
887
888 $Lang{No} = "no";
889 $Lang{Yes} = "yes";
890
891 $Lang{The_directory_is_empty} = <<EOF;
892 <tr><td bgcolor="#ffffff">The directory \${EscapeHTML(\$dirDisplay)} is empty
893 </td></tr>
894 EOF
895
896 $Lang{on} = "on";
897 $Lang{off} = "off";
898
899 $Lang{full} = "full";
900 $Lang{incremental} = "incr";
901
902 $Lang{failed} = "failed";
903 $Lang{success} = "success";
904 $Lang{and} = "and";
905
906 #end of lang_en.pm