summaryrefslogtreecommitdiffhomepage
path: root/applications
diff options
context:
space:
mode:
Diffstat (limited to 'applications')
-rw-r--r--applications/luci-app-adblock/luasrc/model/cbi/adblock.lua66
-rw-r--r--applications/luci-app-adblock/po/sv/adblock.po114
-rw-r--r--applications/luci-app-adblock/po/templates/adblock.pot112
-rw-r--r--applications/luci-app-adblock/po/zh-cn/adblock.po125
-rw-r--r--applications/luci-app-aria2/Makefile39
-rw-r--r--applications/luci-app-aria2/luasrc/controller/aria2.lua42
-rw-r--r--applications/luci-app-aria2/luasrc/model/cbi/aria2.lua211
-rw-r--r--applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm77
-rw-r--r--applications/luci-app-aria2/po/templates/aria2.pot208
-rw-r--r--applications/luci-app-aria2/po/zh-cn/aria2.po200
-rwxr-xr-xapplications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria211
-rw-r--r--applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-app.lua4
-rw-r--r--applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua2
-rw-r--r--applications/luci-app-asterisk/po/ca/asterisk.po6
-rw-r--r--applications/luci-app-asterisk/po/en/asterisk.po12
-rw-r--r--applications/luci-app-asterisk/po/es/asterisk.po6
-rw-r--r--applications/luci-app-asterisk/po/fr/asterisk.po6
-rw-r--r--applications/luci-app-asterisk/po/it/asterisk.po2
-rw-r--r--applications/luci-app-asterisk/po/ms/asterisk.po6
-rw-r--r--applications/luci-app-asterisk/po/pt-br/asterisk.po6
-rw-r--r--applications/luci-app-asterisk/po/ru/asterisk.po2
-rw-r--r--applications/luci-app-asterisk/po/vi/asterisk.po6
-rw-r--r--applications/luci-app-coovachilli/po/ca/coovachilli.po4
-rw-r--r--applications/luci-app-coovachilli/po/cs/coovachilli.po2
-rw-r--r--applications/luci-app-coovachilli/po/de/coovachilli.po4
-rw-r--r--applications/luci-app-coovachilli/po/en/coovachilli.po8
-rw-r--r--applications/luci-app-coovachilli/po/pt-br/coovachilli.po4
-rw-r--r--applications/luci-app-coovachilli/po/pt/coovachilli.po2
-rw-r--r--applications/luci-app-coovachilli/po/ru/coovachilli.po2
-rw-r--r--applications/luci-app-coovachilli/po/vi/coovachilli.po2
-rw-r--r--applications/luci-app-ddns/Makefile16
-rwxr-xr-xapplications/luci-app-ddns/luasrc/controller/ddns.lua37
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua64
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua23
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua24
-rw-r--r--applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua30
-rwxr-xr-xapplications/luci-app-ddns/luasrc/tools/ddns.lua18
-rw-r--r--applications/luci-app-ddns/luasrc/view/ddns/global_value.htm2
-rw-r--r--applications/luci-app-ddns/po/ca/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/cs/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/de/ddns.po69
-rw-r--r--applications/luci-app-ddns/po/el/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/es/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/fr/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/he/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/hu/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/it/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/ja/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/no/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/pl/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/pt-br/ddns.po445
-rw-r--r--applications/luci-app-ddns/po/pt/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/ro/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/ru/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/templates/ddns.pot27
-rw-r--r--applications/luci-app-ddns/po/tr/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/uk/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/vi/ddns.po27
-rw-r--r--applications/luci-app-ddns/po/zh-cn/ddns.po54
-rw-r--r--applications/luci-app-ddns/po/zh-tw/ddns.po27
-rwxr-xr-xapplications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns2
-rw-r--r--applications/luci-app-diag-devinfo/Makefile4
-rw-r--r--applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua14
-rw-r--r--applications/luci-app-firewall/po/ca/firewall.po127
-rw-r--r--applications/luci-app-firewall/po/cs/firewall.po108
-rw-r--r--applications/luci-app-firewall/po/de/firewall.po271
-rw-r--r--applications/luci-app-firewall/po/el/firewall.po197
-rw-r--r--applications/luci-app-firewall/po/en/firewall.po161
-rw-r--r--applications/luci-app-firewall/po/es/firewall.po224
-rw-r--r--applications/luci-app-firewall/po/fr/firewall.po195
-rw-r--r--applications/luci-app-firewall/po/hu/firewall.po102
-rw-r--r--applications/luci-app-firewall/po/it/firewall.po78
-rw-r--r--applications/luci-app-firewall/po/ja/firewall.po176
-rw-r--r--applications/luci-app-firewall/po/no/firewall.po93
-rw-r--r--applications/luci-app-firewall/po/pl/firewall.po136
-rw-r--r--applications/luci-app-firewall/po/pt-br/firewall.po263
-rw-r--r--applications/luci-app-firewall/po/pt/firewall.po125
-rw-r--r--applications/luci-app-firewall/po/ro/firewall.po73
-rw-r--r--applications/luci-app-firewall/po/ru/firewall.po179
-rw-r--r--applications/luci-app-firewall/po/uk/firewall.po145
-rw-r--r--applications/luci-app-firewall/po/vi/firewall.po118
-rw-r--r--applications/luci-app-firewall/po/zh-cn/firewall.po113
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua1
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua1
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua23
-rw-r--r--applications/luci-app-p2pblock/Makefile2
-rw-r--r--applications/luci-app-pbx-voicemail/Makefile2
-rw-r--r--applications/luci-app-pbx/Makefile2
-rw-r--r--applications/luci-app-polipo/luasrc/model/cbi/polipo.lua2
-rw-r--r--applications/luci-app-privoxy/Makefile2
-rw-r--r--applications/luci-app-privoxy/luasrc/controller/privoxy.lua232
-rw-r--r--applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua253
-rw-r--r--applications/luci-app-privoxy/po/de/privoxy.po54
-rw-r--r--applications/luci-app-privoxy/po/sv/privoxy.po45
-rw-r--r--applications/luci-app-privoxy/po/templates/privoxy.pot37
-rw-r--r--applications/luci-app-privoxy/po/zh-cn/privoxy.po932
-rw-r--r--applications/luci-app-radvd/Makefile4
-rw-r--r--applications/luci-app-rp-pppoe-server/Makefile15
-rw-r--r--applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua13
-rw-r--r--applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua72
-rw-r--r--applications/luci-app-splash/Makefile6
-rw-r--r--applications/luci-app-statistics/Makefile5
-rw-r--r--applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua10
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua14
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua10
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua29
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool.lua14
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua25
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua16
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua42
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua20
-rw-r--r--applications/luci-app-statistics/po/ca/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/cs/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/de/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/el/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/en/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/es/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/fr/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/he/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/hu/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/it/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/ja/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/ms/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/no/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/pl/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/pt-br/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/pt/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/ro/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/ru/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/sk/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/sv/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/templates/statistics.pot8
-rw-r--r--applications/luci-app-statistics/po/tr/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/uk/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/vi/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/zh-cn/statistics.po8
-rw-r--r--applications/luci-app-statistics/po/zh-tw/statistics.po8
-rw-r--r--applications/luci-app-statistics/root/etc/config/luci_statistics10
-rwxr-xr-xapplications/luci-app-statistics/root/usr/bin/stat-genconfig12
-rw-r--r--applications/luci-app-transmission/Makefile4
-rw-r--r--applications/luci-app-travelmate/Makefile13
-rw-r--r--applications/luci-app-travelmate/luasrc/controller/travelmate.lua11
-rw-r--r--applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua53
-rw-r--r--applications/luci-app-travelmate/po/templates/travelmate.pot56
-rwxr-xr-xapplications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate11
-rw-r--r--applications/luci-app-unbound/Makefile14
-rw-r--r--applications/luci-app-unbound/luasrc/controller/unbound.lua17
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound.lua123
-rw-r--r--applications/luci-app-wifischedule/Makefile22
-rw-r--r--applications/luci-app-wifischedule/README.md86
-rw-r--r--applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua32
-rw-r--r--applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua259
-rw-r--r--applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm22
-rw-r--r--applications/luci-app-wshaper/po/sv/wshaper.po8
154 files changed, 4094 insertions, 4240 deletions
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
index a197f5593c..2cee302086 100644
--- a/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
+++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
@@ -12,16 +12,25 @@ o1 = s:option(Flag, "adb_enabled", translate("Enable adblock"))
o1.rmempty = false
o1.default = 0
-o2 = s:option(Value, "adb_blacklist", translate("Blacklist file"),
- translate("File with explicitly blacklisted hosts/domains."))
-o2.rmempty = false
-o2.datatype = "file"
-
o3 = s:option(Value, "adb_whitelist", translate("Whitelist file"),
translate("File with whitelisted hosts/domains that are allowed despite being on a blocklist."))
o3.rmempty = false
o3.datatype = "file"
+fdns = s:option(Flag, "adb_forcedns", translate("Redirect all DNS queries to the local resolver"),
+ translate("When adblock is active, all DNS queries are redirected to the local resolver " ..
+ "in this server by default. You can disable that to allow queries to external DNS servers."))
+fdns.rmempty = false
+fdns.default = fdns.enabled
+
+-- Statistics
+
+t = m:section(NamedSection, "global", "adblock", translate("Statistics"))
+
+dat = t:option(DummyValue, "adb_lastrun", translate("Last update of the blocklists"))
+tot = t:option(DummyValue, "adb_overall_count", translate("Total count of blocked domains"))
+prc = t:option(DummyValue, "adb_percentage", translate("Percentage of blocked packets (before last update, IPv4/IPv6)"))
+
-- Blocklist options
bl = m:section(TypedSection, "source", translate("Blocklist sources"),
@@ -35,8 +44,9 @@ bl.template = "cbi/tblsection"
name = bl:option(Flag, "enabled", translate("Enabled"))
name.rmempty = false
-des = bl:option(DummyValue, "adb_srcdesc", translate("Description"))
-des.rmempty = false
+des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
+cou = bl:option(DummyValue, "adb_src_count", translate("Count"))
+upd = bl:option(DummyValue, "adb_src_timestamp", translate("List date/state"))
-- Additional options
@@ -46,52 +56,46 @@ o4 = s2:option(Flag, "enabled", translate("Enable blocklist backup"))
o4.rmempty = false
o4.default = 0
-o5 = s2:option(Value, "adb_backupdir", translate("Backup directory"))
+o5 = s2:option(Value, "adb_dir", translate("Backup directory"))
o5.rmempty = false
o5.datatype = "directory"
-s3 = m:section(NamedSection, "log", "service", translate("Log options"))
-
-o6 = s3:option(Flag, "enabled", translate("Enable log"))
-o6.rmempty = false
-o6.default = 0
-
-o7 = s3:option(Value, "adb_logfile", translate("Log file"))
-o7.rmempty = false
-o7.datatype = "string"
-
-- Extra options
e = m:section(NamedSection, "global", "adblock", translate("Extra options"),
translate("Options for further tweaking in case the defaults are not suitable for you."))
-a1 = e:option(Value, "adb_port", translate("Port of the adblock uhttpd instance"))
+a0 = e:option(Flag, "adb_restricted", translate("Do not write status info to flash"),
+ translate("Skip writing update status information to the config file. Status fields on this page will not be updated."))
+a0.default = 0
+
+a1 = e:option(Value, "adb_nullport", translate("Port of the adblock uhttpd instance"))
a1.optional = true
-a1.rmempty = true
-a1.default = 65535
+a1.default = 65534
a1.datatype = "port"
+a5 = e:option(Value, "adb_nullportssl", translate("Port of the adblock uhttpd instance for https links"))
+a5.optional = true
+a5.default = 65535
+a5.datatype = "port"
+
a2 = e:option(Value, "adb_nullipv4", translate("IPv4 blackhole ip address"))
a2.optional = true
-a2.rmempty = true
-a2.default = "192.0.2.1"
+a2.default = "198.18.0.1"
a2.datatype = "ip4addr"
a3 = e:option(Value, "adb_nullipv6", translate("IPv6 blackhole ip address"))
a3.optional = true
-a3.rmempty = true
-a3.default = "::ffff:c000:0201"
+a3.default = "::ffff:c612:0001"
a3.datatype = "ip6addr"
-a6 = e:option(Value, "adb_wanif", translate("Name of the logical wan interface"))
-a6.optional = true
-a6.rmempty = true
-a6.default = "wan"
-a6.datatype = "network"
+a4 = e:option(Value, "adb_fetchttl", translate("Timeout for blocklist fetch (seconds)"))
+a4.optional = true
+a4.default = 5
+a4.datatype = "range(2,60)"
a7 = e:option(Value, "adb_lanif", translate("Name of the logical lan interface"))
a7.optional = true
-a7.rmempty = true
a7.default = "lan"
a7.datatype = "network"
diff --git a/applications/luci-app-adblock/po/sv/adblock.po b/applications/luci-app-adblock/po/sv/adblock.po
new file mode 100644
index 0000000000..9c0ca21f17
--- /dev/null
+++ b/applications/luci-app-adblock/po/sv/adblock.po
@@ -0,0 +1,114 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid ""
+"). Note that list URLs and Shallalist category selections are not "
+"configurable via Luci."
+msgstr ""
+
+msgid "Adblock"
+msgstr "Blockering av annonser"
+
+msgid "Available blocklist sources ("
+msgstr "Tillgängliga källor för blockeringslistor ("
+
+msgid "Backup directory"
+msgstr "Säkerhetskopiera mapp"
+
+msgid "Backup options"
+msgstr "Alternativ för säkerhetskopiering"
+
+msgid "Blocklist sources"
+msgstr "Källor för blockeringslistor"
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+"Konfiguration av paket adblock för att blockera annons/otillåtna domäner "
+"genom att användning DNS."
+
+msgid "Count"
+msgstr "Räkna"
+
+msgid "Description"
+msgstr "Beskrivning"
+
+msgid "Do not write status info to flash"
+msgstr "Skriv inte status info till flash"
+
+msgid "Enable adblock"
+msgstr "Aktivera abblock"
+
+msgid "Enable blocklist backup"
+msgstr "Aktivera säkerhetskopiering av blockeringslistan"
+
+msgid "Enabled"
+msgstr "Aktiverad"
+
+msgid "Extra options"
+msgstr "Extra alternativ"
+
+msgid ""
+"File with whitelisted hosts/domains that are allowed despite being on a "
+"blocklist."
+msgstr ""
+
+msgid "Global options"
+msgstr "Globala alternativ"
+
+msgid "IPv4 blackhole ip address"
+msgstr ""
+
+msgid "IPv6 blackhole ip address"
+msgstr ""
+
+msgid "Last update of the blocklists"
+msgstr ""
+
+msgid "List date/state"
+msgstr ""
+
+msgid "Name of the logical lan interface"
+msgstr ""
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+msgstr ""
+
+msgid "Port of the adblock uhttpd instance"
+msgstr ""
+
+msgid "Port of the adblock uhttpd instance for https links"
+msgstr ""
+
+msgid "Redirect all DNS queries to the local resolver"
+msgstr "Dirigera om alla DNS-förfrågning till den lokala resolvern"
+
+msgid ""
+"Skip writing update status information to the config file. Status fields on "
+"this page will not be updated."
+msgstr ""
+
+msgid "Statistics"
+msgstr ""
+
+msgid "Timeout for blocklist fetch (seconds)"
+msgstr ""
+
+msgid "Total count of blocked domains"
+msgstr ""
+
+msgid ""
+"When adblock is active, all DNS queries are redirected to the local resolver "
+"in this server by default. You can disable that to allow queries to external "
+"DNS servers."
+msgstr ""
+
+msgid "Whitelist file"
+msgstr "Vitlista fil"
+
+msgid "see list details"
+msgstr "se listans detaljer"
diff --git a/applications/luci-app-adblock/po/templates/adblock.pot b/applications/luci-app-adblock/po/templates/adblock.pot
new file mode 100644
index 0000000000..eeb0d975b9
--- /dev/null
+++ b/applications/luci-app-adblock/po/templates/adblock.pot
@@ -0,0 +1,112 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"). Note that list URLs and Shallalist category selections are not "
+"configurable via Luci."
+msgstr ""
+
+msgid "Adblock"
+msgstr ""
+
+msgid "Available blocklist sources ("
+msgstr ""
+
+msgid "Backup directory"
+msgstr ""
+
+msgid "Backup options"
+msgstr ""
+
+msgid "Blocklist sources"
+msgstr ""
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+
+msgid "Count"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Do not write status info to flash"
+msgstr ""
+
+msgid "Enable adblock"
+msgstr ""
+
+msgid "Enable blocklist backup"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Extra options"
+msgstr ""
+
+msgid ""
+"File with whitelisted hosts/domains that are allowed despite being on a "
+"blocklist."
+msgstr ""
+
+msgid "Global options"
+msgstr ""
+
+msgid "IPv4 blackhole ip address"
+msgstr ""
+
+msgid "IPv6 blackhole ip address"
+msgstr ""
+
+msgid "Last update of the blocklists"
+msgstr ""
+
+msgid "List date/state"
+msgstr ""
+
+msgid "Name of the logical lan interface"
+msgstr ""
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+msgstr ""
+
+msgid "Port of the adblock uhttpd instance"
+msgstr ""
+
+msgid "Port of the adblock uhttpd instance for https links"
+msgstr ""
+
+msgid "Redirect all DNS queries to the local resolver"
+msgstr ""
+
+msgid ""
+"Skip writing update status information to the config file. Status fields on "
+"this page will not be updated."
+msgstr ""
+
+msgid "Statistics"
+msgstr ""
+
+msgid "Timeout for blocklist fetch (seconds)"
+msgstr ""
+
+msgid "Total count of blocked domains"
+msgstr ""
+
+msgid ""
+"When adblock is active, all DNS queries are redirected to the local resolver "
+"in this server by default. You can disable that to allow queries to external "
+"DNS servers."
+msgstr ""
+
+msgid "Whitelist file"
+msgstr ""
+
+msgid "see list details"
+msgstr ""
diff --git a/applications/luci-app-adblock/po/zh-cn/adblock.po b/applications/luci-app-adblock/po/zh-cn/adblock.po
new file mode 100644
index 0000000000..e57921daa8
--- /dev/null
+++ b/applications/luci-app-adblock/po/zh-cn/adblock.po
@@ -0,0 +1,125 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: kuoruan@gmail.com\n"
+"Language-Team: none\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.5\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid ""
+"). Note that list URLs and Shallalist category selections are not "
+"configurable via Luci."
+msgstr ")。需要注意的是列表URL和列表类别选项无法通过Luci设置。"
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Available blocklist sources ("
+msgstr "可用拦截列表来源("
+
+msgid "Backup directory"
+msgstr "备份目录"
+
+msgid "Backup options"
+msgstr "备份选项"
+
+msgid "Blocklist sources"
+msgstr "拦截列表来源"
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr "Adblock 配置工具,通过 DNS 来拦截广告和阻止域名。"
+
+msgid "Count"
+msgstr "数量"
+
+msgid "Description"
+msgstr "描述"
+
+msgid "Do not write status info to flash"
+msgstr ""
+
+msgid "Enable adblock"
+msgstr "启用Adblock"
+
+msgid "Enable blocklist backup"
+msgstr "启用拦截规则备份"
+
+msgid "Enabled"
+msgstr "启用"
+
+msgid "Extra options"
+msgstr "额外选项"
+
+msgid ""
+"File with whitelisted hosts/domains that are allowed despite being on a "
+"blocklist."
+msgstr "允许的主机/域名列表"
+
+msgid "Global options"
+msgstr "全局选项"
+
+msgid "IPv4 blackhole ip address"
+msgstr "IPv4禁止列表"
+
+msgid "IPv6 blackhole ip address"
+msgstr "IPv6禁止列表"
+
+msgid "Last update of the blocklists"
+msgstr ""
+
+msgid "List date/state"
+msgstr "列表日期/状态"
+
+msgid "Name of the logical lan interface"
+msgstr "LAN接口名称"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr "在默认设置并不适合你时的额外选项。"
+
+msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+msgstr ""
+
+msgid "Port of the adblock uhttpd instance"
+msgstr "Adblock uhttpd端口"
+
+msgid "Port of the adblock uhttpd instance for https links"
+msgstr ""
+
+msgid "Redirect all DNS queries to the local resolver"
+msgstr "将所有DNS查询都重定向到本地解析器"
+
+msgid ""
+"Skip writing update status information to the config file. Status fields on "
+"this page will not be updated."
+msgstr ""
+
+msgid "Statistics"
+msgstr ""
+
+msgid "Timeout for blocklist fetch (seconds)"
+msgstr "列表查询超时时间(秒)"
+
+msgid "Total count of blocked domains"
+msgstr "阻止域名总数"
+
+msgid ""
+"When adblock is active, all DNS queries are redirected to the local resolver "
+"in this server by default. You can disable that to allow queries to external "
+"DNS servers."
+msgstr ""
+"当Adblock处于活动状态时,默认情况下会将所有的DNS查询重定向到此服务器的本地解"
+"析器。您可以禁用以允许查询外部DNS服务器。"
+
+msgid "Whitelist file"
+msgstr "白名单文件"
+
+msgid "see list details"
+msgstr "查看列表详情"
diff --git a/applications/luci-app-aria2/Makefile b/applications/luci-app-aria2/Makefile
new file mode 100644
index 0000000000..f5b006c357
--- /dev/null
+++ b/applications/luci-app-aria2/Makefile
@@ -0,0 +1,39 @@
+#
+# Copyright (C) 2016 Openwrt.org
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=luci-app-aria2
+
+# Version == major.minor.patch
+# increase "minor" on new functionality and "patch" on patches/optimization
+PKG_VERSION:=1.0.1
+
+# Release == build
+# increase on changes of translation files
+PKG_RELEASE:=2
+
+PKG_LICENSE:=Apache-2.0
+PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
+
+# LuCI specific settings
+LUCI_TITLE:=LuCI Support for Aria2
+LUCI_DEPENDS:=+aria2
+LUCI_PKGARCH:=all
+
+define Package/$(PKG_NAME)/config
+# shown in make menuconfig <Help>
+help
+ $(LUCI_TITLE)
+ .
+ Version: $(PKG_VERSION)-$(PKG_RELEASE)
+ $(PKG_MAINTAINER)
+endef
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
+
diff --git a/applications/luci-app-aria2/luasrc/controller/aria2.lua b/applications/luci-app-aria2/luasrc/controller/aria2.lua
new file mode 100644
index 0000000000..17289305d7
--- /dev/null
+++ b/applications/luci-app-aria2/luasrc/controller/aria2.lua
@@ -0,0 +1,42 @@
+--[[
+LuCI - Lua Configuration Interface - aria2 support
+
+Copyright 2014-2015 nanpuyue <nanpuyue@gmail.com>
+Modified by kuoruan <kuoruan@gmail.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+]]--
+
+module("luci.controller.aria2", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/aria2") then
+ return
+ end
+
+ local page = entry({"admin", "services", "aria2"}, cbi("aria2"), _("Aria2 Settings"))
+ page.dependent = true
+
+ entry({"admin", "services", "aria2", "status"}, call("status")).leaf = true
+
+end
+
+function status()
+ local sys = require "luci.sys"
+ local ipkg = require "luci.model.ipkg"
+ local http = require "luci.http"
+ local uci = require "luci.model.uci".cursor()
+
+ local status = {
+ running = (sys.call("pidof aria2c > /dev/null") == 0),
+ yaaw = ipkg.installed("yaaw"),
+ webui = ipkg.installed("webui-aria2")
+ }
+
+ http.prepare_content("application/json")
+ http.write_json(status)
+end
diff --git a/applications/luci-app-aria2/luasrc/model/cbi/aria2.lua b/applications/luci-app-aria2/luasrc/model/cbi/aria2.lua
new file mode 100644
index 0000000000..3b61f95464
--- /dev/null
+++ b/applications/luci-app-aria2/luasrc/model/cbi/aria2.lua
@@ -0,0 +1,211 @@
+--[[
+LuCI - Lua Configuration Interface - Aria2 support
+
+Copyright 2014-2016 nanpuyue <nanpuyue@gmail.com>
+Modified by maz-1 <ohmygod19993@gmail.com>
+Modified by kuoruan <kuoruan@gmail.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+]]--
+
+local sys = require "luci.sys"
+local util = require "luci.util"
+local uci = require "luci.model.uci".cursor()
+
+local cfgbtn = "<input type=\"button\" value=\"" .. translate("Generate Randomly") .. "\" onclick=\"randomSecret(32);\" />"
+local sessionbtn = "<input class=\"cbi-button mar-10\" type=\"button\" value=\"" .. translate("View Json-RPC URL") .. "\" onclick=\"showRPCURL();\" />"
+local aria2rpctxt = "<input class=\"mar-10\" id=\"aria2rpcpath\" onmouseover=\"obj=document.getElementById(this.id);obj.focus();obj.select()\" />"
+local use_websocket = "<input id=\"use_websocket\" type=\"checkbox\" /><label for=\"use_websocket\">" .. translate("Use WebSocket") .. "</label>"
+
+function ipkg_ver(pkg)
+ local version = nil
+ local control = io.open("/usr/lib/opkg/info/%s.control" % pkg, "r")
+ if control then
+ local ln
+ repeat
+ ln = control:read("*l")
+ if ln and ln:match("^Version: ") then
+ version = ln:gsub("^Version: ", ""):gsub("-%d", "")
+ break
+ end
+ until not ln
+ control:close()
+ end
+ return version
+end
+
+function ipkg_ver_lined(pkg)
+ return ipkg_ver(pkg):gsub("%.", "-")
+end
+
+m = Map("aria2", translate("Aria2"), translate("Aria2 is a multi-protocol &amp; multi-source download utility, here you can configure the settings."))
+
+m:section(SimpleSection).template = "aria2/overview_status"
+
+s = m:section(TypedSection, "aria2", translate("Aria2 Settings"))
+s.addremove = false
+s.anonymous = true
+
+s:tab("general", translate("General Settings"))
+s:tab("file", translate("Files and Locations"))
+s:tab("task", translate("Task Settings"))
+s:tab("bittorrent", translate("BitTorrent Settings"))
+
+o = s:taboption("general", Flag, "enabled", translate("Enabled"))
+o.rmempty = false
+
+user = s:taboption("general", ListValue, "user", translate("Run daemon as user"))
+local p_user
+for _, p_user in util.vspairs(util.split(sys.exec("cat /etc/passwd | cut -f 1 -d :"))) do
+ user:value(p_user)
+end
+
+o = s:taboption("general", Value, "rpc_listen_port", translate("RPC port"))
+o.datatype = "port"
+o.placeholder = "6800"
+
+rpc_auth_method = s:taboption("general", ListValue, "rpc_auth_method", translate("RPC authentication method"))
+rpc_auth_method:value("none", translate("No Authentication"))
+rpc_auth_method:value("user_pass", translate("Username & Password"))
+rpc_auth_method:value("token", translate("Token"))
+
+o = s:taboption("general", Value, "rpc_user", translate("RPC username"))
+o:depends("rpc_auth_method", "user_pass")
+o.rmempty = false
+
+o = s:taboption("general", Value, "rpc_passwd", translate("RPC password"))
+o:depends("rpc_auth_method", "user_pass")
+o.password = true
+o.rmempty = true
+
+o = s:taboption("general", Value, "rpc_secret", translate("RPC Token"), "<br/>" .. cfgbtn)
+o:depends("rpc_auth_method", "token")
+o.rmempty = true
+
+o = s:taboption("file", Value, "config_dir", translate("Config file directory"))
+o.placeholder = "/var/etc/aria2"
+
+o = s:taboption("file", Flag, "enable_log", translate("Enable log"), translate("Log file is in the config file dir."))
+o.enabled = "true"
+o.disabled = "false"
+
+o = s:taboption("file", ListValue, "log_level", translate("Log level"))
+o:depends("enable_log", "true")
+o:value("debug", translate("Debug"))
+o:value("info", translate("Info"))
+o:value("notice", translate("Notice"))
+o:value("warn", translate("Warn"))
+o:value("error", translate("Error"))
+
+o = s:taboption("file", Value, "dir", translate("Default download directory"))
+o.rmempty = false
+
+o = s:taboption("file", Value, "disk_cache", translate("Disk cache"), translate("in bytes, You can append K or M."))
+o.rmempty = true
+
+o = s:taboption("file", ListValue, "file_allocation", translate("Preallocation"), translate("\"Falloc\" is not available in all cases."))
+o:value("none", translate("Off"))
+o:value("prealloc", translate("Prealloc"))
+o:value("trunc", translate("Trunc"))
+o:value("falloc", translate("Falloc"))
+
+overall_speed_limit = s:taboption("task", Flag, "overall_speed_limit", translate("Overall speed limit enabled"))
+overall_speed_limit.rmempty = true
+
+o = s:taboption("task", Value, "max_overall_download_limit", translate("Overall download limit"), translate("in bytes/sec, You can append K or M."))
+o:depends("overall_speed_limit", "1")
+
+o = s:taboption("task", Value, "max_overall_upload_limit", translate("Overall upload limit"), translate("in bytes/sec, You can append K or M."))
+o:depends("overall_speed_limit", "1")
+
+task_speed_limit = s:taboption("task", Flag, "task_speed_limit", translate("Per task speed limit enabled"))
+task_speed_limit.rmempty = true
+
+o = s:taboption("task", Value, "max_download_limit", translate("Per task download limit"), translate("in bytes/sec, You can append K or M."))
+o:depends("task_speed_limit", "1")
+
+o = s:taboption("task", Value, "max_upload_limit", translate("Per task upload limit"), translate("in bytes/sec, You can append K or M."))
+o:depends("task_speed_limit", "1")
+
+o = s:taboption("task", Value, "max_concurrent_downloads", translate("Max concurrent downloads"))
+o.placeholder = "5"
+
+o = s:taboption("task", Value, "max_connection_per_server", translate("Max connection per server"), "1-16")
+o.datetype = "range(1, 16)"
+o.placeholder = "1"
+
+o = s:taboption("task", Value, "min_split_size", translate("Min split size"), "1M-1024M")
+o.placeholder = "20M"
+
+o = s:taboption("task", Value, "split", translate("Max number of split"))
+o.placeholder = "5"
+
+o = s:taboption("task", Value, "save_session_interval", translate("Autosave session interval"), translate("Sec"))
+o.default = "30"
+
+o = s:taboption("task", Value, "user_agent", translate("User agent value"))
+o.placeholder = "aria2/" .. ipkg_ver("aria2")
+
+o = s:taboption("bittorrent", Flag, "enable_dht", translate("<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"))
+o.enabled = "true"
+o.disabled = "false"
+
+o = s:taboption("bittorrent", Flag, "bt_enable_lpd", translate("<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"))
+o.enabled = "true"
+o.disabled = "false"
+
+o = s:taboption("bittorrent", Flag, "follow_torrent", translate("Follow torrent"))
+o.enabled = "true"
+o.disabled = "false"
+
+o = s:taboption("bittorrent", Value, "listen_port", translate("BitTorrent listen port"))
+o.placeholder = "6881-6999"
+
+o = s:taboption("bittorrent", Value, "bt_max_peers", translate("Max number of peers per torrent"))
+o.placeholder = "55"
+
+bt_tracker_enable = s:taboption("bittorrent", Flag, "bt_tracker_enable", translate("Additional Bt tracker enabled"))
+bt_tracker = s:taboption("bittorrent", DynamicList, "bt_tracker", translate("List of additional Bt tracker"))
+bt_tracker:depends("bt_tracker_enable", "1")
+bt_tracker.rmempty = true
+
+function bt_tracker.cfgvalue(self, section)
+ local rv = {}
+ local val = Value.cfgvalue(self, section)
+ if type(val) == "table" then
+ val = table.concat(val, ",")
+ elseif not val then
+ val = ""
+ end
+ for v in val:gmatch("[^,%s]+") do
+ rv[#rv+1] = v
+ end
+ return rv
+end
+
+function bt_tracker.write(self, section, value)
+ local rv = {}
+ for v in util.imatch(value) do
+ rv[#rv+1] = v
+ end
+ Value.write(self, section, table.concat(rv, ","))
+end
+
+o = s:taboption("bittorrent", Value, "peer_id_prefix", translate("Prefix of peer ID"))
+o.placeholder = "A2-" .. ipkg_ver_lined("aria2") .. "-"
+
+s = m:section(TypedSection, "aria2", translate("Extra Settings"))
+s.addremove = false
+s.anonymous = true
+
+o = s:option(DynamicList, "extra_settings", translate("List of extra settings"))
+o.placeholder = "option=value"
+o.rmempty = true
+
+m:section(SimpleSection, nil, sessionbtn .. use_websocket .. aria2rpctxt)
+
+return m
diff --git a/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm b/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm
new file mode 100644
index 0000000000..b14cca228f
--- /dev/null
+++ b/applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm
@@ -0,0 +1,77 @@
+<script type="text/javascript">//<![CDATA[
+XHR.poll(5, '<%=luci.dispatcher.build_url("admin/services/aria2/status")%>', null,
+ function(x, data) {
+ var tb = document.getElementById('aria2_status');
+ if (data && tb) {
+ if (data.running) {
+ var links = '<em><%:The Aria2 service is running.%></em>';
+ if (data.yaaw) {
+ links += '<input class="cbi-button mar-10" type="button" value="<%:Open YAAW%>" onclick="openWebUI(\'yaaw\');" />';
+ }
+ if (data.webui) {
+ links += '<input class="cbi-button mar-10" type="button" value="<%:Open WebUI-Aria2%>" onclick="openWebUI(\'webui-aria2\');" />';
+ }
+ tb.innerHTML = links;
+ } else {
+ tb.innerHTML = '<em><%:The Aria2 service is not running.%></em>';
+ }
+ }
+ }
+);
+
+function randomString(len) {
+ len = len || 32;
+ var $chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
+ var maxPos = $chars.length;
+ var pwd = '';
+ for (i = 0; i < len; i++) {
+ pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
+ }
+ return pwd;
+};
+
+function randomSecret() {
+ var Token = document.getElementById("cbid.aria2.main.rpc_secret");
+ Token.value = randomString(32);
+};
+
+function showRPCURL() {
+ var websocket = document.getElementById("use_websocket");
+ var protocol = (websocket.checked) ? "ws" : "http";
+ var newTextNode = document.getElementById("aria2rpcpath");
+ var auth_method = document.getElementById("cbid.aria2.main.rpc_auth_method");
+ var auth_port = document.getElementById("cbid.aria2.main.rpc_listen_port");
+ if (auth_port.value == "") {
+ auth_port_value = "6800"
+ } else {
+ auth_port_value = auth_port.value
+ };
+ if (auth_method.value == "token") {
+ var auth_token = document.getElementById("cbid.aria2.main.rpc_secret");
+ newTextNode.value = protocol + "://token:" + auth_token.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
+ } else if (auth_method.value == "user_pass") {
+ var auth_user = document.getElementById("cbid.aria2.main.rpc_user");
+ var auth_passwd = document.getElementById("cbid.aria2.main.rpc_passwd");
+ newTextNode.value = protocol + "://" + auth_user.value + ":" + auth_passwd.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
+ } else {
+ newTextNode.value = protocol + "://" + document.domain + ":" + auth_port_value + "/jsonrpc";
+ }
+};
+
+function openWebUI(path) {
+ var curWwwPath = window.document.location.href;
+ var pathName = window.document.location.pathname;
+ var pos = curWwwPath.indexOf(pathName);
+ var localhostPath = curWwwPath.substring(0, pos);
+ var url = "http:" + localhostPath.substring(window.location.protocol.length) + "/" + path;
+ window.open(url)
+};
+//]]>
+</script>
+<style>.mar-10 {margin-left: 10px; margin-right: 10px;}</style>
+<fieldset class="cbi-section">
+ <legend><%:Aria2 Status%></legend>
+ <p id="aria2_status">
+ <em><%:Collecting data...%></em>
+ </p>
+</fieldset>
diff --git a/applications/luci-app-aria2/po/templates/aria2.pot b/applications/luci-app-aria2/po/templates/aria2.pot
new file mode 100644
index 0000000000..357c0ae760
--- /dev/null
+++ b/applications/luci-app-aria2/po/templates/aria2.pot
@@ -0,0 +1,208 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "\"Falloc\" is not available in all cases."
+msgstr ""
+
+msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
+msgstr ""
+
+msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
+msgstr ""
+
+msgid "Additional Bt tracker enabled"
+msgstr ""
+
+msgid "Aria2"
+msgstr ""
+
+msgid "Aria2 Settings"
+msgstr ""
+
+msgid "Aria2 Status"
+msgstr ""
+
+msgid ""
+"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
+"configure the settings."
+msgstr ""
+
+msgid "Autosave session interval"
+msgstr ""
+
+msgid "BitTorrent Settings"
+msgstr ""
+
+msgid "BitTorrent listen port"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Config file directory"
+msgstr ""
+
+msgid "Debug"
+msgstr ""
+
+msgid "Default download directory"
+msgstr ""
+
+msgid "Disk cache"
+msgstr ""
+
+msgid "Enable log"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Error"
+msgstr ""
+
+msgid "Extra Settings"
+msgstr ""
+
+msgid "Falloc"
+msgstr ""
+
+msgid "Files and Locations"
+msgstr ""
+
+msgid "Follow torrent"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "Generate Randomly"
+msgstr ""
+
+msgid "Info"
+msgstr ""
+
+msgid "List of additional Bt tracker"
+msgstr ""
+
+msgid "List of extra settings"
+msgstr ""
+
+msgid "Log file is in the config file dir."
+msgstr ""
+
+msgid "Log level"
+msgstr ""
+
+msgid "Max concurrent downloads"
+msgstr ""
+
+msgid "Max connection per server"
+msgstr ""
+
+msgid "Max number of peers per torrent"
+msgstr ""
+
+msgid "Max number of split"
+msgstr ""
+
+msgid "Min split size"
+msgstr ""
+
+msgid "No Authentication"
+msgstr ""
+
+msgid "Notice"
+msgstr ""
+
+msgid "Off"
+msgstr ""
+
+msgid "Open WebUI-Aria2"
+msgstr ""
+
+msgid "Open YAAW"
+msgstr ""
+
+msgid "Overall download limit"
+msgstr ""
+
+msgid "Overall speed limit enabled"
+msgstr ""
+
+msgid "Overall upload limit"
+msgstr ""
+
+msgid "Per task download limit"
+msgstr ""
+
+msgid "Per task speed limit enabled"
+msgstr ""
+
+msgid "Per task upload limit"
+msgstr ""
+
+msgid "Prealloc"
+msgstr ""
+
+msgid "Preallocation"
+msgstr ""
+
+msgid "Prefix of peer ID"
+msgstr ""
+
+msgid "RPC Token"
+msgstr ""
+
+msgid "RPC authentication method"
+msgstr ""
+
+msgid "RPC password"
+msgstr ""
+
+msgid "RPC port"
+msgstr ""
+
+msgid "RPC username"
+msgstr ""
+
+msgid "Run daemon as user"
+msgstr ""
+
+msgid "Sec"
+msgstr ""
+
+msgid "Task Settings"
+msgstr ""
+
+msgid "The Aria2 service is not running."
+msgstr ""
+
+msgid "The Aria2 service is running."
+msgstr ""
+
+msgid "Token"
+msgstr ""
+
+msgid "Trunc"
+msgstr ""
+
+msgid "Use WebSocket"
+msgstr ""
+
+msgid "User agent value"
+msgstr ""
+
+msgid "Username & Password"
+msgstr ""
+
+msgid "View Json-RPC URL"
+msgstr ""
+
+msgid "Warn"
+msgstr ""
+
+msgid "in bytes, You can append K or M."
+msgstr ""
+
+msgid "in bytes/sec, You can append K or M."
+msgstr ""
diff --git a/applications/luci-app-aria2/po/zh-cn/aria2.po b/applications/luci-app-aria2/po/zh-cn/aria2.po
new file mode 100644
index 0000000000..823699d7bd
--- /dev/null
+++ b/applications/luci-app-aria2/po/zh-cn/aria2.po
@@ -0,0 +1,200 @@
+msgid "Aria2"
+msgstr ""
+
+msgid "Aria2 is a multi-protocol &amp; multi-source download utility, here you can configure the settings."
+msgstr "Aria2 是一个支持多协议多线程的下载器, 你可以在这里对其进行配置"
+
+msgid "Aria2 Status"
+msgstr "Aria2 状态"
+
+msgid "Open YAAW"
+msgstr "打开YAAW"
+
+msgid "Open WebUI-Aria2"
+msgstr "打开WebUI-Aria2"
+
+msgid "The Aria2 service is running."
+msgstr "Aria2 正在运行"
+
+msgid "The Aria2 service is not running."
+msgstr "Aria2 未运行"
+
+msgid "Aria2 Settings"
+msgstr "Aria2 配置"
+
+msgid "General settings"
+msgstr "一般设置"
+
+msgid "Files and Locations"
+msgstr "文件和目录"
+
+msgid "Enabled"
+msgstr "启用"
+
+msgid "Task Settings"
+msgstr "任务设置"
+
+msgid "BitTorrent Settings"
+msgstr "BT设置"
+
+msgid "Run daemon as user"
+msgstr "以此用户权限运行"
+
+msgid "RPC port"
+msgstr "RPC端口"
+
+msgid "RPC authentication method"
+msgstr "RPC认证方式"
+
+msgid "No Authentication"
+msgstr "无认证"
+
+msgid "Username & Password"
+msgstr "用户名与密码"
+
+msgid "Token"
+msgstr "令牌"
+
+msgid "RPC username"
+msgstr "RPC用户名"
+
+msgid "RPC password"
+msgstr "RPC密码"
+
+msgid "RPC Token"
+msgstr "RPC令牌"
+
+msgid "Generate Randomly"
+msgstr "随机生成"
+
+msgid "Enable log"
+msgstr "启用日志"
+
+msgid "Log file is in the config file dir."
+msgstr "日志文件在配置文件目录下"
+
+msgid "Log level"
+msgstr "日志记录等级"
+
+msgid "Debug"
+msgstr "调试"
+
+msgid "Info"
+msgstr "信息"
+
+msgid "Notice"
+msgstr "注意"
+
+msgid "Warn"
+msgstr "警告"
+
+msgid "Error"
+msgstr "错误"
+
+msgid "Config file directory"
+msgstr "配置文件目录"
+
+msgid "Default download directory"
+msgstr "默认下载目录"
+
+msgid "Disk cache"
+msgstr "磁盘缓存"
+
+msgid "in bytes, You can append K or M."
+msgstr "单位 B, 你可以在数字后跟上 K 或 M"
+
+msgid "Preallocation"
+msgstr "磁盘预分配"
+
+msgid "Off"
+msgstr "关闭"
+
+msgid "Prealloc"
+msgstr ""
+
+msgid "Trunc"
+msgstr ""
+
+msgid "Falloc"
+msgstr ""
+
+msgid "\"Falloc\" is not available in all cases."
+msgstr "\"Falloc\" 并不是在所有情况下都可用"
+
+msgid "Overall speed limit enabled"
+msgstr "启用全局限速"
+
+msgid "Overall download limit"
+msgstr "全局下载限速"
+
+msgid "in bytes/sec, You can append K or M."
+msgstr "单位 B/s, 你可以在数字后跟上 K 或 M"
+
+msgid "Overall upload limit"
+msgstr "全局上传限速"
+
+msgid "Per task speed limit enabled"
+msgstr "启用单任务限速"
+
+msgid "Per task download limit"
+msgstr "单任务下载限速"
+
+msgid "Per task upload limit"
+msgstr "单任务上传限速"
+
+msgid "Max concurrent downloads"
+msgstr "最大同时下载任务数"
+
+msgid "Max connection per server"
+msgstr "单服务器最大连接数"
+
+msgid "Min split size"
+msgstr "最小文件分片大小"
+
+msgid "Max number of split"
+msgstr "单文件最大线程数"
+
+msgid "Autosave session interval"
+msgstr "定时保存会话间隔"
+
+msgid "Sec"
+msgstr "秒"
+
+msgid "User agent value"
+msgstr "用户代理(UA)"
+
+msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
+msgstr "启用<abbr title=\"分布式哈希表\">DHT</abbr>"
+
+msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
+msgstr "启用<abbr title=\"本地节点发现\">LPD</abbr>"
+
+msgid "Follow torrent"
+msgstr "自动添加下载的种子"
+
+msgid "BitTorrent listen port"
+msgstr "BT监听端口"
+
+msgid "Max number of peers per torrent"
+msgstr "单个种子最大连接数"
+
+msgid "Additional Bt tracker enabled"
+msgstr "添加额外的Tracker"
+
+msgid "List of additional Bt tracker"
+msgstr "附加Tracker列表"
+
+msgid "Prefix of peer ID"
+msgstr "Peer ID前缀"
+
+msgid "Extra Settings"
+msgstr "附加选项"
+
+msgid "List of extra settings"
+msgstr "附加选项列表"
+
+msgid "View Json-RPC URL"
+msgstr "查看 Json-RPC URL"
+
+msgid "Use WebSocket"
+msgstr "使用WebSocket"
diff --git a/applications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria2 b/applications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria2
new file mode 100755
index 0000000000..3a9ba5b29a
--- /dev/null
+++ b/applications/luci-app-aria2/root/etc/uci-defaults/40_luci-aria2
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@aria2[-1]
+ add ucitrack aria2
+ set ucitrack.@aria2[-1].init=aria2
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-app.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-app.lua
index 0a0a2d512e..72685b0110 100644
--- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-app.lua
+++ b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-app.lua
@@ -15,7 +15,7 @@ app_authenticate:value("no", "Do Not Load")
app_authenticate:value("auto", "Load as Required")
app_authenticate.rmempty = true
-app_cdr = module:option(ListValue, "app_cdr", "Make sure asterisk doesnt save CDR", "")
+app_cdr = module:option(ListValue, "app_cdr", "Make sure asterisk doesn't save CDR", "")
app_cdr:value("yes", "Load")
app_cdr:value("no", "Do Not Load")
app_cdr:value("auto", "Load as Required")
@@ -117,7 +117,7 @@ app_externalivr:value("no", "Do Not Load")
app_externalivr:value("auto", "Load as Required")
app_externalivr.rmempty = true
-app_forkcdr = module:option(ListValue, "app_forkcdr", "Fork The CDR into 2 seperate entities", "")
+app_forkcdr = module:option(ListValue, "app_forkcdr", "Fork The CDR into 2 separate entities", "")
app_forkcdr:value("yes", "Load")
app_forkcdr:value("no", "Do Not Load")
app_forkcdr:value("auto", "Load as Required")
diff --git a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua
index 783aab2b74..7c818760d1 100644
--- a/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua
+++ b/applications/luci-app-asterisk/luasrc/model/cbi/asterisk-mod-res-feature.lua
@@ -84,7 +84,7 @@ pickupexten = featurepark:option(Value, "pickupexten", "Pickup extension", "")
pickupexten.rmempty = true
pickupexten:depends({ parkenabled = "1" })
-transferdigittimeout = featurepark:option(Value, "transferdigittimeout", "Seconds to wait bewteen digits when transferring", "")
+transferdigittimeout = featurepark:option(Value, "transferdigittimeout", "Seconds to wait between digits when transferring", "")
transferdigittimeout.rmempty = true
transferdigittimeout:depends({ parkenabled = "1" })
diff --git a/applications/luci-app-asterisk/po/ca/asterisk.po b/applications/luci-app-asterisk/po/ca/asterisk.po
index 9775758e42..aa534432e1 100644
--- a/applications/luci-app-asterisk/po/ca/asterisk.po
+++ b/applications/luci-app-asterisk/po/ca/asterisk.po
@@ -187,7 +187,7 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Connector de recol·lecció"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Segons a esperar entre dígits quan es transfereix"
#~ msgid "sound when attended transfer is complete"
@@ -247,7 +247,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Aplicació d'autenticació"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "Assegura't que asterisk no desa CDR"
#~ msgid "Check if channel is available"
@@ -298,7 +298,7 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "Interfície d'aplicació IVR externa"
-#~ msgid "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
#~ msgstr "Bifurca el CDR en 2 entitats separades"
#~ msgid "Get ADSI CPE ID"
diff --git a/applications/luci-app-asterisk/po/en/asterisk.po b/applications/luci-app-asterisk/po/en/asterisk.po
index e462f56b86..fc095087e2 100644
--- a/applications/luci-app-asterisk/po/en/asterisk.po
+++ b/applications/luci-app-asterisk/po/en/asterisk.po
@@ -187,8 +187,8 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Pickup extension"
-#~ msgid "Seconds to wait bewteen digits when transferring"
-#~ msgstr "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
+#~ msgstr "Seconds to wait between digits when transferring"
#~ msgid "sound when attended transfer is complete"
#~ msgstr "sound when attended transfer is complete"
@@ -247,8 +247,8 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Authentication Application"
-#~ msgid "Make sure asterisk doesnt save CDR"
-#~ msgstr "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
+#~ msgstr "Make sure asterisk doesn't save CDR"
#~ msgid "Check if channel is available"
#~ msgstr "Check if channel is available"
@@ -298,8 +298,8 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "External IVR application interface"
-#~ msgid "Fork The CDR into 2 seperate entities"
-#~ msgstr "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
+#~ msgstr "Fork The CDR into 2 separate entities"
#~ msgid "Get ADSI CPE ID"
#~ msgstr "Get ADSI CPE ID"
diff --git a/applications/luci-app-asterisk/po/es/asterisk.po b/applications/luci-app-asterisk/po/es/asterisk.po
index 8e2fe1e307..f42ddb4fd5 100644
--- a/applications/luci-app-asterisk/po/es/asterisk.po
+++ b/applications/luci-app-asterisk/po/es/asterisk.po
@@ -188,7 +188,7 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Extensión de Pickup"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Segundos de espera entre digitos mientras se transfiere"
#~ msgid "sound when attended transfer is complete"
@@ -248,7 +248,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Aplicación de autenticación"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "Asegúrate que asterisk no graba CDR"
#~ msgid "Check if channel is available"
@@ -296,7 +296,7 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "Interfaz de aplicación IVR externa"
-#~ msgid "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
#~ msgstr "Bifurcar el CDR en 2 entidades separadas"
#~ msgid "Get ADSI CPE ID"
diff --git a/applications/luci-app-asterisk/po/fr/asterisk.po b/applications/luci-app-asterisk/po/fr/asterisk.po
index 75c1d38e43..63d085a1af 100644
--- a/applications/luci-app-asterisk/po/fr/asterisk.po
+++ b/applications/luci-app-asterisk/po/fr/asterisk.po
@@ -158,7 +158,7 @@ msgstr ""
#~ msgid "Parking time (secs)"
#~ msgstr "Durée de mise en parking (secondes)"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Attente en secondes entre les chiffres Lors d'un transfert"
#~ msgid "sound when attended transfer is complete"
@@ -218,7 +218,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Application d'authentification"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "S'assure qu'Asterisk ne sauve pas le CDR"
#~ msgid "Check if channel is available"
@@ -254,7 +254,7 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "Interface d'application SVI externe"
-#~ msgid "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
#~ msgstr "Dupliquer le CDR en deux entités séparées"
#~ msgid "Get ADSI CPE ID"
diff --git a/applications/luci-app-asterisk/po/it/asterisk.po b/applications/luci-app-asterisk/po/it/asterisk.po
index 9eb24da5d1..f2aa51e96f 100644
--- a/applications/luci-app-asterisk/po/it/asterisk.po
+++ b/applications/luci-app-asterisk/po/it/asterisk.po
@@ -125,7 +125,7 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Estensione Pickup"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Secondi di attesa tra le cifre per il trasferimento"
#~ msgid "Sound when attended transfer fails"
diff --git a/applications/luci-app-asterisk/po/ms/asterisk.po b/applications/luci-app-asterisk/po/ms/asterisk.po
index e1260e1ba5..d4b6baac90 100644
--- a/applications/luci-app-asterisk/po/ms/asterisk.po
+++ b/applications/luci-app-asterisk/po/ms/asterisk.po
@@ -196,7 +196,7 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Angkat sambungan"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Detik untuk menunggu antara nombor ketika memindahkan"
#~ msgid "sound when attended transfer is complete"
@@ -256,7 +256,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Pengesahan Aplikasi"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "Membuat asterisk yakin tidak menyimpan CDR"
#~ msgid "Check if channel is available"
@@ -307,7 +307,7 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "IVR aplikasi antara muka luaran"
-#~ msgid "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
#~ msgstr "CDR garpu menjadi 2 entiti yang berasingan"
#~ msgid "Get ADSI CPE ID"
diff --git a/applications/luci-app-asterisk/po/pt-br/asterisk.po b/applications/luci-app-asterisk/po/pt-br/asterisk.po
index 07d7052809..00a0bb6431 100644
--- a/applications/luci-app-asterisk/po/pt-br/asterisk.po
+++ b/applications/luci-app-asterisk/po/pt-br/asterisk.po
@@ -194,7 +194,7 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Extensão de captura"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Segundos para esperar entre os dígitos quando transferindo"
#~ msgid "sound when attended transfer is complete"
@@ -254,7 +254,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Aplicativo de Autenticação"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "Garanta que o asterisk não salva o CDR"
#~ msgid "Check if channel is available"
@@ -305,7 +305,7 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "Interface de aplicativo IVR externo"
-#~ msgid "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
#~ msgstr "Bifurcar o CDR em duas entidades separadas"
#~ msgid "Get ADSI CPE ID"
diff --git a/applications/luci-app-asterisk/po/ru/asterisk.po b/applications/luci-app-asterisk/po/ru/asterisk.po
index acedb82e60..d27ba33d7c 100644
--- a/applications/luci-app-asterisk/po/ru/asterisk.po
+++ b/applications/luci-app-asterisk/po/ru/asterisk.po
@@ -197,7 +197,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Приложение аутентификации"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "Убедитесь что Asterisk не сохраняет CDR"
#~ msgid "Check if channel is available"
diff --git a/applications/luci-app-asterisk/po/vi/asterisk.po b/applications/luci-app-asterisk/po/vi/asterisk.po
index d1cc6b255f..133f864abb 100644
--- a/applications/luci-app-asterisk/po/vi/asterisk.po
+++ b/applications/luci-app-asterisk/po/vi/asterisk.po
@@ -187,7 +187,7 @@ msgstr ""
#~ msgid "Pickup extension"
#~ msgstr "Pickup extension"
-#~ msgid "Seconds to wait bewteen digits when transferring"
+#~ msgid "Seconds to wait between digits when transferring"
#~ msgstr "Thời gian chờ giữa những chữ số khi chuyển đổi"
#~ msgid "sound when attended transfer is complete"
@@ -247,7 +247,7 @@ msgstr ""
#~ msgid "Authentication Application"
#~ msgstr "Ứng dụng xác thực"
-#~ msgid "Make sure asterisk doesnt save CDR"
+#~ msgid "Make sure asterisk doesn't save CDR"
#~ msgstr "Bảo đảm asterisk không lưu CDR"
#~ msgid "Check if channel is available"
@@ -298,7 +298,7 @@ msgstr ""
#~ msgid "External IVR application interface"
#~ msgstr "Ứng dụng giao diện bên ngoài IVR"
-#~ msgid "Fork The CDR into 2 seperate entities"
+#~ msgid "Fork The CDR into 2 separate entities"
#~ msgstr "Fork The CDR into 2 nhân riêng biệt"
#~ msgid "Get ADSI CPE ID"
diff --git a/applications/luci-app-coovachilli/po/ca/coovachilli.po b/applications/luci-app-coovachilli/po/ca/coovachilli.po
index 085d9917d6..4970a1270e 100644
--- a/applications/luci-app-coovachilli/po/ca/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/ca/coovachilli.po
@@ -449,7 +449,7 @@ msgstr "Autenticació UAM i MAC"
#~ msgstr "Fitxers d'usuaris local"
#~ msgid ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgstr ""
#~ "Un fitxer contenint usuaris i contrasenyes separats per punts d'usuaris "
@@ -604,7 +604,7 @@ msgstr "Autenticació UAM i MAC"
#~ msgid ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgstr ""
#~ "Executable per executar com un programa de tipus CGI (com el haserl) per "
#~ "URLs amb extensió .chi"
diff --git a/applications/luci-app-coovachilli/po/cs/coovachilli.po b/applications/luci-app-coovachilli/po/cs/coovachilli.po
index 0dc5fc0cd3..bc7ef7a584 100644
--- a/applications/luci-app-coovachilli/po/cs/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/cs/coovachilli.po
@@ -225,7 +225,7 @@ msgstr "UAM a MAC ověřování"
#~ msgstr "Soubor s místními uživateli"
#~ msgid ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgstr ""
#~ "Soubor, obsahující uživatelská jména a hesla místně ověřovaných "
diff --git a/applications/luci-app-coovachilli/po/de/coovachilli.po b/applications/luci-app-coovachilli/po/de/coovachilli.po
index d8322db3ef..79955d7ba5 100644
--- a/applications/luci-app-coovachilli/po/de/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/de/coovachilli.po
@@ -454,7 +454,7 @@ msgstr "UAM- und MAC-Authentifizierung"
#, fuzzy
#~ msgid ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgstr "Netzwerk/TUN Konfiguration"
@@ -598,7 +598,7 @@ msgstr "UAM- und MAC-Authentifizierung"
#, fuzzy
#~ msgid ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgstr "Netzwerk/TUN Konfiguration"
#, fuzzy
diff --git a/applications/luci-app-coovachilli/po/en/coovachilli.po b/applications/luci-app-coovachilli/po/en/coovachilli.po
index ebaa3452b2..6d7c747a55 100644
--- a/applications/luci-app-coovachilli/po/en/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/en/coovachilli.po
@@ -436,10 +436,10 @@ msgstr ""
#~ msgstr "Local users file"
#~ msgid ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgstr ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgid "Location name"
@@ -588,10 +588,10 @@ msgstr ""
#~ msgid ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgstr ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgid "Web content directory"
#~ msgstr "Web content directory"
diff --git a/applications/luci-app-coovachilli/po/pt-br/coovachilli.po b/applications/luci-app-coovachilli/po/pt-br/coovachilli.po
index 9c219812fb..46ed3581b0 100644
--- a/applications/luci-app-coovachilli/po/pt-br/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/pt-br/coovachilli.po
@@ -445,7 +445,7 @@ msgstr "Autenticação UAM e MAC"
#~ msgstr "Arquivo de usuários locais"
#~ msgid ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgstr ""
#~ "Um arquivo separado por dois pontos (:) contendo o nome de usuário e "
@@ -602,7 +602,7 @@ msgstr "Autenticação UAM e MAC"
#~ msgid ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgstr ""
#~ "Executável para rodar como um programa do tipo CGI (como o haserl) para "
#~ "URLs com a extensão .chi"
diff --git a/applications/luci-app-coovachilli/po/pt/coovachilli.po b/applications/luci-app-coovachilli/po/pt/coovachilli.po
index 115ae03ae0..c2cccc31ae 100644
--- a/applications/luci-app-coovachilli/po/pt/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/pt/coovachilli.po
@@ -350,7 +350,7 @@ msgstr "Autenticação UAM e MAC"
#, fuzzy
#~ msgid ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgstr ""
#~ "Usado para informar o cliente sobre o dominio a utilizar para pedidos DNS"
diff --git a/applications/luci-app-coovachilli/po/ru/coovachilli.po b/applications/luci-app-coovachilli/po/ru/coovachilli.po
index 379ff7eaa6..3420e24f70 100644
--- a/applications/luci-app-coovachilli/po/ru/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/ru/coovachilli.po
@@ -387,7 +387,7 @@ msgstr "Аутентификация с помощью UAM и MAC"
#~ msgstr "Локальный файл пользователей"
#~ msgid ""
-#~ "A colon seperated file containing usernames and passwords of locally "
+#~ "A colon separated file containing usernames and passwords of locally "
#~ "authenticated users"
#~ msgstr ""
#~ "Файл, содержащий логины и пароли локально авторизованных пользователей "
diff --git a/applications/luci-app-coovachilli/po/vi/coovachilli.po b/applications/luci-app-coovachilli/po/vi/coovachilli.po
index 66abf0dc6c..dc27f8b7a2 100644
--- a/applications/luci-app-coovachilli/po/vi/coovachilli.po
+++ b/applications/luci-app-coovachilli/po/vi/coovachilli.po
@@ -551,7 +551,7 @@ msgstr ""
#, fuzzy
#~ msgid ""
#~ "Executable to run as a CGI type program (like haserl) for URLs with "
-#~ "extention .chi"
+#~ "extension .chi"
#~ msgstr "Thống nhất cấu hình phương pháp cài đặt"
#, fuzzy
diff --git a/applications/luci-app-ddns/Makefile b/applications/luci-app-ddns/Makefile
index 146560efac..88c905a41a 100644
--- a/applications/luci-app-ddns/Makefile
+++ b/applications/luci-app-ddns/Makefile
@@ -1,16 +1,18 @@
#
-# Copyright (C) 2008-2016 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
+# Copyright 2008 Steven Barth <steven@midlink.org>
+# Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
+# Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
+# Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
#
+# This is free software, licensed under the Apache License, Version 2.0
include $(TOPDIR)/rules.mk
-PKG_NAME:=luci-app-ddns
+# PKG_NAME:=luci-app-ddns
# Version == major.minor.patch
# increase on new functionality (minor) or patches (patch)
-PKG_VERSION:=2.4.1
+PKG_VERSION:=2.4.8
# Release == build
# increase on changes of translation files
@@ -22,15 +24,13 @@ PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
# LuCI specific settings
LUCI_TITLE:=LuCI Support for Dynamic DNS Client (ddns-scripts)
LUCI_DEPENDS:=+luci-mod-admin-full +ddns-scripts
-LUCI_PKGARCH:=all
+# LUCI_PKGARCH:=all
define Package/$(PKG_NAME)/config
# shown in make menuconfig <Help>
help
$(LUCI_TITLE)
- .
Version: $(PKG_VERSION)-$(PKG_RELEASE)
- $(PKG_MAINTAINER)
endef
include ../../luci.mk
diff --git a/applications/luci-app-ddns/luasrc/controller/ddns.lua b/applications/luci-app-ddns/luasrc/controller/ddns.lua
index 7cfbc56a0b..63bb8bf4be 100755
--- a/applications/luci-app-ddns/luasrc/controller/ddns.lua
+++ b/applications/luci-app-ddns/luasrc/controller/ddns.lua
@@ -17,12 +17,14 @@ local UCI = require "luci.model.uci"
local UTIL = require "luci.util"
local DDNS = require "luci.tools.ddns" -- ddns multiused functions
+luci_helper = "/usr/lib/ddns/dynamic_dns_lucihelper.sh"
+
local srv_name = "ddns-scripts"
-local srv_ver_min = "2.6.0" -- minimum version of service required
-local srv_ver_cmd = [[/usr/lib/ddns/dynamic_dns_updater.sh --version | awk {'print $2'}]]
+local srv_ver_min = "2.7.6" -- minimum version of service required
+local srv_ver_cmd = luci_helper .. [[ -V | awk {'print $2'}]]
local app_name = "luci-app-ddns"
local app_title = "Dynamic DNS"
-local app_version = "2.4.1-1"
+local app_version = "2.4.8-1"
function index()
local nxfs = require "nixio.fs" -- global definitions not available
@@ -96,14 +98,14 @@ function app_title_main()
end
function service_version()
local ver = nil
+
+ ver = UTIL.exec(srv_ver_cmd)
+ if #ver > 0 then return ver end
+
IPKG.list_installed(srv_name, function(n, v, d)
if v and (#v > 0) then ver = v end
end
)
- if not ver or (#ver == 0) then
- ver = UTIL.exec(srv_ver_cmd)
- if #ver == 0 then ver = nil end
- end
return ver
end
function service_ok()
@@ -190,9 +192,15 @@ local function _get_status()
local dnsserver = s["dns_server"] or ""
local force_ipversion = tonumber(s["force_ipversion"] or 0)
local force_dnstcp = tonumber(s["force_dnstcp"] or 0)
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh]]
- command = command .. [[ get_registered_ip ]] .. lookup_host .. [[ ]] .. use_ipv6 ..
- [[ ]] .. force_ipversion .. [[ ]] .. force_dnstcp .. [[ ]] .. dnsserver
+ local is_glue = tonumber(s["is_glue"] or 0)
+ local command = luci_helper .. [[ -]]
+ if (use_ipv6 == 1) then command = command .. [[6]] end
+ if (force_ipversion == 1) then command = command .. [[f]] end
+ if (force_dnstcp == 1) then command = command .. [[t]] end
+ if (is_glue == 1) then command = command .. [[g]] end
+ command = command .. [[l ]] .. lookup_host
+ if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
+ command = command .. [[ -- get_registered_ip]]
local reg_ip = SYS.exec(command)
if reg_ip == "" then
reg_ip = "_nodata_"
@@ -219,8 +227,8 @@ end
function logread(section)
-- read application settings
local uci = UCI.cursor()
- local log_dir = uci:get("ddns", "global", "log_dir") or "/var/log/ddns"
- local lfile = log_dir .. "/" .. section .. ".log"
+ local ldir = uci:get("ddns", "global", "ddns_logdir") or "/var/log/ddns"
+ local lfile = ldir .. "/" .. section .. ".log"
local ldata = NXFS.readfile(lfile)
if not ldata or #ldata == 0 then
@@ -287,8 +295,9 @@ function startstop(section, enabled)
uci:commit("ddns")
uci:unload("ddns")
- -- start dynamic_dns_updater.sh script
- os.execute ([[/usr/lib/ddns/dynamic_dns_updater.sh %s 0 > /dev/null 2>&1 &]] % section)
+ -- start ddns-updater for section
+ local command = luci_helper .. [[ -S ]] .. section .. [[ -- start]]
+ os.execute(command)
NX.nanosleep(3) -- 3 seconds "show time"
-- status changed so return full status
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 c924e845c2..a8f4cbf7ad 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua
@@ -58,7 +58,7 @@ end
-- read services/services_ipv6 files -- ########################################
local services4 = { } -- IPv4 --
-local fd4 = io.open("/usr/lib/ddns/services", "r")
+local fd4 = io.open("/etc/ddns/services", "r")
if fd4 then
local ln, s, t
repeat
@@ -72,7 +72,7 @@ if fd4 then
end
local services6 = { } -- IPv6 --
-local fd6 = io.open("/usr/lib/ddns/services_ipv6", "r")
+local fd6 = io.open("/etc/ddns/services_ipv6", "r")
if fd6 then
local ln, s, t
repeat
@@ -91,35 +91,38 @@ end
-- local IP can be read
local function _verify_ip_source()
-- section is globally defined here be calling agrument (see above)
- local _network = "-"
- local _url = "-"
- local _interface = "-"
- local _script = "-"
- local _proxy = ""
+ local _arg
local _ipv6 = usev6:formvalue(section)
local _source = (_ipv6 == "1")
and src6:formvalue(section)
or src4:formvalue(section)
+
+ local command = CTRL.luci_helper .. [[ -]]
+ if (_ipv6 == "1") then command = command .. [[6]] end
+
if _source == "network" then
- _network = (_ipv6 == "1")
+ _arg = (_ipv6 == "1")
and ipn6:formvalue(section)
or ipn4:formvalue(section)
+ command = command .. [[n ]] .. _arg
elseif _source == "web" then
- _url = (_ipv6 == "1")
+ _arg = (_ipv6 == "1")
and iurl6:formvalue(section)
or iurl4:formvalue(section)
+ command = command .. [[u ]] .. _arg
+
-- proxy only needed for checking url
- _proxy = (pxy) and pxy:formvalue(section) or ""
+ _arg = (pxy) and pxy:formvalue(section) or ""
+ if (_arg and #_arg > 0) then
+ command = command .. [[ -p ]] .. _arg
+ end
elseif _source == "interface" then
- _interface = ipi:formvalue(section)
+ command = command .. [[i ]] .. ipi:formvalue(section)
elseif _source == "script" then
- _script = ips:formvalue(section)
+ command = command .. [[s ]] .. ips:formvalue(section)
end
-
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh get_local_ip ]] ..
- _ipv6 .. [[ ]] .. _source .. [[ ]] .. _network .. [[ ]] ..
- _url .. [[ ]] .. _interface .. [[ ']] .. _script.. [[' ]] .. _proxy
+ command = command .. [[ -- get_local_ip]]
return (SYS.call(command) == 0)
end
@@ -248,10 +251,8 @@ if m:formvalue("cbid.ddns.%s._switch" % section) then -- section == arg[1]
end
-- read application settings -- ################################################
--- date format; if not set use ISO format
-local date_format = m.uci:get(m.config, "global", "date_format") or "%F %R"
-- log directory
-local log_dir = m.uci:get(m.config, "global", "log_dir") or "/var/log/ddns"
+local logdir = m.uci:get(m.config, "global", "ddns_logdir") or "/var/log/ddns"
-- cbi-section definition -- ###################################################
local ns = m:section( NamedSection, section, "service",
@@ -335,7 +336,7 @@ function svc4.validate(self, value)
if usev6:formvalue(section) ~= "1" then -- do only on IPv4
return value
else
- return "" -- supress validate error
+ return "" -- suppress validate error
end
end
function svc4.write(self, section, value)
@@ -376,7 +377,7 @@ function svc6.validate(self, value)
if DDNS.has_ipv6 then return value end
return nil, err_tab_basic(self) .. err_ipv6_plain
else
- return "" -- supress validate error
+ return "" -- suppress validate error
end
end
function svc6.write(self, section, value)
@@ -626,7 +627,7 @@ if DDNS.has_ssl then
cert.forcewrite = true
function cert.validate(self, value)
if https:formvalue(section) ~= "1" then
- return "" -- supress validate error if NOT https
+ return "" -- suppress validate error if NOT https
end
if value then -- otherwise errors in datatype check
if DTYP.directory(value)
@@ -1086,7 +1087,7 @@ function eif6.parse(self, section, novld)
end
-- IPv4/IPv6 - bind_network -- ################################################
-if DDNS.has_bindnet or ( ( m:get(section, "bind_network") ) ~= "" ) then
+if DDNS.has_bindnet or ( ( m:get(section, "bind_network") or "" ) ~= "" ) then
bnet = ns:taboption("advanced", ListValue, "bind_network",
translate("Bind Network") )
bnet:depends("ipv4_source", "web")
@@ -1158,8 +1159,11 @@ if DDNS.has_dnsserver or ( ( m:get(section, "dns_server") or "" ) ~= "" ) then
else
local ipv6 = usev6:formvalue(section) or "0"
local force = fipv:formvalue(section) or "0"
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh verify_dns ]] ..
- value .. [[ ]] .. ipv6 .. [[ ]] .. force
+ local command = CTRL.luci_helper .. [[ -]]
+ if (ipv6 == 1) then command = command .. [[6]] end
+ if (force == 1) then command = command .. [[f]] end
+ command = command .. [[d ]] .. value .. [[ -- verify_dns]]
+
local ret = SYS.call(command)
if ret == 0 then return value -- everything OK
elseif ret == 2 then return nil, err_tab_adv(self) .. translate("nslookup can not resolve host")
@@ -1225,8 +1229,10 @@ if DDNS.has_proxy or ( ( m:get(section, "proxy") or "" ) ~= "" ) then
elseif DDNS.has_proxy then
local ipv6 = usev6:formvalue(section) or "0"
local force = fipv:formvalue(section) or "0"
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh verify_proxy ]] ..
- value .. [[ ]] .. ipv6 .. [[ ]] .. force
+ local command = CRTL.luci_helper .. [[ -]]
+ if (ipv6 == 1) then command = command .. [[6]] end
+ if (force == 1) then command = command .. [[f]] end
+ command = command .. [[p ]] .. value .. [[ -- verify_proxy]]
local ret = SYS.call(command)
if ret == 0 then return value
elseif ret == 2 then return nil, err_tab_adv(self) .. translate("nslookup can not resolve host")
@@ -1262,7 +1268,7 @@ end
logf = ns:taboption("advanced", Flag, "use_logfile",
translate("Log to file"),
translate("Writes detailed messages to log file. File will be truncated automatically.") .. "<br />" ..
- translate("File") .. [[: "]] .. log_dir .. [[/]] .. section .. [[.log"]] )
+ translate("File") .. [[: "]] .. logdir .. [[/]] .. section .. [[.log"]] )
logf.orientation = "horizontal"
logf.default = "1" -- if not defined write to log by default
@@ -1464,7 +1470,7 @@ lv.template = "ddns/detail_logview"
lv.inputtitle = translate("Read / Reread log file")
lv.rows = 50
function lv.cfgvalue(self, section)
- local lfile=log_dir .. "/" .. section .. ".log"
+ local lfile=logdir .. "/" .. section .. ".log"
if NXFS.access(lfile) then
return lfile .. "\n" .. translate("Please press [Read] button")
end
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua
index 23ce4f13f7..9dc0857509 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/global.lua
@@ -16,7 +16,8 @@ m.redirect = DISP.build_url("admin", "services", "ddns")
function m.commit_handler(self)
if self.changed then -- changes ?
- os.execute("/etc/init.d/ddns reload &") -- reload configuration
+ local command = CTRL.luci_helper .. " -- reload"
+ os.execute(command) -- reload configuration
end
end
@@ -40,8 +41,8 @@ function ns.cfgvalue(self, section)
return self.map:get(section)
end
--- allow_local_ip -- ##########################################################
-local ali = ns:option(Flag, "allow_local_ip")
+-- upd_privateip -- ###########################################################
+local ali = ns:option(Flag, "upd_privateip")
ali.title = translate("Allow non-public IP's")
ali.description = translate("Non-public and by default blocked IP's") .. ":"
.. [[<br /><strong>IPv4: </strong>]]
@@ -50,8 +51,8 @@ ali.description = translate("Non-public and by default blocked IP's") .. ":"
.. "::/32, f000::/4"
ali.default = "0"
--- date_format -- #############################################################
-local df = ns:option(Value, "date_format")
+-- ddns_dateformat -- #########################################################
+local df = ns:option(Value, "ddns_dateformat")
df.title = translate("Date format")
df.description = [[<a href="http://www.cplusplus.com/reference/ctime/strftime/" target="_blank">]]
.. translate("For supported codes look here")
@@ -69,8 +70,8 @@ function df.parse(self, section, novld)
DDNS.value_parse(self, section, novld)
end
--- run_dir -- #################################################################
-local rd = ns:option(Value, "run_dir")
+-- ddns_rundir -- #############################################################
+local rd = ns:option(Value, "ddns_rundir")
rd.title = translate("Status directory")
rd.description = translate("Directory contains PID and other status information for each running section")
rd.default = "/var/run/ddns"
@@ -79,8 +80,8 @@ function rd.parse(self, section, novld)
DDNS.value_parse(self, section, novld)
end
--- log_dir -- #################################################################
-local ld = ns:option(Value, "log_dir")
+-- ddns_logdir -- #############################################################
+local ld = ns:option(Value, "ddns_logdir")
ld.title = translate("Log directory")
ld.description = translate("Directory contains Log files for each running section")
ld.default = "/var/log/ddns"
@@ -89,8 +90,8 @@ function ld.parse(self, section, novld)
DDNS.value_parse(self, section, novld)
end
--- log_lines -- ###############################################################
-local ll = ns:option(Value, "log_lines")
+-- ddns_loglines -- ###########################################################
+local ll = ns:option(Value, "ddns_loglines")
ll.title = translate("Log length")
ll.description = translate("Number of last lines stored in log files")
ll.default = "250"
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
index 335bb01b2d..df39a3a7e5 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua
@@ -24,7 +24,7 @@ s = m:section( SimpleSection,
translate("Hints"),
translate("Below a list of configuration tips for your system to run Dynamic DNS updates without limitations") )
--- ddns_scripts needs to be updated for full functionality
+-- ddns-scripts needs to be updated for full functionality
if not CTRL.service_ok() then
local so = s:option(DummyValue, "_update_needed")
so.titleref = DISP.build_url("admin", "system", "packages")
@@ -66,9 +66,9 @@ if not DDNS.has_ssl then
sl.rawhtml = true
sl.title = bold_on ..
translate("HTTPS not supported") .. bold_off
- sl.value = translate("Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS protocol.") ..
+ sl.value = translate("Neither GNU Wget with SSL nor cURL installed to support secure updates via HTTPS protocol.") ..
"<br />- " ..
- translate("You should install GNU Wget with SSL (prefered) or cURL package.") ..
+ translate("You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-*ssl' package.") ..
"<br />- " ..
translate("In some versions cURL/libcurl in OpenWrt is compiled without proxy support.")
end
@@ -82,7 +82,7 @@ if not DDNS.has_bindnet then
translate("Binding to a specific network not supported") .. bold_off
bn.value = translate("Neither GNU Wget with SSL nor cURL installed to select a network to use for communication.") ..
"<br />- " ..
- translate("You should install GNU Wget with SSL or cURL package.") ..
+ translate("You should install 'wget' or 'curl' package.") ..
"<br />- " ..
translate("GNU Wget will use the IP of given network, cURL will use the physical interface.") ..
"<br />- " ..
@@ -98,7 +98,7 @@ if not DDNS.has_proxy then
translate("cURL without Proxy Support") .. bold_off
px.value = translate("cURL is installed, but libcurl was compiled without proxy support.") ..
"<br />- " ..
- translate("You should install GNU Wget with SSL or replace libcurl.") ..
+ translate("You should install 'wget' or 'uclient-fetch' package or replace libcurl.") ..
"<br />- " ..
translate("In some versions cURL/libcurl in OpenWrt is compiled without proxy support.")
end
@@ -112,13 +112,13 @@ if not DDNS.has_forceip then
translate("Force IP Version not supported") .. bold_off
local value = translate("BusyBox's nslookup and Wget do not support to specify " ..
"the IP version to use for communication with DDNS Provider!")
- if not (DDNS.has_wgetssl or DDNS.has_curl) then
+ if not (DDNS.has_wgetssl or DDNS.has_curl or DDNS.has_fetch) then
value = value .. "<br />- " ..
- translate("You should install GNU Wget with SSL (prefered) or cURL package.")
+ translate("You should install 'wget' or 'curl' or 'uclient-fetch' package.")
end
- if not (DDNS.has_bindhost or DDNS.has_hostip) then
+ if not DDNS.has_bindhost then
value = value .. "<br />- " ..
- translate("You should install BIND host or hostip package for DNS requests.")
+ translate("You should install 'bind-host' or 'knot-host' or 'drill' package for DNS requests.")
end
fi.value = value
end
@@ -133,7 +133,7 @@ if not DDNS.has_bindhost then
dt.value = translate("BusyBox's nslookup and hostip do not support to specify to use TCP " ..
"instead of default UDP when requesting DNS server!") ..
"<br />- " ..
- translate("You should install BIND host package for DNS requests.")
+ translate("You should install 'bind-host' or 'knot-host' or 'drill' package for DNS requests.")
end
-- nslookup compiled with musl produce problems when using
@@ -146,7 +146,7 @@ if not DDNS.has_dnsserver then
ds.value = translate("BusyBox's nslookup in the current compiled version " ..
"does not handle given DNS Servers correctly!") ..
"<br />- " ..
- translate("You should install BIND host or hostip package, " ..
+ translate("You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' package, " ..
"if you need to specify a DNS server to detect your registered IP.")
end
@@ -159,7 +159,7 @@ if DDNS.has_ssl and not DDNS.has_cacerts then
translate("No certificates found") .. bold_off
ca.value = translate("If using secure communication you should verify server certificates!") ..
"<br />- " ..
- translate("Install ca-certificates package or needed certificates " ..
+ translate("Install 'ca-certificates' package or needed certificates " ..
"by hand into /etc/ssl/certs default directory")
end
diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
index e6da7cc188..6ba3ea0dd8 100644
--- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
+++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua
@@ -33,15 +33,18 @@ m.description = CTRL.app_description()
m.on_after_commit = function(self)
if self.changed then -- changes ?
+ local command = CTRL.luci_helper
if SYS.init.enabled("ddns") then -- ddns service enabled, restart all
- os.execute("/etc/init.d/ddns restart")
+ command = command .. " -- restart"
+ os.execute(command)
else -- ddns service disabled, send SIGHUP to running
- os.execute("killall -1 dynamic_dns_updater.sh")
+ command = command .. " -- reload"
+ os.execute(command)
end
end
end
--- SimpleSection definiton -- ##################################################
+-- SimpleSection definition -- ##################################################
-- with all the JavaScripts we need for "a good Show"
a = m:section( SimpleSection )
a.template = "ddns/overview_status"
@@ -52,7 +55,7 @@ if show_hints or need_update or not_enabled then
s = m:section( SimpleSection, translate("Hints") )
- -- ddns_scripts needs to be updated for full functionality
+ -- ddns-scripts needs to be updated for full functionality
if need_update then
local dv = s:option(DummyValue, "_update_needed")
dv.titleref = DISP.build_url("admin", "system", "packages")
@@ -119,18 +122,21 @@ function dom.set_one(self, section)
end
end
function dom.set_two(self, section)
- local lookup = self.map:get(section, "lookup_host") or ""
- if lookup == "" then return "" end
+ local lookup_host = self.map:get(section, "lookup_host") or ""
+ if lookup_host == "" then return "" end
local dnsserver = self.map:get(section, "dnsserver") or ""
local use_ipv6 = tonumber(self.map:get(section, "use_ipv6") or 0)
local force_ipversion = tonumber(self.map:get(section, "force_ipversion") or 0)
local force_dnstcp = tonumber(self.map:get(section, "force_dnstcp") or 0)
- local command = [[/usr/lib/ddns/dynamic_dns_lucihelper.sh]]
- if not NXFS.access(command, "rwx", "rx", "rx") then
- NXFS.chmod(command, 755)
- end
- command = command .. [[ get_registered_ip ]] .. lookup .. [[ ]] .. use_ipv6 ..
- [[ ]] .. force_ipversion .. [[ ]] .. force_dnstcp .. [[ ]] .. dnsserver
+ local is_glue = tonumber(self.map:get(section, "is_glue") or 0)
+ local command = CTRL.luci_helper .. [[ -]]
+ if (use_ipv6 == 1) then command = command .. [[6]] end
+ if (force_ipversion == 1) then command = command .. [[f]] end
+ if (force_dnstcp == 1) then command = command .. [[t]] end
+ if (is_glue == 1) then command = command .. [[g]] end
+ command = command .. [[l ]] .. lookup_host
+ if (#dnsserver > 0) then command = command .. [[ -d ]] .. dnsserver end
+ command = command .. [[ -- get_registered_ip]]
local ip = SYS.exec(command)
if ip == "" then ip = translate("no data") end
return ip
diff --git a/applications/luci-app-ddns/luasrc/tools/ddns.lua b/applications/luci-app-ddns/luasrc/tools/ddns.lua
index 54791432b3..209d9c3a41 100755
--- a/applications/luci-app-ddns/luasrc/tools/ddns.lua
+++ b/applications/luci-app-ddns/luasrc/tools/ddns.lua
@@ -24,12 +24,14 @@ has_fetch = (SYS.call( [[which uclient-fetch >/dev/null 2>&1]] ) == 0)
has_fetchssl = NXFS.access("/lib/libustream-ssl.so")
has_bbwget = (SYS.call( [[$(which wget) -V 2>&1 | grep -iqF "busybox"]] ) == 0)
has_bindhost = (SYS.call( [[which host >/dev/null 2>&1]] ) == 0)
+ or (SYS.call( [[which khost >/dev/null 2>&1]] ) == 0)
+ or (SYS.call( [[which drill >/dev/null 2>&1]] ) == 0)
has_hostip = (SYS.call( [[which hostip >/dev/null 2>&1]] ) == 0)
has_nslookup = (SYS.call( [[$(which nslookup) localhost 2>&1 | grep -qF "(null)"]] ) ~= 0)
has_ipv6 = (NXFS.access("/proc/net/ipv6_route") and NXFS.access("/usr/sbin/ip6tables"))
has_ssl = (has_wgetssl or has_curlssl or (has_fetch and has_fetchssl))
has_proxy = (has_wgetssl or has_curlpxy or has_fetch or has_bbwget)
-has_forceip = ((has_wgetssl or has_curl) and (has_bindhost or has_hostip))
+has_forceip = (has_wgetssl or has_curl or has_fetch) -- only really needed for transfer
has_dnsserver = (has_bindhost or has_hostip or has_nslookup)
has_bindnet = (has_wgetssl or has_curl)
has_cacerts = _check_certs()
@@ -55,7 +57,7 @@ end
function epoch2date(epoch, format)
if not format or #format < 2 then
local uci = UCI.cursor()
- format = uci:get("ddns", "global", "date_format") or "%F %R"
+ format = uci:get("ddns", "global", "ddns_dateformat") or "%F %R"
uci:unload("ddns")
end
format = format:gsub("%%n", "<br />") -- replace newline
@@ -65,18 +67,18 @@ end
-- read lastupdate from [section].update file
function get_lastupd(section)
- local uci = UCI.cursor()
- local run_dir = uci:get("ddns", "global", "run_dir") or "/var/run/ddns"
- local etime = tonumber(NXFS.readfile("%s/%s.update" % { run_dir, section } ) or 0 )
+ local uci = UCI.cursor()
+ local rdir = uci:get("ddns", "global", "ddns_rundir") or "/var/run/ddns"
+ local etime = tonumber(NXFS.readfile("%s/%s.update" % { rdir, section } ) or 0 )
uci:unload("ddns")
return etime
end
-- read PID from run file and verify if still running
function get_pid(section)
- local uci = UCI.cursor()
- local run_dir = uci:get("ddns", "global", "run_dir") or "/var/run/ddns"
- local pid = tonumber(NXFS.readfile("%s/%s.pid" % { run_dir, section } ) or 0 )
+ local uci = UCI.cursor()
+ local rdir = uci:get("ddns", "global", "ddns_rundir") or "/var/run/ddns"
+ local pid = tonumber(NXFS.readfile("%s/%s.pid" % { rdir, section } ) or 0 )
if pid > 0 and not NX.kill(pid, 0) then
pid = 0
end
diff --git a/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm b/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
index 159cb60147..23ec059170 100644
--- a/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
+++ b/applications/luci-app-ddns/luasrc/view/ddns/global_value.htm
@@ -4,7 +4,7 @@
<script type="text/javascript">//<![CDATA[
// event handler on changed date
function onkeyup_date(value) {
- var obj = document.getElementById("cbid.ddns.global.date_format.help");
+ var obj = document.getElementById("cbid.ddns.global.ddns_dateformat.help");
if ( !obj ) { return; } // security check
if ( value == "" || value.length == 0 ) { value = "%F %R"; }
diff --git a/applications/luci-app-ddns/po/ca/ddns.po b/applications/luci-app-ddns/po/ca/ddns.po
index e38a593600..69be6ed8b1 100644
--- a/applications/luci-app-ddns/po/ca/ddns.po
+++ b/applications/luci-app-ddns/po/ca/ddns.po
@@ -315,8 +315,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -369,8 +369,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -587,24 +587,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/cs/ddns.po b/applications/luci-app-ddns/po/cs/ddns.po
index fe371fefaf..2366f629b1 100644
--- a/applications/luci-app-ddns/po/cs/ddns.po
+++ b/applications/luci-app-ddns/po/cs/ddns.po
@@ -313,8 +313,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -367,8 +367,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -585,24 +585,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/de/ddns.po b/applications/luci-app-ddns/po/de/ddns.po
index 065f22c746..39c1fdc831 100644
--- a/applications/luci-app-ddns/po/de/ddns.po
+++ b/applications/luci-app-ddns/po/de/ddns.po
@@ -1,15 +1,15 @@
msgid ""
msgstr ""
-"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
-"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2016-01-30 11:07+0100\n"
-"Last-Translator: Christian Schoenebeck <christian.schoenebeck@gmail.com>\n"
+"Project-Id-Version: luci-app-ddns 2.4.2-1\n"
+"POT-Creation-Date: 2016-09-25 10:43+0200\n"
+"PO-Revision-Date: 2016-09-25 10:43+0200\n"
+"Last-Translator: Christian Schönebeck <christian.schoenebeck@gmail.com>\n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.4\n"
+"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-Basepath: .\n"
@@ -364,13 +364,13 @@ msgstr ""
"compiliert."
msgid "Info"
-msgstr "Informationen"
+msgstr "Info"
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
-"Installieren Sie das ca-certificate Paket oder die benötigten Zertifikate "
+"Installieren Sie das 'ca-certificates' Paket oder die benötigten Zertifikate "
"von Hand in das Standardverzeichnis /etc/ssl/certs"
msgid "Interface"
@@ -432,11 +432,11 @@ msgstr ""
"Kommunikation festzulegen."
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
-"Weder GNU Wget mit SSL noch cURL sind installiert um Aktualisierungen über "
-"HTTPS Protokoll zu unterstützen."
+"Weder GNU Wget mit SSL noch cURL sind installiert um sichere "
+"Aktualisierungen über HTTPS Protokoll zu unterstützen."
msgid "Network"
msgstr "Netzwerk"
@@ -642,7 +642,7 @@ msgid "Using specific DNS Server not supported"
msgstr "Verwendung spezifischer DNS-Server wird nicht unterstützt"
msgid "Verify"
-msgstr "überprüfen"
+msgstr "Überprüfen"
msgid "Version"
msgstr "Version"
@@ -669,34 +669,41 @@ msgstr ""
"Schreibt Meldungen ins Systemprotokoll. Kritische Fehler werden immer in das "
"Systemprotokoll geschrieben."
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
-"Sie sollten das Programmpakete BIND host oder hostip für DNS Anfragen "
-"installieren."
+"Sie sollten das Programmpakete 'bind-host' oder 'knot-host' oder 'drill' "
+"oder 'hostip' installieren, wenn Sie einen DNS Server angeben müssen um Ihre "
+"registrierte IP zu ermitteln."
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-"Sie sollten das BIND host oder hostIP Paket installieren, wenn Sie einen DNS-"
-"Server angeben müssen um Ihre registrierte IP zu ermitteln."
+"Sie sollten das Programmpakete 'bind-host' oder 'knot-host' oder 'drill' für "
+"DNS Anfragen installieren."
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-"Sie sollten das Programmpakete BIND host for DNS Anfragen installieren."
+"Sie sollten das Programmpaket 'wget' oder 'curl' oder 'uclient-fetch' "
+"installieren."
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-"Sie sollten das Programmpaket GNU Wget mit SSL (bevorzugt) oder cURL "
-"installieren."
+"Sie sollten das Programmpaket 'wget' oder 'curl' oder 'uclient-fetch' mit "
+"'libustream-*ssl' installieren."
-msgid "You should install GNU Wget with SSL or cURL package."
-msgstr "Sie sollten das Programmpaket GNU Wget mit SSL oder cURL installieren."
+msgid "You should install 'wget' or 'curl' package."
+msgstr "Sie sollten das Programmpaket 'wget' oder 'curl' installieren."
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
-"Sie sollten das Programmpaket GNU Wget mit SSL installieren oder libcurl "
-"austauschen."
+"Sie sollten das Programmpaket 'wget' oder 'uclient-fetch' installieren oder "
+"libcurl ersetzen."
msgid "cURL is installed, but libcurl was compiled without proxy support."
msgstr ""
diff --git a/applications/luci-app-ddns/po/el/ddns.po b/applications/luci-app-ddns/po/el/ddns.po
index 7d9eb03b5f..fce0cb8532 100644
--- a/applications/luci-app-ddns/po/el/ddns.po
+++ b/applications/luci-app-ddns/po/el/ddns.po
@@ -312,8 +312,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -366,8 +366,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -584,24 +584,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/es/ddns.po b/applications/luci-app-ddns/po/es/ddns.po
index dbdfad48cc..eb5a38576c 100644
--- a/applications/luci-app-ddns/po/es/ddns.po
+++ b/applications/luci-app-ddns/po/es/ddns.po
@@ -311,8 +311,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -365,8 +365,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -583,24 +583,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/fr/ddns.po b/applications/luci-app-ddns/po/fr/ddns.po
index 36dcb60290..2004989594 100644
--- a/applications/luci-app-ddns/po/fr/ddns.po
+++ b/applications/luci-app-ddns/po/fr/ddns.po
@@ -311,8 +311,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -365,8 +365,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -583,24 +583,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/he/ddns.po b/applications/luci-app-ddns/po/he/ddns.po
index edc53250ec..f6f2e2b843 100644
--- a/applications/luci-app-ddns/po/he/ddns.po
+++ b/applications/luci-app-ddns/po/he/ddns.po
@@ -312,8 +312,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -366,8 +366,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -584,24 +584,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/hu/ddns.po b/applications/luci-app-ddns/po/hu/ddns.po
index 279e1544c5..1f91fa176f 100644
--- a/applications/luci-app-ddns/po/hu/ddns.po
+++ b/applications/luci-app-ddns/po/hu/ddns.po
@@ -311,8 +311,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -365,8 +365,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -583,24 +583,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/it/ddns.po b/applications/luci-app-ddns/po/it/ddns.po
index a058394754..f59d053e71 100644
--- a/applications/luci-app-ddns/po/it/ddns.po
+++ b/applications/luci-app-ddns/po/it/ddns.po
@@ -311,8 +311,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -365,8 +365,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -583,24 +583,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/ja/ddns.po b/applications/luci-app-ddns/po/ja/ddns.po
index 46ab077053..8fe0180d42 100644
--- a/applications/luci-app-ddns/po/ja/ddns.po
+++ b/applications/luci-app-ddns/po/ja/ddns.po
@@ -311,8 +311,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -365,8 +365,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -583,24 +583,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/no/ddns.po b/applications/luci-app-ddns/po/no/ddns.po
index 5a2afaf1bf..a8efd0f8b5 100644
--- a/applications/luci-app-ddns/po/no/ddns.po
+++ b/applications/luci-app-ddns/po/no/ddns.po
@@ -310,8 +310,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -364,8 +364,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -582,24 +582,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/pl/ddns.po b/applications/luci-app-ddns/po/pl/ddns.po
index ad40f3b795..ade7982309 100644
--- a/applications/luci-app-ddns/po/pl/ddns.po
+++ b/applications/luci-app-ddns/po/pl/ddns.po
@@ -312,8 +312,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -366,8 +366,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -584,24 +584,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/pt-br/ddns.po b/applications/luci-app-ddns/po/pt-br/ddns.po
index fefbc01202..4970846516 100644
--- a/applications/luci-app-ddns/po/pt-br/ddns.po
+++ b/applications/luci-app-ddns/po/pt-br/ddns.po
@@ -2,180 +2,205 @@ msgid ""
msgstr ""
"Project-Id-Version: luci-app-ddns 2.4.0-1\n"
"POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2012-11-03 07:02+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
+"PO-Revision-Date: 2016-07-01 22:40-0300\n"
+"Last-Translator: Matheus Dal Mago <matheusdalmago10@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 1.8.4\n"
+"X-Generator: Poedit 1.8.8\n"
msgid "&"
-msgstr ""
+msgstr "&"
msgid "-- custom --"
-msgstr ""
+msgstr "-- personalizado --"
msgid "-- default --"
-msgstr ""
+msgstr "-- padrão --"
msgid "Advanced Settings"
-msgstr ""
+msgstr "Configurações Avançadas"
msgid "Allow non-public IP's"
-msgstr ""
+msgstr "Permitir IPs não-públicos"
msgid "Applying changes"
-msgstr ""
+msgstr "Aplicar mudanças"
msgid "Basic Settings"
-msgstr ""
+msgstr "Configurações Básicas"
msgid ""
"Below a list of configuration tips for your system to run Dynamic DNS "
"updates without limitations"
msgstr ""
+"Abaixo uma lista de dicas de configurações para seu sistema para rodar "
+"atualizações de DNS Dinâmico sem limitações"
msgid ""
"Below is a list of configured DDNS configurations and their current state."
msgstr ""
+"Abaixo uma lista de configurações DDNS configuradas e seus estados atuais"
msgid "Bind Network"
-msgstr ""
+msgstr "Limitar Rede"
msgid "Binding to a specific network not supported"
-msgstr ""
+msgstr "Não suportado limitar a uma rede específica"
msgid ""
"BusyBox's nslookup and Wget do not support to specify the IP version to use "
"for communication with DDNS Provider!"
msgstr ""
+"nslookup e Wget do BusyBox não suportam que especifique a versão de IP a ser "
+"usada para comunicação com o provedor DDNS!"
msgid ""
"BusyBox's nslookup and hostip do not support to specify to use TCP instead "
"of default UDP when requesting DNS server!"
msgstr ""
+"nslookup e hostip do BusyBox não suportam que especifique para usar TCP em "
+"vez do padrão UDP quando requisitando servidor DNS!"
msgid ""
"BusyBox's nslookup in the current compiled version does not handle given DNS "
"Servers correctly!"
msgstr ""
+"nslookup do BusyBox na versão compilada atualmente não trabalha corretamente "
+"com servidores DNS dados!"
msgid "Casual users should not change this setting"
-msgstr ""
+msgstr "Usuários iniciantes não devem alterar esta configuração"
msgid "Change provider"
-msgstr ""
+msgstr "Mudando provedor"
msgid "Check Interval"
-msgstr ""
+msgstr "Checar Intervalo"
msgid "Collecting data..."
-msgstr ""
+msgstr "Coletando dados…"
msgid "Config error"
-msgstr ""
+msgstr "Erro de configuração"
msgid "Configuration"
-msgstr ""
+msgstr "Configuração"
msgid ""
"Configure here the details for all Dynamic DNS services including this LuCI "
"application."
msgstr ""
+"Configure aqui os detalhes para todos os serviços DNS Dinâmicos incluindo "
+"esta aplicação LuCI."
msgid "Configure here the details for selected Dynamic DNS service."
-msgstr ""
+msgstr "Configure aqui os detalhes para o serviço DNS Dinâmico selecionado."
msgid "Current setting"
-msgstr ""
+msgstr "Configuração atual"
msgid ""
"Currently DDNS updates are not started at boot or on interface events.<br /"
">This is the default if you run DDNS scripts by yourself (i.e. via cron with "
"force_interval set to '0')"
msgstr ""
+"Atualizações DDNS atuais não são iniciadas no boot ou nos eventos da "
+"interface.<br />Isso é o normal se você roda scripts DDNS por conta própria "
+"(ex. via cron com force_interval setado para ‘0’)"
msgid ""
"Currently DDNS updates are not started at boot or on interface events.<br /"
">You can start/stop each configuration here. It will run until next reboot."
msgstr ""
+"Atualizações DDNS atuais não são iniciadas no boot ou nos eventos da "
+"interface.<br />Você pode iniciar/parar cada configuração aqui. Ela irá "
+"rodar até o próximo reboto."
msgid "Custom update script to be used for updating your DDNS Provider."
msgstr ""
+"Scripts de atualização personalizados para serem usados para atualizar seu "
+"Provedor DDNS."
msgid "Custom update-URL"
msgstr "URL para atualização personalizada"
msgid "Custom update-script"
-msgstr ""
+msgstr "Script para atualização personalizado"
msgid "DDNS Autostart disabled"
-msgstr ""
+msgstr "Auto-inicialização de DDNS desabilitada"
msgid "DDNS Client Configuration"
-msgstr ""
+msgstr "Configuração de cliente DDNS"
msgid "DDNS Client Documentation"
-msgstr ""
+msgstr "Documentação de cliente DDNS"
msgid "DDNS Service provider"
-msgstr ""
+msgstr "Provedor de serviço DDNS"
msgid "DNS requests via TCP not supported"
-msgstr ""
+msgstr "Requisição de DNS via TCP não suportada"
msgid "DNS-Server"
-msgstr ""
+msgstr "Servidor DNS"
msgid "Date format"
-msgstr ""
+msgstr "Formato de data"
msgid "Defines the Web page to read systems IPv4-Address from"
-msgstr ""
+msgstr "Define a página Web para ler o endereço IPv4 do sistema"
msgid "Defines the Web page to read systems IPv6-Address from"
-msgstr ""
+msgstr "Define a página Web para ler o endereço IPv6 do sistema"
msgid "Defines the interface to read systems IP-Address from"
-msgstr ""
+msgstr "Define a interface para ler o endereço IP do sistema"
msgid "Defines the network to read systems IPv4-Address from"
-msgstr ""
+msgstr "Define a rede para ler o endereço IPv4 do sistema"
msgid "Defines the network to read systems IPv6-Address from"
-msgstr ""
+msgstr "Define a rede para ler o endereço IPv6 do sistema"
msgid ""
"Defines the source to read systems IPv4-Address from, that will be send to "
"the DDNS provider"
msgstr ""
+"Define a origem para ler o endereço IPv4 do sistema, que será enviado ao "
+"provedor DDNS"
msgid ""
"Defines the source to read systems IPv6-Address from, that will be send to "
"the DDNS provider"
msgstr ""
+"Define a origem para ler o endereço IPv6 do sistema, que será enviado ao "
+"provedor DDNS"
msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider"
-msgstr ""
+msgstr "Define qual endereço IP ‘IPv4/IPv6’ é enviado ao provedor DDNS"
msgid "Details for"
-msgstr ""
+msgstr "Detalhes para"
msgid "Directory contains Log files for each running section"
-msgstr ""
+msgstr "Diretório contendo arquivos de Log para cada sessão em execução"
msgid ""
"Directory contains PID and other status information for each running section"
msgstr ""
+"Diretório contendo PID e outras informações de status para cada sessão em "
+"execução"
msgid "Disabled"
-msgstr ""
+msgstr "Desabilitado"
msgid "Domain"
-msgstr ""
+msgstr "Domínio"
msgid "Dynamic DNS"
msgstr "DNS Dinâmico"
@@ -188,132 +213,150 @@ msgstr ""
"um nome fixo, mesmo usando um Endereço IP dinâmico."
msgid "Enable secure communication with DDNS provider"
-msgstr ""
+msgstr "Habilitar comunicação segura com o provedor DDNS"
msgid "Enabled"
-msgstr ""
+msgstr "Habilitado"
msgid "Error"
-msgstr ""
+msgstr "Erro"
msgid "Error Retry Counter"
-msgstr ""
+msgstr "Contador de Tentativas em Erro"
msgid "Error Retry Interval"
-msgstr ""
+msgstr "Intervalo de tentativas em Erro"
msgid "Event Network"
msgstr ""
msgid "File"
-msgstr ""
+msgstr "Arquivo"
msgid "File not found"
-msgstr ""
+msgstr "Arquivo não encontrado"
msgid "File not found or empty"
-msgstr ""
+msgstr "Arquivo não encontrado ou vazio"
msgid ""
"Follow this link<br />You will find more hints to optimize your system to "
"run DDNS scripts with all options"
msgstr ""
+"Siga esse link<br />Você vai encontrar mais dicas para otimizar seu sistema "
+"para rodar scripts DDNS com todas as opções"
msgid "For detailed information about parameter settings look here."
msgstr ""
+"Olhe aqui para informações mais detalhadas sobre as configurações de "
+"parâmetro"
msgid "For supported codes look here"
-msgstr ""
+msgstr "Olhe aqui para códigos suportados"
msgid "Force IP Version"
-msgstr ""
+msgstr "Forçar versão de IP"
msgid "Force IP Version not supported"
-msgstr ""
+msgstr "Forçar versão de IP não suportado"
msgid "Force Interval"
-msgstr ""
+msgstr "Forçar intervalo"
msgid "Force TCP on DNS"
-msgstr ""
+msgstr "Forçar TCP em DNS"
msgid "Forced IP Version don't matched"
-msgstr ""
+msgstr "Forçar versão de IP não corresponde"
msgid "Format"
-msgstr ""
+msgstr "Formato"
msgid "Format: IP or FQDN"
-msgstr ""
+msgstr "Formato: IP ou FQDN"
msgid ""
"GNU Wget will use the IP of given network, cURL will use the physical "
"interface."
-msgstr ""
+msgstr "GNU Wget usará o IP da rede informada, cURL usará a interface física"
msgid "Global Settings"
-msgstr ""
+msgstr "Configurações Globais"
msgid "HTTPS not supported"
-msgstr ""
+msgstr "HTTPS não suportado"
msgid "Hints"
-msgstr ""
+msgstr "Dicas"
msgid "Hostname/FQDN to validate, if IP update happen or necessary"
msgstr ""
+"Hostname/FQDN a ser validado, se atualização de IP acontecer ou for "
+"necessária"
msgid "IP address source"
-msgstr ""
+msgstr "Fonte do endereço IP"
msgid "IP address version"
-msgstr ""
+msgstr "Versão do endereço IP"
msgid "IPv4-Address"
-msgstr ""
+msgstr "Endereço IPv4"
msgid "IPv6 address must be given in square brackets"
-msgstr ""
+msgstr "Endereço IPv6 deve estar entre colchetes"
msgid ""
"IPv6 is currently not (fully) supported by this system<br />Please follow "
"the instructions on OpenWrt's homepage to enable IPv6 support<br />or update "
"your system to the latest OpenWrt Release"
msgstr ""
+"IPv6 não é (completamente) suportado por este sistema<br />Por favor siga as "
+"instruções na página inicial do OpenWrt para habilitar o suporte ao IPv6<br /"
+">ou atualize seu sistema para a última distribuição do OpenWrt"
msgid "IPv6 not supported"
-msgstr ""
+msgstr "IPv6 não suportado"
msgid "IPv6-Address"
-msgstr ""
+msgstr "Endereço IPv6"
msgid "If both cURL and GNU Wget are installed, Wget is used by default."
-msgstr ""
+msgstr "Se ambos cURL e GNU Wget estão instalados, Wget é utilizado por padrão"
msgid ""
"If this service section is disabled it could not be started.<br />Neither "
"from LuCI interface nor from console"
msgstr ""
+"Se esta sessão do serviço está desabilidade, ele não pôde ser iniciado.<br /"
+">nem da interface LuCI nem do console"
msgid "If using secure communication you should verify server certificates!"
msgstr ""
+"Você deve verificar os certificados do servidor caso estiver utilizando "
+"comunicação segura"
msgid ""
"If you want to send updates for IPv4 and IPv6 you need to define two "
"separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'"
msgstr ""
+"Se deseja enviar atualizações para IPv4 e IPv6 você deve definir duas "
+"configurações separadas. Ex.: ‘myddns_ipv4’ e ‘myddns_ipv6’"
msgid ""
"In some versions cURL/libcurl in OpenWrt is compiled without proxy support."
msgstr ""
+"Em algumas versões do OpenWrt cURL/libcurl é compilada sem suporte a proxy."
msgid "Info"
-msgstr ""
+msgstr "Informações"
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
+"Instale manualmente o pacote ’ca-certificates’ ou certificados necessários "
+"no diretório padrão /etc/ssl/certs"
msgid "Interface"
msgstr "Interface"
@@ -322,67 +365,77 @@ msgid ""
"Interval to check for changed IP<br />Values below 5 minutes == 300 seconds "
"are not supported"
msgstr ""
+"Intervalo para checar mudança no IP<br />Valores abaixo de 5 minutos == 300 "
+"segundos não são suportados"
msgid ""
"Interval to force updates send to DDNS Provider<br />Setting this parameter "
"to 0 will force the script to only run once<br />Values lower 'Check "
"Interval' except '0' are not supported"
msgstr ""
+"Intervalo para forçar envio de atualizações para o provedor DDNS<br /"
+">Definindo esse parâmetro em 0 irá forçar o script a rodar apenas uma "
+"vez>br />Valores menores que 'Check Interval', exceto '0', não são suportados"
msgid "It is NOT recommended for casual users to change settings on this page."
msgstr ""
+"Não é recomendado que usuários iniciantes alterem configurações nessa página"
msgid "Last Update"
-msgstr ""
+msgstr "Última atualização"
msgid "Loading"
-msgstr ""
+msgstr "Carregando"
msgid "Log File Viewer"
-msgstr ""
+msgstr "Visualizador de arquivo de log"
msgid "Log directory"
-msgstr ""
+msgstr "Diretório do log"
msgid "Log length"
-msgstr ""
+msgstr "Tamanho do log"
msgid "Log to file"
-msgstr ""
+msgstr "Log para arquivo"
msgid "Log to syslog"
-msgstr ""
+msgstr "Log para log do sistema"
msgid "Lookup Hostname"
-msgstr ""
+msgstr "Verificar nome de host"
msgid "NOT installed"
-msgstr ""
+msgstr "NÃO instalado"
msgid ""
"Neither GNU Wget with SSL nor cURL installed to select a network to use for "
"communication."
msgstr ""
+"Nem GNU Wget com SSL nem cURL instalado para selecionar uma rede para usar "
+"para comunicação"
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
+"Nem GNU Wget com SSL nem cURL instalado para suportar atualizações seguras "
+"via protocolo HTTPS"
msgid "Network"
msgstr "Rede"
msgid "Network on which the ddns-updater scripts will be started"
-msgstr ""
+msgstr "Rede na qual os scripts de atualização DDNS serão iniciados"
msgid "Never"
-msgstr ""
+msgstr "Nunca"
msgid "Next Update"
-msgstr ""
+msgstr "Próxima atualização"
msgid "No certificates found"
-msgstr ""
+msgstr "Nenhum certificado encontrado"
msgid "No data"
msgstr ""
@@ -391,334 +444,366 @@ msgid "No logging"
msgstr ""
msgid "Non-public and by default blocked IP's"
-msgstr ""
+msgstr "IPs não públicos e bloqueados por padrão"
msgid "Notice"
msgstr ""
msgid "Number of last lines stored in log files"
-msgstr ""
+msgstr "Número das últimas linhas salvas nos arquivos de log"
msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication."
-msgstr ""
+msgstr "OPCIONAL: Force o uso de apenas comunicação IPv4/IPv6 pura"
msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests."
-msgstr ""
+msgstr "OPCIONAL: Force o uso de TCB em vez do padrão UDP em requisições DNS"
msgid "OPTIONAL: Network to use for communication"
-msgstr ""
+msgstr "OPCIONAL: Rede para usar para comunicação"
msgid "OPTIONAL: Proxy-Server for detection and updates."
-msgstr ""
+msgstr "OPCIONAL: Servidor Proxy para detecção e atualização"
msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'."
-msgstr ""
+msgstr "OPCIONAL: Use servidor DNS não-padrão para detectar 'Registered IP'"
msgid "On Error the script will retry the failed action after given time"
-msgstr ""
+msgstr "Em Erro, o script irá tentar a ação que falhou após um tempo definido"
msgid "On Error the script will stop execution after given number of retrys"
msgstr ""
+"Em Erro, o script irá para a execução após um número definido de tentativas"
msgid "OpenWrt Wiki"
msgstr ""
msgid "Optional Encoded Parameter"
-msgstr ""
+msgstr "Parâmetro Opcionalmente Codificado"
msgid "Optional Parameter"
-msgstr ""
+msgstr "Parâmetro Opcional"
msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "Opcional: Substitui [PARAMEND] na URL de atualização"
msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
-msgstr ""
+msgstr "Opcional: Substitui [PARAMOPT] na URL de atualização"
msgid "Overview"
msgstr ""
msgid "PROXY-Server"
-msgstr ""
+msgstr "servidor PROXY"
msgid "PROXY-Server not supported"
-msgstr ""
+msgstr "Servidor PROXY não suportado"
msgid "Password"
msgstr "Senha"
msgid "Path to CA-Certificate"
-msgstr ""
+msgstr "Caminho para os certificados CA"
msgid "Please [Save & Apply] your changes first"
-msgstr ""
+msgstr "Por favor antes [Salve e Aplique] suas alterações"
msgid "Please press [Read] button"
-msgstr ""
+msgstr "Por favor pressione o botão [Ler]"
msgid "Please update to the current version!"
-msgstr ""
+msgstr "Por favor atualize para a versão atual"
msgid "Process ID"
-msgstr ""
+msgstr "ID do processo"
msgid "Read / Reread log file"
-msgstr ""
+msgstr "Ler / Ler novamente o arquivo de log"
msgid "Really change DDNS provider?"
-msgstr ""
+msgstr "Mudar servidor DDNS?"
msgid "Registered IP"
-msgstr ""
+msgstr "IP registrado"
msgid "Replaces [DOMAIN] in Update-URL"
-msgstr ""
+msgstr "Substitui [DOMAIN] na URL de atualização"
msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "Substitui [PASSWORD] na URL de atualização"
msgid "Replaces [USERNAME] in Update-URL (URL-encoded)"
-msgstr ""
+msgstr "Substitui [USERNAME] na URL de atualização"
msgid "Run once"
-msgstr ""
+msgstr "Rodar apenas uma vez"
msgid "Script"
-msgstr ""
+msgstr "Script"
msgid "Show more"
-msgstr ""
+msgstr "Mostrar mais"
msgid "Software update required"
-msgstr ""
+msgstr "Atualização de software necessária"
msgid "Specifying a DNS-Server is not supported"
-msgstr ""
+msgstr "Não é suportado especificar um servidor DNS"
msgid "Start"
-msgstr ""
+msgstr "Iniciar"
msgid "Start / Stop"
-msgstr ""
+msgstr "Iniciar / Parar"
msgid "Status directory"
-msgstr ""
+msgstr "Diretório de status"
msgid "Stopped"
-msgstr ""
+msgstr "Parado"
msgid ""
"The currently installed 'ddns-scripts' package did not support all available "
"settings."
msgstr ""
+"O pacote 'ddns-scripts' instalado atualmente não suporta todas as "
+"configurações disponíveis"
msgid "The default setting of '0' will retry infinite."
-msgstr ""
+msgstr "A configuração padrão de '0' terá infinitas tentativas"
msgid "There is no service configured."
-msgstr ""
+msgstr "Não há serviço configurado"
msgid "Timer Settings"
msgstr ""
msgid "To change global settings click here"
-msgstr ""
+msgstr "Clique aqui para mudar configurações globais"
msgid "To use cURL activate this option."
-msgstr ""
+msgstr "Ative essa opção para usar cURL"
msgid "URL"
msgstr "URL"
msgid "URL to detect"
-msgstr ""
+msgstr "Detectada pela URL"
msgid "Unknown error"
-msgstr ""
+msgstr "Erro desconhecido"
msgid ""
"Update URL to be used for updating your DDNS Provider.<br />Follow "
"instructions you will find on their WEB page."
msgstr ""
+"URL a ser usada para atualizar seu provedor DDNS.<br />Siga as instruções "
+"encontradas na página deles."
msgid "Update error"
-msgstr ""
+msgstr "Erro de atualização"
msgid "Use HTTP Secure"
-msgstr ""
+msgstr "Usar HTTP Seguro"
msgid "Use cURL"
-msgstr ""
+msgstr "Usar cURL"
msgid "User defined script to read systems IP-Address"
-msgstr ""
+msgstr "Script definido pelo usuário para ler endereço IP do sistema"
msgid "Username"
msgstr "Usuário"
msgid "Using specific DNS Server not supported"
-msgstr ""
+msgstr "Usar servidor DNS específico não é suportado"
msgid "Verify"
-msgstr ""
+msgstr "Verificar"
msgid "Version"
-msgstr ""
+msgstr "Versão"
msgid "Version Information"
-msgstr ""
+msgstr "Informação de Versão"
msgid "Waiting for changes to be applied..."
-msgstr ""
+msgstr "Aguardando as alterações serem aplicadas…"
msgid "Warning"
-msgstr ""
+msgstr "Alerta"
msgid ""
"Writes detailed messages to log file. File will be truncated automatically."
msgstr ""
+"Escreve mensagens detalhadas no arquivo de log. Arquivo será automaticamente "
+"truncado."
msgid ""
"Writes log messages to syslog. Critical Errors will always be written to "
"syslog."
msgstr ""
+"Escreve mensagens de log no log do sistema. Erros críticos sempre serão "
+"escritos no log do sistema."
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
+"Você deve instalar o pacote 'bind-host' ou 'knot-host' ou 'drill' ou "
+"'hostip' caso precise especificar um servidor DNS para detectar seu IP "
+"registrado."
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
+"Você deve instalar o pacote 'bind-host' ou 'knot-host' ou 'drill' para "
+"requisições DNS."
-msgid "You should install BIND host package for DNS requests."
-msgstr ""
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
+msgstr "Você deve instalar o pacote 'wget' ou 'curl' ou 'uclient-fetch'."
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
+"Você deve instalar o pacote 'wget' ou 'curl' ou 'uclient-fetch' com "
+"'libustream-*ssl'."
-msgid "You should install GNU Wget with SSL or cURL package."
-msgstr ""
+msgid "You should install 'wget' or 'curl' package."
+msgstr "Você deve instalar o pacote ‘wget’ ou ‘curl’."
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
+"Você deve instalar o pacote ‘wget’ ou ‘uclient-fetch’ ou substituir libcurl."
msgid "cURL is installed, but libcurl was compiled without proxy support."
-msgstr ""
+msgstr "cURL está instalado, mas libcurl foi compilada sem suporte a proxy"
msgid "cURL without Proxy Support"
-msgstr ""
+msgstr "cURL sem suporte a proxy"
msgid "can not detect local IP. Please select a different Source combination"
msgstr ""
+"não pôde detectar IP local. Por favor selecione uma combinação de fonte "
+"diferente"
msgid "can not resolve host:"
-msgstr ""
+msgstr "não pôde resolver host:"
msgid "config error"
-msgstr ""
+msgstr "erro de configuração"
msgid "days"
-msgstr ""
+msgstr "dias"
msgid "directory or path/file"
-msgstr ""
+msgstr "diretório ou caminho/arquivo"
msgid "either url or script could be set"
-msgstr ""
+msgstr "url ou script pode ser setado"
msgid "enable here"
-msgstr ""
+msgstr "habilite aqui"
msgid "file or directory not found or not 'IGNORE'"
-msgstr ""
+msgstr "arquivo ou diretório não encontrado ou não ‘IGNORE’"
msgid "help"
-msgstr ""
+msgstr "ajuda"
msgid "hours"
-msgstr ""
+msgstr "horas"
msgid "installed"
-msgstr ""
+msgstr "instalado"
msgid "invalid FQDN / required - Sample"
-msgstr ""
+msgstr "FQDN requerido inválido - Exemplo"
msgid "minimum value '0'"
-msgstr ""
+msgstr "valor mínimo ‘0’"
msgid "minimum value '1'"
-msgstr ""
+msgstr "valor mínimo ‘1’"
msgid "minimum value 5 minutes == 300 seconds"
-msgstr ""
+msgstr "valor mínimo 5 minutos == 300 segundos"
msgid "minutes"
-msgstr ""
+msgstr "minutos"
msgid "missing / required"
-msgstr ""
+msgstr "faltando / necessário"
msgid "must be greater or equal 'Check Interval'"
-msgstr ""
+msgstr "deve ser maior ou igual ‘Check Interval’"
msgid "must start with 'http://'"
-msgstr ""
+msgstr "deve iniciar com ‘http://'"
msgid "nc (netcat) can not connect"
-msgstr ""
+msgstr "nc (netcat) não pôde conectar"
msgid "never"
-msgstr ""
+msgstr "nunca"
msgid "no data"
-msgstr ""
+msgstr "sem dados"
msgid "not found or not executable - Sample: '/path/to/script.sh'"
-msgstr ""
+msgstr "não encontrado ou não executável - Exemplo: ‘/caminho/para/script.sh'"
msgid "nslookup can not resolve host"
-msgstr ""
+msgstr "nslookup não pôde resolver o host"
msgid "or"
-msgstr ""
+msgstr "ou"
msgid "or higher"
-msgstr ""
+msgstr "ou maior"
msgid "please disable"
-msgstr ""
+msgstr "por favor desabilite"
msgid "please remove entry"
-msgstr ""
+msgstr "por favor remova a entrada"
msgid "please select 'IPv4' address version"
-msgstr ""
+msgstr "por favor selecione a versão de endereço ‘IPv4’"
msgid "please select 'IPv4' address version in"
-msgstr ""
+msgstr "por favor selecione a versão de endereço ‘IPv4’ em"
msgid "please set to 'default'"
-msgstr ""
+msgstr "por favor defina como ‘default’"
msgid "proxy port missing"
-msgstr ""
+msgstr "porta de proxy faltando"
msgid "required"
-msgstr ""
+msgstr "necessário"
msgid "seconds"
-msgstr ""
+msgstr "segundos"
msgid "to run HTTPS without verification of server certificates (insecure)"
msgstr ""
+"para rodar HTTPS sem verificação dos certificados do servidor (não seguro)"
msgid "unknown error"
-msgstr ""
+msgstr "erro desconhecido"
msgid "unspecific error"
-msgstr ""
+msgstr "erro não específico"
msgid "use hostname, FQDN, IPv4- or IPv6-Address"
-msgstr ""
+msgstr "use hostname, FQDN, endereço IPv4 ou IPv6"
+
+#~ msgid ""
+#~ "You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+#~ "package for DNS requests."
+#~ msgstr ""
+#~ "Você deve instalar o pacote 'bind-host' ou 'knot-host' ou 'drill' ou "
+#~ "'hostip' para requisições DNS."
diff --git a/applications/luci-app-ddns/po/pt/ddns.po b/applications/luci-app-ddns/po/pt/ddns.po
index e6219eda3e..1a00efbb75 100644
--- a/applications/luci-app-ddns/po/pt/ddns.po
+++ b/applications/luci-app-ddns/po/pt/ddns.po
@@ -313,8 +313,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -367,8 +367,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -585,24 +585,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/ro/ddns.po b/applications/luci-app-ddns/po/ro/ddns.po
index f67f47d0e9..93424ad0d0 100644
--- a/applications/luci-app-ddns/po/ro/ddns.po
+++ b/applications/luci-app-ddns/po/ro/ddns.po
@@ -312,8 +312,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -366,8 +366,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -584,24 +584,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/ru/ddns.po b/applications/luci-app-ddns/po/ru/ddns.po
index d05a027b15..a41d1f498b 100644
--- a/applications/luci-app-ddns/po/ru/ddns.po
+++ b/applications/luci-app-ddns/po/ru/ddns.po
@@ -313,8 +313,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -367,8 +367,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -585,24 +585,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/templates/ddns.pot b/applications/luci-app-ddns/po/templates/ddns.pot
index dbe317d131..194bf816a1 100644
--- a/applications/luci-app-ddns/po/templates/ddns.pot
+++ b/applications/luci-app-ddns/po/templates/ddns.pot
@@ -298,8 +298,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -352,8 +352,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -570,24 +570,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/tr/ddns.po b/applications/luci-app-ddns/po/tr/ddns.po
index e9984e1c1b..be3b1e572d 100644
--- a/applications/luci-app-ddns/po/tr/ddns.po
+++ b/applications/luci-app-ddns/po/tr/ddns.po
@@ -309,8 +309,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -363,8 +363,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -581,24 +581,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/uk/ddns.po b/applications/luci-app-ddns/po/uk/ddns.po
index 4f1002bbad..33c077e878 100644
--- a/applications/luci-app-ddns/po/uk/ddns.po
+++ b/applications/luci-app-ddns/po/uk/ddns.po
@@ -314,8 +314,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -368,8 +368,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -586,24 +586,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/vi/ddns.po b/applications/luci-app-ddns/po/vi/ddns.po
index 7749702a30..9d9ee070ee 100644
--- a/applications/luci-app-ddns/po/vi/ddns.po
+++ b/applications/luci-app-ddns/po/vi/ddns.po
@@ -312,8 +312,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -366,8 +366,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -584,24 +584,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/po/zh-cn/ddns.po b/applications/luci-app-ddns/po/zh-cn/ddns.po
index d1b11d0100..91bb756b37 100644
--- a/applications/luci-app-ddns/po/zh-cn/ddns.po
+++ b/applications/luci-app-ddns/po/zh-cn/ddns.po
@@ -319,8 +319,8 @@ msgid "Info"
msgstr "信息"
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -375,9 +375,9 @@ msgid ""
msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法选择一个网络用于通信."
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
-msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法使用HTTPS更新DDNS"
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
+msgstr ""
msgid "Network"
msgstr "网络"
@@ -594,25 +594,30 @@ msgid ""
"syslog."
msgstr "把日志写入系统日志.无论是否启用这项,错误信息总是会被写入系统日志"
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
-msgstr "你需要安装BIND以请求DNS记录."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
+msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
-msgstr "你需要安装包含SSL支持的GNU Wget(推荐)或是cURL软件包."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
+msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
-msgstr "你需要安装包含SSL支持的GNU Wget或是cURL软件包."
+msgid "You should install 'wget' or 'curl' package."
+msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
-msgstr "你需要安装包含SSL支持的GNU Wget或替换libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
+msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
msgstr "cURL已经安装,但是libcurl编译时没有启用代理支持."
@@ -733,3 +738,20 @@ msgstr "未指定的错误"
msgid "use hostname, FQDN, IPv4- or IPv6-Address"
msgstr "使用主机名或IPv4/IPv6地址"
+
+#~ msgid ""
+#~ "Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
+#~ "protocol."
+#~ msgstr "包含SSL支持的GNU Wget或者cURL均未被安装.无法使用HTTPS更新DDNS"
+
+#~ msgid "You should install BIND host package for DNS requests."
+#~ msgstr "你需要安装BIND以请求DNS记录."
+
+#~ msgid "You should install GNU Wget with SSL (preferred) or cURL package."
+#~ msgstr "你需要安装包含SSL支持的GNU Wget(推荐)或是cURL软件包."
+
+#~ msgid "You should install GNU Wget with SSL or cURL package."
+#~ msgstr "你需要安装包含SSL支持的GNU Wget或是cURL软件包."
+
+#~ msgid "You should install GNU Wget with SSL or replace libcurl."
+#~ msgstr "你需要安装包含SSL支持的GNU Wget或替换libcurl."
diff --git a/applications/luci-app-ddns/po/zh-tw/ddns.po b/applications/luci-app-ddns/po/zh-tw/ddns.po
index cfa3939838..ae0aaba8d9 100644
--- a/applications/luci-app-ddns/po/zh-tw/ddns.po
+++ b/applications/luci-app-ddns/po/zh-tw/ddns.po
@@ -310,8 +310,8 @@ msgid "Info"
msgstr ""
msgid ""
-"Install ca-certificates package or needed certificates by hand into /etc/ssl/"
-"certs default directory"
+"Install 'ca-certificates' package or needed certificates by hand into /etc/"
+"ssl/certs default directory"
msgstr ""
msgid "Interface"
@@ -364,8 +364,8 @@ msgid ""
msgstr ""
msgid ""
-"Neither GNU Wget with SSL nor cURL installed to support updates via HTTPS "
-"protocol."
+"Neither GNU Wget with SSL nor cURL installed to support secure updates via "
+"HTTPS protocol."
msgstr ""
msgid "Network"
@@ -582,24 +582,29 @@ msgid ""
"syslog."
msgstr ""
-msgid "You should install BIND host or hostip package for DNS requests."
+msgid ""
+"You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' "
+"package, if you need to specify a DNS server to detect your registered IP."
msgstr ""
msgid ""
-"You should install BIND host or hostip package, if you need to specify a DNS "
-"server to detect your registered IP."
+"You should install 'bind-host' or 'knot-host' or 'drill' package for DNS "
+"requests."
msgstr ""
-msgid "You should install BIND host package for DNS requests."
+msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package."
msgstr ""
-msgid "You should install GNU Wget with SSL (prefered) or cURL package."
+msgid ""
+"You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-"
+"*ssl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or cURL package."
+msgid "You should install 'wget' or 'curl' package."
msgstr ""
-msgid "You should install GNU Wget with SSL or replace libcurl."
+msgid ""
+"You should install 'wget' or 'uclient-fetch' package or replace libcurl."
msgstr ""
msgid "cURL is installed, but libcurl was compiled without proxy support."
diff --git a/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns b/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns
index 9fd875e34b..a82c1f9ac6 100755
--- a/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns
+++ b/applications/luci-app-ddns/root/etc/uci-defaults/40_luci-ddns
@@ -7,4 +7,4 @@ uci -q batch <<-EOF >/dev/null
EOF
rm -f /tmp/luci-indexcache
-exit 0
+return 0
diff --git a/applications/luci-app-diag-devinfo/Makefile b/applications/luci-app-diag-devinfo/Makefile
index 0424fffa0c..1505b62121 100644
--- a/applications/luci-app-diag-devinfo/Makefile
+++ b/applications/luci-app-diag-devinfo/Makefile
@@ -9,6 +9,10 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Diagnostics Tools (Device Info)
LUCI_DEPENDS:=+luci-app-diag-core +smap +netdiscover +mac-to-devinfo +httping +smap-to-devinfo +netdiscover-to-devinfo @BROKEN
+define Package/luci-app-diag-devinfo/conffiles
+/etc/config/luci_devinfo
+endef
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua
index 60af531d5c..97e93ae050 100644
--- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua
+++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua
@@ -319,13 +319,13 @@ end
o = s:option(MultiValue, "weekdays", translate("Week Days"))
o.oneline = true
o.widget = "checkbox"
-o:value("sun", translate("Sunday"))
-o:value("mon", translate("Monday"))
-o:value("tue", translate("Tuesday"))
-o:value("wed", translate("Wednesday"))
-o:value("thu", translate("Thursday"))
-o:value("fri", translate("Friday"))
-o:value("sat", translate("Saturday"))
+o:value("Sun", translate("Sunday"))
+o:value("Mon", translate("Monday"))
+o:value("Tue", translate("Tuesday"))
+o:value("Wed", translate("Wednesday"))
+o:value("Thu", translate("Thursday"))
+o:value("Fri", translate("Friday"))
+o:value("Sat", translate("Saturday"))
o = s:option(MultiValue, "monthdays", translate("Month Days"))
o.oneline = true
diff --git a/applications/luci-app-firewall/po/ca/firewall.po b/applications/luci-app-firewall/po/ca/firewall.po
index d8f51b63c1..5d62f02656 100644
--- a/applications/luci-app-firewall/po/ca/firewall.po
+++ b/applications/luci-app-firewall/po/ca/firewall.po
@@ -516,130 +516,3 @@ msgstr "rebutja"
msgid "traffic"
msgstr "trànsit"
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Si us plau, trieu --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- personalitzats --"
-
-#~ msgid "Destination"
-#~ msgstr "Destí"
-
-#~ msgid "Source"
-#~ msgstr "Origen"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Port intern (opcional)"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Regles avançades"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Les regles avançades et deixen personalitzar el teu tallafocs per les "
-#~ "teves necessitats. Només s'hi correspondran les connexions noves. Als "
-#~ "paquets que pertanyen una connexió oberta se'ls permet passar el "
-#~ "tallafocs automàticament."
-
-#~ msgid "Port forwarding"
-#~ msgstr "Readreçament de port"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "El readreçament de ports permet proveir serveis de la xarxa interna a una "
-#~ "xarxa externa."
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Readreçament de tràfic"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "El readreçament de tràfic et permet canviar l'adreça destí dels paquets "
-#~ "reenviats."
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Xarxes"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Control de tràfic"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Tràfic zona a zona"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Ací pots especificar quin tràfic de xarxes es permet entre les zones de "
-#~ "xarxa. Només s'hi correspondren les connexions noves. Als paquets que "
-#~ "pertanyen una connexió oberta se'ls permet passar el tallafocs "
-#~ "automàticament. Si experimentes problemes de connexió ocasionals, intenta "
-#~ "activar el Clamping MSS, si no desactiva'l per raons de rendiment."
-
-#~ msgid "Zone"
-#~ msgstr "Zona"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Destí"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "Adreça IP"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Adreça MAC d'origen"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Reenviament personalitzat"
-
-#~ msgid "Input Zone"
-#~ msgstr "Zona d'entrada"
-
-#~ msgid "Output Zone"
-#~ msgstr "Zona de sortida"
-
-#~ msgid "External Zone"
-#~ msgstr "Zona externa"
-
-#~ msgid "Source MAC"
-#~ msgstr "MAC origen"
-
-#~ msgid "Defaults"
-#~ msgstr "Per defecte"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Aquesta és la configuració per defecte utilitzada si no hi ha cap altra "
-#~ "regla que es correspongui."
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Les zones parteixen les interfícies de xarxa en certes àrees aïllades per "
-#~ "separar el tràfic de xarxa. Una o més xarxes poden pertànyer a una zona. "
-#~ "El flag MASQ activa el NAT masquerading per tot el tràfic sortint "
-#~ "d'aquesta zona."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "Xarxes contingudes"
diff --git a/applications/luci-app-firewall/po/cs/firewall.po b/applications/luci-app-firewall/po/cs/firewall.po
index 5a631d061f..2d4b251d36 100644
--- a/applications/luci-app-firewall/po/cs/firewall.po
+++ b/applications/luci-app-firewall/po/cs/firewall.po
@@ -511,111 +511,3 @@ msgstr "odmítnout"
msgid "traffic"
msgstr "provoz"
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Prosím zvolte --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- vlastní --"
-
-#~ msgid "Destination"
-#~ msgstr "Cíl"
-
-#~ msgid "Family"
-#~ msgstr "Rodina"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Přesměrovat na %s v %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Přesměrovat na %s, %s v %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Zdroj"
-
-#~ msgid "To %s"
-#~ msgstr "Na %s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "Na %s v %s"
-
-#~ msgid "Via"
-#~ msgstr "přes"
-
-#~ msgid "Accept forward"
-#~ msgstr "Přijmout přesměrování"
-
-#~ msgid "Accept input"
-#~ msgstr "Přijmout vstup"
-
-#~ msgid "Disable"
-#~ msgstr "Zakázat"
-
-#~ msgid "Discard forward"
-#~ msgstr "Zahodit přesměrování"
-
-#~ msgid "Discard input"
-#~ msgstr "Zahodit vstup"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Nesledovat přesměrování"
-
-#~ msgid "Do not track input"
-#~ msgstr "Nesledovat vstup"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "IP rozsah"
-
-#~ msgid "IPs"
-#~ msgstr "IP"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MAC"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Odmítnout přesměrování"
-
-#~ msgid "Refuse input"
-#~ msgstr "Odmítnout vstup"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "Pravidlo je zakázané"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "Pravidlo je povolené"
-
-#~ msgid "day"
-#~ msgstr "den"
-
-#~ msgid "hour"
-#~ msgstr "hodina"
-
-#~ msgid "minute"
-#~ msgstr "minuta"
-
-#~ msgid "not"
-#~ msgstr "ne"
-
-#~ msgid "port"
-#~ msgstr "port"
-
-#~ msgid "ports"
-#~ msgstr "porty"
-
-#~ msgid "second"
-#~ msgstr "sekunda"
-
-#~ msgid "type"
-#~ msgstr "typ"
-
-#~ msgid "types"
-#~ msgstr "typy"
diff --git a/applications/luci-app-firewall/po/de/firewall.po b/applications/luci-app-firewall/po/de/firewall.po
index 7a38d47550..c9237d7d49 100644
--- a/applications/luci-app-firewall/po/de/firewall.po
+++ b/applications/luci-app-firewall/po/de/firewall.po
@@ -517,274 +517,3 @@ msgstr "zurückweisen"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Bitte wählen --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- benutzerdefiniert --"
-
-#~ msgid "Destination"
-#~ msgstr "Ziel"
-
-#~ msgid "Family"
-#~ msgstr "Adressfamilie"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Weiterleiten zu %s in %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Weiterleiten zu %s, %s in %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Quelle"
-
-#~ msgid "To %s"
-#~ msgstr "Zu %s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "Zu %s an %s"
-
-#~ msgid "Via"
-#~ msgstr "Über"
-
-#~ msgid "Accept forward"
-#~ msgstr "Weiterleitung erlauben"
-
-#~ msgid "Accept input"
-#~ msgstr "Eingang erlauben"
-
-#~ msgid "Disable"
-#~ msgstr "Daktivieren"
-
-#~ msgid "Discard forward"
-#~ msgstr "Weiterleitung verwerfen"
-
-#~ msgid "Discard input"
-#~ msgstr "Eingang verwerfen"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Weiterleitung nicht verfolgen"
-
-#~ msgid "Do not track input"
-#~ msgstr "Eingang nicht verfolgen"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "IP-Bereich"
-
-#~ msgid "IPs"
-#~ msgstr "IPs"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MACs"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Weiterleitung zurückweisen"
-
-#~ msgid "Refuse input"
-#~ msgstr "Eingang zurückweisen"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "Regel ist deaktiviert"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "Regel ist aktiviert"
-
-#~ msgid "day"
-#~ msgstr "Tag"
-
-#~ msgid "hour"
-#~ msgstr "Stunde"
-
-#~ msgid "minute"
-#~ msgstr "Minute"
-
-#~ msgid "not"
-#~ msgstr "nicht"
-
-#~ msgid "port"
-#~ msgstr "Port"
-
-#~ msgid "ports"
-#~ msgstr "Ports"
-
-#~ msgid "second"
-#~ msgstr "Sekunde"
-
-#~ msgid "type"
-#~ msgstr "Typ"
-
-#~ msgid "types"
-#~ msgstr "Typen"
-
-#~ msgid "(optional)"
-#~ msgstr "(optional)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Gewünschte Zieladresse"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Interner Port (optional)"
-
-#~ msgid "Accept"
-#~ msgstr "Akzeptiere"
-
-#~ msgid "Discard"
-#~ msgstr "Verwerfe"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Erweiterte Optionen"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Erweiterte Regeln"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Mit erweiterten Regeln kann die Firewall an die eigenen Bedürfnisse "
-#~ "angepasst werden. Es werden nur neue Verbindungen betrachtet. Pakete, die "
-#~ "zu bereits bestehenden Verbindungen gehören werden automatisch akzeptiert."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Benutzerdefinierte Regeln (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Gerät"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Für DNAT Regeln wird der Verkehr nach der angegeben Zieladresse "
-#~ "gefiltert. Bei SNAT Regeln ist dieses die Quelladresse für umgeschriebene "
-#~ "Pakete."
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr ""
-#~ "Eingehende Verbindungen filtern welche von dem angegebenen Port oder "
-#~ "Portbereich des Clients ausgehen"
-
-#~ msgid "Overview"
-#~ msgstr "Übersicht"
-
-#~ msgid "Port forwarding"
-#~ msgstr "Portweiterleitung"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "Portweiterleitungen ermöglichen es interne Netzwerkdienste aus einem "
-#~ "externen Netzwerk heraus erreichbar zu machen."
-
-#~ msgid "Redirection type"
-#~ msgstr "Typ der Weiterleitung"
-
-#~ msgid "Redirections"
-#~ msgstr "Weiterleitungen"
-
-#~ msgid "Rules"
-#~ msgstr "Regeln"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Umleitungen"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Umleitungen erlauben es das Ziel von weitergeleiteten Paketen zu "
-#~ "verändern."
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Netzwerke"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Verkehrskontrolle"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Zone-zu-Zone Verkehr"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "An dieser Stelle kann festgelegt zwischen welchen Zonen Netzverkehr hin "
-#~ "und her fließen kann. Es werden nur neue Verbindungen betrachtet. Pakete, "
-#~ "die zu bereits bestehenden Verbindungen gehören werden automatisch "
-#~ "akzeptiert. Bei gelegentlich auftretenden Verbindungsproblemen kann MSS "
-#~ "Clamping helfen, ansonsten sollte dies aus Performancegründen deaktiviert "
-#~ "bleiben."
-
-#~ msgid "Zone"
-#~ msgstr "Zone"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Ziel"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "IP-Adresse"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Quell-MAC-Adresse"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Erweiterte Weiterleitung"
-
-#~ msgid "Input Zone"
-#~ msgstr "Eingangszone"
-
-#~ msgid "Output Zone"
-#~ msgstr "Ausgangszone"
-
-#~ msgid "External Zone"
-#~ msgstr "Externe Zone"
-
-#~ msgid "Source MAC"
-#~ msgstr "Quell-MAC-Adresse"
-
-#~ msgid "Defaults"
-#~ msgstr "Grundeinstellungen"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Grundeinstellungen die verwendet werden, wenn keine andere Regel "
-#~ "angewandt werden kann."
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Zonen teilen das Netzwerk in mehrere Bereiche ein um Netzverkehr sicher "
-#~ "zu trennen. Ein oder mehrere Netzwerke gehören zu einer Zone. Das MASQ-"
-#~ "Flag legt fest, dass aller ausgehende Netzverkehr einer Zone NAT-maskiert "
-#~ "wird."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "verbundene Netzwerke"
diff --git a/applications/luci-app-firewall/po/el/firewall.po b/applications/luci-app-firewall/po/el/firewall.po
index 6ec03df87d..f54e3d6170 100644
--- a/applications/luci-app-firewall/po/el/firewall.po
+++ b/applications/luci-app-firewall/po/el/firewall.po
@@ -481,200 +481,3 @@ msgstr "απόρριψη"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Παρακαλώ επιλέξτε --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- προσαρμοσμένο --"
-
-#~ msgid "Destination"
-#~ msgstr "Προορισμός"
-
-#~ msgid "Family"
-#~ msgstr "Οικογένεια"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Προώθηση του %s στο %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Προώθηση στο %s, %s στο %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Πηγή"
-
-#~ msgid "To %s"
-#~ msgstr "Προς %s"
-
-#~ msgid "Accept forward"
-#~ msgstr "Αποδοχή προώθησης"
-
-#~ msgid "Accept input"
-#~ msgstr "Αποδοχή εισόδου"
-
-#~ msgid "Disable"
-#~ msgstr "Απενεργοποίηση"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "Εύρος IP"
-
-#~ msgid "IPs"
-#~ msgstr "IPs"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MACs"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Άρνηση προώθησης"
-
-#~ msgid "Refuse input"
-#~ msgstr "Άρνηση εισόδου"
-
-#~ msgid "day"
-#~ msgstr "ημέρα"
-
-#~ msgid "hour"
-#~ msgstr "ώρα"
-
-#~ msgid "minute"
-#~ msgstr "λεπτό"
-
-#~ msgid "port"
-#~ msgstr "θύρα"
-
-#~ msgid "ports"
-#~ msgstr "θύρες"
-
-#~ msgid "second"
-#~ msgstr "δευτερόλεπτο"
-
-#~ msgid "type"
-#~ msgstr "τύπος"
-
-#~ msgid "types"
-#~ msgstr "τύποι"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Εσωτερική θύρα (προαιρετικό)"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Προχωρημένοι Κανόνες"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Οι προχωρημένοι κανόνες σας επιτρέπουν να προσαρμόσετε το τείχος "
-#~ "προστασίας στις δικές σας ανάγκες. Οι κανόνες θα εφαρμόζονται μόνο στις "
-#~ "νέες συνδέσεις. Πακέτα που ανήκουν σε ήδη ανοιχτές συνδέσεις, θα περνάνε "
-#~ "αυτόματα το τείχος προστασίας."
-
-#~ msgid "Port forwarding"
-#~ msgstr "Προώθηση θυρών"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "Η προώθηση θυρών επιτρέπει σε υπηρεσίες δικτύου που λειτουργούν μέσα σε "
-#~ "ένα εσωτερικό δίκτυο, να γίνονται διαθέσιμες και σε ένα εξωτερικό."
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Ανακατεύθυνση Κίνησης"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Η ανακατεύθυνση κίνησης σας επιτρέπει να αλλάξετε την διεύθυνση "
-#~ "προορισμού των προωθημένων πακέτων."
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Δίκτυα"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Έλεγχος Κίνησης"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Κίνηση Ζώνης-προς-Ζώνη"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Εδώ μπορείτε να ορίσετε τι δικτυακή κίνηση επιτρέπεται μεταξύ δικτυακών "
-#~ "ζωνών. Θα εφαρμόζεται μόνο σε νέες συνδέσεις. Πακέτα που ανήκουν σε ήδη "
-#~ "ανοιχτές συνδέσεις θα περνάνε αυτόματα το τείχος προστασίας. Αν "
-#~ "αντιμετωπίζεται σποραδικά προβλήματα με τη σύνδεσή σας, δοκιμάστε να "
-#~ "ενεργοποιήσετε τον Περιορισμό MSS, αλλιώς απενεργοποιήστε το για "
-#~ "μεγαλύτερη απόδοση."
-
-#~ msgid "Zone"
-#~ msgstr "Ζώνη"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Προορισμός"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "Διεύθυνση IP"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Διεύθυνση MAC πηγής"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Προσαρμοσμένη προώθηση"
-
-#~ msgid "Input Zone"
-#~ msgstr "Ζώνη Εισόδου"
-
-#~ msgid "Output Zone"
-#~ msgstr "Ζώνη Εξόδου"
-
-#~ msgid "External Zone"
-#~ msgstr "Εξωτερική Ζώνη"
-
-#~ msgid "Source MAC"
-#~ msgstr "MAC πηγής"
-
-#~ msgid "Defaults"
-#~ msgstr "Προκαθορισμένα"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Αυτές είναι οι προκαθορισμένες ρυθμίσεις που χρησιμοποιούνται αν δεν "
-#~ "υπάρχει κάποιος άλλος κανόνας που ταιριάζει."
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Οι ζώνες χωρίζουν τις δικτυακές διεπαφές σε απομονωμένες περιοχές ώστε να "
-#~ "διαχωρίζεται η δικτυακή κίνηση. Σε μία ζώνη μπορούν να ανήκουν ένα ή "
-#~ "περισσότερα δίκτυα. Η σημαία MASQ ενεργοποιεί NAT masquerading για όλη "
-#~ "την εξερχόμενη κίνηση της ζώνης."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "δίκτυα που περιέχονται"
diff --git a/applications/luci-app-firewall/po/en/firewall.po b/applications/luci-app-firewall/po/en/firewall.po
index ac91bb8797..6e3b9eb5ea 100644
--- a/applications/luci-app-firewall/po/en/firewall.po
+++ b/applications/luci-app-firewall/po/en/firewall.po
@@ -508,164 +508,3 @@ msgstr "reject"
msgid "traffic"
msgstr ""
-
-#~ msgid "Destination"
-#~ msgstr "Destination"
-
-#~ msgid "Source"
-#~ msgstr "Source"
-
-#~ msgid "(optional)"
-#~ msgstr "(optional)"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Internal port (optional)"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/trule.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "(optional)"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-# msgid "Source port"
-# msgstr ""
-#
-# msgid "Destination port"
-# msgstr ""
-#
-# msgid "Action"
-# msgstr ""
-#
-# msgid "drop"
-# msgstr ""
-#
-# msgid "accept"
-# msgstr ""
-#
-# msgid "reject"
-# msgstr ""
-#
-#~ msgid "Advanced Rules"
-#~ msgstr "Advanced Rules"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-
-#~ msgid "Device"
-#~ msgstr "Device"
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-
-#~ msgid "Overview"
-#~ msgstr "Overview"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/miniportfw.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "(optional)"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-# msgid "External port"
-# msgstr ""
-#
-# msgid "Internal IP address"
-# msgstr ""
-#
-#~ msgid "Port forwarding"
-#~ msgstr "Port forwarding"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-
-#~ msgid "Rules"
-#~ msgstr "Rules"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/redirect.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-#~ msgid "Traffic Redirection"
-#~ msgstr "Traffic Redirection"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-
-#~ msgid "Network"
-#~ msgstr "Network"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/traffic.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-#~ msgid "Traffic Control"
-#~ msgstr "Traffic Control"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Zone-to-Zone traffic"
-
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-
-#~ msgid "Zone"
-#~ msgstr "Zone"
-
-#~ msgid "Destination IP"
-#~ msgstr "Destination IP"
-
-#~ msgid "IP address"
-#~ msgstr "IP address"
-
-#~ msgid "Source MAC-address"
-#~ msgstr "Source MAC-address"
diff --git a/applications/luci-app-firewall/po/es/firewall.po b/applications/luci-app-firewall/po/es/firewall.po
index 5aef537a81..4a3e182267 100644
--- a/applications/luci-app-firewall/po/es/firewall.po
+++ b/applications/luci-app-firewall/po/es/firewall.po
@@ -514,227 +514,3 @@ msgstr "rechazar"
msgid "traffic"
msgstr "tráfico"
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Seleccione --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- propio --"
-
-#~ msgid "Destination"
-#~ msgstr "Destino"
-
-#~ msgid "Family"
-#~ msgstr "Familia"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Traspasar a %s en %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Traspasar a %s, %s en %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Origen"
-
-#~ msgid "To %s"
-#~ msgstr "A %s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "A %s en %s"
-
-#~ msgid "Via"
-#~ msgstr "Via"
-
-#~ msgid "Accept forward"
-#~ msgstr "Aceptar traspaso"
-
-#~ msgid "Accept input"
-#~ msgstr "Aceptar entrada"
-
-#~ msgid "Disable"
-#~ msgstr "Desactivar"
-
-#~ msgid "Discard forward"
-#~ msgstr "Descartar traspaso"
-
-#~ msgid "Discard input"
-#~ msgstr "Descartar entrada"
-
-#~ msgid "Do not track forward"
-#~ msgstr "No seguir traspaso"
-
-#~ msgid "Do not track input"
-#~ msgstr "No seguir entrada"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "Rango IP"
-
-#~ msgid "IPs"
-#~ msgstr "IPs"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MACs"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Rechazar traspaso"
-
-#~ msgid "Refuse input"
-#~ msgstr "Rechazar entrada"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "La regla está desactivada"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "La regla está activada"
-
-#~ msgid "day"
-#~ msgstr "dia"
-
-#~ msgid "hour"
-#~ msgstr "hora"
-
-#~ msgid "minute"
-#~ msgstr "minuto"
-
-#~ msgid "not"
-#~ msgstr "no"
-
-#~ msgid "port"
-#~ msgstr "puerto"
-
-#~ msgid "ports"
-#~ msgstr "puertos"
-
-#~ msgid "second"
-#~ msgstr "segundo"
-
-#~ msgid "type"
-#~ msgstr "tipo"
-
-#~ msgid "types"
-#~ msgstr "tipos"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Puerto interno (opcional)"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Reglas avanzadas"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Las reglas avanzadas le permite personalizar el corta fuego según sus "
-#~ "necesidades. Sólamente las nuevas conexiones serán afectadas por las "
-#~ "reglas. Los paquetes pertenecientes a conexiones ya abierta, se les "
-#~ "permite el libre paso por el corta fuego."
-
-#~ msgid "Port forwarding"
-#~ msgstr "Reenvío de puerto"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "El reenvío de puerto permite proveer servicios de red en una red interna "
-#~ "a una red externa (por ejemplo Internet)"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Redirección de tráfico"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "La redirección de tráfico permite cambiar la dirección de destino de los "
-#~ "paquetes reenviados."
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Redes"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Control de tráfico"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Tráfico Zona-a-Zona"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Aquí puede especificar qué tráfico de red is permitido, discho tráfico "
-#~ "fluirá entre las zonas de red definidas. Sólamente las nuevas conexiones "
-#~ "serán aplicadas por las reglas. Los paquetes pertenecientes a conexiones "
-#~ "ya abierta se les permitirá el paso sobre el corta fuego. Si experimenta "
-#~ "ocacionalmente problemas de conexión, intente activar MSS Clamping de "
-#~ "otra forma, deshabilitelo para mejorar considerablemente la performance."
-
-#~ msgid "Zone"
-#~ msgstr "Zona"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Destino"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "Dirección IP"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Dirección MAC de origen"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Renvío personalizado"
-
-#~ msgid "Input Zone"
-#~ msgstr "Zona de entrada"
-
-#~ msgid "Output Zone"
-#~ msgstr "Zona de salida"
-
-#~ msgid "External Zone"
-#~ msgstr "Zona Externa"
-
-#~ msgid "Source MAC"
-#~ msgstr "MAC de Origen"
-
-#~ msgid "Defaults"
-#~ msgstr "De fábrica"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Estos son los valores por defecto que son usados si no hay otra regla a "
-#~ "aplicar."
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Las zonas dividen las interfaces de red en varias partes aisladas para "
-#~ "separar el tráfico de red. Una o mas redes pueden pertenecer a una zona. "
-#~ "La bandera MASQ activa el enmascaramiento NAT para todo el tráfico "
-#~ "saliente sobre esa zona."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "redes contenidas"
diff --git a/applications/luci-app-firewall/po/fr/firewall.po b/applications/luci-app-firewall/po/fr/firewall.po
index 796c4c2bb2..6d3111a28a 100644
--- a/applications/luci-app-firewall/po/fr/firewall.po
+++ b/applications/luci-app-firewall/po/fr/firewall.po
@@ -535,198 +535,3 @@ msgstr "rejeter"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Choisissez SVP --"
-
-#~ msgid "Destination"
-#~ msgstr "Destination"
-
-#~ msgid "Family"
-#~ msgstr "Famille"
-
-#~ msgid "Source"
-#~ msgstr "Source"
-
-#~ msgid "Via"
-#~ msgstr "Via"
-
-#~ msgid "(optional)"
-#~ msgstr "(optionnel)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Adresse de destination voulue"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Port interne (optionnel)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Options avancées"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# applications/luci-fw/luasrc/model/cbi/luci_fw/trule.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "(optional)"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-# msgid "Source port"
-# msgstr ""
-#
-# msgid "Destination port"
-# msgstr ""
-#
-# msgid "Action"
-# msgstr ""
-#
-# msgid "drop"
-# msgstr ""
-#
-# msgid "accept"
-# msgstr ""
-#
-# msgid "reject"
-# msgstr ""
-#
-#~ msgid "Advanced Rules"
-#~ msgstr "Règles avancées"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Les règles avancées vous laissent personnaliser le pare-feu selon vos "
-#~ "besoins. Seules les nouvelles connexions seront prises en compte. Les "
-#~ "paquets appartenant à des connexions déjà ouvertes sont automatiquement "
-#~ "admis à passer le pare-feu."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Règles spécifiques (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Équipement"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Pour le DNAT, sélectionne le trafic entrant correspondant à l'adresse IP "
-#~ "destinataire. Pour le SNAT, ré-écrit l'adresse source avec l'adresse "
-#~ "donnée."
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr ""
-#~ "Prendre en compte le trafic entrant provenant du port source donné (ou la "
-#~ "gamme de ports) sur l'hôte client"
-
-#~ msgid "Overview"
-#~ msgstr "Vue d'ensemble"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# applications/luci-fw/luasrc/model/cbi/luci_fw/miniportfw.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "(optional)"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-# msgid "External port"
-# msgstr ""
-#
-# msgid "Internal IP address"
-# msgstr ""
-#
-#~ msgid "Port forwarding"
-#~ msgstr "Redirection de port"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "La redirection de port vous permet d'exposer des services réseaux de "
-#~ "votre réseau local au réseau externe."
-
-#~ msgid "Redirection type"
-#~ msgstr "Type de redirection"
-
-#~ msgid "Redirections"
-#~ msgstr "Redirections"
-
-#~ msgid "Rules"
-#~ msgstr "Règles"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# applications/luci-fw/luasrc/model/cbi/luci_fw/redirect.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-# msgid "Protocol"
-# msgstr ""
-#
-#~ msgid "Traffic Redirection"
-#~ msgstr "Redirection du trafic"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "La redirection de trafic vous permet de changer l'adresse de destination "
-#~ "des paquets transférés."
-
-#~ msgid "Network"
-#~ msgstr "Réseau"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# applications/luci-fw/luasrc/model/cbi/luci_fw/traffic.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-#
-# msgid "Name"
-# msgstr ""
-#
-#~ msgid "Traffic Control"
-#~ msgstr "Contrôle de trafic"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Trafic zone-à-zone"
-
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Ici, vous pouvez spécifier quel trafic réseau est autorisé à transiter "
-#~ "entre les zones réseau. Seules les nouvelles connexions seront prises en "
-#~ "compte. Les paquets appartenant à des connexions déjà ouvertes sont "
-#~ "automatiquement admis à passer le pare-feu. Si vous subissez des "
-#~ "problèmes de connexion occasionnels, essayer d'activer le MSS clamping; "
-#~ "sinon laissez-le désactivé pour des raisons de performance."
-
-#~ msgid "Zone"
-#~ msgstr "Zone"
-
-#~ msgid "Destination IP"
-#~ msgstr "IP de destination"
-
-#~ msgid "IP address"
-#~ msgstr "Adresse IP"
-
-#~ msgid "Source MAC-address"
-#~ msgstr "Adresse MAC source"
diff --git a/applications/luci-app-firewall/po/hu/firewall.po b/applications/luci-app-firewall/po/hu/firewall.po
index 130e604aa1..78c4b2693e 100644
--- a/applications/luci-app-firewall/po/hu/firewall.po
+++ b/applications/luci-app-firewall/po/hu/firewall.po
@@ -518,105 +518,3 @@ msgstr "visszautasítás"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Kérem válasszon --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- egyéni --"
-
-#~ msgid "Destination"
-#~ msgstr "Cél"
-
-#~ msgid "Family"
-#~ msgstr "Család"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Továbbítás ide:%s/%s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Továbbítás ide: %s, %s/%s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Forrás"
-
-#~ msgid "Via"
-#~ msgstr "Keresztül"
-
-#~ msgid "Accept forward"
-#~ msgstr "Továbbítás engedélyezése"
-
-#~ msgid "Accept input"
-#~ msgstr "Bemenet engedélyezése"
-
-#~ msgid "Disable"
-#~ msgstr "Letiltás"
-
-#~ msgid "Discard forward"
-#~ msgstr "Kimenet eldobása"
-
-#~ msgid "Discard input"
-#~ msgstr "Bemenet eldobása"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Ne kövesse a továbbítást"
-
-#~ msgid "Do not track input"
-#~ msgstr "Ne kövesse a bemenetet"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "IP tartomány"
-
-#~ msgid "IPs"
-#~ msgstr "IP-k"
-
-#~ msgid "MAC"
-#~ msgstr "MAC cím"
-
-#~ msgid "MACs"
-#~ msgstr "MAC címek"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Továbbítás megtagadása"
-
-#~ msgid "Refuse input"
-#~ msgstr "Bemenet megtagadása"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "Szabály letiltva"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "Szabály engedélyezve"
-
-#~ msgid "day"
-#~ msgstr "nap"
-
-#~ msgid "hour"
-#~ msgstr "óra"
-
-#~ msgid "minute"
-#~ msgstr "perc"
-
-#~ msgid "not"
-#~ msgstr "nem"
-
-#~ msgid "port"
-#~ msgstr "port"
-
-#~ msgid "ports"
-#~ msgstr "portok"
-
-#~ msgid "second"
-#~ msgstr "másodperc"
-
-#~ msgid "type"
-#~ msgstr "típus"
-
-#~ msgid "types"
-#~ msgstr "típusok"
diff --git a/applications/luci-app-firewall/po/it/firewall.po b/applications/luci-app-firewall/po/it/firewall.po
index c256b12609..064f63d502 100644
--- a/applications/luci-app-firewall/po/it/firewall.po
+++ b/applications/luci-app-firewall/po/it/firewall.po
@@ -93,7 +93,7 @@ msgid "Do not rewrite"
msgstr ""
msgid "Drop invalid packets"
-msgstr ""
+msgstr "Attiva"
msgid "Enable"
msgstr ""
@@ -108,28 +108,28 @@ msgid "Enable logging on this zone"
msgstr ""
msgid "External IP address"
-msgstr ""
+msgstr "Indirizzo IP Esterno"
msgid "External port"
msgstr "Porta Esterna"
msgid "External zone"
-msgstr ""
+msgstr "Zona Esterna"
msgid "Extra arguments"
-msgstr ""
+msgstr "Comandi extra"
msgid "Firewall"
msgstr "Firewall"
msgid "Firewall - Custom Rules"
-msgstr ""
+msgstr "Firewall - Regole Personalizzate"
msgid "Firewall - Port Forwards"
-msgstr ""
+msgstr "Firewall - Inoltro Porte"
msgid "Firewall - Traffic Rules"
-msgstr ""
+msgstr "Firewall - Regole Traffico"
msgid "Firewall - Zone Settings"
msgstr "Firewall - Opzioni delle Zone"
@@ -138,10 +138,10 @@ msgid "Force connection tracking"
msgstr ""
msgid "Forward"
-msgstr ""
+msgstr "Inoltra"
msgid "Forward to"
-msgstr ""
+msgstr "Inoltro a"
msgid "Friday"
msgstr ""
@@ -174,7 +174,7 @@ msgid "IPv6 only"
msgstr "Solo IPv6"
msgid "Input"
-msgstr ""
+msgstr "Ingresso"
msgid "Inter-Zone Forwarding"
msgstr ""
@@ -186,7 +186,7 @@ msgid "Internal port"
msgstr "Porta interna"
msgid "Internal zone"
-msgstr ""
+msgstr "Zona Interna"
msgid "Limit log messages"
msgstr ""
@@ -195,7 +195,7 @@ msgid "MSS clamping"
msgstr ""
msgid "Masquerading"
-msgstr ""
+msgstr "Dettagli"
msgid "Match"
msgstr ""
@@ -232,7 +232,7 @@ msgid "New forward rule"
msgstr ""
msgid "New input rule"
-msgstr ""
+msgstr "Nuova regola di inoltro porta"
msgid "New port forward"
msgstr ""
@@ -272,7 +272,8 @@ msgstr ""
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
-msgstr ""
+msgstr "L'inoltro delle porte permette ai computer in remoto su Internet di"
+"connettersi a uno specifico computer o servizio presente nella tua LAN privata"
msgid "Protocol"
msgstr "Protocollo"
@@ -379,7 +380,8 @@ msgstr ""
msgid ""
"The firewall creates zones over your network interfaces to control network "
"traffic flow."
-msgstr ""
+msgstr "Il firewall crea delle zone nelle tue interfacce di rete per controllare"
+"il flusso del traffico."
msgid ""
"The options below control the forwarding policies between this zone (%s) and "
@@ -496,49 +498,3 @@ msgstr "rifiuta"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr " -- Selezionare --"
-
-#~ msgid "-- custom --"
-#~ msgstr " -- personalizzata --"
-
-#~ msgid "Destination"
-#~ msgstr "Destinazione"
-
-#~ msgid "Source"
-#~ msgstr "Origine"
-
-#~ msgid "Accept input"
-#~ msgstr "Accetta INPUT"
-
-#~ msgid "(optional)"
-#~ msgstr "(facoltativo)"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Porta interna (opzionale)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Opzioni Avanzate"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Regole Avanzate"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Le regole avanzate consentono di personalizzare il firewall per le tue "
-#~ "necessità. Solo le nuove connessioni saranno combinate. I pacchetti "
-#~ "appartenenti alle connessioni già aperte sono automaticamente autorizzate "
-#~ "ad oltrepassare il firewall."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Regole Personalizzate (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Dispositivo"
-
-#~ msgid "Rules"
-#~ msgstr "Regole"
diff --git a/applications/luci-app-firewall/po/ja/firewall.po b/applications/luci-app-firewall/po/ja/firewall.po
index 2eefd55c9c..4e88189eb0 100644
--- a/applications/luci-app-firewall/po/ja/firewall.po
+++ b/applications/luci-app-firewall/po/ja/firewall.po
@@ -551,179 +551,3 @@ msgstr "拒否"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- 選択してください --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- 手動設定 --"
-
-#~ msgid "Destination"
-#~ msgstr "宛先"
-
-#~ msgid "Family"
-#~ msgstr "アドレスファミリ"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "転送先 %s (%s)"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "転送先 %s, %s (%s)"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "送信元"
-
-#~ msgid "To %s"
-#~ msgstr "宛先 %s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "宛先 %s, %s"
-
-#~ msgid "Via"
-#~ msgstr "経由"
-
-#~ msgid "Accept forward"
-#~ msgstr "転送を許可"
-
-#~ msgid "Accept input"
-#~ msgstr "受信を許可"
-
-#~ msgid "Disable"
-#~ msgstr "無効"
-
-#~ msgid "Discard forward"
-#~ msgstr "転送を破棄"
-
-#~ msgid "Discard input"
-#~ msgstr "入力を破棄"
-
-#~ msgid "Do not track forward"
-#~ msgstr "転送の追跡を行わない"
-
-#~ msgid "Do not track input"
-#~ msgstr "入力の追跡を行わない"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "IPレンジ"
-
-#~ msgid "IPs"
-#~ msgstr "IP"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MAC"
-
-#~ msgid "Refuse forward"
-#~ msgstr "転送を拒否"
-
-#~ msgid "Refuse input"
-#~ msgstr "受信を拒否"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "ルール設定は無効になっています"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "ルール設定は有効になっています"
-
-#~ msgid "day"
-#~ msgstr "日"
-
-#~ msgid "hour"
-#~ msgstr "時"
-
-#~ msgid "minute"
-#~ msgstr "分"
-
-#~ msgid "not"
-#~ msgstr "not"
-
-#~ msgid "port"
-#~ msgstr "ポート"
-
-#~ msgid "ports"
-#~ msgstr "ポート"
-
-#~ msgid "second"
-#~ msgstr "秒"
-
-#~ msgid "type"
-#~ msgstr "タイプ"
-
-#~ msgid "types"
-#~ msgstr "タイプ"
-
-#~ msgid "(optional)"
-#~ msgstr "(オプション)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "意図された宛先アドレス"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "内部ポート(オプション)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "詳細なオプション"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "詳細なルール"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "詳細なルール設定を行うことができます。ただし、すでに接続が行われているパ"
-#~ "ケットに関しては、自動的にファイアウォールの通過を許可されます。"
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "手動設定ルール (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "デバイス"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "DNATの場合、設定された宛先アドレスのトラフィックに対して合致を行います。"
-#~ "SNATの場合、送信元アドレスを設定されたアドレスで上書きします。"
-
-#~ msgid "Overview"
-#~ msgstr "概要"
-
-#~ msgid "Port forwarding"
-#~ msgstr "ポートフォワーディング"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "ポートフォワーディングを使用することで、内部ネットワークのサービスを外部に"
-#~ "提供することができます。"
-
-#~ msgid "Redirection type"
-#~ msgstr "転送タイプ"
-
-#~ msgid "Redirections"
-#~ msgstr "転送"
-
-#~ msgid "Rules"
-#~ msgstr "ルール"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "トラフィック転送"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "トラフィック転送機能を用いることで、転送したパケットの宛先アドレスを変更す"
-#~ "ることが可能です。"
diff --git a/applications/luci-app-firewall/po/no/firewall.po b/applications/luci-app-firewall/po/no/firewall.po
index 8938378050..e39eee7e43 100644
--- a/applications/luci-app-firewall/po/no/firewall.po
+++ b/applications/luci-app-firewall/po/no/firewall.po
@@ -512,96 +512,3 @@ msgstr "avslå"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Vennligst velg --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- egendefinert --"
-
-#~ msgid "Destination"
-#~ msgstr "Destinasjon"
-
-#~ msgid "Family"
-#~ msgstr "Adressefamilie"
-
-#~ msgid "Source"
-#~ msgstr "Kilde"
-
-#~ msgid "Via"
-#~ msgstr "Via"
-
-#~ msgid "(optional)"
-#~ msgstr "(valgfritt)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Ønsket destinasjon adresse"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Intern port (valgfritt)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Avanserte Valg"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Avanserte Regler"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Avanserte regler lar deg tilpasse brannmuren til dine behov. Kun nye "
-#~ "tilkoblinger blir berørt. Pakker som tilhører eksisterende tilkoblinger "
-#~ "slipper derfor igjennom brannmuren."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Egendefinerte Regler (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Enhet"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "DNAT: Matcher innkommende trafikk som er rettet mot destinasjons IP-"
-#~ "adressen du angir her. SNAT: Omskriver kilde IP-adressen slik at den blir "
-#~ "lik den IP-adressen du angir her."
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr "Match innkommende trafikk som kommer fra dette port/portområde"
-
-#~ msgid "Overview"
-#~ msgstr "Oversikt"
-
-#~ msgid "Port forwarding"
-#~ msgstr "Port Videresending"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "<abbr title=\"Port Forwarding\">Port Videresending</abbr> tillater at "
-#~ "tjenester fra det interne nettverket kan tilbys et eksternt nettverk."
-
-#~ msgid "Redirection type"
-#~ msgstr "Omadressering type"
-
-#~ msgid "Redirections"
-#~ msgstr "Omadresseringer"
-
-#~ msgid "Rules"
-#~ msgstr "Regler"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Trafikk Omadressering"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "<abbr title=\"Traffic Redirection\">Trafikk Omadressering</abbr> lar deg "
-#~ "endre destinasjons adresse på videresendte pakker."
diff --git a/applications/luci-app-firewall/po/pl/firewall.po b/applications/luci-app-firewall/po/pl/firewall.po
index da6917faaf..7a598d8085 100644
--- a/applications/luci-app-firewall/po/pl/firewall.po
+++ b/applications/luci-app-firewall/po/pl/firewall.po
@@ -525,139 +525,3 @@ msgstr "odrzucaj"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Proszę wybrać --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- własne --"
-
-#~ msgid "Destination"
-#~ msgstr "Miejsce przeznaczenia"
-
-#~ msgid "Family"
-#~ msgstr "Rodzina"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Przekazuj do %s w %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Przekazuj d0 %s, %s w %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Źródło"
-
-#~ msgid "To %s"
-#~ msgstr "Do %s"
-
-#~ msgid "Via"
-#~ msgstr "przez"
-
-#~ msgid "Accept forward"
-#~ msgstr "Akceptuj przekazywanie"
-
-#~ msgid "Accept input"
-#~ msgstr "Akceptuj wejście"
-
-#~ msgid "Disable"
-#~ msgstr "Wyłącz"
-
-#~ msgid "Discard forward"
-#~ msgstr "Odrzuć przekazywanie"
-
-#~ msgid "Discard input"
-#~ msgstr "Odrzuć wejście"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Nie śledź przekazywania"
-
-#~ msgid "Do not track input"
-#~ msgstr "Nie śledź wejścia"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "Zakres IP"
-
-#~ msgid "IPs"
-#~ msgstr "Numery IP"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "Adresy MAC"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "Reguła jest wyłączona"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "Reguła jest włączona"
-
-#~ msgid "day"
-#~ msgstr "dzień"
-
-#~ msgid "port"
-#~ msgstr "port"
-
-#~ msgid "ports"
-#~ msgstr "porty"
-
-#~ msgid "(optional)"
-#~ msgstr "(opcjonalne)"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Wewnętrzny port (opcjonalnie)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Opcje zaawansowane"
-
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/trule.lua #
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-# msgid "Name"
-# msgstr ""
-# msgid "(optional)"
-# msgstr ""
-# msgid "Protocol"
-# msgstr ""
-# msgid "Source port"
-# msgstr ""
-# msgid "Destination port"
-# msgstr ""
-# msgid "Action"
-# msgstr ""
-# msgid "drop"
-# msgstr ""
-# msgid "accept"
-# msgstr ""
-# msgid "reject"
-# msgstr ""
-#~ msgid "Advanced Rules"
-#~ msgstr "Reguły zaawansowane"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Reguły zaawansowane pozwalają dostosować zaporę do Twoich potrzeb. Tylko "
-#~ "nowe połączenia zostaną nimi objęte. Pakiety należące do połączeń już "
-#~ "otwarte są automatycznie przepuszczane przez zaporę."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Reguły własne (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Urządzenie"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Dla DNAT, dopasuj ruch przychodzący kierowane na podany adres IP. Dla "
-#~ "SNAT zmienić adres źródłowy na podany adres."
diff --git a/applications/luci-app-firewall/po/pt-br/firewall.po b/applications/luci-app-firewall/po/pt-br/firewall.po
index eba339336c..c1cfb4287d 100644
--- a/applications/luci-app-firewall/po/pt-br/firewall.po
+++ b/applications/luci-app-firewall/po/pt-br/firewall.po
@@ -517,266 +517,3 @@ msgstr "rejeitar"
# 20140621: edersg: tradução
msgid "traffic"
msgstr "Tráfego"
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Por favor, escolha --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- personalizado --"
-
-#~ msgid "Destination"
-#~ msgstr "Destino"
-
-#~ msgid "Family"
-#~ msgstr "Família"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "Encaminhar para %s em %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "Encaminhar para %s, %s em %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Origem"
-
-#~ msgid "To %s"
-#~ msgstr "Para %s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "Para %s em %s"
-
-#~ msgid "Via"
-#~ msgstr "Via"
-
-#~ msgid "Accept forward"
-#~ msgstr "Aceitar encaminhamento"
-
-#~ msgid "Accept input"
-#~ msgstr "Aceitar entrada"
-
-#~ msgid "Disable"
-#~ msgstr "Desabilitado"
-
-#~ msgid "Discard forward"
-#~ msgstr "Descartar o encaminhamento"
-
-#~ msgid "Discard input"
-#~ msgstr "Descartar a entrada"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Não rastreie o encaminhamento"
-
-#~ msgid "Do not track input"
-#~ msgstr "Não rastreie a entrada"
-
-#~ msgid "IP"
-#~ msgstr "Endereço IP"
-
-#~ msgid "IP range"
-#~ msgstr "Faixa de endereço IP"
-
-#~ msgid "IPs"
-#~ msgstr "Endereços IP"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MACs"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Rejeitar encaminhamento"
-
-#~ msgid "Refuse input"
-#~ msgstr "Rejeitar entrada"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "A regra está desabilitada"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "A regra está habilitada"
-
-#~ msgid "day"
-#~ msgstr "dia"
-
-#~ msgid "hour"
-#~ msgstr "hora"
-
-#~ msgid "minute"
-#~ msgstr "minuto"
-
-#~ msgid "not"
-#~ msgstr "não"
-
-#~ msgid "port"
-#~ msgstr "porta"
-
-#~ msgid "ports"
-#~ msgstr "portas"
-
-#~ msgid "second"
-#~ msgstr "segundo"
-
-#~ msgid "type"
-#~ msgstr "tipo"
-
-#~ msgid "types"
-#~ msgstr "tipos"
-
-#~ msgid "(optional)"
-#~ msgstr "(opcional)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Endereço de destino planejado"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Porta interna (opcional)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Opções Avançadas"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Regras Avançadas"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "As regras avançadas permitem a personalização da firewall de acordo com "
-#~ "as necessidades. Apenas as novas conexões serão processadas. Pacotes que "
-#~ "pertençam a conexões já abertas estão automaticamente autorizados a "
-#~ "passar pelo firewall."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Regras Personalizadas (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Dispositivo"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Para DNAT, casa com tráfego entrante direcionado para um dado endereço IP "
-#~ "de destino. Para SNAT, reescreve o endereço de origem para um dado "
-#~ "endereço."
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr ""
-#~ "Casa o tráfego entrante originado de uma porta ou faixa de portas de "
-#~ "origem específica no computador do cliente"
-
-#~ msgid "Overview"
-#~ msgstr "Visão geral"
-
-#~ msgid "Port forwarding"
-#~ msgstr "Redirecionamento de portas"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "O redirecionamento de portas permite disponibilizar serviços da rede "
-#~ "interna para uma rede externa."
-
-#~ msgid "Redirection type"
-#~ msgstr "Tipo de redirecionamento"
-
-#~ msgid "Redirections"
-#~ msgstr "Redirecionamentos"
-
-#~ msgid "Rules"
-#~ msgstr "Regras"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Redirecionamento de Tráfego"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Redirecionamento do tráfego permite a alteração do endereço de destino "
-#~ "dos pacotes encaminhados."
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Redes"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Controle de Tráfego"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Tráfego de Zona-para-Zona"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Aqui você pode especificar qual tráfego de rede será permitido para o "
-#~ "fluxo entre zonas das redes. Somente novas conexões serão processadas. "
-#~ "Pacotes pertencentes à conexões já abertas estão automaticamente "
-#~ "permitidos para passar pelo firewall."
-
-#~ msgid "Zone"
-#~ msgstr "Zona"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Destino"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "Endereço IP"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Endereço MAC de origem"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Redirecionamento personalizado"
-
-#~ msgid "Input Zone"
-#~ msgstr "Zona de Entrada"
-
-#~ msgid "Output Zone"
-#~ msgstr "Zona de Saída"
-
-#~ msgid "External Zone"
-#~ msgstr "Zona Externa"
-
-#~ msgid "Source MAC"
-#~ msgstr "MAC de origem"
-
-#~ msgid "Defaults"
-#~ msgstr "Padrões"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Estas são as configurações padrões, que serão usadas se não houver outras "
-#~ "regras."
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Zonas são interfaces de redes usadas para separar o tráfego da rede. Uma "
-#~ "ou mais redes podem pertencer a uma zona. A flag-MASQ ativa o "
-#~ "mascaramento NAT para todo o tráfego de saída desta zona."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "redes contidas"
diff --git a/applications/luci-app-firewall/po/pt/firewall.po b/applications/luci-app-firewall/po/pt/firewall.po
index 1c17affd18..70bf2fa3ef 100644
--- a/applications/luci-app-firewall/po/pt/firewall.po
+++ b/applications/luci-app-firewall/po/pt/firewall.po
@@ -500,128 +500,3 @@ msgstr "rejeitar"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Escolha por favor --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- personalizado --"
-
-#~ msgid "Destination"
-#~ msgstr "Destino"
-
-#~ msgid "Source"
-#~ msgstr "Origem"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Porta interna (opcional)"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Regras Avançadas"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "As regras avançadas permitem a personalização da firewall de acordo com "
-#~ "as necessidades. Apenas as novas ligações serão processadas. Pacotes que "
-#~ "pertençam a ligações já abertas estão automaticamente autorizados a "
-#~ "passar pela firewall."
-
-#~ msgid "Port forwarding"
-#~ msgstr "Redirecionamento de portas"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "O redirecionamento de portas permite disponibilizar serviços na rede "
-#~ "interna para uma rede externa."
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Redirecionamento de Tráfego"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Redirecionamento do tráfego permite a alteração do endereço de destino "
-#~ "dos pacotes enviados."
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Redes"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Controle de Tráfego"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Tráfego de Zona-para-Zona"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Aqui você pode especificar qual tráfego de rede será permitido para o "
-#~ "fluxo entre zonas das redes. Somente novas conexões serão processadas. "
-#~ "Pacotes pertencentes à conexões já abertas estão automaticamente "
-#~ "permitidos para passar pelo firewall."
-
-#~ msgid "Zone"
-#~ msgstr "Zona"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Destino"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "Endereço IP"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Endereço MAC de origem"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Redirecionamento personalizado"
-
-#~ msgid "Input Zone"
-#~ msgstr "Zona de Entrada"
-
-#~ msgid "Output Zone"
-#~ msgstr "Zona de Saída"
-
-#~ msgid "External Zone"
-#~ msgstr "Zona Externa"
-
-#~ msgid "Source MAC"
-#~ msgstr "MAC de origem"
-
-#~ msgid "Defaults"
-#~ msgstr "Padrões"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Estas são as configurações padrões, que serão usadas se não houver outras "
-#~ "regras."
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Zonas são interfaces de redes usadas para separar o tráfego da rede. Uma "
-#~ "ou mais redes podem pertencer a uma zona. A flag-MASQ ativa o "
-#~ "mascaramento NAT para todo o tráfego de saída desta zona."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "redes contidas"
diff --git a/applications/luci-app-firewall/po/ro/firewall.po b/applications/luci-app-firewall/po/ro/firewall.po
index 9927d34b03..432a41b897 100644
--- a/applications/luci-app-firewall/po/ro/firewall.po
+++ b/applications/luci-app-firewall/po/ro/firewall.po
@@ -470,76 +470,3 @@ msgstr ""
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Alege --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- personalizat --"
-
-#~ msgid "Destination"
-#~ msgstr "Destinatie"
-
-#~ msgid "Family"
-#~ msgstr "Familia proto"
-
-#~ msgid "Source"
-#~ msgstr "Sursa"
-
-#~ msgid "Via"
-#~ msgstr "Prin"
-
-#~ msgid "(optional)"
-#~ msgstr "(optional)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Adresa destinatie intentionata"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Port intern (optional)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Optiuni avansate"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Reguli avansate"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Regulile avansate iti permit particularizarea firewall-ului dupa nevoi. "
-#~ "Numai conexiunile noi vor fi luate in calcul. Pachetele care apartin unor "
-#~ "conexiuni deja stabilite trec deja prin firewall."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Reguli suplimentare (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Dispozitiv"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Pentru DNAT, leaga traficul venit redirectat catre destinatia IP. Pentru "
-#~ "SNAT rescrie adresa sursa ca fiind adresa IP."
-
-#~ msgid "Overview"
-#~ msgstr "Sumar"
-
-#~ msgid "Port forwarding"
-#~ msgstr "Forwardare catre port"
-
-#~ msgid "Redirection type"
-#~ msgstr "Tipul de redirectare"
-
-#~ msgid "Redirections"
-#~ msgstr "Redirectari"
-
-#~ msgid "Rules"
-#~ msgstr "Reguli"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Redirectarea traficului"
diff --git a/applications/luci-app-firewall/po/ru/firewall.po b/applications/luci-app-firewall/po/ru/firewall.po
index 4c57719521..294d9db6d9 100644
--- a/applications/luci-app-firewall/po/ru/firewall.po
+++ b/applications/luci-app-firewall/po/ru/firewall.po
@@ -540,182 +540,3 @@ msgstr "отвергать"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Пожалуйста, выберите --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- пользовательский --"
-
-#~ msgid "Destination"
-#~ msgstr "Назначение"
-
-#~ msgid "Family"
-#~ msgstr "Семейство"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Источник"
-
-#~ msgid "To %s"
-#~ msgstr "к %s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "к %s на %s"
-
-#~ msgid "Via"
-#~ msgstr "Через"
-
-#~ msgid "Accept forward"
-#~ msgstr "Принимать перенаправление"
-
-#~ msgid "Accept input"
-#~ msgstr "Принимать входящие"
-
-#~ msgid "Disable"
-#~ msgstr "Отключить"
-
-#~ msgid "Discard forward"
-#~ msgstr "Отвергать перенаправление"
-
-#~ msgid "Discard input"
-#~ msgstr "Выбрасывать входящие пакеты"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Не отслеживать перенаправление"
-
-#~ msgid "Do not track input"
-#~ msgstr "Не отслеживать входные пакеты"
-
-#~ msgid "IP"
-#~ msgstr "IP-адрес"
-
-#~ msgid "IP range"
-#~ msgstr "Диапазон IP-адресов"
-
-#~ msgid "IPs"
-#~ msgstr "IP-адреса"
-
-#~ msgid "MAC"
-#~ msgstr "MAC-адрес"
-
-#~ msgid "MACs"
-#~ msgstr "MAC-адреса"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Отвергать перенаправление"
-
-#~ msgid "Refuse input"
-#~ msgstr "Отвергать входящий трафик"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "Правило выключено"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "Правило включено"
-
-#~ msgid "day"
-#~ msgstr "день"
-
-#~ msgid "hour"
-#~ msgstr "час"
-
-#~ msgid "minute"
-#~ msgstr "мин"
-
-#~ msgid "not"
-#~ msgstr "не"
-
-#~ msgid "port"
-#~ msgstr "порт"
-
-#~ msgid "ports"
-#~ msgstr "порты"
-
-#~ msgid "second"
-#~ msgstr "сек"
-
-#~ msgid "type"
-#~ msgstr "тип"
-
-#~ msgid "types"
-#~ msgstr "типы"
-
-#~ msgid "(optional)"
-#~ msgstr "(необязательно)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Адрес назначения"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Внутренний порт (необязательно)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Расширенные опции"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Расширенные правила"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Расширенные правила позволяют настроить сетевой экран в соответствии с "
-#~ "вашими потребностями. Только новые соединения будут обработаны. Пакеты, "
-#~ "принадлежащие уже существующим соединениям, будут автоматически пропущены "
-#~ "через сетевой экран."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Пользовательские правила (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Устройство"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Для DNAT соответствующий трафик перенаправляется на введенный адрес "
-#~ "назначения. Для SNAT подменяется адрес источника на введенный."
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr ""
-#~ "Выбирать исходящий трафик отправленный с порта или диапазона портов "
-#~ "внешнего хоста"
-
-#~ msgid "Overview"
-#~ msgstr "Назад к обзору"
-
-#~ msgid "Port forwarding"
-#~ msgstr "Перенаправление портов"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "Перенаправление портов позволяет открыть доступ к внутренним службам из "
-#~ "внешней сети."
-
-#~ msgid "Redirection type"
-#~ msgstr "Тип перенаправления"
-
-#~ msgid "Redirections"
-#~ msgstr "Перенаправления"
-
-#~ msgid "Rules"
-#~ msgstr "Правила"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Перенаправление трафика"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Перенаправление трафика позволяет изменить адрес получателя для "
-#~ "проходящих пакетов."
diff --git a/applications/luci-app-firewall/po/uk/firewall.po b/applications/luci-app-firewall/po/uk/firewall.po
index 0eeed83940..b946d6b955 100644
--- a/applications/luci-app-firewall/po/uk/firewall.po
+++ b/applications/luci-app-firewall/po/uk/firewall.po
@@ -514,148 +514,3 @@ msgstr "відкидати"
msgid "traffic"
msgstr ""
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- Виберіть --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- додатково --"
-
-#~ msgid "Destination"
-#~ msgstr "Призначення"
-
-#~ msgid "Family"
-#~ msgstr "Сімейство"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "спрямовування до %s у %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "спрямовування до %s, %s у %s"
-
-#~ msgid "SNAT"
-#~ msgstr "SNAT"
-
-#~ msgid "Source"
-#~ msgstr "Джерело"
-
-#~ msgid "To %s"
-#~ msgstr "%s"
-
-#~ msgid "To %s at %s"
-#~ msgstr "%s через %s"
-
-#~ msgid "Via"
-#~ msgstr "Через"
-
-#~ msgid "Accept forward"
-#~ msgstr "Приймати спрямовування"
-
-#~ msgid "Accept input"
-#~ msgstr "Приймати вхідні"
-
-#~ msgid "Disable"
-#~ msgstr "Вимкнути"
-
-#~ msgid "Discard forward"
-#~ msgstr "Скасувати спрямовування"
-
-#~ msgid "Discard input"
-#~ msgstr "Скасувати введення"
-
-#~ msgid "Do not track forward"
-#~ msgstr "Не відстежувати спрямовування"
-
-#~ msgid "Do not track input"
-#~ msgstr "Не відстежувати введення"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "діапазон IP"
-
-#~ msgid "IPs"
-#~ msgstr "IP"
-
-#~ msgid "MAC"
-#~ msgstr "MAC"
-
-#~ msgid "MACs"
-#~ msgstr "MAC"
-
-#~ msgid "Refuse forward"
-#~ msgstr "Відкидати спрямовування"
-
-#~ msgid "Refuse input"
-#~ msgstr "Відкидати вхідні дані"
-
-#~ msgid "Rule is disabled"
-#~ msgstr "Правило вимкнене"
-
-#~ msgid "Rule is enabled"
-#~ msgstr "Правило ввімкнене"
-
-#~ msgid "day"
-#~ msgstr "день"
-
-#~ msgid "hour"
-#~ msgstr "годину"
-
-#~ msgid "minute"
-#~ msgstr "хвилину"
-
-#~ msgid "not"
-#~ msgstr "не"
-
-#~ msgid "port"
-#~ msgstr "порт"
-
-#~ msgid "ports"
-#~ msgstr "порти"
-
-#~ msgid "second"
-#~ msgstr "секунду"
-
-#~ msgid "type"
-#~ msgstr "типом"
-
-#~ msgid "types"
-#~ msgstr "типами"
-
-#~ msgid "(optional)"
-#~ msgstr "(необов'язково)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "Адреса призначення"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Внутрішній порт (необов'язково)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "Додаткові параметри"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Розширені правила"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Розширені правила дозволяють налаштувати брандмауер для ваших потреб. "
-#~ "Лише нові з'єднання будуть узгоджені. Пакети, що належать вже відкриті "
-#~ "з'єднання автоматично пропускаються брандмауером."
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "Користувацькі правила (/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "Пристрій"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "Для DNAT узгоджує вхідний трафік, спрямований до відповідної IP адреси "
-#~ "призначення. Для SNAT заміняє адресу джерела на дану адресу"
diff --git a/applications/luci-app-firewall/po/vi/firewall.po b/applications/luci-app-firewall/po/vi/firewall.po
index dbbf3b0b79..93d6d6658e 100644
--- a/applications/luci-app-firewall/po/vi/firewall.po
+++ b/applications/luci-app-firewall/po/vi/firewall.po
@@ -481,121 +481,3 @@ msgstr "Không chấp nhận"
msgid "traffic"
msgstr ""
-
-#~ msgid "Destination"
-#~ msgstr "Điểm đến"
-
-#~ msgid "Source"
-#~ msgstr "Nguồn"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "Internal port (tùy chọn)"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "Luật cấp cao"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "Luật cấp cao để bạn tùy chỉnh firewall mà bạn cần. Chỉ những kết nối mới "
-#~ "sẽ được làm cho phù hợp. Các gói thuộc đã mở các kết nối sẽ tự động cho "
-#~ "phép vượt qua firewall."
-
-#~ msgid "Port forwarding"
-#~ msgstr "Cổng chuyển tiếp"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr ""
-#~ "Cổng chuyển tiếp cho phép cung cấp những dịch vụ mạng trong vùng tới một "
-#~ "ngoại mạng. "
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "Sự chuyển hướng lưu thông"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr ""
-#~ "Sự chuyển hướng lưu thông cho phép bạn thay đổi địa chỉ điểm đến của gói "
-#~ "chuyển tiếp. "
-
-#, fuzzy
-#~ msgid "Network"
-#~ msgstr "Networks"
-
-#~ msgid "Traffic Control"
-#~ msgstr "Điều khiển lưu thông"
-
-#~ msgid "Zone-to-Zone traffic"
-#~ msgstr "Lưu thông Zone- to - Zone"
-
-#, fuzzy
-#~ msgid ""
-#~ "Here you can specify which network traffic is allowed to flow between "
-#~ "network zones. Only new connections will be matched. Packets belonging "
-#~ "to already open connections are automatically allowed to pass the "
-#~ "firewall. If you experience occasional connection problems try enabling "
-#~ "MSS Clamping otherwise disable it for performance reasons."
-#~ msgstr ""
-#~ "Tại đây bạn có thể xác định được mạng lưới giao thông được phép lưu lượng "
-#~ "qua network zone. Chỉ có kết nối mới sẽ là phù hợp. Các gói thuộc kết nối "
-#~ "đã mở được tự động được cho phép để vượt qua firewall. Nếu bạn gặp vấn đề "
-#~ "kết nối thử kích hoạt MSS Clamping hoặc vô hiệu hóa nó vì lý do thực thi."
-
-#~ msgid "Zone"
-#~ msgstr "Zone"
-
-#, fuzzy
-#~ msgid "Destination IP"
-#~ msgstr "Điểm đến"
-
-#, fuzzy
-#~ msgid "IP address"
-#~ msgstr "Địa chỉ IP"
-
-#, fuzzy
-#~ msgid "Source MAC-address"
-#~ msgstr "Đỉa chỉ MAC nguồn"
-
-#~ msgid "Custom forwarding"
-#~ msgstr "Tùy chỉnh chuyển tiếp"
-
-#~ msgid "Input Zone"
-#~ msgstr "Input Zone"
-
-#~ msgid "Output Zone"
-#~ msgstr "Output Zone"
-
-#~ msgid "External Zone"
-#~ msgstr "External Zone"
-
-#~ msgid "Source MAC"
-#~ msgstr "Nguồn MAC"
-
-#~ msgid "Defaults"
-#~ msgstr "Mặc định"
-
-#~ msgid ""
-#~ "These are the default settings that are used if no other rules match."
-#~ msgstr ""
-#~ "Có những cài đặt mặc định được dùng nếu những cái luật khác không phù hợp"
-
-#~ msgid ""
-#~ "Zones part the network interfaces into certain isolated areas to separate "
-#~ "network traffic. One or more networks can belong to a zone. The MASQ-flag "
-#~ "enables NAT masquerading for all outgoing traffic on this zone."
-#~ msgstr ""
-#~ "Phân vùng các phần giao diện mạng vào những khu vực cô lập nhất định để "
-#~ "phân chia mạng lưới lưu thông. Một hoặc nhiều mạng lưới có thể thuộc vào "
-#~ "một khu. Các MASQ-flag kích hoạt NAT masquerading cho tất cả các lưu "
-#~ "lượng giao thông trên khu vực này."
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
-
-#~ msgid "contained networks"
-#~ msgstr "contained networks"
diff --git a/applications/luci-app-firewall/po/zh-cn/firewall.po b/applications/luci-app-firewall/po/zh-cn/firewall.po
index 99e12e8cf1..48d22b03e5 100644
--- a/applications/luci-app-firewall/po/zh-cn/firewall.po
+++ b/applications/luci-app-firewall/po/zh-cn/firewall.po
@@ -516,116 +516,3 @@ msgstr "拒绝"
msgid "traffic"
msgstr "交通"
-
-#~ msgid "-- Please choose --"
-#~ msgstr "-- 请选择 --"
-
-#~ msgid "-- custom --"
-#~ msgstr "-- 自定义 --"
-
-#~ msgid "Destination"
-#~ msgstr "目标"
-
-#~ msgid "Family"
-#~ msgstr "地址集合"
-
-#~ msgid "Forward to %s in %s"
-#~ msgstr "转发到 %s 位于 %s"
-
-#~ msgid "Forward to %s, %s in %s"
-#~ msgstr "转发到 %s, %s 位于 %s"
-
-#~ msgid "Source"
-#~ msgstr "源"
-
-#~ msgid "Via"
-#~ msgstr "通过"
-
-#~ msgid "Disable"
-#~ msgstr "禁用"
-
-#~ msgid "Do not track forward"
-#~ msgstr "不要追踪转发"
-
-#~ msgid "Do not track input"
-#~ msgstr "不要追踪进入"
-
-#~ msgid "IP"
-#~ msgstr "IP"
-
-#~ msgid "IP range"
-#~ msgstr "IP范围"
-
-#~ msgid "(optional)"
-#~ msgstr "(可选)"
-
-#~ msgid "Intended destination address"
-#~ msgstr "目标地址"
-
-#~ msgid "Internal port (optional)"
-#~ msgstr "内部端口(可选)"
-
-#~ msgid "Advanced Options"
-#~ msgstr "高级选项"
-
-#~ msgid "Advanced Rules"
-#~ msgstr "高级规则"
-
-#~ msgid ""
-#~ "Advanced rules let you customize the firewall to your needs. Only new "
-#~ "connections will be matched. Packets belonging to already open "
-#~ "connections are automatically allowed to pass the firewall."
-#~ msgstr ""
-#~ "高级规则允许按需定制防火墙。此规则只限制新建立的连接,对于已建立链路的数据"
-#~ "包会自动允许通过。"
-
-#~ msgid "Custom Rules (/etc/firewall.user)"
-#~ msgstr "自定义规则(/etc/firewall.user)"
-
-#~ msgid "Device"
-#~ msgstr "设备"
-
-#~ msgid ""
-#~ "For DNAT, match incoming traffic directed at the given destination ip "
-#~ "address. For SNAT rewrite the source address to the given address."
-#~ msgstr ""
-#~ "DNAT:将目标地址转换为指定的IP地址;SNAT:将源地址转换为指定的IP地址。"
-
-#~ msgid ""
-#~ "Match incoming traffic originating from the given source port or port "
-#~ "range on the client host"
-#~ msgstr "在客户端上,比较输入通道与给定的源端口是否一致。"
-
-#~ msgid "Overview"
-#~ msgstr "概览"
-
-#~ msgid "Port forwarding"
-#~ msgstr "端口转发"
-
-#~ msgid ""
-#~ "Port forwarding allows to provide network services in the internal "
-#~ "network to an external network."
-#~ msgstr "端口转发-允许外部网络访问内部网络"
-
-#~ msgid "Redirection type"
-#~ msgstr "重定向类型"
-
-#~ msgid "Redirections"
-#~ msgstr "重定向"
-
-#~ msgid "Rules"
-#~ msgstr "规则"
-
-#~ msgid "Traffic Redirection"
-#~ msgstr "流量重定向"
-
-#~ msgid ""
-#~ "Traffic redirection allows you to change the destination address of "
-#~ "forwarded packets."
-#~ msgstr "流量重定向允许你修改数据包转发地址"
-
-#~ msgid "Zone"
-#~ msgstr "区"
-
-#~ msgid "MASQ"
-#~ msgstr "MASQ"
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
index af515fc59a..1bbee83c35 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
@@ -235,7 +235,6 @@ for _, option in ipairs(params) do
o.value = option[3]
else
if option[1] == DynamicList then
- o.cast = nil
function o.cfgvalue(...)
local val = AbstractValue.cfgvalue(...)
return ( val and type(val) ~= "table" ) and { val } or val
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
index 8385839a8f..aaa1979c41 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
@@ -62,7 +62,6 @@ for _, option in ipairs(basicParams) do
o.value = option[3]
else
if option[1] == DynamicList then
- o.cast = nil
function o.cfgvalue(...)
local val = AbstractValue.cfgvalue(...)
return ( val and type(val) ~= "table" ) and { val } or val
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua
index 8b2ce5a85a..719145b887 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua
@@ -25,6 +25,15 @@ uci:foreach( "openvpn_recipes", "openvpn_recipe",
end
)
+function s.getPID(section) -- Universal function which returns valid pid # or nil
+ local pid = sys.exec("%s | grep -w %s | grep openvpn | grep -v grep | awk '{print $1}'" % { psstring,section} )
+ if pid and #pid > 0 and tonumber(pid) ~= nil then
+ return tonumber(pid)
+ else
+ return nil
+ end
+end
+
function s.parse(self, section)
local recipe = luci.http.formvalue(
luci.cbi.CREATE_PREFIX .. self.config .. "." ..
@@ -68,8 +77,8 @@ s:option( Flag, "enabled", translate("Enabled") )
local active = s:option( DummyValue, "_active", translate("Started") )
function active.cfgvalue(self, section)
- local pid = sys.exec("%s | grep %s | grep openvpn | grep -v grep | awk '{print $1}'" % { psstring,section} )
- if pid and #pid > 0 and tonumber(pid) ~= nil then
+ local pid = s.getPID(section)
+ if pid ~= nil then
return (sys.process.signal(pid, 0))
and translatef("yes (%i)", pid)
or translate("no")
@@ -83,8 +92,8 @@ updown.redirect = luci.dispatcher.build_url(
"admin", "services", "openvpn"
)
function updown.cbid(self, section)
- local pid = sys.exec("%s | grep %s | grep openvpn | grep -v grep | awk '{print $1}'" % { psstring,section} )
- self._state = pid and #pid > 0 and sys.process.signal(pid, 0)
+ local pid = s.getPID(section)
+ self._state = pid ~= nil and sys.process.signal(pid, 0)
self.option = self._state and "stop" or "start"
return AbstractValue.cbid(self, section)
end
@@ -94,8 +103,10 @@ function updown.cfgvalue(self, section)
end
function updown.write(self, section, value)
if self.option == "stop" then
- local pid = sys.exec("%s | grep %s | grep openvpn | grep -v grep | awk '{print $1}'" % { psstring,section} )
- sys.process.signal(pid,15)
+ local pid = s.getPID(section)
+ if pid ~= nil then
+ sys.process.signal(pid,15)
+ end
else
luci.sys.call("/etc/init.d/openvpn start %s" % section)
end
diff --git a/applications/luci-app-p2pblock/Makefile b/applications/luci-app-p2pblock/Makefile
index 4dbeb5eaa5..137849cd25 100644
--- a/applications/luci-app-p2pblock/Makefile
+++ b/applications/luci-app-p2pblock/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Support for the Freifunk P2P-Block addon
-LUCI_DEPENDS:=+luci-app-firewall +freifunk-p2pblock
+LUCI_DEPENDS:=+luci-app-firewall +freifunk-p2pblock @BROKEN
include ../../luci.mk
diff --git a/applications/luci-app-pbx-voicemail/Makefile b/applications/luci-app-pbx-voicemail/Makefile
index d31d429f13..eefe0fd249 100644
--- a/applications/luci-app-pbx-voicemail/Makefile
+++ b/applications/luci-app-pbx-voicemail/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI PBX Administration Voicemail Support
-LUCI_DEPENDS:=+luci-app-pbx +asterisk18 +msmtp +coreutils-base64
+LUCI_DEPENDS:=+luci-app-pbx +asterisk18 +msmtp +coreutils-base64 @BROKEN
include ../../luci.mk
diff --git a/applications/luci-app-pbx/Makefile b/applications/luci-app-pbx/Makefile
index 1379dcf890..772713b444 100644
--- a/applications/luci-app-pbx/Makefile
+++ b/applications/luci-app-pbx/Makefile
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI PBX Administration
-LUCI_DEPENDS:= \
+LUCI_DEPENDS:= @BROKEN \
+asterisk18 +asterisk18-app-authenticate +asterisk18-app-disa \
+asterisk18-app-setcallerid +asterisk18-app-system +asterisk18-chan-gtalk \
+asterisk18-codec-a-mu +asterisk18-codec-alaw +asterisk18-func-cut \
diff --git a/applications/luci-app-polipo/luasrc/model/cbi/polipo.lua b/applications/luci-app-polipo/luasrc/model/cbi/polipo.lua
index 967a47aa7b..6031c84236 100644
--- a/applications/luci-app-polipo/luasrc/model/cbi/polipo.lua
+++ b/applications/luci-app-polipo/luasrc/model/cbi/polipo.lua
@@ -80,7 +80,7 @@ o = s:taboption("proxy", Value, "parentProxy",
"will forward the requests."))
o.optional = true
-o.datatype = "ipaddr"
+o.datatype = "hostport"
o = s:taboption("proxy", Value, "parentAuthCredentials",
diff --git a/applications/luci-app-privoxy/Makefile b/applications/luci-app-privoxy/Makefile
index 45d72d4ef0..e174c807b8 100644
--- a/applications/luci-app-privoxy/Makefile
+++ b/applications/luci-app-privoxy/Makefile
@@ -10,7 +10,7 @@ PKG_NAME:=luci-app-privoxy
# Version == major.minor.patch
# increase "minor" on new functionality and "patch" on patches/optimization
-PKG_VERSION:=1.0.5
+PKG_VERSION:=1.0.6
# Release == build
# increase on changes of translation files
diff --git a/applications/luci-app-privoxy/luasrc/controller/privoxy.lua b/applications/luci-app-privoxy/luasrc/controller/privoxy.lua
index 0cedab48ae..6439a30c3f 100644
--- a/applications/luci-app-privoxy/luasrc/controller/privoxy.lua
+++ b/applications/luci-app-privoxy/luasrc/controller/privoxy.lua
@@ -1,16 +1,24 @@
--- Copyright 2014 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
+-- Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
-- Licensed under the Apache License, Version 2.0
module("luci.controller.privoxy", package.seeall)
local NX = require "nixio"
local NXFS = require "nixio.fs"
+local DISP = require "luci.dispatcher"
local HTTP = require "luci.http"
+local I18N = require "luci.i18n" -- not globally avalible here
+local IPKG = require "luci.model.ipkg"
local UCI = require "luci.model.uci"
local UTIL = require "luci.util"
local SYS = require "luci.sys"
-PRIVOXY_MIN = "3.0.22-0" -- minimum version of service required
+local srv_name = "privoxy"
+local srv_ver_min = "3.0.23" -- minimum version of service required
+local srv_ver_cmd = [[/usr/sbin/privoxy --version | awk {'print $3'}]]
+local app_name = "luci-app-privoxy"
+local app_title = "Privoxy WEB proxy"
+local app_version = "1.0.6-1"
function index()
entry( {"admin", "services", "privoxy"}, cbi("privoxy"), _("Privoxy WEB proxy"), 59)
@@ -19,6 +27,73 @@ function index()
entry( {"admin", "services", "privoxy", "status"}, call("get_pid") ).leaf = true
end
+-- Application specific information functions
+function app_description()
+ return I18N.translate("Privoxy is a non-caching web proxy with advanced filtering "
+ .. "capabilities for enhancing privacy, modifying web page data and HTTP headers, "
+ .. "controlling access, and removing ads and other obnoxious Internet junk.")
+ .. [[<br /><strong>]]
+ .. I18N.translate("For help use link at the relevant option")
+ .. [[</strong>]]
+end
+
+-- Standardized application/service functions
+function app_title_main()
+ return [[<a href="javascript:alert(']]
+ .. I18N.translate("Version Information")
+ .. [[\n\n]] .. app_name
+ .. [[\n\t]] .. I18N.translate("Version") .. [[:\t]] .. app_version
+ .. [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("required") .. [[:]]
+ .. [[\n\t]] .. I18N.translate("Version") .. [[:\t]]
+ .. srv_ver_min .. [[ ]] .. I18N.translate("or higher")
+ .. [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("installed") .. [[:]]
+ .. [[\n\t]] .. I18N.translate("Version") .. [[:\t]]
+ .. (service_version() or I18N.translate("NOT installed"))
+ .. [[\n\n]]
+ .. [[')">]]
+ .. I18N.translate(app_title)
+ .. [[</a>]]
+end
+function service_version()
+ local ver = nil
+ IPKG.list_installed(srv_name, function(n, v, d)
+ if v and (#v > 0) then ver = v end
+ end
+ )
+ if not ver or (#ver == 0) then
+ ver = UTIL.exec(srv_ver_cmd)
+ if #ver == 0 then ver = nil end
+ end
+ return ver
+end
+function service_ok()
+ return IPKG.compare_versions((service_version() or "0"), ">=", srv_ver_min)
+end
+function service_update()
+ local url = DISP.build_url("admin", "system", "packages")
+ if not service_version() then
+ return [[<h3><strong><br /><font color="red">&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. I18N.translate("Software package '%s' is not installed." % srv_name)
+ .. [[</font><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. I18N.translate("required") .. [[: ]] .. srv_name .. [[ ]] .. srv_ver_min .. " " .. I18N.translate("or higher")
+ .. [[<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. [[<a href="]] .. url ..[[">]]
+ .. I18N.translate("Please install current version !")
+ .. [[</a><br />&nbsp;</strong></h3>]]
+ else
+ return [[<h3><strong><br /><br /><font color="red">&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. I18N.translate("Software package '%s' is outdated." % srv_name)
+ .. [[</font><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. I18N.translate("installed") .. ": " .. service_version()
+ .. [[<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. I18N.translate("required") .. ": " .. srv_ver_min .. " " .. I18N.translate("or higher")
+ .. [[<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
+ .. [[<a href="]] .. url ..[[">]]
+ .. I18N.translate("Please update to the current version!")
+ .. [[</a><br /><br />&nbsp;</strong></h3>]]
+ end
+end
+
-- called by XHR.get from detail_logview.htm
function logread()
-- read application settings
@@ -27,8 +102,7 @@ function logread()
local logfile = uci:get("privoxy", "privoxy", "logfile") or "privoxy.log"
uci:unload("privoxy")
- local lfile=logdir .. "/" .. logfile
- local ldata=NXFS.readfile(lfile)
+ local ldata=NXFS.readfile(logdir .. "/" .. logfile)
if not ldata or #ldata == 0 then
ldata="_nodata_"
end
@@ -70,76 +144,98 @@ function get_pid(from_lua)
end
end
--- compare versions using "<=" "<" ">" ">=" "=" "<<" ">>"
-function ipkg_ver_compare(ver1, comp, ver2)
- if not ver1 or not ver2
- or not comp or not (#comp > 0) then return nil end
- -- correct compare string
- if comp == "<>" or comp == "><" or comp == "!=" or comp == "~=" then comp = "~="
- elseif comp == "<=" or comp == "<" or comp == "=<" then comp = "<="
- elseif comp == ">=" or comp == ">" or comp == "=>" then comp = ">="
- elseif comp == "=" or comp == "==" then comp = "=="
- elseif comp == "<<" then comp = "<"
- elseif comp == ">>" then comp = ">"
- else return nil end
-
- local av1 = UTIL.split(ver1, "[%.%-]", nil, true)
- local av2 = UTIL.split(ver2, "[%.%-]", nil, true)
-
- for i = 1, math.max(table.getn(av1),table.getn(av2)), 1 do
- local s1 = av1[i] or ""
- local s2 = av2[i] or ""
-
- -- first "not equal" found return true
- if comp == "~=" and (s1 ~= s2) then return true end
- -- first "lower" found return true
- if (comp == "<" or comp == "<=") and (s1 < s2) then return true end
- -- first "greater" found return true
- if (comp == ">" or comp == ">=") and (s1 > s2) then return true end
- -- not equal then return false
- if (s1 ~= s2) then return false end
+-- replacement of build-in parse of UCI option
+-- modified AbstractValue.parse(self, section, novld) from cbi.lua
+-- validate is called if rmempty/optional true or false
+-- write is called if rmempty/optional true or false
+function value_parse(self, section, novld)
+ local fvalue = self:formvalue(section)
+ local fexist = ( fvalue and (#fvalue > 0) ) -- not "nil" and "not empty"
+ local cvalue = self:cfgvalue(section)
+ local rm_opt = ( self.rmempty or self.optional )
+ local eq_cfg -- flag: equal cfgvalue
+
+ -- If favlue and cvalue are both tables and have the same content
+ -- make them identical
+ if type(fvalue) == "table" and type(cvalue) == "table" then
+ eq_cfg = (#fvalue == #cvalue)
+ if eq_cfg then
+ for i=1, #fvalue do
+ if cvalue[i] ~= fvalue[i] then
+ eq_cfg = false
+ end
+ end
+ end
+ if eq_cfg then
+ fvalue = cvalue
+ end
end
- -- all equal and not compare greater or lower then true
- return not (comp == "<" or comp == ">")
-end
+ -- removed parameter "section" from function call because used/accepted nowhere
+ -- also removed call to function "transfer"
+ local vvalue, errtxt = self:validate(fvalue)
--- read version information for given package if installed
-function ipkg_ver_installed(pkg)
- local version = nil
- local control = io.open("/usr/lib/opkg/info/%s.control" % pkg, "r")
- if control then
- local ln
- repeat
- ln = control:read("*l")
- if ln and ln:match("^Version: ") then
- version = ln:gsub("^Version: ", "")
- break
- end
- until not ln
- control:close()
+ -- error handling; validate return "nil"
+ if not vvalue then
+ if novld then -- and "novld" set
+ return -- then exit without raising an error
+ end
+
+ if fexist then -- and there is a formvalue
+ self:add_error(section, "invalid", errtxt or self.title .. ": invalid")
+ return -- so data are invalid
+ elseif not rm_opt then -- and empty formvalue but NOT (rmempty or optional) set
+ self:add_error(section, "missing", errtxt or self.title .. ": missing")
+ return -- so data is missing
+ elseif errtxt then
+ self:add_error(section, "invalid", errtxt)
+ return
+ end
+-- error ("\n option: " .. self.option ..
+-- "\n fvalue: " .. tostring(fvalue) ..
+-- "\n fexist: " .. tostring(fexist) ..
+-- "\n cvalue: " .. tostring(cvalue) ..
+-- "\n vvalue: " .. tostring(vvalue) ..
+-- "\n vexist: " .. tostring(vexist) ..
+-- "\n rm_opt: " .. tostring(rm_opt) ..
+-- "\n eq_cfg: " .. tostring(eq_cfg) ..
+-- "\n eq_def: " .. tostring(eq_def) ..
+-- "\n novld : " .. tostring(novld) ..
+-- "\n errtxt: " .. tostring(errtxt) )
end
- return version
-end
--- replacement of build-in Flag.parse of cbi.lua
--- modified to mark section as changed if value changes
--- current parse did not do this, but it is done AbstaractValue.parse()
-function flag_parse(self, section)
- local fexists = self.map:formvalue(
- luci.cbi.FEXIST_PREFIX .. self.config .. "." .. section .. "." .. self.option)
-
- if fexists then
- local fvalue = self:formvalue(section) and self.enabled or self.disabled
- local cvalue = self:cfgvalue(section)
- if fvalue ~= self.default or (not self.optional and not self.rmempty) then
- self:write(section, fvalue)
- else
- self:remove(section)
+ -- lets continue with value returned from validate
+ eq_cfg = ( vvalue == cvalue ) -- update equal_config flag
+ local vexist = ( vvalue and (#vvalue > 0) ) and true or false -- not "nil" and "not empty"
+ local eq_def = ( vvalue == self.default ) -- equal_default flag
+
+ -- (rmempty or optional) and (no data or equal_default)
+ if rm_opt and (not vexist or eq_def) then
+ if self:remove(section) then -- remove data from UCI
+ self.section.changed = true -- and push events
end
- if (fvalue ~= cvalue) then self.section.changed = true end
- else
- self:remove(section)
+ return
+ end
+
+ -- not forcewrite and no changes, so nothing to write
+ if not self.forcewrite and eq_cfg then
+ return
+ end
+
+ -- we should have a valid value here
+ assert (vvalue, "\n option: " .. self.option ..
+ "\n fvalue: " .. tostring(fvalue) ..
+ "\n fexist: " .. tostring(fexist) ..
+ "\n cvalue: " .. tostring(cvalue) ..
+ "\n vvalue: " .. tostring(vvalue) ..
+ "\n vexist: " .. tostring(vexist) ..
+ "\n rm_opt: " .. tostring(rm_opt) ..
+ "\n eq_cfg: " .. tostring(eq_cfg) ..
+ "\n eq_def: " .. tostring(eq_def) ..
+ "\n errtxt: " .. tostring(errtxt) )
+
+ -- write data to UCI; raise event only on changes
+ if self:write(section, vvalue) and not eq_cfg then
self.section.changed = true
end
end
diff --git a/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua b/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua
index 8ea2496173..90754c2bc1 100644
--- a/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua
+++ b/applications/luci-app-privoxy/luasrc/model/cbi/privoxy.lua
@@ -8,64 +8,35 @@ local DISP = require "luci.dispatcher"
local DTYP = require "luci.cbi.datatypes"
local CTRL = require "luci.controller.privoxy" -- this application's controller
--- Bootstrap theme needs 2 or 3 additional linefeeds for tab description for better optic
local HELP = [[<a href="http://www.privoxy.org/user-manual/config.html#%s" target="_blank">%s</a>]]
-local VERINST = CTRL.ipkg_ver_installed("privoxy")
-local VEROK = CTRL.ipkg_ver_compare(VERINST,">=",CTRL.PRIVOXY_MIN)
-
-local TITLE = [[<a href="javascript:alert(']]
- .. translate("Version Information")
- .. [[\n\nluci-app-privoxy]]
- .. [[\n\t]] .. translate("Version") .. [[:\t]]
- .. CTRL.ipkg_ver_installed("luci-app-privoxy")
- .. [[\n\nprivoxy ]] .. translate("required") .. [[:]]
- .. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.PRIVOXY_MIN .. [[ ]] .. translate("or higher")
- .. [[\n\nprivoxy ]] .. translate("installed") .. [[:]]
- .. [[\n\t]] .. translate("Version") .. [[:\t]] .. VERINST
- .. [[\n\n]]
- .. [[')">]]
- .. translate("Privoxy WEB proxy")
- .. [[</a>]]
-
-local DESC = translate("Privoxy is a non-caching web proxy with advanced filtering "
- .. "capabilities for enhancing privacy, modifying web page data and HTTP headers, "
- .. "controlling access, and removing ads and other obnoxious Internet junk.")
- .. [[<br /><strong>]]
- .. translate("For help use link at the relevant option")
- .. [[</strong>]]
-
-- Error handling if wrong privoxy version installed -- ########################
-if not nixio.fs.access("/etc/config/privoxy") or not VEROK then
- local f = SimpleForm("_no_config")
- f.title = TITLE
- f.description = DESC
- f.embedded = true
- f.submit = false
- f.reset = false
-
- local s = f:section(SimpleSection)
- s.title = [[<font color="red">]] .. [[<strong>]]
- .. translate("Software update required")
- .. [[</strong>]] .. [[</font>]]
-
- local v = s:option(DummyValue, "_update_needed")
+if not CTRL.service_ok() then
+ local f = SimpleForm("_sf")
+ f.title = CTRL.app_title_main()
+ f.description = CTRL.app_description()
+ f.embedded = true
+ f.submit = false
+ f.reset = false
+
+ local s = f:section(SimpleSection)
+ local v = s:option(DummyValue, "_dv")
v.titleref = DISP.build_url("admin", "system", "packages")
v.rawhtml = true
- v.value = [[<h3><strong><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
- .. translate("The currently installed 'privoxy' package is not supported by LuCI application.")
- .. [[<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
- .. translate("required") .. ": " .. CTRL.PRIVOXY_MIN .. " *** ".. translate("installed") .. ": " .. VERINST
- .. [[<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;]]
- .. translate("Please update to the current version!")
- .. [[<br /><br /></strong></h3>]]
+ v.value = CTRL.service_update()
return f
end
+-- #################################################################################################
+-- Error handling if no config, create an empty one -- #########################
+if not NXFS.access("/etc/config/privoxy") then
+ NXFS.writefile("/etc/config/privoxy", "")
+end
+
-- cbi-map -- ##################################################################
local m = Map("privoxy")
-m.title = TITLE
-m.description = DESC
+m.title = CTRL.app_title_main()
+m.description = CTRL.app_description()
function m.commit_handler(self)
if self.changed then -- changes ?
os.execute("/etc/init.d/privoxy reload &") -- reload configuration
@@ -74,14 +45,30 @@ end
-- cbi-section -- ##############################################################
local ns = m:section( NamedSection, "privoxy", "privoxy")
+function ns.cfgvalue(self, section)
+ if not self.map:get("system") then -- section might not exist
+ self.map:set("system", nil, "system")
+ end
+ if not self.map:get(section) then -- section might not exist
+ self.map:set(section, nil, self.sectiontype)
+ end
+ return self.map:get(section)
+end
+
+ns:tab("sys",
+ translate("System"),
+ nil )
+local function err_tab_sys(title, msg)
+ return string.format(translate("System") .. " - %s: %s", title, msg )
+end
-ns:tab("local",
- translate("Local Set-up"),
+ns:tab("doc",
+ translate("Documentation"),
translate("If you intend to operate Privoxy for more users than just yourself, "
.. "it might be a good idea to let them know how to reach you, what you block "
.. "and why you do that, your policies, etc.") )
-local function err_tab_local(title, msg)
- return string.format(translate("Local Set-up") .. " - %s: %s", title, msg )
+local function err_tab_doc(title, msg)
+ return string.format(translate("Documentation") .. " - %s: %s", title, msg )
end
ns:tab("filter",
@@ -124,7 +111,7 @@ ns:tab("logview",
-- tab: local -- ###############################################################
-- start/stop button -----------------------------------------------------------
-local btn = ns:taboption("local", Button, "_startstop")
+local btn = ns:taboption("sys", Button, "_startstop")
btn.title = translate("Start / Stop")
btn.description = translate("Start/Stop Privoxy WEB Proxy")
btn.template = "privoxy/detail_startstop"
@@ -143,7 +130,7 @@ function btn.cfgvalue(self, section)
end
-- enabled ---------------------------------------------------------------------
-local ena = ns:taboption("local", Flag, "_enabled")
+local ena = ns:taboption("sys", Flag, "_enabled")
ena.title = translate("Enabled")
ena.description = translate("Enable/Disable autostart of Privoxy on system startup and interface events")
ena.orientation = "horizontal" -- put description under the checkbox
@@ -151,11 +138,7 @@ ena.rmempty = false
function ena.cfgvalue(self, section)
return (SYS.init.enabled("privoxy")) and "1" or "0"
end
-function ena.validate(self, value)
- error("Validate " .. value)
-end
function ena.write(self, section, value)
- --error("Write " .. value)
if value == "1" then
return SYS.init.enable("privoxy")
else
@@ -163,24 +146,61 @@ function ena.write(self, section, value)
end
end
+-- boot_delay ------------------------------------------------------------------
+local bd = ns:taboption("sys", Value, "boot_delay")
+bd.title = translate("Boot delay")
+bd.description = translate("Delay (in seconds) during system boot before Privoxy start")
+ .. [[<br />]]
+ .. translate("During delay ifup-events are not monitored !")
+bd.default = "10"
+bd.rmempty = false
+-- value is in a separate section so we need to do by hand
+function bd.cfgvalue(self, section)
+ local value = tonumber(self.map:get("system", "boot_delay") )
+ if not value then return nil end
+ return tostring(value)
+end
+function bd.validate(self, value)
+ local val = tonumber(value)
+ if not val then
+ return nil, err_tab_sys(self.title, translate("Value is not a number") )
+ elseif val < 0 or val > 300 then
+ return nil, err_tab_sys(self.title, translate("Value not between 0 and 300") )
+ end
+ return value
+end
+function bd.write(self, section, value)
+ local fvalue = self:formvalue(section)
+ local cvalue = self:cfgvalue(section)
+ if (fvalue ~= cvalue) then
+ self.map:set("system", "boot_delay", value)
+ end
+end
+
-- hostname --------------------------------------------------------------------
-local hn = ns:taboption("local", Value, "hostname")
+local hn = ns:taboption("doc", Value, "hostname")
hn.title = string.format(HELP, "HOSTNAME", "Hostname" )
hn.description = translate("The hostname shown on the CGI pages.")
hn.placeholder = SYS.hostname()
hn.optional = true
hn.rmempty = true
+function hn.parse(self, section, novld)
+ CTRL.value_parse(self, section, novld)
+end
-- user-manual -----------------------------------------------------------------
-local um = ns:taboption("local", Value, "user_manual")
+local um = ns:taboption("doc", Value, "user_manual")
um.title = string.format(HELP, "USER-MANUAL", "User Manual" )
um.description = translate("Location of the Privoxy User Manual.")
um.placeholder = "http://www.privoxy.org/user-manual/"
um.optional = true
um.rmempty = true
+function um.parse(self, section, novld)
+ CTRL.value_parse(self, section, novld)
+end
-- admin-address ---------------------------------------------------------------
-local aa = ns:taboption("local", Value, "admin_address")
+local aa = ns:taboption("doc", Value, "admin_address")
aa.title_base = "Admin Email"
aa.title = string.format(HELP, "ADMIN-ADDRESS", aa.title_base )
aa.description = translate("An email address to reach the Privoxy administrator.")
@@ -192,20 +212,26 @@ function aa.validate(self, value)
return ""
end
if not (value:match("[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?")) then
- return nil, err_tab_local(self.title_base, translate("Invalid email address") )
+ return nil, err_tab_doc(self.title_base, translate("Invalid email address") )
end
return value
end
+function aa.parse(self, section, novld)
+ CTRL.value_parse(self, section, novld)
+end
-- proxy-info-url --------------------------------------------------------------
-local piu = ns:taboption("local", Value, "proxy_info_url")
+local piu = ns:taboption("doc", Value, "proxy_info_url")
piu.title = string.format(HELP, "PROXY-INFO-URL", "Proxy Info URL" )
piu.description = translate("A URL to documentation about the local Privoxy setup, configuration or policies.")
piu.optional = true
piu.rmempty = true
+function piu.parse(self, section, novld)
+ CTRL.value_parse(self, section, novld)
+end
-- trust-info-url --------------------------------------------------------------
-local tiu = ns:taboption("local", Value, "trust_info_url")
+local tiu = ns:taboption("doc", Value, "trust_info_url")
tiu.title = string.format(HELP, "TRUST-INFO-URL", "Trust Info URLs" )
tiu.description = translate("A URL to be displayed in the error page that users will see if access to an untrusted page is denied.")
.. [[<br /><strong>]]
@@ -213,6 +239,9 @@ tiu.description = translate("A URL to be displayed in the error page that users
.. [[</strong>]]
tiu.optional = true
tiu.rmepty = true
+function tiu.parse(self, section, novld)
+ CTRL.value_parse(self, section, novld)
+end
-- tab: filter -- ##############################################################
@@ -234,6 +263,9 @@ function ld.validate(self, value)
return value
end
end
+function ld.parse(self, section, novld)
+ CTRL.value_parse(self, section, novld)
+end
-- logfile ---------------------------------------------------------------------
local lf = ns:taboption("filter", Value, "logfile")
@@ -526,9 +558,6 @@ tgl.description = translate("Enable/Disable filtering when Privoxy starts.")
tgl.orientation = "horizontal"
tgl.default = "1"
tgl.rmempty = false
-function tgl.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- enable-remote-toggle --------------------------------------------------------
local ert = ns:taboption("access", Flag, "enable_remote_toggle")
@@ -536,9 +565,6 @@ ert.title = string.format(HELP, "ENABLE-REMOTE-TOGGLE", "Enable remote toggle" )
ert.description = translate("Whether or not the web-based toggle feature may be used.")
ert.orientation = "horizontal"
ert.rmempty = true
-function ert.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- enable-remote-http-toggle ---------------------------------------------------
local eht = ns:taboption("access", Flag, "enable_remote_http_toggle")
@@ -549,9 +575,6 @@ eht.description = translate("Whether or not Privoxy recognizes special HTTP head
.. [[</strong>]]
eht.orientation = "horizontal"
eht.rmempty = true
-function eht.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- enable-edit-actions ---------------------------------------------------------
local eea = ns:taboption("access", Flag, "enable_edit_actions")
@@ -559,9 +582,6 @@ eea.title = string.format(HELP, "ENABLE-EDIT-ACTIONS", "Enable action file edito
eea.description = translate("Whether or not the web-based actions file editor may be used.")
eea.orientation = "horizontal"
eea.rmempty = true
-function eea.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- enforce-blocks --------------------------------------------------------------
local eb = ns:taboption("access", Flag, "enforce_blocks")
@@ -570,9 +590,6 @@ eb.description = translate("If enabled, Privoxy hides the 'go there anyway' link
.. "The user obviously should not be able to bypass any blocks.")
eb.orientation = "horizontal"
eb.rmempty = true
-function eb.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- tab: forward -- #############################################################
@@ -586,9 +603,6 @@ paf.description = translate("Whether or not proxy authentication through Privoxy
.. [[</strong>]]
--paf.orientation = "horizontal"
paf.rmempty = true
-function paf.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- forward ---------------------------------------------------------------------
local fwd = ns:taboption("forward", DynamicList, "forward")
@@ -632,9 +646,6 @@ air.title = string.format(HELP, "ACCEPT-INTERCEPTED-REQUESTS", "Accept intercept
air.description = translate("Whether intercepted requests should be treated as valid.")
air.orientation = "horizontal"
air.rmempty = true
-function air.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- allow-cgi-request-crunching -------------------------------------------------
local crc = ns:taboption("misc", Flag, "allow_cgi_request_crunching")
@@ -642,9 +653,6 @@ crc.title = string.format(HELP, "ALLOW-CGI-REQUEST-CRUNCHING", "Allow CGI reques
crc.description = translate("Whether requests to Privoxy's CGI pages can be blocked or redirected.")
crc.orientation = "horizontal"
crc.rmempty = true
-function crc.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- split-large-forms -----------------------------------------------------------
local slf = ns:taboption("misc", Flag, "split_large_forms")
@@ -652,9 +660,6 @@ slf.title = string.format(HELP, "SPLIT-LARGE-FORMS", "Split large forms" )
slf.description = translate("Whether the CGI interface should stay compatible with broken HTTP clients.")
slf.orientation = "horizontal"
slf.rmempty = true
-function slf.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- keep-alive-timeout ----------------------------------------------------------
local kat = ns:taboption("misc", Value, "keep_alive_timeout")
@@ -678,9 +683,6 @@ tp.title = string.format(HELP, "TOLERATE-PIPELINING", "Tolerate pipelining" )
tp.description = translate("Whether or not pipelined requests should be served.")
tp.orientation = "horizontal"
tp.rmempty = true
-function tp.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- default-server-timeout ------------------------------------------------------
local dst = ns:taboption("misc", Value, "default_server_timeout")
@@ -704,9 +706,6 @@ cs.title = string.format(HELP, "CONNECTION-SHARING", "Connection sharing" )
cs.description = translate("Whether or not outgoing connections that have been kept alive should be shared between different incoming connections.")
cs.orientation = "horizontal"
cs.rmempty = true
-function cs.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- socket-timeout --------------------------------------------------------------
local st = ns:taboption("misc", Value, "socket_timeout")
@@ -752,9 +751,6 @@ her.title = string.format(HELP, "HANDLE-AS-EMPTY-DOC-RETURNS-OK", "Handle as emp
her.description = translate("The status code Privoxy returns for pages blocked with +handle-as-empty-document.")
her.orientation = "horizontal"
her.rmempty = true
-function her.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- enable-compression ----------------------------------------------------------
local ec = ns:taboption("misc", Flag, "enable_compression")
@@ -762,9 +758,6 @@ ec.title = string.format(HELP, "ENABLE-COMPRESSION", "Enable compression" )
ec.description = translate("Whether or not buffered content is compressed before delivery.")
ec.orientation = "horizontal"
ec.rmempty = true
-function ec.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- compression-level -----------------------------------------------------------
local cl = ns:taboption("misc", Value, "compression_level")
@@ -803,135 +796,90 @@ st.description = translate("Whether to run only one server thread.")
.. translate("This option is only there for debugging purposes. It will drastically reduce performance.")
.. [[</strong>]]
st.rmempty = true
-function st.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 1 ---------------------------------------------------------------------
local d0 = ns:taboption("debug", Flag, "debug_1")
d0.title = string.format(HELP, "DEBUG", "Debug 1" )
d0.description = translate("Log the destination for each request Privoxy let through. See also 'Debug 1024'.")
d0.rmempty = true
-function d0.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 2 ---------------------------------------------------------------------
local d1 = ns:taboption("debug", Flag, "debug_2")
d1.title = string.format(HELP, "DEBUG", "Debug 2" )
d1.description = translate("Show each connection status")
d1.rmempty = true
-function d1.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 4 ---------------------------------------------------------------------
local d2 = ns:taboption("debug", Flag, "debug_4")
d2.title = string.format(HELP, "DEBUG", "Debug 4" )
d2.description = translate("Show I/O status")
d2.rmempty = true
-function d2.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 8 ---------------------------------------------------------------------
local d3 = ns:taboption("debug", Flag, "debug_8")
d3.title = string.format(HELP, "DEBUG", "Debug 8" )
d3.description = translate("Show header parsing")
d3.rmempty = true
-function d3.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 16 --------------------------------------------------------------------
local d4 = ns:taboption("debug", Flag, "debug_16")
d4.title = string.format(HELP, "DEBUG", "Debug 16" )
d4.description = translate("Log all data written to the network")
d4.rmempty = true
-function d4.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 32 --------------------------------------------------------------------
local d5 = ns:taboption("debug", Flag, "debug_32")
d5.title = string.format(HELP, "DEBUG", "Debug 32" )
d5.description = translate("Debug force feature")
d5.rmempty = true
-function d5.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 64 --------------------------------------------------------------------
local d6 = ns:taboption("debug", Flag, "debug_64")
d6.title = string.format(HELP, "DEBUG", "Debug 64" )
d6.description = translate("Debug regular expression filters")
d6.rmempty = true
-function d6.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 128 -------------------------------------------------------------------
local d7 = ns:taboption("debug", Flag, "debug_128")
d7.title = string.format(HELP, "DEBUG", "Debug 128" )
d7.description = translate("Debug redirects")
d7.rmempty = true
-function d7.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 256 -------------------------------------------------------------------
local d8 = ns:taboption("debug", Flag, "debug_256")
d8.title = string.format(HELP, "DEBUG", "Debug 256" )
d8.description = translate("Debug GIF de-animation")
d8.rmempty = true
-function d8.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 512 -------------------------------------------------------------------
local d9 = ns:taboption("debug", Flag, "debug_512")
d9.title = string.format(HELP, "DEBUG", "Debug 512" )
d9.description = translate("Common Log Format")
d9.rmempty = true
-function d9.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 1024 ------------------------------------------------------------------
local d10 = ns:taboption("debug", Flag, "debug_1024")
d10.title = string.format(HELP, "DEBUG", "Debug 1024" )
d10.description = translate("Log the destination for requests Privoxy didn't let through, and the reason why.")
d10.rmempty = true
-function d10.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 2048 ------------------------------------------------------------------
local d11 = ns:taboption("debug", Flag, "debug_2048")
d11.title = string.format(HELP, "DEBUG", "Debug 2048" )
d11.description = translate("CGI user interface")
d11.rmempty = true
-function d11.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 4096 ------------------------------------------------------------------
local d12 = ns:taboption("debug", Flag, "debug_4096")
d12.title = string.format(HELP, "DEBUG", "Debug 4096" )
d12.description = translate("Startup banner and warnings.")
d12.rmempty = true
-function d12.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 8192 ------------------------------------------------------------------
local d13 = ns:taboption("debug", Flag, "debug_8192")
d13.title = string.format(HELP, "DEBUG", "Debug 8192" )
d13.description = translate("Non-fatal errors - *we highly recommended enabling this*")
d13.rmempty = true
-function d13.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 16384 -----------------------------------------------------------------
--[[ TODO ???
@@ -939,9 +887,6 @@ local d14 = ns:taboption("debug", Flag, "debug_16384")
d14.title = string.format(HELP, "DEBUG", "Debug 16384" )
d14.description = translate("")
d14.rmempty = true
-function d14.parse(self, section)
- CTRL.flag_parse(self, section)
-end
]]--
-- debug 32768 -----------------------------------------------------------------
@@ -949,18 +894,12 @@ local d15 = ns:taboption("debug", Flag, "debug_32768")
d15.title = string.format(HELP, "DEBUG", "Debug 32768" )
d15.description = translate("Log all data read from the network")
d15.rmempty = true
-function d15.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- debug 65536 -----------------------------------------------------------------
local d16 = ns:taboption("debug", Flag, "debug_65536")
d16.title = string.format(HELP, "DEBUG", "Debug 65536" )
d16.description = translate("Log the applying actions")
d16.rmempty = true
-function d16.parse(self, section)
- CTRL.flag_parse(self, section)
-end
-- tab: logview -- #############################################################
diff --git a/applications/luci-app-privoxy/po/de/privoxy.po b/applications/luci-app-privoxy/po/de/privoxy.po
index b01f99e31c..9e2a29eb63 100644
--- a/applications/luci-app-privoxy/po/de/privoxy.po
+++ b/applications/luci-app-privoxy/po/de/privoxy.po
@@ -51,6 +51,9 @@ msgstr ""
"Angenommenes serverseitiges Keep-Alive-Timeout (in Sekunden), falls nicht "
"vom Server festgelegt."
+msgid "Boot delay"
+msgstr ""
+
msgid "CGI user interface"
msgstr "Protokolliert die CGI Benutzer Schnittstelle"
@@ -79,12 +82,21 @@ msgstr "Protokolliert Weiterleitungen"
msgid "Debug regular expression filters"
msgstr "Protokolliert Filter für reguläre Ausdrücke"
+msgid "Delay (in seconds) during system boot before Privoxy start"
+msgstr ""
+
msgid "Directory does not exist!"
msgstr "Verzeichnis existiert nicht!"
msgid "Disabled == Transparent Proxy Mode"
msgstr "Deaktiviert == Transparent Proxy Betrieb"
+msgid "Documentation"
+msgstr ""
+
+msgid "During delay ifup-events are not monitored !"
+msgstr ""
+
msgid "Enable proxy authentication forwarding"
msgstr "Aktivieren die Weiterleitung von Proxy-Authentifizierungen"
@@ -146,9 +158,6 @@ msgstr "Ungültige Email Adresse"
msgid "It is NOT recommended for the casual user."
msgstr "Es wird NICHT für den gelegentlichen Anwender empfohlen."
-msgid "Local Set-up"
-msgstr "Lokale Einstellungen"
-
msgid "Location of the Privoxy User Manual."
msgstr "Ort des Privoxy Benutzer Handbuches"
@@ -218,6 +227,9 @@ msgstr "Maximale Größe (in KB) des Puffers für die Inhaltsfilterung."
msgid "Miscellaneous"
msgstr "Verschiedenes"
+msgid "NOT installed"
+msgstr ""
+
msgid "No trailing '/', please."
msgstr "Bitte kein '/' am Ende."
@@ -242,6 +254,9 @@ msgid ""
"Only when using 'external filters', Privoxy has to create temporary files."
msgstr ""
+msgid "Please install current version !"
+msgstr ""
+
msgid "Please press [Read] button"
msgstr "Bitte Protokolldatei einlesen"
@@ -286,8 +301,11 @@ msgstr "Protokolliert jeden Verbindungsstatus"
msgid "Show header parsing"
msgstr "Protokolliert das 'Header parsing'"
-msgid "Software update required"
-msgstr "Softwareaktualisierung nötig"
+msgid "Software package '%s' is not installed."
+msgstr ""
+
+msgid "Software package '%s' is outdated."
+msgstr ""
msgid "Start"
msgstr "Start"
@@ -313,6 +331,9 @@ msgstr "Syntax: target_pattern http_parent[:port]"
msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
msgstr "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
+msgid "System"
+msgstr ""
+
msgid ""
"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
"are in fact recommended!"
@@ -334,13 +355,6 @@ msgstr ""
"gepufferten Inhaltes übergeben wird."
msgid ""
-"The currently installed 'privoxy' package is not supported by LuCI "
-"application."
-msgstr ""
-"Das aktuell installierte 'privoxy' Paket wird von dieser LuCI Anwendung "
-"NICHT unterstützt."
-
-msgid ""
"The directory where all logging takes place (i.e. where the logfile is "
"located)."
msgstr "Das Verzeichnis in dem die Protokolldatei gespeichert wird."
@@ -424,6 +438,9 @@ msgstr "Benutzerdefinierte Anpassungen"
msgid "Value is not a number"
msgstr "Eingabe ist keine Zahl"
+msgid "Value not between 0 and 300"
+msgstr ""
+
msgid "Value not between 0 and 9"
msgstr "Wert nicht zwischen 0 und 9"
@@ -501,3 +518,16 @@ msgstr "oder höher"
msgid "required"
msgstr "benötigt"
+
+#~ msgid "Local Set-up"
+#~ msgstr "Lokale Einstellungen"
+
+#~ msgid "Software update required"
+#~ msgstr "Softwareaktualisierung nötig"
+
+#~ msgid ""
+#~ "The currently installed 'privoxy' package is not supported by LuCI "
+#~ "application."
+#~ msgstr ""
+#~ "Das aktuell installierte 'privoxy' Paket wird von dieser LuCI Anwendung "
+#~ "NICHT unterstützt."
diff --git a/applications/luci-app-privoxy/po/sv/privoxy.po b/applications/luci-app-privoxy/po/sv/privoxy.po
index d9c63aa3b0..14e47e190f 100644
--- a/applications/luci-app-privoxy/po/sv/privoxy.po
+++ b/applications/luci-app-privoxy/po/sv/privoxy.po
@@ -33,6 +33,9 @@ msgid ""
"server."
msgstr ""
+msgid "Boot delay"
+msgstr ""
+
msgid "CGI user interface"
msgstr "CGI-användargränssnitt"
@@ -57,12 +60,21 @@ msgstr "Felsök omdirigeringar"
msgid "Debug regular expression filters"
msgstr ""
+msgid "Delay (in seconds) during system boot before Privoxy start"
+msgstr ""
+
msgid "Directory does not exist!"
msgstr "Mappen finns inte!"
msgid "Disabled == Transparent Proxy Mode"
msgstr "Inaktiverad == "
+msgid "Documentation"
+msgstr ""
+
+msgid "During delay ifup-events are not monitored !"
+msgstr ""
+
msgid "Enable proxy authentication forwarding"
msgstr ""
@@ -115,9 +127,6 @@ msgstr "Ogiltig e-postadress"
msgid "It is NOT recommended for the casual user."
msgstr "Det är INTE rekommenderat för den vanliga användaren."
-msgid "Local Set-up"
-msgstr "Lokal installation"
-
msgid "Location of the Privoxy User Manual."
msgstr "Plats för Privoxy's användarmanual."
@@ -182,6 +191,9 @@ msgstr ""
msgid "Miscellaneous"
msgstr "Diverse"
+msgid "NOT installed"
+msgstr ""
+
msgid "No trailing '/', please."
msgstr "Vänligen, inget eftersläpande '/'"
@@ -201,6 +213,9 @@ msgid ""
"Only when using 'external filters', Privoxy has to create temporary files."
msgstr ""
+msgid "Please install current version !"
+msgstr ""
+
msgid "Please press [Read] button"
msgstr "Vänligen tryck på [Läs]-knappen"
@@ -237,8 +252,11 @@ msgstr "Visa varje anslutnings status"
msgid "Show header parsing"
msgstr ""
-msgid "Software update required"
-msgstr "Uppdatering av mjukvara krävs"
+msgid "Software package '%s' is not installed."
+msgstr ""
+
+msgid "Software package '%s' is outdated."
+msgstr ""
msgid "Start"
msgstr "Starta"
@@ -264,6 +282,9 @@ msgstr ""
msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
msgstr ""
+msgid "System"
+msgstr ""
+
msgid ""
"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
"are in fact recommended!"
@@ -279,11 +300,6 @@ msgid ""
msgstr ""
msgid ""
-"The currently installed 'privoxy' package is not supported by LuCI "
-"application."
-msgstr ""
-
-msgid ""
"The directory where all logging takes place (i.e. where the logfile is "
"located)."
msgstr ""
@@ -348,6 +364,9 @@ msgstr "Anpassningar för användare"
msgid "Value is not a number"
msgstr "Värdet är inte ett nummer"
+msgid "Value not between 0 and 300"
+msgstr ""
+
msgid "Value not between 0 and 9"
msgstr "Värdet är inte mellan 0 och 9"
@@ -415,3 +434,9 @@ msgstr "eller högre"
msgid "required"
msgstr "krävs"
+
+#~ msgid "Local Set-up"
+#~ msgstr "Lokal installation"
+
+#~ msgid "Software update required"
+#~ msgstr "Uppdatering av mjukvara krävs"
diff --git a/applications/luci-app-privoxy/po/templates/privoxy.pot b/applications/luci-app-privoxy/po/templates/privoxy.pot
index 150ee3157f..2e44ea8b7c 100644
--- a/applications/luci-app-privoxy/po/templates/privoxy.pot
+++ b/applications/luci-app-privoxy/po/templates/privoxy.pot
@@ -31,6 +31,9 @@ msgid ""
"server."
msgstr ""
+msgid "Boot delay"
+msgstr ""
+
msgid "CGI user interface"
msgstr ""
@@ -55,12 +58,21 @@ msgstr ""
msgid "Debug regular expression filters"
msgstr ""
+msgid "Delay (in seconds) during system boot before Privoxy start"
+msgstr ""
+
msgid "Directory does not exist!"
msgstr ""
msgid "Disabled == Transparent Proxy Mode"
msgstr ""
+msgid "Documentation"
+msgstr ""
+
+msgid "During delay ifup-events are not monitored !"
+msgstr ""
+
msgid "Enable proxy authentication forwarding"
msgstr ""
@@ -111,9 +123,6 @@ msgstr ""
msgid "It is NOT recommended for the casual user."
msgstr ""
-msgid "Local Set-up"
-msgstr ""
-
msgid "Location of the Privoxy User Manual."
msgstr ""
@@ -178,6 +187,9 @@ msgstr ""
msgid "Miscellaneous"
msgstr ""
+msgid "NOT installed"
+msgstr ""
+
msgid "No trailing '/', please."
msgstr ""
@@ -196,6 +208,9 @@ msgid ""
"Only when using 'external filters', Privoxy has to create temporary files."
msgstr ""
+msgid "Please install current version !"
+msgstr ""
+
msgid "Please press [Read] button"
msgstr ""
@@ -232,7 +247,10 @@ msgstr ""
msgid "Show header parsing"
msgstr ""
-msgid "Software update required"
+msgid "Software package '%s' is not installed."
+msgstr ""
+
+msgid "Software package '%s' is outdated."
msgstr ""
msgid "Start"
@@ -259,6 +277,9 @@ msgstr ""
msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
msgstr ""
+msgid "System"
+msgstr ""
+
msgid ""
"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
"are in fact recommended!"
@@ -274,11 +295,6 @@ msgid ""
msgstr ""
msgid ""
-"The currently installed 'privoxy' package is not supported by LuCI "
-"application."
-msgstr ""
-
-msgid ""
"The directory where all logging takes place (i.e. where the logfile is "
"located)."
msgstr ""
@@ -343,6 +359,9 @@ msgstr ""
msgid "Value is not a number"
msgstr ""
+msgid "Value not between 0 and 300"
+msgstr ""
+
msgid "Value not between 0 and 9"
msgstr ""
diff --git a/applications/luci-app-privoxy/po/zh-cn/privoxy.po b/applications/luci-app-privoxy/po/zh-cn/privoxy.po
index f69a8f9280..75d1a921cf 100644
--- a/applications/luci-app-privoxy/po/zh-cn/privoxy.po
+++ b/applications/luci-app-privoxy/po/zh-cn/privoxy.po
@@ -1,468 +1,464 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: luci-app-privoxy\n"
-"POT-Creation-Date: 2015-06-10 20:16+0100\n"
-"PO-Revision-Date: 2015-06-10 20:16+0100\n"
-"Last-Translator: maz-1 <ohmygod19993 at gmail dotcom>\n"
-"Language-Team: \n"
-"Language: zh-cn\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-msgid ""
-"A URL to be displayed in the error page that users will see if access to an "
-"untrusted page is denied."
-msgstr ""
-"当用户试图访问不受信任的页面时,错误页面所显示的URL。"
-
-
-msgid ""
-"A URL to documentation about the local Privoxy setup, configuration or "
-"policies."
-msgstr ""
-"指向Privoxy安装、设置和规则说明文档的URL"
-
-
-msgid "A directory where Privoxy can create temporary files."
-msgstr "Privoxy存放临时文件的目录。"
-
-msgid "Access Control"
-msgstr "访问控制"
-
-msgid "Actions that are applied to all sites and maybe overruled later on."
-msgstr ""
-"作用在所有站点上的规则,可能被后面的规则覆盖。"
-
-
-msgid "An alternative directory where the templates are loaded from."
-msgstr "可选的目录,放在里面的模板会被加载。"
-
-msgid "An email address to reach the Privoxy administrator."
-msgstr "用于联系privoxy管理员的邮箱地址。"
-
-msgid ""
-"Assumed server-side keep-alive timeout (in seconds) if not specified by the "
-"server."
-msgstr ""
-"当服务端没有指定超时时间时假定的超时时间(单位秒)。"
-
-msgid "CGI user interface"
-msgstr "CGI用户界面"
-
-msgid "Common Log Format"
-msgstr "通用日志格式"
-
-msgid ""
-"Configure here the routing of HTTP requests through a chain of multiple "
-"proxies. Note that parent proxies can severely decrease your privacy level. "
-"Also specified here are SOCKS proxies."
-msgstr ""
-"在这里设置http请求所经过的多重代理链。"
-"注意父级代理可能严重降低你的隐私安全度。"
-"在这里还可以设置SOCKS代理。"
-
-msgid "Debug GIF de-animation"
-msgstr "GIF动画日志"
-
-msgid "Debug force feature"
-msgstr "force feature日志"
-
-msgid "Debug redirects"
-msgstr "重定向日志"
-
-msgid "Debug regular expression filters"
-msgstr "正则表达式日志"
-
-msgid "Directory does not exist!"
-msgstr "目录不存在!"
-
-msgid "Disabled == Transparent Proxy Mode"
-msgstr "禁用 == 透明代理模式"
-
-msgid "Enable proxy authentication forwarding"
-msgstr "允许转发代理认证"
-
-msgid ""
-"Enable/Disable autostart of Privoxy on system startup and interface events"
-msgstr ""
-"开启/关闭Privoxy在系统启动或者设置界面更改时自动启动。"
-
-msgid "Enable/Disable filtering when Privoxy starts."
-msgstr "Privoxy启动时开启/关闭过滤。"
-
-msgid "Enabled"
-msgstr "已开启"
-
-msgid ""
-"Enabling this option is NOT recommended if there is no parent proxy that "
-"requires authentication!"
-msgstr ""
-"父级代理不需要认证时不推荐开启这个选项!"
-
-msgid "File '%s' not found inside Configuration Directory"
-msgstr "文件 '%s' 没有在设置目录中找到!"
-
-msgid "File not found or empty"
-msgstr "文件不存在或为空"
-
-msgid "Files and Directories"
-msgstr "文件和目录"
-
-msgid "For help use link at the relevant option"
-msgstr ""
-"在相应选项下的连接可获取帮助。"
-
-msgid "Forwarding"
-msgstr "转发"
-
-msgid ""
-"If enabled, Privoxy hides the 'go there anyway' link. The user obviously "
-"should not be able to bypass any blocks."
-msgstr ""
-"如果启用,Privoxy会隐藏'go there anyway'链接。用户显然不应能绕过屏蔽。"
-
-msgid ""
-"If you intend to operate Privoxy for more users than just yourself, it might "
-"be a good idea to let them know how to reach you, what you block and why you "
-"do that, your policies, etc."
-msgstr ""
-"如果除了你还有其他用户通过privoxy连接,让他们知道如何联系你、什么内容被屏蔽了、"
-"你为什么要这么做、你所制定的规范等等是一个好主意。"
-
-msgid "Invalid email address"
-msgstr "邮箱地址无效"
-
-msgid "It is NOT recommended for the casual user."
-msgstr "不推荐新手使用。"
-
-msgid "Local Set-up"
-msgstr "本地设置"
-
-msgid "Location of the Privoxy User Manual."
-msgstr "Privoxy用户手册位置"
-
-msgid "Log File Viewer"
-msgstr "日志查看器"
-
-msgid "Log all data read from the network"
-msgstr "记录所有从网络接收的数据"
-
-msgid "Log all data written to the network"
-msgstr "记录所有发送给网络的数据"
-
-msgid "Log the applying actions"
-msgstr "记录被应用的规则"
-
-msgid ""
-"Log the destination for each request Privoxy let through. See also 'Debug "
-"1024'."
-msgstr ""
-"记录Privoxy所允许的所有请求。另请参考'Debug 1024'。"
-
-msgid ""
-"Log the destination for requests Privoxy didn't let through, and the reason "
-"why."
-msgstr ""
-"记录被Privoxy拒绝的请求目标以及拒绝原因。"
-
-msgid "Logging"
-msgstr "日志"
-
-msgid "Main actions file"
-msgstr "主要规则文件"
-
-msgid "Mandatory Input: No Data given!"
-msgstr "必需选项: 没有设置数据!"
-
-msgid "Mandatory Input: No Directory given!"
-msgstr "必需选项: 没有设置目录!"
-
-msgid "Mandatory Input: No File given!"
-msgstr "必需选项: 没有设置文件!"
-
-msgid "Mandatory Input: No Port given!"
-msgstr "必需选项: 没有设置端口!"
-
-msgid "Mandatory Input: No files given!"
-msgstr "必需选项: 没有设置文件!"
-
-msgid "Mandatory Input: No valid IPv4 address or host given!"
-msgstr ""
-"必需选项: 没有设置有效的IPV4地址或者主机!"
-
-msgid "Mandatory Input: No valid IPv6 address given!"
-msgstr "必需选项: 没有设置有效的IPV6地址!"
-
-msgid "Mandatory Input: No valid Port given!"
-msgstr "必需选项: 没有设置有效的端口!"
-
-msgid "Maximum number of client connections that will be served."
-msgstr "客户端数量上限。"
-
-msgid "Maximum size (in KB) of the buffer for content filtering."
-msgstr "内容过滤的最大缓冲(单位KB)。"
-
-msgid "Miscellaneous"
-msgstr "杂项"
-
-msgid "No trailing '/', please."
-msgstr "路径结尾不要加'/' ."
-
-msgid "Non-fatal errors - *we highly recommended enabling this*"
-msgstr ""
-"非致命性错误 - * 建议开启 *"
-
-msgid ""
-"Number of seconds after which a socket times out if no data is received."
-msgstr ""
-"socket连接未收到数据的超时时间。"
-
-msgid ""
-"Number of seconds after which an open connection will no longer be reused."
-msgstr ""
-"一个开放的连接不再重复使用的超时时间。"
-
-msgid ""
-"Only when using 'external filters', Privoxy has to create temporary files."
-msgstr ""
-"只有使用外置规则时,privoxy才需要创建临时文件。"
-
-msgid "Please press [Read] button"
-msgstr "请点击[读取]按钮"
-
-msgid "Please read Privoxy manual for details!"
-msgstr "请阅读Privoxy手册以了解详情!"
-
-msgid "Please update to the current version!"
-msgstr "请升级到当前版本!"
-
-msgid "Privoxy WEB proxy"
-msgstr "Privoxy 网络代理"
-
-msgid ""
-"Privoxy can (and normally does) use a number of other files for additional "
-"configuration, help and logging. This section of the configuration file "
-"tells Privoxy where to find those other files."
-msgstr ""
-"Privoxy可以使用其他一些文件用于附加设置,帮助和日志。这个区域用来告诉Privoxy从哪里找到这些文件。"
-
-msgid ""
-"Privoxy is a non-caching web proxy with advanced filtering capabilities for "
-"enhancing privacy, modifying web page data and HTTP headers, controlling "
-"access, and removing ads and other obnoxious Internet junk."
-msgstr ""
-"Privoxy是一个无缓存的网络代理,具有高级过滤功能,能够修改网页数据和HTTP头,控制访问,移除广告等。"
-
-msgid "Read / Reread log file"
-msgstr "读取/刷新日志文件"
-
-msgid "Show I/O status"
-msgstr "显示 I/O 状态"
-
-msgid "Show each connection status"
-msgstr "显示每个连接的状态"
-
-msgid "Show header parsing"
-msgstr "Show header parsing"
-
-msgid "Software update required"
-msgstr "需要升级软件"
-
-msgid "Start"
-msgstr "启动"
-
-msgid "Start / Stop"
-msgstr "启动 / 停止"
-
-msgid "Start/Stop Privoxy WEB Proxy"
-msgstr "启动/停止 Privoxy 网络代理"
-
-msgid "Startup banner and warnings."
-msgstr "启动标语和警告。"
-
-msgid "Syntax:"
-msgstr "格式:"
-
-msgid "Syntax: Client header names delimited by spaces."
-msgstr "格式: Client header names delimited by spaces."
-
-msgid "Syntax: target_pattern http_parent[:port]"
-msgstr "格式: target_pattern http_parent[:port]"
-
-msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
-msgstr "格式: target_pattern socks_proxy[:port] http_parent[:port]"
-
-msgid ""
-"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
-"are in fact recommended!"
-msgstr ""
-"所使用的规则文件。允许并且推荐使用多个规则文件。"
-
-msgid ""
-"The address and TCP port on which Privoxy will listen for client requests."
-msgstr ""
-"Privoxy接收客户端请求时监听的地址和TCP端口。"
-
-msgid ""
-"The compression level that is passed to the zlib library when compressing "
-"buffered content."
-msgstr ""
-"使用zlib压缩缓冲内容时的压缩级别。"
-
-msgid ""
-"The currently installed 'privoxy' package is not supported by LuCI "
-"application."
-msgstr ""
-"目前安装的privoxy版本不被luci支持。"
-
-msgid ""
-"The directory where all logging takes place (i.e. where the logfile is "
-"located)."
-msgstr "所有日志所在的目录。"
-
-msgid "The directory where the other configuration files are located."
-msgstr "其他设置文件所在的目录。"
-
-msgid ""
-"The filter files contain content modification rules that use regular "
-"expressions."
-msgstr ""
-"过滤文件包含了使用正则表达式编写的内容修改规则"
-
-msgid "The hostname shown on the CGI pages."
-msgstr "CGI页面显示的主机名。"
-
-msgid "The log file to use. File name, relative to log directory."
-msgstr ""
-"日志文件名称,与日志路径相对。"
-
-msgid "The order in which client headers are sorted before forwarding them."
-msgstr ""
-"转发数据前,client headers的排序。"
-
-msgid ""
-"The status code Privoxy returns for pages blocked with +handle-as-empty-"
-"document."
-msgstr ""
-"当页面因为handle-as-empty-document规则被阻止时返回的状态码(选上为200 OK,不选上为403 Forbidden)"
-
-msgid ""
-"The trust mechanism is an experimental feature for building white-lists and "
-"should be used with care."
-msgstr ""
-"信任机制是一个实验性的白名单特性,使用时应小心。"
-
-msgid ""
-"The value of this option only matters if the experimental trust mechanism "
-"has been activated."
-msgstr ""
-"只有开启了信任机制时这个选项的值才有效"
-
-msgid ""
-"This option is only there for debugging purposes. It will drastically reduce "
-"performance."
-msgstr ""
-"这个选项仅用于调试,开启后会极大地降低性能。"
-
-msgid ""
-"This option will be removed in future releases as it has been obsoleted by "
-"the more general header taggers."
-msgstr "这个选项在以后的版本中将被移除,因为它被header taggers所取代了。"
-
-msgid ""
-"This tab controls the security-relevant aspects of Privoxy's configuration."
-msgstr ""
-"这个标签用于设置与安全相关的Privoxy选项。"
-
-msgid ""
-"Through which SOCKS proxy (and optionally to which parent HTTP proxy) "
-"specific requests should be routed."
-msgstr ""
-"指定的请求应该通过哪一个SOCKS代理(并且通过哪一个HTTP父代理,可选)"
-
-msgid "To which parent HTTP proxy specific requests should be routed."
-msgstr ""
-"请求应转发至哪一个父级HTTP代理。"
-
-msgid "User customizations"
-msgstr "用户自定义"
-
-msgid "Value is not a number"
-msgstr "输入值不是数字"
-
-msgid "Value not between 0 and 9"
-msgstr "输入值不在0和9之间。"
-
-msgid "Value not between 1 and 4096"
-msgstr "输入值不在1和4096之间"
-
-msgid "Value not greater 0 or empty"
-msgstr "输入值为空或者不是大于零。"
-
-msgid "Value range 1 to 4096, no entry defaults to 4096"
-msgstr "输入值为1到4096,默认为4096"
-
-msgid "Version"
-msgstr "版本"
-
-msgid "Version Information"
-msgstr "版本信息"
-
-msgid "Whether intercepted requests should be treated as valid."
-msgstr "被拦截的请求是否应被当作有效的。"
-
-msgid ""
-"Whether or not Privoxy recognizes special HTTP headers to change toggle "
-"state."
-msgstr ""
-"Privoxy是否识别特殊的HTTP头以切换状态。"
-
-msgid "Whether or not buffered content is compressed before delivery."
-msgstr ""
-"缓冲内容在传递之前是否压缩。"
-
-msgid ""
-"Whether or not outgoing connections that have been kept alive should be "
-"shared between different incoming connections."
-msgstr ""
-"持久出站连接是否应在不同的入站连接之间共享。"
-
-msgid "Whether or not pipelined requests should be served."
-msgstr "是否处理管道化的请求。"
-
-msgid "Whether or not proxy authentication through Privoxy should work."
-msgstr "是否可以通过Privoxy进行代理验证。"
-
-msgid "Whether or not the web-based actions file editor may be used."
-msgstr "是否使用基于网页的规则编辑器。"
-
-msgid "Whether or not the web-based toggle feature may be used."
-msgstr "是否启用基于网页的切换功能。"
-
-msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected."
-msgstr "访问Privoxy CGI页面的请求是否可以被拦截或重定向。"
-
-
-msgid ""
-"Whether the CGI interface should stay compatible with broken HTTP clients."
-msgstr ""
-"CGI界面是否应兼容过时的HTTP客户端。"
-
-msgid "Whether to run only one server thread."
-msgstr "是否只运行一个服务线程。"
-
-msgid "Who can access what."
-msgstr "谁可以访问什么。"
-
-msgid "installed"
-msgstr "已安装"
-
-msgid "or higher"
-msgstr "或更高"
-
-msgid "required"
-msgstr "需要"
+msgid ""
+msgstr ""
+"Project-Id-Version: luci-app-privoxy\n"
+"POT-Creation-Date: 2015-06-10 20:16+0100\n"
+"PO-Revision-Date: 2015-06-10 20:16+0100\n"
+"Last-Translator: maz-1 <ohmygod19993 at gmail dotcom>\n"
+"Language-Team: \n"
+"Language: zh-cn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+msgid ""
+"A URL to be displayed in the error page that users will see if access to an "
+"untrusted page is denied."
+msgstr "当用户试图访问不受信任的页面时,错误页面所显示的URL。"
+
+msgid ""
+"A URL to documentation about the local Privoxy setup, configuration or "
+"policies."
+msgstr "指向Privoxy安装、设置和规则说明文档的URL"
+
+msgid "A directory where Privoxy can create temporary files."
+msgstr "Privoxy存放临时文件的目录。"
+
+msgid "Access Control"
+msgstr "访问控制"
+
+msgid "Actions that are applied to all sites and maybe overruled later on."
+msgstr "作用在所有站点上的规则,可能被后面的规则覆盖。"
+
+msgid "An alternative directory where the templates are loaded from."
+msgstr "可选的目录,放在里面的模板会被加载。"
+
+msgid "An email address to reach the Privoxy administrator."
+msgstr "用于联系privoxy管理员的邮箱地址。"
+
+msgid ""
+"Assumed server-side keep-alive timeout (in seconds) if not specified by the "
+"server."
+msgstr "当服务端没有指定超时时间时假定的超时时间(单位秒)。"
+
+msgid "Boot delay"
+msgstr ""
+
+msgid "CGI user interface"
+msgstr "CGI用户界面"
+
+msgid "Common Log Format"
+msgstr "通用日志格式"
+
+msgid ""
+"Configure here the routing of HTTP requests through a chain of multiple "
+"proxies. Note that parent proxies can severely decrease your privacy level. "
+"Also specified here are SOCKS proxies."
+msgstr ""
+"在这里设置http请求所经过的多重代理链。注意父级代理可能严重降低你的隐私安全"
+"度。在这里还可以设置SOCKS代理。"
+
+msgid "Debug GIF de-animation"
+msgstr "GIF动画日志"
+
+msgid "Debug force feature"
+msgstr "force feature日志"
+
+msgid "Debug redirects"
+msgstr "重定向日志"
+
+msgid "Debug regular expression filters"
+msgstr "正则表达式日志"
+
+msgid "Delay (in seconds) during system boot before Privoxy start"
+msgstr ""
+
+msgid "Directory does not exist!"
+msgstr "目录不存在!"
+
+msgid "Disabled == Transparent Proxy Mode"
+msgstr "禁用 == 透明代理模式"
+
+msgid "Documentation"
+msgstr ""
+
+msgid "During delay ifup-events are not monitored !"
+msgstr ""
+
+msgid "Enable proxy authentication forwarding"
+msgstr "允许转发代理认证"
+
+msgid ""
+"Enable/Disable autostart of Privoxy on system startup and interface events"
+msgstr "开启/关闭Privoxy在系统启动或者设置界面更改时自动启动。"
+
+msgid "Enable/Disable filtering when Privoxy starts."
+msgstr "Privoxy启动时开启/关闭过滤。"
+
+msgid "Enabled"
+msgstr "已开启"
+
+msgid ""
+"Enabling this option is NOT recommended if there is no parent proxy that "
+"requires authentication!"
+msgstr "父级代理不需要认证时不推荐开启这个选项!"
+
+msgid "File '%s' not found inside Configuration Directory"
+msgstr "文件 '%s' 没有在设置目录中找到!"
+
+msgid "File not found or empty"
+msgstr "文件不存在或为空"
+
+msgid "Files and Directories"
+msgstr "文件和目录"
+
+msgid "For help use link at the relevant option"
+msgstr "在相应选项下的连接可获取帮助。"
+
+msgid "Forwarding"
+msgstr "转发"
+
+msgid ""
+"If enabled, Privoxy hides the 'go there anyway' link. The user obviously "
+"should not be able to bypass any blocks."
+msgstr "如果启用,Privoxy会隐藏'go there anyway'链接。用户显然不应能绕过屏蔽。"
+
+msgid ""
+"If you intend to operate Privoxy for more users than just yourself, it might "
+"be a good idea to let them know how to reach you, what you block and why you "
+"do that, your policies, etc."
+msgstr ""
+"如果除了你还有其他用户通过privoxy连接,让他们知道如何联系你、什么内容被屏蔽"
+"了、你为什么要这么做、你所制定的规范等等是一个好主意。"
+
+msgid "Invalid email address"
+msgstr "邮箱地址无效"
+
+msgid "It is NOT recommended for the casual user."
+msgstr "不推荐新手使用。"
+
+msgid "Location of the Privoxy User Manual."
+msgstr "Privoxy用户手册位置"
+
+msgid "Log File Viewer"
+msgstr "日志查看器"
+
+msgid "Log all data read from the network"
+msgstr "记录所有从网络接收的数据"
+
+msgid "Log all data written to the network"
+msgstr "记录所有发送给网络的数据"
+
+msgid "Log the applying actions"
+msgstr "记录被应用的规则"
+
+msgid ""
+"Log the destination for each request Privoxy let through. See also 'Debug "
+"1024'."
+msgstr "记录Privoxy所允许的所有请求。另请参考'Debug 1024'。"
+
+msgid ""
+"Log the destination for requests Privoxy didn't let through, and the reason "
+"why."
+msgstr "记录被Privoxy拒绝的请求目标以及拒绝原因。"
+
+msgid "Logging"
+msgstr "日志"
+
+msgid "Main actions file"
+msgstr "主要规则文件"
+
+msgid "Mandatory Input: No Data given!"
+msgstr "必需选项: 没有设置数据!"
+
+msgid "Mandatory Input: No Directory given!"
+msgstr "必需选项: 没有设置目录!"
+
+msgid "Mandatory Input: No File given!"
+msgstr "必需选项: 没有设置文件!"
+
+msgid "Mandatory Input: No Port given!"
+msgstr "必需选项: 没有设置端口!"
+
+msgid "Mandatory Input: No files given!"
+msgstr "必需选项: 没有设置文件!"
+
+msgid "Mandatory Input: No valid IPv4 address or host given!"
+msgstr "必需选项: 没有设置有效的IPV4地址或者主机!"
+
+msgid "Mandatory Input: No valid IPv6 address given!"
+msgstr "必需选项: 没有设置有效的IPV6地址!"
+
+msgid "Mandatory Input: No valid Port given!"
+msgstr "必需选项: 没有设置有效的端口!"
+
+msgid "Maximum number of client connections that will be served."
+msgstr "客户端数量上限。"
+
+msgid "Maximum size (in KB) of the buffer for content filtering."
+msgstr "内容过滤的最大缓冲(单位KB)。"
+
+msgid "Miscellaneous"
+msgstr "杂项"
+
+msgid "NOT installed"
+msgstr ""
+
+msgid "No trailing '/', please."
+msgstr "路径结尾不要加'/' ."
+
+msgid "Non-fatal errors - *we highly recommended enabling this*"
+msgstr "非致命性错误 - * 建议开启 *"
+
+msgid ""
+"Number of seconds after which a socket times out if no data is received."
+msgstr "socket连接未收到数据的超时时间。"
+
+msgid ""
+"Number of seconds after which an open connection will no longer be reused."
+msgstr "一个开放的连接不再重复使用的超时时间。"
+
+msgid ""
+"Only when using 'external filters', Privoxy has to create temporary files."
+msgstr "只有使用外置规则时,privoxy才需要创建临时文件。"
+
+msgid "Please install current version !"
+msgstr ""
+
+msgid "Please press [Read] button"
+msgstr "请点击[读取]按钮"
+
+msgid "Please read Privoxy manual for details!"
+msgstr "请阅读Privoxy手册以了解详情!"
+
+msgid "Please update to the current version!"
+msgstr "请升级到当前版本!"
+
+msgid "Privoxy WEB proxy"
+msgstr "Privoxy 网络代理"
+
+msgid ""
+"Privoxy can (and normally does) use a number of other files for additional "
+"configuration, help and logging. This section of the configuration file "
+"tells Privoxy where to find those other files."
+msgstr ""
+"Privoxy可以使用其他一些文件用于附加设置,帮助和日志。这个区域用来告诉Privoxy"
+"从哪里找到这些文件。"
+
+msgid ""
+"Privoxy is a non-caching web proxy with advanced filtering capabilities for "
+"enhancing privacy, modifying web page data and HTTP headers, controlling "
+"access, and removing ads and other obnoxious Internet junk."
+msgstr ""
+"Privoxy是一个无缓存的网络代理,具有高级过滤功能,能够修改网页数据和HTTP头,控"
+"制访问,移除广告等。"
+
+msgid "Read / Reread log file"
+msgstr "读取/刷新日志文件"
+
+msgid "Show I/O status"
+msgstr "显示 I/O 状态"
+
+msgid "Show each connection status"
+msgstr "显示每个连接的状态"
+
+msgid "Show header parsing"
+msgstr "Show header parsing"
+
+msgid "Software package '%s' is not installed."
+msgstr ""
+
+msgid "Software package '%s' is outdated."
+msgstr ""
+
+msgid "Start"
+msgstr "启动"
+
+msgid "Start / Stop"
+msgstr "启动 / 停止"
+
+msgid "Start/Stop Privoxy WEB Proxy"
+msgstr "启动/停止 Privoxy 网络代理"
+
+msgid "Startup banner and warnings."
+msgstr "启动标语和警告。"
+
+msgid "Syntax:"
+msgstr "格式:"
+
+msgid "Syntax: Client header names delimited by spaces."
+msgstr "格式: Client header names delimited by spaces."
+
+msgid "Syntax: target_pattern http_parent[:port]"
+msgstr "格式: target_pattern http_parent[:port]"
+
+msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
+msgstr "格式: target_pattern socks_proxy[:port] http_parent[:port]"
+
+msgid "System"
+msgstr ""
+
+msgid ""
+"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
+"are in fact recommended!"
+msgstr "所使用的规则文件。允许并且推荐使用多个规则文件。"
+
+msgid ""
+"The address and TCP port on which Privoxy will listen for client requests."
+msgstr "Privoxy接收客户端请求时监听的地址和TCP端口。"
+
+msgid ""
+"The compression level that is passed to the zlib library when compressing "
+"buffered content."
+msgstr "使用zlib压缩缓冲内容时的压缩级别。"
+
+msgid ""
+"The directory where all logging takes place (i.e. where the logfile is "
+"located)."
+msgstr "所有日志所在的目录。"
+
+msgid "The directory where the other configuration files are located."
+msgstr "其他设置文件所在的目录。"
+
+msgid ""
+"The filter files contain content modification rules that use regular "
+"expressions."
+msgstr "过滤文件包含了使用正则表达式编写的内容修改规则"
+
+msgid "The hostname shown on the CGI pages."
+msgstr "CGI页面显示的主机名。"
+
+msgid "The log file to use. File name, relative to log directory."
+msgstr "日志文件名称,与日志路径相对。"
+
+msgid "The order in which client headers are sorted before forwarding them."
+msgstr "转发数据前,client headers的排序。"
+
+msgid ""
+"The status code Privoxy returns for pages blocked with +handle-as-empty-"
+"document."
+msgstr ""
+"当页面因为handle-as-empty-document规则被阻止时返回的状态码(选上为200 OK,不"
+"选上为403 Forbidden)"
+
+msgid ""
+"The trust mechanism is an experimental feature for building white-lists and "
+"should be used with care."
+msgstr "信任机制是一个实验性的白名单特性,使用时应小心。"
+
+msgid ""
+"The value of this option only matters if the experimental trust mechanism "
+"has been activated."
+msgstr "只有开启了信任机制时这个选项的值才有效"
+
+msgid ""
+"This option is only there for debugging purposes. It will drastically reduce "
+"performance."
+msgstr "这个选项仅用于调试,开启后会极大地降低性能。"
+
+msgid ""
+"This option will be removed in future releases as it has been obsoleted by "
+"the more general header taggers."
+msgstr "这个选项在以后的版本中将被移除,因为它被header taggers所取代了。"
+
+msgid ""
+"This tab controls the security-relevant aspects of Privoxy's configuration."
+msgstr "这个标签用于设置与安全相关的Privoxy选项。"
+
+msgid ""
+"Through which SOCKS proxy (and optionally to which parent HTTP proxy) "
+"specific requests should be routed."
+msgstr "指定的请求应该通过哪一个SOCKS代理(并且通过哪一个HTTP父代理,可选)"
+
+msgid "To which parent HTTP proxy specific requests should be routed."
+msgstr "请求应转发至哪一个父级HTTP代理。"
+
+msgid "User customizations"
+msgstr "用户自定义"
+
+msgid "Value is not a number"
+msgstr "输入值不是数字"
+
+msgid "Value not between 0 and 300"
+msgstr ""
+
+msgid "Value not between 0 and 9"
+msgstr "输入值不在0和9之间。"
+
+msgid "Value not between 1 and 4096"
+msgstr "输入值不在1和4096之间"
+
+msgid "Value not greater 0 or empty"
+msgstr "输入值为空或者不是大于零。"
+
+msgid "Value range 1 to 4096, no entry defaults to 4096"
+msgstr "输入值为1到4096,默认为4096"
+
+msgid "Version"
+msgstr "版本"
+
+msgid "Version Information"
+msgstr "版本信息"
+
+msgid "Whether intercepted requests should be treated as valid."
+msgstr "被拦截的请求是否应被当作有效的。"
+
+msgid ""
+"Whether or not Privoxy recognizes special HTTP headers to change toggle "
+"state."
+msgstr "Privoxy是否识别特殊的HTTP头以切换状态。"
+
+msgid "Whether or not buffered content is compressed before delivery."
+msgstr "缓冲内容在传递之前是否压缩。"
+
+msgid ""
+"Whether or not outgoing connections that have been kept alive should be "
+"shared between different incoming connections."
+msgstr "持久出站连接是否应在不同的入站连接之间共享。"
+
+msgid "Whether or not pipelined requests should be served."
+msgstr "是否处理管道化的请求。"
+
+msgid "Whether or not proxy authentication through Privoxy should work."
+msgstr "是否可以通过Privoxy进行代理验证。"
+
+msgid "Whether or not the web-based actions file editor may be used."
+msgstr "是否使用基于网页的规则编辑器。"
+
+msgid "Whether or not the web-based toggle feature may be used."
+msgstr "是否启用基于网页的切换功能。"
+
+msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected."
+msgstr "访问Privoxy CGI页面的请求是否可以被拦截或重定向。"
+
+msgid ""
+"Whether the CGI interface should stay compatible with broken HTTP clients."
+msgstr "CGI界面是否应兼容过时的HTTP客户端。"
+
+msgid "Whether to run only one server thread."
+msgstr "是否只运行一个服务线程。"
+
+msgid "Who can access what."
+msgstr "谁可以访问什么。"
+
+msgid "installed"
+msgstr "已安装"
+
+msgid "or higher"
+msgstr "或更高"
+
+msgid "required"
+msgstr "需要"
+
+#~ msgid "Local Set-up"
+#~ msgstr "本地设置"
+
+#~ msgid "Software update required"
+#~ msgstr "需要升级软件"
+
+#~ msgid ""
+#~ "The currently installed 'privoxy' package is not supported by LuCI "
+#~ "application."
+#~ msgstr "目前安装的privoxy版本不被luci支持。"
diff --git a/applications/luci-app-radvd/Makefile b/applications/luci-app-radvd/Makefile
index 9b353ed596..214205683a 100644
--- a/applications/luci-app-radvd/Makefile
+++ b/applications/luci-app-radvd/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
+# Copyright (C) 2008-2016 The LuCI Team <luci@lists.subsignal.org>
#
# This is free software, licensed under the Apache License, Version 2.0 .
#
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Support for Radvd
-LUCI_DEPENDS:=+radvd
+LUCI_DEPENDS:=+radvd @BROKEN
include ../../luci.mk
diff --git a/applications/luci-app-rp-pppoe-server/Makefile b/applications/luci-app-rp-pppoe-server/Makefile
new file mode 100644
index 0000000000..6cf4595cea
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/Makefile
@@ -0,0 +1,15 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Roaring Penguing PPPoE Server
+LUCI_DEPENDS:=+rp-pppoe-server
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua b/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua
new file mode 100644
index 0000000000..105a80e28d
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua
@@ -0,0 +1,13 @@
+-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.rp-pppoe-server", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/pppoe") then
+ return
+ end
+
+ entry({"admin", "services", "rp-pppoe-server"}, cbi("rp-pppoe-server"), _("RP PPPoE Server"))
+end
+
diff --git a/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua b/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua
new file mode 100644
index 0000000000..ef15ed6127
--- /dev/null
+++ b/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua
@@ -0,0 +1,72 @@
+-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
+-- Licensed to the public under the Apache License 2.0.
+
+local m, s, o
+
+local nixio = require "nixio"
+
+m = Map("pppoe", translate("Roaring Penguin PPPoE Server"),
+ translate("PPPoE Server Configuration"))
+
+s = m:section(TypedSection, "pppoe_server", translate("Server Configuration"))
+s.addremove = false
+s.anonymous = true
+
+o = s:option(Value, "interface", translate("Interface"), translate("Interface on which to listen."))
+o.template = "cbi/network_ifacelist"
+o.nocreate = true
+
+o = s:option(Value, "ac_name", translate("Access Concentrator Name"))
+o.optional = true
+
+o = s:option(DynamicList, "service_name", translate("Service Name"))
+o.optional = true
+
+o = s:option(Value, "maxsessionsperpeer", translate("Maximum sessions per peer"))
+o.optional = true
+o.datatype = "uinteger"
+
+o = s:option(Value, "localip", translate("IP of listening side"))
+o.datetype = "ipaddr"
+
+o = s:option(Value, "firstremoteip", translate("First remote IP"))
+o.datatype = "ipaddr"
+
+o = s:option(Value, "maxsessions", translate("Maximum sessions"))
+o.datatype = "uinteger"
+o.default = 64
+o.optional = true
+
+o = s:option(Value, "optionsfile", translate("Options file"))
+o.default = "/etc/ppp/pppoe-server-options"
+o.optional = true
+
+o = s:option(Flag, "randomsessions", translate("Random session selection"), translate("Instead of starting at beginning and going to end, randomize session number"))
+o.optional = true
+
+o = s:option(Value, "unit", translate("Unit"), translate("PPP unit number"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 0
+
+o = s:option(Value, "offset", translate("Offset"), translate("PPP offset"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 0
+
+o = s:option(Value, "timeout", translate("Timeout"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 60
+
+o = s:option(Value, "mss", translate("MSS"))
+o.optional = true
+o.datatype = "uinteger"
+o.default = 1468
+
+
+o = s:option(Flag, "sync", translate("Sync"))
+o.optional = true
+o.default = false
+
+return m
diff --git a/applications/luci-app-splash/Makefile b/applications/luci-app-splash/Makefile
index 345f8910ff..5740aa5f7c 100644
--- a/applications/luci-app-splash/Makefile
+++ b/applications/luci-app-splash/Makefile
@@ -9,6 +9,12 @@ 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
+define Package/luci-app-splash/conffiles
+/etc/config/luci_splash
+/usr/lib/luci-splash/splashtext.html
+/usr/lib/luci-splash/splashtextinclude.html
+endef
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-statistics/Makefile b/applications/luci-app-statistics/Makefile
index af07cfbd02..008792a5d0 100644
--- a/applications/luci-app-statistics/Makefile
+++ b/applications/luci-app-statistics/Makefile
@@ -9,8 +9,13 @@ include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Statistics Application
LUCI_DEPENDS:= \
+collectd +rrdtool1 +collectd-mod-rrdtool +collectd-mod-iwinfo \
+ +collectd-mod-cpu +collectd-mod-memory \
+collectd-mod-interface +collectd-mod-load +collectd-mod-network
+define Package/luci-app-statistics/conffiles
+/etc/config/luci_statistics
+endef
+
include ../../luci.mk
# call BuildPackage - OpenWrt buildroot signature
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 3f26aeed6f..36c5554d35 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
@@ -25,6 +25,7 @@ function index()
conntrack = _("Conntrack"),
cpu = _("Processor"),
+ cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
df = _("Disk Space Usage"),
disk = _("Disk Usage"),
@@ -49,6 +50,7 @@ function index()
sensors = _("Sensors"),
splash_leases = _("Splash Leases"),
tcpconns = _("TCP Connections"),
+ thermal = _("Thermal"),
unixsock = _("UnixSock"),
uptime = _("Uptime")
}
@@ -56,8 +58,12 @@ function index()
-- our collectd menu
local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" },
- general = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" },
- network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" }
+ general = { "cpu", "cpufreq", "df", "disk", "email",
+ "entropy", "exec", "irq", "load", "memory",
+ "nut", "processes", "sensors", "thermal", "uptime" },
+ network = { "conntrack", "dns", "interface", "iptables",
+ "netlink", "olsrd", "openvpn", "ping",
+ "splash_leases", "tcpconns", "iwinfo" }
}
-- create toplevel menu nodes
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua
new file mode 100644
index 0000000000..d1116630b4
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua
@@ -0,0 +1,14 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("CPU Frequency Plugin Configuration"),
+ translate("This plugin collects statistics about the processor frequency scaling."))
+
+-- collectd_cpufreq config section
+s = m:section( NamedSection, "collectd_cpufreq", "luci_statistics" )
+
+-- collectd_cpufreq.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua
index b3bdf874c8..f31fb20938 100644
--- a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua
@@ -47,10 +47,16 @@ heartbeat:depends( "enable", 1 )
rrasingle = s:option( Flag, "RRASingle",
translate("Only create average RRAs"), translate("reduces rrd size") )
rrasingle.default = true
-rrasingle.rmempty = true
-rrasingle.optional = true
rrasingle:depends( "enable", 1 )
+-- collectd_rrdtool.rramax (RRAMax)
+rramax = s:option( Flag, "RRAMax",
+ translate("Show max values instead of averages"),
+ translate("Max values for a period can be used instead of averages when not using 'only average RRAs'") )
+rramax.default = false
+rramax.rmempty = true
+rramax:depends( "RRASingle", 0 )
+
-- collectd_rrdtool.rratimespans (RRATimespan)
rratimespans = s:option( Value, "RRATimespans",
translate("Stored timespans"), translate("seconds; multiple separated by space") )
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
new file mode 100644
index 0000000000..bdf41b79bc
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
@@ -0,0 +1,29 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("Thermal Plugin Configuration"),
+ translate("The thermal plugin will monitor temperature of the system. " ..
+ "Data is typically read from /sys/class/thermal/*/temp " ..
+ "( '*' denotes the thermal device to be read, e.g. thermal_zone1 )")
+ )
+
+-- collectd_thermal config section
+s = m:section( NamedSection, "collectd_thermal", "luci_statistics" )
+
+-- collectd_thermal.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+-- collectd_thermal.tz (Device)
+tz = s:option( Value, "Device", translate("Monitor device(s) / thermal zone(s)"),
+ translate("Empty value = monitor all") )
+tz.optional = true
+tz:depends( "enable", 1 )
+
+-- collectd_thermal.ignoreselected (IgnoreSelected)
+ignoreselected = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") )
+ignoreselected.default = 0
+ignoreselected.optional = true
+ignoreselected:depends( "enable", 1 )
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
index 5d4ad9859d..4e00e7f1fc 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool.lua
@@ -25,6 +25,7 @@ function Graph.__init__( self, timespan, opts )
-- options
opts.timespan = timespan or sections.rrdtool.default_timespan or 900
opts.rrasingle = opts.rrasingle or ( sections.collectd_rrdtool.RRASingle == "1" )
+ opts.rramax = opts.rramax or ( sections.collectd_rrdtool.RRAMax == "1" )
opts.host = opts.host or sections.collectd.Hostname or luci.sys.hostname()
opts.width = opts.width or sections.rrdtool.image_width or 400
opts.rrdpath = opts.rrdpath or sections.collectd_rrdtool.DataDir or "/tmp/rrd"
@@ -171,16 +172,29 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
-- is first source in stack or overlay source: source_stk = source_nnl
if not prev or source.overlay then
+ if self.opts.rrasingle or not self.opts.rramax then
-- create cdef statement for cumulative stack (no NaNs) and also
-- for display (preserving NaN where no points should be displayed)
_tif( _args, "CDEF:%s_stk=%s_nnl", source.sname, source.sname )
_tif( _args, "CDEF:%s_plot=%s_avg", source.sname, source.sname )
+ else
+ -- create cdef statement for cumulative stack (no NaNs) and also
+ -- for display (preserving NaN where no points should be displayed)
+ _tif( _args, "CDEF:%s_stk=%s_nnl", source.sname, source.sname )
+ _tif( _args, "CDEF:%s_plot=%s_max", source.sname, source.sname )
+ end
-- is subsequent source without overlay: source_stk = source_nnl + previous_stk
else
+ if self.opts.rrasingle or not self.opts.rramax then
-- create cdef statement
_tif( _args, "CDEF:%s_stk=%s_nnl,%s_stk,+", source.sname, source.sname, prev )
_tif( _args, "CDEF:%s_plot=%s_avg,%s_stk,+", source.sname, source.sname, prev )
+ else
+ -- create cdef statement
+ _tif( _args, "CDEF:%s_stk=%s_nnl,%s_stk,+", source.sname, source.sname, prev )
+ _tif( _args, "CDEF:%s_plot=%s_max,%s_stk,+", source.sname, source.sname, prev )
+ end
end
-- create multiply by minus one cdef if flip is enabled
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua
new file mode 100644
index 0000000000..25a72d2285
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua
@@ -0,0 +1,25 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.cpufreq",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Processor frequency",
+ alt_autoscale = true,
+ vlabel = "Frequency (Hz)",
+ number_format = "%3.2lf%s",
+ data = {
+ sources = {
+ cpufreq = { "" }
+ },
+ options = {
+ cpufreq_0 = { color = "ff0000", title = "Core 0", noarea=true, overlay=true },
+ cpufreq_1 = { color = "0000ff", title = "Core 1", noarea=true, overlay=true },
+ cpufreq_2 = { color = "00ff00", title = "Core 2", noarea=true, overlay=true },
+ cpufreq_3 = { color = "00ffff", title = "Core 3", noarea=true, overlay=true }
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua
index 78c9ef5044..fbc3884b46 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua
@@ -6,27 +6,33 @@ module("luci.statistics.rrdtool.definitions.df", package.seeall)
function rrdargs( graph, plugin, plugin_instance, dtype )
return {
- title = "%H: Disk space usage on %di",
+ title = "%H: Disk space usage on %pi",
vlabel = "Bytes",
per_instance = true,
number_format = "%5.1lf%sB",
data = {
- sources = {
- df = { "free", "used" }
+ instances = {
+ df_complex = { "free", "used", "reserved" }
},
options = {
- df__free = {
+ df_complex_free = {
color = "00ff00",
overlay = false,
title = "free"
},
- df__used = {
+ df_complex_used = {
color = "ff0000",
overlay = false,
title = "used"
+ },
+
+ df_complex_reserved = {
+ color = "0000ff",
+ overlay = false,
+ title = "reserved"
}
}
}
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
index 8b04ab8b38..dd93196902 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
@@ -32,23 +32,24 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
options = {
current_output = { color = "00e000", title = "Output current", noarea=true, overlay=true },
- current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true },
+ current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true }
}
}
}
local percentage = {
- title = "%H: Battery charge on UPS \"%pi\"",
+ title = "%H: Battery charge/load on UPS \"%pi\"",
vlabel = "Percent",
y_min = "0",
y_max = "100",
number_format = "%5.1lf%%",
data = {
instances = {
- percent = "charge"
+ percent = { "charge", "load" }
},
options = {
- percent_charge = { color = "00ff00", title = "Charge level" }
+ percent_charge = { color = "00ff00", title = "Charge level" },
+ percent_load = { color = "ff0000", title = "Load" }
}
}
}
@@ -78,10 +79,39 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
timeleft = { "battery" }
},
options = {
- timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/" }
+ timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/", noarea=true }
}
}
}
- return { voltages, currents, percentage, temperature, timeleft }
+ local power = {
+ title = "%H: Power on UPS \"%pi\"",
+ vlabel = "Power",
+ number_format = "%5.1lf%%",
+ data = {
+ instances = {
+ power = { "ups" }
+ },
+ options = {
+ power_ups = { color = "00ff00", title = "Power level" }
+ }
+ }
+ }
+
+ local frequencies = {
+ title = "%H: Frequencies on UPS \"%pi\"",
+ vlabel = "Hz",
+ number_format = "%5.1lfHz",
+ data = {
+ instances = {
+ frequency = { "input", "output" }
+ },
+
+ options = {
+ frequency_output = { color = "00e000", title = "Output frequency", noarea=true, overlay=true },
+ frequency_input = { color = "ffb000", title = "Input frequency", noarea=true, overlay=true }
+ }
+ }
+ }
+ return { voltages, currents, percentage, temperature, timeleft, power, frequencies }
end
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
new file mode 100644
index 0000000000..532246465e
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
@@ -0,0 +1,20 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.thermal",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Temperature of %pi",
+ alt_autoscale = true,
+ vlabel = "Celsius",
+ number_format = "%3.1lf%s",
+ data = {
+ types = { "temperature" },
+ options = {
+ temperature = { color = "ff0000", title = "Temperature", noarea=true },
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/po/ca/statistics.po b/applications/luci-app-statistics/po/ca/statistics.po
index 5ccaa4a409..2c648ceca9 100644
--- a/applications/luci-app-statistics/po/ca/statistics.po
+++ b/applications/luci-app-statistics/po/ca/statistics.po
@@ -245,6 +245,11 @@ msgstr "Interfícies que reben connexions"
msgid "Load Plugin Configuration"
msgstr "Configuració de connector de càrrega"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Connexions màximes permeses"
@@ -413,6 +418,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Monitoreig de classe shaping"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Fitxer d'endoll"
diff --git a/applications/luci-app-statistics/po/cs/statistics.po b/applications/luci-app-statistics/po/cs/statistics.po
index bfa1b899ba..2a725461e7 100644
--- a/applications/luci-app-statistics/po/cs/statistics.po
+++ b/applications/luci-app-statistics/po/cs/statistics.po
@@ -240,6 +240,11 @@ msgstr "Rozhraní naslouchajícího"
msgid "Load Plugin Configuration"
msgstr "Načíst nastavení pluginů"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Maximální množství povolených spojení"
@@ -409,6 +414,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Soubor socketu"
diff --git a/applications/luci-app-statistics/po/de/statistics.po b/applications/luci-app-statistics/po/de/statistics.po
index 91baf0e064..51697bfd5e 100644
--- a/applications/luci-app-statistics/po/de/statistics.po
+++ b/applications/luci-app-statistics/po/de/statistics.po
@@ -247,6 +247,11 @@ msgstr "Listen-Schnittstelle"
msgid "Load Plugin Configuration"
msgstr "Load Plugin Konfiguration"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Maximale Anzahl erlaubter Verbindungen"
@@ -415,6 +420,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Shapingklassen überwachen"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Socket-Datei"
diff --git a/applications/luci-app-statistics/po/el/statistics.po b/applications/luci-app-statistics/po/el/statistics.po
index 746284f8d8..3388ea510e 100644
--- a/applications/luci-app-statistics/po/el/statistics.po
+++ b/applications/luci-app-statistics/po/el/statistics.po
@@ -238,6 +238,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -406,6 +411,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/en/statistics.po b/applications/luci-app-statistics/po/en/statistics.po
index 79f710c97a..fe1f8beb96 100644
--- a/applications/luci-app-statistics/po/en/statistics.po
+++ b/applications/luci-app-statistics/po/en/statistics.po
@@ -243,6 +243,11 @@ msgstr "Listener interfaces"
msgid "Load Plugin Configuration"
msgstr "Load Plugin Configuration"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Maximum allowed connections"
@@ -411,6 +416,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Shaping class monitoring"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/es/statistics.po b/applications/luci-app-statistics/po/es/statistics.po
index 7067710f13..0d47b659c4 100644
--- a/applications/luci-app-statistics/po/es/statistics.po
+++ b/applications/luci-app-statistics/po/es/statistics.po
@@ -242,6 +242,11 @@ msgstr "Interfaces para escuchar"
msgid "Load Plugin Configuration"
msgstr "Configuración del plugin de carga"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Máximo número de conexiones"
@@ -410,6 +415,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Monitorización de la clase shaping"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Fichero de sockets"
diff --git a/applications/luci-app-statistics/po/fr/statistics.po b/applications/luci-app-statistics/po/fr/statistics.po
index 194a220480..b7ace0cac1 100644
--- a/applications/luci-app-statistics/po/fr/statistics.po
+++ b/applications/luci-app-statistics/po/fr/statistics.po
@@ -244,6 +244,11 @@ msgstr "Interfaces en écoute"
msgid "Load Plugin Configuration"
msgstr "Configuration du greffon de charge-système"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Nb de Connexions autorisées au maximum"
@@ -412,6 +417,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Surveillance liées à la priorité"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/he/statistics.po b/applications/luci-app-statistics/po/he/statistics.po
index 10e8a12688..a5da218a25 100644
--- a/applications/luci-app-statistics/po/he/statistics.po
+++ b/applications/luci-app-statistics/po/he/statistics.po
@@ -233,6 +233,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -401,6 +406,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/hu/statistics.po b/applications/luci-app-statistics/po/hu/statistics.po
index 5d384144bd..bf4dd53a0e 100644
--- a/applications/luci-app-statistics/po/hu/statistics.po
+++ b/applications/luci-app-statistics/po/hu/statistics.po
@@ -245,6 +245,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr "Terhelés bővítmény beállítása"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Megengedett kapcsolatok maximális száma"
@@ -413,6 +418,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Socket fájlok"
diff --git a/applications/luci-app-statistics/po/it/statistics.po b/applications/luci-app-statistics/po/it/statistics.po
index ab5a783b37..1313336120 100644
--- a/applications/luci-app-statistics/po/it/statistics.po
+++ b/applications/luci-app-statistics/po/it/statistics.po
@@ -243,6 +243,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -411,6 +416,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/ja/statistics.po b/applications/luci-app-statistics/po/ja/statistics.po
index 7ee9ae0846..7469fe68ab 100644
--- a/applications/luci-app-statistics/po/ja/statistics.po
+++ b/applications/luci-app-statistics/po/ja/statistics.po
@@ -233,6 +233,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -401,6 +406,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/ms/statistics.po b/applications/luci-app-statistics/po/ms/statistics.po
index 02dfae9eef..3f32b633bc 100644
--- a/applications/luci-app-statistics/po/ms/statistics.po
+++ b/applications/luci-app-statistics/po/ms/statistics.po
@@ -230,6 +230,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -398,6 +403,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/no/statistics.po b/applications/luci-app-statistics/po/no/statistics.po
index c4300bc445..945fa79b12 100644
--- a/applications/luci-app-statistics/po/no/statistics.po
+++ b/applications/luci-app-statistics/po/no/statistics.po
@@ -232,6 +232,11 @@ msgstr "Lyttende grensesnitt"
msgid "Load Plugin Configuration"
msgstr "Belastning plugin konfigurasjon"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Maksimum tillatte tilkoblinger"
@@ -400,6 +405,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Shaping class overvåking"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/pl/statistics.po b/applications/luci-app-statistics/po/pl/statistics.po
index d352bedb26..f8176b657a 100644
--- a/applications/luci-app-statistics/po/pl/statistics.po
+++ b/applications/luci-app-statistics/po/pl/statistics.po
@@ -246,6 +246,11 @@ msgstr "Interfejsy nasłuchującego"
msgid "Load Plugin Configuration"
msgstr "Konfiguracja wtyczki Obciążenie"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Maksymalna ilość połączeń"
@@ -414,6 +419,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Shaping Klasa Monitoring"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Plik Gniazdo"
diff --git a/applications/luci-app-statistics/po/pt-br/statistics.po b/applications/luci-app-statistics/po/pt-br/statistics.po
index 9abba4975b..92213a8cef 100644
--- a/applications/luci-app-statistics/po/pt-br/statistics.po
+++ b/applications/luci-app-statistics/po/pt-br/statistics.po
@@ -246,6 +246,11 @@ msgstr "Escutar na(s) interface(s)"
msgid "Load Plugin Configuration"
msgstr "Configuração do plugin carga"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Máximo de conexões permitidas"
@@ -414,6 +419,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Monitoramento das Classes de Shaping"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Arquivo do socket"
diff --git a/applications/luci-app-statistics/po/pt/statistics.po b/applications/luci-app-statistics/po/pt/statistics.po
index 34b435c5d1..e215df87d2 100644
--- a/applications/luci-app-statistics/po/pt/statistics.po
+++ b/applications/luci-app-statistics/po/pt/statistics.po
@@ -245,6 +245,11 @@ msgstr "Escutar na(s) interface(s)"
msgid "Load Plugin Configuration"
msgstr "Configuração do plugin carga"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Máximo de conexões permitidas"
@@ -413,6 +418,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Monitoramento das Classes de Shaping"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/ro/statistics.po b/applications/luci-app-statistics/po/ro/statistics.po
index 7990970d20..a8042b435c 100644
--- a/applications/luci-app-statistics/po/ro/statistics.po
+++ b/applications/luci-app-statistics/po/ro/statistics.po
@@ -237,6 +237,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -405,6 +410,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/ru/statistics.po b/applications/luci-app-statistics/po/ru/statistics.po
index d41248f8a5..41f8110823 100644
--- a/applications/luci-app-statistics/po/ru/statistics.po
+++ b/applications/luci-app-statistics/po/ru/statistics.po
@@ -247,6 +247,11 @@ msgstr "Использовать интерфейсы"
msgid "Load Plugin Configuration"
msgstr "Конфигурация модуля Load"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Максимальное число соединений"
@@ -417,6 +422,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Мониторинг классов шейпинга"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Файл сокета"
diff --git a/applications/luci-app-statistics/po/sk/statistics.po b/applications/luci-app-statistics/po/sk/statistics.po
index e0400c2fde..c8100e3e77 100644
--- a/applications/luci-app-statistics/po/sk/statistics.po
+++ b/applications/luci-app-statistics/po/sk/statistics.po
@@ -228,6 +228,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -396,6 +401,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/sv/statistics.po b/applications/luci-app-statistics/po/sv/statistics.po
index bbc7b77856..a7443b3077 100644
--- a/applications/luci-app-statistics/po/sv/statistics.po
+++ b/applications/luci-app-statistics/po/sv/statistics.po
@@ -233,6 +233,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr "Konfiguration av insticksprogrammet Load"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Maximalt tillåtna anslutningar"
@@ -401,6 +406,9 @@ msgstr "Installera"
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "Socketfil"
diff --git a/applications/luci-app-statistics/po/templates/statistics.pot b/applications/luci-app-statistics/po/templates/statistics.pot
index 2b4ba7fbc2..c07f4dc4ad 100644
--- a/applications/luci-app-statistics/po/templates/statistics.pot
+++ b/applications/luci-app-statistics/po/templates/statistics.pot
@@ -221,6 +221,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -389,6 +394,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/tr/statistics.po b/applications/luci-app-statistics/po/tr/statistics.po
index 505b5a16b9..235ad1cc0a 100644
--- a/applications/luci-app-statistics/po/tr/statistics.po
+++ b/applications/luci-app-statistics/po/tr/statistics.po
@@ -229,6 +229,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -397,6 +402,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/uk/statistics.po b/applications/luci-app-statistics/po/uk/statistics.po
index ee5ea8f35f..0be5b367b5 100644
--- a/applications/luci-app-statistics/po/uk/statistics.po
+++ b/applications/luci-app-statistics/po/uk/statistics.po
@@ -234,6 +234,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -402,6 +407,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/vi/statistics.po b/applications/luci-app-statistics/po/vi/statistics.po
index 28bc8b4bc6..ef99e551ad 100644
--- a/applications/luci-app-statistics/po/vi/statistics.po
+++ b/applications/luci-app-statistics/po/vi/statistics.po
@@ -244,6 +244,11 @@ msgstr "Giao diện listener"
msgid "Load Plugin Configuration"
msgstr "Tải cấu hình plugin"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "Tối đã kết nối cho phép"
@@ -412,6 +417,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "Shaping class monitoring"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/po/zh-cn/statistics.po b/applications/luci-app-statistics/po/zh-cn/statistics.po
index 4714ab5e80..7b3bbfc0c6 100644
--- a/applications/luci-app-statistics/po/zh-cn/statistics.po
+++ b/applications/luci-app-statistics/po/zh-cn/statistics.po
@@ -239,6 +239,11 @@ msgstr "监听接口"
msgid "Load Plugin Configuration"
msgstr "Load插件配置"
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr "最大允许连接数"
@@ -407,6 +412,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr "整形类监控"
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr "套接字文件"
diff --git a/applications/luci-app-statistics/po/zh-tw/statistics.po b/applications/luci-app-statistics/po/zh-tw/statistics.po
index 367f567245..9a9ca34a1a 100644
--- a/applications/luci-app-statistics/po/zh-tw/statistics.po
+++ b/applications/luci-app-statistics/po/zh-tw/statistics.po
@@ -227,6 +227,11 @@ msgstr ""
msgid "Load Plugin Configuration"
msgstr ""
+msgid ""
+"Max values for a period can be used instead of averages when not using 'only "
+"average RRAs'"
+msgstr ""
+
msgid "Maximum allowed connections"
msgstr ""
@@ -395,6 +400,9 @@ msgstr ""
msgid "Shaping class monitoring"
msgstr ""
+msgid "Show max values instead of averages"
+msgstr ""
+
msgid "Socket file"
msgstr ""
diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics
index de16f29de9..774a8382e2 100644
--- a/applications/luci-app-statistics/root/etc/config/luci_statistics
+++ b/applications/luci-app-statistics/root/etc/config/luci_statistics
@@ -53,6 +53,9 @@ config statistics 'collectd_conntrack'
option enable '0'
config statistics 'collectd_cpu'
+ option enable '1'
+
+config statistics 'collectd_cpufreq'
option enable '0'
config statistics 'collectd_df'
@@ -113,7 +116,7 @@ config statistics 'collectd_load'
option enable '1'
config statistics 'collectd_memory'
- option enable '0'
+ option enable '1'
config statistics 'collectd_netlink'
option enable '0'
@@ -151,6 +154,11 @@ config statistics 'collectd_tcpconns'
option ListeningPorts '0'
option LocalPorts '22 80'
+config statistics 'collectd_thermal'
+ option enable '0'
+ option IgnoreSelected '0'
+ option Device ''
+
config statistics 'collectd_uptime'
option enable '0'
diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
index 49d8a09935..df9af15261 100755
--- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig
+++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
@@ -273,6 +273,12 @@ plugins = {
{ }
},
+ cpufreq = {
+ { },
+ { },
+ { }
+ },
+
csv = {
{ "DataDir" },
{ "StoreRates" },
@@ -417,6 +423,12 @@ plugins = {
{ "LocalPorts", "RemotePorts" }
},
+ thermal = {
+ { },
+ { "IgnoreSelected" },
+ { "Device" }
+ },
+
unixsock = {
{ "SocketFile", "SocketGroup", "SocketPerms" },
{ },
diff --git a/applications/luci-app-transmission/Makefile b/applications/luci-app-transmission/Makefile
index 45175b7d17..668c73185b 100644
--- a/applications/luci-app-transmission/Makefile
+++ b/applications/luci-app-transmission/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
+# Copyright (C) 2008-2016 The LuCI Team <luci@lists.subsignal.org>
#
# This is free software, licensed under the Apache License, Version 2.0 .
#
@@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Support for Transmission
-LUCI_DEPENDS:=+transmission-daemon
+LUCI_DEPENDS:=
include ../../luci.mk
diff --git a/applications/luci-app-travelmate/Makefile b/applications/luci-app-travelmate/Makefile
new file mode 100644
index 0000000000..f4b1b0a4e3
--- /dev/null
+++ b/applications/luci-app-travelmate/Makefile
@@ -0,0 +1,13 @@
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for Travelmate
+LUCI_DEPENDS:=+travelmate
+LUCI_PKGARCH:=all
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
new file mode 100644
index 0000000000..27c19c4e52
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua
@@ -0,0 +1,11 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.travelmate", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/travelmate") then
+ return
+ end
+
+ entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60)
+end
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
new file mode 100644
index 0000000000..9050ae9686
--- /dev/null
+++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
@@ -0,0 +1,53 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("travelmate", translate("Travelmate"),
+ translate("Configuration of the Travelmate package to enable travel router functionality. ") .. [[</p>]] ..
+ translate("Brief advice: Create a wwan interface, configure it to use dhcp and " ..
+ "add it to the wan zone in firewall. Create the wifi interfaces to be used ('client' mode, " ..
+ "assigned to wwan network, left as disabled). Travelmate will try " ..
+ "to connect to the known wifi client interfaces in the defined order. ") ..
+ [[<a href="https://github.com/openwrt/packages/tree/master/net/travelmate/files/README.md" target="_blank">]]
+ .. translate("Link to detailed advice")
+ .. [[</a>]] )
+
+-- General options
+
+s = m:section(NamedSection, "global", "travelmate", translate("Global options"))
+
+o = s:option(Flag, "trm_enabled", translate("Enable Travelmate"))
+o.rmempty = false
+o.default = 0
+
+o = s:option(Value, "trm_loop", translate("Loop timeout in seconds for wlan monitoring"),
+ translate("Default 30, range 5-60"))
+o.rmempty = false
+o.default = 30
+o.datatype = "range(5,60)"
+
+o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"),
+ translate("Default 3, range 0-10. Set to 0 to allow unlimited retries"))
+o.rmempty = false
+o.default = 3
+o.datatype = "range(0,10)"
+
+-- Extra options
+
+e = m:section(NamedSection, "global", "travelmate", translate("Extra options"))
+
+a = e:option(Flag, "trm_debug", translate("Debug logging"))
+a.rmempty = true
+a.default = a.disabled
+
+a = e:option(Value, "trm_device", translate("Use only one radio, e.g. 'radio0'"),
+ translate("Default: empty = use all radios."))
+a.rmempty = true
+a.default = ""
+a.datatype = "uciname"
+
+a = e:option(Flag, "trm_iw", translate("Use iw for scanning"),
+ translate("Disable this if you want to use iwinfo instead of iw"))
+a.rmempty = true
+a.default = a.enabled
+
+return m
+
diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot
new file mode 100644
index 0000000000..533b3e2639
--- /dev/null
+++ b/applications/luci-app-travelmate/po/templates/travelmate.pot
@@ -0,0 +1,56 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
+"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
+"mode, assigned to wwan network, left as disabled). Travelmate will try to "
+"connect to the known wifi client interfaces in the defined order."
+msgstr ""
+
+msgid ""
+"Configuration of the Travelmate package to enable travel router "
+"functionality."
+msgstr ""
+
+msgid "Debug logging"
+msgstr ""
+
+msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
+msgstr ""
+
+msgid "Default 30, range 5-60"
+msgstr ""
+
+msgid "Default: empty = use all radios."
+msgstr ""
+
+msgid "Disable this if you want to use iwinfo instead of iw"
+msgstr ""
+
+msgid "Enable Travelmate"
+msgstr ""
+
+msgid "Extra options"
+msgstr ""
+
+msgid "Global options"
+msgstr ""
+
+msgid "Link to detailed advice"
+msgstr ""
+
+msgid "Loop timeout in seconds for wlan monitoring"
+msgstr ""
+
+msgid "Max. number of connection retries to an uplink"
+msgstr ""
+
+msgid "Travelmate"
+msgstr ""
+
+msgid "Use iw for scanning"
+msgstr ""
+
+msgid "Use only one radio, e.g. 'radio0'"
+msgstr ""
diff --git a/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
new file mode 100755
index 0000000000..f7676774a1
--- /dev/null
+++ b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@travelmate[-1]
+ add ucitrack travelmate
+ set ucitrack.@travelmate[-1].init=travelmate
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-unbound/Makefile b/applications/luci-app-unbound/Makefile
new file mode 100644
index 0000000000..6d953e13b2
--- /dev/null
+++ b/applications/luci-app-unbound/Makefile
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2008-2014 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:=Unbound Recursive DNS Resolver Configuration
+LUCI_DEPENDS:=+unbound
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-unbound/luasrc/controller/unbound.lua b/applications/luci-app-unbound/luasrc/controller/unbound.lua
new file mode 100644
index 0000000000..0a5abc5a5e
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/controller/unbound.lua
@@ -0,0 +1,17 @@
+-- Copyright 2008 Steven Barth <steven@midlink.org>
+-- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.unbound", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/unbound") then
+ return
+ end
+
+ local page
+
+ page = entry({"admin", "services", "unbound"}, cbi("unbound"), _("Recursive DNS"))
+ page.dependent = true
+end
+
diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
new file mode 100644
index 0000000000..22f020021c
--- /dev/null
+++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
@@ -0,0 +1,123 @@
+-- Copyright 2008 Steven Barth <steven@midlink.org>
+-- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("unbound", translate("Recursive DNS"),
+ translate("Unbound is a validating, recursive, and caching DNS resolver."))
+
+s = m:section(TypedSection, "unbound", translate("Unbound Settings"))
+s.addremove = false
+s.anonymous = true
+
+s:tab("service", translate("Unbound Service"))
+s:tab("resource", translate("Unbound Resources"))
+s:tab("dnsmasq", translate("Dnsmasq Link"))
+
+--Enable Unbound
+
+e = s:taboption("service", Flag, "enabled", translate("Enable Unbound:"),
+ translate("Enable the initialization scripts for Unbound"))
+e.rmempty = false
+
+function e.cfgvalue(self, section)
+ return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
+end
+
+function e.write(self, section, value)
+ if value == "1" then
+ luci.sys.init.enable("unbound")
+ luci.sys.call("/etc/init.d/unbound start >/dev/null")
+ else
+ luci.sys.call("/etc/init.d/unbound stop >/dev/null")
+ luci.sys.init.disable("unbound")
+ end
+
+ return Flag.write(self, section, value)
+end
+
+--Service Tab
+
+mcf = s:taboption("service", Flag, "manual_conf", translate("Manual Conf:"),
+ translate("Skip UCI and use /etc/unbound/unbound.conf"))
+mcf.rmempty = false
+
+lsv = s:taboption("service", Flag, "localservice", translate("Local Service:"),
+ translate("Accept queries only from local subnets"))
+lsv.rmempty = false
+
+qry = s:taboption("service", Flag, "query_minimize", translate("Query Minimize:"),
+ translate("Break down query components for small added privacy"))
+qry.rmempty = false
+
+rlh = s:taboption("service", Flag, "rebind_localhost", translate("Block Localhost Rebind:"),
+ translate("Prevent upstream response of 127.0.0.0/8"))
+rlh.rmempty = false
+
+rpv = s:taboption("service", Flag, "rebind_protection", translate("Block Private Rebind:"),
+ translate("Prevent upstream response of RFC1918 ranges"))
+rpv.rmempty = false
+
+vld = s:taboption("service", Flag, "validator", translate("Enable DNSSEC:"),
+ translate("Enable the DNSSEC validator module"))
+vld.rmempty = false
+
+nvd = s:taboption("service", Flag, "validator_ntp", translate("DNSSEC NTP Fix:"),
+ translate("Break the loop where DNSSEC needs NTP and NTP needs DNS"))
+nvd.rmempty = false
+
+eds = s:taboption("service", Value, "edns_size", translate("EDNS Size:"),
+ translate("Limit extended DNS packet size"))
+eds.datatype = "and(uinteger,min(512),max(4096))"
+eds.rmempty = false
+
+prt = s:taboption("service", Value, "listen_port", translate("Listening Port:"),
+ translate("Choose Unbounds listening port"))
+prt.datatype = "port"
+prt.rmempty = false
+
+tlm = s:taboption("service", Value, "ttl_min", translate("TTL Minimum:"),
+ translate("Prevent excessively short cache periods"))
+tlm.datatype = "and(uinteger,min(0),max(600))"
+tlm.rmempty = false
+
+--Resource Tuning Tab
+
+rsn = s:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"),
+ translate("Recursion activity affects memory growth and CPU load"))
+rsn:value("aggressive", translate("Aggressive"))
+rsn:value("default", translate("Default"))
+rsn:value("passive", translate("Passive"))
+rsn.rmempty = false
+
+rsc = s:taboption("resource", ListValue, "resource", translate("Memory Resource:"),
+ translate("Use menu System/Processes to observe any memory growth"))
+rsc:value("large", translate("Large"))
+rsc:value("medium", translate("Medium"))
+rsc:value("small", translate("Small"))
+rsc:value("tiny", translate("Tiny"))
+rsc.rmempty = false
+
+age = s:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
+ translate("Limit days between RFC5011 to reduce flash writes"))
+age.datatype = "and(uinteger,min(1),max(99))"
+age:value("14", "14")
+age:value("28", "28 ("..translate("default")..")")
+age:value("45", "45")
+age:value("90", "90")
+age:value("99", "99 ("..translate("never")..")")
+
+--Dnsmasq Link Tab
+
+dld = s:taboption("dnsmasq", Flag, "dnsmasq_link_dns", translate("Link dnsmasq:"),
+ translate("Forward queries to dnsmasq for local clients"))
+dld.rmempty = false
+
+dgn = s:taboption("dnsmasq", Flag, "dnsmsaq_gate_name", translate("Local Gateway Name:"),
+ translate("Also query dnsmasq for this hosts outbound gateway"))
+dgn.rmempty = false
+
+--TODO: Read only repective dnsmasq options and inform user of link requirements.
+--TODO: dnsmasq needs to not reference resolve-file and get off port 53.
+
+return m
+
diff --git a/applications/luci-app-wifischedule/Makefile b/applications/luci-app-wifischedule/Makefile
new file mode 100644
index 0000000000..1708562a4e
--- /dev/null
+++ b/applications/luci-app-wifischedule/Makefile
@@ -0,0 +1,22 @@
+# Copyright (c) 2016, prpl Foundation
+#
+# Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+# fee is hereby granted, provided that the above copyright notice and this permission notice appear
+# in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+# FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Author: Nils Koenig <openwrt@newk.it>
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Turns WiFi on and off according to a schedule
+LUCI_DEPENDS:=+wifischedule
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-wifischedule/README.md b/applications/luci-app-wifischedule/README.md
new file mode 100644
index 0000000000..591abb1049
--- /dev/null
+++ b/applications/luci-app-wifischedule/README.md
@@ -0,0 +1,86 @@
+# wifischedule
+Turns WiFi on and off according to a schedule on an openwrt router
+
+## Components
+* wifischedule: Shell script that creates cron jobs based on configuration provided in UCI and does all the other logic of enabling and disabling wifi with the use of `/sbin/wifi` and `/usr/bin/iwinfo`. Can be used standalone.
+* luci-app-wifischedule: LUCI frontend for creating the UCI configuration and triggering the actions. Depends on wifischedule.
+
+
+## Use cases
+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.
+2. Reduce emitted electromagnatic radiation.
+3. Force busincess hours when WiFi is available.
+
+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 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.
+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.
+The cron jobs created can be reviewed through the "View Cron Jobs" tab.
+
+Please note that the "Unload Modules" function is currently considered as experimental. You can manually add / remove modules in the text field.
+The button "Determine Modules Automatically" tries to make a best guess determining regarding the driver module and its dependencies.
+When un-/loading the modules, there is a certain number of retries (`module_load`) performed.
+
+The option "Force disabling wifi even if stations associated" does what it says - when activated it simply shuts down WiFi.
+When unchecked, its checked every `recheck_interval` minutes if there are still stations associated. Once the stations disconnect, WiFi is disabled.
+
+Please note, that the parameters `module_load` and `recheck_interval` are only accessible through uci.
+
+## UCI Configuration `wifi_schedule`
+UCI configuration file: `/etc/config/wifi_schedule`:
+
+```
+config global
+ option logging '0'
+ option enabled '0'
+ option recheck_interval '10'
+ option modules_retries '10'
+
+config entry 'Businesshours'
+ option enabled '0'
+ option daysofweek 'Monday Tuesday Wednesday Thursday Friday'
+ option starttime '06:00'
+ option stoptime '22:00'
+ option forcewifidown '0'
+
+config entry 'Weekend'
+ option enabled '0'
+ option daysofweek 'Saturday Sunday'
+ option starttime '00:00'
+ option stoptime '00:00'
+ option forcewifidown '1'
+```
+
+## Script: `wifi_schedule.sh`
+This is the script that does the work. Make your changes to the UCI config file: `/etc/config/wifi_schedule`
+
+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
+
+ cron: Create cronjob entries.
+ start: Start wifi.
+ stop: Stop wifi gracefully, i.e. check if there are stations associated and if so keep retrying.
+ forcestop: Stop wifi immediately.
+ recheck: Recheck if wifi can be disabled now.
+ getmodules: Returns a list of modules used by the wireless driver(s)
+ savemodules: Saves a list of automatic determined modules to UCI
+ help: This description.
+```
diff --git a/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua b/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua
new file mode 100644
index 0000000000..a33c7aab9a
--- /dev/null
+++ b/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua
@@ -0,0 +1,32 @@
+-- Copyright (c) 2016, prpl Foundation
+--
+-- Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+-- fee is hereby granted, provided that the above copyright notice and this permission notice appear
+-- in all copies.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+-- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+-- FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+-- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--
+-- Author: Nils Koenig <openwrt@newk.it>
+
+module("luci.controller.wifischedule.wifi_schedule", package.seeall)
+
+function index()
+ entry({"admin", "wifi_schedule"}, firstchild(), "Wifi Schedule", 60).dependent=false
+ entry({"admin", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), "Schedule", 1)
+ entry({"admin", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), "View Logfile", 2)
+ entry({"admin", "wifi_schedule", "cronjob"}, call("view_crontab"), "View Cron Jobs", 3)
+end
+
+function wifi_schedule_log()
+ local logfile = luci.sys.exec("cat /tmp/log/wifi_schedule.log")
+ luci.template.render("wifischedule/file_viewer", {title="Wifi Schedule Logfile", content=logfile})
+end
+
+function view_crontab()
+ local crontab = luci.sys.exec("cat /etc/crontabs/root")
+ luci.template.render("wifischedule/file_viewer", {title="Cron Jobs", content=crontab})
+end
diff --git a/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua b/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua
new file mode 100644
index 0000000000..2cca476b4f
--- /dev/null
+++ b/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua
@@ -0,0 +1,259 @@
+-- Copyright (c) 2016, prpl Foundation
+--
+-- Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+-- fee is hereby granted, provided that the above copyright notice and this permission notice appear
+-- in all copies.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+-- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+-- FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+-- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--
+-- Author: Nils Koenig <openwrt@newk.it>
+
+function file_exists(name)
+ local f=io.open(name,"r")
+ if f~=nil then io.close(f) return true else return false end
+end
+
+
+function time_validator(self, value, desc)
+ if value ~= nil then
+
+ h_str, m_str = string.match(value, "^(%d%d?):(%d%d?)$")
+ h = tonumber(h_str)
+ m = tonumber(m_str)
+ if ( h ~= nil and
+ h >= 0 and
+ h <= 23 and
+ m ~= nil and
+ m >= 0 and
+ m <= 59) then
+ return value
+ end
+ end
+ return nil, translate("The value '" .. desc .. "' is invalid")
+end
+
+-- -------------------------------------------------------------------------------------------------
+
+-- BEGIN Map
+m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi."))
+function m.on_commit(self)
+ luci.sys.exec("/usr/bin/wifi_schedule.sh cron")
+end
+-- END Map
+
+-- BEGIN Global Section
+global_section = m:section(TypedSection, "global", "Global Settings")
+global_section.optional = false
+global_section.rmempty = false
+global_section.anonymous = true
+-- END Section
+
+-- BEGIN Global Enable Checkbox
+global_enable = global_section:option(Flag, "enabled", translate("Enable Wifi Schedule"))
+global_enable.optional=false;
+global_enable.rmempty = false;
+
+function global_enable.validate(self, value, global_section)
+ if value == "1" then
+ if ( file_exists("/sbin/wifi") and
+ file_exists("/usr/bin/wifi_schedule.sh") )then
+ return value
+ else
+ return nil, translate("Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi")
+ end
+ else
+ return "0"
+ end
+end
+-- END Global Enable Checkbox
+
+
+-- BEGIN Global Logging Checkbox
+global_logging = global_section:option(Flag, "logging", translate("Enable logging"))
+global_logging.optional=false;
+global_logging.rmempty = false;
+global_logging.default = 0
+-- END Global Enable Checkbox
+
+-- BEGIN Global Activate WiFi Button
+enable_wifi = global_section:option(Button, "enable_wifi", translate("Activate wifi"))
+function enable_wifi.write()
+ luci.sys.exec("/usr/bin/wifi_schedule.sh start manual")
+end
+-- END Global Activate Wifi Button
+
+-- BEGIN Global Disable WiFi Gracefully Button
+disable_wifi_gracefully = global_section:option(Button, "disable_wifi_gracefully", translate("Disable wifi gracefully"))
+function disable_wifi_gracefully.write()
+ luci.sys.exec("/usr/bin/wifi_schedule.sh stop manual")
+end
+-- END Global Disable Wifi Gracefully Button
+
+-- BEGIN Disable WiFi Forced Button
+disable_wifi_forced = global_section:option(Button, "disable_wifi_forced", translate("Disabled wifi forced"))
+function disable_wifi_forced.write()
+ luci.sys.exec("/usr/bin/wifi_schedule.sh forcestop manual")
+end
+-- END Global Disable WiFi Forced Button
+
+-- BEGIN Global Unload Modules Checkbox
+global_unload_modules = global_section:option(Flag, "unload_modules", translate("Unload Modules (experimental; saves more power)"))
+global_unload_modules.optional = false;
+global_unload_modules.rmempty = false;
+global_unload_modules.default = 0
+-- END Global Unload Modules Checkbox
+
+
+-- BEGIN Modules
+modules = global_section:option(TextValue, "modules", "")
+modules:depends("unload_modules", global_unload_modules.enabled);
+modules.wrap = "off"
+modules.rows = 10
+
+function modules.cfgvalue(self, section)
+ mod=uci.get("wifi_schedule", section, "modules")
+ if mod == nil then
+ mod=""
+ end
+ return mod:gsub(" ", "\r\n")
+end
+
+function modules.write(self, section, value)
+ if value then
+ value_list = value:gsub("\r\n", " ")
+ ListValue.write(self, section, value_list)
+ uci.set("wifi_schedule", section, "modules", value_list)
+ end
+end
+-- END Modules
+
+-- BEGIN Determine Modules
+determine_modules = global_section:option(Button, "determine_modules", translate("Determine Modules Automatically"))
+determine_modules:depends("unload_modules", global_unload_modules.enabled);
+function determine_modules.write(self, section)
+ output = luci.sys.exec("/usr/bin/wifi_schedule.sh getmodules")
+ modules:write(section, output)
+end
+-- END Determine Modules
+
+
+-- BEGIN Section
+d = m:section(TypedSection, "entry", "Schedule events")
+d.addremove = true
+--d.anonymous = true
+-- END Section
+
+-- BEGIN Enable Checkbox
+c = d:option(Flag, "enabled", translate("Enable"))
+c.optional=false; c.rmempty = false;
+-- END Enable Checkbox
+
+
+-- BEGIN Day(s) of Week
+dow = d:option(MultiValue, "daysofweek", translate("Day(s) of Week"))
+dow.optional = false
+dow.rmempty = false
+dow:value("Monday")
+dow:value("Tuesday")
+dow:value("Wednesday")
+dow:value("Thursday")
+dow:value("Friday")
+dow:value("Saturday")
+dow:value("Sunday")
+-- END Day(s) of Weel
+
+-- BEGIN Start Wifi Dropdown
+starttime = d:option(Value, "starttime", translate("Start WiFi"))
+starttime.optional=false;
+starttime.rmempty = false;
+starttime:value("00:00")
+starttime:value("01:00")
+starttime:value("02:00")
+starttime:value("03:00")
+starttime:value("04:00")
+starttime:value("05:00")
+starttime:value("06:00")
+starttime:value("07:00")
+starttime:value("08:00")
+starttime:value("09:00")
+starttime:value("10:00")
+starttime:value("11:00")
+starttime:value("12:00")
+starttime:value("13:00")
+starttime:value("14:00")
+starttime:value("15:00")
+starttime:value("16:00")
+starttime:value("17:00")
+starttime:value("18:00")
+starttime:value("19:00")
+starttime:value("20:00")
+starttime:value("21:00")
+starttime:value("22:00")
+starttime:value("23:00")
+
+function starttime.validate(self, value, d)
+ return time_validator(self, value, translate("Start Time"))
+end
+
+-- END Start Wifi Dropdown
+
+
+-- BEGIN Stop Wifi Dropdown
+stoptime = d:option(Value, "stoptime", translate("Stop WiFi"))
+stoptime.optional=false;
+stoptime.rmempty = false;
+stoptime:value("00:00")
+stoptime:value("01:00")
+stoptime:value("02:00")
+stoptime:value("03:00")
+stoptime:value("04:00")
+stoptime:value("05:00")
+stoptime:value("06:00")
+stoptime:value("07:00")
+stoptime:value("08:00")
+stoptime:value("09:00")
+stoptime:value("10:00")
+stoptime:value("11:00")
+stoptime:value("12:00")
+stoptime:value("13:00")
+stoptime:value("14:00")
+stoptime:value("15:00")
+stoptime:value("16:00")
+stoptime:value("17:00")
+stoptime:value("18:00")
+stoptime:value("19:00")
+stoptime:value("20:00")
+stoptime:value("21:00")
+stoptime:value("22:00")
+stoptime:value("23:00")
+
+function stoptime.validate(self, value, d)
+ return time_validator(self, value, translate("Stop Time"))
+end
+-- END Stop Wifi Dropdown
+
+
+-- BEGIN Force Wifi Stop Checkbox
+force_wifi = d:option(Flag, "forcewifidown", translate("Force disabling wifi even if stations associated"))
+force_wifi.default = false
+force_wifi.rmempty = false;
+
+function force_wifi.validate(self, value, d)
+ if value == "0" then
+ if file_exists("/usr/bin/iwinfo") then
+ return value
+ else
+ return nil, translate("Could not find required programm /usr/bin/iwinfo")
+ end
+ else
+ return "1"
+ end
+end
+-- END Force Wifi Checkbox
+
+
+return m
diff --git a/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm b/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm
new file mode 100644
index 0000000000..f67a2bea99
--- /dev/null
+++ b/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm
@@ -0,0 +1,22 @@
+<%#
+Copyright (c) 2016, prpl Foundation
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without
+fee is hereby granted, provided that the above copyright notice and this permission notice appear
+in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Author: Nils Koenig <openwrt@newk.it>
+-%>
+
+<%+header%>
+<h2 name="title"><%=title%></h2>
+<div id="content_fileviewer">
+<textarea style="width: 100%" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+1%>" id="content_id"><%=content:pcdata()%></textarea>
+</div>
+<%+footer%>
diff --git a/applications/luci-app-wshaper/po/sv/wshaper.po b/applications/luci-app-wshaper/po/sv/wshaper.po
index 84c5ce199f..4f0fc53468 100644
--- a/applications/luci-app-wshaper/po/sv/wshaper.po
+++ b/applications/luci-app-wshaper/po/sv/wshaper.po
@@ -10,13 +10,13 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "Downlink"
-msgstr "Ner-länk"
+msgstr "Nerladdningslänk"
msgid "Downstream bandwidth in kbit/s"
msgstr "Nerströms bandbredd i kbit/s"
msgid "Host or Network in CIDR notation."
-msgstr ""
+msgstr "Värd eller Nätverk i CIDR-noteringen"
msgid "Interface"
msgstr "Gränssnitt"
@@ -34,7 +34,7 @@ msgid "Low priority source ports"
msgstr "Käll-portar med låg prioritet"
msgid "Uplink"
-msgstr "Upplänk"
+msgstr "Uppladdningslänk"
msgid "Upstream bandwidth in kbit/s"
msgstr "Bandbredd uppströms i kbit/s"
@@ -49,3 +49,5 @@ msgid ""
"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
"even when your internet connection is highly saturated."
msgstr ""
+"Wondershaper formar trafiken för att säkerställa låga latenser för "
+"interaktiv trafik även när din internetanslutning är mättad som mest."