diff --git a/src/index.html b/src/index.html index 509bc7d..4323d1a 100644 --- a/src/index.html +++ b/src/index.html @@ -296,6 +296,7 @@ + diff --git a/src/langs/zh_CN.txt b/src/langs/zh_CN.txt index 5e46e9a..ccbdd71 100644 --- a/src/langs/zh_CN.txt +++ b/src/langs/zh_CN.txt @@ -157,6 +157,38 @@ Input number is above max value!=输入的数字大于最大值 {{value}} ! Input value is invalid!=输入的内容无效! Tap to configure and get started with AriaNg.=您还没有进行过设置, 点击这里进行设置. +[error] +unknown=未知错误. +operation.timeout=操作超时. +resource.notfound=无法找到指定资源. +error.resource.notfound.max-file-not-found=无法找到指定资源. 参见 --max-file-not-found option 参数. +error.download.aborted.lowest-speed-limit=由于下载速度过慢, 下载已经终止. 参见 --lowest-speed-limit option 参数. +error.network.problem=网络问题. +resume.notsupported=服务器不支持断点续传. +space.notenough=可用磁盘空间不足. +piece.length.different=分片大小与 .aria2 控制文件中的不同. 参见 --allow-piece-length-change 参数. +download.sametime=aria2 已经下载了另一个相同文件. +download.torrent.sametime=aria2 已经下载了另一个相同哈希的种子文件. +file.exists=文件已经存在. 参见 --allow-overwrite 参数. +file.rename.failed=文件重命名失败. 参见 --auto-file-renaming 参数. +file.open.failed=文件打开失败. +file.create.failed=文件创建或删除已有文件失败. +io.error=文件系统出错. +directory.create.failed=无法创建指定目录. +name.resolution.failed=域名解析失败. +metalink.file.parse.failed=解析 Metalink 文件失败. +ftp.command.failed=FTP 命令执行失败. +http.response.header.bad=HTTP 返回头无效或无法识别. +redirects.toomany=指定地址重定向过多. +http.authorization.failed=HTTP 认证失败. +bencoded.file.parse.failed=解析种子文件失败. +torrent.file.corrupted=指定 ".torrent" 种子文件已经损坏或缺少 aria2 需要的信息. +magnet.uri.bad=指定磁链地址无效. +option.bad=设置错误. +server.overload=远程服务器繁忙, 无法处理当前请求. +rpc.request.parse.failed=处理 RPC 请求失败. +checksum.failed=文件校验失败. + [format] longdate=YYYY年MM月DD日 HH:mm:ss time.millisecond={{value}} 毫秒 @@ -203,7 +235,7 @@ random=随机 dir.name=下载路径 dir.description= log.name=日志文件 -log.description=日志文件的路径. 如果设置为 \"-\", 日志则写入到 stdout. 如果设置为空字符串(\"\"), 日志将不会记录到磁盘上. +log.description=日志文件的路径. 如果设置为 "-", 日志则写入到 stdout. 如果设置为空字符串(""), 日志将不会记录到磁盘上. max-concurrent-downloads.name=最大同时下载数 max-concurrent-downloads.description= check-integrity.name=检查完整性 @@ -211,7 +243,7 @@ check-integrity.description=通过对文件的每个分块或整个文件进行 continue.name=断点续传 continue.description=继续下载部分完成的文件. 启用此选项可以继续下载从浏览器或其他程序按顺序下载的文件. 此选项目前只支持 HTTP(S)/FTP 下载的文件. all-proxy.name=代理服务器 -all-proxy.description=设置所有协议的代理服务器地址. 如果覆盖之前设置的代理服务器, 使用 \"\" 即可. 您还可以针对特定的协议覆盖此选项, 即使用 --http-proxy, --https-proxy 和 --ftp-proxy 选项. 此设置将会影响所有下载. 代理服务器地址的格式为 [http://][USER:PASSWORD@]HOST[:PORT]. +all-proxy.description=设置所有协议的代理服务器地址. 如果覆盖之前设置的代理服务器, 使用 "" 即可. 您还可以针对特定的协议覆盖此选项, 即使用 --http-proxy, --https-proxy 和 --ftp-proxy 选项. 此设置将会影响所有下载. 代理服务器地址的格式为 [http://][USER:PASSWORD@]HOST[:PORT]. all-proxy-user.name=代理服务器用户名 all-proxy-user.description= all-proxy-passwd.name=代理服务器密码 @@ -219,13 +251,13 @@ all-proxy-passwd.description= connect-timeout.name=连接超时时间 connect-timeout.description=设置建立 HTTP/FTP/代理服务器 连接的超时时间(秒). 当连接建立后, 此选项不再生效, 请使用 --timeout 选项. dry-run.name=模拟运行 -dry-run.description=如果设置为\"是\", aria2 将仅检查远程文件是否存在而不会下载文件内容. 此选项仅对 HTTP/FTP 下载生效. 如果设置为 true, BT 下载将会直接取消. +dry-run.description=如果设置为"是", aria2 将仅检查远程文件是否存在而不会下载文件内容. 此选项仅对 HTTP/FTP 下载生效. 如果设置为 true, BT 下载将会直接取消. lowest-speed-limit.name=最小速度限制 lowest-speed-limit.description=当下载速度低于此选项设置的值(B/s) 时将会关闭连接. 0 表示不设置最小速度限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). 此选项不会影响 BT 下载. max-connection-per-server.name=单服务器最大连接数 max-connection-per-server.description= max-file-not-found.name=文件未找到重试次数 -max-file-not-found.description=如果 aria2 从远程 HTTP/FTP 服务器收到 \"文件未找到\" 的状态超过此选项设置的次数后下载将会失败. 设置为 0 将会禁用此选项. 此选项仅影响 HTTP/FTP 服务器. 重试时同时会记录重试次数, 所以也需要设置 --max-tries 这个选项. +max-file-not-found.description=如果 aria2 从远程 HTTP/FTP 服务器收到 "文件未找到" 的状态超过此选项设置的次数后下载将会失败. 设置为 0 将会禁用此选项. 此选项仅影响 HTTP/FTP 服务器. 重试时同时会记录重试次数, 所以也需要设置 --max-tries 这个选项. max-tries.name=最大尝试次数 max-tries.description=设置最大尝试次数. 0 表示不限制. min-split-size.name=最小文件分片大小 @@ -251,19 +283,19 @@ server-stat-timeout.description=指定服务器状态的过期时间 (单位为 split.name=单任务连接数 split.description=下载时使用 N 个连接. 如果提供超过 N 个 URI 地址, 则使用前 N 个地址, 剩余的地址将作为备用. 如果提供的 URI 地址不足 N 个, 这些地址多次使用以保证同时建立 N 个连接. 同一服务器的连接数会被 --max-connection-per-server 选项限制. stream-piece-selector.name=分片选择算法 -stream-piece-selector.description=指定 HTTP/FTP 下载使用的分片选择算法. 分片表示的是并行下载时固定长度的分隔段. 如果设置为\"默认\", aria2 将会按减少建立连接数选择分片. 由于建立连接操作的成本较高, 因此这是合理的默认行为. 如果设置为\"顺序\", aria2 将选择索引最小的分片. 索引为 0 时表示为文件的第一个分片. 这将有助于视频的边下边播. --enable-http-pipelining 选项有助于减少重连接的开销. 请注意, aria2 依赖于 --min-split-size 选项, 所以有必要对 --min-split-size 选项设置一个合理的值. 如果设置为\"随机\", aria2 将随机选择一个分片. 就像\"顺序\"一样, 依赖于 --min-split-size 选项. 如果设置为\"几何\", aria2 会先选择索引最小的分片, 然后会为之前选择的分片保留指数增长的空间. 这将减少建立连接的次数, 同时文件开始部分将会先行下载. 这也有助于视频的边下边播. +stream-piece-selector.description=指定 HTTP/FTP 下载使用的分片选择算法. 分片表示的是并行下载时固定长度的分隔段. 如果设置为"默认", aria2 将会按减少建立连接数选择分片. 由于建立连接操作的成本较高, 因此这是合理的默认行为. 如果设置为"顺序", aria2 将选择索引最小的分片. 索引为 0 时表示为文件的第一个分片. 这将有助于视频的边下边播. --enable-http-pipelining 选项有助于减少重连接的开销. 请注意, aria2 依赖于 --min-split-size 选项, 所以有必要对 --min-split-size 选项设置一个合理的值. 如果设置为"随机", aria2 将随机选择一个分片. 就像"顺序"一样, 依赖于 --min-split-size 选项. 如果设置为"几何", aria2 会先选择索引最小的分片, 然后会为之前选择的分片保留指数增长的空间. 这将减少建立连接的次数, 同时文件开始部分将会先行下载. 这也有助于视频的边下边播. timeout.name=超时时间 timeout.description= uri-selector.name=URI 选择算法 -uri-selector.description=指定 URI 选择的算法. 可选的值包括 \"按顺序\", \"反馈\" 和 \"自适应\". 如果设置为\"按顺序\", URI 将按列表中出现的顺序使用. 如果设置为\"反馈\", aria2 将根据之前的下载速度选择 URI 列表中下载速度最快的服务器. 同时也将有效跳过无效镜像. 之前统计的下载速度将作为服务器状态文件的一部分, 参见 --server-stat-of 和 --server-stat-if 选项. 如果设置为\"自适应\", 将从最好的镜像和保留的连接里选择一项. 补充说明, 其返回的镜像没有被测试过, 同时如果每个镜像都已经被测试过时, 返回的镜像还会被重新测试. 否则, 其将不会选择其他镜像. 例如\"反馈\", 其使用服务器状态文件. +uri-selector.description=指定 URI 选择的算法. 可选的值包括 "按顺序", "反馈" 和 "自适应". 如果设置为"按顺序", URI 将按列表中出现的顺序使用. 如果设置为"反馈", aria2 将根据之前的下载速度选择 URI 列表中下载速度最快的服务器. 同时也将有效跳过无效镜像. 之前统计的下载速度将作为服务器状态文件的一部分, 参见 --server-stat-of 和 --server-stat-if 选项. 如果设置为"自适应", 将从最好的镜像和保留的连接里选择一项. 补充说明, 其返回的镜像没有被测试过, 同时如果每个镜像都已经被测试过时, 返回的镜像还会被重新测试. 否则, 其将不会选择其他镜像. 例如"反馈", 其使用服务器状态文件. check-certificate.name=检查证书 check-certificate.description= http-accept-gzip.name=支持 GZip http-accept-gzip.description=如果远程服务器的响应头中包含 Content-Encoding: gzip 或 Content-Encoding: deflate , 将发送包含 Accept: deflate, gzip 的请求头并解压缩响应. http-auth-challenge.name=认证质询 -http-auth-challenge.description=仅当服务器需要时才发送 HTTP 认证请求头. 如果设置为\"否\", 每次都会发送认证请求头. 例外: 如果用户名和密码包含在 URI 中, 将忽略此选项并且每次都会发送认证请求头. +http-auth-challenge.description=仅当服务器需要时才发送 HTTP 认证请求头. 如果设置为"否", 每次都会发送认证请求头. 例外: 如果用户名和密码包含在 URI 中, 将忽略此选项并且每次都会发送认证请求头. http-no-cache.name=禁用缓存 -http-no-cache.description=发送的请求头中将包含 Cache-Control: no-cache 和 Pragma: no-cache header 以避免内容被缓存. 如果设置为\"否\", 上述请求头将不会发送, 同时您也可以使用 --header 选项将 Cache-Control 请求头添加进去. +http-no-cache.description=发送的请求头中将包含 Cache-Control: no-cache 和 Pragma: no-cache header 以避免内容被缓存. 如果设置为"否", 上述请求头将不会发送, 同时您也可以使用 --header 选项将 Cache-Control 请求头添加进去. http-user.name=HTTP 默认用户名 http-user.description= http-passwd.name=HTTP 默认密码 @@ -299,7 +331,7 @@ ftp-user.description= ftp-passwd.name=FTP 默认密码 ftp-passwd.description=如果 URI 中包含用户名单不包含密码, aria2 首先会从 .netrc 文件中获取密码. 如果在 .netrc 文件中找到密码, 则使用该密码. 否则, 使用此选项设置的密码. ftp-pasv.name=被动模式 -ftp-pasv.description=在 FTP 中使用被动模式. 如果设置为\"否\", 则使用主动模式. 此选项不适用于 SFTP 传输. +ftp-pasv.description=在 FTP 中使用被动模式. 如果设置为"否", 则使用主动模式. 此选项不适用于 SFTP 传输. ftp-proxy.name=FTP 代理服务器 ftp-proxy.description= ftp-proxy-user.name=FTP 代理服务器用户名 @@ -315,7 +347,7 @@ ssh-host-key-md.description=设置 SSH 主机公钥的校验和. TYPE 为哈希 bt-detach-seed-only.name=分离仅做种任务 bt-detach-seed-only.description=统计当前活动下载任务(参见 -j 选项) 时排除仅做种的任务. 这意味着, 如果参数设置为 -j3, 此选项打开并且当前有 3 个正在活动的任务, 并且其中有 1 个进入做种模式, 那么其会从正在下载的数量中排除(即数量会变为 2), 在队列中等待的下一个任务将会开始执行. 但要知道, 在 RPC 方法中, 做种的任务仍然被认为是活动的下载任务. bt-enable-hook-after-hash-check.name=启用哈希检查完成事件 -bt-enable-hook-after-hash-check.description=允许 BT 下载哈希检查(参见 -V 选项) 完成后调用命令. 默认情况下, 当哈希检查成功后, 通过 --on-bt-download-complete 设置的命令将会被执行. 如果要禁用此行为, 请设置为\"否\". +bt-enable-hook-after-hash-check.description=允许 BT 下载哈希检查(参见 -V 选项) 完成后调用命令. 默认情况下, 当哈希检查成功后, 通过 --on-bt-download-complete 设置的命令将会被执行. 如果要禁用此行为, 请设置为"否". bt-enable-lpd.name=启用本地节点发现 (LPD) bt-enable-lpd.description= bt-exclude-tracker.name=BT 排除服务器地址 @@ -323,9 +355,9 @@ bt-exclude-tracker.description=逗号分隔的 BT 排除服务器地址. 您可 bt-external-ip.name=外部 IP 地址 bt-external-ip.description=指定用来报告给 BT 服务器的外部 IP 地址. 虽然这个方法叫外部, 但其可以接受各种类型的 IP 地址. IP 地址需要使用数字类型的地址. bt-force-encryption.name=强制加密 -bt-force-encryption.description=BT 消息中的内容需要使用 arc4 加密. 此选项是设置 --bt-require-crypto --bt-min-crypto-level=arc4 这两个选项的快捷方式. 此选项不会修改上述两个选项的内容. 如果设置为\"是\", 将拒绝以前的 BT 握手, 并仅使用模糊握手及加密消息. +bt-force-encryption.description=BT 消息中的内容需要使用 arc4 加密. 此选项是设置 --bt-require-crypto --bt-min-crypto-level=arc4 这两个选项的快捷方式. 此选项不会修改上述两个选项的内容. 如果设置为"是", 将拒绝以前的 BT 握手, 并仅使用模糊握手及加密消息. bt-hash-check-seed.name=做种前检查文件哈希 -bt-hash-check-seed.description=如果设置为\"是\", 当使用 --check-integrity 选项完成哈希检查及文件完成后才继续做种. 如果您希望仅当文件损坏或未完成时检查文件, 请设置为\"否\". 此选项仅对 BT 下载有效 +bt-hash-check-seed.description=如果设置为"是", 当使用 --check-integrity 选项完成哈希检查及文件完成后才继续做种. 如果您希望仅当文件损坏或未完成时检查文件, 请设置为"否". 此选项仅对 BT 下载有效 bt-max-open-files.name=最多打开文件数 bt-max-open-files.description=设置 BT/Metalink 下载全局打开的最大文件数. bt-max-peers.name=最大连接节点数 @@ -339,11 +371,11 @@ bt-prioritize-piece.description=尝试先下载每个文件开头或结尾的分 bt-remove-unselected-file.name=删除未选择的文件 bt-remove-unselected-file.description=当 BT 任务完成后删除未选择的文件. 要选择需要下载的文件, 请使用 --select-file 选项. 如果没有选择, 则所有文件都默认为需要下载. 此选项会从磁盘上直接删除文件, 请谨慎使用此选项. bt-require-crypto.name=需要加密 -bt-require-crypto.description=如果设置为\"是\", aria 将不会接受以前的 BitTorrent 握手协议(\\19BitTorrent 协议)并建立连接. 因此 aria2 总是模糊握手. +bt-require-crypto.description=如果设置为"是", aria 将不会接受以前的 BitTorrent 握手协议(\\19BitTorrent 协议)并建立连接. 因此 aria2 总是模糊握手. bt-request-peer-speed-limit.name=期望下载速度 bt-request-peer-speed-limit.description=如果一个 BT 下载的整体下载速度低于此选项设置的值, aria2 会临时提高连接数以提高下载速度. 在某些情况下, 设置期望下载速度可以提高您的下载速度. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). bt-save-metadata.name=保存种子文件 -bt-save-metadata.description=保存种子文件为 \".torrent\" 文件. 此选项仅对磁链生效. 文件名为十六进制编码后的哈希值及 \".torrent\"后缀. 保存的目录与下载文件的目录相同. 如果相同的文件已存在, 种子文件将不会保存. +bt-save-metadata.description=保存种子文件为 ".torrent" 文件. 此选项仅对磁链生效. 文件名为十六进制编码后的哈希值及 ".torrent"后缀. 保存的目录与下载文件的目录相同. 如果相同的文件已存在, 种子文件将不会保存. bt-seed-unverified.name=不检查已经下载的文件 bt-seed-unverified.description=不检查之前下载文件中每个分片的哈希值. bt-stop-timeout.name=无速度时自动停止时间 @@ -361,19 +393,19 @@ dht-file-path.description=修改 IPv4 DHT 路由表文件路径. dht-file-path6.name=DHT (IPv6) 文件 dht-file-path6.description=修改 IPv6 DHT 路由表文件路径. dht-listen-port.name=DHT 监听端口 -dht-listen-port.description=设置 DHT (IPv4, IPv6) 和 UDP 服务器使用的 UCP 端口. 多个端口可以使用逗号 \",\" 分隔, 例如: 6881,6885. 您还可以使用短横线 \"-\" 表示范围: 6881-6999, 或可以一起使用: 6881-6889, 6999. +dht-listen-port.description=设置 DHT (IPv4, IPv6) 和 UDP 服务器使用的 UCP 端口. 多个端口可以使用逗号 "," 分隔, 例如: 6881,6885. 您还可以使用短横线 "-" 表示范围: 6881-6999, 或可以一起使用: 6881-6889, 6999. dht-message-timeout.name=DHT 消息超时时间 dht-message-timeout.description= enable-dht.name=启用 DHT (IPv4) -enable-dht.description=启用 IPv4 DHT 功能. 此选项同时会启用 UDP 服务器支持. 如果种子设置为私有, 即使此选项设置为\"是\", aria2 也不会启用 DHT. +enable-dht.description=启用 IPv4 DHT 功能. 此选项同时会启用 UDP 服务器支持. 如果种子设置为私有, 即使此选项设置为"是", aria2 也不会启用 DHT. enable-dht6.name=启用 DHT (IPv6) -enable-dht6.description=启用 IPv6 DHT 功能. 如果种子设置为私有, 即使此选项设置为\"是\", aria2 也不会启用 DHT. 使用 --dht-listen-port 选项设置监听的端口. +enable-dht6.description=启用 IPv6 DHT 功能. 如果种子设置为私有, 即使此选项设置为"是", aria2 也不会启用 DHT. 使用 --dht-listen-port 选项设置监听的端口. enable-peer-exchange.name=启用节点交换 -enable-peer-exchange.description=启用节点交换扩展. 如果种子设置为私有, 即使此选项设置为\"是\", aria2 也不会启用此功能. +enable-peer-exchange.description=启用节点交换扩展. 如果种子设置为私有, 即使此选项设置为"是", aria2 也不会启用此功能. follow-torrent.name=下载种子中的文件 -follow-torrent.description=如果设置为\"是\"或\"仅内存\", 当后缀为 .torrent 或内容类型为 application/x-bittorrent 的文件下载完成时, aria2 将按种子文件读取并下载该文件中提到的文件. 如果设置为\"仅内存\", 该种子文件将不会写入到磁盘中, 而仅会存储在内存中. 如果设置为\"否\", 则 .torrent 文件会下载到磁盘中, 但不会按种子文件读取并且其中的文件不会进行下载. +follow-torrent.description=如果设置为"是"或"仅内存", 当后缀为 .torrent 或内容类型为 application/x-bittorrent 的文件下载完成时, aria2 将按种子文件读取并下载该文件中提到的文件. 如果设置为"仅内存", 该种子文件将不会写入到磁盘中, 而仅会存储在内存中. 如果设置为"否", 则 .torrent 文件会下载到磁盘中, 但不会按种子文件读取并且其中的文件不会进行下载. listen-port.name=监听端口 -listen-port.description=设置 BT 下载的 TCP 端口. 多个端口可以使用逗号 \",\" 分隔, 例如: 6881,6885. 您还可以使用短横线 \"-\" 表示范围: 6881-6999, 或可以一起使用: 6881-6889, 6999. +listen-port.description=设置 BT 下载的 TCP 端口. 多个端口可以使用逗号 "," 分隔, 例如: 6881,6885. 您还可以使用短横线 "-" 表示范围: 6881-6999, 或可以一起使用: 6881-6889, 6999. max-overall-upload-limit.name=全局最大上传速度 max-overall-upload-limit.description=设置全局最大上传速度 (字节/秒). 0 表示不限制. 您可以增加数值的单位 K 或 M (1K = 1024, 1M = 1024K). max-upload-limit.name=最大上传速度 @@ -385,7 +417,7 @@ seed-ratio.description=指定分享率. 当分享率达到此选项设置的值 seed-time.name=最小做种时间 seed-time.description=此选项设置为 0 时, 将在 BT 任务下载完成后不进行做种. follow-metalink.name=下载 Metalink 中的文件 -follow-metalink.description=如果设置为\"是\"或\"仅内存\", 当后缀为 .meta4 或 .metalink 或内容类型为 application/metalink4+xml 或 application/metalink+xml 的文件下载完成时, aria2 将按 Metalink 文件读取并下载该文件中提到的文件. 如果设置为\"仅内存\", 该 Metalink 文件将不会写入到磁盘中, 而仅会存储在内存中. 如果设置为\"否\", 则 .metalink 文件会下载到磁盘中, 但不会按 Metalink 文件读取并且其中的文件不会进行下载. +follow-metalink.description=如果设置为"是"或"仅内存", 当后缀为 .meta4 或 .metalink 或内容类型为 application/metalink4+xml 或 application/metalink+xml 的文件下载完成时, aria2 将按 Metalink 文件读取并下载该文件中提到的文件. 如果设置为"仅内存", 该 Metalink 文件将不会写入到磁盘中, 而仅会存储在内存中. 如果设置为"否", 则 .metalink 文件会下载到磁盘中, 但不会按 Metalink 文件读取并且其中的文件不会进行下载. metalink-base-uri.name=基础 URI metalink-base-uri.description=指定基础 URI 以便解析本地磁盘中存储的 Metalink 文件里 metalink:url 和 metalink:metaurl 中的相对 URI 地址. 如果 URI 表示的为目录, 最后需要以 / 结尾. metalink-language.name=语言 @@ -397,9 +429,9 @@ metalink-os.description=下载文件的操作系统. metalink-version.name=版本号 metalink-version.description=下载文件的版本号. metalink-preferred-protocol.name=首选使用协议 -metalink-preferred-protocol.description=指定首选使用的协议. 可以设置为 http, https, ftp 或\"无\". 设置为\"无\"时禁用此选项. +metalink-preferred-protocol.description=指定首选使用的协议. 可以设置为 http, https, ftp 或"无". 设置为"无"时禁用此选项. metalink-enable-unique-protocol.name=仅使用唯一协议 -metalink-enable-unique-protocol.description=如果一个 Metalink 文件可用多种协议, 并且此选项设置为\"是\", aria2 将只会使用其中一种. 使用 --metalink-preferred-protocol 参数指定首选的协议. +metalink-enable-unique-protocol.description=如果一个 Metalink 文件可用多种协议, 并且此选项设置为"是", aria2 将只会使用其中一种. 使用 --metalink-preferred-protocol 参数指定首选的协议. enable-rpc.name=启用 JSON-RPC/XML-RPC 服务器 enable-rpc.description= pause-metadata.name=种子文件下载完后暂停 @@ -407,21 +439,21 @@ pause-metadata.description=当种子文件下载完成后暂停后续的下载. rpc-allow-origin-all.name=接受所有远程请求 rpc-allow-origin-all.description=在 RPC 响应头增加 Access-Control-Allow-Origin 字段, 值为 * . rpc-listen-all.name=在所有网卡上监听 -rpc-listen-all.description=在所有网络适配器上监听 JSON-RPC/XML-RPC 的请求, 如果设置为\"否\", 仅监听本地网络的请求. +rpc-listen-all.description=在所有网络适配器上监听 JSON-RPC/XML-RPC 的请求, 如果设置为"否", 仅监听本地网络的请求. rpc-listen-port.name=监听端口 rpc-listen-port.description= rpc-max-request-size.name=最大请求大小 rpc-max-request-size.description=设置 JSON-RPC/XML-RPC 最大的请求大小. 如果 aria2 检测到请求超过设定的字节数, 会直接取消连接. rpc-save-upload-metadata.name=保存上传的种子文件 -rpc-save-upload-metadata.description=在 dir 选项设置的目录中保存上传的种子文件或 Metalink 文件. 文件名包括 SHA-1 哈希后的元数据和扩展名两部分. 对于种子文件, 扩展名为 '.torrent'. 对于 Metalink 为 '.meta4'. 如果此选项设置为\"否\", 通过 aria2.addTorrent() 或 aria2.addMetalink() 方法添加的下载将无法通过 --save-session 选项保存. +rpc-save-upload-metadata.description=在 dir 选项设置的目录中保存上传的种子文件或 Metalink 文件. 文件名包括 SHA-1 哈希后的元数据和扩展名两部分. 对于种子文件, 扩展名为 '.torrent'. 对于 Metalink 为 '.meta4'. 如果此选项设置为"否", 通过 aria2.addTorrent() 或 aria2.addMetalink() 方法添加的下载将无法通过 --save-session 选项保存. rpc-secure.name=启用 SSL/TLS rpc-secure.description=RPC 将通过 SSL/TLS 加密传输. RPC 客户端需要使用 https 协议连接服务器. 对于 WebSocket 客户端, 使用 wss 协议. 使用 --rpc-certificate 和 --rpc-private-key 选项设置服务器的证书和私钥. allow-overwrite.name=允许覆盖 allow-overwrite.description=如果相应的控制文件不存在时从头重新下载文件. 参见 --auto-file-renaming 选项. allow-piece-length-change.name=允许分片大小变化 -allow-piece-length-change.description=如果设置为\"否\", 当分片长度与控制文件中的不同时, aria2 将会中止下载. 如果设置为\"是\", 您可以继续, 但部分下载进度将会丢失. +allow-piece-length-change.description=如果设置为"否", 当分片长度与控制文件中的不同时, aria2 将会中止下载. 如果设置为"是", 您可以继续, 但部分下载进度将会丢失. always-resume.name=始终断点续传 -always-resume.description=始终断点续传. 如果设置为\"是\", aria2 始终尝试断点续传, 如果无法恢复, 则中止下载. 如果设置为\"否\", 对于不支持断点续传的 URI 或 aria2 遇到 N 个不支持断点续传的 URI (N 为 --max-resume-failure-tries 选项设置的值), aria2 会从头下载文件. 参见 --max-resume-failure-tries 参数. +always-resume.description=始终断点续传. 如果设置为"是", aria2 始终尝试断点续传, 如果无法恢复, 则中止下载. 如果设置为"否", 对于不支持断点续传的 URI 或 aria2 遇到 N 个不支持断点续传的 URI (N 为 --max-resume-failure-tries 选项设置的值), aria2 会从头下载文件. 参见 --max-resume-failure-tries 参数. async-dns.name=异步 DNS async-dns.description= auto-file-renaming.name=文件自动重命名 @@ -437,13 +469,13 @@ console-log-level.description= daemon.name=启用后台进程 daemon.description= deferred-input.name=延迟加载 -deferred-input.description=如果设置为\"是\", aria2 在启动时不会读取 --input-file 选项设置的文件中的所有 URI 地址, 而是会在之后需要时按需读取. 如果输入文件中包含大量要下载的 URI, 此选项可以减少内存的使用. 如果设置为\"否\", aria2 会在启动时读取所有的 URI. 当 -save-session 使用时将会禁用 --deferred-input 选项. +deferred-input.description=如果设置为"是", aria2 在启动时不会读取 --input-file 选项设置的文件中的所有 URI 地址, 而是会在之后需要时按需读取. 如果输入文件中包含大量要下载的 URI, 此选项可以减少内存的使用. 如果设置为"否", aria2 会在启动时读取所有的 URI. 当 -save-session 使用时将会禁用 --deferred-input 选项. disable-ipv6.name=禁用 IPv6 disable-ipv6.description= disk-cache.name=磁盘缓存 disk-cache.description=启用磁盘缓存. 如果设置为 0, 将禁用磁盘缓存. 此功能将下载的数据缓存在内存中, 最多占用此选项设置的字节数. 缓存存储由 aria2 实例创建并对所有下载共享. 由于数据以较大的单位写入并按文件的偏移重新排序, 所以磁盘缓存的一个优点是减少磁盘的 I/O. 如果调用哈希检查时并且数据缓存在内存中时, 将不需要从磁盘中读取. 大小可以包含 K 或 M (1K = 1024, 1M = 1024K). download-result.name=下载结果 -download-result.description=此选项将修改下载结果的格式. 如果设置为\"默认\", 将打印 GID, 状态, 平均下载速度和路径/URI. 如果涉及多个文件, 仅打印第一个请求文件的路径/URI, 其余的将被忽略. 如果设置为\"完整\", 将打印 GID, 状态, 平均下载速度, 下载进度和路径/URI. 其中, 下载进度和路径/URI 将会每个文件打印一行. 如果设置为\"隐藏\", 下载结果将会隐藏. +download-result.description=此选项将修改下载结果的格式. 如果设置为"默认", 将打印 GID, 状态, 平均下载速度和路径/URI. 如果涉及多个文件, 仅打印第一个请求文件的路径/URI, 其余的将被忽略. 如果设置为"完整", 将打印 GID, 状态, 平均下载速度, 下载进度和路径/URI. 其中, 下载进度和路径/URI 将会每个文件打印一行. 如果设置为"隐藏", 下载结果将会隐藏. dscp.name=DSCP dscp.description=为 QoS 设置 BT 上行 IP 包的 DSCP 值. 此参数仅设置 IP 包中 TOS 字段的 DSCP 位, 而不是整个字段. 如果您从 /usr/include/netinet/ip.h 得到的值, 需要除以 4 (否则值将不正确, 例如您的 CS1 类将会转为 CS4). 如果您从 RFC, 网络供应商的文档, 维基百科或其他来源采取常用的值, 可以直接使用. rlimit-nofile.name=最多打开的文件描述符 @@ -455,11 +487,11 @@ enable-mmap.description=内存中存放映射文件. 当文件空间没有预先 event-poll.name=事件轮询方法 event-poll.description=设置事件轮训的方法. 可选的值包括 epoll, kqueue, port, poll 和 select. 对于 epoll, kqueue, port 和 poll, 只有系统支持时才可用. 最新的 Linux 支持 epoll. 各种 *BSD 系统包括 Mac OS X 支持 kqueue. Open Solaris 支持 port. 默认值根据您使用的操作系统不同而不同. file-allocation.name=文件分配方法 -file-allocation.description=指定文件分配方法. \"无\" 不会预先分配文件空间. \"prealloc\"会在下载开始前预先分配空间. 这将会根据文件的大小需要一定的时间. 如果您使用的是较新的文件系统, 例如 ext4 (带扩展支持), btrfs, xfs 或 NTFS (仅 MinGW 构建), \"falloc\" 是最好的选择. 其几乎可以瞬间分配大(数 GiB)文件. 不要在旧的文件系统, 例如 ext3 和 FAT32 上使用 falloc, 因为与 prealloc 花费的时间相同, 并且其会阻塞 aria2 知道分配完成. 当您的系统不支持 posix_fallocate(3) 函数时, falloc 可能无法使用. \"trunc\" 使用 ftruncate(2) 系统调用或平台特定的实现将文件截取到特定的长度. +file-allocation.description=指定文件分配方法. "无" 不会预先分配文件空间. "prealloc"会在下载开始前预先分配空间. 这将会根据文件的大小需要一定的时间. 如果您使用的是较新的文件系统, 例如 ext4 (带扩展支持), btrfs, xfs 或 NTFS (仅 MinGW 构建), "falloc" 是最好的选择. 其几乎可以瞬间分配大(数 GiB)文件. 不要在旧的文件系统, 例如 ext3 和 FAT32 上使用 falloc, 因为与 prealloc 花费的时间相同, 并且其会阻塞 aria2 知道分配完成. 当您的系统不支持 posix_fallocate(3) 函数时, falloc 可能无法使用. "trunc" 使用 ftruncate(2) 系统调用或平台特定的实现将文件截取到特定的长度. force-save.name=强制保存 force-save.description=即使任务完成或删除时使用 --save-session 选项时也保存该任务. 此选项在这种情况下还会保存控制文件. 此选项可以保存被认为已经完成但正在做种的 BT 任务. hash-check-only.name=仅哈希检查 -hash-check-only.description=如果设置为\"是\", 哈希检查完使用 --check-integrity 选项, 根据是否下载完成决定是否终止下载. +hash-check-only.description=如果设置为"是", 哈希检查完使用 --check-integrity 选项, 根据是否下载完成决定是否终止下载. human-readable.name=控制台可读输出 human-readable.description=在控制台输出可读格式的大小和速度 (例如, 1.2Ki, 3.4Mi). max-download-result.name=最多下载结果 @@ -467,7 +499,7 @@ max-download-result.description=设置内存中存储的最大下载结果. 下 max-mmap-limit.name=MMap 最大限制 max-mmap-limit.description=设置启用 MMap (参见 --enable-mmap 选项) 最大的文件大小. 文件大小由一个下载任务中所有文件大小的和决定. 例如, 如果一个下载包含 5 个文件, 那么文件大小就是这些文件的总大小. 如果文件大小超过此选项设置的大小时, MMap 将会禁用. max-resume-failure-tries.name=最大断点续传尝试次数 -max-resume-failure-tries.description=当 --always-resume 选项设置为\"否\"时, 如果 aria2 检测到有 N 个 URI 不支持断点续传时, 将从头开始下载文件. 如果 N 设置为 0, 当所有 URI 都不支持断点续传时才会从头下载文件. 参见 --always-resume 选项. +max-resume-failure-tries.description=当 --always-resume 选项设置为"否"时, 如果 aria2 检测到有 N 个 URI 不支持断点续传时, 将从头开始下载文件. 如果 N 设置为 0, 当所有 URI 都不支持断点续传时才会从头下载文件. 参见 --always-resume 选项. min-tls-version.name=最低 TLS 版本 min-tls-version.description=指定启用的最低 SSL/TLS 版本. log-level.name=日志级别 diff --git a/src/scripts/config/aria2Errors.js b/src/scripts/config/aria2Errors.js new file mode 100644 index 0000000..61e500e --- /dev/null +++ b/src/scripts/config/aria2Errors.js @@ -0,0 +1,99 @@ +(function () { + 'use strict'; + + angular.module('ariaNg').constant('aria2Errors', { + //'0': { }, //All downloads were successful. + '1': { + descriptionKey: 'error.unknown' + }, + '2': { + descriptionKey: 'error.operation.timeout' + }, + '3': { + descriptionKey: 'error.resource.notfound' + }, + '4': { + descriptionKey: 'error.resource.notfound.max-file-not-found' + }, + '5': { + descriptionKey: 'error.download.aborted.lowest-speed-limit' + }, + '6': { + descriptionKey: 'error.network.problem' + }, + //'7': { },//If there were unfinished downloads. This error is only reported if all finished downloads were successful and there were unfinished downloads in a queue when aria2 exited by pressing Ctrl-C by an user or sending TERM or INT signal. + '8': { + descriptionKey: 'error.resume.notsupported' + }, + '9': { + descriptionKey: 'error.space.notenough' + }, + '10': { + descriptionKey: 'error.piece.length.different' + }, + '11': { + descriptionKey: 'error.download.sametime' + }, + '12': { + descriptionKey: 'error.download.torrent.sametime' + }, + '13': { + descriptionKey: 'error.file.exists' + }, + '14': { + descriptionKey: 'error.file.rename.failed' + }, + '15': { + descriptionKey: 'error.file.open.failed' + }, + '16': { + descriptionKey: 'error.file.create.failed' + }, + '17': { + descriptionKey: 'error.io.error' + }, + '18': { + descriptionKey: 'error.directory.create.failed' + }, + '19': { + descriptionKey: 'error.name.resolution.failed' + }, + '20': { + descriptionKey: 'error.metalink.file.parse.failed' + }, + '21': { + descriptionKey: 'error.ftp.command.failed' + }, + '22': { + descriptionKey: 'error.http.response.header.bad' + }, + '23': { + descriptionKey: 'error.redirects.toomany' + }, + '24': { + descriptionKey: 'error.http.authorization.failed' + }, + '25': { + descriptionKey: 'error.bencoded.file.parse.failed' + }, + '26': { + descriptionKey: 'error.torrent.file.corrupted' + }, + '27': { + descriptionKey: 'error.magnet.uri.bad' + }, + '28': { + descriptionKey: 'error.option.bad' + }, + '29': { + descriptionKey: 'error.server.overload' + }, + '30': { + descriptionKey: 'error.rpc.request.parse.failed' + }, + //'31': { }, //Reserved. Not used. + '32': { + descriptionKey: 'error.checksum.failed' + } + }); +}()); diff --git a/src/scripts/config/defaultLanguage.js b/src/scripts/config/defaultLanguage.js index 63e4738..860b6e1 100644 --- a/src/scripts/config/defaultLanguage.js +++ b/src/scripts/config/defaultLanguage.js @@ -160,6 +160,38 @@ 'Input number is above max value!': 'Input number is above max value {{value}}!', 'Input value is invalid!': 'Input value is invalid!', 'Tap to configure and get started with AriaNg.': 'Tap to configure and get started with AriaNg.', + 'error': { + 'unknown': 'Unknown error occurred.', + 'operation.timeout': 'Operation timed out.', + 'resource.notfound': 'Resource was not found.', + 'error.resource.notfound.max-file-not-found': 'Resource was not found. See --max-file-not-found option.', + 'error.download.aborted.lowest-speed-limit': 'Download is aborted because download speed was too slow. See --lowest-speed-limit option.', + 'network.problem': 'Network problem occurred.', + 'resume.notsupported': 'Remote server does not support resume.', + 'space.notenough': 'There was not enough disk space available.', + 'piece.length.different': 'Piece length was different from one in .aria2 control file. See --allow-piece-length-change option.', + 'download.sametime': 'aria2 was downloading same file at that moment.', + 'download.torrent.sametime': 'aria2 was downloading same file at that moment.', + 'file.exists': 'File already existed. See --allow-overwrite option.', + 'file.rename.failed': 'Failed to rename file. See --auto-file-renaming option.', + 'file.open.failed': 'Failed to open existing file.', + 'file.create.failed': 'Failed to create new file or truncate existing file.', + 'io.error': 'Filesystem error occurred.', + 'directory.create.failed': 'Failed to create directory.', + 'name.resolution.failed': 'Failed to resolve domain name.', + 'metalink.file.parse.failed': 'Failed to parse Metalink document.', + 'ftp.command.failed': 'FTP command failed.', + 'http.response.header.bad': 'HTTP response header was bad or unexpected.', + 'redirects.toomany': 'Too many redirects occurred.', + 'http.authorization.failed': 'HTTP authorization failed.', + 'bencoded.file.parse.failed': 'Failed to parse bencoded file (usually ".torrent" file).', + 'torrent.file.corrupted': 'The ".torrent" file was corrupted or missing information that aria2 needed.', + 'magnet.uri.bad': 'Magnet URI was bad.', + 'option.bad': 'Bad/unrecognized option was given or unexpected option argument was given.', + 'server.overload': 'The remote server was unable to handle the request due to a temporary overloading or maintenance.', + 'rpc.request.parse.failed': 'Failed to parse JSON-RPC request.', + 'checksum.failed': 'Checksum validation failed.' + }, 'format': { 'longdate': 'MM/DD/YYYY HH:mm:ss', 'time.millisecond': '{{value}} Millisecond', diff --git a/src/scripts/services/aria2TaskService.js b/src/scripts/services/aria2TaskService.js index 4c33479..8138b0a 100644 --- a/src/scripts/services/aria2TaskService.js +++ b/src/scripts/services/aria2TaskService.js @@ -1,7 +1,7 @@ (function () { 'use strict'; - angular.module('ariaNg').factory('aria2TaskService', ['$q', '$translate', 'bittorrentPeeridService', 'aria2RpcService', 'ariaNgCommonService', function ($q, $translate, bittorrentPeeridService, aria2RpcService, ariaNgCommonService) { + angular.module('ariaNg').factory('aria2TaskService', ['$q', '$translate', 'bittorrentPeeridService', 'aria2Errors', 'aria2RpcService', 'ariaNgCommonService', function ($q, $translate, bittorrentPeeridService, aria2Errors, aria2RpcService, ariaNgCommonService) { var getFileName = function (file) { if (!file) { return ''; @@ -31,7 +31,7 @@ }; var getTaskName = function (task) { - var taskName = ""; + var taskName = ''; var success = true; if (task.bittorrent && task.bittorrent.info) { @@ -53,6 +53,22 @@ }; }; + var getTaskErrorDescription = function (task) { + if (!task.errorCode) { + return ''; + } + + if (!aria2Errors[task.errorCode] || !aria2Errors[task.errorCode].descriptionKey) { + return ''; + } + + if (aria2Errors[task.errorCode].hide) { + return ''; + } + + return aria2Errors[task.errorCode].descriptionKey; + }; + var getPieceStatus = function (bitField, pieceCount) { var pieces = []; @@ -134,6 +150,8 @@ task.taskName = taskNameResult.name; task.hasTaskName = taskNameResult.success; + task.errorDescription = getTaskErrorDescription(task); + if (task.files) { var selectedFileCount = 0; diff --git a/src/views/task-detail.html b/src/views/task-detail.html index 73e8454..f40aa35 100644 --- a/src/views/task-detail.html +++ b/src/views/task-detail.html @@ -46,14 +46,16 @@
+
-
+
Error Description
- +