Merge pull request #930 from cshore-firmware/pull-request-fix-webadmin
authorDaniel Dickinson <cshoredaniel@users.noreply.github.com>
Tue, 10 Jan 2017 22:19:55 +0000 (17:19 -0500)
committerGitHub <noreply@github.com>
Tue, 10 Jan 2017 22:19:55 +0000 (17:19 -0500)
base: webadmin: Don't take substring of nil variable

23 files changed:
applications/luci-app-fwknopd/luasrc/model/cbi/fwknopd.lua
applications/luci-app-fwknopd/luasrc/view/fwknopd-qr.htm
applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd
applications/luci-app-fwknopd/root/usr/sbin/gen-qr.sh
applications/luci-app-olsr/luasrc/controller/olsr.lua
applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm
applications/luci-app-privoxy/po/zh-cn/privoxy.po
applications/luci-app-shairplay/po/ja/shairplay.po [new file with mode: 0644]
applications/luci-app-shairplay/po/templates/shairplay.pot [new file with mode: 0644]
applications/luci-app-travelmate/po/ja/travelmate.po [new file with mode: 0644]
applications/luci-app-uhttpd/po/ja/uhttpd.po [new file with mode: 0644]
applications/luci-app-uhttpd/po/templates/uhttpd.pot [new file with mode: 0644]
applications/luci-app-upnp/po/ja/upnp.po
applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua
applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua
applications/luci-app-wifischedule/po/ja/wifischedule.po
applications/luci-app-wifischedule/po/templates/wifischedule.pot
applications/luci-app-wifischedule/po/zh-cn/wifischedule.po [new file with mode: 0644]
collections/luci-ssl-openssl/Makefile
contrib/package/community-profiles/files/etc/config/profile_berlin
modules/luci-base/Makefile
modules/luci-base/po/zh-cn/base.po
themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css

index 096724f..4358374 100644 (file)
@@ -1,19 +1,19 @@
 -- Copyright 2015 Jonathan Bennett <jbennett@incomsystems.biz>
 -- Licensed to the public under the GNU General Public License v2.
-
+tmp = 0
 m = Map("fwknopd", translate("Firewall Knock Operator"))
 
 s = m:section(TypedSection, "global", translate("Enable Uci/Luci control")) -- Set uci control on or off
 s.anonymous=true
 s:option(Flag, "uci_enabled", translate("Enable config overwrite"), translate("When unchecked, the config files in /etc/fwknopd will be used as is, ignoring any settings here."))
-qr = s:option(DummyValue, "note0", "dummy")
-qr.template = "fwknopd-qr"
-qr:depends("uci_enabled", "1")
 
 s = m:section(TypedSection, "access", translate("access.conf stanzas")) -- set the access.conf settings
 s.anonymous=true
 s.addremove=true
-s.dynamic=true
+qr = s:option(DummyValue, "note0", "dummy")
+qr.tmp = tmp
+qr.template = "fwknopd-qr"
+qr:depends("uci_enabled", "1")
 s:option(Value, "SOURCE", "SOURCE", translate("Use ANY for any source ip"))
 k1 = s:option(Value, "KEY", "KEY", translate("Define the symmetric key used for decrypting an incoming SPA packet that is encrypted by the fwknop client with Rijndael."))
 k1:depends("keytype", translate("Normal Key"))
