6 # --------------------------------
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";
15 $Lang{Type_full} = "full";
16 $Lang{Type_incr} = "incremental";
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}})}
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();">
36 \${h2("Server Configuration")}
38 <li><i>Other options can go here... e.g.,</i>
39 <li>Edit server configuration
43 $Lang{Unable_to_connect_to_BackupPC_server} = "Unable to connect to BackupPC server",
44 "This CGI script (\$MyURL) is unable to connect to the BackupPC"
45 . " server on \$Conf{ServerHost} port \$Conf{ServerPort}. The error"
47 "Perhaps the BackupPC server is not running or there is a "
48 . " configuration error. Please report this to your Sys Admin.";
49 $Lang{Admin_Start_Server} = <<EOF;
50 \${h1(qq{$Lang{Unable_to_connect_to_BackupPC_server}})}
51 <form action="\$MyURL" method="get">
52 The BackupPC server at <tt>\$Conf{ServerHost}</tt> port <tt>\$Conf{ServerPort}</tt>
53 is not currently running (maybe you just stopped it, or haven't yet started it).<br>
54 Do you want to start it?
55 <input type="hidden" name="action" value="startServer">
56 <input type="submit" value="Start Server" name="ignore">
62 $Lang{H_BackupPC_Server_Status} = "BackupPC Server Status";
64 $Lang{BackupPC_Server_Status_General_Info}= <<EOF;
65 \${h2(\"General Server Information\")}
68 <li> The servers PID is \$Info{pid}, on host \$Conf{ServerHost},
69 version \$Info{Version}, started at \$serverStartTime.
70 <li> This status was generated at \$now.
71 <li> The configuration was last loaded at \$configLoadTime.
72 <li> PCs will be next queued at \$nextWakeupTime.
75 <li>\$numBgQueue pending backup requests from last scheduled wakeup,
76 <li>\$numUserQueue pending user backup requests,
77 <li>\$numCmdQueue pending command requests,
79 <li>Pool file system was recently at \$Info{DUlastValue}%
80 (\$DUlastTime), today\'s max is \$Info{DUDailyMax}% (\$DUmaxTime)
81 and yesterday\'s max was \$Info{DUDailyMaxPrev}%.
86 $Lang{BackupPC_Server_Status} = <<EOF;
87 \${h1(qq{$Lang{H_BackupPC_Server_Status}})}
92 \${h2("Currently Running Jobs")}
94 <table class="tableStnd" border cellspacing="1" cellpadding="3">
95 <tr class="tableheader"><td> Host </td>
100 <td align="center"> PID </td>
101 <td align="center"> Xfer PID </td>
107 \${h2("Failures that need attention")}
109 <table class="tableStnd" border cellspacing="1" cellpadding="3">
110 <tr class="tableheader"><td align="center"> Host </td>
111 <td align="center"> Type </td>
112 <td align="center"> User </td>
113 <td align="center"> Last Try </td>
114 <td align="center"> Details </td>
115 <td align="center"> Error Time </td>
116 <td> Last error (other than no ping) </td></tr>
121 # --------------------------------
122 $Lang{BackupPC__Server_Summary} = "BackupPC: Host Summary";
123 $Lang{BackupPC__Archive} = "BackupPC: Archive";
124 $Lang{BackupPC_Summary} = <<EOF;
126 \${h1(qq{$Lang{BackupPC__Server_Summary}})}
128 This status was generated at \$now.
131 \${h2("Hosts with good Backups")}
133 There are \$hostCntGood hosts that have been backed up, for a total of:
135 <li> \$fullTot full backups of total size \${fullSizeTot}GB
136 (prior to pooling and compression),
137 <li> \$incrTot incr backups of total size \${incrSizeTot}GB
138 (prior to pooling and compression).
141 <table class="tableStnd" border cellpadding="3" cellspacing="1">
142 <tr class="tableheader"><td> Host </td>
143 <td align="center"> User </td>
144 <td align="center"> #Full </td>
145 <td align="center"> Full Age (days) </td>
146 <td align="center"> Full Size (GB) </td>
147 <td align="center"> Speed (MB/s) </td>
148 <td align="center"> #Incr </td>
149 <td align="center"> Incr Age (days) </td>
150 <td align="center"> Last Backup (days) </td>
151 <td align="center"> State </td>
152 <td align="center"> Last attempt </td></tr>
156 \${h2("Hosts with no Backups")}
158 There are \$hostCntNone hosts with no backups.
160 <table class="tableStnd" border cellpadding="3" cellspacing="1">
161 <tr class="tableheader"><td> Host </td>
162 <td align="center"> User </td>
163 <td align="center"> #Full </td>
164 <td align="center"> Full Age (days) </td>
165 <td align="center"> Full Size (GB) </td>
166 <td align="center"> Speed (MB/s) </td>
167 <td align="center"> #Incr </td>
168 <td align="center"> Incr Age/days </td>
169 <td align="center"> Last Backup (days) </td>
170 <td align="center"> State </td>
171 <td align="center"> Last attempt </td></tr>
176 $Lang{BackupPC_Archive} = <<EOF;
177 \${h1(qq{$Lang{BackupPC__Archive}})}
178 <script language="javascript" type="text/javascript">
181 function checkAll(location)
183 for (var i=0;i<document.form1.elements.length;i++)
185 var e = document.form1.elements[i];
186 if ((e.checked || !e.checked) && e.name != \'all\') {
187 if (eval("document.form1."+location+".checked")) {
196 function toggleThis(checkbox)
198 var cb = eval("document.form1."+checkbox);
199 cb.checked = !cb.checked;
205 There are \$hostCntGood hosts that have been backed up for a total size of \${fullSizeTot}GB
207 <form name="form1" method="post" action="\$MyURL">
208 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
209 <input type="hidden" name="type" value="1">
210 <input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
211 <input type="hidden" name="action" value="Archive">
212 <table class="tableStnd" border cellpadding="3" cellspacing="1">
213 <tr class="tableheader"><td align=center> Host</td>
214 <td align="center"> User </td>
215 <td align="center"> Backup Size </td>
224 $Lang{BackupPC_Archive2} = <<EOF;
225 \${h1(qq{$Lang{BackupPC__Archive}})}
226 About to archive the following hosts
230 <form action="\$MyURL" method="post">
232 <input type="hidden" name="action" value="Archive">
233 <input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
234 <input type="hidden" name="type" value="2">
235 <input type="hidden" value="0" name="archive_type">
236 <table class="tableStnd" border cellspacing="1" cellpadding="3">
239 <td colspan=2><input type="submit" value="Start the Archive" name="ignore"></td>
245 $Lang{BackupPC_Archive2_location} = <<EOF;
247 <td>Archive Location/Device</td>
248 <td><input type="text" value="\$ArchiveDest" name="archive_device"></td>
252 $Lang{BackupPC_Archive2_compression} = <<EOF;
256 <input type="radio" value="0" name="compression" \$ArchiveCompNone>None<br>
257 <input type="radio" value="1" name="compression" \$ArchiveCompGzip>gzip<br>
258 <input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2
263 $Lang{BackupPC_Archive2_parity} = <<EOF;
265 <td>Percentage of Parity Data (0 = disable, 5 = typical)</td>
266 <td><input type="numeric" value="\$ArchivePar" name="par"></td>
270 $Lang{BackupPC_Archive2_split} = <<EOF;
272 <td>Split output into</td>
273 <td><input type="numeric" value="\$ArchiveSplit" name="splitsize">Megabytes</td>
277 # -----------------------------------
278 $Lang{Pool_Stat} = <<EOF;
279 <li>Pool is \${poolSize}GB comprising \$info->{"\${name}FileCnt"} files
280 and \$info->{"\${name}DirCnt"} directories (as of \$poolTime),
281 <li>Pool hashing gives \$info->{"\${name}FileCntRep"} repeated
282 files with longest chain \$info->{"\${name}FileRepMax"},
283 <li>Nightly cleanup removed \$info->{"\${name}FileCntRm"} files of
284 size \${poolRmSize}GB (around \$poolTime),
287 # --------------------------------
288 $Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: Backup Requested on \$host";
289 # --------------------------------
290 $Lang{REPLY_FROM_SERVER} = <<EOF;
293 Reply from server was: \$reply
295 Go back to <a href="\$MyURL?host=\$host">\$host home page</a>.
297 # --------------------------------
298 $Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: Start Backup Confirm on \$host";
299 # --------------------------------
300 $Lang{Are_you_sure_start} = <<EOF;
301 \${h1("Are you sure?")}
303 You are about to start a \$type backup on \$host.
305 <form name="Confirm" action="\$MyURL" method="get">
306 <input type="hidden" name="host" value="\$host">
307 <input type="hidden" name="hostIP" value="\$ipAddr">
308 <input type="hidden" name="doit" value="1">
309 <input type="hidden" name="action" value="">
310 Do you really want to do this?
311 <input type="button" value="\$buttonText"
312 onClick="document.Confirm.action.value='\$In{action}';
313 document.Confirm.submit();">
314 <input type="submit" value="No" name="ignore">
317 # --------------------------------
318 $Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: Stop Backup Confirm on \$host";
319 # --------------------------------
320 $Lang{Are_you_sure_stop} = <<EOF;
322 \${h1("Are you sure?")}
325 You are about to stop/dequeue backups on \$host;
327 <form name="Confirm" action="\$MyURL" method="get">
328 <input type="hidden" name="host" value="\$host">
329 <input type="hidden" name="doit" value="1">
330 <input type="hidden" name="action" value="">
331 Also, please don\'t start another backup for
332 <input type="text" name="backoff" size="10" value="\$backoff"> hours.
334 Do you really want to do this?
335 <input type="button" value="\$buttonText"
336 onClick="document.Confirm.action.value='\$In{action}';
337 document.Confirm.submit();">
338 <input type="submit" value="No" name="ignore">
342 # --------------------------------
343 $Lang{Only_privileged_users_can_view_queues_} = "Only privileged users can view queues.";
344 # --------------------------------
345 $Lang{Only_privileged_users_can_archive} = "Only privileged users can Archive.";
346 # --------------------------------
347 $Lang{BackupPC__Queue_Summary} = "BackupPC: Queue Summary";
348 # --------------------------------
349 $Lang{Backup_Queue_Summary} = <<EOF;
350 \${h1("Backup Queue Summary")}
352 \${h2("User Queue Summary")}
354 The following user requests are currently queued:
356 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
357 <tr class="tableheader"><td> Host </td>
364 \${h2("Background Queue Summary")}
366 The following background requests are currently queued:
368 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
369 <tr class="tableheader"><td> Host </td>
375 \${h2("Command Queue Summary")}
377 The following command requests are currently queued:
379 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
380 <tr class="tableheader"><td> Host </td>
383 <td> Command </td></tr>
388 # --------------------------------
389 $Lang{Backup_PC__Log_File__file} = "BackupPC: File \$file";
390 $Lang{Log_File__file__comment} = <<EOF;
391 \${h1("File \$file \$comment")}
394 # --------------------------------
395 $Lang{Contents_of_log_file} = <<EOF;
396 Contents of file <tt>\$file</tt>, modified \$mtimeStr \$comment
399 # --------------------------------
400 $Lang{skipped__skipped_lines} = "[ skipped \$skipped lines ]\n";
401 # --------------------------------
402 $Lang{_pre___Can_t_open_log_file__file} = "<pre>\nCan\'t open log file \$file\n";
404 # --------------------------------
405 $Lang{BackupPC__Log_File_History} = "BackupPC: Log File History";
406 $Lang{Log_File_History__hdr} = <<EOF;
407 \${h1("Log File History \$hdr")}
409 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
410 <tr class="tableheader"><td align="center"> File </td>
411 <td align="center"> Size </td>
412 <td align="center"> Modification time </td></tr>
417 # -------------------------------
418 $Lang{Recent_Email_Summary} = <<EOF;
419 \${h1("Recent Email Summary (Reverse time order)")}
421 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
422 <tr class="tableheader"><td align="center"> Recipient </td>
423 <td align="center"> Host </td>
424 <td align="center"> Time </td>
425 <td align="center"> Subject </td></tr>
431 # ------------------------------
432 $Lang{Browse_backup__num_for__host} = "BackupPC: Browse backup \$num for \$host";
434 # ------------------------------
435 $Lang{Restore_Options_for__host} = "BackupPC: Restore Options for \$host";
436 $Lang{Restore_Options_for__host2} = <<EOF;
437 \${h1("Restore Options for \$host")}
439 You have selected the following files/directories from
440 share \$share, backup number #\$num:
445 You have three choices for restoring these files/directories.
446 Please select one of the following options.
448 \${h2("Option 1: Direct Restore")}
452 $Lang{Restore_Options_for__host_Option1} = <<EOF;
453 You can start a restore that will restore these files directly onto
456 <b>Warning:</b> any existing files that match the ones you have
457 selected will be overwritten!
459 <form action="\$MyURL" method="post" name="direct">
460 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
461 <input type="hidden" name="num" value="\$num">
462 <input type="hidden" name="type" value="3">
464 <input type="hidden" value="\$In{action}" name="action">
465 <table class="tableStnd" border="0">
467 <td>Restore the files to host</td>
468 <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
470 <select name="hostDest" onChange="document.direct.shareDest.value=''">
473 <script language="Javascript">
474 function myOpen(URL) {
475 window.open(URL,'','width=500,height=400');
478 <!--<a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">Search for available shares (NOT IMPLEMENTED)</a>--></td>
480 <td>Restore the files to share</td>
481 <td><input type="text" size="40" value="\${EscHTML(\$share)}"
482 name="shareDest"></td>
484 <td>Restore the files below dir<br>(relative to share)</td>
485 <td valign="top"><input type="text" size="40" maxlength="256"
486 value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
488 <td><input type="submit" value="Start Restore" name="ignore"></td>
493 $Lang{Restore_Options_for__host_Option1_disabled} = <<EOF;
494 Direct restore has been disabled for host \${EscHTML(\$hostDest)}.
495 Please select one of the other restore options.
498 # ------------------------------
499 $Lang{Option_2__Download_Zip_archive} = <<EOF;
501 \${h2("Option 2: Download Zip archive")}
503 You can download a Zip archive containing all the files/directories you have
504 selected. You can then use a local application, such as WinZip,
505 to view or extract any of the files.
507 <b>Warning:</b> depending upon which files/directories you have selected,
508 this archive might be very very large. It might take many minutes to
509 create and transfer the archive, and you will need enough local disk
512 <form action="\$MyURL" method="post">
513 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
514 <input type="hidden" name="num" value="\$num">
515 <input type="hidden" name="type" value="2">
517 <input type="hidden" value="\$In{action}" name="action">
518 <input type="checkbox" value="1" name="relative" checked> Make archive relative
519 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
520 (otherwise archive will contain full paths).
522 Compression (0=off, 1=fast,...,9=best)
523 <input type="text" size="6" value="5" name="compressLevel">
525 <input type="submit" value="Download Zip File" name="ignore">
529 # ------------------------------
531 $Lang{Option_2__Download_Zip_archive2} = <<EOF;
533 \${h2("Option 2: Download Zip archive")}
535 Archive::Zip is not installed so you will not be able to download a
537 Please ask your system adminstrator to install Archive::Zip from
538 <a href="http://www.cpan.org">www.cpan.org</a>.
543 # ------------------------------
544 $Lang{Option_3__Download_Zip_archive} = <<EOF;
545 \${h2("Option 3: Download Tar archive")}
547 You can download a Tar archive containing all the files/directories you
548 have selected. You can then use a local application, such as tar or
549 WinZip to view or extract any of the files.
551 <b>Warning:</b> depending upon which files/directories you have selected,
552 this archive might be very very large. It might take many minutes to
553 create and transfer the archive, and you will need enough local disk
556 <form action="\$MyURL" method="post">
557 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
558 <input type="hidden" name="num" value="\$num">
559 <input type="hidden" name="type" value="1">
561 <input type="hidden" value="\$In{action}" name="action">
562 <input type="checkbox" value="1" name="relative" checked> Make archive relative
563 to \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)}
564 (otherwise archive will contain full paths).
566 <input type="submit" value="Download Tar File" name="ignore">
571 # ------------------------------
572 $Lang{Restore_Confirm_on__host} = "BackupPC: Restore Confirm on \$host";
574 $Lang{Are_you_sure} = <<EOF;
575 \${h1("Are you sure?")}
577 You are about to start a restore directly to the machine \$In{hostDest}.
578 The following files will be restored to share \$In{shareDest}, from
581 <table class="tableStnd" border>
582 <tr class="tableheader"><td>Original file/dir</td><td>Will be restored to</td></tr>
586 <form name="RestoreForm" action="\$MyURL" method="post">
587 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
588 <input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}">
589 <input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}">
590 <input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}">
591 <input type="hidden" name="num" value="\$num">
592 <input type="hidden" name="type" value="4">
593 <input type="hidden" name="action" value="">
595 Do you really want to do this?
596 <input type="button" value="\$Lang->{Restore}"
597 onClick="document.RestoreForm.action.value='Restore';
598 document.RestoreForm.submit();">
599 <input type="submit" value="No" name="ignore">
604 # --------------------------
605 $Lang{Restore_Requested_on__hostDest} = "BackupPC: Restore Requested on \$hostDest";
606 $Lang{Reply_from_server_was___reply} = <<EOF;
609 Reply from server was: \$reply
611 Go back to <a href="\$MyURL?host=\$hostDest">\$hostDest home page</a>.
614 $Lang{BackupPC_Archive_Reply_from_server} = <<EOF;
617 Reply from server was: \$reply
621 # -------------------------
622 $Lang{Host__host_Backup_Summary} = "BackupPC: Host \$host Backup Summary";
624 $Lang{Host__host_Backup_Summary2} = <<EOF;
625 \${h1("Host \$host Backup Summary")}
632 \${h2("User Actions")}
634 <form name="StartStopForm" action="\$MyURL" method="get">
635 <input type="hidden" name="host" value="\$host">
636 <input type="hidden" name="action" value="">
638 <input type="button" value="\$Lang->{Start_Full_Backup}"
639 onClick="document.StartStopForm.action.value='Start_Full_Backup';
640 document.StartStopForm.submit();">
641 <input type="button" value="\$Lang->{Stop_Dequeue_Backup}"
642 onClick="document.StartStopForm.action.value='Stop_Dequeue_Backup';
643 document.StartStopForm.submit();">
646 \${h2("Backup Summary")}
648 Click on the backup number to browse and restore backup files.
650 <table class="tableStnd" border cellspacing="1" cellpadding="3">
651 <tr class="tableheader"><td align="center"> Backup# </td>
652 <td align="center"> Type </td>
653 <td align="center"> Filled </td>
654 <td align="center"> Level </td>
655 <td align="center"> Start Date </td>
656 <td align="center"> Duration/mins </td>
657 <td align="center"> Age/days </td>
658 <td align="center"> Server Backup Path </td>
667 \${h2("Xfer Error Summary")}
669 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
670 <tr class="tableheader"><td align="center"> Backup# </td>
671 <td align="center"> Type </td>
672 <td align="center"> View </td>
673 <td align="center"> #Xfer errs </td>
674 <td align="center"> #bad files </td>
675 <td align="center"> #bad share </td>
676 <td align="center"> #tar errs </td>
682 \${h2("File Size/Count Reuse Summary")}
684 Existing files are those already in the pool; new files are those added
686 Empty files and SMB errors aren\'t counted in the reuse and new counts.
688 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
689 <tr class="tableheader"><td colspan="2" bgcolor="#ffffff"></td>
690 <td align="center" colspan="3"> Totals </td>
691 <td align="center" colspan="2"> Existing Files </td>
692 <td align="center" colspan="2"> New Files </td>
694 <tr class="tableheader">
695 <td align="center"> Backup# </td>
696 <td align="center"> Type </td>
697 <td align="center"> #Files </td>
698 <td align="center"> Size/MB </td>
699 <td align="center"> MB/sec </td>
700 <td align="center"> #Files </td>
701 <td align="center"> Size/MB </td>
702 <td align="center"> #Files </td>
703 <td align="center"> Size/MB </td>
709 \${h2("Compression Summary")}
711 Compression performance for files already in the pool and newly
714 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
715 <tr class="tableheader"><td colspan="3" bgcolor="#ffffff"></td>
716 <td align="center" colspan="3"> Existing Files </td>
717 <td align="center" colspan="3"> New Files </td>
719 <tr class="tableheader"><td align="center"> Backup# </td>
720 <td align="center"> Type </td>
721 <td align="center"> Comp Level </td>
722 <td align="center"> Size/MB </td>
723 <td align="center"> Comp/MB </td>
724 <td align="center"> Comp </td>
725 <td align="center"> Size/MB </td>
726 <td align="center"> Comp/MB </td>
727 <td align="center"> Comp </td>
734 $Lang{Host__host_Archive_Summary} = "BackupPC: Host \$host Archive Summary";
735 $Lang{Host__host_Archive_Summary2} = <<EOF;
736 \${h1("Host \$host Archive Summary")}
743 \${h2("User Actions")}
745 <form name="StartStopForm" action="\$MyURL" method="get">
746 <input type="hidden" name="archivehost" value="\$host">
747 <input type="hidden" name="host" value="\$host">
748 <input type="hidden" name="action" value="">
749 <input type="button" value="\$Lang->{Start_Archive}"
750 onClick="document.StartStopForm.action.value='Start_Archive';
751 document.StartStopForm.submit();">
752 <input type="button" value="\$Lang->{Stop_Dequeue_Archive}"
753 onClick="document.StartStopForm.action.value='Stop_Dequeue_Archive';
754 document.StartStopForm.submit();">
761 # -------------------------
762 $Lang{Error} = "BackupPC: Error";
763 $Lang{Error____head} = <<EOF;
764 \${h1("Error: \$head")}
768 # -------------------------
769 $Lang{NavSectionTitle_} = "Server";
771 # -------------------------
772 $Lang{Backup_browse_for__host} = <<EOF;
773 \${h1("Backup browse for \$host")}
775 <script language="javascript" type="text/javascript">
778 function checkAll(location)
780 for (var i=0;i<document.form1.elements.length;i++)
782 var e = document.form1.elements[i];
783 if ((e.checked || !e.checked) && e.name != \'all\') {
784 if (eval("document.form1."+location+".checked")) {
793 function toggleThis(checkbox)
795 var cb = eval("document.form1."+checkbox);
796 cb.checked = !cb.checked;
802 <form name="form0" method="post" action="\$MyURL">
803 <input type="hidden" name="num" value="\$num">
804 <input type="hidden" name="host" value="\$host">
805 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
806 <input type="hidden" name="action" value="browse">
808 <li> You are browsing backup #\$num, which started around \$backupTime
809 (\$backupAge days ago),
811 <li> Enter directory: <input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit">
812 <li> Click on a directory below to navigate into that directory,
813 <li> Click on a file below to restore that file,
814 <li> You can view the backup <a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">history</a> of the current directory.
818 \${h2("Contents of \${EscHTML(\$dirDisplay)}")}
819 <form name="form1" method="post" action="\$MyURL">
820 <input type="hidden" name="num" value="\$num">
821 <input type="hidden" name="host" value="\$host">
822 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
823 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
824 <input type="hidden" name="action" value="Restore">
827 <tr><td valign="top" width="30%">
828 <table align="left" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
832 </td><td valign="top">
834 <table border width="100%" align="left" cellpadding="3" cellspacing="1">
843 This is now in the checkAll row
844 <input type="submit" name="Submit" value="Restore selected files">
849 # ------------------------------
850 $Lang{DirHistory_backup_for__host} = "BackupPC: Directory backup history for \$host";
853 # These two strings are used to build the links for directories and
854 # file versions. Files are appended with a version number.
856 $Lang{DirHistory_dirLink} = "dir";
857 $Lang{DirHistory_fileLink} = "v";
859 $Lang{DirHistory_for__host} = <<EOF;
860 \${h1("Directory backup history for \$host")}
862 This display shows each unique version of files across all
865 <li> Click on a backup number to return to the backup browser,
866 <li> Click on a directory link (\$Lang->{DirHistory_dirLink}) to navigate
868 <li> Click on a file version link (\$Lang->{DirHistory_fileLink}0,
869 \$Lang->{DirHistory_fileLink}1, ...) to download that file,
870 <li> Files with the same contents between different backups have the same
872 <li> Files or directories not present in a particular backup have an
874 <li> Files shown with the same version might have different attributes.
875 Select the backup number to see the file attributes.
878 \${h2("History of \${EscHTML(\$dirDisplay)}")}
881 <table border cellspacing="2" cellpadding="3">
882 <tr class="fviewheader"><td>Backup number</td>\$backupNumStr</tr>
883 <tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr>
888 # ------------------------------
889 $Lang{Restore___num_details_for__host} = "BackupPC: Restore #\$num details for \$host";
891 $Lang{Restore___num_details_for__host2} = <<EOF;
892 \${h1("Restore #\$num Details for \$host")}
894 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="90%">
895 <tr><td class="tableheader"> Number </td><td class="border"> \$Restores[\$i]{num} </td></tr>
896 <tr><td class="tableheader"> Requested by </td><td class="border"> \$RestoreReq{user} </td></tr>
897 <tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr>
898 <tr><td class="tableheader"> Result </td><td class="border"> \$Restores[\$i]{result} </td></tr>
899 <tr><td class="tableheader"> Error Message </td><td class="border"> \$Restores[\$i]{errorMsg} </td></tr>
900 <tr><td class="tableheader"> Source host </td><td class="border"> \$RestoreReq{hostSrc} </td></tr>
901 <tr><td class="tableheader"> Source backup num </td><td class="border"> \$RestoreReq{num} </td></tr>
902 <tr><td class="tableheader"> Source share </td><td class="border"> \$RestoreReq{shareSrc} </td></tr>
903 <tr><td class="tableheader"> Destination host </td><td class="border"> \$RestoreReq{hostDest} </td></tr>
904 <tr><td class="tableheader"> Destination share </td><td class="border"> \$RestoreReq{shareDest} </td></tr>
905 <tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr>
906 <tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr>
907 <tr><td class="tableheader"> Number of files </td><td class="border"> \$Restores[\$i]{nFiles} </td></tr>
908 <tr><td class="tableheader"> Total size </td><td class="border"> \${MB} MB </td></tr>
909 <tr><td class="tableheader"> Transfer rate </td><td class="border"> \$MBperSec MB/sec </td></tr>
910 <tr><td class="tableheader"> TarCreate errors </td><td class="border"> \$Restores[\$i]{tarCreateErrs} </td></tr>
911 <tr><td class="tableheader"> Xfer errors </td><td class="border"> \$Restores[\$i]{xferErrs} </td></tr>
912 <tr><td class="tableheader"> Xfer log file </td><td class="border">
913 <a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">View</a>,
914 <a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">Errors</a>
918 \${h1("File/Directory list")}
920 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="100%">
921 <tr class="tableheader"><td>Original file/dir</td><td>Restored to</td></tr>
926 # ------------------------------
927 $Lang{Archive___num_details_for__host} = "BackupPC: Archive #\$num details for \$host";
929 $Lang{Archive___num_details_for__host2 } = <<EOF;
930 \${h1("Archive #\$num Details for \$host")}
932 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
933 <tr><td class="tableheader"> Number </td><td class="border"> \$Archives[\$i]{num} </td></tr>
934 <tr><td class="tableheader"> Requested by </td><td class="border"> \$ArchiveReq{user} </td></tr>
935 <tr><td class="tableheader"> Request time </td><td class="border"> \$reqTime </td></tr>
936 <tr><td class="tableheader"> Result </td><td class="border"> \$Archives[\$i]{result} </td></tr>
937 <tr><td class="tableheader"> Error Message </td><td class="border"> \$Archives[\$i]{errorMsg} </td></tr>
938 <tr><td class="tableheader"> Start time </td><td class="border"> \$startTime </td></tr>
939 <tr><td class="tableheader"> Duration </td><td class="border"> \$duration min </td></tr>
940 <tr><td class="tableheader"> Xfer log file </td><td class="border">
941 <a href="\$MyURL?action=view&type=ArchiveLOG&num=\$Archives[\$i]{num}&host=\$host">View</a>,
942 <a href="\$MyURL?action=view&type=ArchiveErr&num=\$Archives[\$i]{num}&host=\$host">Errors</a>
948 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
949 <tr class="tableheader"><td>Host</td><td>Backup Number</td></tr>
954 # -----------------------------------
955 $Lang{Email_Summary} = "BackupPC: Email Summary";
957 # -----------------------------------
958 # !! ERROR messages !!
959 # -----------------------------------
960 $Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new failed: check apache error_log\n";
961 $Lang{Wrong_user__my_userid_is___} =
962 "Wrong user: my userid is \$>, instead of \$uid"
963 . "(\$Conf{BackupPCUser})\n";
964 # $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries.";
965 $Lang{Only_privileged_users_can_stop_or_start_backups} =
966 "Only privileged users can stop or start backups on"
967 . " \${EscHTML(\$host)}.";
968 $Lang{Invalid_number__num} = "Invalid number \$num";
969 $Lang{Unable_to_open__file__configuration_problem} = "Unable to open \$file: configuration problem?";
970 $Lang{Only_privileged_users_can_view_log_or_config_files} = "Only privileged users can view log or config files.";
971 $Lang{Only_privileged_users_can_view_log_files} = "Only privileged users can view log files.";
972 $Lang{Only_privileged_users_can_view_email_summaries} = "Only privileged users can view email summaries.";
973 $Lang{Only_privileged_users_can_browse_backup_files} = "Only privileged users can browse backup files"
974 . " for host \${EscHTML(\$In{host})}.";
975 $Lang{Empty_host_name} = "Empty host name.";
976 $Lang{Directory___EscHTML} = "Directory \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}"
978 $Lang{Can_t_browse_bad_directory_name2} = "Can\'t browse bad directory name"
979 . " \${EscHTML(\$relDir)}";
980 $Lang{Only_privileged_users_can_restore_backup_files} = "Only privileged users can restore backup files"
981 . " for host \${EscHTML(\$In{host})}.";
982 $Lang{Bad_host_name} = "Bad host name \${EscHTML(\$host)}";
983 $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "You haven\'t selected any files; please go Back to"
984 . " select some files.";
985 $Lang{You_haven_t_selected_any_hosts} = "You haven\'t selected any hosts; please go Back to"
986 . " select some hosts.";
987 $Lang{Nice_try__but_you_can_t_put} = "Nice try, but you can\'t put \'..\' in any of the file names";
988 $Lang{Host__doesn_t_exist} = "Host \${EscHTML(\$In{hostDest})} doesn\'t exist";
989 $Lang{You_don_t_have_permission_to_restore_onto_host} = "You don\'t have permission to restore onto host"
990 . " \${EscHTML(\$In{hostDest})}";
991 $Lang{Can_t_open_create__openPath} = "Can\'t open/create "
992 . "\${EscHTML(\"\$openPath\")}";
993 $Lang{Only_privileged_users_can_restore_backup_files2} = "Only privileged users can restore backup files"
994 . " for host \${EscHTML(\$host)}.";
995 $Lang{Empty_host_name} = "Empty host name";
996 $Lang{Unknown_host_or_user} = "Unknown host or user \${EscHTML(\$host)}";
997 $Lang{Only_privileged_users_can_view_information_about} = "Only privileged users can view information about"
998 . " host \${EscHTML(\$host)}." ;
999 $Lang{Only_privileged_users_can_view_archive_information} = "Only privileged users can view archive information.";
1000 $Lang{Only_privileged_users_can_view_restore_information} = "Only privileged users can view restore information.";
1001 $Lang{Restore_number__num_for_host__does_not_exist} = "Restore number \$num for host \${EscHTML(\$host)} does"
1003 $Lang{Archive_number__num_for_host__does_not_exist} = "Archive number \$num for host \${EscHTML(\$host)} does"
1005 $Lang{Can_t_find_IP_address_for} = "Can\'t find IP address for \${EscHTML(\$host)}";
1006 $Lang{host_is_a_DHCP_host} = <<EOF;
1007 \$host is a DHCP host, and I don\'t know its IP address. I checked the
1008 netbios name of \$ENV{REMOTE_ADDR}\$tryIP, and found that that machine
1011 Until I see \$host at a particular DHCP address, you can only
1012 start this request from the client machine itself.
1015 # ------------------------------------
1017 # ------------------------------------
1019 $Lang{Backup_requested_on_DHCP__host} = "Backup requested on DHCP \$host (\$In{hostIP}) by"
1020 . " \$User from \$ENV{REMOTE_ADDR}";
1021 $Lang{Backup_requested_on__host_by__User} = "Backup requested on \$host by \$User";
1022 $Lang{Backup_stopped_dequeued_on__host_by__User} = "Backup stopped/dequeued on \$host by \$User";
1023 $Lang{Restore_requested_to_host__hostDest__backup___num} = "Restore requested to host \$hostDest, backup #\$num,"
1024 . " by \$User from \$ENV{REMOTE_ADDR}";
1025 $Lang{Archive_requested} = "Archive requested by \$User from \$ENV{REMOTE_ADDR}";
1027 # -------------------------------------------------
1028 # ------- Stuff that was forgotten ----------------
1029 # -------------------------------------------------
1031 $Lang{Status} = "Status";
1032 $Lang{PC_Summary} = "Host Summary";
1033 $Lang{LOG_file} = "LOG file";
1034 $Lang{LOG_files} = "LOG files";
1035 $Lang{Old_LOGs} = "Old LOGs";
1036 $Lang{Email_summary} = "Email summary";
1037 $Lang{Config_file} = "Config file";
1038 # $Lang{Hosts_file} = "Hosts file";
1039 $Lang{Current_queues} = "Current queues";
1040 $Lang{Documentation} = "Documentation";
1042 #$Lang{Host_or_User_name} = "<small>Host or User name:</small>";
1044 $Lang{Hosts} = "Hosts";
1045 $Lang{Select_a_host} = "Select a host...";
1047 $Lang{There_have_been_no_archives} = "<h2> There have been no archives </h2>\n";
1048 $Lang{This_PC_has_never_been_backed_up} = "<h2> This PC has never been backed up!! </h2>\n";
1049 $Lang{This_PC_is_used_by} = "<li>This PC is used by \${UserLink(\$user)}";
1051 $Lang{Extracting_only_Errors} = "(Extracting only Errors)";
1052 $Lang{XferLOG} = "XferLOG";
1053 $Lang{Errors} = "Errors";
1056 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
1057 <li>Last email sent to \${UserLink(\$user)} was at \$mailTime, subject "\$subj".
1060 $Lang{The_command_cmd_is_currently_running_for_started} = <<EOF;
1061 <li>The command \$cmd is currently running for \$host, started \$startTime.
1065 $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF;
1066 <li>Host \$host is queued on the background queue (will be backed up soon).
1070 $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF;
1071 <li>Host \$host is queued on the user queue (will be backed up soon).
1075 $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF;
1076 <li>A command for \$host is on the command queue (will run soon).
1080 $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
1081 <li>Last status is state \"\$Lang->{\$StatusHost{state}}\"\$reason as of \$startTime.
1085 $Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF;
1086 <li>Last error is \"\${EscHTML(\$StatusHost{error})}\".
1090 $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF;
1091 <li>Pings to \$host have failed \$StatusHost{deadCnt} consecutive times.
1095 $Lang{Prior_to_that__pings} = "Prior to that, pings";
1098 $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF;
1099 <li>\$priorStr to \$host have succeeded \$StatusHost{aliveCnt}
1103 $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
1104 <li>Because \$host has been on the network at least \$Conf{BlackoutGoodCnt}
1105 consecutive times, it will not be backed up from \$blackoutStr.
1108 $Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 on \$days";
1110 $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
1111 <li>Backups are deferred for \$hours hours
1112 (<a href=\"\$MyURL?action=Stop_Dequeue_Backup&host=\$host\">change this number</a>).
1115 $Lang{tryIP} = " and \$StatusHost{dhcpHostIP}";
1117 # $Lang{Host_Inhost} = "Host \$In{host}";
1119 $Lang{checkAll} = <<EOF;
1120 <tr><td class="fviewborder">
1121 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');"> Select all
1122 </td><td colspan="5" align="center" class="fviewborder">
1123 <input type="submit" name="Submit" value="Restore selected files">
1127 $Lang{checkAllHosts} = <<EOF;
1128 <tr><td class="fviewborder">
1129 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');"> Select all
1130 </td><td colspan="2" align="center" class="fviewborder">
1131 <input type="submit" name="Submit" value="Archive selected hosts">
1135 $Lang{fileHeader} = <<EOF;
1136 <tr class="fviewheader"><td align=center> Name</td>
1137 <td align="center"> Type</td>
1138 <td align="center"> Mode</td>
1139 <td align="center"> #</td>
1140 <td align="center"> Size</td>
1141 <td align="center"> Date modified</td>
1145 $Lang{Home} = "Home";
1146 $Lang{Browse} = "Browse backups";
1147 $Lang{Last_bad_XferLOG} = "Last bad XferLOG";
1148 $Lang{Last_bad_XferLOG_errors_only} = "Last bad XferLOG (errors only)";
1150 $Lang{This_display_is_merged_with_backup} = <<EOF;
1151 <li> This display is merged with backup #\$numF.
1154 $Lang{Visit_this_directory_in_backup} = <<EOF;
1155 <li> Select the backup you wish to view: <select onChange="window.location=this.value">\$otherDirs </select>
1158 $Lang{Restore_Summary} = <<EOF;
1159 \${h2("Restore Summary")}
1161 Click on the restore number for more details.
1162 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
1163 <tr class="tableheader"><td align="center"> Restore# </td>
1164 <td align="center"> Result </td>
1165 <td align="right"> Start Date</td>
1166 <td align="right"> Dur/mins</td>
1167 <td align="right"> #files </td>
1168 <td align="right"> MB </td>
1169 <td align="right"> #tar errs </td>
1170 <td align="right"> #xferErrs </td>
1177 $Lang{Archive_Summary} = <<EOF;
1178 \${h2("Archive Summary")}
1180 Click on the archive number for more details.
1181 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
1182 <tr class="tableheader"><td align="center"> Archive# </td>
1183 <td align="center"> Result </td>
1184 <td align="right"> Start Date</td>
1185 <td align="right"> Dur/mins</td>
1192 $Lang{BackupPC__Documentation} = "BackupPC: Documentation";
1197 $Lang{The_directory_is_empty} = <<EOF;
1198 <tr><td bgcolor="#ffffff">The directory \${EscHTML(\$dirDisplay)} is empty
1205 $Lang{backupType_full} = "full";
1206 $Lang{backupType_incr} = "incr";
1207 $Lang{backupType_partial} = "partial";
1209 $Lang{failed} = "failed";
1210 $Lang{success} = "success";
1214 # Hosts states and reasons
1215 $Lang{Status_idle} = "idle";
1216 $Lang{Status_backup_starting} = "backup starting";
1217 $Lang{Status_backup_in_progress} = "backup in progress";
1218 $Lang{Status_restore_starting} = "restore starting";
1219 $Lang{Status_restore_in_progress} = "restore in progress";
1220 $Lang{Status_link_pending} = "link pending";
1221 $Lang{Status_link_running} = "link running";
1223 $Lang{Reason_backup_done} = "done";
1224 $Lang{Reason_restore_done} = "restore done";
1225 $Lang{Reason_archive_done} = "archive done";
1226 $Lang{Reason_nothing_to_do} = "idle";
1227 $Lang{Reason_backup_failed} = "backup failed";
1228 $Lang{Reason_restore_failed} = "restore failed";
1229 $Lang{Reason_archive_failed} = "archive failed";
1230 $Lang{Reason_no_ping} = "no ping";
1231 $Lang{Reason_backup_canceled_by_user} = "backup canceled by user";
1232 $Lang{Reason_restore_canceled_by_user} = "restore canceled by user";
1233 $Lang{Reason_archive_canceled_by_user} = "archive canceled by user";
1234 $Lang{Disabled_OnlyManualBackups} = "auto disabled";
1235 $Lang{Disabled_AllBackupsDisabled} = "disabled";
1242 $Lang{EMailNoBackupEverSubj} = "BackupPC: no backups of \$host have succeeded";
1243 $Lang{EMailNoBackupEverMesg} = <<'EOF';
1250 Your PC ($host) has never been successfully backed up by our
1251 PC backup software. PC backups should occur automatically
1252 when your PC is connected to the network. You should contact
1253 computer support if:
1255 - Your PC has been regularly connected to the network, meaning
1256 there is some configuration or setup problem preventing
1257 backups from occurring.
1259 - You don't want your PC backed up and you want these email
1262 Otherwise, please make sure your PC is connected to the network
1263 next time you are in the office.
1267 http://backuppc.sourceforge.net
1271 $Lang{EMailNoBackupRecentSubj} = "BackupPC: no recent backups on \$host";
1272 $Lang{EMailNoBackupRecentMesg} = <<'EOF';
1279 Your PC ($host) has not been successfully backed up for $days days.
1280 Your PC has been correctly backed up $numBackups times from $firstTime to $days
1281 ago. PC backups should occur automatically when your PC is connected
1284 If your PC has been connected for more than a few hours to the
1285 network during the last $days days you should contact IS to find
1286 out why backups are not working.
1288 Otherwise, if you are out of the office, there's not much you can
1289 do, other than manually copying especially critical files to other
1290 media. You should be aware that any files you have created or
1291 changed in the last $days days (including all new email and
1292 attachments) cannot be restored if your PC disk crashes.
1296 http://backuppc.sourceforge.net
1300 $Lang{EMailOutlookBackupSubj} = "BackupPC: Outlook files on \$host need to be backed up";
1301 $Lang{EMailOutlookBackupMesg} = <<'EOF';
1308 The Outlook files on your PC have $howLong.
1309 These files contain all your email, attachments, contact and calendar
1310 information. Your PC has been correctly backed up $numBackups times from
1311 $firstTime to $lastTime days ago. However, Outlook locks all its files when
1312 it is running, preventing these files from being backed up.
1314 It is recommended you backup the Outlook files when you are connected
1315 to the network by exiting Outlook and all other applications, and,
1316 using just your browser, go to this link:
1320 Select "Start Incr Backup" twice to start a new incremental backup.
1321 You can select "Return to $host page" and then hit "reload" to check
1322 the status of the backup. It should take just a few minutes to
1327 http://backuppc.sourceforge.net
1330 $Lang{howLong_not_been_backed_up} = "not been backed up successfully";
1331 $Lang{howLong_not_been_backed_up_for_days_days} = "not been backed up for \$days days";
1333 #######################################################################
1335 #######################################################################
1336 $Lang{RSS_Doc_Title} = "BackupPC Server";
1337 $Lang{RSS_Doc_Description} = "RSS feed for BackupPC";
1338 $Lang{RSS_Host_Summary} = <<EOF;
1339 Full Count: \$fullCnt;
1340 Full Age/days: \$fullAge;
1341 Full Size/GB: \$fullSize;
1342 Speed MB/sec: \$fullRate;
1343 Incr Count: \$incrCnt;
1344 Incr Age/Days: \$incrAge;
1345 State: \$host_state;
1346 Last Attempt: \$host_last_attempt;
1349 #######################################################################
1350 # Configuration editor strings
1351 #######################################################################
1353 $Lang{Only_privileged_users_can_edit_config_files} = "Only privileged users can edit configuation settings.";
1354 $Lang{CfgEdit_Edit_Config} = "Edit Config";
1355 $Lang{CfgEdit_Edit_Hosts} = "Edit Hosts";
1357 $Lang{CfgEdit_Title_Server} = "Server";
1358 $Lang{CfgEdit_Title_General_Parameters} = "General Parameters";
1359 $Lang{CfgEdit_Title_Wakeup_Schedule} = "Wakeup Schedule";
1360 $Lang{CfgEdit_Title_Concurrent_Jobs} = "Concurrent Jobs";
1361 $Lang{CfgEdit_Title_Pool_Filesystem_Limits} = "Pool Filesystem Limits";
1362 $Lang{CfgEdit_Title_Other_Parameters} = "Other Parameters";
1363 $Lang{CfgEdit_Title_Remote_Apache_Settings} = "Remote Apache Settings";
1364 $Lang{CfgEdit_Title_Program_Paths} = "Program Paths";
1365 $Lang{CfgEdit_Title_Install_Paths} = "Install Paths";
1366 $Lang{CfgEdit_Title_Email} = "Email";
1367 $Lang{CfgEdit_Title_Email_settings} = "Email settings";
1368 $Lang{CfgEdit_Title_Email_User_Messages} = "Email User Messages";
1369 $Lang{CfgEdit_Title_CGI} = "CGI";
1370 $Lang{CfgEdit_Title_Admin_Privileges} = "Admin Privileges";
1371 $Lang{CfgEdit_Title_Page_Rendering} = "Page Rendering";
1372 $Lang{CfgEdit_Title_Paths} = "Paths";
1373 $Lang{CfgEdit_Title_User_URLs} = "User URLs";
1374 $Lang{CfgEdit_Title_User_Config_Editing} = "User Config Editing";
1375 $Lang{CfgEdit_Title_Xfer} = "Xfer";
1376 $Lang{CfgEdit_Title_Xfer_Settings} = "Xfer Settings";
1377 $Lang{CfgEdit_Title_Smb_Settings} = "Smb Settings";
1378 $Lang{CfgEdit_Title_Tar_Settings} = "Tar Settings";
1379 $Lang{CfgEdit_Title_Rsync_Settings} = "Rsync Settings";
1380 $Lang{CfgEdit_Title_Rsyncd_Settings} = "Rsyncd Settings";
1381 $Lang{CfgEdit_Title_BackupPCd_Settings} = "BackupPCd Settings";
1382 $Lang{CfgEdit_Title_Archive_Settings} = "Archive Settings";
1383 $Lang{CfgEdit_Title_Include_Exclude} = "Include/Exclude";
1384 $Lang{CfgEdit_Title_Smb_Paths_Commands} = "Smb Paths/Commands";
1385 $Lang{CfgEdit_Title_Tar_Paths_Commands} = "Tar Paths/Commands";
1386 $Lang{CfgEdit_Title_Rsync_Paths_Commands_Args} = "Rsync Paths/Commands/Args";
1387 $Lang{CfgEdit_Title_Rsyncd_Port_Args} = "Rsyncd Port/Args";
1388 $Lang{CfgEdit_Title_Archive_Paths_Commands} = "Archive Paths/Commands";
1389 $Lang{CfgEdit_Title_Schedule} = "Schedule";
1390 $Lang{CfgEdit_Title_Full_Backups} = "Full Backups";
1391 $Lang{CfgEdit_Title_Incremental_Backups} = "Incremental Backups";
1392 $Lang{CfgEdit_Title_Blackouts} = "Blackouts";
1393 $Lang{CfgEdit_Title_Other} = "Other";
1394 $Lang{CfgEdit_Title_Backup_Settings} = "Backup Settings";
1395 $Lang{CfgEdit_Title_Client_Lookup} = "Client Lookup";
1396 $Lang{CfgEdit_Title_Other} = "Other";
1397 $Lang{CfgEdit_Title_User_Commands} = "User Commands";
1398 $Lang{CfgEdit_Title_Hosts} = "Hosts";
1400 $Lang{CfgEdit_Hosts_Comment} = <<EOF;
1401 To add a new host, select Add and then enter the name. To start with
1402 the per-host configuration from another host, enter the host name
1403 as NEWHOST=COPYHOST. This will overwrite any existing per-host
1404 configuration for NEWHOST. You can also do this for an existing
1405 host. To delete a host, hit the Delete button. For Add, Delete,
1406 and configuration copy, changes don't take effect until you select
1407 Save. None of the deleted host's backups will be removed,
1408 so if you accidently delete a host, simply re-add it. To completely
1409 remove a host's backups, you need to manually remove the files
1410 below \$topDir/pc/HOST
1413 $Lang{CfgEdit_Header_Main} = <<EOF;
1414 \${h1("Main Configuration Editor")}
1417 $Lang{CfgEdit_Header_Host} = <<EOF;
1418 \${h1("Host \$host Configuration Editor")}
1420 Note: Check Override if you want to modify a value specific to this host.
1424 $Lang{CfgEdit_Button_Save} = "Save";
1425 $Lang{CfgEdit_Button_Insert} = "Insert";
1426 $Lang{CfgEdit_Button_Delete} = "Delete";
1427 $Lang{CfgEdit_Button_Add} = "Add";
1428 $Lang{CfgEdit_Button_Override} = "Override";
1429 $Lang{CfgEdit_Button_New_Key} = "New Key";
1431 $Lang{CfgEdit_Error_No_Save}
1432 = "Error: No save due to errors";
1433 $Lang{CfgEdit_Error__must_be_an_integer}
1434 = "Error: \$var must be an integer";
1435 $Lang{CfgEdit_Error__must_be_real_valued_number}
1436 = "Error: \$var must be a real-valued number";
1437 $Lang{CfgEdit_Error__entry__must_be_an_integer}
1438 = "Error: \$var entry \$k must be an integer";
1439 $Lang{CfgEdit_Error__entry__must_be_real_valued_number}
1440 = "Error: \$var entry \$k must be a real-valued number";
1441 $Lang{CfgEdit_Error__must_be_executable_program}
1442 = "Error: \$var must be a valid executable path";
1443 $Lang{CfgEdit_Error__must_be_valid_option}
1444 = "Error: \$var must be a valid option";
1445 $Lang{CfgEdit_Error_Copy_host_does_not_exist}
1446 = "Copy host \$copyHost doesn't exist; creating full host name \$fullHost. Delete this host if that is not what you wanted.";
1448 $Lang{CfgEdit_Log_Copy_host_config}
1449 = "\$User copied config from host \$fromHost to \$host\n";
1450 $Lang{CfgEdit_Log_Delete_param}
1451 = "\$User deleted \$p from \$conf\n";
1452 $Lang{CfgEdit_Log_Add_param_value}
1453 = "\$User added \$p to \$conf, set to \$value\n";
1454 $Lang{CfgEdit_Log_Change_param_value}
1455 = "\$User changed \$p in \$conf to \$valueNew from \$valueOld\n";
1456 $Lang{CfgEdit_Log_Host_Delete}
1457 = "\$User deleted host \$host\n";
1458 $Lang{CfgEdit_Log_Host_Change}
1459 = "\$User host \$host changed \$key from \$valueOld to \$valueNew\n";
1460 $Lang{CfgEdit_Log_Host_Add}
1461 = "\$User added host \$host: \$value\n";