summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--applications/luci-app-attendedsysupgrade/po/templates/attendedsysupgrade.pot7
-rw-r--r--applications/luci-app-banip/po/templates/banip.pot457
-rw-r--r--applications/luci-app-bmx7/po/templates/bmx7.pot218
-rw-r--r--applications/luci-app-cshark/po/templates/cshark.pot102
-rw-r--r--applications/luci-app-dump1090/po/templates/dump1090.pot225
-rw-r--r--applications/luci-app-e2guardian/po/templates/e2guardian.pot483
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js10
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js40
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js73
-rw-r--r--applications/luci-app-ltqtapi/po/templates/ltqtapi.pot81
-rw-r--r--applications/luci-app-lxc/po/es/lxc.po124
-rw-r--r--applications/luci-app-mosquitto/po/templates/mosquitto.pot6
-rw-r--r--applications/luci-app-ocserv/po/templates/ocserv.pot325
-rw-r--r--applications/luci-app-olsr-services/po/templates/olsr-services.pot32
-rw-r--r--applications/luci-app-olsr-viz/po/templates/olsr-viz.pot10
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua4
-rw-r--r--applications/luci-app-squid/po/templates/squid.pot27
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/firewall.js8
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/form.js1
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/tools/widgets.js234
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/ui.js48
-rw-r--r--modules/luci-base/luasrc/view/cbi/dropdown.htm2
-rw-r--r--modules/luci-base/luasrc/view/cbi/dynlist.htm2
-rw-r--r--modules/luci-base/luasrc/view/cbi/lvalue.htm2
-rw-r--r--modules/luci-base/luasrc/view/cbi/tvalue.htm2
-rw-r--r--modules/luci-base/po/ca/base.po8
-rw-r--r--modules/luci-base/po/cs/base.po8
-rw-r--r--modules/luci-base/po/de/base.po60
-rw-r--r--modules/luci-base/po/el/base.po8
-rw-r--r--modules/luci-base/po/en/base.po8
-rw-r--r--modules/luci-base/po/es/base.po18
-rw-r--r--modules/luci-base/po/fr/base.po8
-rw-r--r--modules/luci-base/po/he/base.po8
-rw-r--r--modules/luci-base/po/hu/base.po8
-rw-r--r--modules/luci-base/po/it/base.po8
-rw-r--r--modules/luci-base/po/ja/base.po8
-rw-r--r--modules/luci-base/po/ko/base.po8
-rw-r--r--modules/luci-base/po/ms/base.po8
-rw-r--r--modules/luci-base/po/no/base.po8
-rw-r--r--modules/luci-base/po/pl/base.po8
-rw-r--r--modules/luci-base/po/pt-br/base.po8
-rw-r--r--modules/luci-base/po/pt/base.po8
-rw-r--r--modules/luci-base/po/ro/base.po8
-rw-r--r--modules/luci-base/po/ru/base.po15
-rw-r--r--modules/luci-base/po/sk/base.po8
-rw-r--r--modules/luci-base/po/sv/base.po8
-rw-r--r--modules/luci-base/po/templates/base.pot8
-rw-r--r--modules/luci-base/po/tr/base.po8
-rw-r--r--modules/luci-base/po/uk/base.po10
-rw-r--r--modules/luci-base/po/vi/base.po8
-rw-r--r--modules/luci-base/po/zh-cn/base.po8
-rw-r--r--modules/luci-base/po/zh-tw/base.po8
-rwxr-xr-xmodules/luci-base/root/usr/libexec/rpcd/luci35
-rw-r--r--modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json14
-rw-r--r--modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js7
-rw-r--r--modules/luci-mod-network/luasrc/controller/admin/network.lua15
-rw-r--r--modules/luci-mod-status/src/luci-bwc.c83
-rw-r--r--modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js78
58 files changed, 2808 insertions, 234 deletions
diff --git a/applications/luci-app-attendedsysupgrade/po/templates/attendedsysupgrade.pot b/applications/luci-app-attendedsysupgrade/po/templates/attendedsysupgrade.pot
new file mode 100644
index 0000000000..f5f87dd317
--- /dev/null
+++ b/applications/luci-app-attendedsysupgrade/po/templates/attendedsysupgrade.pot
@@ -0,0 +1,7 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-attendedsysupgrade/luasrc/controller/attendedsysupgrade.lua:4
+#: applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm:76
+msgid "Attended Sysupgrade"
+msgstr ""
diff --git a/applications/luci-app-banip/po/templates/banip.pot b/applications/luci-app-banip/po/templates/banip.pot
new file mode 100644
index 0000000000..1332bc9c3e
--- /dev/null
+++ b/applications/luci-app-banip/po/templates/banip.pot
@@ -0,0 +1,457 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:89
+msgid "ASN Overview"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:90
+msgid "ASN Prefixes"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:91
+msgid "ASN/Country"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:137
+msgid "Additional trigger delay in seconds before banIP processing begins."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:21
+msgid "Advanced"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:24
+msgid "Automatic WAN Interface Detection"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:115
+msgid "Backup Directory"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:122
+msgid "Backup Mode"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ipsetview.htm:45
+msgid "Check the current available IPSets."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:11
+msgid ""
+"Configuration of the banIP package to block ip adresses/subnets via IPSet."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:92
+msgid "Country Resources"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:112
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in 'backup mode'."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:94
+msgid "DNS Chain"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:172
+msgid "DST Target IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:204
+msgid "DST Target IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:89
+msgid "Description"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:29
+msgid ""
+"Disable the automatic WAN detection and select your preferred interface(s) "
+"manually."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:123
+msgid ""
+"Do not automatically update blocklists during startup, use their backups "
+"instead."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:142
+msgid "Download Options"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:42
+msgid "Download Utility"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:105
+msgid "Download Utility (SSL Library)"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:22
+msgid "Edit Blacklist"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:24
+msgid "Edit Configuration"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:23
+msgid "Edit Whitelist"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:111
+msgid "Enable Blocklist Backup"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:20
+msgid "Enable banIP"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:101
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:82
+msgid "Enter IP/CIDR/ASN/ISO"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:97
+msgid "Extra Options"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:12
+msgid ""
+"For further information <a href=\"%s\" target=\"_blank\">check the online "
+"documentation</a>"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:129
+msgid ""
+"For further performance improvements you can raise this value, e.g. '8' or "
+"'16' should be safe."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:88
+msgid "Geo Location"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:95
+msgid "IANA Information"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:60
+msgid "IP Blocklist Sources"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:91
+msgid "IP/ASN Mapping"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:111
+msgid "IPSet Information"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:18
+msgid "IPSet-Lookup"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/blacklist_tab.lua:10
+#: applications/luci-app-banip/luasrc/model/cbi/banip/configuration_tab.lua:9
+#: applications/luci-app-banip/luasrc/model/cbi/banip/whitelist_tab.lua:10
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:28
+msgid "Interface Selection"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:161
+msgid "LAN Forward Chain IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:193
+msgid "LAN Forward Chain IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:156
+msgid "LAN Input Chain IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:188
+msgid "LAN Input Chain IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:117
+msgid "Last Run"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:43
+msgid "List of supported and fully pre-configured download utilities."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ipsetview.htm:59
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:97
+msgid "Load"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:60
+msgid "Loading"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ipsetview.htm:27
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:58
+msgid "Loading ..."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:104
+msgid "Low Priority Service"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:127
+msgid "Max. Download Queue"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:70
+msgid "No"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ipsetview.htm:34
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:65
+msgid "No response!"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:98
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:17
+msgid "Overview"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/blacklist_tab.lua:32
+#: applications/luci-app-banip/luasrc/model/cbi/banip/whitelist_tab.lua:32
+msgid ""
+"Please add only one IPv4 or IPv6 address per line. IP ranges in CIDR "
+"notation and comments introduced with '#' are allowed."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/blacklist_tab.lua:19
+#: applications/luci-app-banip/luasrc/model/cbi/banip/configuration_tab.lua:18
+#: applications/luci-app-banip/luasrc/model/cbi/banip/whitelist_tab.lua:19
+msgid "Please edit this file directly in a terminal session."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:19
+msgid "RIPE-Lookup"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:16
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:126
+msgid "Reload"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:124
+msgid "Reload IPSets"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:91
+msgid "Runtime Information"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:166
+msgid "SRC Target IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:198
+msgid "SRC Target IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:82
+msgid "SRC/DST"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:63
+msgid "SSL req."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/blacklist_tab.lua:27
+#: applications/luci-app-banip/luasrc/model/cbi/banip/configuration_tab.lua:26
+#: applications/luci-app-banip/luasrc/model/cbi/banip/whitelist_tab.lua:27
+msgid "Save"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:105
+msgid ""
+"Set the nice level to 'low priority' and banIP background processing will "
+"take less resources from the system."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ipsetview.htm:51
+msgid "Show only set member with packet counter &gt; 0"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:128
+msgid ""
+"Size of the download queue to handle downloads &amp; IPset processing in "
+"parallel (default '4')."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:143
+msgid ""
+"Special options for the selected download utility, e.g. '--timeout=20 --no-"
+"check-certificate -O'."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:116
+msgid ""
+"Target directory for banIP backups. Please use preferably a non-volatile "
+"disk, e.g. an external usb stick."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:77
+msgid ""
+"The RIPEstat Data API is the public data interface provided by RIPE NCC, for "
+"details look <a href=\"https://stat.ripe.net/docs/data_api\" target=\"_blank"
+"\" rel=\"noopener noreferrer\">here</a>."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/blacklist_tab.lua:18
+#: applications/luci-app-banip/luasrc/model/cbi/banip/configuration_tab.lua:17
+#: applications/luci-app-banip/luasrc/model/cbi/banip/whitelist_tab.lua:18
+msgid "The file size is too large for online editing in LuCI (&ge; 100 KB)."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/logview.htm:31
+msgid "The syslog output, pre-filtered for banIP related messages only."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:106
+msgid "This change requires a manual service stop/re-start to take effect."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:40
+msgid "This data call gives access to various data sources maintained by IANA."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:31
+msgid ""
+"This data call lists the Internet resources associated with a country, "
+"including ASNs, IPv4 ranges and IPv4/6 CIDR prefixes."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:25
+msgid "This data call returns all announced prefixes for a given ASN."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:19
+msgid ""
+"This data call returns geolocation information for the given IP space, or "
+"for announced IP prefixes in the case of ASNs."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:28
+msgid ""
+"This data call returns the containing prefix and announcing ASN of a given "
+"IP address."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:37
+msgid ""
+"This data call returns the recursive chain of DNS forward (A/AAAA/CNAME) and "
+"reverse (PTR) records starting form either a hostname or an IP address."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:34
+msgid ""
+"This data call returns whois information from the relevant Regional Internet "
+"Registry and Routing Registry."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:22
+msgid ""
+"This data call shows general informations about an ASN like its announcement "
+"status and the name of its holder according to the WHOIS service."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/blacklist_tab.lua:31
+msgid ""
+"This form allows you to modify the content of the banIP blacklist (%s).<br />"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/whitelist_tab.lua:31
+msgid ""
+"This form allows you to modify the content of the banIP whitelist (%s).<br />"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/configuration_tab.lua:30
+msgid ""
+"This form allows you to modify the content of the main banIP configuration "
+"file (/etc/config/banip)."
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:136
+msgid "Trigger Delay"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:100
+msgid "Verbose Debug Logging"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:20
+msgid "View Logfile"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:151
+msgid "WAN Forward Chain IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:183
+msgid "WAN Forward Chain IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:146
+msgid "WAN Input Chain IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:178
+msgid "WAN Input Chain IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/ripeview.htm:93
+msgid "Whois Information"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:68
+msgid "Yes"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/controller/banip.lua:16
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:10
+msgid "banIP"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:93
+msgid "banIP Status"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/view/banip/runtime.htm:99
+msgid "banIP Version"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:76
+msgid "enable IPv4"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:79
+msgid "enable IPv6"
+msgstr ""
+
+#: applications/luci-app-banip/luasrc/model/cbi/banip/overview_tab.lua:73
+msgid "n/a"
+msgstr ""
diff --git a/applications/luci-app-bmx7/po/templates/bmx7.pot b/applications/luci-app-bmx7/po/templates/bmx7.pot
new file mode 100644
index 0000000000..e8c72f6f3f
--- /dev/null
+++ b/applications/luci-app-bmx7/po/templates/bmx7.pot
@@ -0,0 +1,218 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-bmx7/root/www/luci-static/resources/bmx7/js/netjsongraph.js:510
+msgid "+ d.x +"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/www/luci-static/resources/bmx7/js/netjsongraph.js:173
+msgid "+ d3.event.translate +"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:33
+msgid "Announcements"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:27
+msgid "BMX7 revision"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:41
+msgid "Bandwith"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:3
+msgid "Bmx7 mesh nodes"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:44
+msgid "CPU usage"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:12
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:79
+msgid "Device"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:57
+msgid "Interface"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:81
+msgid "Last Desc"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:14
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:82
+msgid "Last Ref"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:77
+msgid "Link key"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:61
+msgid "LinkLocal Ipv6"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:71
+msgid "Links"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:42
+msgid "Local net"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:60
+msgid "Max rate"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:45
+msgid "Memory usage"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:13
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:80
+msgid "Metric"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:7
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:75
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:76
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:38
+msgid "Name"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:40
+msgid "Neighbours"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:40
+msgid "Network"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:53
+msgid "Network interfaces"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:39
+msgid "Node"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:18
+msgid "Node configuration"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:25
+msgid "Node key"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:23
+msgid "Node name"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:35
+msgid "Node status"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:39
+msgid "Nodes seen"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:70
+msgid "Originators"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:43
+msgid "Path Metric"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:10
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:78
+msgid "Primary IPv6"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:24
+msgid "Primary IPv6 address"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:62
+msgid "RX BpP"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:80
+msgid "RX rate"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:45
+msgid "Rating"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:78
+msgid "Remote linklocal IPv6"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:82
+msgid "Routes"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:9
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:77
+msgid "S/s/T/t"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:26
+msgid "Short DHash"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:8
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:76
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:22
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:75
+msgid "Short ID"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:58
+msgid "State"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:37
+msgid "Status"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:63
+msgid "TX BpP"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:81
+msgid "TX rate"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/tunnels_j.htm:44
+msgid "Tun Metric"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:42
+msgid "Tunnelled IPv4 address"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:41
+msgid "Tunnelled IPv6 address"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:46
+msgid "Tx queue"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:59
+msgid "Type"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/status_j.htm:43
+msgid "Uptime"
+msgstr ""
+
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/admin_status/index/bmx7_nodes.htm:11
+#: applications/luci-app-bmx7/root/usr/lib/lua/luci/view/bmx7/nodes_j.htm:79
+msgid "Via Neighbour"
+msgstr ""
diff --git a/applications/luci-app-cshark/po/templates/cshark.pot b/applications/luci-app-cshark/po/templates/cshark.pot
new file mode 100644
index 0000000000..51212d3b62
--- /dev/null
+++ b/applications/luci-app-cshark/po/templates/cshark.pot
@@ -0,0 +1,102 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:24
+msgid "Actions"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:72
+msgid "Capture URL"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:68
+msgid "Capture links"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:73
+msgid "Capture time"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:284
+msgid "Clear list"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/controller/cshark.lua:19
+#: applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua:17
+msgid "CloudShark"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua:27
+msgid "CloudShark API token"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua:26
+msgid "CloudShark URL"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:23
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:51
+msgid "Filter"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:21
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:28
+msgid "Interface"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:92
+msgid "Loading"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua:22
+msgid "Options"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:54
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:196
+msgid "Start capture"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:17
+msgid "Start network capture"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:181
+msgid "Stop capture"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:93
+msgid "Waiting for capture to complete..."
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:93
+msgid "Waiting for upload to complete..."
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:39
+msgid "any"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:47
+msgid "bytes"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:46
+msgid "packets"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:45
+msgid "seconds"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:22
+msgid "seconds, packets, bytes"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:44
+msgid "timeout, bytes, seconds"
+msgstr ""
+
+#: applications/luci-app-cshark/luasrc/view/cshark.htm:151
+msgid "value for [seconds, packets, bytes] must be Integer"
+msgstr ""
diff --git a/applications/luci-app-dump1090/po/templates/dump1090.pot b/applications/luci-app-dump1090/po/templates/dump1090.pot
new file mode 100644
index 0000000000..7930a26b80
--- /dev/null
+++ b/applications/luci-app-dump1090/po/templates/dump1090.pot
@@ -0,0 +1,225 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:123
+msgid "Absolute maximum range for position decoding"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:184
+msgid "Accuracy of receiver location in json metadata"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:112
+msgid "Allow forwarding of received mlat results to output ports"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:193
+msgid "Apply a 1Hz DC filter to input data"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:172
+msgid "Base directory for the internal HTTP server"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:148
+msgid "Collect/show range histogram"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:34
+msgid "Data file"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:165
+msgid "Debug mode flags"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:39
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:185
+msgid "Default"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:133
+msgid "Disable messages with broken CRC"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:130
+msgid "Disable single-bits error correction using CRC"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:142
+msgid "Display raw messages in Beast ascii mode"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:109
+msgid "Do not apply CRC corrections to messages we forward"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:27
+msgid "Enable automatic gain control"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:52
+msgid "Enable decoding of SSR Modes 3/A & 3/C"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:58
+msgid "Enable just networking, no RTL device or file used"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:50
+msgid "Enable networking"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:136
+msgid "Enable phase enhancement"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:127
+msgid "Enable single-bits error correction using CRC"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:10
+msgid "Enabled"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:89
+msgid "FlightAware TSV output port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:30
+msgid "Frequency"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:23
+msgid "Gain (-10 for auto-gain)"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:65
+msgid "HTTP server port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:61
+msgid "IP address to bind to"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:196
+msgid "Measure noise power"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:139
+msgid "More CPU for more messages"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:176
+msgid "Periodically write json output to a directory"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:145
+msgid "Print stats at exit"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:19
+msgid "RTL device index"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:115
+msgid "Reference/receiver latitude for surface posn"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:119
+msgid "Reference/receiver longitude for surface posn"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:16
+msgid "Respawn"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:38
+msgid "Sample format for data file"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:168
+msgid "Set receiver error in parts per million"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:151
+msgid "Show and reset stats every seconds"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:155
+msgid "Show only ICAO addresses"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:47
+msgid "Show only messages hex values"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:161
+msgid "Strip IQ file removing samples"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:77
+msgid "TCP BaseStation output listen port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:81
+msgid "TCP Beast input listen port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:85
+msgid "TCP Beast output listen port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:105
+msgid "TCP buffer size 64Kb * (2^n)"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:101
+msgid "TCP heartbeat rate in seconds"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:69
+msgid "TCP raw input listen port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:55
+msgid "TCP raw output in Beast binary format"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:73
+msgid "TCP raw output listen port"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:97
+msgid "TCP raw output memory flush rate in seconds"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:93
+msgid "TCP raw output minimum size"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:158
+msgid "Use metric units"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:190
+msgid "Use the 2.4MHz demodulator"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:44
+msgid "When reading from a file play back in realtime, not at max speed"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:180
+msgid "Write json output every t seconds"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/controller/dump1090.lua:11
+msgid "dump1090"
+msgstr ""
+
+#: applications/luci-app-dump1090/luasrc/model/cbi/dump1090.lua:4
+msgid ""
+"dump1090 is a Mode S decoder specifically designed for RTLSDR devices, here "
+"you can configure the settings."
+msgstr ""
diff --git a/applications/luci-app-e2guardian/po/templates/e2guardian.pot b/applications/luci-app-e2guardian/po/templates/e2guardian.pot
new file mode 100644
index 0000000000..d65da124ba
--- /dev/null
+++ b/applications/luci-app-e2guardian/po/templates/e2guardian.pot
@@ -0,0 +1,483 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:80
+msgid "Access denied address"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:29
+msgid "Additional Settings"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:138
+msgid "Age before they should be ignored in seconds"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:94
+msgid "Banned flash replacement"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:85
+msgid "Banned image replacement"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:185
+msgid "Build bannedsitelist and bannedurllist cache files"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:73
+msgid "CSV-style format"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:142
+msgid "Cache for content (AV) scans as 'clean'"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:134
+msgid "Clean result caching for URLs"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:254
+msgid "Content scan exceptions"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:250
+msgid "Content scanner timeout"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:99
+msgid "Custom banned flash file"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:90
+msgid "Custom banned image file"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:72
+msgid "DansgGuardian format, space delimited"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:318
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:322
+msgid ""
+"Defines URL list IPC server directory and filename used to communicate with "
+"the URL cache process"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:231
+msgid "Delete file cache after user completes download"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:326
+msgid "Disable deamoning"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:331
+msgid "Disable logger"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:246
+msgid "Download manager"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua:21
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:21
+msgid "E2Guardian"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:336
+msgid "Enable logging of ADs"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:341
+msgid "Enable logging of client user agent"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:346
+msgid "Enable soft restart"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:227
+msgid "File cache directory"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:147
+msgid "Filtering options"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:28
+msgid "General Settings"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:160
+msgid "Hex decoding options"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:223
+msgid "How long a persistent connection will wait for other requests"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:42
+msgid "IP address of the proxy"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:314
+msgid "IP list IPC server directory and filename"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:35
+msgid "IP that E2Guardian listens"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:265
+msgid ""
+"If on, it may help solve some problem sites that need to know the source ip."
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:236
+msgid "Initial Trickle delay"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:50
+msgid "Language dir"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:54
+msgid "Language to use"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:115
+msgid "List of IP exceptions"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:111
+msgid "List of banned IPs"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:107
+msgid "List of filter groups"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:65
+msgid "Log Exception Hits"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:71
+msgid "Log File Format"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:281
+msgid "Log child process handling"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:276
+msgid "Log debug info about log()ing and accept()ing"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:58
+msgid "Logging Settings"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:30
+msgid "Logs"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:154
+msgid "Lower caseing options"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:306
+msgid "Max age of child process"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:210
+msgid "Max content file cache scan size"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:200
+msgid "Max content filter size"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:205
+msgid "Max content ram cache scan size"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:310
+msgid "Max number of clinets allowed to connect"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:286
+msgid "Max number of processes to spawn"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:195
+msgid "Max upload size (in Kbytes)"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:294
+msgid "Min number of processes to keep ready"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:290
+msgid "Min number of processes to spawn"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:264
+msgid "Misc setting: forwardedfor"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:270
+msgid "Misc setting: usexforwardedfor"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:87
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:96
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:125
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:144
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:162
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:167
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:172
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:177
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:182
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:187
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:192
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:233
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:256
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:261
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:267
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:273
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:278
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:283
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:328
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:333
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:338
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:343
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:348
+msgid "No"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:103
+msgid "Number of filter groups"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:242
+msgid ""
+"Number of seconds a browser connection is left waiting before being sent "
+"more *something* to keep it alive"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:237
+msgid ""
+"Number of seconds a browser connection is left waiting before first being "
+"sent *something* to keep it alive"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:222
+msgid "Pconn timeout"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:119
+msgid "Per-Room blocking definition directory"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:180
+msgid "Perform reverse lookups on client IPs for successful requests"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:46
+msgid "Port of the proxy"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:38
+msgid "Port that E2Guardian listens"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:190
+msgid "Prefer cached list files"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:76
+msgid "Protex format"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:77
+msgid "Protex format with server field blanked"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:218
+msgid "Proxy header excahnge (20-300)"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:214
+msgid "Proxy timeout (5-100)"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:165
+msgid "Quick search"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:175
+msgid "Reverse lookups for banned and exception IP lists"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:170
+msgid "Reverse lookups for banned site and URLs"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:81
+msgid ""
+"Server to which the cgi e2guardian reporting script was copied. Reporting "
+"levels 1 and 2 only"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:298
+msgid "Sets minimum nuber of processes when it runs out"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:302
+msgid "Sets the maximum number of processes to have doing nothing"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:123
+msgid "Show weighted phrases found"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:74
+msgid "Squid Log File Format"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:75
+msgid "Tab delimited"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:201
+msgid ""
+"The value must not be higher than max content ram cache scan size or 0 to "
+"match it"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:271
+msgid "This is for when you have squid between the clients and E2Guardian"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:206
+msgid "This is the max size of file that DG will download and cache in RAM"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:241
+msgid "Trickle delay"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:128
+msgid "Weighted phrase mode"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:86
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:95
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:124
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:143
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:161
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:166
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:171
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:176
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:181
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:186
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:191
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:232
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:255
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:260
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:266
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:272
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:277
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:282
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:327
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:332
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:337
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:342
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:347
+msgid "Yes"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:62
+msgid "all requests"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:61
+msgid "all text based"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:150
+msgid "both raw and smart"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:197
+msgid "complete block"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:156
+msgid "don't change"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:259
+msgid "e-check replaced URLs"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:155
+msgid "force lower case"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:60
+msgid "just denied"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:68
+msgid "log and mark"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:67
+msgid "log, but don't mark as exceptions"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:151
+msgid "meta/title"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:66
+msgid "never"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:196
+msgid "no blocking"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:311
+msgid "no limit"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:59
+msgid "none"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:129
+msgid "off"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:130
+msgid "on, normal operation"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:131
+msgid "on, phrase found only counts once on a page"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:148
+msgid "raw"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:157
+msgid "scan fist in lower, then in original"
+msgstr ""
+
+#: applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua:149
+msgid "smart"
+msgstr ""
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
index ffbfe3ccd0..63af69f8a9 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
@@ -107,6 +107,16 @@ return L.view.extend({
return uci.get('firewall', section_id, 'name') || _('Unnamed forward');
};
+ s.handleAdd = function(ev) {
+ var config_name = this.uciconfig || this.map.config,
+ section_id = uci.add(config_name, this.sectiontype);
+
+ uci.set(config_name, section_id, 'target', 'DNAT');
+
+ this.addedSection = section_id;
+ this.renderMoreOptionsModal(section_id);
+ };
+
o = s.taboption('general', form.Value, 'name', _('Name'));
o.placeholder = _('Unnamed forward');
o.modalonly = true;
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js
index e67397268c..4252cf3691 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js
@@ -144,6 +144,27 @@ return L.view.extend({
return uci.get('firewall', section_id, 'name') || _('Unnamed rule');
};
+ s.handleAdd = function(ev) {
+ var config_name = this.uciconfig || this.map.config,
+ section_id = uci.add(config_name, this.sectiontype),
+ opt1, opt2;
+
+ for (var i = 0; i < this.children.length; i++)
+ if (this.children[i].option == 'src')
+ opt1 = this.children[i];
+ else if (this.children[i].option == 'dest')
+ opt2 = this.children[i];
+
+ opt1.default = 'wan';
+ opt2.default = 'lan';
+
+ this.addedSection = section_id;
+ this.renderMoreOptionsModal(section_id);
+
+ delete opt1.default;
+ delete opt2.default;
+ };
+
o = s.taboption('general', form.Value, 'name', _('Name'));
o.placeholder = _('Unnamed rule');
o.modalonly = true;
@@ -243,7 +264,6 @@ return L.view.extend({
o.nocreate = true;
o.allowany = true;
o.allowlocal = 'src';
- o.default = 'wan';
o = s.taboption('advanced', form.Value, 'src_mac', _('Source MAC address'));
o.modalonly = true;
@@ -276,22 +296,11 @@ return L.view.extend({
o.depends('proto', 'tcp udp');
o.depends('proto', 'tcpudp');
- o = s.taboption('general', widgets.ZoneSelect, 'dest_local', _('Output zone'));
- o.modalonly = true;
- o.nocreate = true;
- o.allowany = true;
- o.alias = 'dest';
- o.default = 'wan';
- o.depends('src', '');
-
- o = s.taboption('general', widgets.ZoneSelect, 'dest_remote', _('Destination zone'));
+ o = s.taboption('general', widgets.ZoneSelect, 'dest', _('Destination zone'));
o.modalonly = true;
o.nocreate = true;
o.allowany = true;
o.allowlocal = true;
- o.alias = 'dest';
- o.default = 'lan';
- o.depends({'src': '', '!reverse': true});
o = s.taboption('general', form.Value, 'dest_ip', _('Destination address'));
o.modalonly = true;
@@ -366,9 +375,6 @@ return L.view.extend({
o.modalonly = true;
o.default = o.disabled;
- return m.render().catch(function(e) {
- console.debug('render fail')
- });
-
+ return m.render();
}
});
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js
index 3f1061a10a..4d13752b3a 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js
@@ -13,12 +13,23 @@ return L.view.extend({
expect: { offload_support: false }
}),
+ callConntrackHelpers: rpc.declare({
+ object: 'luci',
+ method: 'conntrack_helpers',
+ expect: { helpers: [] }
+ }),
+
load: function() {
- return this.callOffloadSupport();
+ return Promise.all([
+ this.callOffloadSupport(),
+ this.callConntrackHelpers()
+ ]);
},
- render: function(hasOffloading) {
- var m, s, o, inp, out;
+ render: function(data) {
+ var hasOffloading = data[0],
+ ctHelpers = data[1],
+ m, s, o, inp, out;
m = new form.Map('firewall', _('Firewall - Zone Settings'),
_('The firewall creates zones over your network interfaces to control network traffic flow.'));
@@ -71,6 +82,8 @@ return L.view.extend({
s.tab('general', _('General Settings'));
s.tab('advanced', _('Advanced Settings'));
+ s.tab('conntrack', _('Conntrack Settings'));
+ s.tab('extra', _('Extra iptables arguments'));
o = s.taboption('general', form.DummyValue, '_generalinfo');
o.rawhtml = true;
@@ -145,6 +158,9 @@ return L.view.extend({
zone_networks[0].addNetwork(zone_networks[i].getName());
});
};
+ o.remove = function(section_id) {
+ return uci.set('firewall', section_id, 'network', ' ');
+ };
o = s.taboption('advanced', form.DummyValue, '_advancedinfo');
o.rawhtml = true;
@@ -156,6 +172,15 @@ return L.view.extend({
.format(name);
};
+ o = s.taboption('advanced', widgets.DeviceSelect, 'device', _('Covered devices'), _('Use this option to classify zone traffic by raw, non-<em>uci</em> managed network devices.'));
+ o.modalonly = true;
+ o.multiple = true;
+
+ o = s.taboption('advanced', form.DynamicList, 'subnet', _('Covered subnets'), _('Use this option to classify zone traffic by source or destination subnet instead of networks or devices.'));
+ o.datatype = 'neg(cidr)';
+ o.modalonly = true;
+ o.multiple = true;
+
o = s.taboption('advanced', form.ListValue, 'family', _('Restrict to address family'));
o.value('', _('IPv4 and IPv6'));
o.value('ipv4', _('IPv4 only'));
@@ -176,8 +201,21 @@ return L.view.extend({
o.placeholder = '0.0.0.0/0';
o.modalonly = true;
- o = s.taboption('advanced', form.Flag, 'conntrack', _('Force connection tracking'));
+ o = s.taboption('conntrack', form.Flag, 'conntrack', _('Force connection tracking'), _('Prevent the installation of <em>NOTRACK</em> rules which would bypass connection tracking.'));
+ o.modalonly = true;
+
+ o = s.taboption('conntrack', form.Flag, 'masq_allow_invalid', _('Allow "invalid" traffic'), _('Do not install extra rules to reject forwarded traffic with conntrack state <em>invalid</em>. This may be required for complex asymmetric route setups.'));
+ o.modalonly = true;
+
+ o = s.taboption('conntrack', form.Flag, 'auto_helper', _('Automatic helper assignment'), _('Automatically assign conntrack helpers based on traffic protocol and port'));
+ o.default = o.enabled;
+ o.modalonly = true;
+
+ o = s.taboption('conntrack', form.MultiValue, 'helper', _('Conntrack helpers'), _('Explicitly choses allowed connection tracking helpers for zone traffic'));
+ o.depends('auto_helper', '0');
o.modalonly = true;
+ for (var i = 0; i < ctHelpers.length; i++)
+ o.value(ctHelpers[i].name, '<span class="hide-close">%s (%s)</span><span class="hide-open">%s</span>'.format(ctHelpers[i].description, ctHelpers[i].name.toUpperCase(), ctHelpers[i].name.toUpperCase()));
o = s.taboption('advanced', form.Flag, 'log', _('Enable logging on this zone'));
o.modalonly = true;
@@ -187,6 +225,33 @@ return L.view.extend({
o.placeholder = '10/minute';
o.modalonly = true;
+ o = s.taboption('extra', form.DummyValue, '_extrainfo');
+ o.rawhtml = true;
+ o.modalonly = true;
+ o.cfgvalue = function(section_id) {
+ return _('Passing raw iptables arguments to source and destination traffic classification rules allows to match packets based on other criteria than interfaces or subnets. These options should be used with extreme care as invalid values could render the firewall ruleset broken, completely exposing all services.');
+ };
+
+ o = s.taboption('extra', form.Value, 'extra_src', _('Extra source arguments'), _('Additional raw <em>iptables</em> arguments to classify zone source traffic, e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic.'));
+ o.modalonly = true;
+ o.cfgvalue = function(section_id) {
+ return uci.get('firewall', section_id, 'extra_src') || uci.get('firewall', section_id, 'extra');
+ };
+ o.write = function(section_id, value) {
+ uci.unset('firewall', section_id, 'extra');
+ uci.set('firewall', section_id, 'extra_src', value);
+ };
+
+ o = s.taboption('extra', form.Value, 'extra_dest', _('Extra destination arguments'), _('Additional raw <em>iptables</em> arguments to classify zone destination traffic, e.g. <code>-p tcp --dport 443</code> to only match outbound HTTPS traffic.'));
+ o.modalonly = true;
+ o.cfgvalue = function(section_id) {
+ return uci.get('firewall', section_id, 'extra_dest') || uci.get('firewall', section_id, 'extra_src') || uci.get('firewall', section_id, 'extra');
+ };
+ o.write = function(section_id, value) {
+ uci.unset('firewall', section_id, 'extra');
+ uci.set('firewall', section_id, 'extra_dest', value);
+ };
+
o = s.taboption('general', form.DummyValue, '_forwardinfo');
o.rawhtml = true;
o.modalonly = true;
diff --git a/applications/luci-app-ltqtapi/po/templates/ltqtapi.pot b/applications/luci-app-ltqtapi/po/templates/ltqtapi.pot
new file mode 100644
index 0000000000..0a2b4a5086
--- /dev/null
+++ b/applications/luci-app-ltqtapi/po/templates/ltqtapi.pot
@@ -0,0 +1,81 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-ltqtapi/luasrc/controller/ltqtapi.lua:16
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:7
+msgid "Account"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm:28
+msgid "Collecting data..."
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:7
+msgid "Contact"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/controller/ltqtapi.lua:17
+msgid "Contacts"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm:20
+msgid "Current Telephony State"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:14
+msgid "Dial"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:14
+msgid "Disabled"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:7
+msgid "Here You can specify the SIP account that you want to use."
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:7
+msgid "Here You can specify the SIP contacts that you want to use."
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:12
+msgid "Name"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:13
+msgid "Password"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm:24
+msgid "Port1"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm:25
+msgid "Port2"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:11
+msgid "Realm"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:13
+msgid "Shortdial"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:16
+msgid "Type"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm:23
+msgid "Uplink"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:12
+msgid "Username"
+msgstr ""
+
+#: applications/luci-app-ltqtapi/luasrc/controller/ltqtapi.lua:13
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua:4
+#: applications/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua:4
+msgid "VoIP"
+msgstr ""
diff --git a/applications/luci-app-lxc/po/es/lxc.po b/applications/luci-app-lxc/po/es/lxc.po
new file mode 100644
index 0000000000..eae188d3a3
--- /dev/null
+++ b/applications/luci-app-lxc/po/es/lxc.po
@@ -0,0 +1,124 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.3\n"
+"Last-Translator: \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es\n"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:18
+msgid ""
+"<b>Please note:</b> For LXC Containers you need a custom OpenWrt image.<br />"
+msgstr ""
+"<b>Tenga en cuenta:</b> Para los contenedores LXC necesita una imagen "
+"OpenWrt personalizada.<br />"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:29
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:47
+msgid "Actions"
+msgstr "Acciones"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:23
+msgid "Available Containers"
+msgstr "Contenedores disponibles"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:25
+msgid "Containers URL"
+msgstr "URL de los contenedores"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:53
+msgid "Create"
+msgstr "Crear"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:41
+msgid "Create New Container"
+msgstr "Crear nuevo contenedor"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:133
+msgid "Delete"
+msgstr "Borrar"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:31
+msgid "Enable SSL"
+msgstr "Habilitar SSL"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:32
+msgid ""
+"Enable optional SSL encryption support. This requires additional packages "
+"like 'wget', 'ca-certificates', 'gnupg' and 'gnupg-utils'."
+msgstr ""
+"Habilitar el soporte de cifrado SSL opcional. Esto requiere paquetes "
+"adicionales como 'wget', 'ca-certificates', 'gnupg' y 'gnupg-utils'."
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:50
+msgid "Enter new name"
+msgstr "Ingresar nuevo nombre"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:36
+msgid "Free Space Threshold"
+msgstr "Umbral de espacio libre"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:42
+msgid "Free Temp Threshold"
+msgstr "Umbral de temperatura libre"
+
+#: applications/luci-app-lxc/luasrc/controller/lxc.lua:31
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:17
+msgid "LXC Containers"
+msgstr "Contenedores LXC"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:73
+msgid "Loading"
+msgstr "Cargando"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:37
+msgid "Minimum required free space for LXC Container creation in KB"
+msgstr ""
+"Espacio libre mínimo requerido para la creación del contenedor LXC en KB"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:43
+msgid "Minimum required free temp space for LXC Container creation in KB"
+msgstr ""
+"Espacio temporal libre mínimo requerido para la creación del contenedor LXC "
+"en KB"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:27
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:45
+msgid "Name"
+msgstr "Nombre"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:22
+msgid "Options"
+msgstr "Opciones"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:131
+msgid "Start"
+msgstr "Iniciar"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:28
+msgid "Status"
+msgstr "Estado"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:132
+msgid "Stop"
+msgstr "Detener"
+
+#: applications/luci-app-lxc/luasrc/view/lxc.htm:46
+msgid "Template"
+msgstr "Plantilla"
+
+#: applications/luci-app-lxc/luasrc/model/cbi/lxc.lua:19
+msgid ""
+"The image should include at least support for 'kernel cgroups', 'kernel "
+"namespaces' and 'miscellaneous LXC related options' plus 'kmod-veth' for "
+"optional network support."
+msgstr ""
+"La imagen debe incluir al menos soporte para 'kernel cgroups', 'kernel "
+"namespaces' y 'miscellaneous LXC related options' más 'kmod-veth' para "
+"soporte de red opcional."
diff --git a/applications/luci-app-mosquitto/po/templates/mosquitto.pot b/applications/luci-app-mosquitto/po/templates/mosquitto.pot
new file mode 100644
index 0000000000..25aa14334c
--- /dev/null
+++ b/applications/luci-app-mosquitto/po/templates/mosquitto.pot
@@ -0,0 +1,6 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-mosquitto/luasrc/controller/mosquitto.lua:15
+msgid "Mosquitto"
+msgstr ""
diff --git a/applications/luci-app-ocserv/po/templates/ocserv.pot b/applications/luci-app-ocserv/po/templates/ocserv.pot
new file mode 100644
index 0000000000..8083170ce0
--- /dev/null
+++ b/applications/luci-app-ocserv/po/templates/ocserv.pot
@@ -0,0 +1,325 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:145
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:80
+msgid ""
+"<abbr title=\"Classless Inter-Domain Routing\">CIDR</abbr>-Notation: address/"
+"prefix"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:48
+msgid "Active OpenConnect Users"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:61
+msgid "Active users"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:23
+msgid ""
+"An alternative value to be communicated to the client to verify the server's "
+"certificate; this value only depends on the public key"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:95
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:64
+msgid "AnyConnect client compatibility"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:17
+msgid "Available users"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:13
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:13
+msgid "CA certificate"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:72
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:57
+msgid "Cipher"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:62
+msgid "Collecting data..."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:153
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:111
+msgid "DNS servers"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:81
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:54
+msgid "Dead peer detection time (secs)"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:70
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:55
+msgid "Device"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:14
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:14
+msgid "Edit Template"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:101
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:85
+msgid "Edit the template that is used for generating the ocserv configuration."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:91
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:60
+msgid "Enable UDP"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:92
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:61
+msgid ""
+"Enable UDP channel support; this must be enabled unless you know what you "
+"are doing"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:87
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:88
+msgid "Enable compression"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:127
+msgid "Enable proxy arp"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:16
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:16
+msgid "Enable server"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:96
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:65
+msgid "Enable support for CISCO AnyConnect clients"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:44
+msgid "Firewall Zone"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:12
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:12
+msgid "General Settings"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:23
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:67
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:52
+msgid "Group"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:65
+msgid "ID"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:68
+msgid "IP"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:159
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:170
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:117
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:128
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:53
+msgid "IP Address"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:79
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:52
+msgid "Max clients"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:80
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:53
+msgid "Max same clients"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:22
+msgid "Name"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:172
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:131
+msgid "Netmask (or IPv6-prefix)"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/controller/ocserv.lua:14
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:7
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:7
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:7
+msgid "OpenConnect VPN"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:24
+msgid "Password"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:77
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:50
+msgid "Port"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:83
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:56
+msgid "Predictable IPs"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:128
+msgid ""
+"Provide addresses to clients from a subnet of LAN; if enabled the network "
+"below must be a subnet of LAN. Note that the first address of the specified "
+"subnet will be reserved by ocserv, so it should not be in use. If you have a "
+"network in LAN covering 192.168.1.0/24 use 192.168.1.192/26 to reserve the "
+"upper 62 addresses."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:164
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:122
+msgid "Routing table"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/controller/ocserv.lua:19
+msgid "Server Settings"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:22
+msgid "Server's Public Key ID"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:20
+msgid "Server's certificate SHA1 hash"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:73
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:58
+msgid "Status"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:21
+msgid ""
+"That value should be communicated to the client to verify the server's "
+"certificate"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:112
+msgid "The DNS servers to be provided to clients; can be either IPv6 or IPv4"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:154
+msgid ""
+"The DNS servers to be provided to clients; can be either IPv6 or IPv4. "
+"Typically you should include the address of this device"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:132
+msgid ""
+"The IPv4 subnet address to provide to clients; this should be some private "
+"network different than the LAN addresses unless proxy ARP is enabled. Leave "
+"empty to attempt auto-configuration."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:146
+msgid ""
+"The IPv6 subnet address to provide to clients; leave empty to attempt auto-"
+"configuration."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:84
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:57
+msgid "The assigned IPs will be selected deterministically"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:71
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:38
+msgid ""
+"The authentication method for the users. The simplest is plain with a single "
+"username-password pair. Use PAM modules to authenticate using another server "
+"(e.g., LDAP, Radius)."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:45
+msgid "The firewall zone that the VPN clients will be set to"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:137
+msgid "The mask of the subnet above."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:165
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:123
+msgid ""
+"The routing table to be provided to clients; you can mix IPv4 and IPv6 "
+"routes, the server will send only the appropriate. Leave empty to set a "
+"default route"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:78
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:51
+msgid "The same UDP and TCP ports will be used"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:41
+msgid "There are no active users."
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:71
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:56
+msgid "Time"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:51
+msgid "User"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:70
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:37
+msgid "User Authentication"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/controller/ocserv.lua:24
+msgid "User Settings"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:66
+msgid "Username"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:136
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:72
+msgid "VPN <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:131
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:68
+msgid ""
+"VPN <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Network-Address"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:145
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:80
+msgid ""
+"VPN <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Network-Address"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/users.lua:69
+msgid "VPN IP"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/view/ocserv_status.htm:54
+msgid "VPN IP Address"
+msgstr ""
+
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/main.lua:116
+#: applications/luci-app-ocserv/luasrc/model/cbi/ocserv/user-config.lua:100
+msgid ""
+"View the CA certificate used by this server. You will need to save it as 'ca."
+"pem' and import it into the clients."
+msgstr ""
diff --git a/applications/luci-app-olsr-services/po/templates/olsr-services.pot b/applications/luci-app-olsr-services/po/templates/olsr-services.pot
new file mode 100644
index 0000000000..eb57829b10
--- /dev/null
+++ b/applications/luci-app-olsr-services/po/templates/olsr-services.pot
@@ -0,0 +1,32 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:159
+msgid "Internal services"
+msgstr ""
+
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:56
+msgid ""
+"No services can be shown, because olsrd is not running or the olsrd-"
+"nameservice Plugin is not loaded."
+msgstr ""
+
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:131
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:163
+msgid "Protocol"
+msgstr ""
+
+#: applications/luci-app-olsr-services/luasrc/controller/services.lua:13
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:156
+msgid "Services"
+msgstr ""
+
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:132
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:164
+msgid "Source"
+msgstr ""
+
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:130
+#: applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm:162
+msgid "Url"
+msgstr ""
diff --git a/applications/luci-app-olsr-viz/po/templates/olsr-viz.pot b/applications/luci-app-olsr-viz/po/templates/olsr-viz.pot
new file mode 100644
index 0000000000..1bcfc88a69
--- /dev/null
+++ b/applications/luci-app-olsr-viz/po/templates/olsr-viz.pot
@@ -0,0 +1,10 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-olsr-viz/luasrc/controller/olsr-viz.lua:4
+msgid "OLSR-Viz"
+msgstr ""
+
+#: applications/luci-app-olsr-viz/luasrc/view/olsr-viz/olsr-viz.htm:4
+msgid "You need to allow javascript in your browser to show this page."
+msgstr ""
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 41581f4c7e..2bf36cb278 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
@@ -681,6 +681,10 @@ local knownParams = {
"DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:RC4-SHA:RC4-MD5:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC4-MD5",
translate("TLS cipher") },
{ Value,
+ "tls_ciphersuites",
+ "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256",
+ translate("TLS 1.3 or newer cipher") },
+ { Value,
"tls_timeout",
2,
translate("Retransmit timeout on TLS control channel") },
diff --git a/applications/luci-app-squid/po/templates/squid.pot b/applications/luci-app-squid/po/templates/squid.pot
new file mode 100644
index 0000000000..1ed738b8a8
--- /dev/null
+++ b/applications/luci-app-squid/po/templates/squid.pot
@@ -0,0 +1,27 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+#: applications/luci-app-squid/luasrc/model/cbi/squid.lua:42
+msgid "Advanced Settings"
+msgstr ""
+
+#: applications/luci-app-squid/luasrc/model/cbi/squid.lua:38
+msgid "Coredump files directory"
+msgstr ""
+
+#: applications/luci-app-squid/luasrc/model/cbi/squid.lua:28
+msgid "General Settings"
+msgstr ""
+
+#: applications/luci-app-squid/luasrc/model/cbi/squid.lua:30
+msgid "Port"
+msgstr ""
+
+#: applications/luci-app-squid/luasrc/controller/squid.lua:20
+#: applications/luci-app-squid/luasrc/model/cbi/squid.lua:21
+msgid "Squid"
+msgstr ""
+
+#: applications/luci-app-squid/luasrc/model/cbi/squid.lua:34
+msgid "Visible Hostname"
+msgstr ""
diff --git a/modules/luci-base/htdocs/luci-static/resources/firewall.js b/modules/luci-base/htdocs/luci-static/resources/firewall.js
index d034d6e010..9ae14e16d9 100644
--- a/modules/luci-base/htdocs/luci-static/resources/firewall.js
+++ b/modules/luci-base/htdocs/luci-static/resources/firewall.js
@@ -375,6 +375,14 @@ Zone = AbstractFirewallItem.extend({
this.set('network', ' ');
},
+ getDevices: function() {
+ return L.toArray(this.get('device'));
+ },
+
+ getSubnets: function() {
+ return L.toArray(this.get('subnet'));
+ },
+
getForwardingsBy: function(what) {
var sections = uci.sections('firewall', 'forwarding'),
forwards = [];
diff --git a/modules/luci-base/htdocs/luci-static/resources/form.js b/modules/luci-base/htdocs/luci-static/resources/form.js
index 508e2c4857..58d8f7100c 100644
--- a/modules/luci-base/htdocs/luci-static/resources/form.js
+++ b/modules/luci-base/htdocs/luci-static/resources/form.js
@@ -1461,6 +1461,7 @@ var CBIListValue = CBIValue.extend({
size: this.size,
sort: this.keylist,
optional: this.rmempty || this.optional,
+ placeholder: this.placeholder,
validate: L.bind(this.validate, this, section_id)
});
diff --git a/modules/luci-base/htdocs/luci-static/resources/tools/widgets.js b/modules/luci-base/htdocs/luci-static/resources/tools/widgets.js
index 7f2997f173..39e5aa1655 100644
--- a/modules/luci-base/htdocs/luci-static/resources/tools/widgets.js
+++ b/modules/luci-base/htdocs/luci-static/resources/tools/widgets.js
@@ -30,8 +30,22 @@ var CBIZoneSelect = form.ListValue.extend({
renderWidget: function(section_id, option_index, cfgvalue) {
var values = L.toArray((cfgvalue != null) ? cfgvalue : this.default),
+ isOutputOnly = false,
choices = {};
+ if (this.option == 'dest') {
+ for (var i = 0; i < this.section.children.length; i++) {
+ var opt = this.section.children[i];
+ if (opt.option == 'src') {
+ var val = opt.cfgvalue(section_id) || opt.default;
+ isOutputOnly = (val == null || val == '');
+ break;
+ }
+ }
+
+ this.title = isOutputOnly ? _('Output zone') : _('Destination zone');
+ }
+
if (this.allowlocal) {
choices[''] = E('span', {
'class': 'zonebadge',
@@ -39,7 +53,7 @@ var CBIZoneSelect = form.ListValue.extend({
}, [
E('strong', _('Device')),
(this.allowany || this.allowlocal)
- ? ' (%s)'.format(this.alias != 'dest' ? _('output') : _('input')) : ''
+ ? ' (%s)'.format(this.option != 'dest' ? _('output') : _('input')) : ''
]);
}
else if (!this.multiple && (this.rmempty || this.optional)) {
@@ -55,7 +69,7 @@ var CBIZoneSelect = form.ListValue.extend({
'style': 'background-color:' + firewall.getColorForName(null)
}, [
E('strong', _('Any zone')),
- (this.allowany && this.allowlocal) ? ' (%s)'.format(_('forward')) : ''
+ (this.allowany && this.allowlocal && !isOutputOnly) ? ' (%s)'.format(_('forward')) : ''
]);
}
@@ -120,7 +134,64 @@ var CBIZoneSelect = form.ListValue.extend({
'</li>'
});
- return widget.render();
+ var elem = widget.render();
+
+ if (this.option == 'src') {
+ elem.addEventListener('cbi-dropdown-change', L.bind(function(ev) {
+ var opt = this.map.lookupOption('dest', section_id),
+ val = ev.detail.instance.getValue();
+
+ if (opt == null)
+ return;
+
+ var cbid = opt[0].cbid(section_id),
+ label = document.querySelector('label[for="widget.%s"]'.format(cbid)),
+ node = document.getElementById(cbid);
+
+ L.dom.content(label, val == '' ? _('Output zone') : _('Destination zone'));
+
+ if (val == '') {
+ if (L.dom.callClassMethod(node, 'getValue') == '')
+ L.dom.callClassMethod(node, 'setValue', '*');
+
+ var emptyval = node.querySelector('[data-value=""]'),
+ anyval = node.querySelector('[data-value="*"]');
+
+ L.dom.content(anyval.querySelector('span'), E('strong', _('Any zone')));
+
+ if (emptyval != null)
+ emptyval.parentNode.removeChild(emptyval);
+ }
+ else {
+ var anyval = node.querySelector('[data-value="*"]'),
+ emptyval = node.querySelector('[data-value=""]');
+
+ if (emptyval == null) {
+ emptyval = anyval.cloneNode(true);
+ emptyval.removeAttribute('display');
+ emptyval.removeAttribute('selected');
+ emptyval.setAttribute('data-value', '');
+ }
+
+ L.dom.content(emptyval.querySelector('span'), [
+ E('strong', _('Device')), ' (%s)'.format(_('input'))
+ ]);
+
+ L.dom.content(anyval.querySelector('span'), [
+ E('strong', _('Any zone')), ' (%s)'.format(_('forward'))
+ ]);
+
+ anyval.parentNode.insertBefore(emptyval, anyval);
+ }
+
+ }, this));
+ }
+ else if (isOutputOnly) {
+ var emptyval = elem.querySelector('[data-value=""]');
+ emptyval.parentNode.removeChild(emptyval);
+ }
+
+ return elem;
},
});
@@ -128,10 +199,16 @@ var CBIZoneForwards = form.DummyValue.extend({
__name__: 'CBI.ZoneForwards',
load: function(section_id) {
- return Promise.all([ firewall.getDefaults(), firewall.getZones(), network.getNetworks() ]).then(L.bind(function(dzn) {
- this.defaults = dzn[0];
- this.zones = dzn[1];
- this.networks = dzn[2];
+ return Promise.all([
+ firewall.getDefaults(),
+ firewall.getZones(),
+ network.getNetworks(),
+ network.getDevices()
+ ]).then(L.bind(function(dznd) {
+ this.defaults = dznd[0];
+ this.zones = dznd[1];
+ this.networks = dznd[2];
+ this.devices = dznd[3];
return this.super('load', section_id);
}, this));
@@ -140,6 +217,8 @@ var CBIZoneForwards = form.DummyValue.extend({
renderZone: function(zone) {
var name = zone.getName(),
networks = zone.getNetworks(),
+ devices = zone.getDevices(),
+ subnets = zone.getSubnets(),
ifaces = [];
for (var j = 0; j < networks.length; j++) {
@@ -152,21 +231,39 @@ var CBIZoneForwards = form.DummyValue.extend({
'class': 'ifacebadge' + (network.getName() == this.network ? ' ifacebadge-active' : '')
}, network.getName() + ': ');
- var devices = network.isBridge() ? network.getDevices() : L.toArray(network.getDevice());
+ var subdevs = network.isBridge() ? network.getDevices() : L.toArray(network.getDevice());
- for (var k = 0; k < devices.length && devices[k]; k++) {
+ for (var k = 0; k < subdevs.length && subdevs[k]; k++) {
span.appendChild(E('img', {
- 'title': devices[k].getI18n(),
- 'src': L.resource('icons/%s%s.png'.format(devices[k].getType(), devices[k].isUp() ? '' : '_disabled'))
+ 'title': subdevs[k].getI18n(),
+ 'src': L.resource('icons/%s%s.png'.format(subdevs[k].getType(), subdevs[k].isUp() ? '' : '_disabled'))
}));
}
- if (!devices.length)
+ if (!subdevs.length)
span.appendChild(E('em', _('(empty)')));
ifaces.push(span);
}
+ for (var i = 0; i < devices.length; i++) {
+ var device = this.devices.filter(function(dev) { return dev.getName() == devices[i] })[0],
+ title = device ? device.getI18n() : _('Absent Interface'),
+ type = device ? device.getType() : 'ethernet',
+ up = device ? device.isUp() : false;
+
+ ifaces.push(E('span', { 'class': 'ifacebadge' }, [
+ E('img', {
+ 'title': title,
+ 'src': L.resource('icons/%s%s.png'.format(type, up ? '' : '_disabled'))
+ }),
+ device ? device.getName() : devices[i]
+ ]));
+ }
+
+ if (subnets.length > 0)
+ ifaces.push(E('span', { 'class': 'ifacebadge' }, [ '{ %s }'.format(subnets.join('; ')) ]));
+
if (!ifaces.length)
ifaces.push(E('span', { 'class': 'ifacebadge' }, E('em', _('(empty)'))));
@@ -319,9 +416,120 @@ var CBINetworkSelect = form.ListValue.extend({
},
});
+var CBIDeviceSelect = form.ListValue.extend({
+ __name__: 'CBI.DeviceSelect',
+
+ load: function(section_id) {
+ return network.getDevices().then(L.bind(function(devices) {
+ this.devices = devices;
+
+ return this.super('load', section_id);
+ }, this));
+ },
+
+ filter: function(section_id, value) {
+ return true;
+ },
+
+ renderWidget: function(section_id, option_index, cfgvalue) {
+ var values = L.toArray((cfgvalue != null) ? cfgvalue : this.default),
+ choices = {},
+ checked = {},
+ order = [];
+
+ for (var i = 0; i < values.length; i++)
+ checked[values[i]] = true;
+
+ values = [];
+
+ if (!this.multiple && (this.rmempty || this.optional))
+ choices[''] = E('em', _('unspecified'));
+
+ for (var i = 0; i < this.devices.length; i++) {
+ var device = this.devices[i],
+ name = device.getName(),
+ type = device.getType();
+
+ if (name == 'lo' || name == this.exclude || !this.filter(section_id, name))
+ continue;
+
+ if (this.noaliases && type == 'alias')
+ continue;
+
+ if (this.nobridges && type == 'bridge')
+ continue;
+
+ if (this.noinactive && device.isUp() == false)
+ continue;
+
+ var item = E([
+ E('img', {
+ 'title': device.getI18n(),
+ 'src': L.resource('icons/%s%s.png'.format(type, device.isUp() ? '' : '_disabled'))
+ }),
+ E('span', { 'class': 'hide-open' }, [ name ]),
+ E('span', { 'class': 'hide-close'}, [ device.getI18n() ])
+ ]);
+
+ var networks = device.getNetworks();
+
+ if (networks.length > 0)
+ L.dom.append(item.lastChild, [ ' (', networks.join(', '), ')' ]);
+
+ if (checked[name])
+ values.push(name);
+
+ choices[name] = item;
+ order.push(name);
+ }
+
+ if (!this.nocreate) {
+ var keys = Object.keys(checked).sort();
+
+ for (var i = 0; i < keys.length; i++) {
+ if (choices.hasOwnProperty(keys[i]))
+ continue;
+
+ choices[keys[i]] = E([
+ E('img', {
+ 'title': _('Absent Interface'),
+ 'src': L.resource('icons/ethernet_disabled.png')
+ }),
+ E('span', { 'class': 'hide-open' }, [ keys[i] ]),
+ E('span', { 'class': 'hide-close'}, [ '%s: "%h"'.format(_('Absent Interface'), keys[i]) ])
+ ]);
+
+ values.push(keys[i]);
+ order.push(keys[i]);
+ }
+ }
+
+ var widget = new ui.Dropdown(this.multiple ? values : values[0], choices, {
+ id: this.cbid(section_id),
+ sort: order,
+ multiple: this.multiple,
+ optional: this.optional || this.rmempty,
+ select_placeholder: E('em', _('unspecified')),
+ display_items: this.display_size || this.size || 3,
+ dropdown_items: this.dropdown_size || this.size || 5,
+ validate: L.bind(this.validate, this, section_id),
+ create: !this.nocreate,
+ create_markup: '' +
+ '<li data-value="{{value}}">' +
+ '<img title="'+_('Custom Interface')+': &quot;{{value}}&quot;" src="'+L.resource('icons/ethernet_disabled.png')+'" />' +
+ '<span class="hide-open">{{value}}</span>' +
+ '<span class="hide-close">'+_('Custom Interface')+': "{{value}}"</span>' +
+ '</li>'
+ });
+
+ return widget.render();
+ },
+});
+
return L.Class.extend({
ZoneSelect: CBIZoneSelect,
ZoneForwards: CBIZoneForwards,
- NetworkSelect: CBINetworkSelect
+ NetworkSelect: CBINetworkSelect,
+ DeviceSelect: CBIDeviceSelect,
});
diff --git a/modules/luci-base/htdocs/luci-static/resources/ui.js b/modules/luci-base/htdocs/luci-static/resources/ui.js
index 9e43c2d125..43afc698f6 100644
--- a/modules/luci-base/htdocs/luci-static/resources/ui.js
+++ b/modules/luci-base/htdocs/luci-static/resources/ui.js
@@ -213,13 +213,13 @@ var UISelect = UIElement.extend({
if (!Array.isArray(value))
value = (value != null && value != '') ? [ value ] : [];
- if (!options.multi && value.length > 1)
+ if (!options.multiple && value.length > 1)
value.length = 1;
this.values = value;
this.choices = choices;
this.options = Object.assign({
- multi: false,
+ multiple: false,
widget: 'select',
orientation: 'horizontal'
}, options);
@@ -240,7 +240,7 @@ var UISelect = UIElement.extend({
'name': this.options.name,
'size': this.options.size,
'class': 'cbi-input-select',
- 'multiple': this.options.multi ? '' : null
+ 'multiple': this.options.multiple ? '' : null
}));
if (this.options.optional)
@@ -267,8 +267,8 @@ var UISelect = UIElement.extend({
E('input', {
'id': this.options.id ? 'widget.' + this.options.id : null,
'name': this.options.id || this.options.name,
- 'type': this.options.multi ? 'checkbox' : 'radio',
- 'class': this.options.multi ? 'cbi-input-checkbox' : 'cbi-input-radio',
+ 'type': this.options.multiple ? 'checkbox' : 'radio',
+ 'class': this.options.multiple ? 'cbi-input-checkbox' : 'cbi-input-radio',
'value': keys[i],
'checked': (this.values.indexOf(keys[i]) > -1) ? '' : null
}),
@@ -287,8 +287,8 @@ var UISelect = UIElement.extend({
this.node = frameEl;
if (this.options.widget == 'select') {
- this.setUpdateEvents(frameEl, 'change', 'click', 'blur');
- this.setChangeEvents(frameEl, 'change');
+ this.setUpdateEvents(frameEl.firstChild, 'change', 'click', 'blur');
+ this.setChangeEvents(frameEl.firstChild, 'change');
}
else {
var radioEls = frameEl.querySelectorAll('input[type="radio"]');
@@ -345,7 +345,7 @@ var UIDropdown = UIElement.extend({
this.choices = choices;
this.options = Object.assign({
sort: true,
- multi: Array.isArray(value),
+ multiple: Array.isArray(value),
optional: true,
select_placeholder: _('-- Please choose --'),
custom_placeholder: _('-- custom --'),
@@ -361,7 +361,7 @@ var UIDropdown = UIElement.extend({
var sb = E('div', {
'id': this.options.id,
'class': 'cbi-dropdown',
- 'multiple': this.options.multi ? '' : null,
+ 'multiple': this.options.multiple ? '' : null,
'optional': this.options.optional ? '' : null,
}, E('ul'));
@@ -409,7 +409,7 @@ var UIDropdown = UIElement.extend({
bind: function(sb) {
var o = this.options;
- o.multi = sb.hasAttribute('multiple');
+ o.multiple = sb.hasAttribute('multiple');
o.optional = sb.hasAttribute('optional');
o.placeholder = sb.getAttribute('placeholder') || o.placeholder;
o.display_items = parseInt(sb.getAttribute('display-items') || o.display_items);
@@ -425,7 +425,7 @@ var UIDropdown = UIElement.extend({
ndisplay = this.options.display_items,
n = 0;
- if (this.options.multi) {
+ if (this.options.multiple) {
var items = ul.querySelectorAll('li');
for (var i = 0; i < items.length; i++) {
@@ -657,7 +657,7 @@ var UIDropdown = UIElement.extend({
if (li.hasAttribute('unselectable'))
return;
- if (this.options.multi) {
+ if (this.options.multiple) {
var cbox = li.querySelector('input[type="checkbox"]'),
items = li.parentNode.querySelectorAll('li'),
label = sb.querySelector('ul.preview'),
@@ -780,7 +780,7 @@ var UIDropdown = UIElement.extend({
element: sb
};
- if (this.options.multi)
+ if (this.options.multiple)
detail.values = values;
else
detail.value = values.length ? values[0] : null;
@@ -800,12 +800,12 @@ var UIDropdown = UIElement.extend({
for (var value in values) {
this.createItems(sb, value);
- if (!this.options.multi)
+ if (!this.options.multiple)
break;
}
}
- if (this.options.multi) {
+ if (this.options.multiple) {
var lis = ul.querySelectorAll('li[data-value]');
for (var i = 0; i < lis.length; i++) {
var value = lis[i].getAttribute('data-value');
@@ -857,7 +857,7 @@ var UIDropdown = UIElement.extend({
val = (value || '').trim(),
ul = sb.querySelector('ul');
- if (!sbox.options.multi)
+ if (!sbox.options.multiple)
val = val.length ? [ val ] : [];
else
val = val.length ? val.split(/\s+/) : [];
@@ -879,9 +879,9 @@ var UIDropdown = UIElement.extend({
else
markup = '<li data-value="{{value}}">{{value}}</li>';
- new_item = E(markup.replace(/{{value}}/g, item));
+ new_item = E(markup.replace(/{{value}}/g, '%h'.format(item)));
- if (sbox.options.multi) {
+ if (sbox.options.multiple) {
sbox.transformItem(sb, new_item);
}
else {
@@ -1071,7 +1071,7 @@ var UIDropdown = UIElement.extend({
},
setValue: function(values) {
- if (this.options.multi) {
+ if (this.options.multiple) {
if (!Array.isArray(values))
values = (values != null && values != '') ? [ values ] : [];
@@ -1104,7 +1104,7 @@ var UIDropdown = UIElement.extend({
for (var i = 0; i < h.length; i++)
v.push(h[i].value);
- return this.options.multi ? v : v[0];
+ return this.options.multiple ? v : v[0];
}
});
@@ -1116,7 +1116,7 @@ var UICombobox = UIDropdown.extend({
dropdown_items: -1,
sort: true
}, options, {
- multi: false,
+ multiple: false,
create: true,
optional: true
}) ]);
@@ -1134,7 +1134,7 @@ var UIDynamicList = UIElement.extend({
this.values = values;
this.choices = choices;
this.options = Object.assign({}, options, {
- multi: false,
+ multiple: false,
optional: true
});
},
@@ -1797,7 +1797,7 @@ return L.Class.extend({
return chg[1];
case 4:
- return "'" + chg[3].replace(/'/g, "'\"'\"'") + "'";
+ return "'%h'".format(chg[3].replace(/'/g, "'\"'\"'"));
default:
return chg[m1-1];
@@ -1929,7 +1929,7 @@ return L.Class.extend({
method: 'post',
timeout: L.env.apply_timeout * 1000,
query: L.ui.changes.confirm_auth
- }).then(call);
+ }).then(call, call);
}, delay);
};
diff --git a/modules/luci-base/luasrc/view/cbi/dropdown.htm b/modules/luci-base/luasrc/view/cbi/dropdown.htm
index 40bd8e9536..95bd0d4bdc 100644
--- a/modules/luci-base/luasrc/view/cbi/dropdown.htm
+++ b/modules/luci-base/luasrc/view/cbi/dropdown.htm
@@ -1,6 +1,6 @@
<%+cbi/valueheader%>
<div<%=attr("data-ui-widget", luci.util.serialize_json({
- "Dropdown", self:cfgvalue(section), self:choices(), {
+ "Dropdown", self:cfgvalue(section) or self.default, self:choices(), {
id = cbid,
name = cbid,
sort = self.keylist,
diff --git a/modules/luci-base/luasrc/view/cbi/dynlist.htm b/modules/luci-base/luasrc/view/cbi/dynlist.htm
index d50328d79f..2a3da67ff9 100644
--- a/modules/luci-base/luasrc/view/cbi/dynlist.htm
+++ b/modules/luci-base/luasrc/view/cbi/dynlist.htm
@@ -1,6 +1,6 @@
<%+cbi/valueheader%>
<div<%=attr("data-ui-widget", luci.util.serialize_json({
- "DynamicList", self:cfgvalue(section), self:choices(), {
+ "DynamicList", self:cfgvalue(section) or self.default, self:choices(), {
name = cbid,
size = self.size,
sort = self.keylist,
diff --git a/modules/luci-base/luasrc/view/cbi/lvalue.htm b/modules/luci-base/luasrc/view/cbi/lvalue.htm
index e076488356..920b5e9f92 100644
--- a/modules/luci-base/luasrc/view/cbi/lvalue.htm
+++ b/modules/luci-base/luasrc/view/cbi/lvalue.htm
@@ -1,6 +1,6 @@
<%+cbi/valueheader%>
<div<%=attr("data-ui-widget", luci.util.serialize_json({
- "Select", self:cfgvalue(section), self:choices(), {
+ "Select", self:cfgvalue(section) or self.default, self:choices(), {
id = cbid,
name = cbid,
size = self.size,
diff --git a/modules/luci-base/luasrc/view/cbi/tvalue.htm b/modules/luci-base/luasrc/view/cbi/tvalue.htm
index d1e9e66728..f3b12bd094 100644
--- a/modules/luci-base/luasrc/view/cbi/tvalue.htm
+++ b/modules/luci-base/luasrc/view/cbi/tvalue.htm
@@ -1,5 +1,5 @@
<%+cbi/valueheader%>
<textarea class="cbi-input-textarea" <% if not self.size then %> style="width: 100%"<% else %> cols="<%=self.size%>"<% end %> data-update="change"<%= attr("name", cbid) .. attr("id", cbid) .. ifattr(self.rows, "rows") .. ifattr(self.wrap, "wrap") .. ifattr(self.readonly, "readonly") %>>
- <%-=pcdata(self:cfgvalue(section))-%>
+ <%-=pcdata(self:cfgvalue(section) or self.default)-%>
</textarea>
<%+cbi/valuefooter%>
diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po
index 88f1928e8c..1e63a176ed 100644
--- a/modules/luci-base/po/ca/base.po
+++ b/modules/luci-base/po/ca/base.po
@@ -3393,6 +3393,10 @@ msgstr "Cap xarxa configurada en aquest dispositiu"
msgid "No network name specified"
msgstr "Cap nom de xarxa especificat"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3408,7 +3412,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "No hi ha regles en aquesta cadena"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5985,7 +5989,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "amagat"
diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po
index abb19637f3..a1fb53732b 100644
--- a/modules/luci-base/po/cs/base.po
+++ b/modules/luci-base/po/cs/base.po
@@ -3404,6 +3404,10 @@ msgstr "Síť není nastavena na tomto zařízení"
msgid "No network name specified"
msgstr "Neuvedeno jméno sítě"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3419,7 +3423,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Žádná pravidla v tomto řetězci"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -6017,7 +6021,7 @@ msgstr "poloviční-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "skrytý"
diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po
index ad938a0df7..fd3e29d7c2 100644
--- a/modules/luci-base/po/de/base.po
+++ b/modules/luci-base/po/de/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-26 17:57+0200\n"
-"PO-Revision-Date: 2018-12-13 11:43+0100\n"
+"PO-Revision-Date: 2019-07-19 18:17+0200\n"
"Last-Translator: Jo-Philipp Wich <jo@mein.io>\n"
"Language-Team: \n"
"Language: de\n"
@@ -11,7 +11,7 @@ msgstr ""
"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.11\n"
+"X-Generator: Poedit 2.2.1\n"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/network.lua:133
msgid "%.1f dB"
@@ -101,6 +101,7 @@ msgstr "-- Bitte auswählen --"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:382
msgid "0 = not using RSSI threshold, 1 = do not change driver default"
msgstr ""
+"0 = keinen Signal-Schwellwert benutzen, 1 = Treiber-Default nicht ändern"
#: modules/luci-mod-status/luasrc/view/admin_status/load.htm:252
msgid "1 Minute Load:"
@@ -665,7 +666,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1867
msgid "Apply unchecked"
-msgstr ""
+msgstr "Ungeprüft übernehmen"
#: modules/luci-mod-status/luasrc/view/admin_status/index/10-system.htm:19
msgid "Architecture"
@@ -1638,7 +1639,7 @@ msgstr "Downstream SNR-Offset"
#: modules/luci-base/htdocs/luci-static/resources/form.js:914
msgid "Drag to reorder"
-msgstr ""
+msgstr "Ziehen zum Umsortieren"
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:9
msgid "Dropbear Instance"
@@ -1891,7 +1892,7 @@ msgstr "Hosts vervollständigen"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:59
msgid "Expecting: %s"
-msgstr ""
+msgstr "Erwarte: %s"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:71
msgid "Expires"
@@ -2993,7 +2994,7 @@ msgstr "Lade SSH-Schlüssel…"
#: modules/luci-base/htdocs/luci-static/resources/luci.js:1204
#: modules/luci-base/luasrc/view/view.htm:4
msgid "Loading view…"
-msgstr ""
+msgstr "Lade Seite…"
#: modules/luci-base/htdocs/luci-static/resources/network.js:10
#: modules/luci-base/luasrc/model/network.lua:30
@@ -3223,7 +3224,7 @@ msgstr "Mbit/s"
#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:18
msgid "Medium"
-msgstr ""
+msgstr "Mittel"
#: modules/luci-mod-status/luasrc/view/admin_status/index/20-memory.htm:13
msgid "Memory"
@@ -3307,11 +3308,11 @@ msgstr "Monitor"
#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:14
msgid "More Characters"
-msgstr ""
+msgstr "Mehr Zeichen"
#: modules/luci-base/htdocs/luci-static/resources/form.js:802
msgid "More…"
-msgstr ""
+msgstr "Mehr…"
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:45
msgid "Mount Entry"
@@ -3489,6 +3490,10 @@ msgstr "Keine Netzwerke auf diesem Gerät konfiguriert"
msgid "No network name specified"
msgstr "Netzwerkname nicht angegeben"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr "Keine Netzwerke in Reichweite"
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3504,7 +3509,7 @@ msgstr "Bisher keine SSH-Schlüssel hinterlegt."
msgid "No rules in this chain."
msgstr "Keine Regeln in dieser Kette"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "Noch keine Scan-Ergebnisse verfügbar..."
@@ -3561,7 +3566,7 @@ msgstr "Nicht verbunden"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/network.js:105
msgid "Not started on boot"
-msgstr ""
+msgstr "Beim Hochfahren nicht starten"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/iface_add.lua:26
msgid "Note: interface name length"
@@ -3623,7 +3628,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:95
msgid "On-Link route"
-msgstr ""
+msgstr "Link-lokale Route"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:78
msgid "On-State Delay"
@@ -3635,7 +3640,7 @@ msgstr "Es muss entweder ein Hostname oder eine MAC-Adresse angegeben werden!"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:456
msgid "One of the following: %s"
-msgstr ""
+msgstr "Eine der folgenden Möglichkeiten: %s"
#: modules/luci-base/luasrc/view/cbi/nullsection.htm:17
#: modules/luci-base/luasrc/view/cbi/ucisection.htm:22
@@ -3935,7 +3940,7 @@ msgstr "Password des inneren, privaten Schlüssels"
#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:18
#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:20
msgid "Password strength"
-msgstr ""
+msgstr "Passwortstärke"
#: protocols/luci-proto-openconnect/luasrc/model/cbi/admin_network/proto_openconnect.lua:44
msgid "Password2"
@@ -4054,7 +4059,7 @@ msgstr "Port-Status:"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:482
msgid "Potential negation of: %s"
-msgstr ""
+msgstr "Mögliche Negation von: %s"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/index.js:137
msgid "Power Management Mode"
@@ -4204,7 +4209,7 @@ msgstr "RFC3947 \"NAT-T\"-Modus"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:381
msgid "RSSI threshold for joining"
-msgstr ""
+msgstr "RSSI-Schwellwert für Assoziationen"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:256
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:597
@@ -4530,7 +4535,7 @@ msgstr "Erlaubte IP-Addressen routen"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:72
msgid "Route table"
-msgstr ""
+msgstr "Routen-Tabelle"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:59
msgid "Route type"
@@ -4573,7 +4578,7 @@ msgstr "Dateisystemprüfung durchführen"
#: modules/luci-base/htdocs/luci-static/resources/luci.js:651
msgid "Runtime error"
-msgstr ""
+msgstr "Laufzeitfehler"
#: modules/luci-mod-system/luasrc/view/admin_system/upgrade.htm:29
msgid "SHA256"
@@ -4849,7 +4854,7 @@ msgstr "Quelle"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:83
msgid "Source Address"
-msgstr ""
+msgstr "Quelladresse"
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/fstab/mount.lua:103
msgid "Specifies the directory the device is attached to"
@@ -4975,7 +4980,7 @@ msgstr "Strikte Reihenfolge"
#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:16
msgid "Strong"
-msgstr ""
+msgstr "Stark"
#: modules/luci-base/luasrc/view/cbi/simpleform.htm:61
msgid "Submit"
@@ -5037,7 +5042,7 @@ msgstr "Auf CIDR-Listen-Notation wechseln"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:77
msgid "Sync with NTP-Server"
-msgstr ""
+msgstr "Mit NTP-Server synchronisieren"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:64
msgid "Sync with browser"
@@ -5322,7 +5327,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:403
msgid "There are no active leases"
-msgstr ""
+msgstr "Es gibt keine aktiven Leases"
#: modules/luci-base/luasrc/view/lease_status.htm:29
#: modules/luci-base/luasrc/view/lease_status.htm:61
@@ -5331,7 +5336,7 @@ msgstr "Es gibt z.Z. keine aktiven Leases."
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1973
msgid "There are no changes to apply"
-msgstr ""
+msgstr "Es gibt keine anzuwendenden Änderungen"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:204
msgid ""
@@ -5362,6 +5367,9 @@ msgid ""
"'server=1.2.3.4' for domain-specific or full upstream <abbr title=\"Domain "
"Name System\">DNS</abbr> servers."
msgstr ""
+"Diese Datei muss Zeilen in der Form <code>server=/domain/1.2.3.4</code> oder "
+"<code>server=1.2.3.4</code> für domainspezifische oder volle Upstream-DNS-"
+"Server beinhalten."
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
msgid ""
@@ -5962,7 +5970,7 @@ msgstr ""
#: modules/luci-mod-system/luasrc/view/admin_system/password.htm:20
msgid "Weak"
-msgstr ""
+msgstr "Schwach"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:946
msgid ""
@@ -6104,7 +6112,7 @@ msgstr "auto"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:84
msgid "automatic"
-msgstr ""
+msgstr "automatisch"
#: modules/luci-mod-network/luasrc/view/admin_network/switch_status.htm:45
msgid "baseT"
@@ -6195,7 +6203,7 @@ msgstr "Halb-Duplex"
msgid "hexadecimal encoded value"
msgstr "hexadezimal kodierten Wert"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "versteckt"
diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po
index 0005e71b93..775b2c055c 100644
--- a/modules/luci-base/po/el/base.po
+++ b/modules/luci-base/po/el/base.po
@@ -3413,6 +3413,10 @@ msgstr "Δεν υπάρχει παραμετροποιημένο δίκτυο σ
msgid "No network name specified"
msgstr "Δεν έχει οριστεί όνομα δικτύου"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3428,7 +3432,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Δεν υπάρχει κανόνας σε αυτή την αλυσίδα"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5985,7 +5989,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po
index 95922f771c..3423f543fe 100644
--- a/modules/luci-base/po/en/base.po
+++ b/modules/luci-base/po/en/base.po
@@ -3381,6 +3381,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3396,7 +3400,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "No rules in this chain."
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5941,7 +5945,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po
index 247de70533..0f5de6d598 100644
--- a/modules/luci-base/po/es/base.po
+++ b/modules/luci-base/po/es/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2019-07-13 22:48-0300\n"
+"PO-Revision-Date: 2019-07-19 17:25-0300\n"
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
@@ -328,7 +328,7 @@ msgstr "Concentrador de acceso"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:368
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:470
msgid "Access Point"
-msgstr "Punto de Acceso"
+msgstr "AP"
#: modules/luci-mod-system/luasrc/view/admin_system/backupfiles.htm:8
#: modules/luci-mod-system/luasrc/view/admin_system/flashops.htm:12
@@ -1821,8 +1821,8 @@ msgid ""
"Enables fast roaming among access points that belong to the same Mobility "
"Domain"
msgstr ""
-"Habilita la itinerancia rápida entre los puntos de acceso que pertenecen al "
-"mismo dominio de movilidad"
+"Habilita la itinerancia rápida entre los APs que pertenecen al mismo dominio "
+"de movilidad"
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/ifaces.lua:272
msgid "Enables the Spanning Tree Protocol on this bridge"
@@ -2957,7 +2957,7 @@ msgstr "Interfaces de escucha"
#: protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua:30
msgid "Listen Port"
-msgstr "Puerto de escucha"
+msgstr "Puerto"
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/dropbear.lua:15
msgid "Listen only on the given interface or, if unspecified, on all"
@@ -3484,6 +3484,10 @@ msgstr "No hay red configurada para este dispositivo"
msgid "No network name specified"
msgstr "No se ha especificado un nombre de red"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr "No hay redes en rango"
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3499,7 +3503,7 @@ msgstr "No hay claves públicas presentes todavía."
msgid "No rules in this chain."
msgstr "No hay reglas en esta cadena."
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "Aún no hay resultados de escaneo disponibles ..."
@@ -6184,7 +6188,7 @@ msgstr "Half dúplex"
msgid "hexadecimal encoded value"
msgstr "Valor codificado en hexadecimal"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "Oculto"
diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po
index 5ff823b260..4bb2e4a340 100644
--- a/modules/luci-base/po/fr/base.po
+++ b/modules/luci-base/po/fr/base.po
@@ -3431,6 +3431,10 @@ msgstr "Ce périphérique n'a aucune adresse configurée"
msgid "No network name specified"
msgstr "Aucun nom de réseau donné"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3446,7 +3450,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Aucune règle dans cette chaîne"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -6063,7 +6067,7 @@ msgstr "half-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "cacher"
diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po
index 05e0470fee..bebd929b6b 100644
--- a/modules/luci-base/po/he/base.po
+++ b/modules/luci-base/po/he/base.po
@@ -3355,6 +3355,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3370,7 +3374,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5886,7 +5890,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po
index 80a780b442..4d26743c18 100644
--- a/modules/luci-base/po/hu/base.po
+++ b/modules/luci-base/po/hu/base.po
@@ -3420,6 +3420,10 @@ msgstr "Ehhez az eszközhöz nincs hálózat beállítva"
msgid "No network name specified"
msgstr "Nincs megadva hálózatnév"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3435,7 +3439,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Ez a lánc nem tartalmaz szabályokat"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -6051,7 +6055,7 @@ msgstr "half-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "rejtett"
diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po
index de871ff095..048689b8e2 100644
--- a/modules/luci-base/po/it/base.po
+++ b/modules/luci-base/po/it/base.po
@@ -3421,6 +3421,10 @@ msgstr "Nessuna rete è configurata su questo dispositivo"
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3436,7 +3440,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Nessuna regola in questa catena"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -6022,7 +6026,7 @@ msgstr "half-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "nascosto"
diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po
index 35ab6bb4fa..16a2bfa7be 100644
--- a/modules/luci-base/po/ja/base.po
+++ b/modules/luci-base/po/ja/base.po
@@ -3447,6 +3447,10 @@ msgstr "このデバイスに設定されているネットワークがありま
msgid "No network name specified"
msgstr "ネットワーク名が設定されていません"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3462,7 +3466,7 @@ msgstr "まだ公開鍵はありません。"
msgid "No rules in this chain."
msgstr "チェイン内にルールがありません"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "利用可能なスキャン結果はまだありません..."
@@ -6112,7 +6116,7 @@ msgstr "半二重"
msgid "hexadecimal encoded value"
msgstr "エンコードされた値(16進数)"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "(不明)"
diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po
index 625700d998..1ab59922f6 100644
--- a/modules/luci-base/po/ko/base.po
+++ b/modules/luci-base/po/ko/base.po
@@ -3366,6 +3366,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3381,7 +3385,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5940,7 +5944,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po
index 0718ad86e2..e25fe0de64 100644
--- a/modules/luci-base/po/ms/base.po
+++ b/modules/luci-base/po/ms/base.po
@@ -3353,6 +3353,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3368,7 +3372,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Tidak ada peraturan dalam rantai ini"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5907,7 +5911,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po
index 1cd0f65c1e..90f3c01cd9 100644
--- a/modules/luci-base/po/no/base.po
+++ b/modules/luci-base/po/no/base.po
@@ -3396,6 +3396,10 @@ msgstr "Ingen nettverk er konfigurert på denne enheten"
msgid "No network name specified"
msgstr "Ingen nettverksnavn spesifisert"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3411,7 +3415,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Ingen regler i denne tabellen"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -6018,7 +6022,7 @@ msgstr "halv-dupleks"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "skjult"
diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po
index b73a15ac62..98d69e19dd 100644
--- a/modules/luci-base/po/pl/base.po
+++ b/modules/luci-base/po/pl/base.po
@@ -3451,6 +3451,10 @@ msgstr "Brak skonfigurowanych sieci na tym urządzeniu"
msgid "No network name specified"
msgstr "Nie podano nazwy sieci"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3466,7 +3470,7 @@ msgstr "Nie ma jeszcze kluczy publicznych."
msgid "No rules in this chain."
msgstr "Brak zasad w tym łańcuchu."
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "Brak wyników skanowania..."
@@ -6111,7 +6115,7 @@ msgstr "pół-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "ukryty"
diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po
index c6dc333636..e1675a62ee 100644
--- a/modules/luci-base/po/pt-br/base.po
+++ b/modules/luci-base/po/pt-br/base.po
@@ -3549,6 +3549,10 @@ msgstr "Nenhuma rede configurada neste dispositivo"
msgid "No network name specified"
msgstr "Nenhum nome de rede foi especificado"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3564,7 +3568,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Sem regras nesta cadeia"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "Ainda não existem resultados do escaneamento..."
@@ -6253,7 +6257,7 @@ msgstr "half-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "ocultar"
diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po
index cac6931cfd..0a0b420b34 100644
--- a/modules/luci-base/po/pt/base.po
+++ b/modules/luci-base/po/pt/base.po
@@ -3419,6 +3419,10 @@ msgstr "Nenhuma rede configurada no dispositivo"
msgid "No network name specified"
msgstr "Nome de rede não especificado"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3434,7 +3438,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Sem regras nesta cadeia"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -6013,7 +6017,7 @@ msgstr "half-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "escondido"
diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po
index b08b8ce610..8c4fcfb1e2 100644
--- a/modules/luci-base/po/ro/base.po
+++ b/modules/luci-base/po/ro/base.po
@@ -3352,6 +3352,10 @@ msgstr "Nici o retea configurata pe acest dispozitiv"
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3367,7 +3371,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5882,7 +5886,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "ascuns"
diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po
index f72880d492..d4b5a82211 100644
--- a/modules/luci-base/po/ru/base.po
+++ b/modules/luci-base/po/ru/base.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: LuCI: base\n"
"POT-Creation-Date: 2010-05-09 01:01+0300\n"
-"PO-Revision-Date: 2019-07-15 15:36+0300\n"
+"PO-Revision-Date: 2019-07-20 15:31+0300\n"
"Last-Translator: Anton Kikin <a.kikin@tano-systems.com>\n"
"Language-Team: http://cyber-place.ru\n"
"Language: ru\n"
@@ -3487,6 +3487,10 @@ msgstr "Не настроена сеть на устройстве"
msgid "No network name specified"
msgstr "Не задано имя сети"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr "Нет сетей в радиусе действия"
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3502,7 +3506,7 @@ msgstr "Нет публичных ключей"
msgid "No rules in this chain."
msgstr "Нет правил в данной цепочке"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "Результаты сканирования пока недоступны..."
@@ -4421,9 +4425,8 @@ msgid ""
"the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
"routes through the tunnel."
msgstr ""
-"Обязательно. IP-адреса и префиксы, которые разрешено использовать этому "
-"пиру внутри туннеля. Обычно IP-адреса и сети пира маршрутизируются "
-"через туннель."
+"Обязательно. IP-адреса и префиксы, которые разрешено использовать этому пиру "
+"внутри туннеля. Обычно IP-адреса и сети пира маршрутизируются через туннель."
#: modules/luci-mod-network/luasrc/model/cbi/admin_network/wifi.lua:1134
msgid ""
@@ -6184,7 +6187,7 @@ msgstr "полудуплекс"
msgid "hexadecimal encoded value"
msgstr "значение в шестнадцатеричном представлении"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "скрытый"
diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po
index c567692978..3a398c04c4 100644
--- a/modules/luci-base/po/sk/base.po
+++ b/modules/luci-base/po/sk/base.po
@@ -3328,6 +3328,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3343,7 +3347,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5852,7 +5856,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po
index a994898858..c32458cf38 100644
--- a/modules/luci-base/po/sv/base.po
+++ b/modules/luci-base/po/sv/base.po
@@ -3348,6 +3348,10 @@ msgstr "Det finns inget nätverk inställt på den här enheten"
msgid "No network name specified"
msgstr "Inget nätverksnamn angavs"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3363,7 +3367,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Inga regler i den här kedjan"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5881,7 +5885,7 @@ msgstr "halv-duplex"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "gömd"
diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot
index 2bba75fa94..9a53dc0259 100644
--- a/modules/luci-base/po/templates/base.pot
+++ b/modules/luci-base/po/templates/base.pot
@@ -3320,6 +3320,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3335,7 +3339,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5844,7 +5848,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po
index e638bc6aa9..8ef5b78ca7 100644
--- a/modules/luci-base/po/tr/base.po
+++ b/modules/luci-base/po/tr/base.po
@@ -3345,6 +3345,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3360,7 +3364,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5871,7 +5875,7 @@ msgstr "yarı çift yönlü"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "gizli"
diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po
index 4b74fb9384..724ab4ccc5 100644
--- a/modules/luci-base/po/uk/base.po
+++ b/modules/luci-base/po/uk/base.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"PO-Revision-Date: 2019-07-16 20:35+0300\n"
+"PO-Revision-Date: 2019-07-21 13:22+0300\n"
"Last-Translator: Yurii <yuripet@gmail.com>\n"
"Language-Team: none\n"
"Language: uk\n"
@@ -3514,6 +3514,10 @@ msgstr "На цьому пристрої немає налаштованої м
msgid "No network name specified"
msgstr "Ім'я мережі не визначено"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr "Немає мереж у межах досяжності"
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3529,7 +3533,7 @@ msgstr "Відкритих ключів поки що немає."
msgid "No rules in this chain."
msgstr "У цьму ланцюжку нема правил."
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "Результати сканування наразі недоступні…"
@@ -6215,7 +6219,7 @@ msgstr "напівдуплекс"
msgid "hexadecimal encoded value"
msgstr "шістнадцяткове кодоване значення"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "прихований"
diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po
index 215614c4e3..f9f97fef54 100644
--- a/modules/luci-base/po/vi/base.po
+++ b/modules/luci-base/po/vi/base.po
@@ -3357,6 +3357,10 @@ msgstr ""
msgid "No network name specified"
msgstr ""
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3372,7 +3376,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "Không có quy luật trong chuỗi này"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5913,7 +5917,7 @@ msgstr ""
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr ""
diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po
index ff00c349e1..fd599eaa60 100644
--- a/modules/luci-base/po/zh-cn/base.po
+++ b/modules/luci-base/po/zh-cn/base.po
@@ -3385,6 +3385,10 @@ msgstr "本设备未配置网络"
msgid "No network name specified"
msgstr "未指定网络名"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3400,7 +3404,7 @@ msgstr "当前还没有公钥。"
msgid "No rules in this chain."
msgstr "本链没有规则"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr "还没有可用的扫描结果…"
@@ -5976,7 +5980,7 @@ msgstr "半双工"
msgid "hexadecimal encoded value"
msgstr "十六进制编码值"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "隐藏"
diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po
index 0c3f5785e5..8649a23f85 100644
--- a/modules/luci-base/po/zh-tw/base.po
+++ b/modules/luci-base/po/zh-tw/base.po
@@ -3364,6 +3364,10 @@ msgstr "尚無網路設定在這個介面上"
msgid "No network name specified"
msgstr "尚未指定網路名稱"
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:147
+msgid "No networks in range"
+msgstr ""
+
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:173
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:211
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
@@ -3379,7 +3383,7 @@ msgstr ""
msgid "No rules in this chain."
msgstr "尚無規則在這個鏈接上"
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:146
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:150
msgid "No scan results available yet..."
msgstr ""
@@ -5943,7 +5947,7 @@ msgstr "半雙工"
msgid "hexadecimal encoded value"
msgstr ""
-#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:137
+#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js:138
msgid "hidden"
msgstr "隱藏"
diff --git a/modules/luci-base/root/usr/libexec/rpcd/luci b/modules/luci-base/root/usr/libexec/rpcd/luci
index 55233d6d0a..7644745efd 100755
--- a/modules/luci-base/root/usr/libexec/rpcd/luci
+++ b/modules/luci-base/root/usr/libexec/rpcd/luci
@@ -285,6 +285,41 @@ local methods = {
local fs = require "nixio.fs"
return { offload_support = not not fs.access("/sys/module/xt_FLOWOFFLOAD/refcnt") }
end
+ },
+
+ conntrack_helpers = {
+ call = function()
+ local fd = io.open("/usr/share/fw3/helpers.conf", "r")
+ local rv = {}
+
+ local line, entry
+ while true do
+ line = fd:read("*l")
+ if not line then
+ break
+ end
+
+ if line:match("^%s*config%s") then
+ if entry then
+ rv[#rv+1] = entry
+ end
+ entry = {}
+ else
+ local opt, val = line:match("^%s*option%s+(%S+)%s+(%S.*)$")
+ if opt and val then
+ opt = opt:gsub("^'(.+)'$", "%1"):gsub('^"(.+)"$', "%1")
+ val = val:gsub("^'(.+)'$", "%1"):gsub('^"(.+)"$', "%1")
+ entry[opt] = val
+ end
+ end
+ end
+
+ if entry then
+ rv[#rv+1] = entry
+ end
+
+ return { helpers = rv }
+ end
}
}
diff --git a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
index a9baef8f9c..de145ce784 100644
--- a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
+++ b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
@@ -13,7 +13,7 @@
"read": {
"ubus": {
"iwinfo": [ "info" ],
- "luci": [ "boardjson", "duid_hints", "host_hints", "ifaddrs", "initList", "getLocaltime", "leases", "leds", "netdevs", "offload_support", "usb" ],
+ "luci": [ "boardjson", "duid_hints", "host_hints", "ifaddrs", "initList", "getLocaltime", "leases", "leds", "netdevs", "usb" ],
"network.device": [ "status" ],
"network.interface": [ "dump" ],
"network.wireless": [ "status" ],
@@ -28,5 +28,17 @@
},
"uci": [ "*" ]
}
+ },
+ "luci-app-firewall": {
+ "description": "Grant access to firewall procedures",
+ "read": {
+ "ubus": {
+ "luci": [ "conntrack_helpers", "offload_support" ]
+ },
+ "uci": [ "firewall" ]
+ },
+ "write": {
+ "uci": [ "firewall" ]
+ }
}
}
diff --git a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js
index d5bd7b0a6d..f30e47ec7c 100644
--- a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js
+++ b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wifi_join.js
@@ -113,6 +113,7 @@ function scan() {
var count = 0;
poll = L.poll(3, L.url('admin/network/wireless_scan_results', dev), null, function(s, results) {
+
if (Array.isArray(results)) {
var bss = [];
@@ -143,9 +144,13 @@ function scan() {
]);
});
- cbi_update_table(tbl, bss, E('em', { class: 'spinning' }, _('No scan results available yet...')));
+ cbi_update_table(tbl, bss, E('em', {}, _('No networks in range')));
+ }
+ else {
+ cbi_update_table(tbl, [], E('em', { class: 'spinning' }, _('No scan results available yet...')));
}
+
if (count++ >= 3) {
count = 0;
L.post(L.url('admin/network/wireless_scan_trigger', dev, 1), null, function() {});
diff --git a/modules/luci-mod-network/luasrc/controller/admin/network.lua b/modules/luci-mod-network/luasrc/controller/admin/network.lua
index fac8d95a20..b20607e2e9 100644
--- a/modules/luci-mod-network/luasrc/controller/admin/network.lua
+++ b/modules/luci-mod-network/luasrc/controller/admin/network.lua
@@ -311,7 +311,7 @@ local function _wifi_get_scan_results(cache_key)
return results.values[cache_key]
end
- return { }
+ return nil
end
function wifi_scan_trigger(radio, update)
@@ -343,10 +343,13 @@ function wifi_scan_trigger(radio, update)
end
if update then
- for _, bss in ipairs(_wifi_get_scan_results(cache_key)) do
- if not bssids[bss.bssid] then
- bss.stale = true
- data[#data + 1] = bss
+ local cached = _wifi_get_scan_results(cache_key)
+ if cached then
+ for _, bss in ipairs(cached) do
+ if not bssids[bss.bssid] then
+ bss.stale = true
+ data[#data + 1] = bss
+ end
end
end
end
@@ -361,7 +364,7 @@ end
function wifi_scan_results(radio)
local results = radio and _wifi_get_scan_results("scan_%s" % radio)
- if results and #results > 0 then
+ if results then
luci.http.prepare_content("application/json")
luci.http.write_json(results)
else
diff --git a/modules/luci-mod-status/src/luci-bwc.c b/modules/luci-mod-status/src/luci-bwc.c
index 8ddd91727a..dc68a2e4db 100644
--- a/modules/luci-mod-status/src/luci-bwc.c
+++ b/modules/luci-mod-status/src/luci-bwc.c
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+#define _BSD_SOURCE
+
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -26,6 +28,7 @@
#include <errno.h>
#include <unistd.h>
#include <signal.h>
+#include <endian.h>
#include <sys/stat.h>
#include <sys/mman.h>
@@ -47,9 +50,9 @@
#define DB_LD_FILE DB_PATH "/load"
#define IF_SCAN_PATTERN \
- " %[^ :]:%u %u" \
- " %*d %*d %*d %*d %*d %*d" \
- " %u %u"
+ " %[^ :]:%" SCNu64 " %" SCNu64 \
+ " %*u %*u %*u %*u %*u %*u" \
+ " %" SCNu64 " %" SCNu64
#define LD_SCAN_PATTERN \
"%f %f %f"
@@ -63,10 +66,10 @@ struct file_map {
struct traffic_entry {
uint32_t time;
- uint32_t rxb;
- uint32_t rxp;
- uint32_t txb;
- uint32_t txp;
+ uint64_t rxb;
+ uint64_t rxp;
+ uint64_t txb;
+ uint64_t txp;
};
struct conn_entry {
@@ -190,7 +193,7 @@ static int init_file(char *path, int esize)
static inline uint32_t timeof(void *entry)
{
- return ntohl(((struct traffic_entry *)entry)->time);
+ return be32toh(((struct traffic_entry *)entry)->time);
}
static int update_file(const char *path, void *entry, int esize)
@@ -296,7 +299,7 @@ static void iw_close(void *iw)
static int update_ifstat(
- const char *ifname, uint32_t rxb, uint32_t rxp, uint32_t txb, uint32_t txp
+ const char *ifname, uint64_t rxb, uint64_t rxp, uint64_t txb, uint64_t txp
) {
char path[1024];
@@ -316,11 +319,11 @@ static int update_ifstat(
}
}
- e.time = htonl(time(NULL));
- e.rxb = htonl(rxb);
- e.rxp = htonl(rxp);
- e.txb = htonl(txb);
- e.txp = htonl(txp);
+ e.time = htobe32(time(NULL));
+ e.rxb = htobe64(rxb);
+ e.rxp = htobe64(rxp);
+ e.txb = htobe64(txb);
+ e.txp = htobe64(txp);
return update_file(path, &e, sizeof(struct traffic_entry));
}
@@ -346,8 +349,8 @@ static int update_radiostat(
}
}
- e.time = htonl(time(NULL));
- e.rate = htons(rate);
+ e.time = htobe32(time(NULL));
+ e.rate = htobe16(rate);
e.rssi = rssi;
e.noise = noise;
@@ -374,10 +377,10 @@ static int update_cnstat(uint32_t udp, uint32_t tcp, uint32_t other)
}
}
- e.time = htonl(time(NULL));
- e.udp = htonl(udp);
- e.tcp = htonl(tcp);
- e.other = htonl(other);
+ e.time = htobe32(time(NULL));
+ e.udp = htobe32(udp);
+ e.tcp = htobe32(tcp);
+ e.other = htobe32(other);
return update_file(path, &e, sizeof(struct conn_entry));
}
@@ -402,10 +405,10 @@ static int update_ldstat(uint16_t load1, uint16_t load5, uint16_t load15)
}
}
- e.time = htonl(time(NULL));
- e.load1 = htons(load1);
- e.load5 = htons(load5);
- e.load15 = htons(load15);
+ e.time = htobe32(time(NULL));
+ e.load1 = htobe16(load1);
+ e.load5 = htobe16(load5);
+ e.load15 = htobe16(load15);
return update_file(path, &e, sizeof(struct load_entry));
}
@@ -413,7 +416,7 @@ static int update_ldstat(uint16_t load1, uint16_t load5, uint16_t load15)
static int run_daemon(void)
{
FILE *info;
- uint32_t rxb, txb, rxp, txp;
+ uint64_t rxb, txb, rxp, txp;
uint32_t udp, tcp, other;
uint16_t rate;
uint8_t rssi, noise;
@@ -521,7 +524,7 @@ static int run_daemon(void)
if (strstr(line, "TIME_WAIT"))
continue;
- if ((strstr(line, "src=127.0.0.1 ") && strstr(line, "dst=127.0.0.1 "))
+ if ((strstr(line, "src=127.0.0.1 ") && strstr(line, "dst=127.0.0.1 "))
|| (strstr(line, "src=::1 ") && strstr(line, "dst=::1 ")))
continue;
@@ -610,11 +613,11 @@ static int run_dump_ifname(const char *ifname)
if (!e->time)
continue;
- printf("[ %u, %u, %" PRIu32
- ", %u, %u ]%s\n",
- ntohl(e->time),
- ntohl(e->rxb), ntohl(e->rxp),
- ntohl(e->txb), ntohl(e->txp),
+ printf("[ %" PRIu32 ", %" PRIu64 ", %" PRIu64
+ ", %" PRIu64 ", %" PRIu64 " ]%s\n",
+ be32toh(e->time),
+ be64toh(e->rxb), be64toh(e->rxp),
+ be64toh(e->txb), be64toh(e->txp),
((i + sizeof(struct traffic_entry)) < m.size) ? "," : "");
}
@@ -646,9 +649,9 @@ static int run_dump_radio(const char *ifname)
if (!e->time)
continue;
- printf("[ %u, %d, %d, %d ]%s\n",
- ntohl(e->time),
- e->rate, e->rssi, e->noise,
+ printf("[ %" PRIu32 ", %" PRIu16 ", %" PRIu8 ", %" PRIu8 " ]%s\n",
+ be32toh(e->time),
+ be16toh(e->rate), e->rssi, e->noise,
((i + sizeof(struct radio_entry)) < m.size) ? "," : "");
}
@@ -680,9 +683,9 @@ static int run_dump_conns(void)
if (!e->time)
continue;
- printf("[ %u, %u, %u, %u ]%s\n",
- ntohl(e->time), ntohl(e->udp),
- ntohl(e->tcp), ntohl(e->other),
+ printf("[ %" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 " ]%s\n",
+ be32toh(e->time), be32toh(e->udp),
+ be32toh(e->tcp), be32toh(e->other),
((i + sizeof(struct conn_entry)) < m.size) ? "," : "");
}
@@ -714,9 +717,9 @@ static int run_dump_load(void)
if (!e->time)
continue;
- printf("[ %u, %u, %u, %u ]%s\n",
- ntohl(e->time),
- ntohs(e->load1), ntohs(e->load5), ntohs(e->load15),
+ printf("[ %" PRIu32 ", %" PRIu16 ", %" PRIu16 ", %" PRIu16 " ]%s\n",
+ be32toh(e->time),
+ be16toh(e->load1), be16toh(e->load5), be16toh(e->load15),
((i + sizeof(struct load_entry)) < m.size) ? "," : "");
}
diff --git a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js
index adcf4a4f8b..c1109b5d64 100644
--- a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js
+++ b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js
@@ -72,8 +72,10 @@ return L.view.extend({
trigger = s.option(form.ListValue, 'trigger', _('Trigger'));
Object.keys(triggers).sort().forEach(function(t) { trigger.value(t, t.replace(/-/g, '')) });
- trigger.value('usbdev');
- trigger.value('usbport');
+ if (usb.devices && usb.devices.length)
+ trigger.value('usbdev');
+ if (usb.ports && usb.ports.length)
+ trigger.value('usbport');
o = s.option(form.Value, 'delayon', _('On-State Delay'));
o.depends('trigger', 'timer');
@@ -100,42 +102,46 @@ return L.view.extend({
o.value('tx', _('Transmit'));
o.value('rx', _('Receive'));
- o = s.option(form.ListValue, '_usb_dev', _('USB Device'));
- o.depends('trigger', 'usbdev');
- o.rmempty = true;
- o.ucioption = 'dev';
- o.remove = function(section_id) {
- var t = trigger.formvalue(section_id);
- if (t != 'netdev' && t != 'usbdev')
- uci.unset('system', section_id, 'dev');
+ if (usb.devices && usb.devices.length) {
+ o = s.option(form.ListValue, '_usb_dev', _('USB Device'));
+ o.depends('trigger', 'usbdev');
+ o.rmempty = true;
+ o.ucioption = 'dev';
+ o.remove = function(section_id) {
+ var t = trigger.formvalue(section_id);
+ if (t != 'netdev' && t != 'usbdev')
+ uci.unset('system', section_id, 'dev');
+ }
+ o.value('');
+ usb.devices.forEach(function(usbdev) {
+ o.value(usbdev.id, '%s (%s - %s)'.format(usbdev.id, usbdev.vendor || '?', usbdev.product || '?'));
+ });
}
- o.value('');
- (usb.devices || []).forEach(function(usbdev) {
- o.value(usbdev.id, '%s (%s - %s)'.format(usbdev.id, usbdev.vendor || '?', usbdev.product || '?'));
- });
- o = s.option(form.MultiValue, 'port', _('USB Ports'));
- o.depends('trigger', 'usbport');
- o.rmempty = true;
- o.cfgvalue = function(section_id) {
- var ports = [],
- value = uci.get('system', section_id, 'port');
-
- if (!Array.isArray(value))
- value = String(value || '').split(/\s+/);
-
- for (var i = 0; i < value.length; i++)
- if (value[i].match(/^usb(\d+)-port(\d+)$/))
- ports.push(value[i]);
- else if (value[i].match(/^(\d+)-(\d+)$/))
- ports.push('usb%d-port%d'.format(Regexp.$1, Regexp.$2));
-
- return ports;
- };
- (usb.ports || []).forEach(function(usbport) {
- o.value('usb%d-port%d'.format(usbport.hub, usbport.port),
- 'Hub %d, Port %d'.format(usbport.hub, usbport.port));
- });
+ if (usb.ports && usb.ports.length) {
+ o = s.option(form.MultiValue, 'port', _('USB Ports'));
+ o.depends('trigger', 'usbport');
+ o.rmempty = true;
+ o.cfgvalue = function(section_id) {
+ var ports = [],
+ value = uci.get('system', section_id, 'port');
+
+ if (!Array.isArray(value))
+ value = String(value || '').split(/\s+/);
+
+ for (var i = 0; i < value.length; i++)
+ if (value[i].match(/^usb(\d+)-port(\d+)$/))
+ ports.push(value[i]);
+ else if (value[i].match(/^(\d+)-(\d+)$/))
+ ports.push('usb%d-port%d'.format(Regexp.$1, Regexp.$2));
+
+ return ports;
+ };
+ usb.ports.forEach(function(usbport) {
+ o.value('usb%d-port%d'.format(usbport.hub, usbport.port),
+ 'Hub %d, Port %d'.format(usbport.hub, usbport.port));
+ });
+ }
o = s.option(form.Value, 'port_mask', _('Switch Port Mask'));
o.depends('trigger', 'switch0');