@@ -40,15 +40,13 @@ s:option(Value, "REQUIRE_SOURCE_ADDRESS", "REQUIRE_SOURCE_ADDRESS", translate("F
                                        This makes it impossible to use the -s command line argument on the fwknop client command line, so either -R \
                                        has to be used to automatically resolve the external address (if the client behind a NAT) or the client must \
                                        know the external IP and set it via the -a argument."))
-s:option(DummyValue, "note1", translate("Enter custom access.conf variables below:"))
 
 s = m:section(TypedSection, "config", translate("fwknopd.conf config options")) 
 s.anonymous=true
-s.dynamic=true
 s:option(Value, "MAX_SPA_PACKET_AGE", "MAX_SPA_PACKET_AGE", translate("Maximum age in seconds that an SPA packet will be accepted. defaults to 120 seconds"))
 s:option(Value, "PCAP_INTF", "PCAP_INTF", translate("Specify the ethernet interface on which fwknopd will sniff packets."))
 s:option(Value, "ENABLE_IPT_FORWARDING", "ENABLE_IPT_FORWARDING", translate("Allow SPA clients to request access to services through an iptables firewall instead of just to it."))
-s:option(DummyValue, "note2", translate("Enter custom fwknopd.conf variables below:"))
+s:option(Value, "ENABLE_NAT_DNS", "ENABLE_NAT_DNS", translate("Allow SPA clients to request forwarding destination by DNS name."))
 
 return m
 
index 9e6e818..5773f52 100644 (file)
@@ -1 +1,2 @@
-<% print(luci.sys.exec("sh /usr/sbin/gen-qr.sh")) %>
+<% print(luci.sys.exec("sh /usr/sbin/gen-qr.sh " .. self.tmp)) %>
+<% self.tmp = self.tmp + 1 %>
index 01b85de..65ef012 100644 (file)
@@ -16,6 +16,7 @@ uci set fwknopd.@access[0].hkeytype='Base 64 key'
 uci set fwknopd.@access[0].KEY_BASE64=`fwknopd --key-gen | awk '/^KEY/ {print $2;}'`
 uci set fwknopd.@access[0].HMAC_KEY_BASE64=`fwknopd --key-gen | awk '/^HMAC/ {print $2;}'`
 uci set fwknopd.@config[0].ENABLE_IPT_FORWARDING='y'
+uci set fwknopd.@config[0].ENABLE_NAT_DNS='y'
 
 uci commit fwknopd
 rm -f /tmp/luci-indexcache
index 97493da..abca5d3 100644 (file)
@@ -1,9 +1,13 @@
 #!/bin/sh
+entry_num=0
+if [ "$1" != "" ]; then
+entry_num=$1
+fi
 
-key_base64=$(uci get fwknopd.@access[0].KEY_BASE64)
-key=$(uci get fwknopd.@access[0].KEY)
-hmac_key_base64=$(uci get fwknopd.@access[0].HMAC_KEY_BASE64)
-hmac_key=$(uci get fwknopd.@access[0].HMAC_KEY)
+key_base64=$(uci get fwknopd.@access[$entry_num].KEY_BASE64)
+key=$(uci get fwknopd.@access[$entry_num].KEY)
+hmac_key_base64=$(uci get fwknopd.@access[$entry_num].HMAC_KEY_BASE64)
+hmac_key=$(uci get fwknopd.@access[$entry_num].HMAC_KEY)
 
 if [ $key_base64 != "" ]; then
 qr="KEY_BASE64:$key_base64"
index 9a997bd..0564bd4 100644 (file)
@@ -87,8 +87,8 @@ function action_json()
        local v4_port = uci:get("olsrd", "olsrd_jsoninfo", "port") or 9090
        local v6_port = uci:get("olsrd6", "olsrd_jsoninfo", "port") or 9090
 
-       jsonreq4 = utl.exec("(echo /status | nc 127.0.0.1 " .. v4_port .. ") 2>/dev/null" )
-       jsonreq6 = utl.exec("(echo /status | nc ::1 " .. v6_port .. ") 2>/dev/null")
+       jsonreq4 = utl.exec("(echo /status | nc 127.0.0.1 " .. v4_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null" )
+       jsonreq6 = utl.exec("(echo /status | nc ::1 " .. v6_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null")
        http.prepare_content("application/json")
        if not jsonreq4 or jsonreq4 == "" then
                jsonreq4 = "{}"
@@ -375,8 +375,8 @@ function fetch_jsoninfo(otable)
        local v4_port = uci:get("olsrd", "olsrd_jsoninfo", "port") or 9090
        local v6_port = uci:get("olsrd6", "olsrd_jsoninfo", "port") or 9090
 
-       jsonreq4 = utl.exec("(echo /" .. otable .. " | nc 127.0.0.1 " .. v4_port .. ") 2>/dev/null")
-       jsonreq6 = utl.exec("(echo /" .. otable .. " | nc ::1 " .. v6_port .. ") 2>/dev/null")
+       jsonreq4 = utl.exec("(echo /" .. otable .. " | nc 127.0.0.1 " .. v4_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null")
+       jsonreq6 = utl.exec("(echo /" .. otable .. " | nc ::1 " .. v6_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null")
        local jsondata4 = {}
        local jsondata6 = {}
        local data4 = {}
index 31dd7d0..c077c20 100644 (file)
@@ -12,8 +12,8 @@ local i = 1
 if luci.http.formvalue("status") == "1" then
        local rv = {}
        for k, link in ipairs(links) do
-               link.linkCost = tonumber(link.linkCost)/1024 or 0
-               if link.linkCost == 4096 then
+               link.linkCost = tonumber(link.linkCost) or 0
+               if link.linkCost == 4194304 then
                        link.linkCost = 0
                end
                local color = olsrtools.etx_color(link.linkCost)
@@ -129,8 +129,8 @@ end
                <tbody id="olsr_neigh_table">
                <%      local i = 1
                        for k, link in ipairs(links) do
-                       link.linkCost = tonumber(link.linkCost)/1024 or 0
-                       if link.linkCost == 4096 then
+                       link.linkCost = tonumber(link.linkCost) or 0
+                       if link.linkCost == 4194304 then
                                link.linkCost = 0
                        end
 
index 75d1a92..778422b 100644 (file)
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: luci-app-privoxy\n"
 "POT-Creation-Date: 2015-06-10 20:16+0100\n"
-"PO-Revision-Date: 2015-06-10 20:16+0100\n"
+"PO-Revision-Date: 2017-01-05 18:01+0800\n"
 "Last-Translator: maz-1 <ohmygod19993 at gmail dotcom>\n"
 "Language-Team: \n"
-"Language: zh-cn\n"
+"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.8.11\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
@@ -21,10 +21,10 @@ msgstr "当用户试图访问不受信任的页面时,错误页面所显示的
 msgid ""
 "A URL to documentation about the local Privoxy setup, configuration or "
 "policies."
-msgstr "指向Privoxy安装、设置和规则说明文档的URL"
+msgstr "指向 Privoxy 安装、设置和规则说明文档的 URL"
 
 msgid "A directory where Privoxy can create temporary files."
-msgstr "Privoxy存放临时文件的目录。"
+msgstr "Privoxy 存放临时文件的目录。"
 
 msgid "Access Control"
 msgstr "访问控制"
@@ -36,18 +36,18 @@ msgid "An alternative directory where the templates are loaded from."
 msgstr "可选的目录,放在里面的模板会被加载。"
 
 msgid "An email address to reach the Privoxy administrator."
-msgstr "用于联系privoxy管理员的邮箱地址。"
+msgstr "用于联系 Privoxy 管理员的邮箱地址。"
 
 msgid ""
 "Assumed server-side keep-alive timeout (in seconds) if not specified by the "
 "server."
-msgstr "当服务端没有指定超时时间时假定的超时时间(单位秒)。"
+msgstr "当服务端没有指定超时时间时假定的超时时间(单位秒)。"
 
 msgid "Boot delay"
-msgstr ""
+msgstr "启动延时"
 
 msgid "CGI user interface"
-msgstr "CGI用户界面"
+msgstr "CGI 用户界面"
 
 msgid "Common Log Format"
 msgstr "通用日志格式"
@@ -57,14 +57,14 @@ msgid ""
 "proxies. Note that parent proxies can severely decrease your privacy level. "
 "Also specified here are SOCKS proxies."
 msgstr ""
-"在这里设置http请求所经过的多重代理链。注意父级代理可能严重降低你的隐私安全"
-"度ã\80\82å\9c¨è¿\99é\87\8cè¿\98å\8f¯ä»¥è®¾ç½®SOCKS代理。"
+"在这里设置 HTTP 请求所经过的多重代理链。注意:父级代理可能严重降低你的隐私安"
+"å\85¨åº¦ã\80\82å\9c¨è¿\99é\87\8cè¿\98å\8f¯ä»¥è®¾ç½® SOCKS 代理。"
 
 msgid "Debug GIF de-animation"
 msgstr "GIF动画日志"
 
 msgid "Debug force feature"
-msgstr "force feature日志"
+msgstr "Force feature 日志"
 
 msgid "Debug redirects"
 msgstr "重定向日志"
@@ -73,7 +73,7 @@ msgid "Debug regular expression filters"
 msgstr "正则表达式日志"
 
 msgid "Delay (in seconds) during system boot before Privoxy start"
-msgstr ""
+msgstr "Privoxy 自启动延迟时间(单位:秒)"
 
 msgid "Directory does not exist!"
 msgstr "目录不存在!"
@@ -82,20 +82,20 @@ msgid "Disabled == Transparent Proxy Mode"
 msgstr "禁用 == 透明代理模式"
 
 msgid "Documentation"
-msgstr ""
+msgstr "记录信息"
 
 msgid "During delay ifup-events are not monitored !"
-msgstr ""
+msgstr "在延迟期间无法检测到 ifup 事件!"
 
 msgid "Enable proxy authentication forwarding"
 msgstr "允许转发代理认证"
 
 msgid ""
 "Enable/Disable autostart of Privoxy on system startup and interface events"
-msgstr "开启/关闭Privoxy在系统启动或者设置界面更改时自动启动。"
+msgstr "开启/关闭 Privoxy 在系统启动或接口事件时自动启动。"
 
 msgid "Enable/Disable filtering when Privoxy starts."
-msgstr "Privoxy启动时开启/关闭过滤。"
+msgstr "Privoxy 启动时开启/关闭过滤。"
 
 msgid "Enabled"
 msgstr "已开启"
@@ -103,10 +103,10 @@ msgstr "已开启"
 msgid ""
 "Enabling this option is NOT recommended if there is no parent proxy that "
 "requires authentication!"
-msgstr "父级代理不需要认证时不推荐开启这个选项!"
+msgstr "如果没有需要认证的父级代理时,不推荐开启这个选项!"
 
 msgid "File '%s' not found inside Configuration Directory"
-msgstr "文件 '%s' 没有在设置目录中找到!"
+msgstr "在设置目录中未找到文件 '%S'!"
 
 msgid "File not found or empty"
 msgstr "文件不存在或为空"
@@ -115,7 +115,7 @@ msgid "Files and Directories"
 msgstr "文件和目录"
 
 msgid "For help use link at the relevant option"
-msgstr "在相应选项下的连接可获取帮助。"
+msgstr "点击相应选项的连接可获取帮助。"
 
 msgid "Forwarding"
 msgstr "转发"
@@ -123,15 +123,15 @@ msgstr "转发"
 msgid ""
 "If enabled, Privoxy hides the 'go there anyway' link. The user obviously "
 "should not be able to bypass any blocks."
-msgstr "如果启用,Privoxy会隐藏'go there anyway'链接。用户显然不应能绕过屏蔽。"
+msgstr "如果启用,Privoxy 会隐藏 'go there anyway' 链接,用户就不能绕过屏蔽。"
 
 msgid ""
 "If you intend to operate Privoxy for more users than just yourself, it might "
 "be a good idea to let them know how to reach you, what you block and why you "
 "do that, your policies, etc."
 msgstr ""
-"如果除了你还有其他用户通过privoxy连接,让他们知道如何联系你、什么内容被屏蔽"
-"äº\86ã\80\81你为ä»\80ä¹\88è¦\81è¿\99ä¹\88å\81\9aã\80\81ä½ æ\89\80å\88¶å®\9aç\9a\84è§\84è\8c\83ç­\89ç­\89æ\98¯ä¸\80个好主æ\84\8f。"
+"如果除了你还有其他用户使用 Privoxy 连接,最好让他们知道如何联系你,你屏蔽什"
+"ä¹\88ï¼\8c你为ä»\80ä¹\88è¿\99æ ·å\81\9aï¼\8cä½ ç\9a\84æ\94¿ç­\96ç­\89ç­\89。"
 
 msgid "Invalid email address"
 msgstr "邮箱地址无效"
@@ -140,29 +140,29 @@ msgid "It is NOT recommended for the casual user."
 msgstr "不推荐新手使用。"
 
 msgid "Location of the Privoxy User Manual."
-msgstr "Privoxy用户手册位置"
+msgstr "Privoxy 用户手册位置"
 
 msgid "Log File Viewer"
 msgstr "日志查看器"
 
 msgid "Log all data read from the network"
-msgstr "记录所有从网络接收的数据"
+msgstr "记录所有接收的网络数据"
 
 msgid "Log all data written to the network"
-msgstr "è®°å½\95æ\89\80æ\9c\89å\8f\91é\80\81ç»\99ç½\91ç»\9cç\9a\84数据"
+msgstr "è®°å½\95æ\89\80æ\9c\89å\8f\91é\80\81ç\9a\84ç½\91ç»\9c数据"
 
 msgid "Log the applying actions"
-msgstr "记录被应用的规则"
+msgstr "记录配置保存动作"
 
 msgid ""
 "Log the destination for each request Privoxy let through. See also 'Debug "
 "1024'."
-msgstr "记录Privoxy所允许的所有请求。另请参考'Debug 1024'。"
+msgstr "记录 Privoxy 允许的所有请求。另请参考 'Debug 1024'。"
 
 msgid ""
 "Log the destination for requests Privoxy didn't let through, and the reason "
 "why."
-msgstr "记录被Privoxy拒绝的请求目标以及拒绝原因。"
+msgstr "记录 Privoxy 拒绝的请求目标以及拒绝原因。"
 
 msgid "Logging"
 msgstr "日志"
@@ -198,40 +198,40 @@ msgid "Maximum number of client connections that will be served."
 msgstr "客户端数量上限。"
 
 msgid "Maximum size (in KB) of the buffer for content filtering."
-msgstr "内容过滤的最大缓冲(单位KB)。"
+msgstr "内容过滤的最大缓冲(单位KB)。"
 
 msgid "Miscellaneous"
 msgstr "杂项"
 
 msgid "NOT installed"
-msgstr ""
+msgstr "未安装"
 
 msgid "No trailing '/', please."
-msgstr "路径结尾不要加'/' ."
+msgstr "路径结尾不要加 '/' 。"
 
 msgid "Non-fatal errors - *we highly recommended enabling this*"
-msgstr "非致命性错误 - * 建议开启 *"
+msgstr "é\9d\9eè\87´å\91½æ\80§é\94\99误 - * å¼ºç\83\88建议å¼\80å\90¯ *"
 
 msgid ""
 "Number of seconds after which a socket times out if no data is received."
-msgstr "socket连接未收到数据的超时时间。"
+msgstr "Socket 连接未收到数据的超时时间。"
 
 msgid ""
 "Number of seconds after which an open connection will no longer be reused."
-msgstr "一个开放的连接不再重复使用的超时时间。"
+msgstr "开放的连接不再重复使用的超时时间。"
 
 msgid ""
 "Only when using 'external filters', Privoxy has to create temporary files."
-msgstr "只有使用外置规则时,privoxy才需要创建临时文件。"
+msgstr "只有使用外置规则时,Privoxy 才需要创建临时文件。"
 
 msgid "Please install current version !"
-msgstr ""
+msgstr "请安装当前版本!"
 
 msgid "Please press [Read] button"
-msgstr "请点击[读取]按钮"
+msgstr "请点击 [读取] 按钮"
 
 msgid "Please read Privoxy manual for details!"
-msgstr "请阅读Privoxy手册以了解详情!"
+msgstr "请阅读 Privoxy 手册以了解详情!"
 
 msgid "Please update to the current version!"
 msgstr "请升级到当前版本!"
@@ -244,16 +244,16 @@ msgid ""
 "configuration, help and logging. This section of the configuration file "
 "tells Privoxy where to find those other files."
 msgstr ""
-"Privoxy可以使用其他一些文件用于附加设置,帮助和日志。这个区域用来告诉Privoxy"
-"从哪里找到这些文件。"
+"Privoxy 可以使用其他一些文件用于附加设置,帮助和日志。这个区域用来告诉 "
+"Privoxy 从哪里找到这些文件。"
 
 msgid ""
 "Privoxy is a non-caching web proxy with advanced filtering capabilities for "
 "enhancing privacy, modifying web page data and HTTP headers, controlling "
 "access, and removing ads and other obnoxious Internet junk."
 msgstr ""
-"Privoxy是一个无缓存的网络代理,具有高级过滤功能,能够修改网页数据和HTTP头,控"
-"制访问,移除广告等。"
+"Privoxy 是一个无缓存的网络代理,具有高级过滤功能,能够修改网页数据和 HTTP 请"
+"求头,控制访问,移除广告等。"
 
 msgid "Read / Reread log file"
 msgstr "读取/刷新日志文件"
@@ -265,13 +265,13 @@ msgid "Show each connection status"
 msgstr "显示每个连接的状态"
 
 msgid "Show header parsing"
-msgstr "Show header parsing"
+msgstr "显示请求头 解析"
 
 msgid "Software package '%s' is not installed."
-msgstr ""
+msgstr "软件包 '%s' 未安装"
 
 msgid "Software package '%s' is outdated."
-msgstr ""
+msgstr "软件包 '%s' 已过时"
 
 msgid "Start"
 msgstr "启动"
@@ -289,7 +289,7 @@ msgid "Syntax:"
 msgstr "格式:"
 
 msgid "Syntax: Client header names delimited by spaces."
-msgstr "格式: Client header names delimited by spaces."
+msgstr "格式: 由空格分隔的客户端请求头名称。"
 
 msgid "Syntax: target_pattern http_parent[:port]"
 msgstr "格式: target_pattern http_parent[:port]"
@@ -298,7 +298,7 @@ msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
 msgstr "格式: target_pattern socks_proxy[:port] http_parent[:port]"
 
 msgid "System"
-msgstr ""
+msgstr "系统"
 
 msgid ""
 "The actions file(s) to use. Multiple actionsfile lines are permitted, and "
@@ -307,12 +307,12 @@ msgstr "所使用的规则文件。允许并且推荐使用多个规则文件。
 
 msgid ""
 "The address and TCP port on which Privoxy will listen for client requests."
-msgstr "Privoxy接收客户端请求时监听的地址和TCP端口。"
+msgstr "Privoxy 接收客户端请求时监听的地址和 TCP 端口。"
 
 msgid ""
 "The compression level that is passed to the zlib library when compressing "
 "buffered content."
-msgstr "使用zlib压缩缓冲内容时的压缩级别。"
+msgstr "使用 zlib 压缩缓冲内容时的压缩级别。"
 
 msgid ""
 "The directory where all logging takes place (i.e. where the logfile is "
@@ -334,14 +334,14 @@ msgid "The log file to use. File name, relative to log directory."
 msgstr "日志文件名称,与日志路径相对。"
 
 msgid "The order in which client headers are sorted before forwarding them."
-msgstr "转发数据前,client headers的排序。"
+msgstr "转发数据前,客户端请求头的排序。"
 
 msgid ""
 "The status code Privoxy returns for pages blocked with +handle-as-empty-"
 "document."
 msgstr ""
-"当页面因为handle-as-empty-document规则被阻止时返回的状态码(选上为200 OK,不"
-"选上为403 Forbidden)"
+"当页面因为 handle-as-empty-document 规则被阻止时返回的状态码(选上为 200 OK,"
+"不选上为 403 Forbidden)"
 
 msgid ""
 "The trust mechanism is an experimental feature for building white-lists and "
@@ -361,19 +361,20 @@ msgstr "这个选项仅用于调试,开启后会极大地降低性能。"
 msgid ""
 "This option will be removed in future releases as it has been obsoleted by "
 "the more general header taggers."
-msgstr "这个选项在以后的版本中将被移除,因为它被header taggers所取代了。"
+msgstr "这个选项在以后的版本中将被移除,因为它被 header taggers 所取代了。"
 
 msgid ""
 "This tab controls the security-relevant aspects of Privoxy's configuration."
-msgstr "这个标签用于设置与安全相关的Privoxy选项。"
+msgstr "这个标签用于设置与安全相关的 Privoxy 选项。"
 
 msgid ""
 "Through which SOCKS proxy (and optionally to which parent HTTP proxy) "
 "specific requests should be routed."
-msgstr "指定的请求应该通过哪一个SOCKS代理(并且通过哪一个HTTP父代理,可选)"
+msgstr ""
+"指定的请求应该通过哪一个 SOCKS 代理(并且通过哪一个 HTTP 父代理,可选)"
 
 msgid "To which parent HTTP proxy specific requests should be routed."
-msgstr "请求应转发至哪一个父级HTTP代理。"
+msgstr "请求应转发至哪一个父级 HTTP 代理。"
 
 msgid "User customizations"
 msgstr "用户自定义"
@@ -382,10 +383,10 @@ msgid "Value is not a number"
 msgstr "输入值不是数字"
 
 msgid "Value not between 0 and 300"
-msgstr ""
+msgstr "输入值不在0和300之间"
 
 msgid "Value not between 0 and 9"
-msgstr "输入值不在0和9之间"
+msgstr "输入值不在0和9之间"
 
 msgid "Value not between 1 and 4096"
 msgstr "输入值不在1和4096之间"
@@ -408,7 +409,7 @@ msgstr "被拦截的请求是否应被当作有效的。"
 msgid ""
 "Whether or not Privoxy recognizes special HTTP headers to change toggle "
 "state."
-msgstr "Privoxy是否识别特殊的HTTP头以切换状态。"
+msgstr "Privoxy 是否识别特殊的 HTTP 请求头以切换状态。"
 
 msgid "Whether or not buffered content is compressed before delivery."
 msgstr "缓冲内容在传递之前是否压缩。"
@@ -422,7 +423,7 @@ msgid "Whether or not pipelined requests should be served."
 msgstr "是否处理管道化的请求。"
 
 msgid "Whether or not proxy authentication through Privoxy should work."
-msgstr "是否可以通过Privoxy进行代理验证。"
+msgstr "是否可以通过 Privoxy 进行代理验证。"
 
 msgid "Whether or not the web-based actions file editor may be used."
 msgstr "是否使用基于网页的规则编辑器。"
@@ -431,11 +432,11 @@ msgid "Whether or not the web-based toggle feature may be used."
 msgstr "是否启用基于网页的切换功能。"
 
 msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected."
-msgstr "访问Privoxy CGI页面的请求是否可以被拦截或重定向。"
+msgstr "访问 Privoxy CGI 页面的请求是否可以被拦截或重定向。"
 
 msgid ""
 "Whether the CGI interface should stay compatible with broken HTTP clients."
-msgstr "CGI界面是否应兼容过时的HTTP客户端。"
+msgstr "CGI 界面是否应兼容过时的HTTP客户端。"
 
 msgid "Whether to run only one server thread."
 msgstr "是否只运行一个服务线程。"
diff --git a/applications/luci-app-shairplay/po/ja/shairplay.po b/applications/luci-app-shairplay/po/ja/shairplay.po
new file mode 100644 (file)
index 0000000..07fa7be
--- /dev/null
@@ -0,0 +1,54 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-01-03 15:06+0900\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Language-Team: \n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "AO Device ID"
+msgstr "オーディオ出力 デバイスID"
+
+msgid "AO Device Name"
+msgstr "オーディオ出力 デバイス名"
+
+msgid "AO Driver"
+msgstr "オーディオ出力 デバイスドライバー"
+
+msgid "Airport Name"
+msgstr "Airport名"
+
+msgid "Default"
+msgstr "デフォルト"
+
+msgid "Enabled"
+msgstr "有効"
+
+msgid "HW Address"
+msgstr "ハードウェア アドレス"
+
+msgid "Password"
+msgstr "パスワード"
+
+msgid "Port"
+msgstr "ポート"
+
+msgid "Respawn"
+msgstr "リスポーン"
+
+msgid "Shairplay"
+msgstr ""
+
+msgid ""
+"Shairplay is a simple AirPlay server implementation, here you can configure "
+"the settings."
+msgstr ""
+"Shairplayは、シンプルなAirPlay サーバー実装です。ここでは、設定を行うことがで"
+"きます。"
diff --git a/applications/luci-app-shairplay/po/templates/shairplay.pot b/applications/luci-app-shairplay/po/templates/shairplay.pot
new file mode 100644 (file)
index 0000000..b3da99e
--- /dev/null
@@ -0,0 +1,40 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "AO Device ID"
+msgstr ""
+
+msgid "AO Device Name"
+msgstr ""
+
+msgid "AO Driver"
+msgstr ""
+
+msgid "Airport Name"
+msgstr ""
+
+msgid "Default"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "HW Address"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Port"
+msgstr ""
+
+msgid "Respawn"
+msgstr ""
+
+msgid "Shairplay"
+msgstr ""
+
+msgid ""
+"Shairplay is a simple AirPlay server implementation, here you can configure "
+"the settings."
+msgstr ""
diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po
new file mode 100644 (file)
index 0000000..986d7b3
--- /dev/null
@@ -0,0 +1,72 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid ""
+"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
+"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
+"mode, assigned to wwan network, left as disabled). Travelmate will try to "
+"connect to the known wifi client interfaces in the defined order."
+msgstr ""
+"簡単な解説: 予めWWANインターフェースを作成し、DHCPを使用するよう構成してファ"
+"イアウォールのWANゾーンに追加します。また、使用される無線インターフェースを作"
+"成しておきます(\"クライアント\" モード、WWANに割り当て、無効状態)。"
+"Travelmateは、登録されている順序で既知の無線クライアント インターフェースへの"
+"接続を試行します。"
+
+msgid ""
+"Configuration of the Travelmate package to enable travel router "
+"functionality."
+msgstr "トラベル ルータ機能を有効にする、Travelmate パッケージの設定です。"
+
+msgid "Debug logging"
+msgstr "デバッグ ログ"
+
+msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
+msgstr "既定値 3、範囲 0 - 10。再試行回数を制限しない場合、0 に設定します。"
+
+msgid "Default 30, range 5-60"
+msgstr "既定値 30、範囲 5 - 60"
+
+msgid "Default: empty = use all radios."
+msgstr "デフォルト:(空)= 全ての無線を使用"
+
+msgid "Disable this if you want to use iwinfo instead of iw"
+msgstr "iw の代わりに iwinfo を使用したい場合、この設定を無効にします。"
+
+msgid "Enable Travelmate"
+msgstr "Travelmateの有効化"
+
+msgid "Extra options"
+msgstr "拡張オプション"
+
+msgid "Global options"
+msgstr "全般オプション"
+
+msgid "Link to detailed advice"
+msgstr "詳細な解説へのリンク"
+
+msgid "Loop timeout in seconds for wlan monitoring"
+msgstr "無線LAN モニターのループ タイムアウト(秒)"
+
+msgid "Max. number of connection retries to an uplink"
+msgstr "確立までの接続試行回数"
+
+msgid "Travelmate"
+msgstr "Travelmate"
+
+msgid "Use iw for scanning"
+msgstr "スキャンに iw を使用する"
+
+msgid "Use only one radio, e.g. 'radio0'"
+msgstr "単一の無線のみ使用する 例: 'radio0'"
diff --git a/applications/luci-app-uhttpd/po/ja/uhttpd.po b/applications/luci-app-uhttpd/po/ja/uhttpd.po
new file mode 100644 (file)
index 0000000..5729034
--- /dev/null
@@ -0,0 +1,213 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-01-01 18:11+0900\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Language-Team: \n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid ""
+"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
+msgstr ""
+"(/old/path=/new/path) または (just /old/path which becomes /cgi-prefix/old/"
+"path)"
+
+msgid "404 Error"
+msgstr "404 エラー"
+
+msgid "A lightweight single-threaded HTTP(S) server"
+msgstr "軽量なシングル スレッド HTTP(S) サーバーです。"
+
+msgid "Advanced Settings"
+msgstr "詳細設定"
+
+msgid "Aliases"
+msgstr "エイリアス"
+
+msgid "Base directory for files to be served"
+msgstr "サーバーがホストするファイルのベースディレクトリです。"
+
+msgid "Bind to specific interface:port (by specifying interface address"
+msgstr ""
+"インターフェースのアドレスを使用して、特定のインターフェースとポートに関連付"
+"けます。"
+
+msgid "CGI filetype handler"
+msgstr "CGIファイル形式 ハンドラー"
+
+msgid "CGI is disabled if not present."
+msgstr "指定しない場合、CGIは無効になります。"
+
+msgid "Config file (e.g. for credentials for Basic Auth)"
+msgstr "設定ファイル(例: 基本認証用の資格情報)"
+
+msgid "Connection reuse"
+msgstr "接続の再使用"
+
+msgid "Country"
+msgstr "国"
+
+msgid "Disable JSON-RPC authorization via ubus session API"
+msgstr "ubus セッションAPI経由のJSON-RPC認証を無効にする"
+
+msgid "Do not follow symlinks outside document root"
+msgstr "ドキュメント ルート外へのシンボリックリンクを追随しない"
+
+msgid "Do not generate directory listings."
+msgstr "ディレクトリの待ち受けを生成しない"
+
+msgid "Document root"
+msgstr "ドキュメント ルート"
+
+msgid "E.g specify with index.html and index.php when using PHP"
+msgstr "index.html や、PHPを使用しているときは index.php を設定します。"
+
+msgid "Embedded Lua interpreter is disabled if not present."
+msgstr "指定しない場合、組込みLua インタープリタは無効になります。"
+
+msgid "Enable JSON-RPC Cross-Origin Resource Support"
+msgstr ""
+
+msgid "For settings primarily geared to serving more than the web UI"
+msgstr "主に、Web UI以上のものを提供することを対象とした設定です。"
+
+msgid "Full Web Server Settings"
+msgstr "完全なWebサーバー設定"
+
+msgid "Full real path to handler for Lua scripts"
+msgstr "Lua スクリプトへの絶対パス"
+
+msgid "General Settings"
+msgstr "一般設定"
+
+msgid "HTTP listeners (address:port)"
+msgstr "HTTP 待ち受け(アドレス:ポート)"
+
+msgid "HTTPS Certificate (DER Encoded)"
+msgstr "HTTPS 証明書(DER エンコード)"
+
+msgid "HTTPS Private Key (DER Encoded)"
+msgstr "HTTPS 秘密鍵(DER エンコード)"
+
+msgid "HTTPS listener (address:port)"
+msgstr "HTTPS 待ち受け(アドレス:ポート)"
+
+msgid "Ignore private IPs on public interface"
+msgstr "公開側インターフェースでのプライベートIPを無視する"
+
+msgid "Index page(s)"
+msgstr "インデックス ページ"
+
+msgid ""
+"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
+"usr/bin/php-cgi')"
+msgstr ""
+"ファイル拡張子に関連付けるインタープリタです。('suffix=handler'、例: '.php=/"
+"usr/bin/php-cgi')"
+
+msgid "Length of key in bits"
+msgstr "鍵のビット数"
+
+msgid "Location"
+msgstr "場所"
+
+msgid "Maximum number of connections"
+msgstr "最大接続数"
+
+msgid "Maximum number of script requests"
+msgstr "スクリプトの最大リクエスト数"
+
+msgid "Maximum wait time for Lua, CGI, or ubus execution"
+msgstr "LuaやCGI、ubus実行の最大待機時間"
+
+msgid "Maximum wait time for network activity"
+msgstr "ネットワークアクティビティの最大待機時間"
+
+msgid "Override path for ubus socket"
+msgstr "ubus ソケットのパスを上書きする"
+
+msgid "Path prefix for CGI scripts"
+msgstr "CGI スクリプトのパスプレフィクス"
+
+msgid ""
+"Prevent access from private (RFC1918) IPs on an interface if it has an "
+"public IP address"
+msgstr ""
+"グローバル IPアドレスを持つインターフェースでは、プライベート IP (RFC1918) か"
+"らのアクセスをブロックします。"
+
+msgid "Realm for Basic Auth"
+msgstr "基本認証の領域名"
+
+msgid "Redirect all HTTP to HTTPS"
+msgstr "全てのHTTPをHTTPSにリダイレクトする"
+
+msgid "Remove configuration for certificate and key"
+msgstr "証明書と鍵の設定を削除する"
+
+msgid "Remove old certificate and key"
+msgstr "古い証明書と鍵を削除する"
+
+msgid "Server Hostname"
+msgstr "サーバー ホスト名"
+
+msgid ""
+"Settings which are either rarely needed or which affect serving the WebUI"
+msgstr "まれに必要とされる設定、またはWeb UIに影響する設定です。"
+
+msgid "State"
+msgstr "ステータス"
+
+msgid "TCP Keepalive"
+msgstr "TCP キープアライブ"
+
+msgid "This permanently deletes the cert, key, and configuration to use same."
+msgstr ""
+
+msgid "Valid for # of Days"
+msgstr "有効日数"
+
+msgid ""
+"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
+"with '/'"
+msgstr ""
+
+msgid "Virtual path prefix for Lua scripts"
+msgstr "Lua スクリプトへの仮想パスプレフィクス"
+
+msgid "Virtual path prefix for ubus via JSON-RPC integration"
+msgstr ""
+
+msgid "Will not use HTTP authentication if not present"
+msgstr "指定しない場合、HTTP 認証は使用されません。"
+
+msgid "a.k.a CommonName"
+msgstr "共通名"
+
+msgid "uHTTPd"
+msgstr "uHTTPd"
+
+msgid "uHTTPd Self-signed Certificate Parameters"
+msgstr "uHTTPd 自己署名証明書 パラメーター"
+
+msgid ""
+"uHTTPd will generate a new self-signed certificate using the configuration "
+"shown below."
+msgstr "uHTTPd は、以下に表示した設定で新しい自己署名証明書を生成します。"
+
+msgid "ubus integration is disabled if not present"
+msgstr ""
+
+#~ msgid ""
+#~ "Virtual URL or CGI script to display on status '404 Not Found'.  Must "
+#~ "begin with '/'"
+#~ msgstr ""
+#~ "'404 Not Found' ステータスを表示する、仮想URLまたはCGIスクリプトです。'/' "
+#~ "から始まる必要があります。"
diff --git a/applications/luci-app-uhttpd/po/templates/uhttpd.pot b/applications/luci-app-uhttpd/po/templates/uhttpd.pot
new file mode 100644 (file)
index 0000000..5503450
--- /dev/null
@@ -0,0 +1,186 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
+msgstr ""
+
+msgid "404 Error"
+msgstr ""
+
+msgid "A lightweight single-threaded HTTP(S) server"
+msgstr ""
+
+msgid "Advanced Settings"
+msgstr ""
+
+msgid "Aliases"
+msgstr ""
+
+msgid "Base directory for files to be served"
+msgstr ""
+
+msgid "Bind to specific interface:port (by specifying interface address"
+msgstr ""
+
+msgid "CGI filetype handler"
+msgstr ""
+
+msgid "CGI is disabled if not present."
+msgstr ""
+
+msgid "Config file (e.g. for credentials for Basic Auth)"
+msgstr ""
+
+msgid "Connection reuse"
+msgstr ""
+
+msgid "Country"
+msgstr ""
+
+msgid "Disable JSON-RPC authorization via ubus session API"
+msgstr ""
+
+msgid "Do not follow symlinks outside document root"
+msgstr ""
+
+msgid "Do not generate directory listings."
+msgstr ""
+
+msgid "Document root"
+msgstr ""
+
+msgid "E.g specify with index.html and index.php when using PHP"
+msgstr ""
+
+msgid "Embedded Lua interpreter is disabled if not present."
+msgstr ""
+
+msgid "Enable JSON-RPC Cross-Origin Resource Support"
+msgstr ""
+
+msgid "For settings primarily geared to serving more than the web UI"
+msgstr ""
+
+msgid "Full Web Server Settings"
+msgstr ""
+
+msgid "Full real path to handler for Lua scripts"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "HTTP listeners (address:port)"
+msgstr ""
+
+msgid "HTTPS Certificate (DER Encoded)"
+msgstr ""
+
+msgid "HTTPS Private Key (DER Encoded)"
+msgstr ""
+
+msgid "HTTPS listener (address:port)"
+msgstr ""
+
+msgid "Ignore private IPs on public interface"
+msgstr ""
+
+msgid "Index page(s)"
+msgstr ""
+
+msgid ""
+"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
+"usr/bin/php-cgi')"
+msgstr ""
+
+msgid "Length of key in bits"
+msgstr ""
+
+msgid "Location"
+msgstr ""
+
+msgid "Maximum number of connections"
+msgstr ""
+
+msgid "Maximum number of script requests"
+msgstr ""
+
+msgid "Maximum wait time for Lua, CGI, or ubus execution"
+msgstr ""
+
+msgid "Maximum wait time for network activity"
+msgstr ""
+
+msgid "Override path for ubus socket"
+msgstr ""
+
+msgid "Path prefix for CGI scripts"
+msgstr ""
+
+msgid ""
+"Prevent access from private (RFC1918) IPs on an interface if it has an "
+"public IP address"
+msgstr ""
+
+msgid "Realm for Basic Auth"
+msgstr ""
+
+msgid "Redirect all HTTP to HTTPS"
+msgstr ""
+
+msgid "Remove configuration for certificate and key"
+msgstr ""
+
+msgid "Remove old certificate and key"
+msgstr ""
+
+msgid "Server Hostname"
+msgstr ""
+
+msgid ""
+"Settings which are either rarely needed or which affect serving the WebUI"
+msgstr ""
+
+msgid "State"
+msgstr ""
+
+msgid "TCP Keepalive"
+msgstr ""
+
+msgid "This permanently deletes the cert, key, and configuration to use same."
+msgstr ""
+
+msgid "Valid for # of Days"
+msgstr ""
+
+msgid ""
+"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
+"with '/'"
+msgstr ""
+
+msgid "Virtual path prefix for Lua scripts"
+msgstr ""
+
+msgid "Virtual path prefix for ubus via JSON-RPC integration"
+msgstr ""
+
+msgid "Will not use HTTP authentication if not present"
+msgstr ""
+
+msgid "a.k.a CommonName"
+msgstr ""
+
+msgid "uHTTPd"
+msgstr ""
+
+msgid "uHTTPd Self-signed Certificate Parameters"
+msgstr ""
+
+msgid ""
+"uHTTPd will generate a new self-signed certificate using the configuration "
+"shown below."
+msgstr ""
+
+msgid "ubus integration is disabled if not present"
+msgstr ""
index 728befa..f0aff73 100644 (file)
@@ -17,8 +17,8 @@ msgid ""
 "ACLs specify which external ports may be redirected to which internal "
 "addresses and ports"
 msgstr ""
-"アクセス制御リスト(ACL) は、どの外部ポートからどの内部アドレス及びポートへ"
-"ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\81\99ã\82\8bã\81\8bã\82\92設å®\9aã\81\97ã\81¾ã\81\99ã\80\82"
+"アクセス制御リスト(ACL) は、どの外部ポートからどの内部アドレス及びポートへ"
+"ダイレクトするかを設定します。"
 
 msgid "Action"
 msgstr "動作"
@@ -129,8 +129,8 @@ msgid ""
 "UPnP allows clients in the local network to automatically configure the "
 "router."
 msgstr ""
-"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータ"
-"構成することができます。"
+"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータ"
+"構成することができます。"
 
 msgid "UPnP lease file"
 msgstr "UPnP リースファイル"
@@ -148,8 +148,8 @@ msgstr "クライアントへの情報提供のみに使用される、KByte/s
 #~ "UPNP allows clients in the local network to automatically configure the "
 #~ "router."
 #~ msgstr ""
-#~ "UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルー"
-#~ "ã\82¿ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82"
+#~ "UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルー"
+#~ "を構成することができます。"
 
 #~ msgid "enable"
 #~ msgstr "有効"
@@ -158,5 +158,5 @@ msgstr "クライアントへの情報提供のみに使用される、KByte/s
 #~ "UPNP should only be enabled if absolutely necessary as it can result in "
 #~ "high security risks for your network."
 #~ msgstr ""
-#~ "UPnPはあなたの使用するネットワークに対して、セキュリティリスクが生じる可"
-#~ "性があるため、必要な場合のみ有効にしてください。"
+#~ "UPnPはあなたの使用するネットワークに対して、セキュリティリスクが生じる可"
+#~ "性があるため、必要な場合のみ有効にしてください。"
index a33c7aa..261cf36 100644 (file)
 --
 -- Author: Nils Koenig <openwrt@newk.it>
 
-module("luci.controller.wifischedule.wifi_schedule", package.seeall)  
+module("luci.controller.wifischedule.wifi_schedule", package.seeall)
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+local template = require "luci.template"
+local i18n = require "luci.i18n"
 
 function index()
-     entry({"admin", "wifi_schedule"}, firstchild(), "Wifi Schedule", 60).dependent=false  
-     entry({"admin", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), "Schedule", 1)
-     entry({"admin", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), "View Logfile", 2) 
-     entry({"admin", "wifi_schedule", "cronjob"}, call("view_crontab"), "View Cron Jobs", 3) 
+    if not nixio.fs.access("/etc/config/wifi_schedule") then
+        return
+    end
+    entry({"admin", "services", "wifi_schedule"}, firstchild(), _("Wifi Schedule"), 60).dependent=false
+    entry({"admin", "services", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), _("Schedule"), 1)
+    entry({"admin", "services", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), _("View Logfile"), 2)
+    entry({"admin", "services", "wifi_schedule", "cronjob"}, call("view_crontab"), _("View Cron Jobs"), 3)
 end
 
 function wifi_schedule_log()
-        local logfile = luci.sys.exec("cat /tmp/log/wifi_schedule.log")
-        luci.template.render("wifischedule/file_viewer", {title="Wifi Schedule Logfile", content=logfile})
+    local logfile = fs.readfile("/tmp/log/wifi_schedule.log") or ""
+    template.render("wifischedule/file_viewer",
+        {title = i18n.translate("Wifi Schedule Logfile"), content = logfile})
 end
 
 function view_crontab()
-        local crontab = luci.sys.exec("cat /etc/crontabs/root")
-        luci.template.render("wifischedule/file_viewer", {title="Cron Jobs", content=crontab})
+    local crontab = fs.readfile("/etc/crontabs/root") or ""
+    template.render("wifischedule/file_viewer",
+        {title = i18n.translate("Cron Jobs"), content = crontab})
 end
index 2cca476..1d30121 100644 (file)
 --
 -- Author: Nils Koenig <openwrt@newk.it>
 
-function file_exists(name)
-   local f=io.open(name,"r")
-   if f~=nil then io.close(f) return true else return false end
-end
-
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
 
 function time_validator(self, value, desc)
     if value ~= nil then
-        
         h_str, m_str = string.match(value, "^(%d%d?):(%d%d?)$")
         h = tonumber(h_str)
         m = tonumber(m_str)
@@ -32,21 +28,21 @@ function time_validator(self, value, desc)
              m <= 59) then
             return value
         end
-    end 
-    return nil, translate("The value '" .. desc .. "' is invalid")
+    end
+    return nil, translatef("The value %s is invalid", desc)
 end
 
 -- -------------------------------------------------------------------------------------------------
 
 -- BEGIN Map
-m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi.")) 
+m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi."))
 function m.on_commit(self)
-    luci.sys.exec("/usr/bin/wifi_schedule.sh cron")
+    sys.exec("/usr/bin/wifi_schedule.sh cron")
 end
 -- END Map
 
 -- BEGIN Global Section
-global_section = m:section(TypedSection, "global", "Global Settings")
+global_section = m:section(TypedSection, "global", translate("Global Settings"))
 global_section.optional = false
 global_section.rmempty = false
 global_section.anonymous = true
@@ -54,13 +50,13 @@ global_section.anonymous = true
 
 -- BEGIN Global Enable Checkbox
 global_enable = global_section:option(Flag, "enabled", translate("Enable Wifi Schedule"))
-global_enable.optional=false; 
-global_enable.rmempty = false;
+global_enable.optional = false
+global_enable.rmempty = false
 
 function global_enable.validate(self, value, global_section)
     if value == "1" then
-        if ( file_exists("/sbin/wifi") and
-             file_exists("/usr/bin/wifi_schedule.sh") )then
+        if ( fs.access("/sbin/wifi") and
+             fs.access("/usr/bin/wifi_schedule.sh") )then
             return value
         else
             return nil, translate("Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi")
@@ -71,39 +67,38 @@ function global_enable.validate(self, value, global_section)
 end
 -- END Global Enable Checkbox
 
-
 -- BEGIN Global Logging Checkbox
 global_logging = global_section:option(Flag, "logging", translate("Enable logging"))
-global_logging.optional=false; 
-global_logging.rmempty = false;
+global_logging.optional = false
+global_logging.rmempty = false
 global_logging.default = 0
 -- END Global Enable Checkbox
 
 -- BEGIN Global Activate WiFi Button
 enable_wifi = global_section:option(Button, "enable_wifi", translate("Activate wifi"))
 function enable_wifi.write()
-    luci.sys.exec("/usr/bin/wifi_schedule.sh start manual")
+    sys.exec("/usr/bin/wifi_schedule.sh start manual")
 end
 -- END Global Activate Wifi Button
 
 -- BEGIN Global Disable WiFi Gracefully Button
 disable_wifi_gracefully = global_section:option(Button, "disable_wifi_gracefully", translate("Disable wifi gracefully"))
 function disable_wifi_gracefully.write()
-    luci.sys.exec("/usr/bin/wifi_schedule.sh stop manual")
+    sys.exec("/usr/bin/wifi_schedule.sh stop manual")
 end
--- END Global Disable Wifi Gracefully Button 
+-- END Global Disable Wifi Gracefully Button
 
 -- BEGIN Disable WiFi Forced Button
 disable_wifi_forced = global_section:option(Button, "disable_wifi_forced", translate("Disabled wifi forced"))
 function disable_wifi_forced.write()
-    luci.sys.exec("/usr/bin/wifi_schedule.sh forcestop manual")
+    sys.exec("/usr/bin/wifi_schedule.sh forcestop manual")
 end
 -- END Global Disable WiFi Forced Button
 
 -- BEGIN Global Unload Modules Checkbox
 global_unload_modules = global_section:option(Flag, "unload_modules", translate("Unload Modules (experimental; saves more power)"))
-global_unload_modules.optional = false;
-global_unload_modules.rmempty = false;
+global_unload_modules.optional = false
+global_unload_modules.rmempty = false
 global_unload_modules.default = 0
 -- END Global Unload Modules Checkbox
 
@@ -111,13 +106,13 @@ global_unload_modules.default = 0
 -- BEGIN Modules
 modules = global_section:option(TextValue, "modules", "")
 modules:depends("unload_modules", global_unload_modules.enabled);
-modules.wrap    = "off"
-modules.rows    = 10
+modules.wrap = "off"
+modules.rows = 10
 
 function modules.cfgvalue(self, section)
-    mod=uci.get("wifi_schedule", section, "modules")
+    mod = uci.get("wifi_schedule", section, "modules")
     if mod == nil then
-        mod=""
+        mod = ""
     end
     return mod:gsub(" ", "\r\n")
 end
@@ -131,45 +126,44 @@ function modules.write(self, section, value)
 end
 -- END Modules
 
--- BEGIN Determine Modules 
+-- BEGIN Determine Modules
 determine_modules = global_section:option(Button, "determine_modules", translate("Determine Modules Automatically"))
 determine_modules:depends("unload_modules", global_unload_modules.enabled);
 function determine_modules.write(self, section)
-    output = luci.sys.exec("/usr/bin/wifi_schedule.sh getmodules")
+    output = sys.exec("/usr/bin/wifi_schedule.sh getmodules")
     modules:write(section, output)
 end
 -- END Determine Modules
 
-
 -- BEGIN Section
-d = m:section(TypedSection, "entry", "Schedule events")
-d.addremove = true  
+d = m:section(TypedSection, "entry", translate("Schedule events"))
+d.addremove = true
 --d.anonymous = true
 -- END Section
 
 -- BEGIN Enable Checkbox
 c = d:option(Flag, "enabled", translate("Enable"))
-c.optional=false; c.rmempty = false;
+c.optional = false
+c.rmempty = false
 -- END Enable Checkbox
 
-
 -- BEGIN Day(s) of Week
 dow = d:option(MultiValue, "daysofweek", translate("Day(s) of Week"))
 dow.optional = false
 dow.rmempty = false
-dow:value("Monday")
-dow:value("Tuesday")
-dow:value("Wednesday")
-dow:value("Thursday")
-dow:value("Friday")
-dow:value("Saturday")
-dow:value("Sunday")
+dow:value("Monday", translate("Monday"))
+dow:value("Tuesday", translate("Tuesday"))
+dow:value("Wednesday", translate("Wednesday"))
+dow:value("Thursday", translate("Thursday"))
+dow:value("Friday", translate("Friday"))
+dow:value("Saturday", translate("Saturday"))
+dow:value("Sunday", translate("Sunday"))
 -- END Day(s) of Weel
 
 -- BEGIN Start Wifi Dropdown
 starttime =  d:option(Value, "starttime", translate("Start WiFi"))
-starttime.optional=false; 
-starttime.rmempty = false;
+starttime.optional = false
+starttime.rmempty = false
 starttime:value("00:00")
 starttime:value("01:00")
 starttime:value("02:00")
@@ -198,14 +192,12 @@ starttime:value("23:00")
 function starttime.validate(self, value, d)
     return time_validator(self, value, translate("Start Time"))
 end
-
 -- END Start Wifi Dropdown
 
-
 -- BEGIN Stop Wifi Dropdown
-stoptime =  d:option(Value, "stoptime", translate("Stop WiFi"))
-stoptime.optional=false;
-stoptime.rmempty = false;
+stoptime = d:option(Value, "stoptime", translate("Stop WiFi"))
+stoptime.optional = false
+stoptime.rmempty = false
 stoptime:value("00:00")
 stoptime:value("01:00")
 stoptime:value("02:00")
@@ -236,15 +228,14 @@ function stoptime.validate(self, value, d)
 end
 -- END Stop Wifi Dropdown
 
-
 -- BEGIN Force Wifi Stop Checkbox
 force_wifi = d:option(Flag, "forcewifidown", translate("Force disabling wifi even if stations associated"))
 force_wifi.default = false
-force_wifi.rmempty = false;
+force_wifi.rmempty = false
 
 function force_wifi.validate(self, value, d)
     if value == "0" then
-        if file_exists("/usr/bin/iwinfo") then
+        if fs.access("/usr/bin/iwinfo") then
             return value
         else
             return nil, translate("Could not find required programm /usr/bin/iwinfo")
@@ -255,5 +246,4 @@ function force_wifi.validate(self, value, d)
 end
 -- END Force Wifi Checkbox
 
-
 return m
index 8ece42f..2bf2613 100644 (file)
@@ -1,26 +1,30 @@
 msgid ""
 msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
 "PO-Revision-Date: \n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
 "Language-Team: \n"
+"Language: ja\n"
 "MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 1.8.11\n"
-"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"Language: ja\n"
 
 msgid "Activate wifi"
 msgstr "WiFiのアクティブ化"
 
 msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
-msgstr "必須の /usr/bin/wifi_schedule.sh または /sbin/wifi が見つかりませんでした。"
+msgstr ""
+"必須の /usr/bin/wifi_schedule.sh または /sbin/wifi が見つかりませんでした。"
 
 msgid "Could not find required programm /usr/bin/iwinfo"
 msgstr "必須のプログラム /usr/bin/iwinfo が見つかりませんでした。"
 
+msgid "Cron Jobs"
+msgstr "Cronジョブ"
+
 msgid "Day(s) of Week"
 msgstr "曜日"
 
@@ -39,17 +43,32 @@ msgstr "WiFiの強制終了"
 msgid "Enable"
 msgstr "有効"
 
-msgid "Enable logging"
-msgstr "ログの有効化"
-
 msgid "Enable Wifi Schedule"
 msgstr "WiFi スケジュールの有効化"
 
+msgid "Enable logging"
+msgstr "ログの有効化"
+
 msgid "Force disabling wifi even if stations associated"
 msgstr "ステーションが関連付けられていてもWiFiを強制終了する"
 
-msgid "Unload Modules (experimental; saves more power)"
-msgstr "モジュールのアンロード(実験的、より省電力)"
+msgid "Friday"
+msgstr "金曜日"
+
+msgid "Global Settings"
+msgstr "全体設定"
+
+msgid "Monday"
+msgstr "月曜日"
+
+msgid "Saturday"
+msgstr "土曜日"
+
+msgid "Schedule"
+msgstr "スケジュール"
+
+msgid "Schedule events"
+msgstr "実行スケジュール"
 
 msgid "Start Time"
 msgstr "開始時刻"
@@ -63,5 +82,32 @@ msgstr "停止時刻"
 msgid "Stop WiFi"
 msgstr "WiFiの停止"
 
+msgid "Sunday"
+msgstr "日曜日"
+
+msgid "The value %s is invalid"
+msgstr ""
+
+msgid "Thursday"
+msgstr "木曜日"
+
+msgid "Tuesday"
+msgstr "火曜日"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "モジュールのアンロード(実験的、より省電力)"
+
+msgid "View Cron Jobs"
+msgstr "Cronジョブの確認"
+
+msgid "View Logfile"
+msgstr "ログファイルの確認"
+
+msgid "Wednesday"
+msgstr "水曜日"
+
 msgid "Wifi Schedule"
 msgstr "WiFi スケジュール"
+
+msgid "Wifi Schedule Logfile"
+msgstr "WiFiスケジュール ログファイル"
index 7d059e3..639c432 100644 (file)
@@ -10,6 +10,9 @@ msgstr ""
 msgid "Could not find required programm /usr/bin/iwinfo"
 msgstr ""
 
+msgid "Cron Jobs"
+msgstr ""
+
 msgid "Day(s) of Week"
 msgstr ""
 
@@ -28,16 +31,31 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
-msgid "Enable logging"
+msgid "Enable Wifi Schedule"
 msgstr ""
 
-msgid "Enable Wifi Schedule"
+msgid "Enable logging"
 msgstr ""
 
 msgid "Force disabling wifi even if stations associated"
 msgstr ""
 
-msgid "Unload Modules (experimental; saves more power)"
+msgid "Friday"
+msgstr ""
+
+msgid "Global Settings"
+msgstr ""
+
+msgid "Monday"
+msgstr ""
+
+msgid "Saturday"
+msgstr ""
+
+msgid "Schedule"
+msgstr ""
+
+msgid "Schedule events"
 msgstr ""
 
 msgid "Start Time"
@@ -52,5 +70,32 @@ msgstr ""
 msgid "Stop WiFi"
 msgstr ""
 
+msgid "Sunday"
+msgstr ""
+
+msgid "The value %s is invalid"
+msgstr ""
+
+msgid "Thursday"
+msgstr ""
+
+msgid "Tuesday"
+msgstr ""
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr ""
+
+msgid "View Cron Jobs"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "Wednesday"
+msgstr ""
+
 msgid "Wifi Schedule"
 msgstr ""
+
+msgid "Wifi Schedule Logfile"
+msgstr ""
diff --git a/applications/luci-app-wifischedule/po/zh-cn/wifischedule.po b/applications/luci-app-wifischedule/po/zh-cn/wifischedule.po
new file mode 100644 (file)
index 0000000..ab3a8d0
--- /dev/null
@@ -0,0 +1,101 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Activate wifi"
+msgstr "激活 WiFi"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr "无法找到必需的 /usr/bin/wifi_schedule.sh 或 /sbin/wifi"
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr "无法找到必需程序:/usr/bin/iwinfo"
+
+msgid "Cron Jobs"
+msgstr "计划任务"
+
+msgid "Day(s) of Week"
+msgstr "星期"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "定义自动打开和关闭 WiFi 的计划表"
+
+msgid "Determine Modules Automatically"
+msgstr "自动确定模块"
+
+msgid "Disable wifi gracefully"
+msgstr "正常关闭 WiFi"
+
+msgid "Disabled wifi forced"
+msgstr "强制关闭 WiFi"
+
+msgid "Enable"
+msgstr "启用"
+
+msgid "Enable Wifi Schedule"
+msgstr "启用 WiFi 计划"
+
+msgid "Enable logging"
+msgstr "启用日志"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr "即使有设备连接也强制关闭 WiFi"
+
+msgid "Friday"
+msgstr "星期五"
+
+msgid "Global Settings"
+msgstr "全局设置"
+
+msgid "Monday"
+msgstr "星期一"
+
+msgid "Saturday"
+msgstr "星期六"
+
+msgid "Schedule"
+msgstr "计划表"
+
+msgid "Schedule events"
+msgstr "计划事件"
+
+msgid "Start Time"
+msgstr "启动时间"
+
+msgid "Start WiFi"
+msgstr "启动 WiFi"
+
+msgid "Stop Time"
+msgstr "关闭时间"
+
+msgid "Stop WiFi"
+msgstr "关闭 WiFi"
+
+msgid "Sunday"
+msgstr "星期日"
+
+msgid "The value %s is invalid"
+msgstr "%s 的值无效"
+
+msgid "Thursday"
+msgstr "星期四"
+
+msgid "Tuesday"
+msgstr "星期二"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "卸载模块(实验性的,节省更多电量)"
+
+msgid "View Cron Jobs"
+msgstr "查看计划任务"
+
+msgid "View Logfile"
+msgstr "查看日志文件"
+
+msgid "Wednesday"
+msgstr "星期三"
+
+msgid "Wifi Schedule"
+msgstr "WiFi 计划"
+
+msgid "Wifi Schedule Logfile"
+msgstr "WiFi 计划日志文件"
index 37442a3..b5f4b09 100644 (file)
@@ -11,7 +11,9 @@ LUCI_BASENAME:=ssl-openssl
 
 LUCI_TITLE:=LuCI with HTTPS support (OpenSSL as SSL backend)
 LUCI_DESCRIPTION:=LuCI with OpenSSL as the SSL backend (libustream-openssl). \
- Note: px5g still requires libpolarssl
+ Note: px5g still requires libmbedtls (in LEDE) or libpolarssl (in Openwrt). \
+ In LEDE it is also possible to replace px5g with openssl-util as uhttpd can \
+ also generate keys with openssl commandline tools if px5g is not installed.
 LUCI_DEPENDS:=+luci +libustream-openssl +px5g
 
 include ../../luci.mk
index 7fff870..1bfc8ed 100644 (file)
@@ -8,6 +8,7 @@ config 'community' 'profile'
        option 'splash_prefix' '27'
        option 'latitude' '52.52075'
        option 'longitude' '13.40948'
+       option 'owm_api' 'http://util.berlin.freifunk.net'
 
 config 'defaults' 'wifi_device'
        option 'channel' '13'
index ce7d40d..753ff25 100644 (file)
@@ -15,8 +15,8 @@ LUCI_TITLE:=LuCI core libraries
 LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +luci-lib-jsonc
 
 PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2
-PKG_SOURCE_URL:=https://luasrcdiet.googlecode.com/files
-PKG_MD5SUM:=8a0812701e29b6715e4d76f2f118264a
+PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet
+PKG_MD5SUM:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea
 
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/LuaSrcDiet-0.12.1
 
index 1f0bf97..2747da5 100644 (file)
@@ -3,21 +3,21 @@ msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-12-21 23:08+0200\n"
-"PO-Revision-Date: 2015-12-20 13:14+0800\n"
-"Last-Translator: GuoGuo <gch981213@gmail.com>\n"
+"PO-Revision-Date: 2017-01-07 21:46+0800\n"
+"Last-Translator: Hsing-Wang Liao <kuoruan@gmail.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.5\n"
+"X-Generator: Poedit 1.8.11\n"
 "Language-Team: \n"
 
 msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s 在多个 VLAN 中未标记"
 
 msgid "(%d minute window, %d second interval)"
-msgstr "(%d分钟信息,%d秒刷新)"
+msgstr "(%d 分钟信息,%d 秒刷新)"
 
 msgid "(%s available)"
 msgstr "(%s 可用)"
@@ -50,91 +50,89 @@ msgid "15 Minute Load:"
 msgstr "15分钟负载:"
 
 msgid "464XLAT (CLAT)"
-msgstr ""
+msgstr "464XLAT (CLAT)"
 
 msgid "5 Minute Load:"
 msgstr "5分钟负载:"
 
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
+msgstr "<abbr title=\"基本服务集标识符\">BSSID</abbr>"
 
 msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 查询端口"
+msgstr "<abbr title=\"域名服务系统\">DNS</abbr> 查询端口"
 
 msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 服务器端口"
+msgstr "<abbr title=\"域名服务系统\">DNS</abbr> 服务器端口"
 
 msgid ""
 "<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
 "order of the resolvfile"
-msgstr "将会按照指定的顺序查询<abbr title=\"Domain Name System\">DNS</abbr>"
+msgstr "将会按照指定的顺序查询<abbr title=\"域名服务系统\">DNS</abbr>"
 
 msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgstr "<abbr title=\"扩展服务集标识符\">ESSID</abbr>"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-地址"
+msgstr "<abbr title=\"互联网协议第4版\">IPv4</abbr>-地址"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-网关"
+msgstr "<abbr title=\"互联网协议第4版\">IPv4</abbr>-网关"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-子网掩码"
+msgstr "<abbr title=\"互联网协议第4版\">IPv4</abbr>-子网掩码"
 
 msgid ""
 "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
 "(CIDR)"
 msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-地址或超网() (<abbr "
-"title=\"无类别域间路由\">CIDR</abbr>)"
+"<abbr title=\"互联网协议第6版\">IPv6</abbr>-地址或超网(<abbr title=\"无类别域"
+"间路由\">CIDR</abbr>)"
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-网关"
+msgstr "<abbr title=\"互联网协议第6版\">IPv6</abbr>-网关"
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-后缀(十六进制)"
+msgstr "<abbr title=\"互联网协议第6版\">IPv6</abbr>-后缀(十六进制)"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr>配置"
+msgstr "<abbr title=\"发光二极管\">LED</abbr>配置"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr>名称"
+msgstr "<abbr title=\"发光二极管\">LED</abbr>名称"
 
 msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-地址"
+msgstr "<abbr title=\"介质访问控制\">MAC</abbr>-地址"
 
 msgid ""
 "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
 "Protocol\">DHCP</abbr> leases"
-msgstr ""
-"最大<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>分配数量"
+msgstr "最大<abbr title=\"动态主机配置协议\">DHCP</abbr>分配数量"
 
 msgid ""
 "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
 "Domain Name System\">EDNS0</abbr> packet size"
-msgstr "最大<abbr title=\"DNS扩展名\">EDNS0</abbr>数据包大小"
+msgstr "最大<abbr title=\"DNS扩展名机制\">EDNS0</abbr>数据包大小"
 
 msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">最大</abbr>并发查询数"
+msgstr "最大并发查询数"
 
 msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
 msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
 
 msgid "A43C + J43 + A43"
-msgstr ""
+msgstr "A43C + J43 + A43"
 
 msgid "A43C + J43 + A43 + V43"
-msgstr ""
+msgstr "A43C + J43 + A43 + V43"
 
 msgid "ADSL"
 msgstr "ADSL"
 
 msgid "AICCU (SIXXS)"
-msgstr ""
+msgstr "AICCU (SIXXS)"
 
 msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
 
 msgid "APN"
 msgstr "APN"
@@ -146,7 +144,7 @@ msgid "ARP retry threshold"
 msgstr "ARP重试阈值"
 
 msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
+msgstr "ATM(异步传输模式)"
 
 msgid "ATM Bridges"
 msgstr "ATM桥接"
@@ -169,10 +167,10 @@ msgid "ATM device number"
 msgstr "ATM设备号码"
 
 msgid "ATU-C System Vendor ID"
-msgstr ""
+msgstr "ATU-C系统供应商ID"
 
 msgid "AYIYA"
-msgstr ""
+msgstr "AYIYA"
 
 msgid "Access Concentrator"
 msgstr "接入集中器"
@@ -190,10 +188,10 @@ msgid "Activate this network"
 msgstr "激活此网络"
 
 msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "活动的<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-链路"
+msgstr "活动的<abbr title=\"互联网协议第4版\">IPv4</abbr>-链路"
 
 msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "活动的<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-链路"
+msgstr "活动的<abbr title=\"互联网协议第6版\">IPv6</abbr>-链路"
 
 msgid "Active Connections"
 msgstr "活动连接"
@@ -220,7 +218,7 @@ msgid "Additional Hosts files"
 msgstr "额外的HOSTS文件"
 
 msgid "Additional servers file"
-msgstr ""
+msgstr "额外的SERVERS文件"
 
 msgid "Address"
 msgstr "地址"
@@ -235,7 +233,7 @@ msgid "Advanced Settings"
 msgstr "高级设置"
 
 msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
+msgstr "总发射功率(ACTATP)"
 
 msgid "Alert"
 msgstr "警戒"
@@ -243,13 +241,13 @@ msgstr "警戒"
 msgid ""
 "Allocate IP addresses sequentially, starting from the lowest available "
 "address"
-msgstr ""
+msgstr "从最低可用地址开始顺序分配IP地址"
 
 msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "顺序分配IP"
 
 msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "允许<abbr title=\"Secure Shell\">SSH</abbr>密码验证"
+msgstr "允许<abbr title=\"安全外壳协议\">SSH</abbr>密码验证"
 
 msgid "Allow all except listed"
 msgstr "仅允许列表外"
@@ -264,7 +262,7 @@ msgid "Allow remote hosts to connect to local SSH forwarded ports"
 msgstr "允许远程主机连接到本地SSH转发端口"
 
 msgid "Allow root logins with password"
-msgstr "root权限登录"
+msgstr "允许root用户凭密码登录"
 
 msgid "Allow the <em>root</em> user to login with password"
 msgstr "允许<em>root</em>用户凭密码登录"
@@ -274,68 +272,68 @@ msgid ""
 msgstr "允许127.0.0.0/8回环范围内的上行响应,例如:RBL服务"
 
 msgid "Allowed IPs"
-msgstr ""
+msgstr "允许的IP"
 
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
 msgstr ""
 "也请查看SIXXS上的<a href=\"https://www.sixxs.net/faq/connectivity/?"
-"faq=comparison\">Tunneling Comparison</a> "
+"faq=comparison\">隧道对比</a>"
 
 msgid "Always announce default router"
 msgstr "总是广播默认路由"
 
 msgid "An additional network will be created if you leave this checked."
-msgstr ""
+msgstr "如果选中此复选框,则会创建一个附加网络。"
 
 msgid "Annex"
-msgstr ""
+msgstr "Annex"
 
 msgid "Annex A + L + M (all)"
-msgstr ""
+msgstr "Annex A + L + M (全部)"
 
 msgid "Annex A G.992.1"
-msgstr ""
+msgstr "Annex A G.992.1"
 
 msgid "Annex A G.992.2"
-msgstr ""
+msgstr "Annex A G.992.2"
 
 msgid "Annex A G.992.3"
-msgstr ""
+msgstr "Annex A G.992.3"
 
 msgid "Annex A G.992.5"
-msgstr ""
+msgstr "Annex A G.992.5"
 
 msgid "Annex B (all)"
-msgstr ""
+msgstr "Annex B (全部)"
 
 msgid "Annex B G.992.1"
-msgstr ""
+msgstr "Annex B G.992.1"
 
 msgid "Annex B G.992.3"
-msgstr ""
+msgstr "Annex B G.992.3"
 
 msgid "Annex B G.992.5"
-msgstr ""
+msgstr "Annex B G.992.5"
 
 msgid "Annex J (all)"
-msgstr ""
+msgstr "Annex J (全部)"
 
 msgid "Annex L G.992.3 POTS 1"
-msgstr ""
+msgstr "Annex L G.992.3 POTS 1"
 
 msgid "Annex M (all)"
-msgstr ""
+msgstr "Annex M (全部)"
 
 msgid "Annex M G.992.3"
-msgstr ""
+msgstr "Annex M G.992.3"
 
 msgid "Annex M G.992.5"
-msgstr ""
+msgstr "Annex M G.992.5"
 
 msgid "Announce as default router even if no public prefix is available."
-msgstr "即使没有可用的公共前缀也广播默认路由"
+msgstr "即使没有可用的公共前缀也广播默认路由"
 
 msgid "Announced DNS domains"
 msgstr "广播的DNS域名"
@@ -344,7 +342,7 @@ msgid "Announced DNS servers"
 msgstr "广播的DNS服务器"
 
 msgid "Anonymous Identity"
-msgstr ""
+msgstr "匿名身份"
 
 msgid "Anonymous Mount"
 msgstr "自动挂载未配置的磁盘分区"
@@ -379,7 +377,7 @@ msgstr "分配接口..."
 
 msgid ""
 "Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
+msgstr "指定此接口使用的十六进制子ID前缀部分"
 
 msgid "Associated Stations"
 msgstr "已连接站点"
@@ -388,7 +386,7 @@ msgid "Atheros 802.11%s Wireless Controller"
 msgstr "Qualcomm/Atheros 802.11%s 无线网卡"
 
 msgid "Auth Group"
-msgstr ""
+msgstr "认证组"
 
 msgid "AuthGroup"
 msgstr "认证组"
@@ -397,7 +395,7 @@ msgid "Authentication"
 msgstr "认证"
 
 msgid "Authentication Type"
-msgstr ""
+msgstr "认证类型"
 
 msgid "Authoritative"
 msgstr "授权的唯一DHCP服务器"
@@ -418,10 +416,10 @@ msgid "Automatically check filesystem for errors before mounting"
 msgstr "在挂载前自动检查文件系统错误"
 
 msgid "Automatically mount filesystems on hotplug"
-msgstr "通过hotplug自动挂载磁盘"
+msgstr "通过Hotplug自动挂载磁盘"
 
 msgid "Automatically mount swap on hotplug"
-msgstr "通过hotplug自动挂载Swap分区"
+msgstr "通过Hotplug自动挂载Swap分区"
 
 msgid "Automount Filesystem"
 msgstr "自动挂载磁盘"
@@ -439,13 +437,13 @@ msgid "Average:"
 msgstr "平均:"
 
 msgid "B43 + B43C"
-msgstr ""
+msgstr "B43 + B43C"
 
 msgid "B43 + B43C + V43"
-msgstr ""
+msgstr "B43 + B43C + V43"
 
 msgid "BR / DMR / AFTR"
-msgstr ""
+msgstr "BR / DMR / AFTR"
 
 msgid "BSSID"
 msgstr "BSSID"
@@ -495,13 +493,13 @@ msgstr ""
 "备份文件。"
 
 msgid "Bind interface"
-msgstr ""
+msgstr "绑定接口"
 
 msgid "Bind only to specific interfaces rather than wildcard address."
-msgstr ""
+msgstr "仅绑定到特定接口,而不是全部地址。"
 
 msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
+msgstr "将隧道绑定到此接口(可选)。"
 
 msgid "Bitrate"
 msgstr "传输速率"
@@ -539,7 +537,7 @@ msgid "Buttons"
 msgstr "按键"
 
 msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr "CA证书.如果留空的话证书将在第一次连接时被保存."
+msgstr "CA证书,如果留空的话证书将在第一次连接时被保存。"
 
 msgid "CPU usage (%)"
 msgstr "CPU使用率(%)"
@@ -590,7 +588,7 @@ msgid "Cipher"
 msgstr "算法"
 
 msgid "Cisco UDP encapsulation"
-msgstr ""
+msgstr "Cisco UDP封装"
 
 msgid ""
 "Click \"Generate archive\" to download a tar archive of the current "
@@ -696,7 +694,7 @@ msgstr "自定义的软件源"
 msgid ""
 "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
 "\">LED</abbr>s if possible."
-msgstr "自定义<abbr title=\"Light Emitting Diode\">LED</abbr>的活动状态。"
+msgstr "自定义<abbr title=\"发光二极管\">LED</abbr>的活动状态。"
 
 msgid "DHCP Leases"
 msgstr "DHCP分配"
@@ -732,34 +730,34 @@ msgid "DNS forwardings"
 msgstr "DNS转发"
 
 msgid "DNS-Label / FQDN"
-msgstr ""
+msgstr "DNS-Label / FQDN"
 
 msgid "DNSSEC"
-msgstr ""
+msgstr "DNSSEC"
 
 msgid "DNSSEC check unsigned"
-msgstr ""
+msgstr "DNSSEC未签名检查"
 
 msgid "DPD Idle Timeout"
-msgstr ""
+msgstr "DPD空闲超时"
 
 msgid "DS-Lite AFTR address"
-msgstr ""
+msgstr "DS-Lite AFTR地址"
 
 msgid "DSL"
-msgstr ""
+msgstr "DSL"
 
 msgid "DSL Status"
-msgstr ""
+msgstr "DSL状态"
 
 msgid "DSL line mode"
-msgstr ""
+msgstr "DSL线路模式"
 
 msgid "DUID"
-msgstr "DUID(DHCP唯一标识符)"
+msgstr "DUID (DHCP唯一标识符)"
 
 msgid "Data Rate"
-msgstr ""
+msgstr "数据速率"
 
 msgid "Debug"
 msgstr "调试"
@@ -771,7 +769,7 @@ msgid "Default gateway"
 msgstr "默认网关"
 
 msgid "Default is stateless + stateful"
-msgstr ""
+msgstr "默认是无状态 + 有状态"
 
 msgid "Default route"
 msgstr "默认路由"
@@ -832,17 +830,16 @@ msgstr "禁用"
 msgid ""
 "Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
 "this interface."
-msgstr ""
-"禁用本接口的<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>。"
+msgstr "禁用本接口的<abbr title=\"动态主机配置协议\">DHCP</abbr>。"
 
 msgid "Disable DNS setup"
 msgstr "停用DNS设定"
 
 msgid "Disable Encryption"
-msgstr ""
+msgstr "禁用加密"
 
 msgid "Disable HW-Beacon timer"
-msgstr "停用 HW-Beacon 计时器"
+msgstr "停用HW-Beacon计时器"
 
 msgid "Disabled"
 msgstr "禁用"
@@ -891,7 +888,7 @@ msgid "Domain whitelist"
 msgstr "域名白名单"
 
 msgid "Don't Fragment"
-msgstr ""
+msgstr "禁止碎片"
 
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
@@ -911,14 +908,14 @@ msgid ""
 "Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
 "and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
 msgstr ""
-"Dropbear提供了集成的<abbr title=\"Secure Copy\">SCP</abbr>服务器和基于<abbr "
-"title=\"Secure Shell\">SSH</abbr>的shell访问"
+"Dropbear提供了集成的<abbr title=\"安全复制\">SCP</abbr>服务器和基于<abbr "
+"title=\"安全外壳协议\">SSH</abbr>的Shell访问"
 
 msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
+msgstr "Dual-Stack Lite (RFC6333)"
 
 msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "动态<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
+msgstr "动态<abbr title=\"动态主机配置协议\">DHCP</abbr>"
 
 msgid "Dynamic tunnel"
 msgstr "动态隧道"
@@ -929,10 +926,10 @@ msgid ""
 msgstr "动态分配DHCP地址。如果禁用,则只能为静态租用表中的客户端提供网络服务。"
 
 msgid "EA-bits length"
-msgstr ""
+msgstr "EA位长度"
 
 msgid "EAP-Method"
-msgstr "EAP-Method"
+msgstr "EAP类型"
 
 msgid "Edit"
 msgstr "修改"
@@ -955,13 +952,13 @@ msgid "Enable"
 msgstr "启用"
 
 msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "开启<abbr title=\"Spanning Tree Protocol\">STP</abbr>"
+msgstr "开启<abbr title=\"生成树协议\">STP</abbr>"
 
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "启用HE.net动态终端更新"
 
 msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "启用IPv6协商"
 
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "在PPP链路上启用IPv6协商"
@@ -973,7 +970,7 @@ msgid "Enable NTP client"
 msgstr "启用NTP客户端"
 
 msgid "Enable Single DES"
-msgstr ""
+msgstr "启用单个DES"
 
 msgid "Enable TFTP server"
 msgstr "启用TFTP服务器"
@@ -982,7 +979,7 @@ msgid "Enable VLAN functionality"
 msgstr "启用VLAN"
 
 msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "启用WPS按键配置.要求使用WPA(2)-PSK"
+msgstr "启用WPS按键配置要求使用WPA(2)-PSK"
 
 msgid "Enable learning and aging"
 msgstr "启用智能交换学习"
@@ -994,7 +991,7 @@ msgid "Enable mirroring of outgoing packets"
 msgstr "启用流出数据包镜像"
 
 msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
+msgstr "启用封装数据包的DF(禁止碎片)标志。"
 
 msgid "Enable this mount"
 msgstr "启用挂载点"
@@ -1018,10 +1015,10 @@ msgid "Encryption"
 msgstr "加密"
 
 msgid "Endpoint Host"
-msgstr ""
+msgstr "端点主机"
 
 msgid "Endpoint Port"
-msgstr ""
+msgstr "端点端口"
 
 msgid "Erasing..."
 msgstr "擦除中..."
@@ -1030,7 +1027,7 @@ msgid "Error"
 msgstr "错误"
 
 msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "错误秒数(ES)"
 
 msgid "Ethernet Adapter"
 msgstr "以太网适配器"
@@ -1039,7 +1036,7 @@ msgid "Ethernet Switch"
 msgstr "以太网交换机"
 
 msgid "Exclude interfaces"
-msgstr ""
+msgstr "排除接口"
 
 msgid "Expand hosts"
 msgstr "扩展HOSTS文件中的主机后缀"
@@ -1047,22 +1044,21 @@ msgstr "扩展HOSTS文件中的主机后缀"
 msgid "Expires"
 msgstr "到期时间"
 
-#, fuzzy
 msgid ""
 "Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "地址租期,最小2分钟(<code>2m</code>)。"
+msgstr "租用地址的到期时间,最短2分钟(<code>2m</code>)。"
 
 msgid "External"
-msgstr ""
+msgstr "远程"
 
 msgid "External system log server"
-msgstr "远程log服务器"
+msgstr "远程日志服务器"
 
 msgid "External system log server port"
-msgstr "远程log服务器端口"
+msgstr "远程日志服务器端口"
 
 msgid "External system log server protocol"
-msgstr ""
+msgstr "远程日志服务器协议"
 
 msgid "Extra SSH command options"
 msgstr "额外的SSH命令选项"
@@ -1114,7 +1110,7 @@ msgid "Firewall Status"
 msgstr "防火墙状态"
 
 msgid "Firmware File"
-msgstr ""
+msgstr "固件文件"
 
 msgid "Firmware Version"
 msgstr "固件版本"
@@ -1153,16 +1149,16 @@ msgid "Force TKIP and CCMP (AES)"
 msgstr "TKIP和CCMP(AES)混合加密"
 
 msgid "Force use of NAT-T"
-msgstr ""
+msgstr "强制使用NAT-T"
 
 msgid "Form token mismatch"
-msgstr ""
+msgstr "表单令牌不匹配"
 
 msgid "Forward DHCP traffic"
 msgstr "转发DHCP数据包"
 
 msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
+msgstr "前向纠错秒数(FECS)"
 
 msgid "Forward broadcast traffic"
 msgstr "转发广播数据包"
@@ -1186,6 +1182,8 @@ msgid ""
 "Further information about WireGuard interfaces and peers at <a href=\"http://"
 "wireguard.io\">wireguard.io</a>."
 msgstr ""
+"有关WireGuard接口和Peer的更多信息:<a href=\"http://wireguard.io\">wireguard."
+"io</a>"
 
 msgid "GHz"
 msgstr "GHz"
@@ -1206,7 +1204,7 @@ msgid "General Setup"
 msgstr "基本设置"
 
 msgid "General options for opkg"
-msgstr "opkg基础配置"
+msgstr "Opkg基础配置"
 
 msgid "Generate Config"
 msgstr "生成配置"
@@ -1233,7 +1231,7 @@ msgid "Go to relevant configuration page"
 msgstr "跳转到相关的配置页面"
 
 msgid "Group Password"
-msgstr ""
+msgstr "组密码"
 
 msgid "Guest"
 msgstr "访客"
@@ -1245,7 +1243,7 @@ msgid "HE.net username"
 msgstr "HE.net用户名"
 
 msgid "HT mode (802.11n)"
-msgstr ""
+msgstr "HT模式(802.11n)"
 
 msgid "Handler"
 msgstr "处理程序"
@@ -1254,7 +1252,7 @@ msgid "Hang Up"
 msgstr "挂起"
 
 msgid "Header Error Code Errors (HEC)"
-msgstr ""
+msgstr "头错误代码错误(HEC)"
 
 msgid "Heartbeat"
 msgstr "心跳"
@@ -1273,10 +1271,10 @@ msgid "Hermes 802.11b Wireless Controller"
 msgstr "Hermes 802.11b 无线网卡"
 
 msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "隐藏<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgstr "隐藏<abbr title=\"扩展服务集标识符\">ESSID</abbr>"
 
 msgid "Host"
-msgstr ""
+msgstr "主机"
 
 msgid "Host entries"
 msgstr "主机目录"
@@ -1300,7 +1298,7 @@ msgid "Hybrid"
 msgstr "混合"
 
 msgid "IKE DH Group"
-msgstr ""
+msgstr "IKE DH组"
 
 msgid "IP address"
 msgstr "IP地址"
@@ -1345,7 +1343,7 @@ msgid "IPv4-Address"
 msgstr "IPv4-地址"
 
 msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
+msgstr "IPv4-in-IPv4 (RFC2003)"
 
 msgid "IPv6"
 msgstr "IPv6"
@@ -1372,7 +1370,7 @@ msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
 msgstr "绑定到本地隧道终点的IPv6地址(可选)"
 
 msgid "IPv6 assignment hint"
-msgstr ""
+msgstr "IPv6分配提示"
 
 msgid "IPv6 assignment length"
 msgstr "IPv6分配长度"
@@ -1408,10 +1406,10 @@ msgid "Identity"
 msgstr "鉴权"
 
 msgid "If checked, 1DES is enaled"
-msgstr ""
+msgstr "选中以启用1DES"
 
 msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "选中以禁用加密"
 
 msgid ""
 "If specified, mount the device by its UUID instead of a fixed device node"
@@ -1455,12 +1453,14 @@ msgid ""
 "In order to prevent unauthorized access to the system, your request has been "
 "blocked. Click \"Continue »\" below to return to the previous page."
 msgstr ""
+"为了防止对系统的未授权访问,您的请求已被阻止。点击下面的 “继续 »” 来返回上一"
+"页。"
 
 msgid "Inactivity timeout"
 msgstr "活动超时"
 
 msgid "Inbound:"
-msgstr "入站:"
+msgstr "入站"
 
 msgid "Info"
 msgstr "信息"
@@ -1475,10 +1475,10 @@ msgid "Install"
 msgstr "安装"
 
 msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "安装iputils-traceroute6以进行IPv6 traceroute"
+msgstr "安装 iputils-traceroute6 以进行IPv6 traceroute"
 
 msgid "Install package %q"
-msgstr "安装软件包%q"
+msgstr "安装软件包 %q"
 
 msgid "Install protocol extensions..."
 msgstr "安装扩展协议..."
@@ -1502,10 +1502,10 @@ msgid "Interface is shutting down..."
 msgstr "正在关闭接口..."
 
 msgid "Interface name"
-msgstr ""
+msgstr "接口名称"
 
 msgid "Interface not present or not connected yet."
-msgstr "接口不存在或未连接"
+msgstr "接口不存在或未连接"
 
 msgid "Interface reconnected"
 msgstr "接口已重新连接"
@@ -1517,7 +1517,7 @@ msgid "Interfaces"
 msgstr "接口"
 
 msgid "Internal"
-msgstr ""
+msgstr "内部"
 
 msgid "Internal Server Error"
 msgstr "内部服务器错误"
@@ -1526,19 +1526,18 @@ msgid "Invalid"
 msgstr "无效"
 
 msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "无效的VLAN ID只有 %d 和 %d 之间的ID有效。"
+msgstr "无效的VLAN ID只有 %d 和 %d 之间的ID有效。"
 
 msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "无效的VLAN ID只允许唯一的ID。"
+msgstr "无效的VLAN ID只允许唯一的ID。"
 
 msgid "Invalid username and/or password! Please try again."
-msgstr "无效的用户名和/或密码请重试。"
+msgstr "无效的用户名和/或密码请重试。"
 
-#, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
-msgstr "将要刷新的固件与本路由器不兼容,请重新验证固件文件。"
+msgstr "你尝试刷写的固件与本路由器不兼容,请重新验证固件文件。"
 
 msgid "Java Script required!"
 msgstr "需要Java Script!"
@@ -1547,10 +1546,10 @@ msgid "Join Network"
 msgstr "加入网络"
 
 msgid "Join Network: Wireless Scan"
-msgstr "加入网络:搜索无线"
+msgstr "加入网络搜索无线"
 
 msgid "Joining Network: %q"
-msgstr ""
+msgstr "加入网络:%q"
 
 msgid "Keep settings"
 msgstr "保留配置"
@@ -1595,13 +1594,13 @@ msgid "Language and Style"
 msgstr "语言和界面"
 
 msgid "Latency"
-msgstr ""
+msgstr "延迟"
 
 msgid "Leaf"
-msgstr "叶"
+msgstr "叶"
 
 msgid "Lease time"
-msgstr ""
+msgstr "租期"
 
 msgid "Lease validity time"
 msgstr "有效租期"
@@ -1628,22 +1627,22 @@ msgid "Limit"
 msgstr "客户数"
 
 msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
+msgstr "将DNS服务限制到我们提供DNS的子网接口。"
 
 msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "仅监听这些接口和环回接口。"
 
 msgid "Line Attenuation (LATN)"
-msgstr ""
+msgstr "线路衰减(LATN)"
 
 msgid "Line Mode"
-msgstr ""
+msgstr "线路模式"
 
 msgid "Line State"
 msgstr "线路状态"
 
 msgid "Line Uptime"
-msgstr ""
+msgstr "线路运行时间"
 
 msgid "Link On"
 msgstr "活动链接"
@@ -1654,7 +1653,7 @@ msgid ""
 msgstr "将指定的域名DNS解析转发到指定的DNS服务器(按照示例填写)"
 
 msgid "List of SSH key files for auth"
-msgstr ""
+msgstr "用于认证的SSH密钥文件列表"
 
 msgid "List of domains to allow RFC1918 responses for"
 msgstr "允许RFC1918响应的域名列表"
@@ -1663,10 +1662,10 @@ msgid "List of hosts that supply bogus NX domain results"
 msgstr "允许虚假空域名响应的服务器列表"
 
 msgid "Listen Interfaces"
-msgstr ""
+msgstr "监听接口"
 
 msgid "Listen Port"
-msgstr ""
+msgstr "监听端口"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr "监听指定的接口;未指定则监听全部"
@@ -1684,7 +1683,7 @@ msgid "Loading"
 msgstr "加载中"
 
 msgid "Local IP address to assign"
-msgstr ""
+msgstr "要分配的本地IP地址"
 
 msgid "Local IPv4 address"
 msgstr "本地IPv4地址"
@@ -1693,7 +1692,7 @@ msgid "Local IPv6 address"
 msgstr "本地IPv6地址"
 
 msgid "Local Service Only"
-msgstr ""
+msgstr "仅本地服务"
 
 msgid "Local Startup"
 msgstr "本地启动脚本"
@@ -1704,11 +1703,10 @@ msgstr "本地时间"
 msgid "Local domain"
 msgstr "本地域名"
 
-#, fuzzy
 msgid ""
 "Local domain specification. Names matching this domain are never forwarded "
 "and are resolved from DHCP or hosts files only"
-msgstr "æ\9c¬å\9c°å\9f\9få\90\8dè§\84å\88\99ã\80\82ä»\8eä¸\8d转å\8f\91å\92\8cå¤\84ç\90\86å\8fªæº\90è\87ªDHCPæ\88\96HOSTSæ\96\87件ç\9a\84æ\9c¬å\9c°å\9f\9få\90\8dæ\95°æ\8d®"
+msgstr "æ\9c¬å\9c°å\9f\9få\90\8dè§\84å\88\99ã\80\82ä¸\8eæ­¤å\9f\9få\8c¹é\85\8dç\9a\84å\90\8d称ä»\8eä¸\8d转å\8f\91ï¼\8cä»\85ä»\8eDHCPæ\88\96HOSTSæ\96\87件解æ\9e\90"
 
 msgid "Local domain suffix appended to DHCP names and hosts file entries"
 msgstr "本地域名后缀将添加到DHCP和HOSTS文件条目"
@@ -1725,7 +1723,7 @@ msgid "Localise queries"
 msgstr "本地化查询"
 
 msgid "Locked to channel %s used by: %s"
-msgstr "信道道已被锁定为 %s,因为该信道被 %s 使用"
+msgstr "信道道已被锁定为 %s因为该信道被 %s 使用"
 
 msgid "Log output level"
 msgstr "日志记录等级"
@@ -1743,7 +1741,7 @@ msgid "Logout"
 msgstr "退出"
 
 msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
+msgstr "信号丢失秒数(LOSS)"
 
 msgid "Lowest leased address as offset from the network address."
 msgstr "网络地址的起始分配基址。"
@@ -1761,13 +1759,13 @@ msgid "MAC-List"
 msgstr "MAC-列表"
 
 msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
 
 msgid "MB/s"
 msgstr "MB/s"
 
 msgid "MD5"
-msgstr ""
+msgstr "MD5"
 
 msgid "MHz"
 msgstr "MHz"
@@ -1778,13 +1776,13 @@ msgstr "MTU"
 msgid ""
 "Make sure to clone the root filesystem using something like the commands "
 "below:"
-msgstr "请确认你已经复制过整个根文件系统,例如使用以下命令:"
+msgstr "请确认你已经复制过整个根文件系统,例如使用以下命令"
 
 msgid "Manual"
-msgstr ""
+msgstr "手动"
 
 msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
+msgstr "最大可达数据速率(ATTNDR)"
 
 msgid "Maximum Rate"
 msgstr "最高速率"
@@ -1796,7 +1794,7 @@ msgid "Maximum allowed number of concurrent DNS queries"
 msgstr "允许的最大并发DNS查询数"
 
 msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "å\85\81许ç\9a\84æ\9c\80大EDNS.0 UDPæ\8a¥æ\96\87大小"
+msgstr "å\85\81许ç\9a\84æ\9c\80大EDNS.0 UDPæ\95°æ\8d®å\8c\85大小"
 
 msgid "Maximum amount of seconds to wait for the modem to become ready"
 msgstr "调制解调器就绪的最大等待时间(秒)"
@@ -1808,6 +1806,7 @@ msgid ""
 "Maximum length of the name is 15 characters including the automatic protocol/"
 "bridge prefix (br-, 6in4-, pppoe- etc.)"
 msgstr ""
+"名称的最大长度为15个字符,包括自动协议/网桥前缀(br-, 6in4-, pppoe- 等等)"
 
 msgid "Maximum number of leased addresses."
 msgstr "最大地址分配数量。"
@@ -1837,7 +1836,7 @@ msgid "Mirror source port"
 msgstr "数据包镜像源端口"
 
 msgid "Missing protocol extension for proto %q"
-msgstr "缺少协议%q的协议扩展"
+msgstr "缺少协议 %q 的协议扩展"
 
 msgid "Mode"
 msgstr "模式"
@@ -1905,16 +1904,16 @@ msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T模式"
 
 msgid "NAT64 Prefix"
-msgstr ""
+msgstr "NAT64前缀"
 
 msgid "NDP-Proxy"
 msgstr "NDP-代理"
 
 msgid "NT Domain"
-msgstr ""
+msgstr "NT域"
 
 msgid "NTP server candidates"
 msgstr "候选NTP服务器"
@@ -1956,7 +1955,7 @@ msgid "No DHCP Server configured for this interface"
 msgstr "本接口未配置DHCP服务器"
 
 msgid "No NAT-T"
-msgstr ""
+msgstr "无NAT-T"
 
 msgid "No chains in this table"
 msgstr "本表中没有链"
@@ -1992,16 +1991,16 @@ msgid "Noise"
 msgstr "噪声"
 
 msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "噪声容限(SNR)"
 
 msgid "Noise:"
 msgstr "噪声:"
 
 msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
+msgstr "非抢占CRC错误(CRC_P)"
 
 msgid "Non-wildcard"
-msgstr ""
+msgstr "非通配符"
 
 msgid "None"
 msgstr "无"
@@ -2022,7 +2021,7 @@ msgid "Note: Configuration files will be erased."
 msgstr "注意:配置文件将被删除。"
 
 msgid "Note: interface name length"
-msgstr ""
+msgstr "注意:接口名称长度"
 
 msgid "Notice"
 msgstr "注意"
@@ -2031,7 +2030,7 @@ msgid "Nslookup"
 msgstr "Nslookup"
 
 msgid "OK"
-msgstr "OK"
+msgstr "确认"
 
 msgid "OPKG-Configuration"
 msgstr "OPKG-配置"
@@ -2064,7 +2063,7 @@ msgid "One or more fields contain invalid values!"
 msgstr "一个或多个选项值有误!"
 
 msgid "One or more invalid/required values on tab"
-msgstr ""
+msgstr "选项卡上存在一个或多个无效/必需值"
 
 msgid "One or more required fields have no value!"
 msgstr "一个或多个必选项值为空!"
@@ -2073,7 +2072,7 @@ msgid "Open list..."
 msgstr "打开列表..."
 
 msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "开放连接(CISCO AnyConnect)"
 
 msgid "Operating frequency"
 msgstr "工作频率"
@@ -2085,13 +2084,13 @@ msgid "Option removed"
 msgstr "移除的选项"
 
 msgid "Optional, specify to override default server (tic.sixxs.net)"
-msgstr "可选,设置这个选项会覆盖默认设定的服务器(tic.sixxs.net)"
+msgstr "可选设置这个选项会覆盖默认设定的服务器(tic.sixxs.net)"
 
 msgid "Optional, use when the SIXXS account has more than one tunnel"
-msgstr "可选,如果你的SIXXS账号拥有一个以上的隧道请设置此项."
+msgstr "可选如果你的SIXXS账号拥有一个以上的隧道请设置此项."
 
 msgid "Optional."
-msgstr ""
+msgstr "可选"
 
 msgid ""
 "Optional. Adds in an additional layer of symmetric-key cryptography for post-"
@@ -2099,7 +2098,7 @@ msgid ""
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
+msgstr "可选,为此Peer创建允许IP的路由。"
 
 msgid ""
 "Optional. Host of peer. Names are resolved prior to bringing up the "
@@ -2107,30 +2106,32 @@ msgid ""
 msgstr ""
 
 msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
+msgstr "可选,隧道接口的最大传输单元。"
 
 msgid "Optional. Port of peer."
-msgstr ""
+msgstr "可选,Peer的端口。"
 
 msgid ""
 "Optional. Seconds between keep alive messages. Default is 0 (disabled). "
 "Recommended value if this device is behind a NAT is 25."
 msgstr ""
+"可选,Keep-Alive消息之间的秒数,默认为0(禁用)。如果此设备位于NAT之后,建议使"
+"用的值为25。"
 
 msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
+msgstr "可选,用于传出和传入数据包的UDP端口。"
 
 msgid "Options"
 msgstr "选项"
 
 msgid "Other:"
-msgstr "其余:"
+msgstr "其余"
 
 msgid "Out"
 msgstr "出口"
 
 msgid "Outbound:"
-msgstr "出站:"
+msgstr "出站"
 
 msgid "Outdoor Channels"
 msgstr "户外频道"
@@ -2142,24 +2143,24 @@ msgid "Override MAC address"
 msgstr "克隆MAC地址"
 
 msgid "Override MTU"
-msgstr "设置MTU"
+msgstr "更新MTU"
 
 msgid "Override TOS"
-msgstr ""
+msgstr "更新TOS"
 
 msgid "Override TTL"
-msgstr ""
+msgstr "更新TTL"
 
 msgid "Override default interface name"
-msgstr ""
+msgstr "更新默认接口名称"
 
 msgid "Override the gateway in DHCP responses"
-msgstr "更新网关"
+msgstr "更新DHCP响应网关"
 
 msgid ""
 "Override the netmask sent to clients. Normally it is calculated from the "
 "subnet that is served."
-msgstr "更新子网掩码。"
+msgstr "æ\9b´æ\96°å\8f\91é\80\81å\88°å®¢æ\88·ç«¯ç\9a\84å­\90ç½\91æ\8e©ç \81ã\80\82"
 
 msgid "Override the table used for internal routes"
 msgstr "更新内部路由表"
@@ -2195,22 +2196,22 @@ msgid "PPPoE"
 msgstr "PPPoE"
 
 msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
 
 msgid "PPtP"
 msgstr "PPtP"
 
 msgid "PSID offset"
-msgstr ""
+msgstr "PSID偏移"
 
 msgid "PSID-bits length"
-msgstr ""
+msgstr "PSID位长度"
 
 msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
+msgstr "PTM/EFM(分组传输模式)"
 
 msgid "Package libiwinfo required!"
-msgstr "需要libiwinfo软件包!"
+msgstr "需要 libiwinfo 软件包!"
 
 msgid "Package lists are older than 24 hours"
 msgstr "软件包列表已超过24小时未更新"
@@ -2234,7 +2235,7 @@ msgid "Password of Private Key"
 msgstr "私有密钥"
 
 msgid "Password of inner Private Key"
-msgstr ""
+msgstr "内部私钥的密码"
 
 msgid "Password successfully changed!"
 msgstr "密码修改成功!"
@@ -2252,25 +2253,25 @@ msgid "Path to executable which handles the button event"
 msgstr "处理按键动作的可执行文件路径"
 
 msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "内部CA证书的路径"
 
 msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "内部客户端证书的路径"
 
 msgid "Path to inner Private Key"
-msgstr ""
+msgstr "内部私钥的路径"
 
 msgid "Peak:"
 msgstr "峰值:"
 
 msgid "Peer IP address to assign"
-msgstr ""
+msgstr "要分配的Peer IP地址"
 
 msgid "Peers"
-msgstr ""
+msgstr "Peers"
 
 msgid "Perfect Forward Secrecy"
-msgstr ""
+msgstr "完全正向保密"
 
 msgid "Perform reboot"
 msgstr "执行重启"
@@ -2279,7 +2280,7 @@ msgid "Perform reset"
 msgstr "执行复位"
 
 msgid "Persistent Keep Alive"
-msgstr ""
+msgstr "持续Keep-Alive"
 
 msgid "Phy Rate:"
 msgstr "物理速率:"
@@ -2306,13 +2307,13 @@ msgid "Port status:"
 msgstr "端口状态:"
 
 msgid "Power Management Mode"
-msgstr ""
+msgstr "电源管理模式"
 
 msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
+msgstr "抢占式CRC错误(CRCP_P)"
 
 msgid "Preshared Key"
-msgstr ""
+msgstr "预共享密钥"
 
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
@@ -2320,7 +2321,7 @@ msgid ""
 msgstr "在指定数量的LCP响应故障后假定链路已断开,0为忽略故障"
 
 msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "防止监听这些接口。"
 
 msgid "Prevents client-to-client communication"
 msgstr "禁止客户端间通信"
@@ -2329,7 +2330,7 @@ msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b 无线网卡"
 
 msgid "Private Key"
-msgstr ""
+msgstr "私钥"
 
 msgid "Proceed"
 msgstr "执行"
@@ -2338,7 +2339,7 @@ msgid "Processes"
 msgstr "系统进程"
 
 msgid "Profile"
-msgstr ""
+msgstr "配置文件"
 
 msgid "Prot."
 msgstr "协议"
@@ -2365,19 +2366,19 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "伪装Ad-Hoc(ahdemo)"
 
 msgid "Public Key"
-msgstr ""
+msgstr "公钥"
 
 msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
+msgstr "分配到此设备的公共前缀,用以分发到客户端。"
 
 msgid "QMI Cellular"
-msgstr ""
+msgstr "QMI蜂窝"
 
 msgid "Quality"
 msgstr "质量"
 
 msgid "RFC3947 NAT-T mode"
-msgstr ""
+msgstr "RFC3947 NAT-T模式"
 
 msgid "RTS/CTS Threshold"
 msgstr "RTS/CTS阈值"
@@ -2420,33 +2421,31 @@ msgid ""
 "Really delete this interface? The deletion cannot be undone!\\nYou might "
 "lose access to this device if you are connected via this interface."
 msgstr ""
-"确定要删除此接口?删除操作无法撤销!\\\n"
-"删除此接口,可能导致无法再访问路由器!"
+"确定要删除此接口?删除操作无法撤销!\\n删除此接口,可能导致无法再访问路由器!"
 
 msgid ""
 "Really delete this wireless network? The deletion cannot be undone!\\nYou "
 "might lose access to this device if you are connected via this network."
 msgstr ""
-"确定要删除此无线网络?删除操作无法撤销!\\\n"
-"删除此无线网络,可能导致无法再访问路由器!"
+"确定要删除此无线网络?删除操作无法撤销!\\n删除此无线网络,可能导致无法再访问"
+"路由器!"
 
 msgid "Really reset all changes?"
 msgstr "确定要放弃所有更改?"
 
-#, fuzzy
 msgid ""
 "Really shut down network?\\nYou might lose access to this device if you are "
 "connected via this interface."
 msgstr ""
-"确定要关闭此网络?\\\n"
-"å\85³é\97­æ­¤ç½\91ç»\9cï¼\8cå\8f¯è\83½å¯¼è\87´æ\97 æ³\95å\86\8d访é\97®è·¯ç\94±å\99¨!"
+"确定要关闭此网络?\\n如果你正在使用此接口连接路由器,关闭此网络可能导致连接断"
+"å¼\80!"
 
 msgid ""
 "Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
 "you are connected via this interface."
 msgstr ""
-"确定要关闭接口\"%s\" ?\\\n"
-"删除此网络,可能导致无法再访问路由器!"
+"确定要关闭接口 \"%s\"?\\n如果你正在使用此接口连接路由器,关闭此网络可能导致"
+"连接断开!"
 
 msgid "Really switch protocol?"
 msgstr "确定要切换协议?"
@@ -2512,7 +2511,7 @@ msgid "Remote IPv4 address"
 msgstr "远程IPv4地址"
 
 msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "远程IPv4地址或FQDN"
 
 msgid "Remove"
 msgstr "移除"
@@ -2536,24 +2535,26 @@ msgid "Require TLS"
 msgstr "必须使用TLS"
 
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "某些ISP需要,例如:同轴线网络DOCSIS 3"
+msgstr "某些ISP需要,例如同轴线网络DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
+msgstr "必须,此接口的Base64编码私钥。"
 
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
+"必须,允许该Peer在隧道中使用的IP地址和前缀,通常是该Peer的隧道IP地址和通过隧"
+"道的路由网络。"
 
 msgid "Required. Public key of peer."
-msgstr ""
+msgstr "必须,Peer的公钥。"
 
 msgid ""
 "Requires upstream supports DNSSEC; verify unsigned domain responses really "
 "come from unsigned domains"
-msgstr ""
+msgstr "需要上级支持DNSSEC,验证未签名的域响应确实是来自未签名的域。"
 
 msgid "Reset"
 msgstr "复位"
@@ -2595,16 +2596,16 @@ msgid "Root preparation"
 msgstr ""
 
 msgid "Route Allowed IPs"
-msgstr ""
+msgstr "路由允许的IP"
 
 msgid "Route type"
-msgstr ""
+msgstr "路由类型"
 
 msgid "Routed IPv6 prefix for downstream interfaces"
-msgstr ""
+msgstr "下行接口的路由IPv6前缀"
 
 msgid "Router Advertisement-Service"
-msgstr ""
+msgstr "路由器广告服务"
 
 msgid "Router Password"
 msgstr "主机密码"
@@ -2624,18 +2625,18 @@ msgid "Run filesystem check"
 msgstr "文件系统检查"
 
 msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
 
 msgid ""
 "SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
 "use 6in4 instead"
-msgstr ""
+msgstr "SIXXS仅支持TIC,对于使用IP协议41(RFC4213)的静态隧道,使用6in4"
 
 msgid "SIXXS-handle[/Tunnel-ID]"
 msgstr ""
 
 msgid "SNR"
-msgstr ""
+msgstr "SNR"
 
 msgid "SSH Access"
 msgstr "SSH访问"
@@ -2677,7 +2678,7 @@ msgid "Section removed"
 msgstr "移除的区域"
 
 msgid "See \"mount\" manpage for details"
-msgstr "详参\"mount\"联机帮助"
+msgstr "详参 \"mount\" 联机帮助"
 
 msgid ""
 "Send LCP echo requests at the given interval in seconds, only effective in "
@@ -2713,7 +2714,6 @@ msgstr "服务类型"
 msgid "Services"
 msgstr "服务"
 
-#, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "设置时间同步"
 
@@ -2721,7 +2721,7 @@ msgid "Setup DHCP Server"
 msgstr "配置DHCP服务器"
 
 msgid "Severely Errored Seconds (SES)"
-msgstr ""
+msgstr "严重误码秒(SES)"
 
 msgid "Short GI"
 msgstr ""
@@ -2739,7 +2739,7 @@ msgid "Signal"
 msgstr "信号"
 
 msgid "Signal Attenuation (SATN)"
-msgstr ""
+msgstr "信号衰减(SATN)"
 
 msgid "Signal:"
 msgstr "信号:"
@@ -2748,7 +2748,7 @@ msgid "Size"
 msgstr "大小"
 
 msgid "Size (.ipk)"
-msgstr ""
+msgstr "大小(.ipk)"
 
 msgid "Skip"
 msgstr "跳过"
@@ -2782,7 +2782,7 @@ msgid ""
 "flashed manually. Please refer to the wiki for device specific install "
 "instructions."
 msgstr ""
-"抱歉,您的设备暂不支持sysupgrade升级,需手动更新固件。请参考Wiki中关于此设备"
+"抱歉,您的设备暂不支持Sysupgrade升级,需手动更新固件。请参考Wiki中关于此设备"
 "的固件更新说明。"
 
 msgid "Sort"
@@ -2814,17 +2814,17 @@ msgid ""
 msgstr "指定假设主机已丢失的最大时间(秒)"
 
 msgid "Specify a TOS (Type of Service)."
-msgstr ""
+msgstr "指定TOS(服务类型)。"
 
 msgid ""
 "Specify a TTL (Time to Live) for the encapsulating packet other than the "
 "default (64)."
-msgstr ""
+msgstr "为封装数据包设置TTL(生存时间),缺省值:64"
 
 msgid ""
 "Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
 "bytes)."
-msgstr ""
+msgstr "设置MTU(最大传输单位),缺省值:1280 bytes"
 
 msgid "Specify the secret encryption key here."
 msgstr "在此指定密钥。"
@@ -2878,10 +2878,10 @@ msgid "Submit"
 msgstr "提交"
 
 msgid "Suppress logging"
-msgstr ""
+msgstr "不记录日志"
 
 msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
+msgstr "不记录这些协议的常规操作日志。"
 
 msgid "Swap"
 msgstr "交换区"
@@ -2896,14 +2896,14 @@ msgid "Switch %q"
 msgstr "交换机 %q"
 
 msgid "Switch %q (%s)"
-msgstr "交换机%q (%s)"
+msgstr "交换机 %q (%s)"
 
 msgid ""
 "Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
+msgstr "交换机 %q 具有未知的拓扑结构 - VLAN设置可能不正确。"
 
 msgid "Switch VLAN"
-msgstr ""
+msgstr "VLAN交换机"
 
 msgid "Switch protocol"
 msgstr "切换协议"
@@ -2948,7 +2948,7 @@ msgid "Target"
 msgstr "对象"
 
 msgid "Target network"
-msgstr ""
+msgstr "目标网络"
 
 msgid "Terminate"
 msgstr "关闭"
@@ -2977,7 +2977,7 @@ msgstr "HE.net客户端更新设置已经被改变,您现在必须使用用户
 
 msgid ""
 "The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
+msgstr "远程隧道端的IPv4地址或完整域名。"
 
 msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
@@ -2996,17 +2996,15 @@ msgstr "由于以下错误,配置文件无法被加载:"
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"存储器或分区的设备节点,(<abbr title=\"for example\">例如</abbr> <code>/dev/"
-"sda1</code>)"
+msgstr "存储器或分区的设备节点,(例如:<code>/dev/sda1</code>)"
 
 msgid ""
 "The filesystem that was used to format the memory (<abbr title=\"for example"
 "\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
 "samp>)"
 msgstr ""
-"用于格式化存储器的文件系统,(<abbr title=\"for example\">例如</abbr> "
-"<samp><abbr title=\"Third Extended Filesystem\">ext4</abbr></samp>)"
+"用于格式化存储器的文件系统,(例如:<samp><abbr title=\"第三代扩展文件系统"
+"\">ext3</abbr></samp>)"
 
 msgid ""
 "The flash image was uploaded. Below is the checksum and file size listed, "
@@ -3026,11 +3024,10 @@ msgstr "系统中的活跃连接。"
 msgid "The given network name is not unique"
 msgstr "给定的网络名重复"
 
-#, fuzzy
 msgid ""
 "The hardware is not multi-SSID capable and the existing configuration will "
 "be replaced if you proceed."
-msgstr "本机的硬件不支持多SSID,继续进行将会覆盖现有配置。"
+msgstr "本机的硬件不支持多SSID,如果继续,现有配置将被替换。"
 
 msgid ""
 "The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
@@ -3041,7 +3038,7 @@ msgid "The length of the IPv6 prefix in bits"
 msgstr "bit格式的IPv6前缀长度"
 
 msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
+msgstr "所创建隧道的本地IPv4地址(可选)。"
 
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
@@ -3051,16 +3048,15 @@ msgid ""
 "segments. Often there is by default one Uplink port for a connection to the "
 "next greater network like the internet and other ports for a local network."
 msgstr ""
-"本设备可以划分为多个<abbr title=\"Virtual Local Area Network\">VLAN</abbr>,"
-"并支持电脑间的直接通讯。<abbr title=\"Virtual Local Area Network\">VLAN</"
-"abbr>也常用于分割不同网段。默认通常是一条上行端口连接ISP,其余端口为本地子"
-"网。"
+"本设备可以划分为多个<abbr title=\"虚拟局域网\">VLAN</abbr>,并支持电脑间的直"
+"接通讯。<abbr title=\"虚拟局域网\">VLAN</abbr>也常用于分割不同网段。默认通常"
+"是一条上行端口连接ISP,其余端口为本地子网。"
 
 msgid "The selected protocol needs a device assigned"
 msgstr "所选的协议需要分配设备"
 
 msgid "The submitted security token is invalid or already expired!"
-msgstr ""
+msgstr "提交的安全令牌无效或已过期!"
 
 msgid ""
 "The system is erasing the configuration partition now and will reboot itself "
@@ -3079,7 +3075,7 @@ msgstr ""
 msgid ""
 "The tunnel end-point is behind NAT, defaults to disabled and only applies to "
 "AYIYA"
-msgstr ""
+msgstr "隧道端点在NAT之后,默认为禁用,仅适用于AYIYA"
 
 msgid ""
 "The uploaded image file does not contain a supported format. Make sure that "
@@ -3101,7 +3097,7 @@ msgstr "没有待生效的更改!"
 msgid ""
 "There is no device assigned yet, please attach a network device in the "
 "\"Physical Settings\" tab"
-msgstr "尚未分配设备,请在\"物理设置\"选项卡中选择网络设备"
+msgstr "尚未分配设备,请在“物理设置”选项卡中选择网络设备"
 
 msgid ""
 "There is no password set on this router. Please configure a root password to "
@@ -3116,6 +3112,8 @@ msgid ""
 "'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
 "Name System\">DNS</abbr> servers."
 msgstr ""
+"此文件可能包含类似'server=/domain/1.2.3.4'或'server=1.2.3.4'的行,来解析特定"
+"域名或指定上游<abbr title=\"域名服务系统\">DNS</abbr>服务器。"
 
 msgid ""
 "This is a list of shell glob patterns for matching files and directories to "
@@ -3128,7 +3126,7 @@ msgstr ""
 msgid ""
 "This is either the \"Update Key\" configured for the tunnel or the account "
 "password if no update key has been configured"
-msgstr "如果更新密钥没有设置的话,隧道的\"更新密钥\"或者账户密码必须填写."
+msgstr "如果更新密钥没有设置的话,隧道的“更新密钥”或者账户密码必须填写。"
 
 msgid ""
 "This is the content of /etc/rc.local. Insert your own commands here (in "
@@ -3143,19 +3141,17 @@ msgstr "隧道代理分配的本地终端地址,通常以<code>:2</code>结尾
 msgid ""
 "This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr> in the local network"
-msgstr ""
-"这是内网中唯一的<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>服务器"
+msgstr "这是内网中唯一的<abbr title=\"动态主机配置协议\">DHCP</abbr>服务器"
 
 msgid "This is the plain username for logging into the account"
 msgstr "登录账户时填写的用户名"
 
 msgid ""
 "This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
+msgstr "这是隧道代理分配给你的路由前缀,供客户端使用"
 
 msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "自定义系统crontab中的计划任务。"
+msgstr "自定义系统Crontab中的计划任务。"
 
 msgid ""
 "This is usually the address of the nearest PoP operated by the tunnel broker"
@@ -3268,7 +3264,7 @@ msgid "Unable to dispatch"
 msgstr "无法调度"
 
 msgid "Unavailable Seconds (UAS)"
-msgstr ""
+msgstr "不可用秒数(UAS)"
 
 msgid "Unknown"
 msgstr "未知"
@@ -3295,7 +3291,7 @@ msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
 "Check \"Keep settings\" to retain the current configuration (requires a "
 "compatible firmware image)."
-msgstr "上传兼容的sysupgrade固件以刷新当前系统。"
+msgstr "上传兼容的Sysupgrade固件以刷新当前系统。"
 
 msgid "Upload archive..."
 msgstr "上传备份..."
@@ -3325,7 +3321,7 @@ msgid "Use TTL on tunnel interface"
 msgstr "隧道接口的TTL"
 
 msgid "Use as external overlay (/overlay)"
-msgstr "作为外部overlay使用(/overlay)"
+msgstr "作为外部Overlay使用(/overlay)"
 
 msgid "Use as root filesystem (/)"
 msgstr "作为跟文件系统使用(/)"
@@ -3334,7 +3330,7 @@ msgid "Use broadcast flag"
 msgstr "使用广播标签"
 
 msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "使用内置的IPv6管理"
 
 msgid "Use custom DNS servers"
 msgstr "使用自定义的DNS服务器"
@@ -3377,19 +3373,19 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
-msgstr "%q上的VLAN"
+msgstr "%q 上的VLAN"
 
 msgid "VLANs on %q (%s)"
-msgstr "%q (%s)上的VLAN"
+msgstr "%q (%s) 上的VLAN"
 
 msgid "VPN Local address"
-msgstr ""
+msgstr "VPN本地地址"
 
 msgid "VPN Local port"
-msgstr ""
+msgstr "VPN本地端口"
 
 msgid "VPN Server"
 msgstr "VPN服务器"
@@ -3401,7 +3397,7 @@ msgid "VPN Server's certificate SHA1 hash"
 msgstr "VPN服务器证书的SHA1哈希值"
 
 msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
+msgstr "VPNC (CISCO 3000 和其他VPN)"
 
 msgid "Vendor"
 msgstr ""
@@ -3410,10 +3406,10 @@ msgid "Vendor Class to send when requesting DHCP"
 msgstr "请求DHCP时发送的Vendor Class"
 
 msgid "Verbose"
-msgstr ""
+msgstr "详细"
 
 msgid "Verbose logging by aiccu daemon"
-msgstr ""
+msgstr "aiccu守护程序详细日志"
 
 msgid "Verify"
 msgstr "验证"
@@ -3448,7 +3444,7 @@ msgstr ""
 
 msgid ""
 "Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
-msgstr "在NTP同步之前等待时间.设置为0表示同步之前不等待(可选)"
+msgstr "在NTP同步之前等待时间设置为0表示同步之前不等待(可选)"
 
 msgid "Waiting for changes to be applied..."
 msgstr "正在应用更改..."
@@ -3466,10 +3462,10 @@ msgid "Warning: There are unsaved changes that will get lost on reboot!"
 msgstr "警告:有一些未保存的配置将在重启后丢失!"
 
 msgid "Whether to create an IPv6 default route over the tunnel"
-msgstr ""
+msgstr "是否通过隧道创建IPv6缺省路由"
 
 msgid "Whether to route only packets from delegated prefixes"
-msgstr ""
+msgstr "是否仅路由来自分发前缀的数据包"
 
 msgid "Width"
 msgstr "频宽"
@@ -3514,7 +3510,7 @@ msgid "Write received DNS requests to syslog"
 msgstr "将收到的DNS请求写入系统日志"
 
 msgid "Write system log to file"
-msgstr ""
+msgstr "将系统日志写入文件"
 
 msgid "XR Support"
 msgstr "XR支持"
@@ -3536,8 +3532,8 @@ msgid ""
 "upgrade it to at least version 7 or use another browser like Firefox, Opera "
 "or Safari."
 msgstr ""
-"你的Internet Explorer已经老到无法正常显示这个页面了!请至少更新到IE7或者使用诸"
-"如Firefox Opera Safari之类的浏览器."
+"你的Internet Explorer已经老到无法正常显示这个页面了!请至少更新到IE7或者使用"
+"诸如Firefox Opera Safari之类的浏览器。"
 
 msgid "any"
 msgstr "任意"
@@ -3578,8 +3574,7 @@ msgstr "过期时间"
 msgid ""
 "file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr>-leases will be stored"
-msgstr ""
-"存放<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>租约的文件"
+msgstr "存放<abbr title=\"动态主机配置协议\">DHCP</abbr>租约的文件"
 
 msgid "forward"
 msgstr "转发"
@@ -3615,16 +3610,16 @@ msgid "kbit/s"
 msgstr "kbit/s"
 
 msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "本地<abbr title=\"Domain Name System\">DNS</abbr>解析文件"
+msgstr "本地<abbr title=\"域名服务系统\">DNS</abbr>解析文件"
 
 msgid "minimum 1280, maximum 1480"
-msgstr "最小值1280,最大值1480"
+msgstr "最小值1280最大值1480"
 
 msgid "navigation Navigation"
-msgstr ""
+msgstr "导航"
 
 msgid "no"
-msgstr "no"
+msgstr ""
 
 msgid "no link"
 msgstr "未连接"
@@ -3633,7 +3628,7 @@ msgid "none"
 msgstr "无"
 
 msgid "not present"
-msgstr ""
+msgstr "不存在"
 
 msgid "off"
 msgstr "关"
@@ -3645,7 +3640,7 @@ msgid "open"
 msgstr "开放式"
 
 msgid "overlay"
-msgstr ""
+msgstr "覆盖"
 
 msgid "relay mode"
 msgstr "中继模式"
@@ -3657,19 +3652,19 @@ msgid "server mode"
 msgstr "服务器模式"
 
 msgid "skiplink1 Skip to navigation"
-msgstr ""
+msgstr "skiplink1 跳转到导航"
 
 msgid "skiplink2 Skip to content"
-msgstr ""
+msgstr "skiplink2 跳到内容"
 
 msgid "stateful-only"
-msgstr ""
+msgstr "有状态的"
 
 msgid "stateless"
-msgstr ""
+msgstr "无状态的"
 
 msgid "stateless + stateful"
-msgstr ""
+msgstr "有状态和无状态的"
 
 msgid "tagged"
 msgstr "关联"
@@ -3684,7 +3679,7 @@ msgid "unspecified"
 msgstr "未指定"
 
 msgid "unspecified -or- create:"
-msgstr "未指定 // 创建:"
+msgstr "未指定或创建:"
 
 msgid "untagged"
 msgstr "不关联"
@@ -3699,7 +3694,7 @@ msgstr "« 后退"
 #~ msgstr "取消选中将会另外创建一个新网络,而不会覆盖当前网络设置"
 
 #~ msgid "Join Network: Settings"
-#~ msgstr "加入网络:设置"
+#~ msgstr "加入网络设置"
 
 #~ msgid "CPU"
 #~ msgstr "CPU"
index 1d712e4..8d0c434 100644 (file)
@@ -500,6 +500,8 @@ select,
 
 select {
        padding: initial;
+       background: #fff;
+       box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
 }
 
 input[type=checkbox], input[type=radio] {