summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--applications/luci-app-asterisk/luasrc/asterisk.lua10
-rw-r--r--applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm2
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua6
-rw-r--r--applications/luci-app-mwan3/po/de/mwan3.po3
-rw-r--r--applications/luci-app-mwan3/po/ja/mwan3.po3
-rw-r--r--applications/luci-app-mwan3/po/ru/mwan3.po3
-rw-r--r--applications/luci-app-mwan3/po/templates/mwan3.pot3
-rw-r--r--applications/luci-app-mwan3/po/zh-cn/mwan3.po3
-rw-r--r--applications/luci-app-mwan3/po/zh-tw/mwan3.po55
-rw-r--r--applications/luci-app-olsr-viz/htdocs/luci-static/resources/olsr-viz.js2
-rw-r--r--applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua6
-rw-r--r--applications/luci-app-siitwizard/luasrc/model/cbi/siitwizard.lua2
-rw-r--r--applications/luci-app-simple-adblock/po/zh-cn/simple-adblock.po3
-rw-r--r--applications/luci-app-simple-adblock/po/zh-tw/simple-adblock.po3
-rw-r--r--applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua5
-rw-r--r--applications/luci-app-splash/Makefile2
-rw-r--r--applications/luci-app-splash/luasrc/view/splash/splash.htm2
-rw-r--r--applications/luci-app-splash/po/ca/splash.po2
-rw-r--r--applications/luci-app-splash/po/cs/splash.po2
-rw-r--r--applications/luci-app-splash/po/de/splash.po2
-rw-r--r--applications/luci-app-splash/po/el/splash.po2
-rw-r--r--applications/luci-app-splash/po/en/splash.po2
-rw-r--r--applications/luci-app-splash/po/es/splash.po2
-rw-r--r--applications/luci-app-splash/po/fr/splash.po2
-rw-r--r--applications/luci-app-splash/po/he/splash.po2
-rw-r--r--applications/luci-app-splash/po/hu/splash.po2
-rw-r--r--applications/luci-app-splash/po/it/splash.po2
-rw-r--r--applications/luci-app-splash/po/ja/splash.po2
-rw-r--r--applications/luci-app-splash/po/ms/splash.po2
-rw-r--r--applications/luci-app-splash/po/no/splash.po2
-rw-r--r--applications/luci-app-splash/po/pl/splash.po2
-rw-r--r--applications/luci-app-splash/po/pt-br/splash.po2
-rw-r--r--applications/luci-app-splash/po/pt/splash.po2
-rw-r--r--applications/luci-app-splash/po/ro/splash.po2
-rw-r--r--applications/luci-app-splash/po/ru/splash.po2
-rw-r--r--applications/luci-app-splash/po/sk/splash.po2
-rw-r--r--applications/luci-app-splash/po/sv/splash.po2
-rw-r--r--applications/luci-app-splash/po/templates/splash.pot2
-rw-r--r--applications/luci-app-splash/po/tr/splash.po2
-rw-r--r--applications/luci-app-splash/po/uk/splash.po2
-rw-r--r--applications/luci-app-splash/po/vi/splash.po2
-rw-r--r--applications/luci-app-splash/po/zh-cn/splash.po2
-rw-r--r--applications/luci-app-splash/po/zh-tw/splash.po2
-rwxr-xr-xapplications/luci-app-splash/root/etc/init.d/luci_splash4
-rw-r--r--applications/luci-app-statistics/Makefile1
-rw-r--r--applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua2
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua2
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua2
-rw-r--r--applications/luci-app-travelmate/po/ja/travelmate.po72
-rw-r--r--applications/luci-app-travelmate/po/pt-br/travelmate.po6
-rw-r--r--applications/luci-app-travelmate/po/ru/travelmate.po47
-rw-r--r--applications/luci-app-travelmate/po/templates/travelmate.pot38
-rw-r--r--applications/luci-app-travelmate/po/zh-cn/travelmate.po143
-rw-r--r--applications/luci-app-travelmate/po/zh-tw/travelmate.po146
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound/zones.lua6
-rw-r--r--applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po7
-rw-r--r--applications/luci-app-wifischedule/README.md10
-rw-r--r--applications/luci-app-wireguard/po/ja/wireguard.po3
-rw-r--r--applications/luci-app-wireguard/po/pt-br/wireguard.po3
-rw-r--r--applications/luci-app-wireguard/po/ru/wireguard.po3
-rw-r--r--applications/luci-app-wireguard/po/sv/wireguard.po3
-rw-r--r--applications/luci-app-wireguard/po/templates/wireguard.pot3
-rw-r--r--applications/luci-app-wireguard/po/zh-cn/wireguard.po3
-rw-r--r--applications/luci-app-wireguard/po/zh-tw/wireguard.po3
-rwxr-xr-xbuild/check-controllers.sh2
-rwxr-xr-xbuild/i18n-scan.pl2
-rw-r--r--build/luadoc/luadoc/config.lua2
-rw-r--r--contrib/package/community-profiles/files/etc/config/profile_berlin2
-rw-r--r--contrib/package/community-profiles/files/etc/config/profile_cottbus2
-rw-r--r--contrib/package/community-profiles/files/etc/config/profile_potsdam2
-rw-r--r--contrib/package/community-profiles/files/etc/config/profile_tulumlibre2
-rw-r--r--contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh2
-rw-r--r--documentation/CBI.md4
-rw-r--r--documentation/Templates.md2
-rw-r--r--libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc2
-rw-r--r--libs/luci-lib-ip/src/ip.luadoc18
-rw-r--r--libs/luci-lib-iptparser/Makefile14
-rw-r--r--libs/luci-lib-iptparser/luasrc/sys/iptparser.lua (renamed from modules/luci-base/luasrc/sys/iptparser.lua)0
-rw-r--r--libs/luci-lib-iptparser/luasrc/sys/iptparser.luadoc (renamed from modules/luci-base/luasrc/sys/iptparser.luadoc)0
-rw-r--r--libs/luci-lib-nixio/docsrc/CHANGELOG.lua2
-rw-r--r--libs/luci-lib-nixio/docsrc/README.lua2
-rw-r--r--libs/luci-lib-nixio/docsrc/nixio.lua2
-rw-r--r--libs/luci-lib-px5g/src/library/bignum.c8
-rw-r--r--libs/luci-lib-px5g/src/library/x509write.c8
-rw-r--r--libs/luci-lib-px5g/src/polarssl/bignum.h6
-rw-r--r--libs/luci-lib-px5g/src/polarssl/x509.h6
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/cbi.js245
-rw-r--r--modules/luci-base/luasrc/dispatcher.luadoc2
-rw-r--r--modules/luci-base/luasrc/http.lua4
-rw-r--r--modules/luci-base/luasrc/http.luadoc4
-rw-r--r--modules/luci-base/luasrc/model/uci.lua2
-rw-r--r--modules/luci-base/luasrc/model/uci.luadoc6
-rw-r--r--modules/luci-base/luasrc/sys.luadoc8
-rw-r--r--modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua4
-rw-r--r--modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua2
-rw-r--r--modules/luci-base/luasrc/util.lua2
-rw-r--r--modules/luci-base/luasrc/util.luadoc4
-rw-r--r--modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm2
-rw-r--r--modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm2
-rw-r--r--modules/luci-base/po/ca/base.po23
-rw-r--r--modules/luci-base/po/cs/base.po23
-rw-r--r--modules/luci-base/po/de/base.po23
-rw-r--r--modules/luci-base/po/el/base.po23
-rw-r--r--modules/luci-base/po/en/base.po25
-rw-r--r--modules/luci-base/po/es/base.po23
-rw-r--r--modules/luci-base/po/fr/base.po23
-rw-r--r--modules/luci-base/po/he/base.po20
-rw-r--r--modules/luci-base/po/hu/base.po23
-rw-r--r--modules/luci-base/po/it/base.po20
-rw-r--r--modules/luci-base/po/ja/base.po23
-rw-r--r--modules/luci-base/po/ko/base.po23
-rw-r--r--modules/luci-base/po/ms/base.po23
-rw-r--r--modules/luci-base/po/no/base.po23
-rw-r--r--modules/luci-base/po/pl/base.po23
-rw-r--r--modules/luci-base/po/pt-br/base.po23
-rw-r--r--modules/luci-base/po/pt/base.po23
-rw-r--r--modules/luci-base/po/ro/base.po20
-rw-r--r--modules/luci-base/po/ru/base.po23
-rw-r--r--modules/luci-base/po/sk/base.po20
-rw-r--r--modules/luci-base/po/sv/base.po23
-rw-r--r--modules/luci-base/po/templates/base.pot20
-rw-r--r--modules/luci-base/po/tr/base.po20
-rw-r--r--modules/luci-base/po/uk/base.po23
-rw-r--r--modules/luci-base/po/vi/base.po23
-rw-r--r--modules/luci-base/po/zh-cn/base.po23
-rw-r--r--modules/luci-base/po/zh-tw/base.po23
-rw-r--r--modules/luci-base/src/template_utils.c2
-rw-r--r--modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua4
-rw-r--r--modules/luci-mod-status/luasrc/controller/admin/status.lua32
-rw-r--r--modules/luci-mod-status/luasrc/view/admin_status/iptables.htm387
-rw-r--r--modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua2
-rw-r--r--modules/luci-mod-system/luasrc/view/admin_system/packages.htm8
132 files changed, 1423 insertions, 666 deletions
diff --git a/applications/luci-app-asterisk/luasrc/asterisk.lua b/applications/luci-app-asterisk/luasrc/asterisk.lua
index ceb738d112..da94c556f9 100644
--- a/applications/luci-app-asterisk/luasrc/asterisk.lua
+++ b/applications/luci-app-asterisk/luasrc/asterisk.lua
@@ -35,7 +35,7 @@ function io.exec(command)
return buffer
end
---- Execute command and invoke given callback for each readed line
+--- Execute command and invoke given callback for each read line
-- @param command String containing the command to execute
-- @param callback Function to call back for each line
-- @return Always true
@@ -53,7 +53,7 @@ function io.execl(command, callback)
return true
end
---- Execute command and return an iterator that returns one line per invokation
+--- Execute command and return an iterator that returns one line per invocation
-- @param command String containing the command to execute
-- @return Iterator function
function io.execi(command)
@@ -71,7 +71,7 @@ end
--- LuCI Asterisk - core status
core = luci.util.class()
---- Retrive version string.
+--- Retrieve version string.
-- @return String containing the reported asterisk version
function core.version(self)
local version = io.exec("core show version")
@@ -141,7 +141,7 @@ function sip.peers(self)
return peers
end
---- Get informations of given SIP peer
+--- Get information of given SIP peer
-- @param peer String containing the name of the SIP peer
function sip.peer(peer)
local info = { }
@@ -217,7 +217,7 @@ end
--- Convert given list to a collection of hyperlinks
-- @param list Table of tokens
-- @param url String pattern or callback function to construct urls (optional)
--- @param sep String containing the seperator (optional, default is ", ")
+-- @param sep String containing the separator (optional, default is ", ")
-- @return String containing the html fragment
function tools.hyperlinks(list, url, sep)
local html
diff --git a/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm b/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm
index 66a06b20f7..3cbc5002be 100644
--- a/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm
+++ b/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm
@@ -126,7 +126,7 @@
<div class="cbi-section-create cbi-tblsection-create" style="padding: 3px">
<h3>Create a new dialzone</h3>
The name is required and must be unique. It may only contain the characters A-Z, a-z, 0-9 and _ .<br />
- You can specifiy multiple number matches by separating them with spaces.<br />
+ You can specify multiple number matches by separating them with spaces.<br />
<%- if create_error then %>
<br /><span style="color:red">Invalid name given!</span><br />
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
index eb2159076e..ecabec4e22 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
@@ -90,7 +90,7 @@ end
-- will use dynamic_dns_lucihelper to check if
-- local IP can be read
local function _verify_ip_source()
- -- section is globally defined here be calling agrument (see above)
+ -- section is globally defined here be calling argument (see above)
local _arg
local _ipv6 = usev6:formvalue(section)
@@ -173,7 +173,7 @@ end
-- function to verify if option is valid
local function _option_validate(self, value, optional)
- -- section is globally defined here be calling agrument (see above)
+ -- section is globally defined here be calling argument (see above)
local fusev6 = usev6:formvalue(section) or "0"
local fsvc4 = svc4:formvalue(section) or "-"
local fsvc6 = svc6:formvalue(section) or "-"
@@ -200,7 +200,7 @@ local function _option_validate(self, value, optional)
if (#urlsh == 0) then return "" end
used = _option_used(self.option, urlsh)
- -- on error or not used return empty sting
+ -- on error or not used return empty string
if used < 1 then return "" end
-- needed but no data then return error
if not value or (#value == 0) then
diff --git a/applications/luci-app-mwan3/po/de/mwan3.po b/applications/luci-app-mwan3/po/de/mwan3.po
index 6f391e84d0..641733e5ac 100644
--- a/applications/luci-app-mwan3/po/de/mwan3.po
+++ b/applications/luci-app-mwan3/po/de/mwan3.po
@@ -202,6 +202,9 @@ msgid ""
"rules"
msgstr ""
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr ""
diff --git a/applications/luci-app-mwan3/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po
index 8a1cad2f6b..40c71b00ac 100644
--- a/applications/luci-app-mwan3/po/ja/mwan3.po
+++ b/applications/luci-app-mwan3/po/ja/mwan3.po
@@ -222,6 +222,9 @@ msgstr ""
"スは使用できません。<br />インターフェースには、設定済みのメンバーやポリ"
"シー、ルールと同じ名前を使用することはできません。"
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr "最大パケットレイテンシ [ms]"
diff --git a/applications/luci-app-mwan3/po/ru/mwan3.po b/applications/luci-app-mwan3/po/ru/mwan3.po
index 4d52d7108c..884848da4b 100644
--- a/applications/luci-app-mwan3/po/ru/mwan3.po
+++ b/applications/luci-app-mwan3/po/ru/mwan3.po
@@ -222,6 +222,9 @@ msgstr ""
"символы A-Z, a-z, 0-9, _ и пробелы.<br />Интерфейсы не могут иметь "
"одинаковые имена с настроенными узлами, политиками или правилами."
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr ""
diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot
index e815afd1f0..8f43b3dd10 100644
--- a/applications/luci-app-mwan3/po/templates/mwan3.pot
+++ b/applications/luci-app-mwan3/po/templates/mwan3.pot
@@ -196,6 +196,9 @@ msgid ""
"rules"
msgstr ""
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr ""
diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po
index f481eadd7a..91475a61e0 100644
--- a/applications/luci-app-mwan3/po/zh-cn/mwan3.po
+++ b/applications/luci-app-mwan3/po/zh-cn/mwan3.po
@@ -211,6 +211,9 @@ msgstr ""
"的接口名称匹配。<br />名称允许包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />接"
"口不应该与成员、策略、规则中的任意一个设置项使用相同的名称"
+msgid "Max TTL"
+msgstr ""
+
msgid "Max packet latency [ms]"
msgstr "最大数据包延迟 [ms]"
diff --git a/applications/luci-app-mwan3/po/zh-tw/mwan3.po b/applications/luci-app-mwan3/po/zh-tw/mwan3.po
index cdd2a66f47..3aaf030cf2 100644
--- a/applications/luci-app-mwan3/po/zh-tw/mwan3.po
+++ b/applications/luci-app-mwan3/po/zh-tw/mwan3.po
@@ -207,9 +207,12 @@ msgid ""
"rules"
msgstr ""
"MWAN 支援最多 252 個物理或邏輯介面。<br />MWAN 要求所有介面必須在 /etc/"
-"config/network 中設定唯一的閘道器躍點。<br />名稱必須與 /etc/config/network 中"
-"的介面名稱匹配。<br />名稱允許包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />接"
-"口不應該與成員、策略、規則中的任意一個設定項使用相同的名稱"
+"config/network 中設定唯一的閘道器躍點。<br />名稱必須與 /etc/config/network "
+"中的介面名稱匹配。<br />名稱允許包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />"
+"接口不應該與成員、策略、規則中的任意一個設定項使用相同的名稱"
+
+msgid "Max TTL"
+msgstr ""
msgid "Max packet latency [ms]"
msgstr "最大資料包延遲 [ms]"
@@ -238,9 +241,9 @@ msgid ""
">Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />Members "
"may not share the same name as configured interfaces, policies or rules"
msgstr ""
-"“成員”用來設定每一個 MWAN 介面的躍點數(即介面優先順序)和所佔比重。<br />名稱"
-"允許包括 A-Z、 a-、0-9、_ 但是不能有空格。<br />成員不應該與介面、策略、規則"
-"中的任意一個設定項使用相同的名稱"
+"“成員”用來設定每一個 MWAN 介面的躍點數(即介面優先順序)和所佔比重。<br />名"
+"稱允許包括 A-Z、 a-、0-9、_ 但是不能有空格。<br />成員不應該與介面、策略、規"
+"則中的任意一個設定項使用相同的名稱"
msgid "Members assigned"
msgstr "分配的成員"
@@ -365,8 +368,8 @@ msgid ""
"z, 0-9, _ and no spaces<br />Rules may not share the same name as configured "
"interfaces, members or policies"
msgstr ""
-"規則指定哪些流量將使用特定的 MWAN 策略<br />規則基於 IP 位址,埠或協議<br /"
-">規則從上到下匹配<br />匹配規則以下的規則被忽略<br />不符合任何規則的流量將使"
+"規則指定哪些流量將使用特定的 MWAN 策略<br />規則基於 IP 位址,埠或協議<br />"
+"規則從上到下匹配<br />匹配規則以下的規則被忽略<br />不符合任何規則的流量將使"
"用主路由表進行路由<br />目的地為已知(非預設)網路的流量由主路由表處理<br />"
"流量符合規則,但該策略的所有 WAN 介面關閉後都會被失效<br />名稱可包含字元 A-"
"Z,a-z,0-9,_ 和空格<br />規則不能與配置的介面、成員或策略共享相同的名稱"
@@ -422,12 +425,12 @@ msgid ""
"\"wwan0\")<br /><br />"
msgstr ""
"這裡允許您修改“/etc/mwan3.user”的內容。<br />該檔案在 sysupgrade 期間也會保"
-"留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼的第一行必"
-"須是 &#34;#!/bin/sh&#34;,不帶引號。<br />以 # 開頭的行是註釋,不會執行。"
+"留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼的第一"
+"行必須是 &#34;#!/bin/sh&#34;,不帶引號。<br />以 # 開頭的行是註釋,不會執行。"
"<br />將您的自定義 mwan3 動作放在這裡,他們將<br />在啟用 mwan3 的介面上<br /"
">在 netifd hotplug 介面事件時執行。<br /><br />有三個主要的環境變數傳遞給這個"
-"指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE 啟動或停止的介面名"
-"(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理裝置名(例"
+"指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE 啟動或停止的介面"
+"名(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理裝置名(例"
"如“eth0”或“wwan0”)<br /><br />"
msgid "Tracking hostname or IP address"
@@ -540,13 +543,13 @@ msgstr "不可達(拒絕)"
#~ "g. \"eth0\" or \"wwan0\")<br /><br />"
#~ msgstr ""
#~ "這裡允許您修改“/etc/mwan3.user”的內容。<br />該檔案在 sysupgrade 期間也會"
-#~ "保留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼的第"
-#~ "一行必須是&#34;#!/bin/sh&#34;,不帶引號。<br />以#開頭的行是註釋,不會執"
-#~ "行。<br />將您的自定義 mwan3 動作放在這裡,他們將<br />在啟用 mwan3 的介面"
-#~ "上<br />在 netifd hotplug 介面事件時執行。<br /><br />有三個主要的環境變數"
-#~ "傳遞給這個指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE 啟動"
-#~ "或停止的介面名(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理裝置"
-#~ "名(例如“eth0”或“wwan0”)<br /><br />"
+#~ "保留。<br /><br />注意:<br />該檔案會作為 shell 指令碼解釋。<br />指令碼"
+#~ "的第一行必須是&#34;#!/bin/sh&#34;,不帶引號。<br />以#開頭的行是註釋,不會"
+#~ "執行。<br />將您的自定義 mwan3 動作放在這裡,他們將<br />在啟用 mwan3 的介"
+#~ "面上<br />在 netifd hotplug 介面事件時執行。<br /><br />有三個主要的環境變"
+#~ "數傳遞給這個指令碼。<br /><br />$ACTION “ifup”或“ifdown”<br />$INTERFACE "
+#~ "啟動或停止的介面名(例如“wan”或“wwan”)<br />$DEVICE 啟動或停止介面的物理"
+#~ "裝置名(例如“eth0”或“wwan0”)<br /><br />"
#~ msgid "Currently Configured Interfaces"
#~ msgstr "當前配置的介面"
@@ -628,8 +631,8 @@ msgstr "不可達(拒絕)"
#~ "no spaces<br />Rules may not share the same name as configured "
#~ "interfaces, members or policies"
#~ msgstr ""
-#~ "“規則”基於 IP 位址、協議、埠把流量劃分到指定的“策略”中。<br />規則按照從"
-#~ "上到下的順序進行匹配。除了第一條能夠匹配一次通訊的規則以外,其它規則將被忽"
+#~ "“規則”基於 IP 位址、協議、埠把流量劃分到指定的“策略”中。<br />規則按照從上"
+#~ "到下的順序進行匹配。除了第一條能夠匹配一次通訊的規則以外,其它規則將被忽"
#~ "略。不匹配任何規則的通訊將會由系統預設路由表進行。<br />來自已知的網路的轉"
#~ "發流量由系統預設路由表接手,然後 MWAN 從中匹配出相應的流量並轉移到 MWAN 自"
#~ "己的路由表。但是所有被劃分到一個無法使用的策略的流量將會無法正常進行路由。"
@@ -783,8 +786,8 @@ msgstr "不可達(拒絕)"
#~ "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)"
#~ msgstr ""
#~ "這裡允許您修改 /etc/hotplug.d/iface/16-mwancustom 的內容<br />這可以在接"
-#~ "口 ifup 或 ifdown Hotplug 事件時執行系統指令或指令碼<br /><br />注意:<br />"
-#~ "指令碼的第一行必須是 &#34;#!/bin/sh&#34; 不含引號<br />以#開頭的行是註釋,"
-#~ "不會執行<br /><br />可用變數:<br />$ACTION 是 Hotplug 事件(ifup, ifdown)"
-#~ "<br />$INTERFACE 是介面名稱(wan1、wan2 等)<br />$DEVICE 是連線到介面的設"
-#~ "備名稱 (eth0.1、eth1 等)"
+#~ "口 ifup 或 ifdown Hotplug 事件時執行系統指令或指令碼<br /><br />注意:<br /"
+#~ ">指令碼的第一行必須是 &#34;#!/bin/sh&#34; 不含引號<br />以#開頭的行是註"
+#~ "釋,不會執行<br /><br />可用變數:<br />$ACTION 是 Hotplug 事件(ifup, "
+#~ "ifdown)<br />$INTERFACE 是介面名稱(wan1、wan2 等)<br />$DEVICE 是連線到"
+#~ "介面的設備名稱 (eth0.1、eth1 等)"
diff --git a/applications/luci-app-olsr-viz/htdocs/luci-static/resources/olsr-viz.js b/applications/luci-app-olsr-viz/htdocs/luci-static/resources/olsr-viz.js
index 49435a4a33..60a103adfb 100644
--- a/applications/luci-app-olsr-viz/htdocs/luci-static/resources/olsr-viz.js
+++ b/applications/luci-app-olsr-viz/htdocs/luci-static/resources/olsr-viz.js
@@ -329,7 +329,7 @@ function place_new_nodes() {
}
}
else {
- // beginn somewhere
+ // begin somewhere
n.x = Math.random()*400;
n.y = Math.random()*400;
}
diff --git a/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua b/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua
index 90754c2bc1..722af19e21 100644
--- a/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua
+++ b/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua
@@ -544,7 +544,7 @@ function bl.validate(self, value)
elseif v < 1 or v > 4096 then
return nil, err_tab_access(self.title_base, translate("Value not between 1 and 4096") )
elseif v == self.default then
- return "" -- dont need to save default
+ return "" -- don't need to save default
end
return value
end
@@ -721,7 +721,7 @@ function st.validate(self, value)
elseif v < 1 then
return nil, err_tab_misc(self.title_base, translate("Value not greater 0 or empty") )
elseif v == self.default then
- return "" -- dont need to save default
+ return "" -- don't need to save default
end
return value
end
@@ -740,7 +740,7 @@ function mcc.validate(self, value)
elseif v < 1 then
return nil, err_tab_misc(self.title_base, translate("Value not greater 0 or empty") )
elseif v == self.default then
- return "" -- dont need to save default
+ return "" -- don't need to save default
end
return value
end
diff --git a/applications/luci-app-siitwizard/luasrc/model/cbi/siitwizard.lua b/applications/luci-app-siitwizard/luasrc/model/cbi/siitwizard.lua
index 0d738326a0..413b3b481f 100644
--- a/applications/luci-app-siitwizard/luasrc/model/cbi/siitwizard.lua
+++ b/applications/luci-app-siitwizard/luasrc/model/cbi/siitwizard.lua
@@ -167,7 +167,7 @@ function mode.write(self, section, value)
-- * wl0 gets an ipv6 address, in this case the fdca:ffee:babe::1:1/64
-- * we do a ::ffff:ffff:0/96 route into siit0, so everything from 6mesh goes into translation.
-- * an HNA6 of ::ffff:ffff:0:0/96 announces the mapped 0.0.0.0/0 ipv4 space.
- -- * MTU on WAN, LAN down to 1400, ipv6 headers are slighly larger.
+ -- * MTU on WAN, LAN down to 1400, ipv6 headers are slightly larger.
if value == "gateway" then
diff --git a/applications/luci-app-simple-adblock/po/zh-cn/simple-adblock.po b/applications/luci-app-simple-adblock/po/zh-cn/simple-adblock.po
index b926fd0837..11a2364ffe 100644
--- a/applications/luci-app-simple-adblock/po/zh-cn/simple-adblock.po
+++ b/applications/luci-app-simple-adblock/po/zh-cn/simple-adblock.po
@@ -104,6 +104,9 @@ msgstr "简单 AdBlock 设置"
msgid "Some output"
msgstr "一些输出"
+msgid "Start Simple Adblock service"
+msgstr ""
+
msgid "Stop the download if it is stalled for set number of seconds"
msgstr "如果下载停滞设定的秒数后,则停止下载"
diff --git a/applications/luci-app-simple-adblock/po/zh-tw/simple-adblock.po b/applications/luci-app-simple-adblock/po/zh-tw/simple-adblock.po
index bbeda42c29..c4c31aa071 100644
--- a/applications/luci-app-simple-adblock/po/zh-tw/simple-adblock.po
+++ b/applications/luci-app-simple-adblock/po/zh-tw/simple-adblock.po
@@ -104,6 +104,9 @@ msgstr "簡單 AdBlock 設定"
msgid "Some output"
msgstr "一些輸出"
+msgid "Start Simple Adblock service"
+msgstr ""
+
msgid "Stop the download if it is stalled for set number of seconds"
msgstr "如果下載停滯設定的秒數後,則停止下載"
diff --git a/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua b/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua
index b3c0f2660b..cc6951e171 100644
--- a/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua
+++ b/applications/luci-app-snmpd/luasrc/model/cbi/snmpd.lua
@@ -26,11 +26,12 @@ s.anonymous = true
p = s:option(Value, "agentaddress", "The address the agent should listen on",
[[Eg: UDP:161, or UDP:10.5.4.3:161 to only listen on a given interface]])
-s = m:section(TypedSection, "agentx", "AgentX settings")
+s = m:section(TypedSection, "agentx", "AgentX settings", "Delete this section to disable agentx")
s.anonymous = true
p = s:option(Value, "agentxsocket", "The address the agent should allow agentX connections to",
[[This is only necessary if you have subagents using the agentX socket protocol.
- Note that agentX requires TCP transport]])
+ Eg: /var/run/agentx.sock]])
+s.addremove=true
s = m:section(TypedSection, "com2sec", "com2sec security")
p = s:option(Value, "secname", "secname")
diff --git a/applications/luci-app-splash/Makefile b/applications/luci-app-splash/Makefile
index 5740aa5f7c..4653724871 100644
--- a/applications/luci-app-splash/Makefile
+++ b/applications/luci-app-splash/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=Freifunk DHCP-Splash application
-LUCI_DEPENDS:=+luci-lib-nixio +tc +kmod-sched +iptables-mod-nat-extra +iptables-mod-ipopt
+LUCI_DEPENDS:=+luci-lib-nixio +luci-lib-iptparser +tc +kmod-sched +iptables-mod-nat-extra +iptables-mod-ipopt
define Package/luci-app-splash/conffiles
/etc/config/luci_splash
diff --git a/applications/luci-app-splash/luasrc/view/splash/splash.htm b/applications/luci-app-splash/luasrc/view/splash/splash.htm
index 8d84463ef7..64c326ff3a 100644
--- a/applications/luci-app-splash/luasrc/view/splash/splash.htm
+++ b/applications/luci-app-splash/luasrc/view/splash/splash.htm
@@ -81,7 +81,7 @@ if has_custom_splash then
is limited and because of this we ask you not to do any of the following:%></p>
<ul>
<li><%:use filesharing applications on this network%></li>
- <li><%:waste bandwidth with unneccesary downloads or streams%></li>
+ <li><%:waste bandwidth with unnecessary downloads or streams%></li>
<li><%:perform any kind of illegal activities%></li>
</ul>
<br />
diff --git a/applications/luci-app-splash/po/ca/splash.po b/applications/luci-app-splash/po/ca/splash.po
index 3afef1a7b3..b6786750c9 100644
--- a/applications/luci-app-splash/po/ca/splash.po
+++ b/applications/luci-app-splash/po/ca/splash.po
@@ -323,7 +323,7 @@ msgstr "desconegut"
msgid "use filesharing applications on this network"
msgstr "utilitza aplicacions de compartició de fitxers en aquesta xarxa"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "malgasta l'amplada de banda amb baixades o corrents innecessaris"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/cs/splash.po b/applications/luci-app-splash/po/cs/splash.po
index 671afd79e2..faa8509473 100644
--- a/applications/luci-app-splash/po/cs/splash.po
+++ b/applications/luci-app-splash/po/cs/splash.po
@@ -324,7 +324,7 @@ msgstr "neznámý"
msgid "use filesharing applications on this network"
msgstr "používat aplikace na sdílení souborů v této síti"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "plýtvat šířkou pásma nepotřebným stahováním nebo streamy"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/de/splash.po b/applications/luci-app-splash/po/de/splash.po
index 8b1cd9a5ec..4fc2cb6b03 100644
--- a/applications/luci-app-splash/po/de/splash.po
+++ b/applications/luci-app-splash/po/de/splash.po
@@ -368,7 +368,7 @@ msgstr "Unbekannt"
msgid "use filesharing applications on this network"
msgstr "Filesharing betreiben"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "Bandbreite durch unnötige Downloads oder Streams zu verschwenden."
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/el/splash.po b/applications/luci-app-splash/po/el/splash.po
index df90478f71..5c5db96f3d 100644
--- a/applications/luci-app-splash/po/el/splash.po
+++ b/applications/luci-app-splash/po/el/splash.po
@@ -300,7 +300,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/en/splash.po b/applications/luci-app-splash/po/en/splash.po
index 615be16b23..496b58485c 100644
--- a/applications/luci-app-splash/po/en/splash.po
+++ b/applications/luci-app-splash/po/en/splash.po
@@ -285,7 +285,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/es/splash.po b/applications/luci-app-splash/po/es/splash.po
index 836352ea9b..12cb4041fb 100644
--- a/applications/luci-app-splash/po/es/splash.po
+++ b/applications/luci-app-splash/po/es/splash.po
@@ -350,7 +350,7 @@ msgstr "desconocido"
msgid "use filesharing applications on this network"
msgstr "usar aplicaciones de compartición de ficheros en esta red"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "malgastar ancho de banda con descargas innecesarias o multimedia"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/fr/splash.po b/applications/luci-app-splash/po/fr/splash.po
index e525ab316c..c8894c4793 100644
--- a/applications/luci-app-splash/po/fr/splash.po
+++ b/applications/luci-app-splash/po/fr/splash.po
@@ -308,7 +308,7 @@ msgstr "inconnu"
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/he/splash.po b/applications/luci-app-splash/po/he/splash.po
index bf7e2f0745..d3931f04e9 100644
--- a/applications/luci-app-splash/po/he/splash.po
+++ b/applications/luci-app-splash/po/he/splash.po
@@ -309,7 +309,7 @@ msgstr "לא ידוע"
msgid "use filesharing applications on this network"
msgstr "השתמש בתוכנות לשיתוף קבצים ברשת זו."
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "לבזבז רוחב פס עם הורדות או שידורים מיותרים"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/hu/splash.po b/applications/luci-app-splash/po/hu/splash.po
index f2c7da14ab..c80dfc9d27 100644
--- a/applications/luci-app-splash/po/hu/splash.po
+++ b/applications/luci-app-splash/po/hu/splash.po
@@ -296,7 +296,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/it/splash.po b/applications/luci-app-splash/po/it/splash.po
index 8964b6c3fb..2e9dd4db01 100644
--- a/applications/luci-app-splash/po/it/splash.po
+++ b/applications/luci-app-splash/po/it/splash.po
@@ -333,7 +333,7 @@ msgstr "sconosciuto"
msgid "use filesharing applications on this network"
msgstr "utilizzare le applicazioni di filesharing su questa rete"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "sprecate banda con download o flussi inutili"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/ja/splash.po b/applications/luci-app-splash/po/ja/splash.po
index 615be16b23..496b58485c 100644
--- a/applications/luci-app-splash/po/ja/splash.po
+++ b/applications/luci-app-splash/po/ja/splash.po
@@ -285,7 +285,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/ms/splash.po b/applications/luci-app-splash/po/ms/splash.po
index 615be16b23..496b58485c 100644
--- a/applications/luci-app-splash/po/ms/splash.po
+++ b/applications/luci-app-splash/po/ms/splash.po
@@ -285,7 +285,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/no/splash.po b/applications/luci-app-splash/po/no/splash.po
index 615be16b23..496b58485c 100644
--- a/applications/luci-app-splash/po/no/splash.po
+++ b/applications/luci-app-splash/po/no/splash.po
@@ -285,7 +285,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/pl/splash.po b/applications/luci-app-splash/po/pl/splash.po
index 68568848f0..3ce4e0571c 100644
--- a/applications/luci-app-splash/po/pl/splash.po
+++ b/applications/luci-app-splash/po/pl/splash.po
@@ -359,7 +359,7 @@ msgid "use filesharing applications on this network"
msgstr "używał programów do dzielenia się plikami w tej sieci"
# j.w.
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "marnował transfer na niepotrzebne pobieranie plików i strumieni"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/pt-br/splash.po b/applications/luci-app-splash/po/pt-br/splash.po
index cbdc8016c1..32e7073727 100644
--- a/applications/luci-app-splash/po/pt-br/splash.po
+++ b/applications/luci-app-splash/po/pt-br/splash.po
@@ -363,7 +363,7 @@ msgstr "desconhecido"
msgid "use filesharing applications on this network"
msgstr "usar aplicativos de compartilhamento de arquivos nesta rede"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "usar banda com fluxos ou arquivos baixados não necessários"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/pt/splash.po b/applications/luci-app-splash/po/pt/splash.po
index 05bee4f323..f5ad6f5153 100644
--- a/applications/luci-app-splash/po/pt/splash.po
+++ b/applications/luci-app-splash/po/pt/splash.po
@@ -302,7 +302,7 @@ msgstr "desconhecido"
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/ro/splash.po b/applications/luci-app-splash/po/ro/splash.po
index 615be16b23..496b58485c 100644
--- a/applications/luci-app-splash/po/ro/splash.po
+++ b/applications/luci-app-splash/po/ro/splash.po
@@ -285,7 +285,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/ru/splash.po b/applications/luci-app-splash/po/ru/splash.po
index 24151654a6..c5688c3297 100644
--- a/applications/luci-app-splash/po/ru/splash.po
+++ b/applications/luci-app-splash/po/ru/splash.po
@@ -359,7 +359,7 @@ msgstr "неизвестно"
msgid "use filesharing applications on this network"
msgstr "использование файлообменных приложений в этой сети"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "тратить пропускную способность на ненужные загрузки или потоки"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/sk/splash.po b/applications/luci-app-splash/po/sk/splash.po
index e9dd448ec5..3e5e43abb9 100644
--- a/applications/luci-app-splash/po/sk/splash.po
+++ b/applications/luci-app-splash/po/sk/splash.po
@@ -296,7 +296,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/sv/splash.po b/applications/luci-app-splash/po/sv/splash.po
index a5ebcb7efe..4a5c29a5bc 100644
--- a/applications/luci-app-splash/po/sv/splash.po
+++ b/applications/luci-app-splash/po/sv/splash.po
@@ -313,7 +313,7 @@ msgstr "okänd"
msgid "use filesharing applications on this network"
msgstr "använd fildelningsapplikationer i det här nätverket"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "slösa bandbredd med onödiga nerladdningar eller strömmar"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/templates/splash.pot b/applications/luci-app-splash/po/templates/splash.pot
index f29b736915..233e76d4fd 100644
--- a/applications/luci-app-splash/po/templates/splash.pot
+++ b/applications/luci-app-splash/po/templates/splash.pot
@@ -288,7 +288,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/tr/splash.po b/applications/luci-app-splash/po/tr/splash.po
index 03fa7b3b74..f78e542298 100644
--- a/applications/luci-app-splash/po/tr/splash.po
+++ b/applications/luci-app-splash/po/tr/splash.po
@@ -296,7 +296,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/uk/splash.po b/applications/luci-app-splash/po/uk/splash.po
index 2364c63d41..1a5ce49ff4 100644
--- a/applications/luci-app-splash/po/uk/splash.po
+++ b/applications/luci-app-splash/po/uk/splash.po
@@ -297,7 +297,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/vi/splash.po b/applications/luci-app-splash/po/vi/splash.po
index 615be16b23..496b58485c 100644
--- a/applications/luci-app-splash/po/vi/splash.po
+++ b/applications/luci-app-splash/po/vi/splash.po
@@ -285,7 +285,7 @@ msgstr ""
msgid "use filesharing applications on this network"
msgstr ""
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr ""
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/zh-cn/splash.po b/applications/luci-app-splash/po/zh-cn/splash.po
index fbb49af845..ff6831fa23 100644
--- a/applications/luci-app-splash/po/zh-cn/splash.po
+++ b/applications/luci-app-splash/po/zh-cn/splash.po
@@ -329,7 +329,7 @@ msgstr "未知"
msgid "use filesharing applications on this network"
msgstr "在此网络上使用文件共享应用程序"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "用不必要的下载或流媒体浪费带宽"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/po/zh-tw/splash.po b/applications/luci-app-splash/po/zh-tw/splash.po
index 6238a666b4..395e12fa07 100644
--- a/applications/luci-app-splash/po/zh-tw/splash.po
+++ b/applications/luci-app-splash/po/zh-tw/splash.po
@@ -329,7 +329,7 @@ msgstr "未知"
msgid "use filesharing applications on this network"
msgstr "在此網路上使用檔案共享應用程式"
-msgid "waste bandwidth with unneccesary downloads or streams"
+msgid "waste bandwidth with unnecessary downloads or streams"
msgstr "用不必要的下載或流媒體浪費頻寬"
msgid "whitelisted"
diff --git a/applications/luci-app-splash/root/etc/init.d/luci_splash b/applications/luci-app-splash/root/etc/init.d/luci_splash
index feefabd81a..01a606c321 100755
--- a/applications/luci-app-splash/root/etc/init.d/luci_splash
+++ b/applications/luci-app-splash/root/etc/init.d/luci_splash
@@ -237,12 +237,12 @@ start() {
[ -s $IPT_REPLAY ] && . $IPT_REPLAY
echo -n > $IPT_REPLAY
- ### Add interface independant prerouting rules
+ ### Add interface independent prerouting rules
$IPT -t nat -A luci_splash_prerouting -j luci_splash_leases
$IPT -t nat -A luci_splash_leases -p udp --dport 53 -j REDIRECT --to-ports 53
$IPT -t nat -A luci_splash_leases -p tcp --dport 80 -j REDIRECT --to-ports 8082
- ### Add interface independant forwarding rules
+ ### Add interface independent forwarding rules
$IPT -t filter -A luci_splash_forwarding -j luci_splash_filter
$IPT -t filter -A luci_splash_filter -p tcp -j REJECT --reject-with tcp-reset
$IPT -t filter -A luci_splash_filter -j REJECT --reject-with icmp-net-prohibited
diff --git a/applications/luci-app-statistics/Makefile b/applications/luci-app-statistics/Makefile
index 008792a5d0..b552400fed 100644
--- a/applications/luci-app-statistics/Makefile
+++ b/applications/luci-app-statistics/Makefile
@@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Statistics Application
LUCI_DEPENDS:= \
+ +luci-lib-iptparser \
+collectd +rrdtool1 +collectd-mod-rrdtool +collectd-mod-iwinfo \
+collectd-mod-cpu +collectd-mod-memory \
+collectd-mod-interface +collectd-mod-load +collectd-mod-network
diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index ec26f02d0d..de7bdbadfe 100644
--- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -10,7 +10,7 @@ function index()
require("luci.util")
require("luci.statistics.datatree")
- -- override entry(): check for existance <plugin>.so where <plugin> is derived from the called path
+ -- override entry(): check for existence <plugin>.so where <plugin> is derived from the called path
function _entry( path, ... )
local file = path[5] or path[4]
if nixio.fs.access( "/usr/lib/collectd/" .. file .. ".so" ) then
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua
index 6f687d218d..6ca65e539f 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/interface.lua
@@ -17,7 +17,7 @@ function rrdargs( graph, plugin, plugin_instance )
-- diagram data description
data = {
- -- defined sources for data types, if ommitted assume a single DS named "value" (optional)
+ -- defined sources for data types, if omitted assume a single DS named "value" (optional)
sources = {
if_octets = { "tx", "rx" }
},
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua
index 7b6acf3663..a612126ed0 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/netlink.lua
@@ -14,7 +14,7 @@ function rrdargs( graph, plugin, plugin_instance )
-- diagram data description
data = {
- -- defined sources for data types, if ommitted assume a single DS named "value" (optional)
+ -- defined sources for data types, if omitted assume a single DS named "value" (optional)
sources = {
if_octets = { "tx", "rx" }
},
diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po
index f608a2aa9a..ee081d62d2 100644
--- a/applications/luci-app-travelmate/po/ja/travelmate.po
+++ b/applications/luci-app-travelmate/po/ja/travelmate.po
@@ -12,6 +12,9 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"Language: ja\n"
+msgid "AP on"
+msgstr ""
+
msgid "Action"
msgstr ""
@@ -59,12 +62,6 @@ msgid ""
msgstr ""
"トラベル ルーター機能を有効化するための、 Travelmate パッケージの設定です。"
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr ""
-"Android や iOS デバイスを、表示される QR コードを使用して WiFi に接続します。"
-
msgid "Connection Limit"
msgstr "接続制限"
@@ -113,16 +110,16 @@ msgstr "無線アップリンク設定の編集"
msgid "Edit this Uplink"
msgstr "このアップリンクを編集"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "Travelmate の有効化"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "詳細なデバッグ ログの有効化"
msgid "Encryption"
msgstr "暗号化"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "拡張オプション"
msgid "Faulty Stations"
@@ -131,6 +128,9 @@ msgstr ""
msgid "Find and join network on"
msgstr "ネットワークの検索と参加:"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
@@ -148,15 +148,6 @@ msgid "Force TKIP and CCMP (AES)"
msgstr "TKIP と CCMP (AES)"
msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-"ここには、構成済みの全アクセスポイントの QR コードを表示しています。以下の "
-"QR コードを使用して、 Android または iOS デバイスをルータの WiFi に接続するこ"
-"とができます。"
-
-msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr "Travelmate が無線アップリンクへの接続成功を待つ時間です。"
@@ -237,11 +228,8 @@ msgid ""
"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-msgid "QR-Codes"
-msgstr "QR-コード"
-
-msgid "Radio selection"
-msgstr "無線の選択"
+msgid "Radio Selection / Order"
+msgstr ""
msgid "Repeat scan"
msgstr "再スキャン"
@@ -252,8 +240,10 @@ msgstr ""
msgid "Restart Travelmate"
msgstr ""
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')"
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr "アップリンクへの接続を試行する回数です。"
@@ -273,6 +263,9 @@ msgstr "保存"
msgid "Scan"
msgstr "スキャン:"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr "シグナル品質閾値"
@@ -388,6 +381,35 @@ msgstr ""
msgid "hidden"
msgstr "(ステルス)"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid ""
+#~ "Connect your Android or iOS devices to your router's WiFi using the shown "
+#~ "QR code."
+#~ msgstr ""
+#~ "Android や iOS デバイスを、表示される QR コードを使用して WiFi に接続しま"
+#~ "す。"
+
+#~ msgid ""
+#~ "Here you'll find the QR codes from all of your configured Access Points. "
+#~ "It allows you to connect your Android or iOS devices to your router's "
+#~ "WiFi using the QR code shown below."
+#~ msgstr ""
+#~ "ここには、構成済みの全アクセスポイントの QR コードを表示しています。以下"
+#~ "の QR コードを使用して、 Android または iOS デバイスをルータの WiFi に接続"
+#~ "することができます。"
+
+#~ msgid "QR-Codes"
+#~ msgstr "QR-コード"
+
+#~ msgid "Radio selection"
+#~ msgstr "無線の選択"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr ""
+#~ "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')"
+
#~ msgid "Last rundate"
#~ msgstr "最終実行日時"
diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po
index 5079c5bc8b..4bc72fe25a 100644
--- a/applications/luci-app-travelmate/po/pt-br/travelmate.po
+++ b/applications/luci-app-travelmate/po/pt-br/travelmate.po
@@ -114,16 +114,16 @@ msgstr "Editar Configurações da Rede sem fio de saída"
msgid "Edit this Uplink"
msgstr "Editar Configurações da Rede de saída"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "Habilitar o Travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "Habilitar os registros de depuração detalhados"
msgid "Encryption"
msgstr "Cifragem"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "Opções adicionais"
msgid "Faulty Stations"
diff --git a/applications/luci-app-travelmate/po/ru/travelmate.po b/applications/luci-app-travelmate/po/ru/travelmate.po
index b97e76dd05..8d03cfebda 100644
--- a/applications/luci-app-travelmate/po/ru/travelmate.po
+++ b/applications/luci-app-travelmate/po/ru/travelmate.po
@@ -15,6 +15,9 @@ msgstr ""
"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
+msgid "AP on"
+msgstr ""
+
msgid "Action"
msgstr ""
@@ -59,11 +62,6 @@ msgid ""
"functionality."
msgstr "Настройка утилиты TravelMate - помощника путешественника. "
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr ""
-
msgid "Connection Limit"
msgstr "Ограничение соединений"
@@ -112,16 +110,16 @@ msgstr "Редактировать настройки беспроводной
msgid "Edit this Uplink"
msgstr "Редактировать настройки сети"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "Включить Travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "Включить подробное ведение журнала отладки"
msgid "Encryption"
msgstr "Шифрование"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "Дополнительные настройки"
msgid "Faulty Stations"
@@ -130,6 +128,9 @@ msgstr ""
msgid "Find and join network on"
msgstr "Найти сеть для подключения используя"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
@@ -147,12 +148,6 @@ msgid "Force TKIP and CCMP (AES)"
msgstr "Назначить TKIP и CCMP (AES)"
msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-
-msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr ""
@@ -233,12 +228,9 @@ msgid ""
"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-msgid "QR-Codes"
+msgid "Radio Selection / Order"
msgstr ""
-msgid "Radio selection"
-msgstr "Выбор Wi-Fi устройства"
-
msgid "Repeat scan"
msgstr "Повторить поиск"
@@ -248,8 +240,10 @@ msgstr ""
msgid "Restart Travelmate"
msgstr ""
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "Выделить TravelMate-у конкретное Wi-Fi устройство, например 'radio0'."
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr ""
@@ -269,6 +263,9 @@ msgstr "Сохранить"
msgid "Scan"
msgstr "Поиск"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr ""
@@ -382,6 +379,16 @@ msgstr ""
msgid "hidden"
msgstr "скрытый"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid "Radio selection"
+#~ msgstr "Выбор Wi-Fi устройства"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr ""
+#~ "Выделить TravelMate-у конкретное Wi-Fi устройство, например 'radio0'."
+
#~ msgid "Last rundate"
#~ msgstr "Дата последнего запуска"
diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot
index b8c235ff48..c712c10658 100644
--- a/applications/luci-app-travelmate/po/templates/travelmate.pot
+++ b/applications/luci-app-travelmate/po/templates/travelmate.pot
@@ -1,6 +1,9 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
+msgid "AP on"
+msgstr ""
+
msgid "Action"
msgstr ""
@@ -45,11 +48,6 @@ msgid ""
"functionality."
msgstr ""
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr ""
-
msgid "Connection Limit"
msgstr ""
@@ -96,16 +94,16 @@ msgstr ""
msgid "Edit this Uplink"
msgstr ""
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr ""
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr ""
msgid "Encryption"
msgstr ""
-msgid "Extra options"
+msgid "Extra Options"
msgstr ""
msgid "Faulty Stations"
@@ -114,6 +112,9 @@ msgstr ""
msgid "Find and join network on"
msgstr ""
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
@@ -129,12 +130,6 @@ msgid "Force TKIP and CCMP (AES)"
msgstr ""
msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-
-msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr ""
@@ -213,10 +208,7 @@ msgid ""
"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-msgid "QR-Codes"
-msgstr ""
-
-msgid "Radio selection"
+msgid "Radio Selection / Order"
msgstr ""
msgid "Repeat scan"
@@ -228,7 +220,9 @@ msgstr ""
msgid "Restart Travelmate"
msgstr ""
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
msgstr ""
msgid "Retry limit to connect to an uplink."
@@ -249,6 +243,9 @@ msgstr ""
msgid "Scan"
msgstr ""
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr ""
@@ -353,3 +350,6 @@ msgstr ""
msgid "hidden"
msgstr ""
+
+msgid "with SSID"
+msgstr ""
diff --git a/applications/luci-app-travelmate/po/zh-cn/travelmate.po b/applications/luci-app-travelmate/po/zh-cn/travelmate.po
index e52d8e8546..6bfa3532f4 100644
--- a/applications/luci-app-travelmate/po/zh-cn/travelmate.po
+++ b/applications/luci-app-travelmate/po/zh-cn/travelmate.po
@@ -11,6 +11,12 @@ msgstr ""
"PO-Revision-Date: 2018-08-17 17:06+0800\n"
"X-Generator: Gtranslator 2.91.7\n"
+msgid "AP on"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
msgid "Add Uplink"
msgstr "添加上行连接"
@@ -52,11 +58,6 @@ msgid ""
"functionality."
msgstr "配置 travelmate 包,以启用旅行路由器功能。"
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr "使用显示的 QR 码,将您的 Android 或 iOS 设备连接到路由器 WiFi。"
-
msgid "Connection Limit"
msgstr "连接限制"
@@ -103,21 +104,27 @@ msgstr "编辑无线上行连接配置"
msgid "Edit this Uplink"
msgstr "编辑此上行连接"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "启用 travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "启用详细调试日志"
msgid "Encryption"
msgstr "加密"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "额外选项"
+msgid "Faulty Stations"
+msgstr ""
+
msgid "Find and join network on"
msgstr "查找并加入网络"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
@@ -133,14 +140,6 @@ msgid "Force TKIP and CCMP (AES)"
msgstr "强制 TKIP 和 CCMP(AES)"
msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-"在这里,您可以找到所有已配置的接入点的 QR 码。您可以使用下面显示的 QR 码,使 "
-"Android 或 iOS 设备连接到路由器 WiFi。"
-
-msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr "travelmate 等待 wlan 上行连接成功最长时间。"
@@ -159,8 +158,11 @@ msgstr "接口超时"
msgid "Interface Wizard"
msgstr "接口向导"
-msgid "Last rundate"
-msgstr "最后运行时间"
+msgid "Last Run"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
msgid ""
"Minimum signal quality threshold as percent for conditional uplink (dis-) "
@@ -213,22 +215,25 @@ msgstr "私钥路径"
msgid ""
"Provides an overview of all configured uplinks for the travelmate interface "
"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
-"one. The currently used uplink is emphasized in blue."
+"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-"此处显示 travelmate 接口(%s)所有已配置上行连接的概述。您可以编辑、删除或重"
-"新排序现有连接,或扫描新上行连接。当前使用的上行连接以蓝色突出显示。"
-
-msgid "QR-Codes"
-msgstr "QR 码"
-msgid "Radio selection"
-msgstr "无线选择"
+msgid "Radio Selection / Order"
+msgstr ""
msgid "Repeat scan"
msgstr "重新扫描"
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "将 travelmate 限制在专用无线电中,如“radio0”。"
+msgid "Restart"
+msgstr ""
+
+msgid "Restart Travelmate"
+msgstr ""
+
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr "连接到上行连接的重试限制。"
@@ -248,25 +253,28 @@ msgstr "保存"
msgid "Scan"
msgstr "扫描"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr "信号质量阈值"
msgid "Signal strength"
msgstr "信号强度"
-msgid "Station ID (SSID/BSSID)"
-msgstr "站点 ID(SSID/BSSID)"
+msgid "Station ID (RADIO/SSID/BSSID)"
+msgstr ""
msgid "Station Interface"
msgstr "站点接口"
-msgid "Station Radio"
-msgstr "站点无线"
-
msgid ""
"The BSSID information '%s' is optional and only required for hidden networks"
msgstr "BSSID 信息“%s”是可选的,仅对隐藏网络必需"
+msgid "The syslog output, pre-filtered for travelmate related messages only."
+msgstr ""
+
msgid ""
"This form allows you to modify the content of the main firewall "
"configuration file (/etc/config/firewall)."
@@ -287,20 +295,12 @@ msgid ""
"configuration file (/etc/config/wireless)."
msgstr "此表单允许您修改主无线配置文件(/etc/config/wireless)的内容。"
-msgid ""
-"This form shows the syslog output, pre-filtered for travelmate related "
-"messages only."
-msgstr "此表单显示 syslog 输出,仅针对 travelmate 相关消息进行预过滤。"
-
msgid "This step has only to be done once."
msgstr "此步骤只需执行一次。"
msgid "Travelmate"
msgstr "Travelmate"
-msgid "Travelmate Logfile"
-msgstr "Travelmate 日志文件"
-
msgid "Travelmate Status (Quality)"
msgstr "Travelmate 状态(质量)"
@@ -355,11 +355,64 @@ msgstr "无线扫描"
msgid "Wireless Stations"
msgstr "无线站点"
-msgid "add it to the wan zone of the firewall.<br />"
-msgstr "将其添加到防火墙的 wan 区域。<br />"
+msgid "add it to the wan zone of the firewall."
+msgstr ""
msgid "hidden"
msgstr "隐藏"
-msgid "n/a"
-msgstr "n/a"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid ""
+#~ "Connect your Android or iOS devices to your router's WiFi using the shown "
+#~ "QR code."
+#~ msgstr "使用显示的 QR 码,将您的 Android 或 iOS 设备连接到路由器 WiFi。"
+
+#~ msgid ""
+#~ "Here you'll find the QR codes from all of your configured Access Points. "
+#~ "It allows you to connect your Android or iOS devices to your router's "
+#~ "WiFi using the QR code shown below."
+#~ msgstr ""
+#~ "在这里,您可以找到所有已配置的接入点的 QR 码。您可以使用下面显示的 QR 码,"
+#~ "使 Android 或 iOS 设备连接到路由器 WiFi。"
+
+#~ msgid "Last rundate"
+#~ msgstr "最后运行时间"
+
+#~ msgid ""
+#~ "Provides an overview of all configured uplinks for the travelmate "
+#~ "interface (%s). You can edit, delete or re-order existing uplinks or scan "
+#~ "for a new one. The currently used uplink is emphasized in blue."
+#~ msgstr ""
+#~ "此处显示 travelmate 接口(%s)所有已配置上行连接的概述。您可以编辑、删除或"
+#~ "重新排序现有连接,或扫描新上行连接。当前使用的上行连接以蓝色突出显示。"
+
+#~ msgid "QR-Codes"
+#~ msgstr "QR 码"
+
+#~ msgid "Radio selection"
+#~ msgstr "无线选择"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr "将 travelmate 限制在专用无线电中,如“radio0”。"
+
+#~ msgid "Station ID (SSID/BSSID)"
+#~ msgstr "站点 ID(SSID/BSSID)"
+
+#~ msgid "Station Radio"
+#~ msgstr "站点无线"
+
+#~ msgid ""
+#~ "This form shows the syslog output, pre-filtered for travelmate related "
+#~ "messages only."
+#~ msgstr "此表单显示 syslog 输出,仅针对 travelmate 相关消息进行预过滤。"
+
+#~ msgid "Travelmate Logfile"
+#~ msgstr "Travelmate 日志文件"
+
+#~ msgid "add it to the wan zone of the firewall.<br />"
+#~ msgstr "将其添加到防火墙的 wan 区域。<br />"
+
+#~ msgid "n/a"
+#~ msgstr "n/a"
diff --git a/applications/luci-app-travelmate/po/zh-tw/travelmate.po b/applications/luci-app-travelmate/po/zh-tw/travelmate.po
index aa4612b6d0..529bbbdb07 100644
--- a/applications/luci-app-travelmate/po/zh-tw/travelmate.po
+++ b/applications/luci-app-travelmate/po/zh-tw/travelmate.po
@@ -11,6 +11,12 @@ msgstr ""
"PO-Revision-Date: 2018-08-17 17:06+0800\n"
"X-Generator: Gtranslator 2.91.7\n"
+msgid "AP on"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
msgid "Add Uplink"
msgstr "新增上行連線"
@@ -42,7 +48,8 @@ msgstr "強制門戶檢測"
msgid ""
"Check the internet availability, log captive portal redirections and keep "
"the uplink connection 'alive'."
-msgstr "檢查網際網路可用性,記錄強制網路門戶重定向,並保持上行連線為“活動”狀態。"
+msgstr ""
+"檢查網際網路可用性,記錄強制網路門戶重定向,並保持上行連線為“活動”狀態。"
msgid "Cipher"
msgstr "密碼"
@@ -52,11 +59,6 @@ msgid ""
"functionality."
msgstr "配置 travelmate 包,以啟用旅行路由器功能。"
-msgid ""
-"Connect your Android or iOS devices to your router's WiFi using the shown QR "
-"code."
-msgstr "使用顯示的 QR 碼,將您的 Android 或 iOS 裝置連線到路由器 WiFi。"
-
msgid "Connection Limit"
msgstr "連線限制"
@@ -103,21 +105,27 @@ msgstr "編輯無線上行連線配置"
msgid "Edit this Uplink"
msgstr "編輯此上行連線"
-msgid "Enable travelmate"
+msgid "Enable Travelmate"
msgstr "啟用 travelmate"
-msgid "Enable verbose debug logging"
+msgid "Enable Verbose Debug Logging"
msgstr "啟用詳細除錯日誌"
msgid "Encryption"
msgstr "加密"
-msgid "Extra options"
+msgid "Extra Options"
msgstr "額外選項"
+msgid "Faulty Stations"
+msgstr ""
+
msgid "Find and join network on"
msgstr "查詢並加入網路"
+msgid "For QR-Code support please install package 'qrencode'!"
+msgstr ""
+
msgid ""
"For further information <a href=\"%s\" target=\"_blank\">see online "
"documentation</a>"
@@ -133,14 +141,6 @@ msgid "Force TKIP and CCMP (AES)"
msgstr "強制 TKIP 和 CCMP(AES)"
msgid ""
-"Here you'll find the QR codes from all of your configured Access Points. It "
-"allows you to connect your Android or iOS devices to your router's WiFi "
-"using the QR code shown below."
-msgstr ""
-"在這裡,您可以找到所有已配置的接入點的 QR 碼。您可以使用下面顯示的 QR 碼,使 "
-"Android 或 iOS 裝置連線到路由器 WiFi。"
-
-msgid ""
"How long should travelmate wait for a successful wlan uplink connection."
msgstr "travelmate 等待 wlan 上行連線成功最長時間。"
@@ -159,8 +159,11 @@ msgstr "介面超時"
msgid "Interface Wizard"
msgstr "介面嚮導"
-msgid "Last rundate"
-msgstr "最後執行時間"
+msgid "Last Run"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
msgid ""
"Minimum signal quality threshold as percent for conditional uplink (dis-) "
@@ -213,22 +216,25 @@ msgstr "私鑰路徑"
msgid ""
"Provides an overview of all configured uplinks for the travelmate interface "
"(%s). You can edit, delete or re-order existing uplinks or scan for a new "
-"one. The currently used uplink is emphasized in blue."
+"one. The currently used uplink is emphasized in blue, faulty stations in red."
msgstr ""
-"此處顯示 travelmate 介面(%s)所有已配置上行連線的概述。您可以編輯、刪除或重"
-"新排序現有連線,或掃描新上行連線。當前使用的上行連線以藍色突出顯示。"
-
-msgid "QR-Codes"
-msgstr "QR 碼"
-msgid "Radio selection"
-msgstr "無線選擇"
+msgid "Radio Selection / Order"
+msgstr ""
msgid "Repeat scan"
msgstr "重新掃描"
-msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
-msgstr "將 travelmate 限制在專用無線電中,如“radio0”。"
+msgid "Restart"
+msgstr ""
+
+msgid "Restart Travelmate"
+msgstr ""
+
+msgid ""
+"Restrict travelmate to a single radio (e.g. 'radio1') or change the overall "
+"scanning order (e.g. 'radio1 radio2 radio0')."
+msgstr ""
msgid "Retry limit to connect to an uplink."
msgstr "連線到上行連線的重試限制。"
@@ -248,25 +254,28 @@ msgstr "儲存"
msgid "Scan"
msgstr "掃描"
+msgid "Show/Hide QR-Codes"
+msgstr ""
+
msgid "Signal Quality Threshold"
msgstr "訊號質量閾值"
msgid "Signal strength"
msgstr "訊號強度"
-msgid "Station ID (SSID/BSSID)"
-msgstr "站點 ID(SSID/BSSID)"
+msgid "Station ID (RADIO/SSID/BSSID)"
+msgstr ""
msgid "Station Interface"
msgstr "站點介面"
-msgid "Station Radio"
-msgstr "站點無線"
-
msgid ""
"The BSSID information '%s' is optional and only required for hidden networks"
msgstr "BSSID 資訊“%s”是可選的,僅對隱藏網路必需"
+msgid "The syslog output, pre-filtered for travelmate related messages only."
+msgstr ""
+
msgid ""
"This form allows you to modify the content of the main firewall "
"configuration file (/etc/config/firewall)."
@@ -287,20 +296,12 @@ msgid ""
"configuration file (/etc/config/wireless)."
msgstr "此表單允許您修改主無線配置檔案(/etc/config/wireless)的內容。"
-msgid ""
-"This form shows the syslog output, pre-filtered for travelmate related "
-"messages only."
-msgstr "此表單顯示 syslog 輸出,僅針對 travelmate 相關訊息進行預過濾。"
-
msgid "This step has only to be done once."
msgstr "此步驟只需執行一次。"
msgid "Travelmate"
msgstr "Travelmate"
-msgid "Travelmate Logfile"
-msgstr "Travelmate 日誌檔案"
-
msgid "Travelmate Status (Quality)"
msgstr "Travelmate 狀態(質量)"
@@ -355,11 +356,64 @@ msgstr "無線掃描"
msgid "Wireless Stations"
msgstr "無線站點"
-msgid "add it to the wan zone of the firewall.<br />"
-msgstr "將其新增到防火牆的 wan 區域。<br />"
+msgid "add it to the wan zone of the firewall."
+msgstr ""
msgid "hidden"
msgstr "隱藏"
-msgid "n/a"
-msgstr "n/a"
+msgid "with SSID"
+msgstr ""
+
+#~ msgid ""
+#~ "Connect your Android or iOS devices to your router's WiFi using the shown "
+#~ "QR code."
+#~ msgstr "使用顯示的 QR 碼,將您的 Android 或 iOS 裝置連線到路由器 WiFi。"
+
+#~ msgid ""
+#~ "Here you'll find the QR codes from all of your configured Access Points. "
+#~ "It allows you to connect your Android or iOS devices to your router's "
+#~ "WiFi using the QR code shown below."
+#~ msgstr ""
+#~ "在這裡,您可以找到所有已配置的接入點的 QR 碼。您可以使用下面顯示的 QR 碼,"
+#~ "使 Android 或 iOS 裝置連線到路由器 WiFi。"
+
+#~ msgid "Last rundate"
+#~ msgstr "最後執行時間"
+
+#~ msgid ""
+#~ "Provides an overview of all configured uplinks for the travelmate "
+#~ "interface (%s). You can edit, delete or re-order existing uplinks or scan "
+#~ "for a new one. The currently used uplink is emphasized in blue."
+#~ msgstr ""
+#~ "此處顯示 travelmate 介面(%s)所有已配置上行連線的概述。您可以編輯、刪除或"
+#~ "重新排序現有連線,或掃描新上行連線。當前使用的上行連線以藍色突出顯示。"
+
+#~ msgid "QR-Codes"
+#~ msgstr "QR 碼"
+
+#~ msgid "Radio selection"
+#~ msgstr "無線選擇"
+
+#~ msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'."
+#~ msgstr "將 travelmate 限制在專用無線電中,如“radio0”。"
+
+#~ msgid "Station ID (SSID/BSSID)"
+#~ msgstr "站點 ID(SSID/BSSID)"
+
+#~ msgid "Station Radio"
+#~ msgstr "站點無線"
+
+#~ msgid ""
+#~ "This form shows the syslog output, pre-filtered for travelmate related "
+#~ "messages only."
+#~ msgstr "此表單顯示 syslog 輸出,僅針對 travelmate 相關訊息進行預過濾。"
+
+#~ msgid "Travelmate Logfile"
+#~ msgstr "Travelmate 日誌檔案"
+
+#~ msgid "add it to the wan zone of the firewall.<br />"
+#~ msgstr "將其新增到防火牆的 wan 區域。<br />"
+
+#~ msgid "n/a"
+#~ msgstr "n/a"
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/zones.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/zones.lua
index 798ca6a45c..3a13c23df9 100644
--- a/applications/luci-app-unbound/luasrc/model/cbi/unbound/zones.lua
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/zones.lua
@@ -58,7 +58,7 @@ end
function ztype.cfgvalue(self, s)
- -- Format a meaninful tile for the Zone Type column
+ -- Format a meaningful tile for the Zone Type column
local itxt = self.map:get(s, "zone_type")
local itls = self.map:get(s, "tls_upstream")
@@ -84,7 +84,7 @@ end
function zones.cfgvalue(self, s)
- -- Format a meaninful sentence for the Zones viewed column
+ -- Format a meaningful sentence for the Zones viewed column
local xtxt, otxt
local itxt = self.map:get(s, "zone_name")
local itype = self.map:get(s, "zone_type")
@@ -131,7 +131,7 @@ end
function servers.cfgvalue(self, s)
- -- Format a meaninful sentence for the Servers (and URL) column
+ -- Format a meaningful sentence for the Servers (and URL) column
local xtxt, otxt, rtxt, found
local itxt = self.map:get(s, "server")
local iurl = self.map:get(s, "url_dir")
diff --git a/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po b/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po
index 049b1a9244..b6248e4bcc 100644
--- a/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po
+++ b/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po
@@ -25,8 +25,7 @@ msgid ""
"Local IP addresses or subnets with direct internet access (outside of the "
"VPN tunnel)"
msgstr ""
-"Endereço IP Local ou subrede com acesso direto à internet (fora do túnel "
-"VPN)"
+"Endereço IP Local ou subrede com acesso direto à internet (fora do túnel VPN)"
msgid "Local Ports to Bypass"
msgstr "Portas locais para evitar a VPN"
@@ -44,8 +43,8 @@ msgid ""
"Remote IP addresses or subnets which will be accessed directly (outside of "
"the VPN tunnel)"
msgstr ""
-"Endereço IP Remoto ou subrede que serão acessados diretamente (fora do "
-"túnel VPN)"
+"Endereço IP Remoto ou subrede que serão acessados diretamente (fora do túnel "
+"VPN)"
msgid "Remote Ports to Bypass"
msgstr "Portas remotas para evitar a VPN"
diff --git a/applications/luci-app-wifischedule/README.md b/applications/luci-app-wifischedule/README.md
index 591abb1049..4a57b3f7b4 100644
--- a/applications/luci-app-wifischedule/README.md
+++ b/applications/luci-app-wifischedule/README.md
@@ -7,7 +7,7 @@ Turns WiFi on and off according to a schedule on an openwrt router
## Use cases
-You can create user-defined events when to enable or disable WiFi.
+You can create user-defined events when to enable or disable WiFi.
There are various use cases why you would like to do so:
1. Reduce power consumption and therefore reduce CO2 emissions.
@@ -17,13 +17,13 @@ There are various use cases why you would like to do so:
Regarding 1: Please note, that you need to unload the wireless driver modules in order to get the most effect of saving power.
In my test scenario only disabling WiFi saves about ~0.4 Watt, unloading the modules removes another ~0.4 Watt.
-Regarding 2: Think of a wireless accesspoint e.g. in your bedrom, kids room where you want to remove the ammount of radiation emitted.
+Regarding 2: Think of a wireless accesspoint e.g. in your bedrom, kids room where you want to remove the amount of radiation emitted.
-Regarding 3: E.g. in a company, why would wireless need to be enabled weekends if no one is there working?
+Regarding 3: E.g. in a company, why would wireless need to be enabled weekends if no one is there working?
Or think of an accesspoint in your kids room when you want the youngsters to sleep after 10 pm instead of facebooking...
## Configuration
-You can create an arbitrary number of schedule events. Please note that there is on sanity check done wheather the start / stop times overlap or make sense.
+You can create an arbitrary number of schedule events. Please note that there is on sanity check done whether the start / stop times overlap or make sense.
If start and stop time are equal, this leads to disabling the WiFi at the given time.
Logging if enabled is done to the file `/var/log/wifi_schedule.log` and can be reviewed through the "View Logfile" tab.
@@ -71,7 +71,7 @@ Then call the script as follows in order to get the necessary cron jobs created:
`wifi_schedule.sh cron`
All commands:
-
+
```
wifi_schedule.sh cron|start|stop|forcestop|recheck|getmodules|savemodules|help
diff --git a/applications/luci-app-wireguard/po/ja/wireguard.po b/applications/luci-app-wireguard/po/ja/wireguard.po
index 5cd7a90037..921ede1244 100644
--- a/applications/luci-app-wireguard/po/ja/wireguard.po
+++ b/applications/luci-app-wireguard/po/ja/wireguard.po
@@ -58,6 +58,9 @@ msgstr "永続的なキープアライブ"
msgid "Public Key"
msgstr "公開鍵"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "WireGuard ステータス"
diff --git a/applications/luci-app-wireguard/po/pt-br/wireguard.po b/applications/luci-app-wireguard/po/pt-br/wireguard.po
index d3b5059d5f..2874639b67 100644
--- a/applications/luci-app-wireguard/po/pt-br/wireguard.po
+++ b/applications/luci-app-wireguard/po/pt-br/wireguard.po
@@ -57,6 +57,9 @@ msgstr "Manter Conexões Abertas (Keepalive)"
msgid "Public Key"
msgstr "Chave Pública"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "Estado do WireGuard"
diff --git a/applications/luci-app-wireguard/po/ru/wireguard.po b/applications/luci-app-wireguard/po/ru/wireguard.po
index 202a49eff4..3781d89522 100644
--- a/applications/luci-app-wireguard/po/ru/wireguard.po
+++ b/applications/luci-app-wireguard/po/ru/wireguard.po
@@ -58,6 +58,9 @@ msgstr "Постоянные Проверки Активности"
msgid "Public Key"
msgstr "Публичный Ключ"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "Состояние WireGuard"
diff --git a/applications/luci-app-wireguard/po/sv/wireguard.po b/applications/luci-app-wireguard/po/sv/wireguard.po
index 3422ae91e9..c0f7040c67 100644
--- a/applications/luci-app-wireguard/po/sv/wireguard.po
+++ b/applications/luci-app-wireguard/po/sv/wireguard.po
@@ -46,6 +46,9 @@ msgstr "Hålla vid liv ständigt"
msgid "Public Key"
msgstr "Publik nyckel"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "Status för WireGuard"
diff --git a/applications/luci-app-wireguard/po/templates/wireguard.pot b/applications/luci-app-wireguard/po/templates/wireguard.pot
index 9ec5c60048..3cec473ecf 100644
--- a/applications/luci-app-wireguard/po/templates/wireguard.pot
+++ b/applications/luci-app-wireguard/po/templates/wireguard.pot
@@ -46,6 +46,9 @@ msgstr ""
msgid "Public Key"
msgstr ""
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr ""
diff --git a/applications/luci-app-wireguard/po/zh-cn/wireguard.po b/applications/luci-app-wireguard/po/zh-cn/wireguard.po
index 38fd784b12..1864048d5b 100644
--- a/applications/luci-app-wireguard/po/zh-cn/wireguard.po
+++ b/applications/luci-app-wireguard/po/zh-cn/wireguard.po
@@ -60,6 +60,9 @@ msgstr "Keepalive 间隔(秒)"
msgid "Public Key"
msgstr "公钥"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "WireGuard 状态"
diff --git a/applications/luci-app-wireguard/po/zh-tw/wireguard.po b/applications/luci-app-wireguard/po/zh-tw/wireguard.po
index 66fd9649e6..83da0c351a 100644
--- a/applications/luci-app-wireguard/po/zh-tw/wireguard.po
+++ b/applications/luci-app-wireguard/po/zh-tw/wireguard.po
@@ -60,6 +60,9 @@ msgstr "Keepalive 間隔(秒)"
msgid "Public Key"
msgstr "公鑰"
+msgid "Show/Hide QR-Code"
+msgstr ""
+
msgid "WireGuard Status"
msgstr "WireGuard 狀態"
diff --git a/build/check-controllers.sh b/build/check-controllers.sh
index 573e6f8642..47f66eac94 100755
--- a/build/check-controllers.sh
+++ b/build/check-controllers.sh
@@ -14,7 +14,7 @@ find . -type f -name '*.lua' -path '*/controller/*' | while read controller; do
package="${controller##*/controller/}"; package="${package%.lua}"; package="luci.controller.${package//\//.}"
if ! grep -sqE '\bmodule[[:space:]]*\(?[[:space:]]*("|\047|\[=*\[)'"$package" "$controller"; then
- echo "'$controller' does not containt the expected\n\t'module(\"$package\", ...)' line.\n"
+ echo "'$controller' does not contain the expected\n\t'module(\"$package\", ...)' line.\n"
fi
grep -sqE '\b(Form|SimpleForm)[[:space:]]*\(' "$model" && ! grep -sqE '\bMap[[:space:]]*\(' "$model" && is_form=1 || is_form=0
diff --git a/build/i18n-scan.pl b/build/i18n-scan.pl
index 899d90d22c..3f9ee89630 100755
--- a/build/i18n-scan.pl
+++ b/build/i18n-scan.pl
@@ -4,7 +4,7 @@ use strict;
use warnings;
use Text::Balanced qw(extract_bracketed extract_delimited extract_tagged);
-@ARGV >= 1 || die "Usage: $0 <source direcory>\n";
+@ARGV >= 1 || die "Usage: $0 <source directory>\n";
my %stringtable;
diff --git a/build/luadoc/luadoc/config.lua b/build/luadoc/luadoc/config.lua
index 9e4b9de3c5..319e1cb03e 100644
--- a/build/luadoc/luadoc/config.lua
+++ b/build/luadoc/luadoc/config.lua
@@ -1,6 +1,6 @@
-------------------------------------------------------------------------------
-- LuaDoc configuration file. This file contains the default options for
--- luadoc operation. These options can be overriden by the command line tool
+-- luadoc operation. These options can be overridden by the command line tool
-- @see luadoc.print_help
-- @release $Id: config.lua,v 1.6 2007/04/18 14:28:39 tomas Exp $
-------------------------------------------------------------------------------
diff --git a/contrib/package/community-profiles/files/etc/config/profile_berlin b/contrib/package/community-profiles/files/etc/config/profile_berlin
index 2307f1f3ba..e4388c76e3 100644
--- a/contrib/package/community-profiles/files/etc/config/profile_berlin
+++ b/contrib/package/community-profiles/files/etc/config/profile_berlin
@@ -33,7 +33,7 @@ config 'defaults' 'ssidscheme'
config 'defaults' 'interface'
option 'netmask' '255.255.255.255'
- option 'dns' '85.214.20.141 194.150.168.168 2001:4ce8::53 2001:910:800::12'
+ option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
config 'dhcp' 'dhcp'
option leasetime '5m'
diff --git a/contrib/package/community-profiles/files/etc/config/profile_cottbus b/contrib/package/community-profiles/files/etc/config/profile_cottbus
index 9b08acc256..6c7f4b6966 100644
--- a/contrib/package/community-profiles/files/etc/config/profile_cottbus
+++ b/contrib/package/community-profiles/files/etc/config/profile_cottbus
@@ -31,7 +31,7 @@ config 'defaults' 'ssidscheme'
config 'defaults' 'interface'
option 'netmask' '255.255.255.255'
- option 'dns' '85.214.20.141 194.150.168.168 2001:4ce8::53 2001:910:800::12'
+ option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168 2001:4ce8::53 2001:910:800::12'
config 'dhcp' 'dhcp'
option 'leasetime' '5m'
diff --git a/contrib/package/community-profiles/files/etc/config/profile_potsdam b/contrib/package/community-profiles/files/etc/config/profile_potsdam
index 84bbdfe528..78db579a93 100644
--- a/contrib/package/community-profiles/files/etc/config/profile_potsdam
+++ b/contrib/package/community-profiles/files/etc/config/profile_potsdam
@@ -11,7 +11,7 @@ config 'community' 'profile'
config 'defaults' 'interface'
option 'netmask' '255.255.0.0'
- option 'dns' '85.214.20.141 194.150.168.168'
+ option 'dns' '85.214.20.141 80.67.169.40 194.150.168.168'
option 'delegate' '0'
config 'defaults' 'wifi_device'
diff --git a/contrib/package/community-profiles/files/etc/config/profile_tulumlibre b/contrib/package/community-profiles/files/etc/config/profile_tulumlibre
index c028a66614..ceaff2a743 100644
--- a/contrib/package/community-profiles/files/etc/config/profile_tulumlibre
+++ b/contrib/package/community-profiles/files/etc/config/profile_tulumlibre
@@ -7,4 +7,4 @@ config 'community' 'profile'
option 'splash_prefix' '28'
config 'defaults' 'interface'
- option 'dns' '216.87.84.211'
+ option 'dns' '80.67.169.40 216.87.84.211'
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
index b0f6cb291e..0b99530a57 100644
--- a/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
+++ b/contrib/package/meshwizard/files/usr/bin/meshwizard/functions.sh
@@ -46,7 +46,7 @@ set_defaults() {
b="${b//_/ }"
string_contains "$a" "_LENGTH" && continue
string_contains "$a" "_ITEM" && {
- # special threatment for lists. use add_list and remove the
+ # special treatment for lists. use add_list and remove the
# item index (_ITEMx).
uci add_list $2.${a//_ITEM[0-9]*/}="$b"
} || {
diff --git a/documentation/CBI.md b/documentation/CBI.md
index e937fe6048..d4bc4c34e5 100644
--- a/documentation/CBI.md
+++ b/documentation/CBI.md
@@ -131,7 +131,7 @@ If you call this function several times the dependencies will be linked with **"
Adds an entry to the selection list
#### property .widget = "select"
-**"select"** shows a selction list, **"radio"** shows a list of radio buttons inside form
+**"select"** shows a selection list, **"radio"** shows a list of radio buttons inside form
#### property .default = nil
The default value
@@ -194,7 +194,7 @@ If you call this function several times the dependencies will be linked with **"
Adds an entry to the list
#### property .widget = "checkbox"
-**"select"** shows a selction list, **"checkbox"** shows a list of checkboxes inside form
+**"select"** shows a selection list, **"checkbox"** shows a list of checkboxes inside form
#### property .delimiter = " "
The string which will be used to delimit the values inside stored option
diff --git a/documentation/Templates.md b/documentation/Templates.md
index dc42c28ab7..adf019c01a 100644
--- a/documentation/Templates.md
+++ b/documentation/Templates.md
@@ -1,7 +1,7 @@
LuCI has a simple regex based template processor which parses HTML-files to Lua functions and allows to store precompiled template files.
The simplest form of a template is just an ordinary HTML-file. It will be printed out to the user as is.
-In LuCI every template is an object with an own scope. It can therefore be instanciated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
+In LuCI every template is an object with an own scope. It can therefore be instantiated and each instance can has a different scope. As every template processor. LuCI supports several special markups. Those are enclosed in `<% %>`-Tags.
By adding `-` (dash) right after the opening `<%` every whitespace before the markup will be stripped. Adding a `-` right before the closing `%>` will equivalently strip every whitespace behind the markup.
diff --git a/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc b/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc
index 7751e2baf4..9c7f01aedf 100644
--- a/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc
+++ b/libs/luci-lib-httpprotoutils/luasrc/http/mime.luadoc
@@ -7,7 +7,7 @@ vice versa.
module "luci.http.mime"
---[[
-MIME mapping table containg extension - mimetype relations.
+MIME mapping table containing extension - mimetype relations.
@class table
]]
diff --git a/libs/luci-lib-ip/src/ip.luadoc b/libs/luci-lib-ip/src/ip.luadoc
index b1ecae1453..a2df96cdb5 100644
--- a/libs/luci-lib-ip/src/ip.luadoc
+++ b/libs/luci-lib-ip/src/ip.luadoc
@@ -283,7 +283,7 @@ Fetch all routes, optionally matching the given criteria.
@sort 9
@name routes
@param filter <p>Table containing one or more of the possible filter
-critera described below (optional)</p><table>
+criteria described below (optional)</p><table>
<tr><th>Field</th><th>Description</th></tr>
<tr><td>`family`</td><td>
Number describing the address family to return - `4` selects
@@ -363,7 +363,7 @@ Fetches entries from the IPv4 ARP and IPv6 neighbour kernel table
@sort 10
@name neighbors
@param filter <p>Table containing one or more of the possible filter
-critera described below (optional)</p><table>
+criteria described below (optional)</p><table>
<tr><th>Field</th><th>Description</th></tr>
<tr><td>`family`</td><td>
Number describing the address family to return - `4` selects
@@ -652,7 +652,7 @@ are considered lower than MAC addresses</li>
@class function
@sort 10
@name cidr.lower
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to compare against.
@return `true` if this CIDR is lower than the given address,
else `false`.
@@ -676,7 +676,7 @@ are considered lower than MAC addresses</li>
@class function
@sort 11
@name cidr.higher
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to compare against.
@return `true` if this CIDR is higher than the given address,
else `false`.
@@ -696,7 +696,7 @@ Checks whether this CIDR instance is equal to the given argument.
@class function
@sort 12
@name cidr.equal
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to compare against.
@return `true` if this CIDR is equal to the given address,
else `false`.
@@ -877,7 +877,7 @@ Test whether CIDR contains given range.
@class function
@sort 21
@name cidr.contains
-@param addr A `luci.ip.cidr` instance or a string convertable by
+@param addr A `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()` to test.
@return `true` if this instance fully contains the given address else
`false`.
@@ -903,12 +903,12 @@ address space, the result is set to the highest possible address.
@sort 22
@name cidr.add
@param amount A numeric value between 0 and 0xFFFFFFFF, a
- `luci.ip.cidr` instance or a string convertable by
+ `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()`.
@param inplace If `true`, modify this instance instead of returning
a new derived CIDR instance.
@return <ul>
- <li>When adding inplace: Return `true` if the addition succeded
+ <li>When adding inplace: Return `true` if the addition succeeded
or `false` when the addition overflowed.</li>
<li>When deriving new CIDR: Return new instance representing the value of
this instance plus the added amount or the highest possible address if
@@ -952,7 +952,7 @@ possible address is returned.
@sort 23
@name cidr.sub
@param amount A numeric value between 0 and 0xFFFFFFFF, a
- `luci.ip.cidr` instance or a string convertable by
+ `luci.ip.cidr` instance or a string convertible by
`luci.ip.new()`.
@param inplace If `true`, modify this instance instead of returning
a new derived CIDR instance.
diff --git a/libs/luci-lib-iptparser/Makefile b/libs/luci-lib-iptparser/Makefile
new file mode 100644
index 0000000000..06748adbfc
--- /dev/null
+++ b/libs/luci-lib-iptparser/Makefile
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2018 The LuCI Team <luci@lists.subsignal.org>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Iptables listing parser class
+LUCI_DEPENDS:=+luci-base
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/modules/luci-base/luasrc/sys/iptparser.lua b/libs/luci-lib-iptparser/luasrc/sys/iptparser.lua
index 7ff665e7af..7ff665e7af 100644
--- a/modules/luci-base/luasrc/sys/iptparser.lua
+++ b/libs/luci-lib-iptparser/luasrc/sys/iptparser.lua
diff --git a/modules/luci-base/luasrc/sys/iptparser.luadoc b/libs/luci-lib-iptparser/luasrc/sys/iptparser.luadoc
index 071e7d52e4..071e7d52e4 100644
--- a/modules/luci-base/luasrc/sys/iptparser.luadoc
+++ b/libs/luci-lib-iptparser/luasrc/sys/iptparser.luadoc
diff --git a/libs/luci-lib-nixio/docsrc/CHANGELOG.lua b/libs/luci-lib-nixio/docsrc/CHANGELOG.lua
index aa31841402..8c9260317b 100644
--- a/libs/luci-lib-nixio/docsrc/CHANGELOG.lua
+++ b/libs/luci-lib-nixio/docsrc/CHANGELOG.lua
@@ -10,7 +10,7 @@ module "nixio.CHANGELOG"
-- <li>Added support for x509 certificates in DER format.</li>
-- <li>Added support for splice() in UnifiedIO.copyz().</li>
-- <li>Added interface to inject chunks into UnifiedIO.linesource() buffer.</li>
--- <li>Changed TLS behaviour to explicitely separate servers and clients.</li>
+-- <li>Changed TLS behaviour to explicitly separate servers and clients.</li>
-- <li>Fixed usage of signed datatype breaking Base64 decoding.</li>
-- <li>Fixed namespace clashes for nixio.fs.</li>
-- <li>Fixed splice() support for some exotic C libraries.</li>
diff --git a/libs/luci-lib-nixio/docsrc/README.lua b/libs/luci-lib-nixio/docsrc/README.lua
index 9860cf0919..d663b629ee 100644
--- a/libs/luci-lib-nixio/docsrc/README.lua
+++ b/libs/luci-lib-nixio/docsrc/README.lua
@@ -18,7 +18,7 @@ module "nixio.README"
-- table <strong>nixio.const_sock</strong> for socket error codes. This might
-- be important if you are dealing with Windows applications, on POSIX however
-- const_sock is just an alias for const.</li>
--- <li>With some exceptions - which are explicitely stated in the function
+-- <li>With some exceptions - which are explicitly stated in the function
-- documentation - all blocking functions are signal-protected and will not fail
-- with EINTR.</li>
-- <li>On POSIX the SIGPIPE signal will be set to ignore upon initialization.
diff --git a/libs/luci-lib-nixio/docsrc/nixio.lua b/libs/luci-lib-nixio/docsrc/nixio.lua
index 1a0d69a054..56a4afbb88 100644
--- a/libs/luci-lib-nixio/docsrc/nixio.lua
+++ b/libs/luci-lib-nixio/docsrc/nixio.lua
@@ -59,7 +59,7 @@ module "nixio"
-- <li>aliases = Table of alias names</li>
-- </ul>
---- Get all or a specifc proto entry.
+--- Get all or a specific proto entry.
-- @class function
-- @name nixio.getproto
-- @param proto protocol number or name to lookup (optional)
diff --git a/libs/luci-lib-px5g/src/library/bignum.c b/libs/luci-lib-px5g/src/library/bignum.c
index 8b7c12ff00..d2a8ff42e1 100644
--- a/libs/luci-lib-px5g/src/library/bignum.c
+++ b/libs/luci-lib-px5g/src/library/bignum.c
@@ -720,7 +720,7 @@ cleanup:
}
/*
- * Helper for mpi substraction
+ * Helper for mpi subtraction
*/
static void mpi_sub_hlp( int n, t_int *s, t_int *d )
{
@@ -741,7 +741,7 @@ static void mpi_sub_hlp( int n, t_int *s, t_int *d )
}
/*
- * Unsigned substraction: X = |A| - |B| (HAC 14.9)
+ * Unsigned subtraction: X = |A| - |B| (HAC 14.9)
*/
int mpi_sub_abs( mpi *X, mpi *A, mpi *B )
{
@@ -809,7 +809,7 @@ cleanup:
}
/*
- * Signed substraction: X = A - B
+ * Signed subtraction: X = A - B
*/
int mpi_sub_mpi( mpi *X, mpi *A, mpi *B )
{
@@ -856,7 +856,7 @@ int mpi_add_int( mpi *X, mpi *A, int b )
}
/*
- * Signed substraction: X = A - b
+ * Signed subtraction: X = A - b
*/
int mpi_sub_int( mpi *X, mpi *A, int b )
{
diff --git a/libs/luci-lib-px5g/src/library/x509write.c b/libs/luci-lib-px5g/src/library/x509write.c
index 173610c1a0..b9ebf35bae 100644
--- a/libs/luci-lib-px5g/src/library/x509write.c
+++ b/libs/luci-lib-px5g/src/library/x509write.c
@@ -19,7 +19,7 @@
* MA 02110-1301 USA
*/
/*
- * The ITU-T X.509 standard defines a certificat format for PKI.
+ * The ITU-T X.509 standard defines a certificate format for PKI.
*
* http://www.ietf.org/rfc/rfc2459.txt
* http://www.ietf.org/rfc/rfc3279.txt
@@ -68,7 +68,7 @@ static int asn1_eval_octet(unsigned int digit)
}
/*
- * write the asn.1 lenght form into p
+ * write the asn.1 length form into p
*/
static int asn1_add_len(unsigned int size, x509_node *node)
{
@@ -788,7 +788,7 @@ static int x509write_parse_names(x509_node *node, unsigned char *names)
R_len = len;
}
- /* set tag poiner to begin */
+ /* set tag pointer to begin */
tag_sp = tag;
/* is at end? */
@@ -866,7 +866,7 @@ static int x509write_parse_names(x509_node *node, unsigned char *names)
}
/*
- * Copy raw data from orginal ca to node
+ * Copy raw data from original ca to node
*/
static int x509write_copy_from_raw(x509_node *node, x509_buf *raw)
{
diff --git a/libs/luci-lib-px5g/src/polarssl/bignum.h b/libs/luci-lib-px5g/src/polarssl/bignum.h
index c667303329..cf443ea922 100644
--- a/libs/luci-lib-px5g/src/polarssl/bignum.h
+++ b/libs/luci-lib-px5g/src/polarssl/bignum.h
@@ -272,7 +272,7 @@ int mpi_cmp_int( mpi *X, int z );
int mpi_add_abs( mpi *X, mpi *A, mpi *B );
/**
- * \brief Unsigned substraction: X = |A| - |B|
+ * \brief Unsigned subtraction: X = |A| - |B|
*
* \return 0 if successful,
* POLARSSL_ERR_MPI_NEGATIVE_VALUE if B is greater than A
@@ -288,7 +288,7 @@ int mpi_sub_abs( mpi *X, mpi *A, mpi *B );
int mpi_add_mpi( mpi *X, mpi *A, mpi *B );
/**
- * \brief Signed substraction: X = A - B
+ * \brief Signed subtraction: X = A - B
*
* \return 0 if successful,
* 1 if memory allocation failed
@@ -304,7 +304,7 @@ int mpi_sub_mpi( mpi *X, mpi *A, mpi *B );
int mpi_add_int( mpi *X, mpi *A, int b );
/**
- * \brief Signed substraction: X = A - b
+ * \brief Signed subtraction: X = A - b
*
* \return 0 if successful,
* 1 if memory allocation failed
diff --git a/libs/luci-lib-px5g/src/polarssl/x509.h b/libs/luci-lib-px5g/src/polarssl/x509.h
index 908a1dbf51..6c9ef99a8a 100644
--- a/libs/luci-lib-px5g/src/polarssl/x509.h
+++ b/libs/luci-lib-px5g/src/polarssl/x509.h
@@ -375,7 +375,7 @@ int x509write_add_pubkey( x509_raw *chain, rsa_context *pubkey );
* the string parse.
*
* \param chain points to the raw certificate data
- * \param names a string that can hold (separete with ";"):
+ * \param names a string that can hold (separate with ";"):
* CN=CommonName
* -- O=Organization
* -- OU=OrgUnit
@@ -402,7 +402,7 @@ int x509write_add_customize ( x509_raw *crt,
* \brief Add x509 issuer field
*
* \param chain points to the raw certificate data
-* \param issuer a string holding (separete with ";"):
+* \param issuer a string holding (separate with ";"):
* CN=CommonName
* -- O=Organization
* -- OU=OrgUnit
@@ -419,7 +419,7 @@ int x509write_add_issuer( x509_raw *crt, unsigned char *issuer);
* \brief Add x509 subject field
*
* \param chain points to the raw certificate data
- * \param subject a string holding (separete with ";"):
+ * \param subject a string holding (separate with ";"):
* CN=CommonName
* -- O=Organization
* -- OU=OrgUnit
diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js
index fcfc506942..70255c0b58 100644
--- a/modules/luci-base/htdocs/luci-static/resources/cbi.js
+++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js
@@ -511,20 +511,19 @@ function cbi_d_update() {
if (node && node.parentNode && !cbi_d_check(entry.deps)) {
node.parentNode.removeChild(node);
state = true;
- } else if (parent && (!node || !node.parentNode) && cbi_d_check(entry.deps)) {
+ }
+ else if (parent && (!node || !node.parentNode) && cbi_d_check(entry.deps)) {
var next = undefined;
for (next = parent.firstChild; next; next = next.nextSibling) {
- if (next.getAttribute && parseInt(next.getAttribute('data-index'), 10) > entry.index) {
+ if (next.getAttribute && parseInt(next.getAttribute('data-index'), 10) > entry.index)
break;
- }
}
- if (!next) {
+ if (!next)
parent.appendChild(entry.node);
- } else {
+ else
parent.insertBefore(entry.node, next);
- }
state = true;
}
@@ -539,9 +538,8 @@ function cbi_d_update() {
cbi_tag_last(parent);
}
- if (state) {
+ if (state)
cbi_d_update();
- }
}
function cbi_init() {
@@ -565,9 +563,8 @@ function cbi_init() {
var index = parseInt(node.getAttribute('data-index'), 10);
var depends = JSON.parse(node.getAttribute('data-depends'));
if (!isNaN(index) && depends.length > 0) {
- for (var alt = 0; alt < depends.length; alt++) {
+ for (var alt = 0; alt < depends.length; alt++)
cbi_d_add(node, depends[alt], index);
- }
}
}
@@ -575,9 +572,8 @@ function cbi_init() {
for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
var events = node.getAttribute('data-update').split(' ');
- for (var j = 0, event; (event = events[j]) !== undefined; j++) {
+ for (var j = 0, event; (event = events[j]) !== undefined; j++)
cbi_bind(node, event, cbi_d_update);
- }
}
nodes = document.querySelectorAll('[data-choices]');
@@ -670,13 +666,13 @@ function cbi_combobox(id, values, def, man, focus) {
var sel = document.createElement("select");
sel.id = selid;
sel.index = obj.index;
- sel.className = obj.className.replace(/cbi-input-text/, 'cbi-input-select');
+ sel.classList.remove('cbi-input-text');
+ sel.classList.add('cbi-input-select');
- if (obj.nextSibling) {
+ if (obj.nextSibling)
obj.parentNode.insertBefore(sel, obj.nextSibling);
- } else {
+ else
obj.parentNode.appendChild(sel);
- }
var dt = obj.getAttribute('cbi_datatype');
var op = obj.getAttribute('cbi_optional');
@@ -687,7 +683,8 @@ function cbi_combobox(id, values, def, man, focus) {
optdef.value = "";
optdef.appendChild(document.createTextNode(typeof(def) === 'string' ? def : cbi_strings.label.choose));
sel.appendChild(optdef);
- } else {
+ }
+ else {
var opt = document.createElement("option");
opt.value = obj.value;
opt.selected = "selected";
@@ -700,9 +697,8 @@ function cbi_combobox(id, values, def, man, focus) {
var opt = document.createElement("option");
opt.value = i;
- if (obj.value == i) {
+ if (obj.value == i)
opt.selected = "selected";
- }
opt.appendChild(document.createTextNode(values[i]));
sel.appendChild(opt);
@@ -724,7 +720,8 @@ function cbi_combobox(id, values, def, man, focus) {
sel.blur();
sel.parentNode.removeChild(sel);
obj.focus();
- } else {
+ }
+ else {
obj.value = sel.options[sel.selectedIndex].value;
}
@@ -788,35 +785,30 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
{
values = [ ];
- while (parent.firstChild)
- {
+ while (parent.firstChild) {
var n = parent.firstChild;
var i = +n.index;
- if (i != del)
- {
- if (n.nodeName.toLowerCase() == 'input')
+ if (i != del) {
+ if (matchesElem(n, 'input'))
values.push(n.value || '');
- else if (n.nodeName.toLowerCase() == 'select')
+ else if (matchesElem(n, 'select'))
values[values.length-1] = n.options[n.selectedIndex].value;
}
parent.removeChild(n);
}
- if (add >= 0)
- {
+ if (add >= 0) {
focus = add+1;
values.splice(focus, 0, '');
}
- else if (values.length == 0)
- {
+ else if (values.length == 0) {
focus = 0;
values.push('');
}
- for (var i = 0; i < values.length; i++)
- {
+ for (var i = 0; i < values.length; i++) {
var t = document.createElement('input');
t.id = prefix + '.' + (i+1);
t.name = prefix;
@@ -826,9 +818,7 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
t.className = 'cbi-input-text';
if (i == 0 && holder)
- {
t.placeholder = holder;
- }
var b = E('div', {
class: 'cbi-button cbi-button-' + ((i+1) < values.length ? 'remove' : 'add')
@@ -836,20 +826,16 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
parent.appendChild(t);
parent.appendChild(b);
+
if (datatype == 'file')
- {
cbi_browser_init(t.id, null, parent.getAttribute('data-browser-path'));
- }
parent.appendChild(document.createElement('br'));
if (datatype)
- {
cbi_validate_field(t.id, ((i+1) == values.length) || optional, datatype);
- }
- if (choices)
- {
+ if (choices) {
cbi_combobox_init(t.id, choices, '', cbi_strings.label.custom);
b.index = i;
@@ -859,17 +845,14 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
if (i == focus || -i == focus)
b.focus();
}
- else
- {
+ else {
cbi_bind(t, 'keydown', cbi_dynlist_keydown);
cbi_bind(t, 'keypress', cbi_dynlist_keypress);
- if (i == focus)
- {
+ if (i == focus) {
t.focus();
}
- else if (-i == focus)
- {
+ else if (-i == focus) {
t.focus();
/* force cursor to end */
@@ -892,13 +875,11 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
if (se.nodeType == 3)
se = se.parentNode;
- switch (ev.keyCode)
- {
+ switch (ev.keyCode) {
/* backspace, delete */
case 8:
case 46:
- if (se.value.length == 0)
- {
+ if (se.value.length == 0) {
if (ev.preventDefault)
ev.preventDefault();
@@ -941,16 +922,14 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
if (next && next.nextSibling.name == prefix)
next = next.nextSibling;
- switch (ev.keyCode)
- {
+ switch (ev.keyCode) {
/* backspace, delete */
case 8:
case 46:
- var del = (se.nodeName.toLowerCase() == 'select')
+ var del = (matchesElem(se, 'select'))
? true : (se.value.length == 0);
- if (del)
- {
+ if (del) {
if (ev.preventDefault)
ev.preventDefault();
@@ -994,9 +973,8 @@ function cbi_dynlist_init(parent, datatype, optional, choices)
var se = ev.target ? ev.target : ev.srcElement;
var input = se.previousSibling;
- while (input && input.name != prefix) {
+ while (input && input.name != prefix)
input = input.previousSibling;
- }
if (se.classList.contains('cbi-button-remove')) {
input.value = '';
@@ -1024,39 +1002,45 @@ function cbi_t_add(section, tab) {
var t = document.getElementById('tab.' + section + '.' + tab);
var c = document.getElementById('container.' + section + '.' + tab);
- if( t && c ) {
+ if (t && c) {
cbi_t[section] = (cbi_t[section] || [ ]);
cbi_t[section][tab] = { 'tab': t, 'container': c, 'cid': c.id };
}
}
function cbi_t_switch(section, tab) {
- if( cbi_t[section] && cbi_t[section][tab] ) {
+ if (cbi_t[section] && cbi_t[section][tab]) {
var o = cbi_t[section][tab];
var h = document.getElementById('tab.' + section);
- for( var tid in cbi_t[section] ) {
+
+ for (var tid in cbi_t[section]) {
var o2 = cbi_t[section][tid];
- if( o.tab.id != o2.tab.id ) {
- o2.tab.className = o2.tab.className.replace(/(^| )cbi-tab( |$)/, " cbi-tab-disabled ");
+
+ if (o.tab.id != o2.tab.id) {
+ o2.tab.classList.remove('cbi-tab');
+ o2.tab.classList.add('cbi-tab-disabled');
o2.container.style.display = 'none';
}
else {
- if(h) h.value = tab;
- o2.tab.className = o2.tab.className.replace(/(^| )cbi-tab-disabled( |$)/, " cbi-tab ");
+ if(h)
+ h.value = tab;
+
+ o2.tab.classList.remove('cbi-tab-disabled');
+ o2.tab.classList.add('cbi-tab');
o2.container.style.display = 'block';
}
}
}
- return false
+
+ return false;
}
function cbi_t_update() {
var hl_tabs = [ ];
var updated = false;
- for( var sid in cbi_t )
- for( var tid in cbi_t[sid] )
- {
+ for (var sid in cbi_t)
+ for (var tid in cbi_t[sid]) {
var t = cbi_t[sid][tid].tab;
var c = cbi_t[sid][tid].container;
@@ -1065,7 +1049,7 @@ function cbi_t_update() {
}
else if (t.style.display == 'none') {
t.style.display = '';
- t.className += ' cbi-tab-highlighted';
+ t.classList.add('cbi-tab-highlighted');
hl_tabs.push(t);
}
@@ -1075,8 +1059,8 @@ function cbi_t_update() {
if (hl_tabs.length > 0)
window.setTimeout(function() {
- for( var i = 0; i < hl_tabs.length; i++ )
- hl_tabs[i].className = hl_tabs[i].className.replace(/ cbi-tab-highlighted/g, '');
+ for (var i = 0; i < hl_tabs.length; i++)
+ hl_tabs[i].classList.remove('cbi-tab-highlighted');
}, 750);
return updated;
@@ -1086,16 +1070,14 @@ function cbi_t_update() {
function cbi_validate_form(form, errmsg)
{
/* if triggered by a section removal or addition, don't validate */
- if( form.cbi_state == 'add-section' || form.cbi_state == 'del-section' )
+ if (form.cbi_state == 'add-section' || form.cbi_state == 'del-section')
return true;
- if( form.cbi_validators )
- {
- for( var i = 0; i < form.cbi_validators.length; i++ )
- {
+ if (form.cbi_validators) {
+ for (var i = 0; i < form.cbi_validators.length; i++) {
var validator = form.cbi_validators[i];
- if( !validator() && errmsg )
- {
+
+ if (!validator() && errmsg) {
alert(errmsg);
return false;
}
@@ -1123,10 +1105,8 @@ function cbi_validate_compile(code)
code += ',';
- for (var i = 0; i < code.length; i++)
- {
- if (esc)
- {
+ for (var i = 0; i < code.length; i++) {
+ if (esc) {
esc = false;
continue;
}
@@ -1139,41 +1119,36 @@ function cbi_validate_compile(code)
case 40:
case 44:
- if (depth <= 0)
- {
- if (pos < i)
- {
+ if (depth <= 0) {
+ if (pos < i) {
var label = code.substring(pos, i);
label = label.replace(/\\(.)/g, '$1');
label = label.replace(/^[ \t]+/g, '');
label = label.replace(/[ \t]+$/g, '');
- if (label && !isNaN(label))
- {
+ if (label && !isNaN(label)) {
stack.push(parseFloat(label));
}
- else if (label.match(/^(['"]).*\1$/))
- {
+ else if (label.match(/^(['"]).*\1$/)) {
stack.push(label.replace(/^(['"])(.*)\1$/, '$2'));
}
- else if (typeof cbi_validators[label] == 'function')
- {
+ else if (typeof cbi_validators[label] == 'function') {
stack.push(cbi_validators[label]);
stack.push(null);
}
- else
- {
+ else {
throw "Syntax error, unhandled token '"+label+"'";
}
}
+
pos = i+1;
}
+
depth += (code.charCodeAt(i) == 40);
break;
case 41:
- if (--depth <= 0)
- {
+ if (--depth <= 0) {
if (typeof stack[stack.length-2] != 'function')
throw "Syntax error, argument list follows non-function";
@@ -1182,6 +1157,7 @@ function cbi_validate_compile(code)
pos = i+1;
}
+
break;
}
}
@@ -1194,23 +1170,20 @@ function cbi_validate_field(cbid, optional, type)
var field = (typeof cbid == "string") ? document.getElementById(cbid) : cbid;
var vstack; try { vstack = cbi_validate_compile(type); } catch(e) { };
- if (field && vstack && typeof vstack[0] == "function")
- {
+ if (field && vstack && typeof vstack[0] == "function") {
var validator = function()
{
// is not detached
- if( field.form )
- {
- field.className = field.className.replace(/ cbi-input-invalid/g, '');
+ if (field.form) {
+ field.classList.remove('cbi-input-invalid');
// validate value
var value = (field.options && field.options.selectedIndex > -1)
? field.options[field.options.selectedIndex].value : field.value;
- if (!(((value.length == 0) && optional) || vstack[0].apply(value, vstack[1])))
- {
+ if (!(((value.length == 0) && optional) || vstack[0].apply(value, vstack[1]))) {
// invalid
- field.className += ' cbi-input-invalid';
+ field.classList.add('cbi-input-invalid');
return false;
}
}
@@ -1218,7 +1191,7 @@ function cbi_validate_field(cbid, optional, type)
return true;
};
- if( ! field.form.cbi_validators )
+ if (!field.form.cbi_validators)
field.form.cbi_validators = [ ];
field.form.cbi_validators.push(validator);
@@ -1226,8 +1199,7 @@ function cbi_validate_field(cbid, optional, type)
cbi_bind(field, "blur", validator);
cbi_bind(field, "keyup", validator);
- if (field.nodeName == 'SELECT')
- {
+ if (matchesElem(field, 'select')) {
cbi_bind(field, "change", validator);
cbi_bind(field, "click", validator);
}
@@ -1291,7 +1263,8 @@ function cbi_row_swap(elem, up, store)
input.value = ids.join(' ');
window.scrollTo(0, tr.offsetTop);
- window.setTimeout(function() { tr.classList.add('flash'); }, 1);
+ void tr.offsetWidth;
+ tr.classList.add('flash');
return false;
}
@@ -1300,20 +1273,16 @@ function cbi_tag_last(container)
{
var last;
- for (var i = 0; i < container.childNodes.length; i++)
- {
+ for (var i = 0; i < container.childNodes.length; i++) {
var c = container.childNodes[i];
- if (c.nodeType == 1 && c.nodeName.toLowerCase() == 'div')
- {
- c.className = c.className.replace(/ cbi-value-last$/, '');
+ if (matchesElem(c, 'div')) {
+ c.classList.remove('cbi-value-last');
last = c;
}
}
if (last)
- {
- last.className += ' cbi-value-last';
- }
+ last.classList.add('cbi-value-last');
}
function cbi_submit(elem, name, value, action)
@@ -1350,8 +1319,9 @@ String.prototype.format = function()
if (typeof(s) !== 'string' && !(s instanceof String))
return '';
- for( var i = 0; i < r.length; i += 2 )
+ for (var i = 0; i < r.length; i += 2)
s = s.replace(r[i], r[i+1]);
+
return s;
}
@@ -1360,22 +1330,18 @@ String.prototype.format = function()
var re = /^(([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|q|h|j|t|m))/;
var a = b = [], numSubstitutions = 0, numMatches = 0;
- while (a = re.exec(str))
- {
+ while (a = re.exec(str)) {
var m = a[1];
var leftpart = a[2], pPad = a[3], pJustify = a[4], pMinLength = a[5];
var pPrecision = a[6], pType = a[7];
numMatches++;
- if (pType == '%')
- {
+ if (pType == '%') {
subst = '%';
}
- else
- {
- if (numSubstitutions < arguments.length)
- {
+ else {
+ if (numSubstitutions < arguments.length) {
var param = arguments[numSubstitutions++];
var pad = '';
@@ -1400,8 +1366,7 @@ String.prototype.format = function()
var subst = param;
- switch(pType)
- {
+ switch(pType) {
case 'b':
subst = (+param || 0).toString(2);
break;
@@ -1517,16 +1482,20 @@ String.prototype.nobr = function()
String.format = function()
{
var a = [ ];
+
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
+
return ''.format.apply(arguments[0], a);
}
String.nobr = function()
{
var a = [ ];
+
for (var i = 1; i < arguments.length; i++)
a.push(arguments[i]);
+
return ''.nobr.apply(arguments[0], a);
}
@@ -1569,12 +1538,16 @@ function toElem(s)
return elem || null;
}
+function matchesElem(node, selector)
+{
+ return ((node.matches && node.matches(selector)) ||
+ (node.msMatchesSelector && node.msMatchesSelector(selector)));
+}
+
function findParent(node, selector)
{
while (node)
- if (node.msMatchesSelector && node.msMatchesSelector(selector))
- return node;
- else if (node.matches && node.matches(selector))
+ if (matchesElem(node, selector))
return node;
else
node = node.parentNode;
@@ -1813,7 +1786,7 @@ CBIDropdown = {
return;
document.querySelectorAll('.focus').forEach(function(e) {
- if (e.nodeName.toLowerCase() !== 'input') {
+ if (!matchesElem(e, 'input')) {
e.classList.remove('focus');
e.blur();
}
@@ -1952,7 +1925,7 @@ function cbi_dropdown_init(sb) {
sb.addEventListener('click', function(ev) {
if (!this.hasAttribute('open')) {
- if (ev.target.nodeName.toLowerCase() !== 'input')
+ if (!matchesElem(ev.target, 'input'))
sbox.openDropdown(this);
}
else {
@@ -1966,7 +1939,7 @@ function cbi_dropdown_init(sb) {
});
sb.addEventListener('keydown', function(ev) {
- if (ev.target.nodeName.toLowerCase() === 'input')
+ if (matchesElem(ev.target, 'input'))
return;
if (!this.hasAttribute('open')) {
@@ -2062,8 +2035,12 @@ function cbi_dropdown_init(sb) {
create.addEventListener('keydown', function(ev) {
switch (ev.keyCode) {
case 13:
- sbox.createItems(sb, this.value);
ev.preventDefault();
+
+ if (this.classList.contains('cbi-input-invalid'))
+ return;
+
+ sbox.createItems(sb, this.value);
this.value = '';
this.blur();
break;
diff --git a/modules/luci-base/luasrc/dispatcher.luadoc b/modules/luci-base/luasrc/dispatcher.luadoc
index ddf534b3e1..f26256953a 100644
--- a/modules/luci-base/luasrc/dispatcher.luadoc
+++ b/modules/luci-base/luasrc/dispatcher.luadoc
@@ -22,7 +22,7 @@ Check whether a dispatch node shall be visible
]]
---[[
-Return a sorted table of visible childs within a given node
+Return a sorted table of visible children within a given node
@class function
@name node_childs
diff --git a/modules/luci-base/luasrc/http.lua b/modules/luci-base/luasrc/http.lua
index f4ede4b8a5..20b55f2854 100644
--- a/modules/luci-base/luasrc/http.lua
+++ b/modules/luci-base/luasrc/http.lua
@@ -335,13 +335,13 @@ end
-- Content-Type. Stores all extracted data associated with its parameter name
-- in the params table within the given message object. Multiple parameter
-- values are stored as tables, ordinary ones as strings.
--- If an optional file callback function is given then it is feeded with the
+-- If an optional file callback function is given then it is fed with the
-- file contents chunk by chunk and only the extracted file name is stored
-- within the params table. The callback function will be called subsequently
-- with three arguments:
-- o Table containing decoded (name, file) and raw (headers) mime header data
-- o String value containing a chunk of the file data
--- o Boolean which indicates wheather the current chunk is the last one (eof)
+-- o Boolean which indicates whether the current chunk is the last one (eof)
function mimedecode_message_body(src, msg, file_cb)
local parser, header, field
local len, maxlen = 0, tonumber(msg.env.CONTENT_LENGTH or nil)
diff --git a/modules/luci-base/luasrc/http.luadoc b/modules/luci-base/luasrc/http.luadoc
index f8121230b6..8f6f380d8b 100644
--- a/modules/luci-base/luasrc/http.luadoc
+++ b/modules/luci-base/luasrc/http.luadoc
@@ -204,13 +204,13 @@ Stores all extracted data associated with its parameter name
in the params table within the given message object. Multiple parameter
values are stored as tables, ordinary ones as strings.
-If an optional file callback function is given then it is feeded with the
+If an optional file callback function is given then it is fed with the
file contents chunk by chunk and only the extracted file name is stored
within the params table. The callback function will be called subsequently
with three arguments:
o Table containing decoded (name, file) and raw (headers) mime header data
o String value containing a chunk of the file data
- o Boolean which indicates wheather the current chunk is the last one (eof)
+ o Boolean which indicates whether the current chunk is the last one (eof)
@class function
@name mimedecode_message_body
diff --git a/modules/luci-base/luasrc/model/uci.lua b/modules/luci-base/luasrc/model/uci.lua
index 2119a210bb..a50e28a871 100644
--- a/modules/luci-base/luasrc/model/uci.lua
+++ b/modules/luci-base/luasrc/model/uci.lua
@@ -15,7 +15,7 @@ local type, tostring, tonumber, unpack = type, tostring, tonumber, unpack
-- cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
-- save the changes to the staging area via Cursor.save and finally
-- Cursor.commit the data to the actual config files.
--- LuCI then needs to Cursor.apply the changes so deamons etc. are
+-- LuCI then needs to Cursor.apply the changes so daemons etc. are
-- reloaded.
module "luci.model.uci"
diff --git a/modules/luci-base/luasrc/model/uci.luadoc b/modules/luci-base/luasrc/model/uci.luadoc
index d798b00338..0189d49aa1 100644
--- a/modules/luci-base/luasrc/model/uci.luadoc
+++ b/modules/luci-base/luasrc/model/uci.luadoc
@@ -5,7 +5,7 @@ The typical workflow for UCI is: Get a cursor instance from the
cursor factory, modify data (via Cursor.add, Cursor.delete, etc.),
save the changes to the staging area via Cursor.save and finally
Cursor.commit the data to the actual config files.
-LuCI then needs to Cursor.apply the changes so deamons etc. are
+LuCI then needs to Cursor.apply the changes so daemons etc. are
reloaded.
@cstyle instance
]]
@@ -172,7 +172,7 @@ has the same effect as deleting the option.
---[[
Create a sub-state of this cursor.
-The sub-state is tied to the parent curser, means it the parent unloads or
+The sub-state is tied to the parent cursor, means it the parent unloads or
loads configs, the sub state will do so as well.
@class function
@@ -339,7 +339,7 @@ Set the configuration directory.
]]
---[[
-Set the directory for uncommited changes.
+Set the directory for uncommitted changes.
@class function
@name Cursor.set_savedir
diff --git a/modules/luci-base/luasrc/sys.luadoc b/modules/luci-base/luasrc/sys.luadoc
index 1c1fa92602..3c7f69c6e9 100644
--- a/modules/luci-base/luasrc/sys.luadoc
+++ b/modules/luci-base/luasrc/sys.luadoc
@@ -18,7 +18,7 @@ Execute a given shell command and capture its standard output
@class function
@name exec
@param command Command to call
-@return String containg the return the output of the command
+@return String containing the return the output of the command
]]
---[[
@@ -38,7 +38,7 @@ exists.
@class function
@name getenv
@param var Name of the environment variable to retrieve (optional)
-@return String containg the value of the specified variable
+@return String containing the value of the specified variable
@return Table containing all variables if no variable name is given
]]
@@ -279,7 +279,7 @@ LuCI system utilities / user related functions.
]]
---[[
-Retrieve user informations for given uid.
+Retrieve user information for given uid.
@class function
@name getuser
@@ -305,7 +305,7 @@ Test whether given string matches the password of a given system user.
@name user.checkpasswd
@param username String containing the Unix user name
@param pass String containing the password to compare
-@return Boolean indicating wheather the passwords are equal
+@return Boolean indicating whether the passwords are equal
]]
---[[
diff --git a/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua b/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
index 47cb901a5b..a97d2b4d60 100644
--- a/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
+++ b/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
@@ -270,7 +270,7 @@ TZ = {
{ 'Asia/Oral', '<+05>-5' },
{ 'Asia/Phnom Penh', '<+07>-7' },
{ 'Asia/Pontianak', 'WIB-7' },
- { 'Asia/Pyongyang', 'KST-8:30' },
+ { 'Asia/Pyongyang', 'KST-9' },
{ 'Asia/Qatar', '<+03>-3' },
{ 'Asia/Qyzylorda', '<+06>-6' },
{ 'Asia/Riyadh', '<+03>-3' },
@@ -358,7 +358,7 @@ TZ = {
{ 'Europe/Busingen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Chisinau', 'EET-2EEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Copenhagen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
- { 'Europe/Dublin', 'GMT0IST,M3.5.0/1,M10.5.0' },
+ { 'Europe/Dublin', 'IST-1GMT0,M10.5.0,M3.5.0/1' },
{ 'Europe/Gibraltar', 'CET-1CEST,M3.5.0,M10.5.0/3' },
{ 'Europe/Guernsey', 'GMT0BST,M3.5.0/1,M10.5.0' },
{ 'Europe/Helsinki', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
diff --git a/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua b/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
index cf5afeb9d8..20f57dc1b2 100644
--- a/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
+++ b/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
@@ -34,7 +34,7 @@ OFFSET = {
idt = 10800, -- IDT
pkt = 18000, -- PKT
wita = 28800, -- WITA
- kst = 30600, -- KST
+ kst = 32400, -- KST
jst = 32400, -- JST
acst = 34200, -- ACST
acdt = 37800, -- ACDT
diff --git a/modules/luci-base/luasrc/util.lua b/modules/luci-base/luasrc/util.lua
index f16b3afb2e..1a329f3f20 100644
--- a/modules/luci-base/luasrc/util.lua
+++ b/modules/luci-base/luasrc/util.lua
@@ -262,7 +262,7 @@ end
-- one token per invocation, the tokens are separated by whitespace. If the
-- input value is a table, it is transformed into a string first. A nil value
--- will result in a valid interator which aborts with the first invocation.
+-- will result in a valid iterator which aborts with the first invocation.
function imatch(v)
if type(v) == "table" then
local k = nil
diff --git a/modules/luci-base/luasrc/util.luadoc b/modules/luci-base/luasrc/util.luadoc
index c4f28d039a..4ec68dd1ef 100644
--- a/modules/luci-base/luasrc/util.luadoc
+++ b/modules/luci-base/luasrc/util.luadoc
@@ -158,7 +158,7 @@ Return a matching iterator for the given value.
The iterator will return one token per invocation, the tokens are separated by
whitespace. If the input value is a table, it is transformed into a string first.
-A nil value will result in a valid interator which aborts with the first invocation.
+A nil value will result in a valid iterator which aborts with the first invocation.
@class function
@name imatch
@@ -289,7 +289,7 @@ will be stripped before it is returned.
]]
---[[
-Strips unnescessary lua bytecode from given string.
+Strips unnecessary lua bytecode from given string.
Information like line numbers and debugging numbers will be discarded.
Original version by Peter Cawley (http://lua-users.org/lists/lua-l/2008-02/msg01158.html)
diff --git a/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm b/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
index b38e4b13db..dc251dbd94 100644
--- a/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
+++ b/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
@@ -63,7 +63,7 @@
if empty then
%>
<label class="zonebadge zonebadge-empty">
- <strong><%=zone:forward():upper()%></strong>
+ <strong><%=def:forward():upper()%></strong>
</label>
<% end %>
</div>
diff --git a/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm b/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm
index 3a108020b6..c5addc0ddb 100644
--- a/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm
+++ b/modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm
@@ -98,7 +98,7 @@
<span class="zonebadge">
<em><%:create%>:</em>
<input type="password" style="display:none" />
- <input class="create-item-input" type="text" />
+ <input class="create-item-input" type="text" data-type="and(uciname,maxlength(11))" data-optional="true" />
</span>
</li>
<% end %>
diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po
index 9c656cc7ce..146d9fe05f 100644
--- a/modules/luci-base/po/ca/base.po
+++ b/modules/luci-base/po/ca/base.po
@@ -696,6 +696,9 @@ msgstr "Aplegant dades..."
msgid "Command"
msgstr "Ordre"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuració comuna"
@@ -1461,6 +1464,9 @@ msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
"No mostris l'<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Nom de màquina"
@@ -2201,9 +2207,6 @@ msgstr "Cap servidor DHCP configurat en aquesta interfície"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "No hi ha cadenes en aquesta taula"
-
msgid "No files found"
msgstr "Cap fitxer trobat"
@@ -2228,7 +2231,7 @@ msgstr "No hi ha llistes de paquets disponibles"
msgid "No password set!"
msgstr "No hi ha cap contrasenya establerta!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "No hi ha regles en aquesta cadena"
msgid "No scan results available yet..."
@@ -2572,6 +2575,9 @@ msgstr "Paquets"
msgid "Please enter your username and password."
msgstr "Si us plau entra el teu nom d'usuari i contrasenya."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
@@ -2910,6 +2916,9 @@ msgstr ""
"Les rutes especifiquen per quina interfície i passarel·la es pot arribar a "
"un cert ordinador o xarxa."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -3026,6 +3035,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Atura aquesta interfície"
@@ -4052,6 +4064,9 @@ msgstr "sí"
msgid "« Back"
msgstr "« Enrere"
+#~ msgid "No chains in this table"
+#~ msgstr "No hi ha cadenes en aquesta taula"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Es mantindran els fitxers de configuració."
diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po
index 89a1404184..37cc646471 100644
--- a/modules/luci-base/po/cs/base.po
+++ b/modules/luci-base/po/cs/base.po
@@ -690,6 +690,9 @@ msgstr "Probíhá sběr dat..."
msgid "Command"
msgstr "Příkaz"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Společná nastavení"
@@ -1459,6 +1462,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Skrývat <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2209,9 +2215,6 @@ msgstr "Pro toto rozhraní není nastaven žádný DHCP server"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Žádné řetězce v této tabulce"
-
msgid "No files found"
msgstr "Nebyly nalezeny žádné soubory"
@@ -2236,7 +2239,7 @@ msgstr "Seznam balíčků není k dispozici"
msgid "No password set!"
msgstr "Žádné heslo!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Žádná pravidla v tomto řetězci"
msgid "No scan results available yet..."
@@ -2581,6 +2584,9 @@ msgstr "Paketů"
msgid "Please enter your username and password."
msgstr "Prosím vložte vaše uživatelské jméno a heslo."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Politika"
@@ -2924,6 +2930,9 @@ msgid ""
msgstr ""
"Trasy určují, přes jaké rozhraní a bránu může být konkrétního hosta dosaženo."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Spustit kontrolu souborového systému před připojením zařízení"
@@ -3042,6 +3051,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Ukázat aktuální seznam záložních souborů"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Shodit toho rozhraní"
@@ -4082,6 +4094,9 @@ msgstr "ano"
msgid "« Back"
msgstr "« Zpět"
+#~ msgid "No chains in this table"
+#~ msgstr "Žádné řetězce v této tabulce"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurační soubory budou zachovány."
diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po
index 261085ace8..917cf97ab6 100644
--- a/modules/luci-base/po/de/base.po
+++ b/modules/luci-base/po/de/base.po
@@ -714,6 +714,9 @@ msgstr "Sammle Daten..."
msgid "Command"
msgstr "Befehl"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Allgemeine Konfiguration"
@@ -1513,6 +1516,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "ESSID verstecken"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2289,9 +2295,6 @@ msgstr "Kein DHCP Server auf dieser Schnittstelle eingerichtet"
msgid "No NAT-T"
msgstr "Kein NAT-T"
-msgid "No chains in this table"
-msgstr "Keine Ketten in dieser Tabelle"
-
msgid "No files found"
msgstr "Keine Dateien gefunden"
@@ -2317,7 +2320,7 @@ msgstr "Es sind keine Paketlisten vorhanden"
msgid "No password set!"
msgstr "Kein Passwort gesetzt!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Keine Regeln in dieser Kette"
msgid "No scan results available yet..."
@@ -2679,6 +2682,9 @@ msgstr "Pkte."
msgid "Please enter your username and password."
msgstr "Bitte Benutzernamen und Passwort eingeben."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Standardregel"
@@ -3038,6 +3044,9 @@ msgstr ""
"Netzwerkrouten geben an, über welche Schnittstellen bestimmte Rechner oder "
"Netzwerke erreicht werden können"
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Vor dem Einhängen Dateisystemprüfung starten "
@@ -3159,6 +3168,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Zeige aktuelle Liste der gesicherten Dateien"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Diese Schnittstelle herunterfahren"
@@ -4250,6 +4262,9 @@ msgstr "ja"
msgid "« Back"
msgstr "« Zurück"
+#~ msgid "No chains in this table"
+#~ msgstr "Keine Ketten in dieser Tabelle"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurationsdateien sichern"
diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po
index bc9a08e3c7..a8aa561187 100644
--- a/modules/luci-base/po/el/base.po
+++ b/modules/luci-base/po/el/base.po
@@ -699,6 +699,9 @@ msgstr "Συλλογή δεδομένων..."
msgid "Command"
msgstr "Εντολή"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Κοινή Παραμετροποίηση"
@@ -1472,6 +1475,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Κρυφό <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2217,9 +2223,6 @@ msgstr "Δεν υπάρχει ρυθμισμένος DHCP εξυπηρετητή
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Δεν υπάρχουν αλυσίδες σε αυτόν τον πίνακα"
-
msgid "No files found"
msgstr "Δε βρέθηκαν αρχεία"
@@ -2244,7 +2247,7 @@ msgstr "Δεν υπάρχουν διαθέσιμες λίστες πακέτων
msgid "No password set!"
msgstr "Δεν έχει οριστεί κωδικός πρόσβασης!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Δεν υπάρχει κανόνας σε αυτή την αλυσίδα"
msgid "No scan results available yet..."
@@ -2588,6 +2591,9 @@ msgstr "Πκτ."
msgid "Please enter your username and password."
msgstr "Παρακαλώ εισάγετε όνομα χρήστη και κωδικό πρόσβασης."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Πολιτική"
@@ -2928,6 +2934,9 @@ msgstr ""
"Οι διαδρομές ορίζουν τη διεπαφή και πύλη από την οποία κάποιος υπολογιστής ή "
"δίκτυο μπορεί να είναι προσβάσιμο/ς."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Εκτέλεση ελέγχου του συστήματος αρχείων πριν προσαρτηθεί η συσκευή"
@@ -3044,6 +3053,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Απενεργοποίηση αυτής της διεπαφής"
@@ -4047,6 +4059,9 @@ msgstr "ναι"
msgid "« Back"
msgstr "« Πίσω"
+#~ msgid "No chains in this table"
+#~ msgstr "Δεν υπάρχουν αλυσίδες σε αυτόν τον πίνακα"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Τα αρχεία παραμετροποίησης θα διατηρηθούν."
diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po
index 9371f51801..bc7bc1965d 100644
--- a/modules/luci-base/po/en/base.po
+++ b/modules/luci-base/po/en/base.po
@@ -687,6 +687,9 @@ msgstr "Collecting data..."
msgid "Command"
msgstr "Command"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Common Configuration"
@@ -1448,6 +1451,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2185,9 +2191,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "No chains in this table"
-
msgid "No files found"
msgstr ""
@@ -2212,8 +2215,8 @@ msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
-msgstr "No rules in this chain"
+msgid "No rules in this chain."
+msgstr "No rules in this chain."
msgid "No scan results available yet..."
msgstr ""
@@ -2556,6 +2559,9 @@ msgstr "Pkts."
msgid "Please enter your username and password."
msgstr "Please enter your username and password."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Policy"
@@ -2894,6 +2900,9 @@ msgstr ""
"Routes specify over which interface and gateway a certain host or network "
"can be reached."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -3009,6 +3018,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
@@ -4004,6 +4016,9 @@ msgstr ""
msgid "« Back"
msgstr "« Back"
+#~ msgid "No chains in this table"
+#~ msgstr "No chains in this table"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Configuration files will be kept."
diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po
index a68c95a3a3..23632fd57a 100644
--- a/modules/luci-base/po/es/base.po
+++ b/modules/luci-base/po/es/base.po
@@ -696,6 +696,9 @@ msgstr "Un momento..."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuración común"
@@ -1468,6 +1471,9 @@ msgstr "Claves públicas SSH. Ponga una por línea."
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Ocultar <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2224,9 +2230,6 @@ msgstr "No se ha configurado un servidor DHCP para esta interfaz"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "No hay cadenas en esta tabla"
-
msgid "No files found"
msgstr "No se han encontrado ficheros"
@@ -2251,7 +2254,7 @@ msgstr "No hay listas de paquetes disponibles"
msgid "No password set!"
msgstr "¡Sin contraseña!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "No hay reglas en esta cadena"
msgid "No scan results available yet..."
@@ -2596,6 +2599,9 @@ msgstr "Paq."
msgid "Please enter your username and password."
msgstr "Por favor, introduzca su nombre de usuario y contraseña."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
@@ -2939,6 +2945,9 @@ msgstr ""
"Las rutas especifican sobre qué interfaz y pasarela se puede llegar a una "
"cierta máquina o red."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Comprobar el sistema de ficheros antes de montar el dispositivo"
@@ -3057,6 +3066,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Mostrar lista de ficheros a salvar"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Apagar esta interfaz"
@@ -4111,6 +4123,9 @@ msgstr "sí"
msgid "« Back"
msgstr "« Volver"
+#~ msgid "No chains in this table"
+#~ msgstr "No hay cadenas en esta tabla"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Se mantendrán los ficheros de configuración."
diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po
index dc0a0d098c..f96ecd3893 100644
--- a/modules/luci-base/po/fr/base.po
+++ b/modules/luci-base/po/fr/base.po
@@ -702,6 +702,9 @@ msgstr "Récupération de données..."
msgid "Command"
msgstr "Commande"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuration commune"
@@ -1481,6 +1484,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Cacher le ESSID"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2237,9 +2243,6 @@ msgstr "Aucun serveur DHCP configuré sur cette interface"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Aucune chaîne dans cette table"
-
msgid "No files found"
msgstr "Aucun fichier trouvé"
@@ -2264,7 +2267,7 @@ msgstr "Aucune liste de paquets disponible"
msgid "No password set!"
msgstr "Pas de mot de passe positionné !"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Aucune règle dans cette chaîne"
msgid "No scan results available yet..."
@@ -2608,6 +2611,9 @@ msgstr "Pqts."
msgid "Please enter your username and password."
msgstr "Saisissez votre nom d'utilisateur et mot de passe."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Politique"
@@ -2950,6 +2956,9 @@ msgstr ""
"Avec les routes statiques vous pouvez spécifier à travers quelle interface "
"ou passerelle un réseau peut être contacté."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Faire un vérification du système de fichiers avant de monter le périphérique"
@@ -3069,6 +3078,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Afficher la liste des fichiers de la sauvegarde actuelle"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Arrêter cet interface"
@@ -4128,6 +4140,9 @@ msgstr "oui"
msgid "« Back"
msgstr "« Retour"
+#~ msgid "No chains in this table"
+#~ msgstr "Aucune chaîne dans cette table"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Les fichiers de configuration seront préservés."
diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po
index 0a6204aa87..0b3acb89cc 100644
--- a/modules/luci-base/po/he/base.po
+++ b/modules/luci-base/po/he/base.po
@@ -681,6 +681,9 @@ msgstr "אוסף מידע..."
msgid "Command"
msgstr "פקודה"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "הגדרות נפוצות"
@@ -1432,6 +1435,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2159,9 +2165,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
@@ -2186,7 +2189,7 @@ msgstr "אין רשימת חבילות זמינה"
msgid "No password set!"
msgstr "לא הוגדרה סיסמה!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
@@ -2524,6 +2527,9 @@ msgstr ""
msgid "Please enter your username and password."
msgstr "אנא הזן את שם המשתמש והסיסמה שלך:"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2858,6 +2864,9 @@ msgid ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -2974,6 +2983,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po
index 724d3ea481..5a75deb784 100644
--- a/modules/luci-base/po/hu/base.po
+++ b/modules/luci-base/po/hu/base.po
@@ -697,6 +697,9 @@ msgstr "Adatok összegyűjtése..."
msgid "Command"
msgstr "Parancs"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Álatános beállítás"
@@ -1470,6 +1473,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> elrejtése"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2226,9 +2232,6 @@ msgstr "Ehhez az interfészhez nincs DHCP kiszolgáló beállítva"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Ez a tábla nem tartalmaz láncokat."
-
msgid "No files found"
msgstr "Nem találhatók fájlok"
@@ -2253,7 +2256,7 @@ msgstr "Csomaglisták nem állnak rendelkezésre"
msgid "No password set!"
msgstr "Nincs jelszó!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Ez a lánc nem tartalmaz szabályokat"
msgid "No scan results available yet..."
@@ -2598,6 +2601,9 @@ msgstr "csom."
msgid "Please enter your username and password."
msgstr "Adja meg a felhasználónevét és a jelszavát."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Szabály"
@@ -2942,6 +2948,9 @@ msgstr ""
"Az útvonalak határozzák meg, hogy bizonyos gépek illetve hálózatok melyik "
"interfészen keresztül érhetők el."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Fájlrendszer ellenőrzés futtatása az eszköz csatolása előtt"
@@ -3060,6 +3069,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Mentendő fájlok aktuális listájának megjelenítése"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Interfész leállítása"
@@ -4117,6 +4129,9 @@ msgstr "igen"
msgid "« Back"
msgstr "« Vissza"
+#~ msgid "No chains in this table"
+#~ msgstr "Ez a tábla nem tartalmaz láncokat."
+
#~ msgid "Configuration files will be kept."
#~ msgstr "A konfigurációs fájlok megmaradnak."
diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po
index adb5c65b3e..b81b9c875e 100644
--- a/modules/luci-base/po/it/base.po
+++ b/modules/luci-base/po/it/base.po
@@ -703,6 +703,9 @@ msgstr "Raccolgo i dati..."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configurazioni Comuni"
@@ -1475,6 +1478,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Nascondi <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2227,9 +2233,6 @@ msgstr "Nessun Server DHCP configurato per questa interfaccia"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr "Nessun file trovato"
@@ -2254,7 +2257,7 @@ msgstr "Nessuna lista pacchetti disponibile"
msgid "No password set!"
msgstr "Nessuna password immessa!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Nessuna regola in questa catena"
msgid "No scan results available yet..."
@@ -2599,6 +2602,9 @@ msgstr ""
msgid "Please enter your username and password."
msgstr "Per favore inserisci il tuo username e la password."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2940,6 +2946,9 @@ msgstr ""
"Le route specificano attraverso quale interfaccia e gateway un certo host o "
"rete può essere raggiunto."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Esegui un controllo del filesystem prima di montare il dispositivo"
@@ -3055,6 +3064,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po
index 122b285acc..f3847f64f1 100644
--- a/modules/luci-base/po/ja/base.po
+++ b/modules/luci-base/po/ja/base.po
@@ -705,6 +705,9 @@ msgstr "データ収集中です..."
msgid "Command"
msgstr "コマンド"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "一般設定"
@@ -1493,6 +1496,9 @@ msgstr "SSH公開鍵認証で使用するSSH公開鍵を1行づつペースト
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>の隠匿"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "ホスト"
@@ -2254,9 +2260,6 @@ msgstr "このインターフェースにはDHCPサーバーが設定されて
msgid "No NAT-T"
msgstr "NAT-Tを使用しない"
-msgid "No chains in this table"
-msgstr "チェイン内にルールがありません"
-
msgid "No files found"
msgstr "ファイルが見つかりませんでした"
@@ -2281,7 +2284,7 @@ msgstr "パッケージ リストがありません"
msgid "No password set!"
msgstr "パスワードが設定されていません!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "チェイン内にルールがありません"
msgid "No scan results available yet..."
@@ -2633,6 +2636,9 @@ msgstr "パケット"
msgid "Please enter your username and password."
msgstr "ユーザー名とパスワードを入力してください。"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "ポリシー"
@@ -2984,6 +2990,9 @@ msgstr ""
"特定のホスト又はネットワークに、どのインターフェース及びゲートウェイを通して"
"通信を行うか、経路情報を設定します。"
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "デバイスのマウントを行う前にファイルシステムチェックを行う"
@@ -3104,6 +3113,9 @@ msgstr "Short Preamble"
msgid "Show current backup file list"
msgstr "現在のバックアップファイルのリストを表示する"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "インターフェースを終了"
@@ -4163,3 +4175,6 @@ msgstr "はい"
msgid "« Back"
msgstr "« 戻る"
+
+#~ msgid "No chains in this table"
+#~ msgstr "チェイン内にルールがありません"
diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po
index fa22c23bb3..2f94e495fa 100644
--- a/modules/luci-base/po/ko/base.po
+++ b/modules/luci-base/po/ko/base.po
@@ -683,6 +683,9 @@ msgstr "Data 를 수집중입니다..."
msgid "Command"
msgstr "명령어"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "공통 설정"
@@ -1447,6 +1450,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> 숨기기"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "호스트"
@@ -2176,9 +2182,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "이 table 에는 정의된 chain 이 없음"
-
msgid "No files found"
msgstr ""
@@ -2203,7 +2206,7 @@ msgstr ""
msgid "No password set!"
msgstr "암호 설정을 해주세요!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
@@ -2549,6 +2552,9 @@ msgstr "Pkts."
msgid "Please enter your username and password."
msgstr "사용자이름과 암호를 입력해 주세요."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2887,6 +2893,9 @@ msgstr ""
"Route 경로는 특정 호스트 혹은 네트워크가 사용해야 할 인터페이스와 gateway 정"
"보를 나타냅니다."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -3002,6 +3011,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "현재 백업 파일 목록 보기"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "이 인터페이스를 정지합니다"
@@ -4009,6 +4021,9 @@ msgstr ""
msgid "« Back"
msgstr ""
+#~ msgid "No chains in this table"
+#~ msgstr "이 table 에는 정의된 chain 이 없음"
+
#~ msgid "Activate this network"
#~ msgstr "이 네트워를 활성화합니다"
diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po
index 715c3100d1..42c020806b 100644
--- a/modules/luci-base/po/ms/base.po
+++ b/modules/luci-base/po/ms/base.po
@@ -666,6 +666,9 @@ msgstr ""
msgid "Command"
msgstr "Perintah"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
@@ -1419,6 +1422,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Menyembunyikan ESSID"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2157,9 +2163,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Tiada rantai dalam jadual ini"
-
msgid "No files found"
msgstr ""
@@ -2184,7 +2187,7 @@ msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Tidak ada peraturan dalam rantai ini"
msgid "No scan results available yet..."
@@ -2527,6 +2530,9 @@ msgstr "Pkts."
msgid "Please enter your username and password."
msgstr "Sila masukkan username dan kata laluan anda."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Dasar"
@@ -2864,6 +2870,9 @@ msgstr ""
"Laluan menentukan di mana interface dan gateway host atau rangkaian tertentu "
"yang boleh dicapai."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -2979,6 +2988,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
@@ -3970,6 +3982,9 @@ msgstr ""
msgid "« Back"
msgstr "« Kembali"
+#~ msgid "No chains in this table"
+#~ msgstr "Tiada rantai dalam jadual ini"
+
#~ msgid "help"
#~ msgstr "Membantu"
diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po
index 70ed34b42c..dd4094df64 100644
--- a/modules/luci-base/po/no/base.po
+++ b/modules/luci-base/po/no/base.po
@@ -687,6 +687,9 @@ msgstr "Henter data..."
msgid "Command"
msgstr "Kommando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Vanlige Innstillinger"
@@ -1456,6 +1459,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Skjul <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2201,9 +2207,6 @@ msgstr "Ingen DHCP server er konfigurert for dette grensesnittet"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Ingen lenker i denne tabellen"
-
msgid "No files found"
msgstr "Ingen filer funnet"
@@ -2228,7 +2231,7 @@ msgstr "Ingen pakkelister tilgjengelig"
msgid "No password set!"
msgstr "Ruteren er ikke passordbeskyttet!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Ingen regler i denne tabellen"
msgid "No scan results available yet..."
@@ -2574,6 +2577,9 @@ msgstr "Pakker."
msgid "Please enter your username and password."
msgstr "Skriv inn ditt brukernavn og passord."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Policy"
@@ -2916,6 +2922,9 @@ msgstr ""
"Ruter, angir hvilket nettverksgrensesnitt og hvilken gateway som brukes for "
"å nå et gitt nettverk eller vert."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Kjør filsystem sjekk før montering av enheten"
@@ -3034,6 +3043,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Vis gjeldende liste med sikkerhetskopifiler"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Slå av dette grensesnittet"
@@ -4083,6 +4095,9 @@ msgstr "ja"
msgid "« Back"
msgstr "« Tilbake"
+#~ msgid "No chains in this table"
+#~ msgstr "Ingen lenker i denne tabellen"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurasjonsfiler vil bli bevart."
diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po
index cf6ffccc57..c811c1316a 100644
--- a/modules/luci-base/po/pl/base.po
+++ b/modules/luci-base/po/pl/base.po
@@ -712,6 +712,9 @@ msgstr "Zbieranie danych..."
msgid "Command"
msgstr "Polecenie"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Konfiguracja podstawowa"
@@ -1506,6 +1509,9 @@ msgstr ""
"Ukryj <abbr title=\"Extended Service Set Identifier (Nazwę sieci)\">ESSID</"
"abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2261,9 +2267,6 @@ msgstr "Brak skonfigurowanego serwera DHCP dla tego interfejsu"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Brak łańcuchów w tej tablicy"
-
msgid "No files found"
msgstr "Nie znaleziono plików"
@@ -2288,7 +2291,7 @@ msgstr "Lista pakietów nie jest dostępna"
msgid "No password set!"
msgstr "Nie ustawiono hasła!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Brak zasad w tym łańcuchu"
msgid "No scan results available yet..."
@@ -2639,6 +2642,9 @@ msgstr "Pktw."
msgid "Please enter your username and password."
msgstr "Proszę wprowadź swój login i hasło."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Zasada"
@@ -2988,6 +2994,9 @@ msgstr ""
"Ścieżki routingu pokazują routerowi przez który interfejs oraz którą bramę "
"może skomunikować się z daną siecią lub komputerem."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Sprawdź czy system plików nie zawiera błędów przed zamontowaniem urządzenia"
@@ -3112,6 +3121,9 @@ msgstr "Krótki Wstęp"
msgid "Show current backup file list"
msgstr "Pokaż aktualną listę plików do backupu"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Wyłącz ten interfejs"
@@ -4182,6 +4194,9 @@ msgstr "tak"
msgid "« Back"
msgstr "« Wróć"
+#~ msgid "No chains in this table"
+#~ msgstr "Brak łańcuchów w tej tablicy"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Pliki konfiguracyjne zostaną zachowane."
diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po
index 40440c1242..42f9d505d8 100644
--- a/modules/luci-base/po/pt-br/base.po
+++ b/modules/luci-base/po/pt-br/base.po
@@ -744,6 +744,9 @@ msgstr "Coletando dados..."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuração Comum"
@@ -1570,6 +1573,9 @@ msgstr ""
"Ocultar <abbr title=\"Identificador de Conjunto de Serviços Estendidos"
"\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Equipamento"
@@ -2361,9 +2367,6 @@ msgstr "Nenhum Servidor DHCP configurado para esta interface"
msgid "No NAT-T"
msgstr "Sem NAT-T"
-msgid "No chains in this table"
-msgstr "Nenhuma cadeira nesta tabela"
-
msgid "No files found"
msgstr "Nenhum arquivo encontrado"
@@ -2388,7 +2391,7 @@ msgstr "Nenhuma lista de pacotes disponível"
msgid "No password set!"
msgstr "Nenhuma senha definida!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Sem regras nesta cadeia"
msgid "No scan results available yet..."
@@ -2755,6 +2758,9 @@ msgstr "Pcts."
msgid "Please enter your username and password."
msgstr "Entre com o seu usuário e senha."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
@@ -3116,6 +3122,9 @@ msgstr ""
"As rotas especificam através de qual interface e roteador um certo destino "
"podem ser alcançado."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
@@ -3244,6 +3253,9 @@ msgstr "Preâmbulo curto"
msgid "Show current backup file list"
msgstr "Mostra a lista atual de arquivos para a cópia de segurança"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Desligar esta interface"
@@ -4342,6 +4354,9 @@ msgstr "sim"
msgid "« Back"
msgstr "« Voltar"
+#~ msgid "No chains in this table"
+#~ msgstr "Nenhuma cadeira nesta tabela"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Os arquivos de configuração serão mantidos."
diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po
index e967b06681..394572c631 100644
--- a/modules/luci-base/po/pt/base.po
+++ b/modules/luci-base/po/pt/base.po
@@ -700,6 +700,9 @@ msgstr "A obter dados..."
msgid "Command"
msgstr "Comando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configuração comum"
@@ -1477,6 +1480,9 @@ msgstr ""
"Ocultar <abbr title=\"Identificador de Conjunto de Serviços Estendidos"
"\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2225,9 +2231,6 @@ msgstr "Sem Servidor DHCP configurado nesta interface"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Tabela sem chains"
-
msgid "No files found"
msgstr "Não foram encontrados ficheiros"
@@ -2252,7 +2255,7 @@ msgstr "Não há listas de pacotes disponiveis"
msgid "No password set!"
msgstr "Sem password definida!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Sem regras nesta cadeia"
msgid "No scan results available yet..."
@@ -2596,6 +2599,9 @@ msgstr "Pkts."
msgid "Please enter your username and password."
msgstr "Insira o seu username e password."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Política"
@@ -2936,6 +2942,9 @@ msgstr ""
"As rotas especificam através de que interfaces ou gateways podem ser "
"alcançados determinadas redes ou hosts."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
"Correr uma verificação do sistema de ficheiros antes de montar um dispositivo"
@@ -3053,6 +3062,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "Mostrar lista ficheiros para backup"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Desligar esta interface"
@@ -4079,6 +4091,9 @@ msgstr "sim"
msgid "« Back"
msgstr "« Voltar"
+#~ msgid "No chains in this table"
+#~ msgstr "Tabela sem chains"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Os ficheiros de configuração serão mantidos."
diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po
index 6a0bcf130e..e3bb7bb82a 100644
--- a/modules/luci-base/po/ro/base.po
+++ b/modules/luci-base/po/ro/base.po
@@ -676,6 +676,9 @@ msgstr "Colectez datele.."
msgid "Command"
msgstr "Comanda"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Configurarea obisnuita"
@@ -1426,6 +1429,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Ascunde <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2156,9 +2162,6 @@ msgstr "Nici un server DHCP configurat pentru aceasta interfata"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr "Nici un fisier gasit"
@@ -2183,7 +2186,7 @@ msgstr ""
msgid "No password set!"
msgstr "Nici o parola setata !"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
@@ -2521,6 +2524,9 @@ msgstr "Packete."
msgid "Please enter your username and password."
msgstr "Introdu utilizatorul si parola."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2857,6 +2863,9 @@ msgid ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -2973,6 +2982,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Opreste aceasta interfata"
diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po
index bcee9876b3..32ce465325 100644
--- a/modules/luci-base/po/ru/base.po
+++ b/modules/luci-base/po/ru/base.po
@@ -727,6 +727,9 @@ msgstr "Сбор данных..."
msgid "Command"
msgstr "Команда"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Общие настройки"
@@ -1521,6 +1524,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Скрыть <abbr title=\"Расширенный идентификатор сети\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Хост"
@@ -2292,9 +2298,6 @@ msgstr "DHCP-сервер не настроен для этого интерфе
msgid "No NAT-T"
msgstr "Без NAT-T"
-msgid "No chains in this table"
-msgstr "Нет цепочек в этой таблице"
-
msgid "No files found"
msgstr "Файлы не найдены"
@@ -2319,7 +2322,7 @@ msgstr "Список пакетов не доступен"
msgid "No password set!"
msgstr "Пароль не установлен!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Нет правил в данной цепочке"
msgid "No scan results available yet..."
@@ -2681,6 +2684,9 @@ msgstr "Пакетов"
msgid "Please enter your username and password."
msgstr "Введите логин и пароль."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Политика"
@@ -3042,6 +3048,9 @@ msgstr ""
"Маршрутизация служит для определения через, какой интерфейс и шлюз можно "
"достичь определенного хоста или сети."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Проверять файловую систему перед монтированием раздела."
@@ -3163,6 +3172,9 @@ msgstr "Короткая преамбула"
msgid "Show current backup file list"
msgstr "Показать текущий список файлов резервной копии"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Выключить этот интерфейс"
@@ -4243,6 +4255,9 @@ msgstr "да"
msgid "« Back"
msgstr "« Назад"
+#~ msgid "No chains in this table"
+#~ msgstr "Нет цепочек в этой таблице"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Config файлы будут сохранены."
diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po
index a0b0464b23..c944c85ec9 100644
--- a/modules/luci-base/po/sk/base.po
+++ b/modules/luci-base/po/sk/base.po
@@ -659,6 +659,9 @@ msgstr ""
msgid "Command"
msgstr ""
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
@@ -1404,6 +1407,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2131,9 +2137,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
@@ -2158,7 +2161,7 @@ msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
@@ -2496,6 +2499,9 @@ msgstr ""
msgid "Please enter your username and password."
msgstr ""
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2830,6 +2836,9 @@ msgid ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -2945,6 +2954,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po
index fddaa3fd80..53f929c3f9 100644
--- a/modules/luci-base/po/sv/base.po
+++ b/modules/luci-base/po/sv/base.po
@@ -673,6 +673,9 @@ msgstr "Samlar in data..."
msgid "Command"
msgstr "Kommando"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Vanlig konfiguration"
@@ -1424,6 +1427,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Göm <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Värd"
@@ -2152,9 +2158,6 @@ msgstr "Det finns ingen DHCP-server inställd för det här gränssnittet"
msgid "No NAT-T"
msgstr "Ingen NAT-T"
-msgid "No chains in this table"
-msgstr "Inga kedjor i den här tabellen"
-
msgid "No files found"
msgstr "Inga filer hittades"
@@ -2179,7 +2182,7 @@ msgstr "Ingen paketlista tillgänglig"
msgid "No password set!"
msgstr "Inget lösenord inställt!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Inga regler i den här kedjan"
msgid "No scan results available yet..."
@@ -2517,6 +2520,9 @@ msgstr "Pkt."
msgid "Please enter your username and password."
msgstr "Vänligen ange ditt användarnamn och lösenord."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2853,6 +2859,9 @@ msgid ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Kör en filsystemskontroll innan enheten monteras"
@@ -2968,6 +2977,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Stäng ner det här gränssnittet"
@@ -3947,6 +3959,9 @@ msgstr "ja"
msgid "« Back"
msgstr "« Bakåt"
+#~ msgid "No chains in this table"
+#~ msgstr "Inga kedjor i den här tabellen"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "Konfigurationsfiler kommer att behållas."
diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot
index bc45638564..3424eee506 100644
--- a/modules/luci-base/po/templates/base.pot
+++ b/modules/luci-base/po/templates/base.pot
@@ -652,6 +652,9 @@ msgstr ""
msgid "Command"
msgstr ""
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
@@ -1397,6 +1400,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2124,9 +2130,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
@@ -2151,7 +2154,7 @@ msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
@@ -2489,6 +2492,9 @@ msgstr ""
msgid "Please enter your username and password."
msgstr ""
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2823,6 +2829,9 @@ msgid ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -2938,6 +2947,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po
index b84b0657bc..769619f5d5 100644
--- a/modules/luci-base/po/tr/base.po
+++ b/modules/luci-base/po/tr/base.po
@@ -675,6 +675,9 @@ msgstr ""
msgid "Command"
msgstr ""
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
@@ -1422,6 +1425,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr ""
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2149,9 +2155,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr ""
-
msgid "No files found"
msgstr ""
@@ -2176,7 +2179,7 @@ msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr ""
msgid "No scan results available yet..."
@@ -2514,6 +2517,9 @@ msgstr ""
msgid "Please enter your username and password."
msgstr ""
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr ""
@@ -2848,6 +2854,9 @@ msgid ""
"can be reached."
msgstr ""
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Cihazı bağlamadan önce bir dosya sistemi kontrolü yapın"
@@ -2963,6 +2972,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po
index 4dab4f6ba8..070eaa324a 100644
--- a/modules/luci-base/po/uk/base.po
+++ b/modules/luci-base/po/uk/base.po
@@ -734,6 +734,9 @@ msgstr "Збирання даних..."
msgid "Command"
msgstr "Команда"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "Загальна конфігурація"
@@ -1536,6 +1539,9 @@ msgstr ""
"Приховати <abbr title=\"Extended Service Set Identifier — ідентифікатор "
"розширеної служби послуг\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "Вузол"
@@ -2318,9 +2324,6 @@ msgstr "Немає DHCP-сервера, налаштованого для цьо
msgid "No NAT-T"
msgstr "Немає NAT-T"
-msgid "No chains in this table"
-msgstr "У цій таблиці немає ланцюжків"
-
msgid "No files found"
msgstr "Файли не знайдено"
@@ -2345,7 +2348,7 @@ msgstr "Немає доступних списків пакетів"
msgid "No password set!"
msgstr "Пароль не встановлено!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "У цьму ланцюжку нема правил"
msgid "No scan results available yet..."
@@ -2709,6 +2712,9 @@ msgstr "пакетів"
msgid "Please enter your username and password."
msgstr "Введіть ім’я користувача і пароль."
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Політика"
@@ -3061,6 +3067,9 @@ msgstr ""
"Маршрути визначають через який інтерфейс і шлюз можна досягнути певного "
"вузла або мережі."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "Виконати перевірку файлової системи перед монтуванням пристрою"
@@ -3183,6 +3192,9 @@ msgstr "Коротка преамбула"
msgid "Show current backup file list"
msgstr "Показати поточний список файлів резервного копіювання"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "Вимкнути цей інтерфейс"
@@ -4264,3 +4276,6 @@ msgstr "так"
msgid "« Back"
msgstr "« Назад"
+
+#~ msgid "No chains in this table"
+#~ msgstr "У цій таблиці немає ланцюжків"
diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po
index 3ad0a0bfef..83566f27b1 100644
--- a/modules/luci-base/po/vi/base.po
+++ b/modules/luci-base/po/vi/base.po
@@ -666,6 +666,9 @@ msgstr ""
msgid "Command"
msgstr "Lệnh"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr ""
@@ -1424,6 +1427,9 @@ msgstr ""
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "Giấu <abbr title=\"Chế độ mở rộng đặt Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2161,9 +2167,6 @@ msgstr ""
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "Không có chuỗi trong bảng này"
-
msgid "No files found"
msgstr ""
@@ -2188,7 +2191,7 @@ msgstr ""
msgid "No password set!"
msgstr ""
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "Không có quy luật trong chuỗi này"
msgid "No scan results available yet..."
@@ -2532,6 +2535,9 @@ msgstr ""
msgid "Please enter your username and password."
msgstr "Nhập tên và mật mã"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "Chính sách"
@@ -2870,6 +2876,9 @@ msgstr ""
"Routes chỉ định trên giao diện và cổng một host nhất định hay network được "
"tiếp cận."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr ""
@@ -2985,6 +2994,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr ""
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr ""
@@ -3975,6 +3987,9 @@ msgstr ""
msgid "« Back"
msgstr ""
+#~ msgid "No chains in this table"
+#~ msgstr "Không có chuỗi trong bảng này"
+
#~ msgid "Backup / Restore"
#~ msgstr "Backup/ Restore"
diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po
index df8fd735ba..a0534db70e 100644
--- a/modules/luci-base/po/zh-cn/base.po
+++ b/modules/luci-base/po/zh-cn/base.po
@@ -677,6 +677,9 @@ msgstr "正在收集数据…"
msgid "Command"
msgstr "命令"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "一般配置"
@@ -1442,6 +1445,9 @@ msgstr "请在此处粘贴 SSH 公钥,每行一个,用于 SSH 公钥认证
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "隐藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr "主机"
@@ -2185,9 +2191,6 @@ msgstr "本接口未配置 DHCP 服务器"
msgid "No NAT-T"
msgstr "无 NAT-T"
-msgid "No chains in this table"
-msgstr "本表中没有链"
-
msgid "No files found"
msgstr "未找到文件"
@@ -2212,7 +2215,7 @@ msgstr "无可用软件列表"
msgid "No password set!"
msgstr "未设置密码!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "本链没有规则"
msgid "No scan results available yet..."
@@ -2560,6 +2563,9 @@ msgstr "数据包"
msgid "Please enter your username and password."
msgstr "请输入用户名和密码。"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "策略"
@@ -2904,6 +2910,9 @@ msgid ""
"can be reached."
msgstr "路由表描述了数据包的可达路径。"
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "挂载设备前运行文件系统检查"
@@ -3021,6 +3030,9 @@ msgstr "Short Preamble"
msgid "Show current backup file list"
msgstr "显示当前备份文件列表"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "关闭此接口"
@@ -4036,6 +4048,9 @@ msgstr "是"
msgid "« Back"
msgstr "« 后退"
+#~ msgid "No chains in this table"
+#~ msgstr "本表中没有链"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "配置文件将被保留。"
diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po
index 8dac1b7744..c34e0fe7b0 100644
--- a/modules/luci-base/po/zh-tw/base.po
+++ b/modules/luci-base/po/zh-tw/base.po
@@ -675,6 +675,9 @@ msgstr "收集資料中..."
msgid "Command"
msgstr "指令"
+msgid "Comment"
+msgstr ""
+
msgid "Common Configuration"
msgstr "一般設定"
@@ -1433,6 +1436,9 @@ msgstr "在這裡貼上公用SSH-Keys (每行一個)以便驗證"
msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
msgstr "隱藏 <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgid "Hide empty chains"
+msgstr ""
+
msgid "Host"
msgstr ""
@@ -2166,9 +2172,6 @@ msgstr "在這個介面尚無DHCP伺服器"
msgid "No NAT-T"
msgstr ""
-msgid "No chains in this table"
-msgstr "尚未綁在這個表格中"
-
msgid "No files found"
msgstr "尚未發現任何檔案"
@@ -2193,7 +2196,7 @@ msgstr "尚無列出的軟體包可運用"
msgid "No password set!"
msgstr "尚未設定密碼!"
-msgid "No rules in this chain"
+msgid "No rules in this chain."
msgstr "尚無規則在這個鏈接上"
msgid "No scan results available yet..."
@@ -2535,6 +2538,9 @@ msgstr "封包數."
msgid "Please enter your username and password."
msgstr "請輸入您的用戶名稱和密碼"
+msgid "Please update package lists first"
+msgstr ""
+
msgid "Policy"
msgstr "策略"
@@ -2873,6 +2879,9 @@ msgid ""
"can be reached."
msgstr "路由器指定介面導出到特定主機或者能夠到達的網路."
+msgid "Rule"
+msgstr ""
+
msgid "Run a filesystem check before mounting the device"
msgstr "掛載這個設備前先跑系統檢查"
@@ -2989,6 +2998,9 @@ msgstr ""
msgid "Show current backup file list"
msgstr "顯示現今的備份檔清單"
+msgid "Show empty chains"
+msgstr ""
+
msgid "Shutdown this interface"
msgstr "關閉這個介面"
@@ -4005,6 +4017,9 @@ msgstr "是的"
msgid "« Back"
msgstr "« 倒退"
+#~ msgid "No chains in this table"
+#~ msgstr "尚未綁在這個表格中"
+
#~ msgid "Configuration files will be kept."
#~ msgstr "設定檔將被存檔"
diff --git a/modules/luci-base/src/template_utils.c b/modules/luci-base/src/template_utils.c
index 3979487f12..0411932ce9 100644
--- a/modules/luci-base/src/template_utils.c
+++ b/modules/luci-base/src/template_utils.c
@@ -258,7 +258,7 @@ static int _validate_utf8(unsigned char **s, int l, struct template_buffer *buf)
break;
}
- /* advance beyound the last found valid continuation char */
+ /* advance beyond the last found valid continuation char */
o = v;
ptr += v;
}
diff --git a/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua b/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua
index 8be354b448..bff859befa 100644
--- a/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua
+++ b/modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua
@@ -284,7 +284,7 @@ if not net:is_floating() then
ifname_single = s:taboption("physical", Value, "ifname_single", translate("Interface"))
ifname_single.template = "cbi/network_ifacelist"
ifname_single.widget = "radio"
- ifname_single.nobridges = true
+ ifname_single.nobridges = net:is_bridge()
ifname_single.noaliases = false
ifname_single.rmempty = false
ifname_single.network = arg[1]
@@ -341,7 +341,7 @@ end
if not net:is_virtual() then
ifname_multi = s:taboption("physical", Value, "ifname_multi", translate("Interface"))
ifname_multi.template = "cbi/network_ifacelist"
- ifname_multi.nobridges = true
+ ifname_multi.nobridges = net:is_bridge()
ifname_multi.noaliases = true
ifname_multi.rmempty = false
ifname_multi.network = arg[1]
diff --git a/modules/luci-mod-status/luasrc/controller/admin/status.lua b/modules/luci-mod-status/luasrc/controller/admin/status.lua
index 4f04cce545..5b496d83f2 100644
--- a/modules/luci-mod-status/luasrc/controller/admin/status.lua
+++ b/modules/luci-mod-status/luasrc/controller/admin/status.lua
@@ -8,6 +8,7 @@ function index()
entry({"admin", "status", "overview"}, template("admin_status/index"), _("Overview"), 1)
entry({"admin", "status", "iptables"}, template("admin_status/iptables"), _("Firewall"), 2).leaf = true
+ entry({"admin", "status", "iptables_dump"}, call("dump_iptables")).leaf = true
entry({"admin", "status", "iptables_action"}, post("action_iptables")).leaf = true
entry({"admin", "status", "routes"}, template("admin_status/routes"), _("Routes"), 3)
@@ -44,6 +45,37 @@ function action_dmesg()
luci.template.render("admin_status/dmesg", {dmesg=dmesg})
end
+function dump_iptables(family, table)
+ local prefix = (family == "6") and "ip6" or "ip"
+ local ok, lines = pcall(io.lines, "/proc/net/%s_tables_names" % prefix)
+ if ok and lines then
+ local s
+ for s in lines do
+ if s == table then
+ local ipt = io.popen(
+ "/usr/sbin/%stables -t %s --line-numbers -nxvL"
+ %{ prefix, table })
+
+ if ipt then
+ luci.http.prepare_content("text/plain")
+
+ while true do
+ s = ipt:read(1024)
+ if not s then break end
+ luci.http.write(s)
+ end
+
+ ipt:close()
+ return
+ end
+ end
+ end
+ end
+
+ luci.http.status(404, "No such table")
+ luci.http.prepare_content("text/plain")
+end
+
function action_iptables()
if luci.http.formvalue("zero") then
if luci.http.formvalue("family") == "6" then
diff --git a/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm b/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm
index 51e428e40e..50defac90e 100644
--- a/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm
+++ b/modules/luci-mod-status/luasrc/view/admin_status/iptables.htm
@@ -1,16 +1,11 @@
<%#
Copyright 2008-2009 Steven Barth <steven@midlink.org>
- Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
+ Copyright 2008-2018 Jo-Philipp Wich <jo@mein.io>
Licensed to the public under the Apache License 2.0.
-%>
<%-
-
- require "luci.sys.iptparser"
- local wba = require "luci.tools.webadmin"
local fs = require "nixio.fs"
- local io = require "io"
-
local has_ip6tables = fs.access("/usr/sbin/ip6tables")
local mode = 4
@@ -18,56 +13,286 @@
mode = luci.dispatcher.context.requestpath
mode = tonumber(mode[#mode] ~= "iptables" and mode[#mode]) or 4
end
+-%>
- local ipt = luci.sys.iptparser.IptParser(mode)
+<%+header%>
- local rowcnt = 1
- function rowstyle()
- rowcnt = rowcnt + 1
- return (rowcnt % 2) + 1
- end
+<style type="text/css">
+ span.jump, .cbi-tooltip-container {
+ border-bottom: 1px dotted blue;
+ cursor: pointer;
+ }
- function link_target(t,c)
- if ipt:is_custom_target(c) then
- return '<a href="#rule_%s_%s">%s</a>' %{ t:lower(), c, c }
- end
- return c
- end
+ ul {
+ list-style: none;
+ }
+
+ .references {
+ position: relative;
+ }
+
+ .references .cbi-tooltip {
+ left: 0 !important;
+ top: 1.5em !important;
+ }
+
+ h4 > span {
+ font-size: 90%;
+ }
+</style>
+
+<script type="text/javascript">//<![CDATA[
+ var table_names = [ 'Filter', 'NAT', 'Mangle', 'Raw' ];
+
+ function create_table_section(table)
+ {
+ var idiv = document.getElementById('iptables'),
+ tdiv = idiv.querySelector('[data-table="%s"]'.format(table)),
+ title = '<%:Table%>: %s'.format(table);
+
+ if (!tdiv) {
+ tdiv = E('div', { 'data-table': table }, [
+ E('h3', {}, title),
+ E('div')
+ ]);
+
+ if (idiv.firstElementChild.nodeName.toLowerCase() === 'p')
+ idiv.removeChild(idiv.firstElementChild);
+
+ var added = false, thisIdx = table_names.indexOf(table);
+
+ idiv.querySelectorAll('[data-table]').forEach(function(child) {
+ var childIdx = table_names.indexOf(child.getAttribute('data-table'));
+
+ if (added === false && childIdx > thisIdx) {
+ idiv.insertBefore(tdiv, child);
+ added = true;
+ }
+ });
+
+ if (added === false)
+ idiv.appendChild(tdiv);
+ }
+
+ return tdiv.lastElementChild;
+ }
+
+ function create_chain_section(table, chain, policy, packets, bytes, references)
+ {
+ var tdiv = create_table_section(table),
+ cdiv = tdiv.querySelector('[data-chain="%s"]'.format(chain)),
+ title;
+
+ if (policy)
+ title = '<%:Chain%> <em>%s</em> <span>(<%:Policy%>: <em>%s</em>, %d <%:Packets%>, %.2mB <%:Traffic%>)</span>'.format(chain, policy, packets, bytes);
+ else
+ title = '<%:Chain%> <em>%s</em> <span class="references">(%d <%:References%>)</span>'.format(chain, references);
+
+ if (!cdiv) {
+ cdiv = E('div', { 'data-chain': chain }, [
+ E('h4', { 'id': 'rule_%s_%s'.format(table.toLowerCase(), chain) }, title),
+ E('div', { 'class': 'table' }, [
+ E('div', { 'class': 'tr table-titles' }, [
+ E('div', { 'class': 'th center' }, '<%:Pkts.%>'),
+ E('div', { 'class': 'th center' }, '<%:Traffic%>'),
+ E('div', { 'class': 'th' }, '<%:Target%>'),
+ E('div', { 'class': 'th' }, '<%:Prot.%>'),
+ E('div', { 'class': 'th' }, '<%:In%>'),
+ E('div', { 'class': 'th' }, '<%:Out%>'),
+ E('div', { 'class': 'th' }, '<%:Source%>'),
+ E('div', { 'class': 'th' }, '<%:Destination%>'),
+ E('div', { 'class': 'th' }, '<%:Options%>'),
+ E('div', { 'class': 'th' }, '<%:Comment%>')
+ ])
+ ])
+ ]);
+
+ tdiv.appendChild(cdiv);
+ }
+ else {
+ cdiv.firstElementChild.innerHTML = title;
+ }
+
+ return cdiv.lastElementChild;
+ }
+
+ function update_chain_section(chaintable, rows)
+ {
+ if (!chaintable)
+ return;
+
+ cbi_update_table(chaintable, rows, '<%:No rules in this chain.%>');
- function link_iface(i)
- local net = wba.iface_get_network(i)
- if net and i ~= "lo" then
- return '<a href="%s">%s</a>' %{
- url("admin/network/network", net), i
+ if (rows.length === 0 &&
+ document.querySelector('form > [data-hide-empty="true"]'))
+ chaintable.parentNode.style.display = 'none';
+ else
+ chaintable.parentNode.style.display = '';
+
+ chaintable.parentNode.setAttribute('data-empty', rows.length === 0);
+ }
+
+ function hide_empty(btn)
+ {
+ var hide = (btn.getAttribute('data-hide-empty') === 'false');
+
+ btn.setAttribute('data-hide-empty', hide);
+ btn.value = hide ? '<%:Show empty chains%>' : '<%:Hide empty chains%>';
+ btn.blur();
+
+ document.querySelectorAll('[data-chain][data-empty="true"]')
+ .forEach(function(chaintable) {
+ chaintable.style.display = hide ? 'none' : '';
+ });
+ }
+
+ function jump_target(ev)
+ {
+ var link = ev.target,
+ table = findParent(link, '[data-table]').getAttribute('data-table'),
+ chain = link.textContent,
+ num = +link.getAttribute('data-num'),
+ elem = document.getElementById('rule_%s_%s'.format(table.toLowerCase(), chain));
+
+ if (elem) {
+ (document.documentElement || document.body.parentNode || document.body).scrollTop = elem.offsetTop - 40;
+ elem.classList.remove('flash');
+ void elem.offsetWidth;
+ elem.classList.add('flash');
+
+ if (num) {
+ var rule = elem.nextElementSibling.childNodes[num];
+ if (rule) {
+ rule.classList.remove('flash');
+ void rule.offsetWidth;
+ rule.classList.add('flash');
+ }
}
+ }
+ }
- end
- return i
- end
+ function parse_output(table, s)
+ {
+ var current_chain = null;
+ var current_rules = [];
+ var seen_chains = {};
+ var chain_refs = {};
+ var re = /([^\n]*)\n/g;
+ var m, m2;
- local tables = { "Filter", "NAT", "Mangle", "Raw" }
- if mode == 6 then
- tables = { "Filter", "Mangle", "Raw" }
- local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names")
- if ok and lines then
- local line
- for line in lines do
- if line == "nat" then
- tables = { "Filter", "NAT", "Mangle", "Raw" }
- end
- end
- end
- end
--%>
+ while ((m = re.exec(s)) != null) {
+ if (m[1].match(/^Chain (.+) \(policy (\w+) (\d+) packets, (\d+) bytes\)$/)) {
+ var chain = RegExp.$1,
+ policy = RegExp.$2,
+ packets = +RegExp.$3,
+ bytes = +RegExp.$4;
-<%+header%>
+ update_chain_section(current_chain, current_rules);
-<style type="text/css">
- span:target {
- color: blue;
- text-decoration: underline;
+ seen_chains[chain] = true;
+ current_chain = create_chain_section(table, chain, policy, packets, bytes);
+ current_rules = [];
+ }
+ else if (m[1].match(/^Chain (.+) \((\d+) references\)$/)) {
+ var chain = RegExp.$1,
+ references = +RegExp.$2;
+
+ update_chain_section(current_chain, current_rules);
+
+ seen_chains[chain] = true;
+ current_chain = create_chain_section(table, chain, null, null, null, references);
+ current_rules = [];
+ }
+ else if (m[1].match(/^num /)) {
+ continue;
+ }
+ else if ((m2 = m[1].match(/^(\d+) +(\d+) +(\d+) +(.*?) +(\S+) +(\S*) +(\S+) +(\S+) +([a-f0-9:.]+\/\d+) +([a-f0-9:.]+\/\d+) +(.+)$/)) !== null) {
+ var num = +m2[1],
+ pkts = +m2[2],
+ bytes = +m2[3],
+ target = m2[4],
+ proto = m2[5],
+ indev = m2[7],
+ outdev = m2[8],
+ srcnet = m2[9],
+ dstnet = m2[10],
+ options = m2[11] || '-',
+ comment = '-';
+
+ options = options.trim().replace(/(?:^| )\/\* (.+) \*\//,
+ function(m1, m2) {
+ comment = m2.replace(/^!fw3(: |$)/, '').trim() || '-';
+ return '';
+ }) || '-';
+
+ current_rules.push([
+ '%.2m'.format(pkts).nobr(),
+ '%.2mB'.format(bytes).nobr(),
+ target ? '<span class="target">%s</span>'.format(target) : '-',
+ proto,
+ (indev !== '*') ? '<span class="ifacebadge">%s</span>'.format(indev) : '*',
+ (outdev !== '*') ? '<span class="ifacebadge">%s</span>'.format(outdev) : '*',
+ srcnet,
+ dstnet,
+ options,
+ comment
+ ]);
+
+ if (target) {
+ chain_refs[target] = chain_refs[target] || [];
+ chain_refs[target].push([ current_chain, num ]);
+ }
+ }
+ }
+
+ update_chain_section(current_chain, current_rules);
+
+ document.querySelectorAll('[data-table="%s"] [data-chain]'.format(table))
+ .forEach(function(cdiv) {
+ if (!seen_chains[cdiv.getAttribute('data-chain')]) {
+ cdiv.parentNode.removeChild(cdiv);
+ return;
+ }
+
+ cdiv.querySelectorAll('.target').forEach(function(tspan) {
+ if (seen_chains[tspan.textContent]) {
+ tspan.classList.add('jump');
+ tspan.addEventListener('click', jump_target);
+ }
+ });
+
+ cdiv.querySelectorAll('.references').forEach(function(rspan) {
+ var refs = chain_refs[cdiv.getAttribute('data-chain')];
+ if (refs && refs.length) {
+ rspan.classList.add('cbi-tooltip-container');
+ rspan.appendChild(E('small', { 'class': 'cbi-tooltip ifacebadge', 'style': 'top:1em; left:auto' }, [ E('ul') ]));
+
+ refs.forEach(function(ref) {
+ var chain = ref[0].parentNode.getAttribute('data-chain'),
+ num = ref[1];
+
+ rspan.lastElementChild.lastElementChild.appendChild(E('li', {}, [
+ '<%:Chain%> ',
+ E('span', {
+ 'class': 'jump',
+ 'data-num': num,
+ 'onclick': 'jump_target(event)'
+ }, chain),
+ ', <%:Rule%> #%d'.format(num)
+ ]));
+ });
+ }
+ });
+ });
}
-</style>
+
+ table_names.forEach(function(table) {
+ XHR.poll(5, '<%=url("admin/status/iptables_dump", tostring(mode))%>/' + table.toLowerCase(), null,
+ function (xhr) {
+ parse_output(table, xhr.responseText);
+ });
+ });
+//]]></script>
<h2 name="content"><%:Firewall Status%></h2>
@@ -78,78 +303,18 @@
</ul>
<% end %>
-<div class="cbi-map" style="position: relative">
-
+<div style="position: relative">
<form method="post" action="<%=url("admin/status/iptables_action")%>" style="position: absolute; right: 0">
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="family" value="<%=mode%>" />
+ <input type="button" class="cbi-button" data-hide-empty="false" value="<%:Hide empty chains%>" onclick="hide_empty(this)" />
<input type="submit" class="cbi-button" name="zero" value="<%:Reset Counters%>" />
<input type="submit" class="cbi-button" name="restart" value="<%:Restart Firewall%>" />
</form>
+</div>
- <div class="cbi-section">
-
- <% for _, tbl in ipairs(tables) do chaincnt = 0 %>
- <h3><%:Table%>: <%=tbl%></h3>
-
- <% for _, chain in ipairs(ipt:chains(tbl)) do
- rowcnt = 0
- chaincnt = chaincnt + 1
- chaininfo = ipt:chain(tbl, chain)
- %>
- <h4 id="rule_<%=tbl:lower()%>_<%=chain%>">
- <%:Chain%> <em><%=chain%></em>
- (<%- if chaininfo.policy then -%>
- <%:Policy%>: <em><%=chaininfo.policy%></em>, <%:Packets%>: <%=chaininfo.packets%>, <%:Traffic%>: <%=wba.byte_format(chaininfo.bytes)-%>
- <%- else -%>
- <%:References%>: <%=chaininfo.references-%>
- <%- end -%>)
- </h4>
-
- <div class="cbi-section-node">
- <div class="table" style="font-size:90%">
- <div class="tr table-titles cbi-rowstyle-<%=rowstyle()%>">
- <div class="th hide-xs"><%:Pkts.%></div>
- <div class="th nowrap"><%:Traffic%></div>
- <div class="th col-5"><%:Target%></div>
- <div class="th"><%:Prot.%></div>
- <div class="th"><%:In%></div>
- <div class="th"><%:Out%></div>
- <div class="th"><%:Source%></div>
- <div class="th"><%:Destination%></div>
- <div class="th col-9 hide-xs"><%:Options%></div>
- </div>
-
- <% for _, rule in ipairs(ipt:find({table=tbl, chain=chain})) do %>
- <div class="tr cbi-rowstyle-<%=rowstyle()%>">
- <div class="td"><%=rule.packets%></div>
- <div class="td nowrap"><%=wba.byte_format(rule.bytes)%></div>
- <div class="td col-5"><%=rule.target and link_target(tbl, rule.target) or "-"%></div>
- <div class="td"><%=rule.protocol%></div>
- <div class="td"><%=link_iface(rule.inputif)%></div>
- <div class="td"><%=link_iface(rule.outputif)%></div>
- <div class="td"><%=rule.source%></div>
- <div class="td"><%=rule.destination%></div>
- <div class="td col-9 hide-xs"><%=#rule.options > 0 and luci.util.pcdata(table.concat(rule.options, " ")) or "-"%></div>
- </div>
- <% end %>
-
- <% if rowcnt == 1 then %>
- <div class="tr cbi-rowstyle-<%=rowstyle()%>">
- <div class="td" colspan="9"><em><%:No rules in this chain%></em></div>
- </div>
- <% end %>
- </div>
- </div>
- <% end %>
-
- <% if chaincnt == 0 then %>
- <em><%:No chains in this table%></em>
- <% end %>
-
- <br /><br />
- <% end %>
- </div>
+<div id="iptables">
+ <p><em><%:Collecting data...%></em></p>
</div>
<%+footer%>
diff --git a/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua b/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua
index a68c439141..7558d42161 100644
--- a/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua
+++ b/modules/luci-mod-system/luasrc/model/cbi/admin_system/system.lua
@@ -130,7 +130,7 @@ end
--
--- Langauge & Style
+-- Language & Style
--
o = s:taboption("language", ListValue, "_lang", translate("Language"))
diff --git a/modules/luci-mod-system/luasrc/view/admin_system/packages.htm b/modules/luci-mod-system/luasrc/view/admin_system/packages.htm
index 280eabb8ea..39582c6a93 100644
--- a/modules/luci-mod-system/luasrc/view/admin_system/packages.htm
+++ b/modules/luci-mod-system/luasrc/view/admin_system/packages.htm
@@ -102,16 +102,16 @@ end
<div class="cbi-value">
<label class="cbi-value-title"><%:Download and install package%>:</label>
<div class="cbi-value-field">
- <span><input type="text" name="url" size="30" value="" /></span>
- <input class="cbi-button cbi-button-save" type="submit" name="go" value="<%:OK%>" />
+ <span><input type="text" name="url" size="30" <% if no_lists then %>disabled="disabled" placeholder="<%:Please update package lists first%>"<% end %> value="" /></span>
+ <input class="cbi-button cbi-button-save" type="submit" name="go" <% if no_lists then %>disabled="disabled"<% end %> value="<%:OK%>" />
</div>
</div>
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title"><%:Filter%>:</label>
<div class="cbi-value-field">
- <span><input type="text" name="query" size="20" value="<%=pcdata(query)%>" /></span>
- <input type="submit" class="cbi-button cbi-button-action" name="search" value="<%:Find package%>" />
+ <span><input type="text" name="query" size="20" <% if no_lists then %>disabled="disabled" placeholder="<%:Please update package lists first%>"<% else %>value="<%=pcdata(query)%>"<% end %> /></span>
+ <input type="submit" class="cbi-button cbi-button-action" name="search" <% if no_lists then %>disabled="disabled"<% end %> value="<%:Find package%>" />
</div>
</div>
</div>