show status in ps output by modifing $0
[BackupPC.git] / lib / BackupPC / Lang / zh_CN.pm
1 #!/usr/bin/perl
2
3 #my %lang;
4 #use strict;
5 use utf8;
6
7 # --------------------------------
8
9 $Lang{Start_Archive} = "开始备档";
10 $Lang{Stop_Dequeue_Archive} = "中止/取消备档";
11 $Lang{Start_Full_Backup} = "开始完全备份";
12 $Lang{Start_Incr_Backup} = "开始增量备份";
13 $Lang{Stop_Dequeue_Backup} = "中止/取消备份";
14 $Lang{Restore} = "恢复";
15
16 $Lang{Type_full} = "完全";
17 $Lang{Type_incr} = "增量";
18
19 # -----
20
21 $Lang{Only_privileged_users_can_view_admin_options} = "只有特权用户可以查看管理选项。";
22 $Lang{H_Admin_Options} = "BackupPC 服务器:管理选项";
23 $Lang{Admin_Options} = "管理选项";
24 $Lang{Admin_Options_Page} = <<EOF;
25 \${h1(qq{$Lang{Admin_Options}})}
26 <br>
27 \${h2("服务器控制")}
28 <form name="ReloadForm" action="\$MyURL" method="get">
29 <input type="hidden" name="action" value="">
30 <table class="tableStnd">
31   <tr><td>更新服务器配置:<td><input type="button" value="更新配置"
32      onClick="document.ReloadForm.action.value='Reload';
33               document.ReloadForm.submit();">
34 </table>
35 </form>
36 <!--
37 \${h2("服务器配置")}
38 <ul>
39   <li><i>其它选项,如:</i>
40   <li>更改服务器配置
41 </ul>
42 -->
43 EOF
44
45 $Lang{Unable_to_connect_to_BackupPC_server} = "无法连接到 BackupPC 服务器";
46 $Lang{Unable_to_connect_to_BackupPC_server_error_message} = <<EOF;
47 CGI 脚本程序 (\$MyURL) 无法连接到 BackupPC 服务器 \$Conf{ServerHost} 端口 \$Conf{ServerPort}。错误信息:\$err。
48 可能 BackupPC 服务器没有运行,或者服务器配置不正确。请通知网络系统管理员。
49 <br><br>
50 EOF
51
52 $Lang{Admin_Start_Server} = <<EOF;
53 \${h1(qq{$Lang{Unable_to_connect_to_BackupPC_server}})}
54 <form action="\$MyURL" method="get">
55 BackupPC 服务器 <tt>\$Conf{ServerHost}</tt> 端口 <tt>\$Conf{ServerPort}</tt>
56 此刻没有运行(可能刚被停止,或者还没被启动)。<br>
57 你想现在启动它吗?
58 <input type="hidden" name="action" value="startServer">
59 <input type="submit" value="启动服务器" name="ignore">
60 </form>
61 EOF
62
63 # -----
64
65 $Lang{H_BackupPC_Server_Status} = "BackupPC 服务器状态";
66
67 $Lang{BackupPC_Server_Status_General_Info}= <<EOF;
68 \${h2(\"服务器总体信息\")}
69
70 <ul>
71 <li> 服务器进程号是 \$Info{pid},运行在主机 \$Conf{ServerHost} 上,
72      版本号 \$Info{Version},开始运行于 \$serverStartTime。
73 <li> 此状态报告生成于 \$now。
74 <li> 服务器配置最近一次加载于 \$configLoadTime。
75 <li> 服务器任务队列下次启动时间是 \$nextWakeupTime。
76 <li> 其它信息:
77     <ul>
78         <li>\$numBgQueue 个自上次遗留备份请求,
79         <li>\$numUserQueue 个待处理用户备份请求,
80         <li>\$numCmdQueue 个待处理命令请求,
81         \$poolInfo
82         <li>备份池文件系统磁盘空间占用率是 \$Info{DUlastValue}%
83             (统计于 \$DUlastTime),今天的最大占用率是 \$Info{DUDailyMax}%(统计于 \$DUmaxTime),
84             昨天的最大占用率是 \$Info{DUDailyMaxPrev}%。
85     </ul>
86 </ul>
87 EOF
88
89 $Lang{BackupPC_Server_Status} = <<EOF;
90 \${h1(qq{$Lang{H_BackupPC_Server_Status}})}
91
92 <p>
93 \$generalInfo
94
95 \${h2("正在运行的任务")}
96 <p>
97 <table class="tableStnd" border cellspacing="1" cellpadding="3">
98 <tr class="tableheader"><td> 客户机 </td>
99     <td> 类型 </td>
100     <td> 用户 </td>
101     <td> 开始时间 </td>
102     <td> 命令 </td>
103     <td align="center"> 进程号 </td>
104     <td align="center"> 传输进程号 </td>
105     </tr>
106 \$jobStr
107 </table>
108 <p>
109
110 \${h2("需要关注的错误")}
111 <p>
112 <table class="tableStnd" border cellspacing="1" cellpadding="3">
113 <tr class="tableheader"><td align="center"> 客户机 </td>
114     <td align="center"> 类型 </td>
115     <td align="center"> 用户 </td>
116     <td align="center"> 最后一次尝试 </td>
117     <td align="center"> 详情 </td>
118     <td align="center"> 错误时间 </td>
119     <td> 最后一次错误( PING 失败除外) </td></tr>
120 \$statusStr
121 </table>
122 EOF
123
124 # --------------------------------
125 $Lang{BackupPC__Server_Summary} = "BackupPC: 客户机报告";
126 $Lang{BackupPC__Archive} = "BackupPC: 备档";
127 $Lang{BackupPC_Summary} = <<EOF;
128
129 \${h1(qq{$Lang{BackupPC__Server_Summary}})}
130 <p>
131 <ul>
132 <li>此状态报告生成于 \$now。
133 <li>备份池文件系统磁盘空间占用率是 \$Info{DUlastValue}%
134     (统计于 \$DUlastTime),今天的最大占用率是 \$Info{DUDailyMax}%(统计于 \$DUmaxTime),
135     昨天的最大占用率是 \$Info{DUDailyMaxPrev}%。
136 </ul>
137 </p>
138
139 \${h2("已成功完成备份的客户机")}
140 <p>
141 有 \$hostCntGood 台客户机已完成备份,总数是:
142 <ul>
143 <li> \$fullTot 个完全备份,总大小是 \${fullSizeTot}GB
144      (被压缩前值),
145 <li> \$incrTot 个增量备份,总大小是 \${incrSizeTot}GB
146      (被压缩前值)。
147 </ul>
148 </p>
149 <table class="sortable" id="host_summary_backups" border cellpadding="3" cellspacing="1">
150 <tr class="tableheader"><td> 客户机 </td>
151     <td align="center"> 用户 </td>
152     <td align="center"> 完全备份个数 </td>
153     <td align="center"> 最后一次完全备份 (天前) </td>
154     <td align="center"> 完全备份大小 (GB) </td>
155     <td align="center"> 完全备份速度 (MB/s) </td>
156     <td align="center"> 增量备份个数 </td>
157     <td align="center"> 最后一次增量备份 (天前) </td>
158     <td align="center"> 最后一次备份 (天前) </td>
159     <td align="center"> 当前状态 </td>
160     <td align="center"> 传输错误数目 </td>
161     <td align="center"> 最后一次备份结果 </td></tr>
162 \$strGood
163 </table>
164 <br><br>
165 \${h2("未备份过的客户机")}
166 <p>
167 有 \$hostCntNone 台客户机从未被备份过。
168 <p>
169 <table class="sortable" id="host_summary_nobackups" border cellpadding="3" cellspacing="1">
170 <tr class="tableheader"><td> 客户机 </td>
171     <td align="center"> 用户 </td>
172     <td align="center"> 完全备份个数 </td>
173     <td align="center"> 最后一次完全备份 (天前) </td>
174     <td align="center"> 完全备份大小 (GB) </td>
175     <td align="center"> 完全备份速度 (MB/s) </td>
176     <td align="center"> 增量备份个数 </td>
177     <td align="center"> 最后一次增量备份 (天前) </td>
178     <td align="center"> 最后一次备份 (天前) </td>
179     <td align="center"> 当前状态 </td>
180     <td align="center"> 传输错误数目 </td>
181     <td align="center"> 最后一次备份结果 </td></tr>
182 \$strNone
183 </table>
184 EOF
185
186 $Lang{BackupPC_Archive} = <<EOF;
187 \${h1(qq{$Lang{BackupPC__Archive}})}
188 <script language="javascript" type="text/javascript">
189 <!--
190
191     function checkAll(location)
192     {
193       for (var i=0;i<document.form1.elements.length;i++)
194       {
195         var e = document.form1.elements[i];
196         if ((e.checked || !e.checked) && e.name != \'all\') {
197             if (eval("document.form1."+location+".checked")) {
198                 e.checked = true;
199             } else {
200                 e.checked = false;
201             }
202         }
203       }
204     }
205
206     function toggleThis(checkbox)
207     {
208        var cb = eval("document.form1."+checkbox);
209        cb.checked = !cb.checked;
210     }
211
212 //-->
213 </script>
214
215 一共有 \$hostCntGood 台客户机已经被备份,总备份大小为 \${fullSizeTot}GB
216 <p>
217 <form name="form1" method="post" action="\$MyURL">
218 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
219 <input type="hidden" name="type" value="1">
220 <input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
221 <input type="hidden" name="action" value="Archive">
222 <table class="tableStnd" border cellpadding="3" cellspacing="1">
223 <tr class="tableheader"><td align=center> 客户机 </td>
224     <td align="center"> 用户 </td>
225     <td align="center"> 备份大小 </td>
226 \$strGood
227 \$checkAllHosts
228 </table>
229 </form>
230 <p>
231
232 EOF
233
234 $Lang{BackupPC_Archive2} = <<EOF;
235 \${h1(qq{$Lang{BackupPC__Archive}})}
236 即将为下列客户机备档
237 <ul>
238 \$HostListStr
239 </ul>
240 <form action="\$MyURL" method="post">
241 \$hiddenStr
242 <input type="hidden" name="action" value="Archive">
243 <input type="hidden" name="host" value="\${EscHTML(\$archHost)}">
244 <input type="hidden" name="type" value="2">
245 <input type="hidden" value="0" name="archive_type">
246 <table class="tableStnd" border cellspacing="1" cellpadding="3">
247 \$paramStr
248 <tr>
249     <td colspan=2><input type="submit" value="开始备档" name="ignore"></td>
250 </tr>
251 </form>
252 </table>
253 EOF
254
255 $Lang{BackupPC_Archive2_location} = <<EOF;
256 <tr>
257     <td>备档目的地/外设</td>
258     <td><input type="text" value="\$ArchiveDest" name="archive_device"></td>
259 </tr>
260 EOF
261
262 $Lang{BackupPC_Archive2_compression} = <<EOF;
263 <tr>
264     <td>压缩</td>
265     <td>
266     <input type="radio" value="0" name="compression" \$ArchiveCompNone>无<br>
267     <input type="radio" value="1" name="compression" \$ArchiveCompGzip>gzip<br>
268     <input type="radio" value="2" name="compression" \$ArchiveCompBzip2>bzip2
269     </td>
270 </tr>
271 EOF
272
273 $Lang{BackupPC_Archive2_parity} = <<EOF;
274 <tr>
275     <td>奇偶校验数据比例 (0 = 不启用,5 = 典型设置)</td>
276     <td><input type="numeric" value="\$ArchivePar" name="par"></td>
277 </tr>
278 EOF
279
280 $Lang{BackupPC_Archive2_split} = <<EOF;
281 <tr>
282     <td>将输出分开为</td>
283     <td><input type="numeric" value="\$ArchiveSplit" name="splitsize">兆字节</td>
284 </tr>
285 EOF
286
287 # -----------------------------------
288 $Lang{Pool_Stat} = <<EOF;
289         <li>备份服务器文件池大小是 \${poolSize}GB 包含 \$info->{"\${name}FileCnt"} 个文件
290             和 \$info->{"\${name}DirCnt"} 个文件夹/目录(截至 \$poolTime)。文件池大小基本就是所有备份数据占用的实际磁盘空间。
291         <li>服务器文件池散列操作(Hashing)发现 \$info->{"\${name}FileCntRep"} 
292             个文件具有重复散列值,其中 \$info->{"\${name}FileRepMax"} 个文件具有相同散列值。相同散列值并不意味着相同文件。散列操作被用来节省相同文件所占用的磁盘空间。
293         <li>每日例行清理过期数据操作删除了 \$info->{"\${name}FileCntRm"} 个文件共
294              \${poolRmSize}GB (操作于 \$poolTime )。
295 EOF
296
297 # --------------------------------
298 $Lang{BackupPC__Backup_Requested_on__host} = "BackupPC: 客户机 \$host 有备份请求";
299 # --------------------------------
300 $Lang{REPLY_FROM_SERVER} = <<EOF;
301 \${h1(\$str)}
302 <p>
303 服务器答复是:\$reply
304 <p>
305 返回 <a href="\$MyURL?host=\$host">\$host 主页</a>。
306 EOF
307 # --------------------------------
308 $Lang{BackupPC__Start_Backup_Confirm_on__host} = "BackupPC: 客户机 \$host 开始备份确认";
309 # --------------------------------
310 $Lang{Are_you_sure_start} = <<EOF;
311 \${h1("确定?")}
312 <p>
313 你即将在客户机 \$host 上开始 \$type 备份。
314
315 <form name="Confirm" action="\$MyURL" method="get">
316 <input type="hidden" name="host" value="\$host">
317 <input type="hidden" name="hostIP" value="\$ipAddr">
318 <input type="hidden" name="doit" value="1">
319 <input type="hidden" name="action" value="">
320 你能确定吗?
321 <input type="button" value="\$buttonText"
322   onClick="document.Confirm.action.value='\$In{action}';
323            document.Confirm.submit();">
324 <input type="submit" value="取消" name="ignore">
325 </form>
326 EOF
327 # --------------------------------
328 $Lang{BackupPC__Stop_Backup_Confirm_on__host} = "BackupPC: 客户机 \$host 停止备份确认";
329 # --------------------------------
330 $Lang{Are_you_sure_stop} = <<EOF;
331
332 \${h1("确定?")}
333
334 <p>
335 你即将在客户机 \$host 上停止/取消备份操作;
336
337 <form name="Confirm" action="\$MyURL" method="get">
338 <input type="hidden" name="host"   value="\$host">
339 <input type="hidden" name="doit"   value="1">
340 <input type="hidden" name="action" value="">
341 如果确定取消备份操作,请从现在起
342 <input type="text" name="backoff" size="10" value="\$backoff"> 小时内不要再启动另一备份操作。
343 <p>
344 你能确定吗?
345 <input type="button" value="\$buttonText"
346   onClick="document.Confirm.action.value='\$In{action}';
347            document.Confirm.submit();">
348 <input type="submit" value="不" name="ignore">
349 </form>
350
351 EOF
352 # --------------------------------
353 $Lang{Only_privileged_users_can_view_queues_} = "只有特权用户可以查看任务请求队列。";
354 # --------------------------------
355 $Lang{Only_privileged_users_can_archive} = "只有特权用户可以执行备档操作。";
356 # --------------------------------
357 $Lang{BackupPC__Queue_Summary} = "BackupPC: 队列报告";
358 # --------------------------------
359 $Lang{Backup_Queue_Summary} = <<EOF;
360 \${h1("备份请求队列报告")}
361 <br><br>
362 \${h2("用户队列报告")}
363 <p>
364 下列用户请求排在队列中:
365 </p>
366 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
367 <tr class="tableheader"><td> 客户机 </td>
368     <td> 请求时间 </td>
369     <td> 用户 </td></tr>
370 \$strUser
371 </table>
372 <br><br>
373
374 \${h2("后台请求队列报告")}
375 <p>
376 下列后台请求排在队列中:
377 </p>
378 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
379 <tr class="tableheader"><td> 客户机 </td>
380     <td> 请求时间 </td>
381     <td> 用户 </td></tr>
382 \$strBg
383 </table>
384 <br><br>
385 \${h2("命令队列报告")}
386 <p>
387 下列命令请求排在队列中:
388 </p>
389 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
390 <tr class="tableheader"><td> 客户机 </td>
391     <td> 请求时间 </td>
392     <td> 用户 </td>
393     <td> 命令 </td></tr>
394 \$strCmd
395 </table>
396 EOF
397
398 # --------------------------------
399 $Lang{Backup_PC__Log_File__file} = "BackupPC: 日志文件 \$file";
400 $Lang{Log_File__file__comment} = <<EOF;
401 \${h1("日志文件 \$file \$comment")}
402 <p>
403 EOF
404 # --------------------------------
405 $Lang{Contents_of_log_file} = <<EOF;
406 日志文件 <tt>\$file</tt>, 修改时间 \$mtimeStr \$comment
407 EOF
408
409 # --------------------------------
410 $Lang{skipped__skipped_lines} = "[ 略过 \$skipped 行 ]\n";
411 # --------------------------------
412 $Lang{_pre___Can_t_open_log_file__file} = "<pre>\n无法打开日志文件 \$file\n";
413
414 # --------------------------------
415 $Lang{BackupPC__Log_File_History} = "BackupPC: 日志文件历史";
416 $Lang{Log_File_History__hdr} = <<EOF;
417 \${h1("日志文件历史 \$hdr")}
418 <p>
419 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
420 <tr class="tableheader"><td align="center"> 文件 </td>
421     <td align="center"> 大小 </td>
422     <td align="center"> 修改时间 </td></tr>
423 \$str
424 </table>
425 EOF
426
427 # -------------------------------
428 $Lang{Recent_Email_Summary} = <<EOF;
429 \${h1("最近电子邮件报告(最新排前)")}
430 <p>
431 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
432 <tr class="tableheader"><td align="center"> 收信人 </td>
433     <td align="center"> 客户机 </td>
434     <td align="center"> 时间 </td>
435     <td align="center"> 标题 </td></tr>
436 \$str
437 </table>
438 EOF
439  
440
441 # ------------------------------
442 $Lang{Browse_backup__num_for__host} = "BackupPC: 浏览客户机 \$host 备份序列号 \$num";
443
444 # ------------------------------
445 $Lang{Restore_Options_for__host} = "BackupPC: 客户机 \$host 恢复选项";
446 $Lang{Restore_Options_for__host2} = <<EOF;
447 \${h1("客户机 \$host 恢复选项")}
448 <p>
449 你从备份序列 #\$num,卷 \$share 中选择了以下文件/目录:
450 <ul>
451 \$fileListStr
452 </ul>
453 </p><p>
454 你有三种选择来恢复这些文件/目录。
455 请从下列三种方法中选择其一。
456 </p>
457 \${h2("方法 1:直接恢复")}
458 <p>
459 EOF
460
461 $Lang{Restore_Options_for__host_Option1} = <<EOF;
462 你可以将这些文件直接恢复到客户机 <b>\$directHost</b> 上。
463 </p><p>
464 <b>警告:</b> 客户机上现存的文件,如果和被恢复的文件具有相同文件名并且位于相同路径,其内容将会被替换!
465 </p>
466 <form action="\$MyURL" method="post" name="direct">
467 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
468 <input type="hidden" name="num" value="\$num">
469 <input type="hidden" name="type" value="3">
470 \$hiddenStr
471 <input type="hidden" value="\$In{action}" name="action">
472 <table class="tableStnd" border="0">
473 <tr>
474     <td>恢复到客户机</td>
475     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
476          name="hostDest">-->
477          <select name="hostDest" onChange="document.direct.shareDest.value=''">
478          \$hostDestSel
479          </select>
480          <script language="Javascript">
481          function myOpen(URL) {
482                 window.open(URL,'','width=500,height=400');
483          }
484          </script>
485          <!--<a href="javascript:myOpen('\$MyURL?action=findShares&host='+document.direct.hostDest.options.value)">搜寻可供使用的文件卷(此功能还未被实现)</a>--></td>
486 </tr><tr>
487     <td>恢复到卷</td>
488     <td><input type="text" size="40" value="\${EscHTML(\$share)}"
489          name="shareDest"></td>
490 </tr><tr>
491     <td>恢复到此目录中<br>(位于上述卷下)</td>
492     <td valign="top"><input type="text" size="40" maxlength="256"
493         value="\${EscHTML(\$pathHdr)}" name="pathHdr"></td>
494 </tr><tr>
495     <td><input type="submit" value="开始恢复" name="ignore"></td>
496 </table>
497 </form>
498 EOF
499
500 $Lang{Restore_Options_for__host_Option1_disabled} = <<EOF;
501 直接恢复到客户机 \${EscHTML(\$hostDest) 的功能被关闭。
502 请选择其它恢复方法。
503 EOF
504
505 # ------------------------------
506 $Lang{Option_2__Download_Zip_archive} = <<EOF;
507 <p>
508 \${h2("方法 2:下载 Zip 备档")}
509 <p>
510 你可以将所有你选择的文件和目录下载进一个 Zip 备档。然后再用一个本地应用,
511 例如 WinZip,来浏览或提取其中的任何文件。 
512 </p><p>
513 <b>警告:</b> 取决于你选择的文件/目录,此备档可能会占用很大存储空间。
514 可能需要若干分钟或更长时间来生成和传输此备档,并且还需要足够大的本地磁盘空间。
515 </p>
516 <form action="\$MyURL" method="post">
517 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
518 <input type="hidden" name="num" value="\$num">
519 <input type="hidden" name="type" value="2">
520 \$hiddenStr
521 <input type="hidden" value="\$In{action}" name="action">
522 <input type="checkbox" value="1" name="relative" checked> 备档中所有文件具有相对路径,在 \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} 目录内
523 (否则备档中文件具有完整路径)。
524 <br>
525 选择压缩比(0=不压缩,1=最低但速度快,...,9=最高但速度慢)
526 <input type="text" size="6" value="5" name="compressLevel">
527 <br>
528 <input type="submit" value="下载 Zip 文件" name="ignore">
529 </form>
530 EOF
531
532 # ------------------------------
533
534 $Lang{Option_2__Download_Zip_archive2} = <<EOF;
535 <p>
536 \${h2("方法 2:下载 Zip 备档")}
537 <p>
538 因服务器没有安装 Perl 组件 Archive::Zip,Zip 备档无法被生成。
539 请联系系统管理员安装 Archive::Zip,下载地址
540 <a href="http://www.cpan.org">www.cpan.org</a>。
541 </p>
542 EOF
543
544
545 # ------------------------------
546 $Lang{Option_3__Download_Zip_archive} = <<EOF;
547 \${h2("方法 3:下载 Tar 备档")}
548 <p>
549 你可以将所有你选择的文件和目录下载进一个 Tar 备档。然后再用一个本地应用,
550 例如 tar 或 WinZip,来浏览或提取其中的任何文件。 
551 </p><p>
552 <b>警告:</b> 取决于你选择的文件/目录,此备档可能会占用很大存储空间。
553 可能需要若干分钟或更长时间来生成和传输此备档,并且还需要足够大的本地磁盘空间。
554 </p>
555 <form action="\$MyURL" method="post">
556 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
557 <input type="hidden" name="num" value="\$num">
558 <input type="hidden" name="type" value="1">
559 \$hiddenStr
560 <input type="hidden" value="\$In{action}" name="action">
561 <input type="checkbox" value="1" name="relative" checked> 备档中所有文件具有相对路径,在 \${EscHTML(\$pathHdr eq "" ? "/" : \$pathHdr)} 目录内
562 (否则备档中文件具有完整路径)。
563 <br>
564 <input type="submit" value="下载 Tar 文件" name="ignore">
565 </form>
566 EOF
567
568
569 # ------------------------------
570 $Lang{Restore_Confirm_on__host} = "BackupPC: 客户机 \$host 开始恢复确认";
571
572 $Lang{Are_you_sure} = <<EOF;
573 \${h1("确定?")}
574 <p>
575 你即将开始恢复数据直接到客户机 \$In{hostDest} 上。
576 储存在备份号 \$num 中的下列文件将被恢复到卷 \$In{shareDest} 内:
577 <p>
578 <table class="tableStnd" border>
579 <tr class="tableheader"><td>原始文件/目录</td><td>将被恢复到</td></tr>
580 \$fileListStr
581 </table>
582
583 <form name="RestoreForm" action="\$MyURL" method="post">
584 <input type="hidden" name="host" value="\${EscHTML(\$host)}">
585 <input type="hidden" name="hostDest" value="\${EscHTML(\$In{hostDest})}">
586 <input type="hidden" name="shareDest" value="\${EscHTML(\$In{shareDest})}">
587 <input type="hidden" name="pathHdr" value="\${EscHTML(\$In{pathHdr})}">
588 <input type="hidden" name="num" value="\$num">
589 <input type="hidden" name="type" value="4">
590 <input type="hidden" name="action" value="">
591 \$hiddenStr
592 你确定吗?
593 <input type="button" value="\$Lang->{Restore}"
594  onClick="document.RestoreForm.action.value='Restore';
595           document.RestoreForm.submit();">
596 <input type="submit" value="不" name="ignore">
597 </form>
598 EOF
599
600
601 # --------------------------
602 $Lang{Restore_Requested_on__hostDest} = "BackupPC: 客户机 \$hostDest 有恢复请求";
603 $Lang{Reply_from_server_was___reply} = <<EOF;
604 \${h1(\$str)}
605 <p>
606 服务器答复是:\$reply
607 <p>
608 返回 <a href="\$MyURL?host=\$hostDest">\$hostDest 主页</a>。
609 EOF
610
611 $Lang{BackupPC_Archive_Reply_from_server} = <<EOF;
612 \${h1(\$str)}
613 <p>
614 服务器答复是:\$reply
615 EOF
616
617
618 # -------------------------
619 $Lang{Host__host_Backup_Summary} = "BackupPC: 客户机 \$host 备份报告";
620
621 $Lang{Host__host_Backup_Summary2} = <<EOF;
622 \${h1("客户机 \$host 备份报告")}
623 <p>
624 \$warnStr
625 <ul>
626 \$statusStr
627 </ul>
628 </p>
629 \${h2("用户操作")}
630 <p>
631 <form name="StartStopForm" action="\$MyURL" method="get">
632 <input type="hidden" name="host"   value="\$host">
633 <input type="hidden" name="action" value="">
634 \$startIncrStr
635 <input type="button" value="\$Lang->{Start_Full_Backup}"
636  onClick="document.StartStopForm.action.value='Start_Full_Backup';
637           document.StartStopForm.submit();">
638 <input type="button" value="\$Lang->{Stop_Dequeue_Backup}"
639  onClick="document.StartStopForm.action.value='Stop_Dequeue_Backup';
640           document.StartStopForm.submit();">
641 </form>
642 </p>
643 \${h2("备份报告")}
644 <p>
645 点击备份序列号浏览和恢复文件。
646 </p>
647 <table class="tableStnd" border cellspacing="1" cellpadding="3">
648 <tr class="tableheader"><td align="center"> 备份序列号# </td>
649     <td align="center"> 类型 </td>
650     <td align="center"> 完整 </td>
651     <td align="center"> 备份级别 </td>
652     <td align="center"> 开始时间 </td>
653     <td align="center"> 耗时(分钟)</td>
654     <td align="center"> 距离现在(天前)</td>
655     <td align="center"> 服务器上备份路径 </td>
656 </tr>
657 \$str
658 </table>
659 <p>
660
661 \$restoreStr
662 </p>
663 <br><br>
664 \${h2("传输错误报告")}
665 <br><br>
666 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
667 <tr class="tableheader"><td align="center"> 备份序列号# </td>
668     <td align="center"> 类型 </td>
669     <td align="center"> 查看 </td>
670     <td align="center"> 传输错误数目 </td>
671     <td align="center"> 损坏文件数目 </td>
672     <td align="center"> 损坏文件系统卷数目 </td>
673     <td align="center"> 损坏 Tar 文件数目 </td>
674 </tr>
675 \$errStr
676 </table>
677 <br><br>
678
679 \${h2("文件大小/数目统计")}
680 <p>
681 "原有文件"是指原先已存在备份池中的文件;"新增文件"是指备份新写入池中的文件。
682 空文件不被统计在内。
683 </p>
684 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
685 <tr class="tableheader"><td colspan="2" bgcolor="#ffffff"></td>
686     <td align="center" colspan="3"> 合计 </td>
687     <td align="center" colspan="2"> 原有文件 </td>
688     <td align="center" colspan="2"> 新增文件 </td>
689 </tr>
690 <tr class="tableheader">
691     <td align="center"> 备份序列号# </td>
692     <td align="center"> 类型 </td>
693     <td align="center"> 文件数目 </td>
694     <td align="center"> 大小(MB) </td>
695     <td align="center"> 备份速度(MB/sec) </td>
696     <td align="center"> 文件数目 </td>
697     <td align="center"> 大小(MB) </td>
698     <td align="center"> 文件数目 </td>
699     <td align="center"> 大小(MB) </td>
700 </tr>
701 \$sizeStr
702 </table>
703 <br><br>
704
705 \${h2("压缩报告")}
706 <p>
707 备份池中原有文件和新增文件的压缩性能报告。
708 </p>
709 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
710 <tr class="tableheader"><td colspan="3" bgcolor="#ffffff"></td>
711     <td align="center" colspan="3"> 原有文件 </td>
712     <td align="center" colspan="3"> 新增文件 </td>
713 </tr>
714 <tr class="tableheader"><td align="center"> 备份序列号# </td>
715     <td align="center"> 类型 </td>
716     <td align="center"> 压缩级别 </td>
717     <td align="center"> 压缩前(MB) </td>
718     <td align="center"> 压缩后(MB) </td>
719     <td align="center"> 压缩比 </td>
720     <td align="center"> 压缩前(MB) </td>
721     <td align="center"> 压缩后(MB) </td>
722     <td align="center"> 压缩比 </td>
723 </tr>
724 \$compStr
725 </table>
726 <br><br>
727 EOF
728
729 $Lang{Host__host_Archive_Summary} = "BackupPC: 客户机 \$host 备档报告";
730 $Lang{Host__host_Archive_Summary2} = <<EOF;
731 \${h1("客户机 \$host 备档报告")}
732 <p>
733 \$warnStr
734 <ul>
735 \$statusStr
736 </ul>
737
738 \${h2("用户操作")}
739 <p>
740 <form name="StartStopForm" action="\$MyURL" method="get">
741 <input type="hidden" name="archivehost" value="\$host">
742 <input type="hidden" name="host" value="\$host">
743 <input type="hidden" name="action" value="">
744 <input type="button" value="\$Lang->{Start_Archive}"
745  onClick="document.StartStopForm.action.value='Start_Archive';
746           document.StartStopForm.submit();">
747 <input type="button" value="\$Lang->{Stop_Dequeue_Archive}"
748  onClick="document.StartStopForm.action.value='Stop_Dequeue_Archive';
749           document.StartStopForm.submit();">
750 </form>
751
752 \$ArchiveStr
753
754 EOF
755
756 # -------------------------
757 $Lang{Error} = "BackupPC: 错误";
758 $Lang{Error____head} = <<EOF;
759 \${h1("错误:\$head")}
760 <p>\$mesg</p>
761 EOF
762
763 # -------------------------
764 $Lang{NavSectionTitle_} = "服务器";
765
766 # -------------------------
767 $Lang{Backup_browse_for__host} = <<EOF;
768 \${h1("客户机 \$host 备份浏览")}
769
770 <script language="javascript" type="text/javascript">
771 <!--
772
773     function checkAll(location)
774     {
775       for (var i=0;i<document.form1.elements.length;i++)
776       {
777         var e = document.form1.elements[i];
778         if ((e.checked || !e.checked) && e.name != \'all\') {
779             if (eval("document.form1."+location+".checked")) {
780                 e.checked = true;
781             } else {
782                 e.checked = false;
783             }
784         }
785       }
786     }
787     
788     function toggleThis(checkbox)
789     {
790        var cb = eval("document.form1."+checkbox);
791        cb.checked = !cb.checked;        
792     }
793
794 //-->
795 </script>
796
797 <form name="form0" method="post" action="\$MyURL">
798 <input type="hidden" name="num" value="\$num">
799 <input type="hidden" name="host" value="\$host">
800 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
801 <input type="hidden" name="action" value="browse">
802 <ul>
803 <li> 你正在浏览备份 #\$num,该备份开始于 \$backupTime 
804        (\$backupAge 天前)。
805 \$filledBackup
806 <li> 进入目录:<input type="text" name="dir" size="50" maxlength="4096" value="\${EscHTML(\$dir)}"> <input type="submit" value="\$Lang->{Go}" name="Submit">
807 <li> 点击目录名进入相应目录。
808 <li> 点击文件名恢复相应文件。
809 <li> 查看当前目录的备份<a href="\$MyURL?action=dirHistory&host=\${EscURI(\$host)}&share=\$shareURI&dir=\$pathURI">历史</a>。
810 </ul>
811 </form>
812
813 \${h2("\${EscHTML(\$dirDisplay)} 的内容")}
814 <form name="form1" method="post" action="\$MyURL">
815 <input type="hidden" name="num" value="\$num">
816 <input type="hidden" name="host" value="\$host">
817 <input type="hidden" name="share" value="\${EscHTML(\$share)}">
818 <input type="hidden" name="fcbMax" value="\$checkBoxCnt">
819 <input type="hidden" name="action" value="Restore">
820 <br>
821 <table width="100%">
822 <tr><td valign="top" width="30%">
823     <table align="left" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
824     \$dirStr
825     </table>
826 </td><td width="3%">
827 </td><td valign="top">
828     <br>
829         <table border width="100%" align="left" cellpadding="3" cellspacing="1">
830         \$fileHeader
831         \$topCheckAll
832         \$fileStr
833         \$checkAll
834         </table>
835     </td></tr></table>
836 <br>
837 <!--
838 This is now in the checkAll row
839 <input type="submit" name="Submit" value="恢复被选择的文件">
840 -->
841 </form>
842 EOF
843
844 # ------------------------------
845 $Lang{DirHistory_backup_for__host} = "BackupPC: 客户机 \$host 目录备份历史";
846
847 #
848 # These two strings are used to build the links for directories and
849 # file versions.  Files are appended with a version number.
850 #
851 $Lang{DirHistory_dirLink}  = "目录";
852 $Lang{DirHistory_fileLink} = "v";
853
854 $Lang{DirHistory_for__host} = <<EOF;
855 \${h1("客户机 \$host 目录备份历史")}
856 <p>
857 本页显示文件在所有备份中的不同版本:
858 <ul>
859 <li> 点击备份序列号返回相应备份浏览主页,
860 <li> 点击目录链接标记 (\$Lang->{DirHistory_dirLink}) 进入相应目录,
861 <li> 点击文件版本链接标记 (\$Lang->{DirHistory_fileLink}0,
862      \$Lang->{DirHistory_fileLink}1, ...) 下载相应文件,
863 <li> 如果一个文件的内容在多个备份中相同,文件在多个备份中具有相同版本号,
864 <li> 如果一个文件或目录在某个备份中不存在,下表中用空白表示,
865 <li> 具有相同版本号的文件可能在不同备份中有不同的文件属性。可以点击备份序列号来查看文件在相应备份中的属性。
866 </ul>
867
868 \${h2("\${EscHTML(\$dirDisplay)} 的历史")}
869
870 <br>
871 <table border cellspacing="2" cellpadding="3">
872 <tr class="fviewheader"><td>备份序列号</td>\$backupNumStr</tr>
873 <tr class="fviewheader"><td>备份时间</td>\$backupTimeStr</tr>
874 \$fileStr
875 </table>
876 EOF
877
878 # ------------------------------
879 $Lang{Restore___num_details_for__host} = "BackupPC: 客户机 \$host 恢复 #\$num 详情";
880
881 $Lang{Restore___num_details_for__host2} = <<EOF;
882 \${h1("客户机 \$host 恢复 #\$num 详情")}
883 <p>
884 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="90%">
885 <tr><td class="tableheader"> 恢复序列号 </td><td class="border"> \$Restores[\$i]{num} </td></tr>
886 <tr><td class="tableheader"> 请求方 </td><td class="border"> \$RestoreReq{user} </td></tr>
887 <tr><td class="tableheader"> 请求时间 </td><td class="border"> \$reqTime </td></tr>
888 <tr><td class="tableheader"> 结果 </td><td class="border"> \$Restores[\$i]{result} </td></tr>
889 <tr><td class="tableheader"> 错误信息 </td><td class="border"> \$Restores[\$i]{errorMsg} </td></tr>
890 <tr><td class="tableheader"> 源客户机 </td><td class="border"> \$RestoreReq{hostSrc} </td></tr>
891 <tr><td class="tableheader"> 源备份序列号 </td><td class="border"> \$RestoreReq{num} </td></tr>
892 <tr><td class="tableheader"> 源文件卷 </td><td class="border"> \$RestoreReq{shareSrc} </td></tr>
893 <tr><td class="tableheader"> 目的客户机 </td><td class="border"> \$RestoreReq{hostDest} </td></tr>
894 <tr><td class="tableheader"> 目的文件卷 </td><td class="border"> \$RestoreReq{shareDest} </td></tr>
895 <tr><td class="tableheader"> 恢复开始时间 </td><td class="border"> \$startTime </td></tr>
896 <tr><td class="tableheader"> 耗时 </td><td class="border"> \$duration 分钟 </td></tr>
897 <tr><td class="tableheader"> 文件个数 </td><td class="border"> \$Restores[\$i]{nFiles} </td></tr>
898 <tr><td class="tableheader"> 文件总大小 </td><td class="border"> \${MB} MB </td></tr>
899 <tr><td class="tableheader"> 传输速率 </td><td class="border"> \$MBperSec MB/sec </td></tr>
900 <tr><td class="tableheader"> Tar 生成过程错误个数 </td><td class="border"> \$Restores[\$i]{tarCreateErrs} </td></tr>
901 <tr><td class="tableheader"> 传输过程错误个数 </td><td class="border"> \$Restores[\$i]{xferErrs} </td></tr>
902 <tr><td class="tableheader"> 传输日志文件 </td><td class="border">
903 <a href="\$MyURL?action=view&type=RestoreLOG&num=\$Restores[\$i]{num}&host=\$host">查看日志</a>,
904 <a href="\$MyURL?action=view&type=RestoreErr&num=\$Restores[\$i]{num}&host=\$host">查看错误</a>
905 </tr></tr>
906 </table>
907 </p>
908 \${h1("文件/目录列表")}
909 <p>
910 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="100%">
911 <tr class="tableheader"><td>原始文件/目录</td><td>恢复至</td></tr>
912 \$fileListStr
913 </table>
914 EOF
915
916 # ------------------------------
917 $Lang{Archive___num_details_for__host} = "BackupPC: 客户机 \$host 备档 #\$num 详情";
918
919 $Lang{Archive___num_details_for__host2 } = <<EOF;
920 \${h1("客户机 \$host 备档 #\$num 详情")}
921 <p>
922 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
923 <tr><td class="tableheader"> 备档序列号 </td><td class="border"> \$Archives[\$i]{num} </td></tr>
924 <tr><td class="tableheader"> 请求方 </td><td class="border"> \$ArchiveReq{user} </td></tr>
925 <tr><td class="tableheader"> 请求方 </td><td class="border"> \$reqTime </td></tr>
926 <tr><td class="tableheader"> 结果 </td><td class="border"> \$Archives[\$i]{result} </td></tr>
927 <tr><td class="tableheader"> 错误信息 </td><td class="border"> \$Archives[\$i]{errorMsg} </td></tr>
928 <tr><td class="tableheader"> 开始时间 </td><td class="border"> \$startTime </td></tr>
929 <tr><td class="tableheader"> 耗时 </td><td class="border"> \$duration 分钟 </td></tr>
930 <tr><td class="tableheader"> 传输日志文件 </td><td class="border">
931 <a href="\$MyURL?action=view&type=ArchiveLOG&num=\$Archives[\$i]{num}&host=\$host">查看日志</a>,
932 <a href="\$MyURL?action=view&type=ArchiveErr&num=\$Archives[\$i]{num}&host=\$host">查看错误</a>
933 </tr></tr>
934 </table>
935 <p>
936 \${h1("客户机列表")}
937 <p>
938 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
939 <tr class="tableheader"><td>客户机</td><td>备份序列号</td></tr>
940 \$HostListStr
941 </table>
942 EOF
943
944 # -----------------------------------
945 $Lang{Email_Summary} = "BackupPC: 电子邮件报告";
946
947 # -----------------------------------
948 #  !! ERROR messages !!
949 # -----------------------------------
950 $Lang{BackupPC__Lib__new_failed__check_apache_error_log} = "BackupPC::Lib->new 步骤失败:请检查 Apache 服务器日志\n";
951 $Lang{Wrong_user__my_userid_is___} =  
952               "错误用户:我的用户 ID 是 \$>, 不是 \$uid"
953             . "(\$Conf{BackupPCUser})\n";
954 # $Lang{Only_privileged_users_can_view_PC_summaries} = "Only privileged users can view PC summaries.";
955 $Lang{Only_privileged_users_can_stop_or_start_backups} = 
956                   "只有特权用户可以执行备份的开始或停止操作于客户机"
957                 . " \${EscHTML(\$host)}.";
958 $Lang{Invalid_number__num} = "无效数字 \$num";
959 $Lang{Unable_to_open__file__configuration_problem} = "无法打开文件 \$file:配置有误?";
960 $Lang{Only_privileged_users_can_view_log_or_config_files} = "只有特权用户可以查看日志或配置文件。";
961 $Lang{Only_privileged_users_can_view_log_files} = "只有特权用户可以查看日志文件。";
962 $Lang{Only_privileged_users_can_view_email_summaries} = "只有特权用户可以查看电子邮件报告。";
963 $Lang{Only_privileged_users_can_browse_backup_files} = "只有特权用户可以浏览"
964                 . "客户机 \${EscHTML(\$In{host})} 的备份文件。";
965 $Lang{Empty_host_name} = "空客户机名。";
966 $Lang{Directory___EscHTML} = "目录 \${EscHTML(\"\$TopDir/pc/\$host/\$num\")}"
967                     . " 为空";
968 $Lang{Can_t_browse_bad_directory_name2} = "无法浏览非法目录名"
969                     . " \${EscHTML(\$relDir)}";
970 $Lang{Only_privileged_users_can_restore_backup_files} = "只有特权用户可以恢复"
971                 . "客户机 \${EscHTML(\$In{host})} 的备份文件。";
972 $Lang{Bad_host_name} = "错误客户机名 \${EscHTML(\$host)}";
973 $Lang{You_haven_t_selected_any_files__please_go_Back_to} = "你还没有选择任何文件;请返回上一页"
974                 . "选择文件。";
975 $Lang{You_haven_t_selected_any_hosts} = "你还没有选择任何客户机;请返回上一页"
976                 . "选择客户机。";
977 $Lang{Nice_try__but_you_can_t_put} = "对不起,文件名内不能包含 \'..\'";
978 $Lang{Host__doesn_t_exist} = "客户机 \${EscHTML(\$In{hostDest})} 不存在";
979 $Lang{You_don_t_have_permission_to_restore_onto_host} = "你没有权限恢复客户机"
980                     . " \${EscHTML(\$In{hostDest})}";
981 $Lang{Can_t_open_create__openPath} = "无法打开/创建 "
982                 . "\${EscHTML(\"\$openPath\")}";
983 $Lang{Only_privileged_users_can_restore_backup_files2} = "只有特权用户可以恢复"
984                 . "客户机 \${EscHTML(\$host)} 的备份文件。";
985 $Lang{Empty_host_name} = "空客户机名";
986 $Lang{Unknown_host_or_user} = "未知客户机或用户 \${EscHTML(\$host)}";
987 $Lang{Only_privileged_users_can_view_information_about} = "只有特权用户可以查看"
988                 . "客户机 \${EscHTML(\$host)} 的信息。" ;
989 $Lang{Only_privileged_users_can_view_archive_information} = "只有特权用户可以查看备档信息。";
990 $Lang{Only_privileged_users_can_view_restore_information} = "只有特权用户可以查看恢复信息。";
991 $Lang{Restore_number__num_for_host__does_not_exist} = "客户机 \${EscHTML(\$host)} 恢复序列号 \$num "
992                 . "不存在。";
993 $Lang{Archive_number__num_for_host__does_not_exist} = "客户机 \${EscHTML(\$host)} 备档序列号 \$num "
994                 . "不存在。";
995 $Lang{Can_t_find_IP_address_for} = "客户机 \${EscHTML(\$host)} 的 IP 地址无法找到";
996 $Lang{host_is_a_DHCP_host} = <<EOF;
997 客户机 \$host 的网络设置是使用动态 IP 地址(DHCP),现在它的 IP 地址未知。已经检查过 \$ENV{REMOTE_ADDR}\$tryIP 的 NETBIOS 名,但那台机器不是 \$host。
998 <p>
999 除非获得客户机 \$host 的动态 IP 地址,否则只能从客户主机上发出此任务请求。
1000 EOF
1001
1002 # ------------------------------------
1003 # !! Server Mesg !!
1004 # ------------------------------------
1005
1006 $Lang{Backup_requested_on_DHCP__host} = "用户 \$User 从 \$ENV{REMOTE_ADDR} 发起请求备份使用动态 IP 的客户机 \$host (\$In{hostIP})";
1007 $Lang{Backup_requested_on__host_by__User} = "用户 \$User 发起请求备份客户机 \$host";
1008 $Lang{Backup_stopped_dequeued_on__host_by__User} = "用户 \$User 停止/取消了对客户机 \$host 的备份";
1009 $Lang{Restore_requested_to_host__hostDest__backup___num} = "用户 \$User 从 \$ENV{REMOTE_ADDR} 发起请求恢复客户机 \$hostDest,使用备份序列号 #\$num";
1010 $Lang{Archive_requested} = "用户 \$User 从 \$ENV{REMOTE_ADDR} 发起备档请求";
1011
1012 # -------------------------------------------------
1013 # ------- Stuff that was forgotten ----------------
1014 # -------------------------------------------------
1015
1016 $Lang{Status} = "状态";
1017 $Lang{PC_Summary} = "客户机报告";
1018 $Lang{LOG_file} = "日志文件";
1019 $Lang{LOG_files} = "日志文件列表";
1020 $Lang{Old_LOGs} = "旧日志";
1021 $Lang{Email_summary} = "电子邮件报告";
1022 $Lang{Config_file} = "配置文件";
1023 # $Lang{Hosts_file} = "Hosts file";
1024 $Lang{Current_queues} = "当前队列";
1025 $Lang{Documentation} = "文档资料";
1026
1027 #$Lang{Host_or_User_name} = "<small>Host or User name:</small>";
1028 $Lang{Go} = "确定";
1029 $Lang{Hosts} = "客户机";
1030 $Lang{Select_a_host} = "选择客户机名...";
1031
1032 $Lang{There_have_been_no_archives} = "<h2> 这台机器还从来没有执行过备档操作!</h2>\n";
1033 $Lang{This_PC_has_never_been_backed_up} = "<h2> 这台机器还从来没有被备份过!!</h2>\n";
1034 $Lang{This_PC_is_used_by} = "<li>这台机器的用户包括 \${UserLink(\$user)}";
1035
1036 $Lang{Extracting_only_Errors} = "(只提取错误信息)";
1037 $Lang{XferLOG} = "传输日志";
1038 $Lang{Errors}  = "错误";
1039
1040 # ------------
1041 $Lang{Last_email_sent_to__was_at___subject} = <<EOF;
1042 <li>给用户 \${UserLink(\$user)} 的最近一封邮件送出于 \$mailTime,标题是"\$subj"。
1043 EOF
1044 # ------------
1045 $Lang{The_command_cmd_is_currently_running_for_started} = <<EOF;
1046 <li>命令 \$cmd 正在为客户机 \$host 运行,开始于 \$startTime。
1047 EOF
1048
1049 # -----------
1050 $Lang{Host_host_is_queued_on_the_background_queue_will_be_backed_up_soon} = <<EOF;
1051 <li>客户机 \$host 已在后台队列中等待(即将被备份)。
1052 EOF
1053
1054 # ----------
1055 $Lang{Host_host_is_queued_on_the_user_queue__will_be_backed_up_soon} = <<EOF;
1056 <li>客户机 \$host 已在用户队列中等待(即将被备份)。
1057 EOF
1058
1059 # ---------
1060 $Lang{A_command_for_host_is_on_the_command_queue_will_run_soon} = <<EOF;
1061 <li>针对客户机 \$host 的一条命令已在命令队列中等待(即将被执行)。
1062 EOF
1063
1064 # --------
1065 $Lang{Last_status_is_state_StatusHost_state_reason_as_of_startTime} = <<EOF;
1066 <li>最后状态是 \"\$Lang->{\$StatusHost{state}}\"\$reason,当时时间 \$startTime。
1067 EOF
1068
1069 # --------
1070 $Lang{Last_error_is____EscHTML_StatusHost_error} = <<EOF;
1071 <li>最后错误信息是 \"\${EscHTML(\$StatusHost{error})}\"。
1072 EOF
1073
1074 # ------
1075 $Lang{Pings_to_host_have_failed_StatusHost_deadCnt__consecutive_times} = <<EOF;
1076 <li>试图与客户机 \$host 联系(Ping 操作)已连续失败 \$StatusHost{deadCnt} 次。 
1077 EOF
1078
1079 # -----
1080 $Lang{Prior_to_that__pings} = "先前,Ping";
1081
1082 # -----
1083 $Lang{priorStr_to_host_have_succeeded_StatusHostaliveCnt_consecutive_times} = <<EOF;
1084 <li>\$priorStr 客户机 \$host 已连续成功 \$StatusHost{aliveCnt} 次。
1085 EOF
1086
1087 $Lang{Because__host_has_been_on_the_network_at_least__Conf_BlackoutGoodCnt_consecutive_times___} = <<EOF;
1088 <li>因为客户机 \$host 已经在网络上至少连续 \$Conf{BlackoutGoodCnt} 次,
1089 在下列时段 \$blackoutStr,它将不进行备份操作。
1090 EOF
1091
1092 $Lang{__time0_to__time1_on__days} = "\$t0 to \$t1 在 \$days";
1093
1094 $Lang{Backups_are_deferred_for_hours_hours_change_this_number} = <<EOF;
1095 <li>备份被推迟 \$hours 小时
1096 (<a href=\"\$MyURL?action=Stop_Dequeue_Backup&host=\$host\">改变时间</a>)。
1097 EOF
1098
1099 $Lang{tryIP} = " 和 \$StatusHost{dhcpHostIP}";
1100
1101 # $Lang{Host_Inhost} = "Host \$In{host}";
1102
1103 $Lang{checkAll} = <<EOF;
1104 <tr><td class="fviewborder">
1105 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;全选
1106 </td><td colspan="5" align="center" class="fviewborder">
1107 <input type="submit" name="Submit" value="恢复被选择的文件">
1108 </td></tr>
1109 EOF
1110
1111 $Lang{checkAllHosts} = <<EOF;
1112 <tr><td class="fviewborder">
1113 <input type="checkbox" name="allFiles" onClick="return checkAll('allFiles');">&nbsp;全选
1114 </td><td colspan="2" align="center" class="fviewborder">
1115 <input type="submit" name="Submit" value="备档被选择的客户机">
1116 </td></tr>
1117 EOF
1118
1119 $Lang{fileHeader} = <<EOF;
1120     <tr class="fviewheader"><td align=center> 文件/目录名</td>
1121        <td align="center"> 类型</td>
1122        <td align="center"> 读写权限</td>
1123        <td align="center"> 备份序列号</td>
1124        <td align="center"> 大小</td>
1125        <td align="center"> 修改日期</td>
1126     </tr>
1127 EOF
1128
1129 $Lang{Home} = "主页";
1130 $Lang{Browse} = "浏览备份";
1131 $Lang{Last_bad_XferLOG} = "最近出错传输日志";
1132 $Lang{Last_bad_XferLOG_errors_only} = "最近出错传输日志(只含错误)";
1133
1134 $Lang{This_display_is_merged_with_backup} = <<EOF;
1135 <li> 本页显示的是与备份序列 #\$numF 合成的结果。
1136 EOF
1137
1138 $Lang{Visit_this_directory_in_backup} = <<EOF;
1139 <li> 选择你想查看的备份:<select onChange="window.location=this.value">\$otherDirs </select>
1140 EOF
1141
1142 $Lang{Restore_Summary} = <<EOF;
1143 \${h2("恢复报告")}
1144 <p>
1145 点击恢复序列号获取详情。
1146 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
1147 <tr class="tableheader"><td align="center"> 恢复序列号 </td>
1148     <td align="center"> 结果 </td>
1149     <td align="right"> 开始时间 </td>
1150     <td align="right"> 耗时(分钟)</td>
1151     <td align="right"> 文件个数 </td>
1152     <td align="right"> 大小(MB) </td>
1153     <td align="right"> Tar 错误个数 </td>
1154     <td align="right"> 传输错误个数 </td>
1155 </tr>
1156 \$restoreStr
1157 </table>
1158 <p>
1159 EOF
1160
1161 $Lang{Archive_Summary} = <<EOF;
1162 \${h2("备档报告")}
1163 <p>
1164 点击备档序列号获取详情。
1165 <table class="tableStnd" border cellspacing="1" cellpadding="3" width="80%">
1166 <tr class="tableheader"><td align="center"> 备档序列号 </td>
1167     <td align="center"> 结果 </td>
1168     <td align="right"> 开始时间 </td>
1169     <td align="right"> 耗时(分钟)</td>
1170 </tr>
1171 \$ArchiveStr
1172 </table>
1173 <p>
1174 EOF
1175
1176 $Lang{BackupPC__Documentation} = "BackupPC: 文档资料";
1177
1178 $Lang{No} = "否";
1179 $Lang{Yes} = "是";
1180
1181 $Lang{The_directory_is_empty} = <<EOF;
1182 <tr><td bgcolor="#ffffff">目录 \${EscHTML(\$dirDisplay)} 是空目录
1183 </td></tr>
1184 EOF
1185
1186 #$Lang{on} = "开";
1187 $Lang{off} = "关";
1188
1189 $Lang{backupType_full}    = "完全";
1190 $Lang{backupType_incr}    = "增量";
1191 $Lang{backupType_partial} = "部分";
1192
1193 $Lang{failed} = "失败";
1194 $Lang{success} = "成功";
1195 $Lang{and} = "和";
1196
1197 # ------
1198 # Hosts states and reasons
1199 $Lang{Status_idle} = "空闲";
1200 $Lang{Status_backup_starting} = "备份已开始";
1201 $Lang{Status_backup_in_progress} = "备份进行中";
1202 $Lang{Status_restore_starting} = "恢复已开始";
1203 $Lang{Status_restore_in_progress} = "恢复进行中";
1204 $Lang{Status_link_pending} = "文件链接待建立";
1205 $Lang{Status_link_running} = "文件链接建立中";
1206
1207 $Lang{Reason_backup_done}    = "完成";
1208 $Lang{Reason_restore_done}   = "恢复完成";
1209 $Lang{Reason_archive_done}   = "备档完成";
1210 $Lang{Reason_nothing_to_do}  = "空闲";
1211 $Lang{Reason_backup_failed}  = "备份失败";
1212 $Lang{Reason_restore_failed} = "恢复失败";
1213 $Lang{Reason_archive_failed} = "备档失败";
1214 $Lang{Reason_no_ping}        = "网络连接中断(no ping)";
1215 $Lang{Reason_backup_canceled_by_user}  = "备份被用户取消";
1216 $Lang{Reason_restore_canceled_by_user} = "恢复被用户取消";
1217 $Lang{Reason_archive_canceled_by_user} = "备档被用户取消";
1218 $Lang{Disabled_OnlyManualBackups}  = "自动备份被关闭";  
1219 $Lang{Disabled_AllBackupsDisabled} = "关闭";                  
1220
1221
1222 # ---------
1223 # Email messages
1224
1225 # No backup ever
1226 $Lang{EMailNoBackupEverSubj} = "BackupPC: 客户机 \$host 从未被成功备份过";
1227 $Lang{EMailNoBackupEverMesg} = <<'EOF';
1228 To: $user$domain
1229 cc:
1230 Subject: $subj
1231 $headers
1232 尊敬的用户 $userName,
1233
1234 您的电脑 ($host) 还从来没有被我们的备份系统成功备份过。
1235 正常情况下,当您的电脑与网络连接时电脑备份会自动进行。
1236 如果您属于下面两种情况,请与系统管理员联系:
1237
1238   - 您的电脑经常是连在网络上的。这意味着可能是某些配置
1239      方面的问题导致备份无法进行。
1240
1241   - 您不希望您的电脑被备份,并且不愿再收到这些电子邮件。
1242
1243 如果不是以上这些情况,请确认您的电脑是被连接在网络上的。
1244
1245 此致敬礼,
1246
1247 BackupPC Genie
1248 http://backuppc.sourceforge.net
1249 EOF
1250
1251 # No recent backup
1252 $Lang{EMailNoBackupRecentSubj} = "BackupPC: 客户机 \$host 最近未被备份过";
1253 $Lang{EMailNoBackupRecentMesg} = <<'EOF';
1254 To: $user$domain
1255 cc:
1256 Subject: $subj
1257 $headers
1258 尊敬的用户 $userName,
1259
1260 您的电脑 ($host) 已经有 $days 天没有被成功备份过了。您的电脑
1261 第一次被备份是在 $firstTime 天前,直至 $days 天前已经被备份过 $numBackups 次。
1262 正常情况下,当您的电脑与网络连接时电脑备份会自动进行。
1263
1264 在最近 $days 天内,如果您的电脑已经与网络连接了若干小时,
1265 请与系统管理员联系以判断为什么备份没有进行。
1266
1267 除此之外,如果您不在办公室,您只能手动拷贝重要文件到其它存储介质上。
1268 应该提醒您的是,如果您的电脑磁盘损坏,您在最近 $days 天内创建或修改
1269 的文件,包括新收到的电子邮件和附件,将无法被恢复。
1270
1271 此致敬礼,
1272
1273 BackupPC Genie
1274 http://backuppc.sourceforge.net
1275 EOF
1276
1277 # Old Outlook files
1278 $Lang{EMailOutlookBackupSubj} = "BackupPC: 客户机 \$host 上的微软 Outlook 文件需要备份";
1279 $Lang{EMailOutlookBackupMesg} = <<'EOF';
1280 To: $user$domain
1281 cc:
1282 Subject: $subj
1283 $headers
1284 尊敬的用户 $userName,
1285
1286 您的电脑上的 Outlook 文件 $howLong。
1287
1288 这些文件包括所有您的电子邮件,附件,通讯录及日程表信息。
1289 您的电脑第一次被备份是在 $firstTime 天前,直至 $lastTime 天前已经被
1290 备份过 $numBackups 次。但是,Outlook 在运行时锁住所有所属文件,
1291 导致这些文件无法被备份。
1292
1293 建议您依以下方式备份 Outlook 文件:
1294
1295 1。首先确认电脑是连接在网路上;
1296 2。退出 Outlook 及所有其它应用;
1297 3。使用网页浏览器访问此链接:
1298
1299     $CgiURL?host=$host               
1300
1301 选择 “开始增量备份”,启动增量备份操作;然后选择 “返回 $host 主页”
1302 并用浏览器的 “刷新” 功能来检查该备份操作的状态。
1303
1304 此致敬礼,
1305
1306 BackupPC Genie
1307 http://backuppc.sourceforge.net
1308 EOF
1309
1310 $Lang{howLong_not_been_backed_up} = "还从未被成功备份过";
1311 $Lang{howLong_not_been_backed_up_for_days_days} = "已经有 \$days 天未被备份过";
1312
1313 #######################################################################
1314 # RSS strings
1315 #######################################################################
1316 $Lang{RSS_Doc_Title}       = "BackupPC 服务器";
1317 $Lang{RSS_Doc_Description} = "RSS feed for BackupPC";
1318 $Lang{RSS_Host_Summary}    = <<EOF;
1319 完全备份个数:\$fullCnt;
1320 最后一次完全备份 (天前):\$fullAge;
1321 完全备份大小 (GB):\$fullSize;
1322 完全备份速度 (MB/sec):\$fullRate;
1323 增量备份个数:\$incrCnt;
1324 最后一次增量备份 (天前):\$incrAge;
1325 当前状态:\$host_state;
1326 最后一次备份结果:\$host_last_attempt;
1327 EOF
1328
1329 #######################################################################
1330 # Configuration editor strings
1331 #######################################################################
1332
1333 $Lang{Only_privileged_users_can_edit_config_files} = "只有特权用户可以编辑服务器配置。";
1334 $Lang{CfgEdit_Edit_Config} = "修改服务器配置";
1335 $Lang{CfgEdit_Edit_Hosts}  = "增删客户机";
1336
1337 $Lang{CfgEdit_Title_Server} = "服务器";
1338 $Lang{CfgEdit_Title_General_Parameters} = "总体参数";
1339 $Lang{CfgEdit_Title_Wakeup_Schedule} = "唤醒调度";
1340 $Lang{CfgEdit_Title_Concurrent_Jobs} = "并行任务";
1341 $Lang{CfgEdit_Title_Pool_Filesystem_Limits} = "备份池文件系统资源限制";
1342 $Lang{CfgEdit_Title_Other_Parameters} = "其它参数";
1343 $Lang{CfgEdit_Title_Remote_Apache_Settings} = "远程 Apache 服务器设置";
1344 $Lang{CfgEdit_Title_Program_Paths} = "程序路径";
1345 $Lang{CfgEdit_Title_Install_Paths} = "安装路径";
1346 $Lang{CfgEdit_Title_Email} = "电子邮件";
1347 $Lang{CfgEdit_Title_Email_settings} = "电子邮件设置";
1348 $Lang{CfgEdit_Title_Email_User_Messages} = "用户邮件内容设置";
1349 $Lang{CfgEdit_Title_CGI} = "CGI";
1350 $Lang{CfgEdit_Title_Admin_Privileges} = "管理特权";
1351 $Lang{CfgEdit_Title_Page_Rendering} = "网页外观";
1352 $Lang{CfgEdit_Title_Paths} = "路径";
1353 $Lang{CfgEdit_Title_User_URLs} = "用户 URLs";
1354 $Lang{CfgEdit_Title_User_Config_Editing} = "用户配置编辑";
1355 $Lang{CfgEdit_Title_Xfer} = "传输";
1356 $Lang{CfgEdit_Title_Xfer_Settings} = "传输设置";
1357 $Lang{CfgEdit_Title_Ftp_Settings} = "FTP 设置";
1358 $Lang{CfgEdit_Title_Smb_Settings} = "Smb 设置";
1359 $Lang{CfgEdit_Title_Tar_Settings} = "Tar 设置";
1360 $Lang{CfgEdit_Title_Rsync_Settings} = "Rsync 设置";
1361 $Lang{CfgEdit_Title_Rsyncd_Settings} = "Rsyncd 设置";
1362 $Lang{CfgEdit_Title_Archive_Settings} = "备档设置";
1363 $Lang{CfgEdit_Title_Include_Exclude} = "包含/排除";
1364 $Lang{CfgEdit_Title_Smb_Paths_Commands} = "Smb 路径/命令";
1365 $Lang{CfgEdit_Title_Tar_Paths_Commands} = "Tar 路径/命令";
1366 $Lang{CfgEdit_Title_Rsync_Paths_Commands_Args} = "Rsync 路径/命令/参数";
1367 $Lang{CfgEdit_Title_Rsyncd_Port_Args} = "Rsyncd 端口/参数";
1368 $Lang{CfgEdit_Title_Archive_Paths_Commands} = "备档路径/命令";
1369 $Lang{CfgEdit_Title_Schedule} = "调度";
1370 $Lang{CfgEdit_Title_Full_Backups} = "完全备份";
1371 $Lang{CfgEdit_Title_Incremental_Backups} = "增量备份";
1372 $Lang{CfgEdit_Title_Blackouts} = "备份暂停期";
1373 $Lang{CfgEdit_Title_Other} = "其它";
1374 $Lang{CfgEdit_Title_Backup_Settings} = "备份设置";
1375 $Lang{CfgEdit_Title_Client_Lookup} = "客户机查找";
1376 $Lang{CfgEdit_Title_Other} = "其它";
1377 $Lang{CfgEdit_Title_User_Commands} = "用户命令";
1378 $Lang{CfgEdit_Title_Hosts} = "客户机";
1379
1380 $Lang{CfgEdit_Hosts_Comment} = <<EOF;
1381 要增加一台新的备份客户机,请点击"添加",然后在 "host" 列输入其主机名。
1382 关于 "dhcp" 列的选择:只要该客户机的 IP 地址能被 nslookup 或 nmblookup 命令
1383 获得,就不选择此标志位。"user" 列中填入该客户机的一个拥有者或使用者的用户名,
1384 此用户拥有开始/中止/浏览/恢复该客户机备份的权限;同时此用户将被传送电子邮件,
1385 所以此用户名必须是一个合法电子邮件用户名。"moreUsers" 列中可填入该客户机的
1386 其他使用者的用户名,他们也拥有开始/中止/浏览/恢复该客户机备份的权限,
1387 多个用户名间用逗号分隔且不能含空格。与 "user" 列不同的是,"moreUsers" 列
1388 中用户不被传送电子邮件,所以他们不必是合法电子邮件用户名,只要能被 
1389 Apache Web 服务器认证登录即可。 如果想在一台现有客户机的管理配置的基础上
1390 配置一台新机,该新机主机名可在 "host" 列以这种方式输入 "NEWHOST=COPYHOST" ,
1391 这里 NEWHOST 是新机主机名,COPYHOST 是现有客户机主机名。也可以以这种方式
1392 修改一个现有客户机的配置。要删除一台现有备份客户机,请点击其所在行的"删除"。
1393 所有上述修改只有在点击"保存“后才能生效。被删除的备份客户机,其备份数据
1394 并没有被删除。所以如果不慎"删除"一台备份客户机,只需重新"添加"即可。要想
1395 完全删除一台备份客户机的备份数据,你需要手动删除备份服务器目录
1396  \$topDir/pc/HOST 下的所有文件,这里 HOST 是该客户机主机名。
1397 EOF
1398
1399 $Lang{CfgEdit_Header_Main} = <<EOF;
1400 \${h1("总体配置编辑")}
1401 EOF
1402
1403 $Lang{CfgEdit_Header_Host} = <<EOF;
1404 \${h1("客户机 \$host 配置编辑")}
1405 <p>
1406 注意:适用于所有客户机的全局性默认配置,其相应 “替换” 旁的方框是不被选择的。如果要修改本客户机的某项设置,请点击 “替换” 旁的方框。如果该设置已经处于被修改状态,则修改后不需点击 “替换” 旁的方框。如果要将其还原使用默认配置,则需点击 “替换” 旁的方框,使其处于未被修改状态。
1407 <p>
1408 EOF
1409
1410 $Lang{CfgEdit_Button_Save}     = "保存";
1411 $Lang{CfgEdit_Button_Insert}   = "插入";
1412 $Lang{CfgEdit_Button_Delete}   = "删除";
1413 $Lang{CfgEdit_Button_Add}      = "添加";
1414 $Lang{CfgEdit_Button_Override} = "替换";
1415 $Lang{CfgEdit_Button_New_Key}  = "文件卷名(Windows Share)";
1416
1417 $Lang{CfgEdit_Error_No_Save}
1418             = "错误:有误,无法保存";
1419 $Lang{CfgEdit_Error__must_be_an_integer}
1420             = "错误:\$var 必须是整数";
1421 $Lang{CfgEdit_Error__must_be_real_valued_number}
1422             = "错误:\$var 必须是实数,不能是浮点数";
1423 $Lang{CfgEdit_Error__entry__must_be_an_integer}
1424             = "错误:\$var 内容 \$k 必须是整数";
1425 $Lang{CfgEdit_Error__entry__must_be_real_valued_number}
1426             = "错误:\$var 内容 \$k 必须是实数,不能是浮点数";
1427 $Lang{CfgEdit_Error__must_be_executable_program}
1428             = "错误:\$var 必须是可执行程序";
1429 $Lang{CfgEdit_Error__must_be_valid_option}
1430             = "错误:\$var 必须是合法选项";
1431 $Lang{CfgEdit_Error_Copy_host_does_not_exist}
1432             = "客户机 \$copyHost 不存在;生成全计算机名 \$fullHost。如果此客户机不是你想要的,请将它删除。";
1433
1434 $Lang{CfgEdit_Log_Copy_host_config}
1435             = "用户 \$User 拷贝了客户机 \$fromHost 的配置到客户机 \$host\n";
1436 $Lang{CfgEdit_Log_Delete_param}
1437             = "用户 \$User 从配置 \$conf 中删除了 \$p\n";
1438 $Lang{CfgEdit_Log_Add_param_value}
1439             = "用户 \$User 添加了 \$p 到配置 \$conf 中,值设为 \$value\n";
1440 $Lang{CfgEdit_Log_Change_param_value}
1441             = "用户 \$User 将配置 \$conf 中的 \$p 从 \$valueOld 更改为 \$valueNew\n";
1442 $Lang{CfgEdit_Log_Host_Delete}
1443             = "用户 \$User 删除了客户机 \$host\n";
1444 $Lang{CfgEdit_Log_Host_Change}
1445             = "用户 \$User 将客户机 \$host 上的 \$key 从 \$valueOld 更改为 \$valueNew\n";
1446 $Lang{CfgEdit_Log_Host_Add}
1447             = "用户 \$User 添加了客户机 \$host: \$value\n";
1448   
1449 #end of lang_zh_CN.pm